From 3fbd85229bf7514e272b794aa8f97dce7e2e985f Mon Sep 17 00:00:00 2001 From: Mohammed Ibrahim Date: Tue, 10 Oct 2023 18:14:31 -0400 Subject: [PATCH 01/80] Function activation cleanups (#2350) * Uplift Service Ownership * Add preEval of SchemaState type * change deployment interface * change deployment interfaces * minor fixes * Function activator phase II * cleanup path * Function Activator uplift * Update userTestConfig.json --- .../finos/legend/engine/server/Server.java | 2 +- .../engine/server/test/userTestConfig.json | 11 +- .../api/FunctionActivatorAPI.java | 21 +-- .../deployment/DeploymentManager.java | 11 +- .../deployment}/DeploymentResult.java | 3 +- .../deployment/FunctionActivatorArtifact.java | 2 + ...ctionActivatorDeploymentConfiguration.java | 19 +++ .../FunctionActivatorDeploymentContent.java | 19 +++ .../service/FunctionActivatorService.java | 7 +- .../metamodel/DeploymentConfiguration.java | 2 +- .../core_function_activator/metamodel.pure | 1 - .../pom.xml | 32 ++-- .../api/HostedServiceService.java | 12 +- .../deployment/HostedServiceArtifact.java | 7 +- .../deployment/HostedServiceContent.java | 37 +++++ .../HostedServiceDeploymentConfiguration.java | 22 +++ .../HostedServiceDeploymentManager.java | 109 ++++++-------- .../HostedServiceDeploymentResult.java | 4 +- .../pom.xml | 8 +- .../HostedServiceCompilerExtension.java | 4 +- .../pom.xml | 8 +- .../from/antlr4/HostedServiceParserGrammar.g4 | 1 - .../grammar/from/HostedServiceTreeWalker.java | 13 -- .../showcase/showcaseServices.pure | 2 +- .../legend-engine-xt-snowflakeApp-api/pom.xml | 6 +- .../snowflakeApp/api/SnowflakeAppService.java | 73 +++------- .../deployment/SnowflakeAppArtifact.java | 12 +- ...owflakeAppArtifactGenerationExtension.java | 3 +- .../deployment/SnowflakeAppContent.java | 33 +++++ .../SnowflakeAppDeploymentConfiguration.java | 23 +++ .../deployment/SnowflakeAppGenerator.java | 79 ++++++++++ .../SnowflakeDeploymentManager.java | 137 ++++++++++++++++-- .../SnowflakeDeploymentResult.java | 9 +- ...tion.extension.ArtifactGenerationExtension | 1 + .../pom.xml | 8 +- .../SnowflakeAppCompilerExtension.java | 4 +- .../pom.xml | 8 - .../from/antlr4/SnowflakeAppParserGrammar.g4 | 2 +- .../grammar/from/SnowflakeAppTreeWalker.java | 13 -- .../SnowflakeDeploymentConfiguration.java | 7 +- 40 files changed, 512 insertions(+), 263 deletions(-) rename legend-engine-xts-functionActivator/{legend-engine-xt-functionActivator-protocol/src/main/java/org/finos/legend/engine/protocol/functionActivator/metamodel => legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment}/DeploymentResult.java (86%) create mode 100644 legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorDeploymentConfiguration.java create mode 100644 legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorDeploymentContent.java create mode 100644 legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceContent.java create mode 100644 legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceDeploymentConfiguration.java rename legend-engine-xts-hostedService/{legend-engine-xt-hostedService-protocol/src/main/java/org/finos/legend/engine/protocol/hostedService/metamodel => legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment}/HostedServiceDeploymentResult.java (81%) create mode 100644 legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppContent.java create mode 100644 legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppDeploymentConfiguration.java create mode 100644 legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppGenerator.java rename legend-engine-xts-snowflakeApp/{legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel => legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment}/SnowflakeDeploymentResult.java (73%) create mode 100644 legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.dsl.generation.extension.ArtifactGenerationExtension diff --git a/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java b/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java index 60fa1a7cfdc..230a7e1f4e9 100644 --- a/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java +++ b/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java @@ -349,7 +349,7 @@ public void run(T serverConfiguration, Environment environment) environment.jersey().register(new ExecutePlanLegacy(planExecutor)); // Function Activator - environment.jersey().register(new FunctionActivatorAPI(modelManager, serverConfiguration.activatorConfiguration, routerExtensions)); + environment.jersey().register(new FunctionActivatorAPI(modelManager, Lists.mutable.empty(), routerExtensions)); // GraphQL environment.jersey().register(new GraphQLGrammar()); diff --git a/legend-engine-config/legend-engine-server/src/test/resources/org/finos/legend/engine/server/test/userTestConfig.json b/legend-engine-config/legend-engine-server/src/test/resources/org/finos/legend/engine/server/test/userTestConfig.json index acd17396d0d..8106f02d379 100644 --- a/legend-engine-config/legend-engine-server/src/test/resources/org/finos/legend/engine/server/test/userTestConfig.json +++ b/legend-engine-config/legend-engine-server/src/test/resources/org/finos/legend/engine/server/test/userTestConfig.json @@ -80,12 +80,5 @@ }, "errorhandlingconfiguration": { "enabled": true - }, - "activatorConfiguration":[ - {"_type":"hostedServiceConfig", "host": "127.0.0.1", - "port":9090, - "path": "/api/service/v1/registerHostedService", - "stage": "SANDBOX" - } - ] -} \ No newline at end of file + } +} diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/api/FunctionActivatorAPI.java b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/api/FunctionActivatorAPI.java index cd27af444ae..7e314bd1645 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/api/FunctionActivatorAPI.java +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/api/FunctionActivatorAPI.java @@ -24,13 +24,14 @@ import org.eclipse.collections.api.list.MutableList; import org.finos.legend.engine.functionActivator.api.input.FunctionActivatorInput; import org.finos.legend.engine.functionActivator.api.output.FunctionActivatorInfo; +import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorDeploymentConfiguration; import org.finos.legend.engine.functionActivator.service.FunctionActivatorLoader; import org.finos.legend.engine.functionActivator.service.FunctionActivatorService; import org.finos.legend.engine.language.pure.compiler.Compiler; import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; import org.finos.legend.engine.language.pure.modelManager.ModelManager; -import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentConfiguration; -import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentResult; +//import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentConfiguration; +import org.finos.legend.engine.functionActivator.deployment.DeploymentResult; import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentStage; import org.finos.legend.engine.protocol.pure.PureClientVersions; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; @@ -63,7 +64,7 @@ public class FunctionActivatorAPI private final ModelManager modelManager; private final PureModel emptyModel; private final Function> routerExtensions; - private List runtimeDeploymentConfig = Lists.mutable.empty(); + private List runtimeDeploymentConfig = Lists.mutable.empty(); public FunctionActivatorAPI(ModelManager modelManager, Function> routerExtensions) { @@ -72,7 +73,7 @@ public FunctionActivatorAPI(ModelManager modelManager, Function activatorConfigurations, Function> routerExtensions) + public FunctionActivatorAPI(ModelManager modelManager, List activatorConfigurations, Function> routerExtensions) { this(modelManager, routerExtensions); this.runtimeDeploymentConfig = activatorConfigurations; @@ -103,7 +104,7 @@ public Response validate(FunctionActivatorInput input, @ApiParam(hidden = true) String clientVersion = input.clientVersion == null ? PureClientVersions.production : input.clientVersion; PureModel pureModel = modelManager.loadModel(input.model, clientVersion, profiles, null); Root_meta_external_function_activator_FunctionActivator activator = (Root_meta_external_function_activator_FunctionActivator) pureModel.getPackageableElement(input.functionActivator); - FunctionActivatorService service = getActivatorService(activator, pureModel); + FunctionActivatorService service = getActivatorService(activator, pureModel); return Response.ok(objectMapper.writeValueAsString(service.validate(profiles, pureModel, activator, input.model, routerExtensions))).type(MediaType.APPLICATION_JSON_TYPE).build(); } catch (Exception ex) @@ -126,8 +127,8 @@ public Response publishToSandbox(FunctionActivatorInput input, @ApiParam(hidden String clientVersion = input.clientVersion == null ? PureClientVersions.production : input.clientVersion; PureModel pureModel = modelManager.loadModel(input.model, clientVersion, profiles, null); Root_meta_external_function_activator_FunctionActivator activator = (Root_meta_external_function_activator_FunctionActivator) pureModel.getPackageableElement(input.functionActivator); - FunctionActivatorService service = getActivatorService(activator,pureModel); - return Response.ok(objectMapper.writeValueAsString(service.publishToSandbox(profiles, pureModel, activator, input.model, service.selectConfig(this.runtimeDeploymentConfig, DeploymentStage.SANDBOX), routerExtensions))).type(MediaType.APPLICATION_JSON_TYPE).build(); + FunctionActivatorService service = getActivatorService(activator,pureModel); + return Response.ok(objectMapper.writeValueAsString(service.publishToSandbox(profiles, pureModel, activator, input.model, service.selectConfig(this.runtimeDeploymentConfig), routerExtensions))).type(MediaType.APPLICATION_JSON_TYPE).build(); } catch (Exception ex) { @@ -149,7 +150,7 @@ public Response renderArtifact(FunctionActivatorInput input, @ApiParam(hidden = String clientVersion = input.clientVersion == null ? PureClientVersions.production : input.clientVersion; PureModel pureModel = modelManager.loadModel(input.model, clientVersion, profiles, null); Root_meta_external_function_activator_FunctionActivator activator = (Root_meta_external_function_activator_FunctionActivator) pureModel.getPackageableElement(input.functionActivator); - FunctionActivatorService service = getActivatorService(activator, pureModel); + FunctionActivatorService service = getActivatorService(activator, pureModel); return Response.ok(objectMapper.writeValueAsString(service.renderArtifact(pureModel, activator, input.model, clientVersion,routerExtensions))).type(MediaType.APPLICATION_JSON_TYPE).build(); } catch (Exception ex) @@ -159,9 +160,9 @@ public Response renderArtifact(FunctionActivatorInput input, @ApiParam(hidden = } } - public FunctionActivatorService getActivatorService(Root_meta_external_function_activator_FunctionActivator activator, PureModel pureModel) + public FunctionActivatorService getActivatorService(Root_meta_external_function_activator_FunctionActivator activator, PureModel pureModel) { - FunctionActivatorService service = FunctionActivatorLoader.extensions().select(c -> c.supports(activator)).getFirst(); + FunctionActivatorService service = FunctionActivatorLoader.extensions().select(c -> c.supports(activator)).getFirst(); if (service == null) { throw new RuntimeException(activator.getClass().getSimpleName() + "is not supported!"); diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/DeploymentManager.java b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/DeploymentManager.java index c2221880524..302270e5c49 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/DeploymentManager.java +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/DeploymentManager.java @@ -15,20 +15,17 @@ package org.finos.legend.engine.functionActivator.deployment; import org.eclipse.collections.api.list.MutableList; -import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentConfiguration; -import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentResult; -import org.finos.legend.pure.generated.Root_meta_external_function_activator_FunctionActivator; import org.pac4j.core.profile.CommonProfile; import java.util.List; -public interface DeploymentManager +public interface DeploymentManager { - public V deploy(MutableList profiles, U artifact, T activator); + public V deploy(MutableList profiles, U artifact); - public V deploy(MutableList profiles, U artifact, T activator, List availableRuntimeConfigurations); + public V deploy(MutableList profiles, U artifact, List availableRuntimeConfigurations); - public boolean canDeploy(T activator); + public boolean canDeploy(FunctionActivatorArtifact activatorArtifact); } diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/src/main/java/org/finos/legend/engine/protocol/functionActivator/metamodel/DeploymentResult.java b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/DeploymentResult.java similarity index 86% rename from legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/src/main/java/org/finos/legend/engine/protocol/functionActivator/metamodel/DeploymentResult.java rename to legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/DeploymentResult.java index 5edb409f35d..4f487838f45 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/src/main/java/org/finos/legend/engine/protocol/functionActivator/metamodel/DeploymentResult.java +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/DeploymentResult.java @@ -12,9 +12,10 @@ // See the License for the specific language governing permissions and // limitations under the License. -package org.finos.legend.engine.protocol.functionActivator.metamodel; +package org.finos.legend.engine.functionActivator.deployment; public class DeploymentResult { + public String activatorIdentifier; public boolean successful; } diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorArtifact.java b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorArtifact.java index 2b5ce1a61b6..5a29cfb0043 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorArtifact.java +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorArtifact.java @@ -16,4 +16,6 @@ public class FunctionActivatorArtifact { + public FunctionActivatorDeploymentContent content; + public FunctionActivatorDeploymentConfiguration deploymentConfiguration; } diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorDeploymentConfiguration.java b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorDeploymentConfiguration.java new file mode 100644 index 00000000000..963ec5e2587 --- /dev/null +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorDeploymentConfiguration.java @@ -0,0 +1,19 @@ +// Copyright 2023 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.functionActivator.deployment; + +public class FunctionActivatorDeploymentConfiguration +{ +} diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorDeploymentContent.java b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorDeploymentContent.java new file mode 100644 index 00000000000..47ecf7745ee --- /dev/null +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorDeploymentContent.java @@ -0,0 +1,19 @@ +// Copyright 2023 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.functionActivator.deployment; + +public class FunctionActivatorDeploymentContent +{ +} diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/service/FunctionActivatorService.java b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/service/FunctionActivatorService.java index bec3d361535..7086ba02aa6 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/service/FunctionActivatorService.java +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/service/FunctionActivatorService.java @@ -19,10 +19,11 @@ import org.eclipse.collections.api.list.MutableList; import org.finos.legend.engine.functionActivator.api.output.FunctionActivatorInfo; import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorArtifact; +import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorDeploymentConfiguration; import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentStage; import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentConfiguration; -import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentResult; +import org.finos.legend.engine.functionActivator.deployment.DeploymentResult; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContext; import org.finos.legend.pure.generated.Root_meta_external_function_activator_FunctionActivator; import org.finos.legend.pure.generated.Root_meta_pure_extension_Extension; @@ -30,7 +31,7 @@ import java.util.List; -public interface FunctionActivatorService +public interface FunctionActivatorService { FunctionActivatorInfo info(PureModel pureModel, String version); @@ -42,5 +43,5 @@ public interface FunctionActivatorService> routerExtensions); - List selectConfig(List configurations, DeploymentStage state); + List selectConfig(List configurations); } diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/src/main/java/org/finos/legend/engine/protocol/functionActivator/metamodel/DeploymentConfiguration.java b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/src/main/java/org/finos/legend/engine/protocol/functionActivator/metamodel/DeploymentConfiguration.java index a9e8b0749bb..8997bd54abf 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/src/main/java/org/finos/legend/engine/protocol/functionActivator/metamodel/DeploymentConfiguration.java +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/src/main/java/org/finos/legend/engine/protocol/functionActivator/metamodel/DeploymentConfiguration.java @@ -20,5 +20,5 @@ @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "_type") public class DeploymentConfiguration extends PackageableElement { - public DeploymentStage stage; + //public DeploymentStage stage; } diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/src/main/resources/core_function_activator/metamodel.pure b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/src/main/resources/core_function_activator/metamodel.pure index 9944f30b3c1..c3a89576d7b 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/src/main/resources/core_function_activator/metamodel.pure +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/src/main/resources/core_function_activator/metamodel.pure @@ -9,7 +9,6 @@ Class meta::external::function::activator::FunctionActivator extends Packageable Class meta::external::function::activator::DeploymentConfiguration extends PackageableElement { - stage: DeploymentStage[1]; } Class meta::external::function::activator::DeploymentResult diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml index b29a022aba2..039d09da9ef 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml @@ -65,10 +65,6 @@ org.finos.legend.engine legend-engine-xt-functionActivator-api - - org.finos.legend.engine - legend-engine-xt-functionActivator-protocol - org.finos.legend.engine legend-engine-xt-hostedService-pure @@ -94,20 +90,20 @@ - - org.apache.httpcomponents - httpclient - - - commons-codec - commons-codec - - - - - org.apache.httpcomponents - httpcore - + + + + + + + + + + + + + + diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/api/HostedServiceService.java b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/api/HostedServiceService.java index 66883f4133c..a35aa36f5a0 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/api/HostedServiceService.java +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/api/HostedServiceService.java @@ -19,7 +19,9 @@ import org.eclipse.collections.api.list.MutableList; import org.eclipse.collections.impl.factory.Lists; import org.finos.legend.engine.functionActivator.api.output.FunctionActivatorInfo; +import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorDeploymentConfiguration; import org.finos.legend.engine.language.hostedService.deployment.HostedServiceArtifact; +import org.finos.legend.engine.language.hostedService.deployment.HostedServiceDeploymentConfiguration; import org.finos.legend.engine.language.hostedService.generation.model.GenerationInfoData; import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentStage; import org.finos.legend.engine.functionActivator.service.FunctionActivatorError; @@ -27,8 +29,8 @@ import org.finos.legend.engine.language.hostedService.deployment.HostedServiceDeploymentManager; import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentConfiguration; import org.finos.legend.engine.protocol.hostedService.metamodel.HostedService; -import org.finos.legend.engine.protocol.hostedService.metamodel.HostedServiceDeploymentConfiguration; -import org.finos.legend.engine.protocol.hostedService.metamodel.HostedServiceDeploymentResult; +//import org.finos.legend.engine.protocol.hostedService.metamodel.HostedServiceDeploymentConfiguration; +import org.finos.legend.engine.language.hostedService.deployment.HostedServiceDeploymentResult; import org.finos.legend.engine.language.hostedService.generation.HostedServiceArtifactGenerator; import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; import org.finos.legend.engine.protocol.hostedService.metamodel.HostedServiceProtocolExtension; @@ -95,9 +97,9 @@ public HostedServiceArtifact renderArtifact(PureModel pureModel, Root_meta_exter } @Override - public List selectConfig(List configurations, DeploymentStage stage) + public List selectConfig(List configurations) { - return Lists.mutable.withAll(configurations).select(e -> e instanceof HostedServiceDeploymentConfiguration && e.stage.equals(stage)).collect(e -> (HostedServiceDeploymentConfiguration)e); + return Lists.mutable.withAll(configurations).select(e -> e instanceof HostedServiceDeploymentConfiguration).collect(e -> (HostedServiceDeploymentConfiguration)e); } @@ -106,7 +108,7 @@ public HostedServiceDeploymentResult publishToSandbox(MutableList { GenerationInfoData generation = this.hostedServiceArtifactgenerator.renderArtifact(pureModel, activator, inputModel, "vX_X_X",routerExtensions); HostedServiceArtifact artifact = new HostedServiceArtifact(generation, fetchHostedService(activator, (PureModelContextData)inputModel, pureModel)); - return this.hostedServiceDeploymentManager.deploy(profiles, artifact, activator, runtimeConfigs); + return this.hostedServiceDeploymentManager.deploy(profiles, artifact, runtimeConfigs); // return new HostedServiceDeploymentResult(); } diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceArtifact.java b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceArtifact.java index 60a380f14c4..1bfe026b012 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceArtifact.java +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceArtifact.java @@ -20,8 +20,6 @@ public class HostedServiceArtifact extends FunctionActivatorArtifact { - public GenerationInfo info; - public PureModelContextData serviceData; public HostedServiceArtifact() { @@ -30,13 +28,12 @@ public HostedServiceArtifact() public HostedServiceArtifact(GenerationInfo info) { - this.info = info; + this.content = new HostedServiceContent(info); } public HostedServiceArtifact(GenerationInfo info, PureModelContextData serviceData) { - this(info); - this.serviceData = serviceData; + this.content = new HostedServiceContent(info, serviceData); } diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceContent.java b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceContent.java new file mode 100644 index 00000000000..36de3185647 --- /dev/null +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceContent.java @@ -0,0 +1,37 @@ +// Copyright 2023 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.hostedService.deployment; + +import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorDeploymentContent; +import org.finos.legend.engine.language.hostedService.generation.model.GenerationInfo; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; + +public class HostedServiceContent extends FunctionActivatorDeploymentContent +{ + + public GenerationInfo info; + public PureModelContextData serviceData; + + public HostedServiceContent(GenerationInfo info) + { + this.info = info; + } + + public HostedServiceContent(GenerationInfo info, PureModelContextData serviceData) + { + this.info = info; + this.serviceData = serviceData; + } +} diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceDeploymentConfiguration.java b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceDeploymentConfiguration.java new file mode 100644 index 00000000000..f8627b853e7 --- /dev/null +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceDeploymentConfiguration.java @@ -0,0 +1,22 @@ +// Copyright 2023 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.hostedService.deployment; + +import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorDeploymentConfiguration; + +public class HostedServiceDeploymentConfiguration extends FunctionActivatorDeploymentConfiguration +{ + +} diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceDeploymentManager.java b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceDeploymentManager.java index 39fd6425da3..8309de32973 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceDeploymentManager.java +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceDeploymentManager.java @@ -15,94 +15,73 @@ package org.finos.legend.engine.language.hostedService.deployment; import com.fasterxml.jackson.databind.ObjectMapper; -import org.apache.http.HttpResponse; -import org.apache.http.auth.AuthScope; -import org.apache.http.auth.Credentials; -import org.apache.http.client.CookieStore; -import org.apache.http.client.HttpClient; -import org.apache.http.client.methods.HttpPost; -import org.apache.http.client.utils.URIBuilder; -import org.apache.http.entity.StringEntity; -import org.apache.http.impl.client.BasicCookieStore; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.impl.client.DefaultHttpClient; import org.eclipse.collections.api.list.MutableList; import org.finos.legend.engine.functionActivator.deployment.DeploymentManager; -import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentStage; -import org.finos.legend.engine.protocol.hostedService.metamodel.HostedServiceDeploymentConfiguration; -import org.finos.legend.engine.protocol.hostedService.metamodel.HostedServiceDeploymentResult; +import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorArtifact; import org.finos.legend.engine.shared.core.ObjectMapperFactory; -import org.finos.legend.engine.shared.core.kerberos.HttpClientBuilder; -import org.finos.legend.engine.shared.core.kerberos.ProfileManagerHelper; -import org.finos.legend.engine.shared.core.operational.errorManagement.EngineException; -import org.finos.legend.pure.generated.Root_meta_external_function_activator_hostedService_HostedService; -import org.finos.legend.pure.generated.Root_meta_external_function_activator_hostedService_HostedServiceDeploymentConfiguration; import org.pac4j.core.profile.CommonProfile; - -import javax.security.auth.Subject; -import java.security.Principal; -import java.security.PrivilegedExceptionAction; +import org.finos.legend.engine.language.hostedService.deployment.HostedServiceDeploymentConfiguration; import java.util.List; -public class HostedServiceDeploymentManager implements DeploymentManager +public class HostedServiceDeploymentManager implements DeploymentManager { public static ObjectMapper mapper = ObjectMapperFactory.getNewStandardObjectMapperWithPureProtocolExtensionSupports(); - public boolean canDeploy(Root_meta_external_function_activator_hostedService_HostedService element) + public boolean canDeploy(FunctionActivatorArtifact element) { - return element._activationConfiguration() != null; + return element instanceof HostedServiceArtifact; } - public HostedServiceDeploymentResult deploy(MutableList profiles, HostedServiceArtifact artifact, Root_meta_external_function_activator_hostedService_HostedService activator) + public HostedServiceDeploymentResult deploy(MutableList profiles, HostedServiceArtifact artifact) { return new HostedServiceDeploymentResult(); } - public HostedServiceDeploymentResult deploy(MutableList profiles, HostedServiceArtifact artifact, Root_meta_external_function_activator_hostedService_HostedService activator, List availableRuntimeConfigurations) + public HostedServiceDeploymentResult deploy(MutableList profiles, HostedServiceArtifact artifact, List availableRuntimeConfigurations) { String host; String path; int port; - if (activator._activationConfiguration() == null || activator._activationConfiguration()._stage()._name().equals(DeploymentStage.SANDBOX.name())) - { - if (availableRuntimeConfigurations.size() > 0) - { - host = availableRuntimeConfigurations.get(0).host; - path = availableRuntimeConfigurations.get(0).path; - port = availableRuntimeConfigurations.get(0).port; - } - else - { - throw new EngineException("No available configuration for sandbox deployment"); - } - try - { - HttpPost request = new HttpPost(new URIBuilder() - .setScheme("http") - .setHost(host) - .setPort(port) - .setPath(path) - .build()); - StringEntity stringEntity = new StringEntity(mapper.writeValueAsString(artifact)); - stringEntity.setContentType("application/json"); - request.setEntity(stringEntity); - CloseableHttpClient httpclient = (CloseableHttpClient) HttpClientBuilder.getHttpClient(new BasicCookieStore()); - Subject s = ProfileManagerHelper.extractSubject(profiles); - Subject.doAs(s, (PrivilegedExceptionAction) () -> - { - HttpResponse response = httpclient.execute(request); - return new HostedServiceDeploymentResult(); - }); - } - catch (Exception e) - { - throw new EngineException("No available configuration for sandbox deployment"); - - } - } +// if (artifact.deploymentConfiguration == null || activator._activationConfiguration()._stage()._name().equals(DeploymentStage.SANDBOX.name())) +// { +// if (availableRuntimeConfigurations.size() > 0) +// { +// host = availableRuntimeConfigurations.get(0).host; +// path = availableRuntimeConfigurations.get(0).path; +// port = availableRuntimeConfigurations.get(0).port; +// } +// else +// { +// throw new EngineException("No available configuration for sandbox deployment"); +// } +// try +// { +// HttpPost request = new HttpPost(new URIBuilder() +// .setScheme("http") +// .setHost(host) +// .setPort(port) +// .setPath(path) +// .build()); +// StringEntity stringEntity = new StringEntity(mapper.writeValueAsString(artifact)); +// stringEntity.setContentType("application/json"); +// request.setEntity(stringEntity); +// CloseableHttpClient httpclient = (CloseableHttpClient) HttpClientBuilder.getHttpClient(new BasicCookieStore()); +// Subject s = ProfileManagerHelper.extractSubject(profiles); +// Subject.doAs(s, (PrivilegedExceptionAction) () -> +// { +// HttpResponse response = httpclient.execute(request); +// return new HostedServiceDeploymentResult(); +// }); +// } +// catch (Exception e) +// { +// throw new EngineException("No available configuration for sandbox deployment"); +// +// } +// } // else if (activator._activationConfiguration() != null) // { // host = ((Root_meta_external_function_activator_hostedService_HostedServiceDeploymentConfiguration)activator._activationConfiguration())._; diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/src/main/java/org/finos/legend/engine/protocol/hostedService/metamodel/HostedServiceDeploymentResult.java b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceDeploymentResult.java similarity index 81% rename from legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/src/main/java/org/finos/legend/engine/protocol/hostedService/metamodel/HostedServiceDeploymentResult.java rename to legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceDeploymentResult.java index e8515da15d7..8917f5a219e 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/src/main/java/org/finos/legend/engine/protocol/hostedService/metamodel/HostedServiceDeploymentResult.java +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceDeploymentResult.java @@ -12,9 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. -package org.finos.legend.engine.protocol.hostedService.metamodel; +package org.finos.legend.engine.language.hostedService.deployment; -import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentResult; +import org.finos.legend.engine.functionActivator.deployment.DeploymentResult; public class HostedServiceDeploymentResult extends DeploymentResult { diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml index 3ffc3c5b24e..255341205a5 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml @@ -53,10 +53,10 @@ org.finos.legend.engine legend-engine-xt-hostedService-protocol - - org.finos.legend.engine - legend-engine-xt-functionActivator-protocol - + + + + org.finos.legend.engine legend-engine-language-pure-dsl-service diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/src/main/java/org/finos/legend/engine/language/hostedService/compiler/toPureGraph/HostedServiceCompilerExtension.java b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/src/main/java/org/finos/legend/engine/language/hostedService/compiler/toPureGraph/HostedServiceCompilerExtension.java index b3993fecf5b..c25ca1a6ec2 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/src/main/java/org/finos/legend/engine/language/hostedService/compiler/toPureGraph/HostedServiceCompilerExtension.java +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/src/main/java/org/finos/legend/engine/language/hostedService/compiler/toPureGraph/HostedServiceCompilerExtension.java @@ -80,8 +80,8 @@ public Iterable> getExtraProcessors() public Root_meta_external_function_activator_hostedService_HostedServiceDeploymentConfiguration buildDeploymentConfig(HostedServiceDeploymentConfiguration config, CompileContext context) { - return new Root_meta_external_function_activator_hostedService_HostedServiceDeploymentConfiguration_Impl("", null, context.pureModel.getClass("meta::external::function::activator::hostedService::HostedServiceDeploymentConfiguration")) - ._stage(context.pureModel.getEnumValue("meta::external::function::activator::DeploymentStage", config.stage.name())); + return new Root_meta_external_function_activator_hostedService_HostedServiceDeploymentConfiguration_Impl("", null, context.pureModel.getClass("meta::external::function::activator::hostedService::HostedServiceDeploymentConfiguration")); + // ._stage(context.pureModel.getEnumValue("meta::external::function::activator::DeploymentStage", config.stage.name())); } public Root_meta_external_function_activator_hostedService_HostedService buildHostedService(HostedService app, CompileContext context) diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml index e12ce187de9..d8b05b1839e 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml @@ -92,10 +92,10 @@ org.finos.legend.engine legend-engine-xt-hostedService-protocol - - org.finos.legend.engine - legend-engine-xt-functionActivator-protocol - + + + + org.finos.legend.engine legend-engine-language-pure-grammar diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/HostedServiceParserGrammar.g4 b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/HostedServiceParserGrammar.g4 index 39b4d8ab4d8..a148bf77558 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/HostedServiceParserGrammar.g4 +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/HostedServiceParserGrammar.g4 @@ -198,7 +198,6 @@ embeddedRuntimeContent: ISLAND_START | ISLAND_BRACE_OPEN | ISLAN // ----------------------------------- Deployment ------------------------------------------------------ deploymentConfigs: SERVICE_CONFIGURATION qualifiedName BRACE_OPEN - deploymentStage BRACE_CLOSE ; deploymentStage: SERVICE_DEPLOYMENT_STAGE COLON STRING SEMI_COLON diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/src/main/java/org/finos/legend/engine/language/hostedService/grammar/from/HostedServiceTreeWalker.java b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/src/main/java/org/finos/legend/engine/language/hostedService/grammar/from/HostedServiceTreeWalker.java index 610e81af12e..6465d2a8c3d 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/src/main/java/org/finos/legend/engine/language/hostedService/grammar/from/HostedServiceTreeWalker.java +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/src/main/java/org/finos/legend/engine/language/hostedService/grammar/from/HostedServiceTreeWalker.java @@ -151,19 +151,6 @@ private List visitStereotypes(HostedServiceParserGrammar.Stereoty private HostedServiceDeploymentConfiguration visitDeploymentConfig(HostedServiceParserGrammar.DeploymentConfigsContext ctx) { HostedServiceDeploymentConfiguration config = new HostedServiceDeploymentConfiguration(); - String stage = ctx.deploymentStage().getText(); - if (stage.equals("PRODUCTION")) - { - config.stage = DeploymentStage.PRODUCTION; - } - else if (stage.equals("SANDBOX")) - { - config.stage = DeploymentStage.SANDBOX; - } - else - { - throw new EngineException("Valid types for deployment stage are: SANDBOX, PRODUCTION"); - } return config; } diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/src/main/resources/core_hostedservice/showcase/showcaseServices.pure b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/src/main/resources/core_hostedservice/showcase/showcaseServices.pure index 6d04770c27e..25d0d8fb18b 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/src/main/resources/core_hostedservice/showcase/showcaseServices.pure +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/src/main/resources/core_hostedservice/showcase/showcaseServices.pure @@ -13,7 +13,7 @@ import meta::pure::graphFetch::*; function meta::external::function::activator::hostedService::tests::defaultConfig():HostedServiceDeploymentConfiguration[1] { - ^HostedServiceDeploymentConfiguration(stage = DeploymentStage.PRODUCTION); + ^HostedServiceDeploymentConfiguration(); } // ========================================================================================================= diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml index 1965f624e62..6a8e81612c3 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml @@ -82,15 +82,15 @@ org.finos.legend.engine - legend-engine-xt-functionActivator-protocol + legend-engine-xt-relationalStore-pure org.finos.legend.engine - legend-engine-xt-relationalStore-pure + legend-engine-xt-relationalStore-protocol org.finos.legend.engine - legend-engine-xt-relationalStore-protocol + legend-engine-executionPlan-execution diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/api/SnowflakeAppService.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/api/SnowflakeAppService.java index a6a4d7c7edd..3b9d06989ac 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/api/SnowflakeAppService.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/api/SnowflakeAppService.java @@ -20,15 +20,19 @@ import org.eclipse.collections.impl.factory.Lists; import org.eclipse.collections.impl.list.mutable.FastList; import org.finos.legend.engine.functionActivator.api.output.FunctionActivatorInfo; +import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorDeploymentConfiguration; import org.finos.legend.engine.functionActivator.service.FunctionActivatorError; import org.finos.legend.engine.functionActivator.service.FunctionActivatorService; import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; import org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeAppArtifact; +import org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeAppContent; +import org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeAppDeploymentConfiguration; +import org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeAppGenerator; import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentConfiguration; import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentStage; import org.finos.legend.engine.protocol.snowflakeApp.metamodel.SnowflakeDeploymentConfiguration; import org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeDeploymentManager; -import org.finos.legend.engine.protocol.snowflakeApp.metamodel.SnowflakeDeploymentResult; +import org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeDeploymentResult; import org.finos.legend.engine.plan.execution.stores.relational.config.TemporaryTestDbConfiguration; import org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector; import org.finos.legend.engine.plan.generation.PlanGenerator; @@ -37,6 +41,7 @@ import org.finos.legend.engine.protocol.snowflakeApp.metamodel.SnowflakeAppProtocolExtension; import org.finos.legend.pure.generated.Root_meta_external_function_activator_FunctionActivator; import org.finos.legend.pure.generated.Root_meta_external_function_activator_snowflakeApp_SnowflakeApp; +import org.finos.legend.pure.generated.Root_meta_external_function_activator_snowflakeApp_SnowflakeDeploymentConfiguration; import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_RelationalDatabaseConnection; import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy; import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification; @@ -50,7 +55,7 @@ import java.util.List; -public class SnowflakeAppService implements FunctionActivatorService +public class SnowflakeAppService implements FunctionActivatorService { private ConnectionManagerSelector connectionManager; private SnowflakeDeploymentManager snowflakeDeploymentManager; @@ -89,75 +94,31 @@ public boolean supports(Root_meta_external_function_activator_FunctionActivator @Override public MutableList validate(MutableList profiles, PureModel pureModel, Root_meta_external_function_activator_snowflakeApp_SnowflakeApp activator, PureModelContext inputModel, Function> routerExtensions) { - RichIterable sqlExpressions = extractSQLExpressions(pureModel, activator, routerExtensions); - return sqlExpressions.size() != 1 ? - Lists.mutable.with(new SnowflakeAppError("SnowflakeApp can't be used with a plan containing '" + sqlExpressions.size() + "' SQL expressions", sqlExpressions.toList())) : + SnowflakeAppArtifact artifact = SnowflakeAppGenerator.generateArtifact(pureModel, activator, routerExtensions); + int size = ((SnowflakeAppContent)artifact.content).sqlExpressions.size(); + return size != 1 ? + Lists.mutable.with(new SnowflakeAppError("SnowflakeApp can't be used with a plan containing '" + size + "' SQL expressions", ((SnowflakeAppContent)artifact.content).sqlExpressions)) : Lists.mutable.empty(); } @Override - public SnowflakeDeploymentResult publishToSandbox(MutableList profiles, PureModel pureModel, Root_meta_external_function_activator_snowflakeApp_SnowflakeApp activator, PureModelContext inputModel, List runtimeConfigurations, Function> routerExtensions) + public SnowflakeDeploymentResult publishToSandbox(MutableList profiles, PureModel pureModel, Root_meta_external_function_activator_snowflakeApp_SnowflakeApp activator, PureModelContext inputModel, List runtimeConfigurations, Function> routerExtensions) { - Object[] objects = this.extractSQLExpressionsAndConnectionMetadata(pureModel, activator, routerExtensions); - RichIterable sqlExpressions = (RichIterable) objects[0]; - - Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification ds = (Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification) objects[1]; - Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy as = (Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy) objects[2]; - - String applicationName = activator._applicationName(); - SnowflakeDeploymentConfiguration config = new SnowflakeDeploymentConfiguration(applicationName); - - return this.snowflakeDeploymentManager.fakeDeploy(ds, as, applicationName); + SnowflakeAppArtifact artifact = SnowflakeAppGenerator.generateArtifact(pureModel, activator, routerExtensions); + return this.snowflakeDeploymentManager.deploy(profiles, artifact, runtimeConfigurations); } @Override public SnowflakeAppArtifact renderArtifact(PureModel pureModel, Root_meta_external_function_activator_snowflakeApp_SnowflakeApp activator, PureModelContext inputModel, String clientVersion, Function> routerExtensions) { - RichIterable sqlExpressions = extractSQLExpressions(pureModel, activator, routerExtensions); - return new SnowflakeAppArtifact(sqlExpressions); - } - - private RichIterable extractSQLExpressions(PureModel pureModel, Root_meta_external_function_activator_snowflakeApp_SnowflakeApp activator, Function> routerExtensions) - { - PackageableFunction function = activator._function(); - Root_meta_pure_executionPlan_ExecutionPlan executionPlan = PlanGenerator.generateExecutionPlanAsPure((FunctionDefinition) function, null, null, null, pureModel, PlanPlatform.JAVA, null, routerExtensions.apply(pureModel)); - Root_meta_pure_executionPlan_ExecutionNode node = executionPlan._rootExecutionNode(); - return collectAllNodes(node) - .selectInstancesOf(Root_meta_relational_mapping_SQLExecutionNode.class) - .collect(Root_meta_relational_mapping_SQLExecutionNode::_sqlQuery) - .select(x -> !x.toLowerCase().startsWith("alter")); - } - - private Object[] extractSQLExpressionsAndConnectionMetadata(PureModel pureModel, Root_meta_external_function_activator_snowflakeApp_SnowflakeApp activator, Function> routerExtensions) - { - PackageableFunction function = activator._function(); - Root_meta_pure_executionPlan_ExecutionPlan executionPlan = PlanGenerator.generateExecutionPlanAsPure((FunctionDefinition) function, null, null, null, pureModel, PlanPlatform.JAVA, null, routerExtensions.apply(pureModel)); - Root_meta_pure_executionPlan_ExecutionNode node = executionPlan._rootExecutionNode(); - - RichIterable expressions = collectAllNodes(node) - .selectInstancesOf(Root_meta_relational_mapping_SQLExecutionNode.class) - .collect(Root_meta_relational_mapping_SQLExecutionNode::_sqlQuery) - .select(x -> !x.toLowerCase().startsWith("alter")); - - Root_meta_pure_alloy_connections_RelationalDatabaseConnection relCOnn = (Root_meta_pure_alloy_connections_RelationalDatabaseConnection)collectAllNodes(node).selectInstancesOf(Root_meta_relational_mapping_SQLExecutionNode.class) - .getAny() - ._connection(); - Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification ds = (Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification) relCOnn._datasourceSpecification(); - Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy as = (Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy) relCOnn._authenticationStrategy(); - - return new Object[]{expressions, ds, as}; - } - - private RichIterable collectAllNodes(Root_meta_pure_executionPlan_ExecutionNode node) - { - return Lists.mutable.with(node).withAll(node._executionNodes().flatCollect(this::collectAllNodes)); + return SnowflakeAppGenerator.generateArtifact(pureModel, activator, routerExtensions); } @Override - public List selectConfig(List configurations, DeploymentStage stage) + public List selectConfig(List configurations) { - return Lists.mutable.withAll(configurations).select(e -> e instanceof SnowflakeDeploymentConfiguration && e.stage.equals(stage)).collect(e -> (SnowflakeDeploymentConfiguration)e); + return Lists.mutable.withAll(configurations).select(e -> e instanceof SnowflakeAppDeploymentConfiguration).collect(e -> (SnowflakeAppDeploymentConfiguration) e); } diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppArtifact.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppArtifact.java index 5208fe1fcf1..9ab608335d6 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppArtifact.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppArtifact.java @@ -16,19 +16,25 @@ import org.eclipse.collections.api.RichIterable; import org.eclipse.collections.api.factory.Lists; +import org.eclipse.collections.api.list.MutableList; import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorArtifact; public class SnowflakeAppArtifact extends FunctionActivatorArtifact { - public RichIterable sqlExpressions = Lists.mutable.empty(); public SnowflakeAppArtifact() { //empty artifact } - public SnowflakeAppArtifact(RichIterable sqlExpressions) + public SnowflakeAppArtifact(String name, MutableList sqlExpressions) { - this.sqlExpressions = sqlExpressions; + this.content = new SnowflakeAppContent(name, sqlExpressions); + } + + public SnowflakeAppArtifact(String name, MutableList sqlExpressions, SnowflakeAppDeploymentConfiguration config) + { + this.content = new SnowflakeAppContent(name, sqlExpressions); + this.deploymentConfiguration = config; } } diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppArtifactGenerationExtension.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppArtifactGenerationExtension.java index 3f71520de0f..1d916df4b67 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppArtifactGenerationExtension.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppArtifactGenerationExtension.java @@ -26,7 +26,8 @@ public class SnowflakeAppArtifactGenerationExtension implements ArtifactGenerationExtension { - private static final String ROOT_PATH = "Snowflake App "; + private static final String ROOT_PATH = "snowflakeApp"; + private static final String FILENAME = "snowflakeArtifact.json"; @Override public String getKey() diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppContent.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppContent.java new file mode 100644 index 00000000000..388b537959b --- /dev/null +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppContent.java @@ -0,0 +1,33 @@ +// Copyright 2023 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.snowflakeApp.deployment; + +import org.eclipse.collections.api.RichIterable; +import org.eclipse.collections.api.factory.Lists; +import org.eclipse.collections.api.list.MutableList; +import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorDeploymentContent; + +public class SnowflakeAppContent extends FunctionActivatorDeploymentContent +{ + public MutableList sqlExpressions = Lists.mutable.empty(); + + public String applicationName; + + public SnowflakeAppContent(String name, MutableList sqlExpressions) + { + this.applicationName = name; + this.sqlExpressions = sqlExpressions; + } +} diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppDeploymentConfiguration.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppDeploymentConfiguration.java new file mode 100644 index 00000000000..6308e215f8b --- /dev/null +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppDeploymentConfiguration.java @@ -0,0 +1,23 @@ +// Copyright 2023 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.snowflakeApp.deployment; + +import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorDeploymentConfiguration; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.RelationalDatabaseConnection; + +public class SnowflakeAppDeploymentConfiguration extends FunctionActivatorDeploymentConfiguration +{ + RelationalDatabaseConnection connection; +} diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppGenerator.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppGenerator.java new file mode 100644 index 00000000000..9a0616a1d61 --- /dev/null +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppGenerator.java @@ -0,0 +1,79 @@ +// Copyright 2023 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.snowflakeApp.deployment; + +import org.eclipse.collections.api.RichIterable; +import org.eclipse.collections.api.block.function.Function; +import org.eclipse.collections.impl.factory.Lists; +import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; +import org.finos.legend.engine.plan.generation.PlanGenerator; +import org.finos.legend.engine.plan.platform.PlanPlatform; +import org.finos.legend.pure.generated.Root_meta_external_function_activator_snowflakeApp_SnowflakeApp; +import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_RelationalDatabaseConnection; +import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy; +import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification; +import org.finos.legend.pure.generated.Root_meta_pure_executionPlan_ExecutionNode; +import org.finos.legend.pure.generated.Root_meta_pure_executionPlan_ExecutionPlan; +import org.finos.legend.pure.generated.Root_meta_pure_extension_Extension; +import org.finos.legend.pure.generated.Root_meta_relational_mapping_SQLExecutionNode; +import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.FunctionDefinition; +import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.PackageableFunction; + +public class SnowflakeAppGenerator +{ + + public static SnowflakeAppArtifact generateArtifact(PureModel pureModel, Root_meta_external_function_activator_snowflakeApp_SnowflakeApp activator, Function> routerExtensions) + { + RichIterable sqlExpressions = extractSQLExpressions(pureModel, activator, routerExtensions); + return new SnowflakeAppArtifact(activator._applicationName(), Lists.mutable.withAll(sqlExpressions)); + } + + private static RichIterable extractSQLExpressions(PureModel pureModel, Root_meta_external_function_activator_snowflakeApp_SnowflakeApp activator, Function> routerExtensions) + { + PackageableFunction function = activator._function(); + Root_meta_pure_executionPlan_ExecutionPlan executionPlan = PlanGenerator.generateExecutionPlanAsPure((FunctionDefinition) function, null, null, null, pureModel, PlanPlatform.JAVA, null, routerExtensions.apply(pureModel)); + Root_meta_pure_executionPlan_ExecutionNode node = executionPlan._rootExecutionNode(); + return collectAllNodes(node) + .selectInstancesOf(Root_meta_relational_mapping_SQLExecutionNode.class) + .collect(Root_meta_relational_mapping_SQLExecutionNode::_sqlQuery) + .select(x -> !x.toLowerCase().startsWith("alter")); + } + + private static Object[] extractSQLExpressionsAndConnectionMetadata(PureModel pureModel, Root_meta_external_function_activator_snowflakeApp_SnowflakeApp activator, Function> routerExtensions) + { + PackageableFunction function = activator._function(); + Root_meta_pure_executionPlan_ExecutionPlan executionPlan = PlanGenerator.generateExecutionPlanAsPure((FunctionDefinition) function, null, null, null, pureModel, PlanPlatform.JAVA, null, routerExtensions.apply(pureModel)); + Root_meta_pure_executionPlan_ExecutionNode node = executionPlan._rootExecutionNode(); + + RichIterable expressions = collectAllNodes(node) + .selectInstancesOf(Root_meta_relational_mapping_SQLExecutionNode.class) + .collect(Root_meta_relational_mapping_SQLExecutionNode::_sqlQuery) + .select(x -> !x.toLowerCase().startsWith("alter")); + + Root_meta_pure_alloy_connections_RelationalDatabaseConnection relCOnn = (Root_meta_pure_alloy_connections_RelationalDatabaseConnection)collectAllNodes(node).selectInstancesOf(Root_meta_relational_mapping_SQLExecutionNode.class) + .getAny() + ._connection(); + Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification ds = (Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification) relCOnn._datasourceSpecification(); + Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy as = (Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy) relCOnn._authenticationStrategy(); + + return new Object[]{expressions, ds, as}; + } + + private static RichIterable collectAllNodes(Root_meta_pure_executionPlan_ExecutionNode node) + { + return Lists.mutable.with(node).withAll(node._executionNodes().flatCollect(SnowflakeAppGenerator::collectAllNodes)); + } +} diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeDeploymentManager.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeDeploymentManager.java index de9d2bc4240..5cd7369a2f4 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeDeploymentManager.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeDeploymentManager.java @@ -14,49 +14,89 @@ package org.finos.legend.engine.language.snowflakeApp.deployment; +import org.eclipse.collections.api.factory.Maps; +import org.eclipse.collections.api.list.ImmutableList; import org.eclipse.collections.api.list.MutableList; import org.eclipse.collections.impl.factory.Lists; import org.finos.legend.engine.functionActivator.deployment.DeploymentManager; -import org.finos.legend.engine.language.pure.dsl.generation.extension.Artifact; -import org.finos.legend.engine.language.pure.dsl.generation.extension.ArtifactGenerationExtension; +import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorArtifact; import org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool; +import org.finos.legend.engine.plan.execution.PlanExecutor; +import org.finos.legend.engine.plan.execution.stores.relational.RelationalExecutor; +import org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector; +import org.finos.legend.engine.plan.execution.stores.relational.plugin.RelationalStoreState; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.DatabaseConnection; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.RelationalDatabaseConnection; import org.finos.legend.engine.protocol.snowflakeApp.metamodel.SnowflakeDeploymentConfiguration; -import org.finos.legend.engine.protocol.snowflakeApp.metamodel.SnowflakeDeploymentResult; -import org.finos.legend.pure.generated.Root_meta_external_function_activator_snowflakeApp_SnowflakeApp; +import org.finos.legend.engine.shared.core.identity.Identity; import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy; import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification; import org.pac4j.core.profile.CommonProfile; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.sql.Statement; import java.util.List; +import java.util.Map; -public class SnowflakeDeploymentManager implements DeploymentManager +public class SnowflakeDeploymentManager implements DeploymentManager { + private static final Logger LOGGER = LoggerFactory.getLogger(SnowflakeDeploymentManager.class); + private SnowflakeAppDeploymentTool snowflakeAppDeploymentTool; + private PlanExecutor planExecutor; + private ConnectionManagerSelector connectionManager; public SnowflakeDeploymentManager(SnowflakeAppDeploymentTool deploymentTool) { this.snowflakeAppDeploymentTool = deploymentTool; } + public SnowflakeDeploymentManager(PlanExecutor planExecutor) + { + this.planExecutor = planExecutor; + connectionManager = ((RelationalStoreState)planExecutor.getExtraExecutors().select(c -> c instanceof RelationalExecutor).getFirst().getStoreState()).getRelationalExecutor().getConnectionManager(); + } + @Override - public SnowflakeDeploymentResult deploy(MutableList profiles, SnowflakeAppArtifact artifact, Root_meta_external_function_activator_snowflakeApp_SnowflakeApp activator) + public boolean canDeploy(FunctionActivatorArtifact artifact) { - return new SnowflakeDeploymentResult(true); + return artifact instanceof SnowflakeAppArtifact; } @Override - public SnowflakeDeploymentResult deploy(MutableList profiles, SnowflakeAppArtifact artifact, Root_meta_external_function_activator_snowflakeApp_SnowflakeApp activator, List availableRuntimeConfigurations) + public SnowflakeDeploymentResult deploy(MutableList profiles, SnowflakeAppArtifact artifact) { - return null; + return new SnowflakeDeploymentResult("",true); } @Override - public boolean canDeploy(Root_meta_external_function_activator_snowflakeApp_SnowflakeApp artifact) + public SnowflakeDeploymentResult deploy(MutableList profiles, SnowflakeAppArtifact artifact, List availableRuntimeConfigurations) { - return true; + LOGGER.info("Starting deployment"); + SnowflakeDeploymentResult result; + try (Connection jdbcConnection = this.getDeploymentConnection(profiles, artifact)) + { + String appName = ((SnowflakeAppContent)artifact.content).applicationName; + jdbcConnection.setAutoCommit(false); + this.deployImpl(jdbcConnection, appName); + jdbcConnection.commit(); + LOGGER.info("Completed deployment successfully"); + result = new SnowflakeDeploymentResult(appName, true); + } + catch (Exception e) + { + LOGGER.info("Completed deployment with error"); + result = new SnowflakeDeploymentResult(Lists.mutable.with(e.getMessage())); + } + return result; } + public SnowflakeAppDeploymentTool getSnowflakeAppDeploymentTool() { return snowflakeAppDeploymentTool; @@ -68,7 +108,7 @@ public SnowflakeDeploymentResult fakeDeploy(Root_meta_pure_alloy_connections_all try { this.snowflakeAppDeploymentTool.deploy(datasourceSpecification, authenticationStrategy, applicationName); - return new SnowflakeDeploymentResult(true); + return new SnowflakeDeploymentResult("",true); } catch (Exception e) { @@ -76,4 +116,77 @@ public SnowflakeDeploymentResult fakeDeploy(Root_meta_pure_alloy_connections_all } } + public java.sql.Connection getDeploymentConnection(MutableList profiles, RelationalDatabaseConnection connection) + { + return this.connectionManager.getDatabaseConnection(profiles, (DatabaseConnection) connection); + } + + public void deployImpl(Connection jdbcConnection, String context) throws Exception + { + Statement statement = jdbcConnection.createStatement(); + String deploymentTableName = this.getDeploymentTableName(jdbcConnection); + String createTableSQL = String.format("create table %s (id INTEGER, message VARCHAR(1000)) if not exists", deploymentTableName); + boolean createTableStatus = statement.execute(createTableSQL); + String insertSQL = String.format("insert into %s(id, message) values(%d, '%s')", deploymentTableName, System.currentTimeMillis(), context); + boolean insertStatus = statement.execute(insertSQL); + } + + public String getDeploymentTableName(Connection jdbcConnection) throws SQLException + { + String catalogName = jdbcConnection.getCatalog(); + String schema = "NATIVE_APP"; + return String.format("%s.%s.LEGEND_SNOWFLAKE_APP_DEPLOYMENT", catalogName, schema); + } + + public java.sql.Connection getDeploymentConnection(MutableList profiles, SnowflakeAppArtifact artifact) + { + RelationalDatabaseConnection connection = extractConnectionFromArtifact(artifact); + return this.connectionManager.getDatabaseConnection(profiles, connection); + } + + public RelationalDatabaseConnection extractConnectionFromArtifact(SnowflakeAppArtifact artifact) + { + return ((SnowflakeAppDeploymentConfiguration)artifact.deploymentConfiguration).connection; + } + + public ImmutableList getDeployed(MutableList profiles, RelationalDatabaseConnection connection) throws Exception + { + ImmutableList deployments = null; + + LOGGER.info("Querying deployment"); + try (Connection jdbcConnection = this.getDeploymentConnection(profiles, connection)) + { + deployments = this.getDeployedImpl(jdbcConnection); + LOGGER.info("Completed querying deployments successfully"); + } + catch (Exception e) + { + LOGGER.info("Completed querying deployments with error"); + throw e; + } + return deployments; + } + + public ImmutableList getDeployedImpl(Connection jdbcConnection) throws Exception + { + MutableList deployments = Lists.mutable.empty(); + String deploymentTableName = this.getDeploymentTableName(jdbcConnection); + String querySql = String.format("select * from %s order by id", deploymentTableName); + Statement statement = jdbcConnection.createStatement(); + ResultSet resultSet = statement.executeQuery(querySql); + while (resultSet.next()) + { + DeploymentInfo deploymentInfo = new DeploymentInfo(); + deploymentInfo.attributes.put("id", resultSet.getLong(1)); + deploymentInfo.attributes.put("message", resultSet.getString(2)); + deployments.add(deploymentInfo); + } + return deployments.toImmutable(); + } + + public static class DeploymentInfo + { + public Map attributes = Maps.mutable.empty(); + } + } diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel/SnowflakeDeploymentResult.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeDeploymentResult.java similarity index 73% rename from legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel/SnowflakeDeploymentResult.java rename to legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeDeploymentResult.java index 6fb26b26684..cfc0a154fee 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel/SnowflakeDeploymentResult.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeDeploymentResult.java @@ -12,19 +12,20 @@ // See the License for the specific language governing permissions and // limitations under the License. -package org.finos.legend.engine.protocol.snowflakeApp.metamodel; +package org.finos.legend.engine.language.snowflakeApp.deployment; import org.eclipse.collections.api.list.MutableList; -import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentResult; +import org.finos.legend.engine.functionActivator.deployment.DeploymentResult; public class SnowflakeDeploymentResult extends DeploymentResult { public MutableList errors; - public SnowflakeDeploymentResult(boolean result) + public SnowflakeDeploymentResult(String activatorIdentifier, boolean result) { - this.successful = false; + this.successful = result; + this.activatorIdentifier = activatorIdentifier; } public SnowflakeDeploymentResult(MutableList errors) diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.dsl.generation.extension.ArtifactGenerationExtension b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.dsl.generation.extension.ArtifactGenerationExtension new file mode 100644 index 00000000000..cc58504ac24 --- /dev/null +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.dsl.generation.extension.ArtifactGenerationExtension @@ -0,0 +1 @@ +org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeAppArtifactGenerationExtension diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml index 97e615f3326..b8d03d2d61e 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml @@ -50,11 +50,15 @@ org.finos.legend.engine - legend-engine-xt-functionActivator-protocol + legend-engine-language-pure-compiler org.finos.legend.engine - legend-engine-language-pure-compiler + legend-engine-protocol-pure + + + org.finos.legend.engine + legend-engine-xt-relationalStore-pure diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/src/main/java/org/finos/legend/engine/language/snowflakeApp/compiler/toPureGraph/SnowflakeAppCompilerExtension.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/src/main/java/org/finos/legend/engine/language/snowflakeApp/compiler/toPureGraph/SnowflakeAppCompilerExtension.java index abd8ab77ef6..c96373bb55f 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/src/main/java/org/finos/legend/engine/language/snowflakeApp/compiler/toPureGraph/SnowflakeAppCompilerExtension.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/src/main/java/org/finos/legend/engine/language/snowflakeApp/compiler/toPureGraph/SnowflakeAppCompilerExtension.java @@ -25,6 +25,7 @@ import org.finos.legend.pure.generated.Root_meta_external_function_activator_snowflakeApp_SnowflakeApp_Impl; import org.finos.legend.pure.generated.Root_meta_external_function_activator_snowflakeApp_SnowflakeDeploymentConfiguration; import org.finos.legend.pure.generated.Root_meta_external_function_activator_snowflakeApp_SnowflakeDeploymentConfiguration_Impl; +import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_RelationalDatabaseConnection; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.PackageableFunction; import org.finos.legend.pure.m3.navigation.function.FunctionDescriptor; @@ -82,6 +83,7 @@ public Root_meta_external_function_activator_snowflakeApp_SnowflakeApp buildSnow public Root_meta_external_function_activator_snowflakeApp_SnowflakeDeploymentConfiguration buildDeploymentConfig(SnowflakeDeploymentConfiguration configuration, CompileContext context) { return new Root_meta_external_function_activator_snowflakeApp_SnowflakeDeploymentConfiguration_Impl("") - ._stage(context.pureModel.getEnumValue("meta::external::function::activator::DeploymentStage", configuration.stage.name())); + ._target((Root_meta_pure_alloy_connections_RelationalDatabaseConnection) context.resolveConnection(configuration.activationConnection.connection, configuration.sourceInformation)); + // ._stage(context.pureModel.getEnumValue("meta::external::function::activator::DeploymentStage", configuration.stage.name())); } } diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml index bdf4438fa92..541a62bf835 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml @@ -108,10 +108,6 @@ - - org.finos.legend.engine - legend-engine-shared-core - org.finos.legend.engine legend-engine-xt-snowflakeApp-protocol @@ -120,10 +116,6 @@ org.finos.legend.engine legend-engine-language-pure-grammar - - org.finos.legend.engine - legend-engine-xt-functionActivator-protocol - org.finos.legend.engine legend-engine-protocol-pure diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/SnowflakeAppParserGrammar.g4 b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/SnowflakeAppParserGrammar.g4 index f6600e0f521..be29564551c 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/SnowflakeAppParserGrammar.g4 +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/SnowflakeAppParserGrammar.g4 @@ -56,7 +56,7 @@ activation: SNOWFLAKE_APP__ACTIVATION COLON qualifiedName SE // ----------------------------------- Deployment ------------------------------------------------------ deploymentConfig: CONFIGURATION qualifiedName BRACE_OPEN - (activationConnection | stage) + activationConnection BRACE_CLOSE ; diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/main/java/org/finos/legend/engine/language/snowflakeApp/grammar/from/SnowflakeAppTreeWalker.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/main/java/org/finos/legend/engine/language/snowflakeApp/grammar/from/SnowflakeAppTreeWalker.java index 21c043b1c85..31444f92ce3 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/main/java/org/finos/legend/engine/language/snowflakeApp/grammar/from/SnowflakeAppTreeWalker.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/main/java/org/finos/legend/engine/language/snowflakeApp/grammar/from/SnowflakeAppTreeWalker.java @@ -70,19 +70,6 @@ private SnowflakeDeploymentConfiguration visitDeploymentConfig(SnowflakeAppParse ? Collections.emptyList() : ctx.activationConnection().qualifiedName().packagePath().identifier(), ctx.activationConnection().qualifiedName().identifier()); pointer.sourceInformation = walkerSourceInformation.getSourceInformation(ctx.activationConnection().qualifiedName()); config.activationConnection = pointer; - String stage = ctx.stage().getText(); - if (stage.equals("PRODUCTION")) - { - config.stage = DeploymentStage.PRODUCTION; - } - else if (stage.equals("SANDBOX")) - { - config.stage = DeploymentStage.SANDBOX; - } - else - { - throw new EngineException("Valid types for deployment stage are: SANDBOX, PRODUCTION"); - } return config; } diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel/SnowflakeDeploymentConfiguration.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel/SnowflakeDeploymentConfiguration.java index 1db41b25cd6..0aff2c51431 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel/SnowflakeDeploymentConfiguration.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel/SnowflakeDeploymentConfiguration.java @@ -21,12 +21,7 @@ public class SnowflakeDeploymentConfiguration extends DeploymentConfiguration { public ConnectionPointer activationConnection; - public String applicationName; - - public SnowflakeDeploymentConfiguration(String applicationName) - { - this.applicationName = applicationName; - } +// public String applicationName; public SnowflakeDeploymentConfiguration() { From 17a30acfefb16384dfaa7fcdbd1c3059a1c7bd07 Mon Sep 17 00:00:00 2001 From: gs-gunjan <72594207+gs-gunjan@users.noreply.github.com> Date: Wed, 11 Oct 2023 11:21:51 +0530 Subject: [PATCH 02/80] Fix Snowflake temp table creation with BIT columns (#2352) --- .../driver/vendors/snowflake/SnowflakeCommands.java | 6 +++++- .../relational/connection/ds/TestSnowflakeCommands.java | 5 +++-- 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/vendors/snowflake/SnowflakeCommands.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/vendors/snowflake/SnowflakeCommands.java index b5ccb24ff50..ad04b03715e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/vendors/snowflake/SnowflakeCommands.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/driver/vendors/snowflake/SnowflakeCommands.java @@ -14,6 +14,8 @@ package org.finos.legend.engine.plan.execution.stores.relational.connection.driver.vendors.snowflake; +import org.eclipse.collections.api.factory.Maps; +import org.eclipse.collections.api.map.ImmutableMap; import org.finos.legend.engine.plan.execution.stores.relational.connection.driver.commands.Column; 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; @@ -25,6 +27,8 @@ public class SnowflakeCommands extends RelationalDatabaseCommands { + private static final ImmutableMap columnTypeToSqlTextMap = Maps.immutable.of("BIT", "BOOLEAN"); + @Override public String processTempTableName(String tempTableName) { @@ -50,7 +54,7 @@ public List createAndLoadTempTable(String tableName, List column optionalCSVFileLocation = optionalCSVFileLocation.substring(1); } List strings = Arrays.asList( - "CREATE TEMPORARY TABLE " + tableName + " " + columns.stream().map(c -> c.name + " " + c.type).collect(Collectors.joining(",", "(", ")")), + "CREATE TEMPORARY TABLE " + tableName + " " + columns.stream().map(c -> c.name + " " + columnTypeToSqlTextMap.getIfAbsentValue(c.type, c.type)).collect(Collectors.joining(",", "(", ")")), "CREATE OR REPLACE TEMPORARY STAGE " + tempStageName(), "PUT file:///" + optionalCSVFileLocation + " @" + tempStageName() + "/" + optionalCSVFileLocation + " PARALLEL = 16 AUTO_COMPRESS = TRUE", "COPY INTO " + tableName + " FROM @" + tempStageName() + "/" + optionalCSVFileLocation + " file_format = (type = CSV field_optionally_enclosed_by= '\"')", diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/connection/ds/TestSnowflakeCommands.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/connection/ds/TestSnowflakeCommands.java index c47539f68b3..f0ccee880d4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/connection/ds/TestSnowflakeCommands.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/connection/ds/TestSnowflakeCommands.java @@ -34,12 +34,13 @@ public void testTempTableCommands() throws IOException ImmutableList columns = Lists.immutable.of( new Column("a", "VARCHAR(100)"), - new Column("b", "VARCHAR(100)") + new Column("b", "VARCHAR(100)"), + new Column("c", "BIT") ); List sqlStatements = snowflakeCommands.createAndLoadTempTable("temp_1", columns.castToList(), "/tmp/temp.csv"); ImmutableList expectedSQLStatements = Lists.immutable.of( - "CREATE TEMPORARY TABLE temp_1 (a VARCHAR(100),b VARCHAR(100))", + "CREATE TEMPORARY TABLE temp_1 (a VARCHAR(100),b VARCHAR(100),c BOOLEAN)", "CREATE OR REPLACE TEMPORARY STAGE LEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.LEGEND_TEMP_STAGE", "PUT file:///tmp/temp.csv @LEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.LEGEND_TEMP_STAGE/tmp/temp.csv PARALLEL = 16 AUTO_COMPRESS = TRUE", "COPY INTO temp_1 FROM @LEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.LEGEND_TEMP_STAGE/tmp/temp.csv file_format = (type = CSV field_optionally_enclosed_by= '\"')", From cc1753069b75d2c0e16ecf04688811171414a209 Mon Sep 17 00:00:00 2001 From: Yannan <73408381+YannanGao-gs@users.noreply.github.com> Date: Wed, 11 Oct 2023 14:00:43 -0400 Subject: [PATCH 03/80] Revert "Connection equality added for relational database connections - legend using equality key based checks (#2315)" (#2359) This reverts commit 1039d488414697dea27b644cf6bd2d52f3009443. --- .../core_relational_athena.definition.json | 2 +- .../connection/connectionEqualityTest.pure | 46 ------- .../relational/connection/metamodel.pure | 6 +- ...st_Pure_Relational_ConnectionEquality.java | 31 ----- .../core_relational_bigquery.definition.json | 2 +- .../connection/bigQuerySpecification.pure | 8 +- .../connection/connectionEqualityTest.pure | 47 ------- ...st_Pure_Relational_ConnectionEquality.java | 31 ----- ...core_relational_databricks.definition.json | 2 +- .../connection/connectionEqualityTest.pure | 47 ------- .../relational/connection/metamodel.pure | 8 +- ...st_Pure_Relational_ConnectionEquality.java | 31 ----- ...core_relational___dbtype__.definition.json | 2 +- .../connection/connectionEqualityTest.pure | 47 ------- ...st_Pure_Relational_ConnectionEquality.java | 31 ----- .../relational/connection/metamodel.pure | 12 +- .../core_relational_snowflake.definition.json | 2 +- .../connection/connectionEqualityTest.pure | 48 -------- .../relational/connection/metamodel.pure | 26 ++-- ...st_Pure_Relational_ConnectionEquality.java | 31 ----- .../connection/spannerSpecification.pure | 10 +- .../relational/contract/storeContract.pure | 27 ---- .../relational/extensions/extension.pure | 7 +- .../connection/authenticationStrategy.pure | 17 +-- .../connection/datasourceSpecification.pure | 17 ++- .../tests/testRelationalExtension.pure | 115 ------------------ 26 files changed, 60 insertions(+), 593 deletions(-) delete mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/connection/connectionEqualityTest.pure delete mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java delete mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/runtime/connection/connectionEqualityTest.pure delete mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java delete mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/connection/connectionEqualityTest.pure delete mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java delete mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__/relational/connection/connectionEqualityTest.pure delete mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java delete mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/connection/connectionEqualityTest.pure delete mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena.definition.json b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena.definition.json index 7a71e1f48c8..608b107464f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena.definition.json +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena.definition.json @@ -1,6 +1,6 @@ { "name": "core_relational_athena", - "pattern": "(meta::relational::functions::sqlQueryToString::athena|meta::relational::tests::sqlQueryToString::athena|meta::relational::tests::connEquality|meta::pure::alloy::connections|meta::protocols::pure)(::.*)?", + "pattern": "(meta::relational::functions::sqlQueryToString::athena|meta::relational::tests::sqlQueryToString::athena|meta::pure::alloy::connections|meta::protocols::pure)(::.*)?", "dependencies": [ "platform", "platform_functions", diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/connection/connectionEqualityTest.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/connection/connectionEqualityTest.pure deleted file mode 100644 index ad754b2feda..00000000000 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/connection/connectionEqualityTest.pure +++ /dev/null @@ -1,46 +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. - -import meta::relational::metamodel::execute::tests::*; -import meta::pure::alloy::connections::*; -import meta::pure::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::testConnectionEqualityAllSameAthena() : Boolean[1] -{ - let c1 = ^RelationalDatabaseConnection( - element = 'Store1', - type = DatabaseType.Athena, - datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::AthenaDatasourceSpecification(awsRegion='awsR', s3OutputLocation='s3OL', databaseName='db'), - authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::ApiTokenAuthenticationStrategy(apiToken='token') - ); - - let c2 = ^RelationalDatabaseConnection( - element = '', - type = DatabaseType.Athena, - datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::AthenaDatasourceSpecification(awsRegion='awsR', s3OutputLocation='s3OL', databaseName='db'), - authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::ApiTokenAuthenticationStrategy(apiToken='token') - ); - - assert(runRelationalRouterExtensionConnectionEquality($c1, $c2)); - -} - diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/connection/metamodel.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/connection/metamodel.pure index 3d5185442bd..5af0eea4fad 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/connection/metamodel.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/connection/metamodel.pure @@ -14,7 +14,7 @@ Class meta::pure::alloy::connections::alloy::specification::AthenaDatasourceSpecification extends meta::pure::alloy::connections::alloy::specification::DatasourceSpecification { - <> awsRegion: String[1]; - <> s3OutputLocation: String[1]; - <> databaseName: String[1]; + awsRegion: String[1]; + s3OutputLocation: String[1]; + databaseName: String[1]; } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java deleted file mode 100644 index c072278365f..00000000000 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2022 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 junit.framework.TestSuite; -import org.finos.legend.pure.m3.execution.test.PureTestBuilder; -import org.finos.legend.pure.m3.execution.test.TestCollection; -import org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport; -import org.finos.legend.pure.runtime.java.compiled.testHelper.PureTestBuilderCompiled; - -public class Test_Pure_Relational_ConnectionEquality -{ - public static TestSuite suite() - { - String testPackage = "meta::relational::tests::connEquality"; - CompiledExecutionSupport executionSupport = PureTestBuilderCompiled.getClassLoaderExecutionSupport(); - return PureTestBuilderCompiled.buildSuite(TestCollection.collectTests(testPackage, executionSupport.getProcessorSupport(), ci -> PureTestBuilder.satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport); - } -} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery.definition.json b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery.definition.json index c6169ba4970..a0d5f3d1981 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery.definition.json +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery.definition.json @@ -1,6 +1,6 @@ { "name": "core_relational_bigquery", - "pattern": "(meta::relational::functions::sqlQueryToString::bigQuery|meta::relational::tests::connEquality|meta::relational::tests::sqlQueryToString::bigQuery|meta::relational::bigQuery::tests|meta::pure::alloy::connections|meta::protocols::pure)(::.*)?", + "pattern": "(meta::relational::functions::sqlQueryToString::bigQuery|meta::relational::tests::sqlQueryToString::bigQuery|meta::relational::bigQuery::tests|meta::pure::alloy::connections|meta::protocols::pure)(::.*)?", "dependencies": [ "platform", "platform_functions", diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/runtime/connection/bigQuerySpecification.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/runtime/connection/bigQuerySpecification.pure index b2fd2efd681..2a26ad1a66c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/runtime/connection/bigQuerySpecification.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/runtime/connection/bigQuerySpecification.pure @@ -14,8 +14,8 @@ Class meta::pure::alloy::connections::alloy::specification::BigQueryDatasourceSpecification extends meta::pure::alloy::connections::alloy::specification::DatasourceSpecification { - <> projectId:String[1]; - <> defaultDataset:String[1]; - <> proxyHost: String[0..1]; - <> proxyPort: String[0..1]; + projectId:String[1]; + defaultDataset:String[1]; + proxyHost: String[0..1]; + proxyPort: String[0..1]; } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/runtime/connection/connectionEqualityTest.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/runtime/connection/connectionEqualityTest.pure deleted file mode 100644 index f418fc295bf..00000000000 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/runtime/connection/connectionEqualityTest.pure +++ /dev/null @@ -1,47 +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. - -import meta::relational::metamodel::execute::tests::*; -import meta::pure::alloy::connections::*; -import meta::pure::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::testConnectionEqualityAllSameBigQuery() : Boolean[1] -{ - let c1 = ^RelationalDatabaseConnection( - element = 'Store1', - type = DatabaseType.Snowflake, - datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::BigQueryDatasourceSpecification(projectId='project', defaultDataset='defDs', proxyHost='ph', proxyPort='8080'), - authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::ApiTokenAuthenticationStrategy(apiToken='token') - ); - - let c2 = ^RelationalDatabaseConnection( - element = '', - type = DatabaseType.Snowflake, - datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::BigQueryDatasourceSpecification(projectId='project', defaultDataset='defDs', proxyHost='ph', proxyPort='8080'), - authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::ApiTokenAuthenticationStrategy(apiToken='token') - ); - - assert(runRelationalRouterExtensionConnectionEquality($c1, $c2)); - -} - diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java deleted file mode 100644 index c072278365f..00000000000 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2022 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 junit.framework.TestSuite; -import org.finos.legend.pure.m3.execution.test.PureTestBuilder; -import org.finos.legend.pure.m3.execution.test.TestCollection; -import org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport; -import org.finos.legend.pure.runtime.java.compiled.testHelper.PureTestBuilderCompiled; - -public class Test_Pure_Relational_ConnectionEquality -{ - public static TestSuite suite() - { - String testPackage = "meta::relational::tests::connEquality"; - CompiledExecutionSupport executionSupport = PureTestBuilderCompiled.getClassLoaderExecutionSupport(); - return PureTestBuilderCompiled.buildSuite(TestCollection.collectTests(testPackage, executionSupport.getProcessorSupport(), ci -> PureTestBuilder.satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport); - } -} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks.definition.json b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks.definition.json index 9f1b5e9e0ba..878f243e236 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks.definition.json +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks.definition.json @@ -1,5 +1,5 @@ { "name" : "core_relational_databricks", - "pattern" : "(meta::relational::functions::sqlQueryToString::databricks|meta::relational::tests::sqlQueryToString::databricks|meta::relational::tests::connEquality|meta::relational::databricks::tests|meta::relational::tests::functions::sqlstring::databricks|meta::pure::alloy::connections|meta::protocols::pure)(::.*)?", + "pattern" : "(meta::relational::functions::sqlQueryToString::databricks|meta::relational::tests::sqlQueryToString::databricks|meta::relational::databricks::tests|meta::relational::tests::functions::sqlstring::databricks|meta::pure::alloy::connections|meta::protocols::pure)(::.*)?", "dependencies" : ["platform", "platform_functions", "platform_store_relational", "platform_dsl_mapping", "core_functions", "core", "core_relational"] } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/connection/connectionEqualityTest.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/connection/connectionEqualityTest.pure deleted file mode 100644 index 5af95394f2b..00000000000 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/connection/connectionEqualityTest.pure +++ /dev/null @@ -1,47 +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. - -import meta::relational::metamodel::execute::tests::*; -import meta::pure::alloy::connections::*; -import meta::pure::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::testConnectionEqualityAllSameDataBricks() : Boolean[1] -{ - let c1 = ^RelationalDatabaseConnection( - element = 'Store1', - type = DatabaseType.Databricks, - datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::DatabricksDatasourceSpecification(hostname='host', port='8080', protocol='http', httpPath='http://path'), - authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::ApiTokenAuthenticationStrategy(apiToken='token') - ); - - let c2 = ^RelationalDatabaseConnection( - element = '', - type = DatabaseType.Databricks, - datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::DatabricksDatasourceSpecification(hostname='host', port='8080', protocol='http', httpPath='http://path'), - authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::ApiTokenAuthenticationStrategy(apiToken='token') - ); - - assert(runRelationalRouterExtensionConnectionEquality($c1, $c2)); - -} - - diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/connection/metamodel.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/connection/metamodel.pure index fec225e36c7..6c3138786f6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/connection/metamodel.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/connection/metamodel.pure @@ -14,8 +14,8 @@ Class meta::pure::alloy::connections::alloy::specification::DatabricksDatasourceSpecification extends meta::pure::alloy::connections::alloy::specification::DatasourceSpecification { - <> hostname:String[1]; - <> port:String[1]; - <> protocol:String[1]; - <> httpPath:String[1]; + hostname:String[1]; + port:String[1]; + protocol:String[1]; + httpPath:String[1]; } \ No newline at end of file diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java deleted file mode 100644 index c072278365f..00000000000 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2022 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 junit.framework.TestSuite; -import org.finos.legend.pure.m3.execution.test.PureTestBuilder; -import org.finos.legend.pure.m3.execution.test.TestCollection; -import org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport; -import org.finos.legend.pure.runtime.java.compiled.testHelper.PureTestBuilderCompiled; - -public class Test_Pure_Relational_ConnectionEquality -{ - public static TestSuite suite() - { - String testPackage = "meta::relational::tests::connEquality"; - CompiledExecutionSupport executionSupport = PureTestBuilderCompiled.getClassLoaderExecutionSupport(); - return PureTestBuilderCompiled.buildSuite(TestCollection.collectTests(testPackage, executionSupport.getProcessorSupport(), ci -> PureTestBuilder.satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport); - } -} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__.definition.json b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__.definition.json index 2c147d30fc1..d199b747ec2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__.definition.json +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__.definition.json @@ -1,5 +1,5 @@ { "name" : "core_relational_${dbtype}", - "pattern" : "(meta::relational::functions::sqlQueryToString::${dbType}|meta::relational::tests::connEquality|meta::relational::tests::sqlQueryToString::${dbType}|meta::pure::alloy::connections|meta::protocols::pure)(::.*)?", + "pattern" : "(meta::relational::functions::sqlQueryToString::${dbType}|meta::relational::tests::sqlQueryToString::${dbType}|meta::pure::alloy::connections|meta::protocols::pure)(::.*)?", "dependencies" : ["platform", "platform_functions", "platform_store_relational", "core", "core_relational"] } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__/relational/connection/connectionEqualityTest.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__/relational/connection/connectionEqualityTest.pure deleted file mode 100644 index 8467968aaca..00000000000 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__/relational/connection/connectionEqualityTest.pure +++ /dev/null @@ -1,47 +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. - -import meta::relational::metamodel::execute::tests::*; -import meta::pure::alloy::connections::*; -import meta::pure::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::testConnectionEqualityAllSame__dbtype__() : Boolean[1] -{ - let c1 = ^RelationalDatabaseConnection( - element = 'Store1', - type = DatabaseType.__dbtype__, - datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::__dbtype__DatasourceSpecification(), - authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::ApiTokenAuthenticationStrategy(apiToken='token') - ); - - let c2 = ^RelationalDatabaseConnection( - element = '', - type = DatabaseType.Snowflake, - datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::BigQueryDatasourceSpecification(projectId='project', defaultDataset='defDs', proxyHost='ph', proxyPort='8080'), - authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::ApiTokenAuthenticationStrategy(apiToken='token') - ); - - assert(runRelationalRouterExtensionConnectionEquality($c1, $c2)); - -} - diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java deleted file mode 100644 index c072278365f..00000000000 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2022 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 junit.framework.TestSuite; -import org.finos.legend.pure.m3.execution.test.PureTestBuilder; -import org.finos.legend.pure.m3.execution.test.TestCollection; -import org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport; -import org.finos.legend.pure.runtime.java.compiled.testHelper.PureTestBuilderCompiled; - -public class Test_Pure_Relational_ConnectionEquality -{ - public static TestSuite suite() - { - String testPackage = "meta::relational::tests::connEquality"; - CompiledExecutionSupport executionSupport = PureTestBuilderCompiled.getClassLoaderExecutionSupport(); - return PureTestBuilderCompiled.buildSuite(TestCollection.collectTests(testPackage, executionSupport.getProcessorSupport(), ci -> PureTestBuilder.satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport); - } -} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/connection/metamodel.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/connection/metamodel.pure index 49c2e1c7f73..e7f45966730 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/connection/metamodel.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/connection/metamodel.pure @@ -14,10 +14,10 @@ Class {doc.doc ='Specification for the AWS redshift database'} meta::pure::legend::connections::legend::specification::RedshiftDatasourceSpecification extends meta::pure::alloy::connections::alloy::specification::DatasourceSpecification { - <> {doc.doc ='clusterID'} clusterID:String[1]; - <> {doc.doc ='The aws region'} region:String[1]; - <> {doc.doc ='the full host url'} host:String[1]; - <> {doc.doc ='database name'} databaseName:String[1]; - <> {doc.doc ='port'} port:Integer[1]; - <> {doc.doc ='Optional URL used for redshift service execution'} endpointURL:String[0..1]; + {doc.doc ='clusterID'} clusterID:String[1]; + {doc.doc ='The aws region'} region:String[1]; + {doc.doc ='the full host url'} host:String[1]; + {doc.doc ='database name'} databaseName:String[1]; + {doc.doc ='port'} port:Integer[1]; + {doc.doc ='Optional URL used for redshift service execution'} endpointURL: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-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake.definition.json b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake.definition.json index c0aa332c785..26e2977f5f2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake.definition.json +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake.definition.json @@ -1,5 +1,5 @@ { "name" : "core_relational_snowflake", - "pattern" : "(meta::relational::functions::sqlQueryToString::snowflake|meta::relational::tests::connEquality|meta::relational::tests::sqlQueryToString::snowflake|meta::relational::tests::sqlToString::snowflake|meta::pure::executionPlan::tests::snowflake|meta::relational::tests::projection::snowflake|meta::relational::tests::query::snowflake|meta::relational::tests::tds::snowflake|meta::relational::tests::mapping::function::snowflake|meta::relational::tests::postProcessor::snowflake|meta::pure::alloy::connections|meta::protocols::pure)(::.*)?", + "pattern" : "(meta::relational::functions::sqlQueryToString::snowflake|meta::relational::tests::sqlQueryToString::snowflake|meta::relational::tests::sqlToString::snowflake|meta::pure::executionPlan::tests::snowflake|meta::relational::tests::projection::snowflake|meta::relational::tests::query::snowflake|meta::relational::tests::tds::snowflake|meta::relational::tests::mapping::function::snowflake|meta::relational::tests::postProcessor::snowflake|meta::pure::alloy::connections|meta::protocols::pure)(::.*)?", "dependencies" : ["platform", "platform_functions", "platform_store_relational", "platform_dsl_mapping", "core_functions", "core", "core_relational"] } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/connection/connectionEqualityTest.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/connection/connectionEqualityTest.pure deleted file mode 100644 index 4cd7c4e4a8b..00000000000 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/connection/connectionEqualityTest.pure +++ /dev/null @@ -1,48 +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. - -import meta::relational::metamodel::execute::tests::*; -import meta::pure::alloy::connections::*; -import meta::pure::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::testConnectionEqualityAllSameSnowflake() : Boolean[1] -{ - let c1 = ^RelationalDatabaseConnection( - element = 'Store1', - type = DatabaseType.Snowflake, - datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::SnowflakeDatasourceSpecification(accountName='account', region='region', warehouseName='wh', databaseName='db'), - authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::SnowflakePublicAuthenticationStrategy(privateKeyVaultReference='pkvr', publicUserName ='public', passPhraseVaultReference='ppVR') - ); - - let c2 = ^RelationalDatabaseConnection( - element = '', - type = DatabaseType.Snowflake, - datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::SnowflakeDatasourceSpecification(accountName='account', region='region', warehouseName='wh', databaseName='db'), - authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::SnowflakePublicAuthenticationStrategy(privateKeyVaultReference='pkvr', publicUserName ='public', passPhraseVaultReference='ppVR') - ); - - assert(runRelationalRouterExtensionConnectionEquality($c1, $c2)); - -} - diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/connection/metamodel.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/connection/metamodel.pure index 19fb053d8f0..5cd3bff5dbb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/connection/metamodel.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/connection/metamodel.pure @@ -19,28 +19,28 @@ Enum meta::pure::alloy::connections::alloy::specification::SnowflakeAccountType Class meta::pure::alloy::connections::alloy::specification::SnowflakeDatasourceSpecification extends meta::pure::alloy::connections::alloy::specification::DatasourceSpecification { - <> accountName:String[1]; - <> region:String[1]; - <> warehouseName:String[1]; - <> databaseName:String[1]; - <> role:String[0..1]; + accountName:String[1]; + region:String[1]; + warehouseName:String[1]; + databaseName:String[1]; + role:String[0..1]; proxyHost:String[0..1]; proxyPort:String[0..1]; nonProxyHosts:String[0..1]; - <> accountType: meta::pure::alloy::connections::alloy::specification::SnowflakeAccountType[0..1]; - <> organization:String[0..1]; - <> cloudType:String[0..1]; + accountType: meta::pure::alloy::connections::alloy::specification::SnowflakeAccountType[0..1]; + organization:String[0..1]; + cloudType:String[0..1]; - <> quotedIdentifiersIgnoreCase:Boolean[0..1]; - <> enableQueryTags: Boolean[0..1]; + quotedIdentifiersIgnoreCase:Boolean[0..1]; + enableQueryTags: Boolean[0..1]; } Class meta::pure::alloy::connections::alloy::authentication::SnowflakePublicAuthenticationStrategy extends meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy { - <> privateKeyVaultReference:String[1]; - <> passPhraseVaultReference:String[1]; - <> publicUserName:String[1]; + privateKeyVaultReference:String[1]; + passPhraseVaultReference:String[1]; + publicUserName:String[1]; } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java deleted file mode 100644 index c072278365f..00000000000 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java +++ /dev/null @@ -1,31 +0,0 @@ -// Copyright 2022 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 junit.framework.TestSuite; -import org.finos.legend.pure.m3.execution.test.PureTestBuilder; -import org.finos.legend.pure.m3.execution.test.TestCollection; -import org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport; -import org.finos.legend.pure.runtime.java.compiled.testHelper.PureTestBuilderCompiled; - -public class Test_Pure_Relational_ConnectionEquality -{ - public static TestSuite suite() - { - String testPackage = "meta::relational::tests::connEquality"; - CompiledExecutionSupport executionSupport = PureTestBuilderCompiled.getClassLoaderExecutionSupport(); - return PureTestBuilderCompiled.buildSuite(TestCollection.collectTests(testPackage, executionSupport.getProcessorSupport(), ci -> PureTestBuilder.satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport); - } -} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner/relational/runtime/connection/spannerSpecification.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner/relational/runtime/connection/spannerSpecification.pure index 42aec568886..fd243423c9e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner/relational/runtime/connection/spannerSpecification.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner/relational/runtime/connection/spannerSpecification.pure @@ -14,9 +14,9 @@ Class meta::pure::alloy::connections::alloy::specification::SpannerDatasourceSpecification extends meta::pure::alloy::connections::alloy::specification::DatasourceSpecification { - <> projectId:String[1]; - <> instanceId:String[1]; - <> databaseId:String[1]; - <> proxyHost: String[0..1]; - <> proxyPort: Integer[0..1]; + projectId:String[1]; + instanceId:String[1]; + databaseId:String[1]; + proxyHost: String[0..1]; + proxyPort: Integer[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/contract/storeContract.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/contract/storeContract.pure index 946e2cbabc2..161a866cfab 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/contract/storeContract.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/contract/storeContract.pure @@ -12,7 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import meta::relational::contract::*; import meta::pure::router::metamodel::*; import meta::pure::router::systemMapping::tests::*; import meta::relational::mapping::*; @@ -30,7 +29,6 @@ import meta::pure::executionPlan::toString::*; import meta::pure::router::clustering::*; import meta::pure::graphFetch::executionPlan::*; import meta::pure::graphFetch::routing::*; -import meta::pure::alloy::connections::*; function meta::relational::contract::relationalStoreContract():StoreContract[1] { @@ -42,20 +40,6 @@ function meta::relational::contract::relationalStoreContract():StoreContract[1] planGraphFetchExecution = meta::relational::contract::planGraphFetchExecution_StoreMappingLocalGraphFetchExecutionNodeGenerationInput_1__LocalGraphFetchExecutionNode_1_, planCrossGraphFetchExecution = meta::relational::contract::planCrossGraphFetchExecution_StoreMappingCrossLocalGraphFetchExecutionNodeGenerationInput_1__LocalGraphFetchExecutionNode_1_, - connectionEquality = { b : Connection [1] | - [ - d: RelationalDatabaseConnection[1]| - let bAsRDB = $b->cast(@RelationalDatabaseConnection); - // connection element is the store name and we dont compare those - let comparison = $d.type == $bAsRDB.type && - $d.timeZone == $bAsRDB.timeZone && - $d.quoteIdentifiers == $bAsRDB.quoteIdentifiers && - $d.datasourceSpecification == $bAsRDB.datasourceSpecification && - compareObjectsWithPossiblyNoProperties($d.authenticationStrategy,$bAsRDB.authenticationStrategy) && - (($d.postProcessors->isEmpty() && $bAsRDB.postProcessors->isEmpty()) || ($d.postProcessors->isNotEmpty() && $bAsRDB.postProcessors->isNotEmpty() && $d.postProcessors == $bAsRDB.postProcessors)); - ] - }, - supports = meta::relational::contract::supports_FunctionExpression_1__Boolean_1_, supportsStreamFunction = meta::relational::contract::supportsStream_FunctionExpression_1__Boolean_1_, shouldStopRouting = [ @@ -238,17 +222,6 @@ function meta::relational::contract::planExecution(sq:meta::pure::mapping::Store ); } -function meta::relational::contract::compareObjectsWithPossiblyNoProperties(obj1: Any[1], obj2: Any[1]): Boolean[1] -{ - let propertyCountForObj1 = $obj1->type()->cast(@Class)->hierarchicalProperties()->size(); - let propertyCountForObj2 = $obj2->type()->cast(@Class)->hierarchicalProperties()->size(); - - if($propertyCountForObj1 == 0 && $propertyCountForObj2 == 0 - ,| true - ,| $obj1 == $obj2 - ); -} - function meta::relational::contract::planGraphFetchExecution(input: StoreMappingLocalGraphFetchExecutionNodeGenerationInput[1]): LocalGraphFetchExecutionNode[1] { meta::relational::graphFetch::executionPlan::planRootGraphFetchExecutionRelational($input.storeQuery, $input.ext, $input.clusteredTree, $input.orderedPaths, $input.mapping, $input.runtime, $input.exeCtx, $input.enableConstraints, $input.checked, $input.extensions, $input.debug) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/extensions/extension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/extensions/extension.pure index f2a5abfb86c..ead7599a286 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/extensions/extension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/extensions/extension.pure @@ -15,8 +15,6 @@ import meta::external::language::java::factory::project::*; import meta::external::language::java::metamodel::project::*; import meta::pure::alloy::connections::*; -import meta::pure::alloy::connections::alloy::specification::*; -import meta::pure::alloy::connections::alloy::authentication::*; import meta::pure::executionPlan::*; import meta::pure::executionPlan::engine::java::*; import meta::pure::executionPlan::toString::*; @@ -224,11 +222,12 @@ function meta::relational::extension::relationalExtension() : meta::pure::extens }, testExtension_testedBy = {allReferenceUses:ReferenceUsage[*], extensions:Extension[*] | {soFarr:TestedByResult[1]| $allReferenceUses.owner->filter(o|$o->instanceOf(Database))->cast(@Database)->fold({db,tbr|$db->testedBy($tbr, $extensions)}, $soFarr)}}, validTestPackages = 'meta::relational::tests' - - ) + ) } + + //Helper Functions function meta::pure::router::clustering::getResolvedStore(rr: meta::relational::mapping::RootRelationalInstanceSetImplementation[*], mapping: Mapping[1]):Store[*] 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/authenticationStrategy.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/runtime/connection/authenticationStrategy.pure index 46f7b8f2500..cea7442a70b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/runtime/connection/authenticationStrategy.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/runtime/connection/authenticationStrategy.pure @@ -23,22 +23,23 @@ Class <> meta::pure::alloy::connections::alloy::authent Class meta::pure::alloy::connections::alloy::authentication::DelegatedKerberosAuthenticationStrategy extends meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy { - <> serverPrincipal: String[0..1]; + serverPrincipal: String[0..1]; } Class {doc.doc = 'Authentication using a middle tier user/password'} meta::pure::alloy::connections::alloy::authentication::MiddleTierUserNamePasswordAuthenticationStrategy extends meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy { - <> {doc.doc = 'Username/pasword vault reference'} vaultReference: String[1]; + {doc.doc = 'Username/pasword vault reference'} + vaultReference: String[1]; } Class meta::pure::alloy::connections::alloy::authentication::UserNamePasswordAuthenticationStrategy extends meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy { - <> baseVaultReference: String[0..1]; - <> userNameVaultReference: String[1]; - <> passwordVaultReference: String[1]; + baseVaultReference: String[0..1]; + userNameVaultReference: String[1]; + passwordVaultReference: String[1]; } Class meta::pure::alloy::connections::alloy::authentication::GCPApplicationDefaultCredentialsAuthenticationStrategy extends meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy @@ -51,7 +52,7 @@ Class meta::pure::alloy::connections::alloy::authentication::DefaultH2Authentica Class meta::pure::alloy::connections::alloy::authentication::ApiTokenAuthenticationStrategy extends meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy { - <> apiToken:String[1]; + apiToken:String[1]; } Class meta::pure::alloy::connections::alloy::authentication::TestDatabaseAuthenticationStrategy extends meta::pure::alloy::connections::alloy::authentication::DefaultH2AuthenticationStrategy @@ -60,6 +61,6 @@ Class meta::pure::alloy::connections::alloy::authentication::TestDatabaseAuthent Class meta::pure::alloy::connections::alloy::authentication::GCPWorkloadIdentityFederationAuthenticationStrategy extends meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy { - <> serviceAccountEmail : String[1]; - <> additionalGcpScopes: String[*]; + serviceAccountEmail : String[1]; + additionalGcpScopes: String[*]; } \ No newline at end of file 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..cc96e0c03b0 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 @@ -18,21 +18,20 @@ Class <> meta::pure::alloy::connections::alloy::specific Class meta::pure::alloy::connections::alloy::specification::StaticDatasourceSpecification extends meta::pure::alloy::connections::alloy::specification::DatasourceSpecification { - <> host: String[1]; - <> port: Integer[1]; - <> databaseName: String[1]; + host: String[1]; + port: Integer[1]; + databaseName: String[1]; } Class meta::pure::alloy::connections::alloy::specification::EmbeddedH2DatasourceSpecification extends meta::pure::alloy::connections::alloy::specification::DatasourceSpecification { - <> databaseName:String[1]; - <> directory:String[1]; - <> autoServerMode:Boolean[1]; - + databaseName:String[1]; + directory:String[1]; + autoServerMode:Boolean[1]; } Class meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification extends meta::pure::alloy::connections::alloy::specification::DatasourceSpecification { - <> testDataSetupCsv:String[0..1]; - <> testDataSetupSqls:String[*]; + testDataSetupCsv:String[0..1]; + testDataSetupSqls:String[*]; } 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 ec9c4db84d7..6244fa06434 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 @@ -12,8 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import meta::relational::metamodel::execute::tests::*; -import meta::pure::alloy::connections::*; import meta::pure::runtime::*; import meta::relational::translation::*; import meta::pure::extension::*; @@ -24,119 +22,6 @@ import meta::relational::metamodel::execute::*; import meta::relational::metamodel::*; import meta::pure::mapping::*; -function meta::relational::metamodel::execute::tests::runRelationalRouterExtensionConnectionEquality(c1: RelationalDatabaseConnection[1], - c2: RelationalDatabaseConnection[1]) : Boolean[1] -{ - let extensions = meta::relational::extension::relationalExtensions().routerExtensions(); - $c1->match( - $extensions.connectionEquality->map(e | $e->eval($c2))->concatenate([ - a:Connection[1] | true - ])->toOneMany()); -} - -function <> meta::relational::metamodel::execute::tests::testConnectionEqualityAllSameStatic() : Boolean[1] -{ - let c1 = ^RelationalDatabaseConnection( - element = 'Store1', - type = DatabaseType.SybaseIQ, - datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::StaticDatasourceSpecification(host='host', port=8080, databaseName='db'), - authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::DefaultH2AuthenticationStrategy() - ); - - let c2 = ^RelationalDatabaseConnection( - element = '', - type = DatabaseType.SybaseIQ, - datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::StaticDatasourceSpecification(host='host', port=8080, databaseName='db'), - authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::DefaultH2AuthenticationStrategy() - ); - - assert(runRelationalRouterExtensionConnectionEquality($c1, $c2)); - -} - -function <> meta::relational::metamodel::execute::tests::testConnectionEqualityAllButOnePropertySame() : Boolean[1] -{ - let c1 = ^RelationalDatabaseConnection( - element = 'Store1', - type = DatabaseType.Snowflake, - datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::StaticDatasourceSpecification(host='host', port=8090, databaseName='db'), - authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::DefaultH2AuthenticationStrategy() - ); - - let c2 = ^RelationalDatabaseConnection( - element = '', - type = DatabaseType.Snowflake, - datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::StaticDatasourceSpecification(host='host', port=8080, databaseName='db'), - authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::ApiTokenAuthenticationStrategy(apiToken='token') - ); - - assert(!runRelationalRouterExtensionConnectionEquality($c1, $c2)); - -} - -function <> meta::relational::metamodel::execute::tests::testConnectionEqualityTypeDiff() : Boolean[1] -{ - let c1 = ^RelationalDatabaseConnection( - element = 'Store1', - type = DatabaseType.H2, - datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification(), - authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::DefaultH2AuthenticationStrategy() - ); - - let c2 = ^RelationalDatabaseConnection( - element = '', - type = DatabaseType.Snowflake, - datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::StaticDatasourceSpecification(host='host', port=8080, databaseName='db'), - authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::ApiTokenAuthenticationStrategy(apiToken='token') - ); - - - assert(!runRelationalRouterExtensionConnectionEquality($c1, $c2)); - -} - - -function <> meta::relational::metamodel::execute::tests::testConnectionEqualityTypeSameSpecDiff() : Boolean[1] -{ - let c1 = ^RelationalDatabaseConnection( - element = 'Store1', - type = DatabaseType.H2, - datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification(), - authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::DefaultH2AuthenticationStrategy() - ); - - let c2 = ^RelationalDatabaseConnection( - element = '', - type = DatabaseType.H2, - datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification(testDataSetupCsv='something'), - authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::DefaultH2AuthenticationStrategy() - ); - - - assert(!runRelationalRouterExtensionConnectionEquality($c1, $c2)); - -} - -function <> meta::relational::metamodel::execute::tests::testConnectionEqualityTypeSpecSameAuthDiff() : Boolean[1] -{ - let c1 = ^RelationalDatabaseConnection( - element = 'Store1', - type = DatabaseType.H2, - datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification(), - authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::DefaultH2AuthenticationStrategy() - ); - - let c2 = ^RelationalDatabaseConnection( - element = '', - type = DatabaseType.H2, - datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification(), - authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::ApiTokenAuthenticationStrategy(apiToken='token') - ); - - - assert(!runRelationalRouterExtensionConnectionEquality($c1, $c2)); - -} function <> meta::relational::metamodel::execute::tests::testExecuteInDbToTDS() : Boolean[1] { From a8d72b3789e655b6bb640740caf9d46f91541fb3 Mon Sep 17 00:00:00 2001 From: An Phi Date: Wed, 11 Oct 2023 23:31:13 -0400 Subject: [PATCH 04/80] connection manager: further API improvements (#2342) * conn-man: further API improvements * minor cleanups * conn-man: further cleanups * poms: naming correction * conn-man: add simple connection pooling support * connman: wire new connection framework to relational database * conn-man: cleanup interfaces * conn-man: add test for connection pooling * connman: improve pooling test and API * minor fixes * connman: introduce flag to enable new connection framework for relational executor * connman: add shortId() for credential vault secrets * minor cleanups * minor fixes * minor fixes * cleanups * connman: improvement for testing * connman: cleanup bootstraper for new connection framework --- .../pom.xml | 8 +- .../test/AbstractConnectionFactoryTest.java | 32 +- .../test/TestJDBCConnectionManager.java | 295 ++++++++++++ .../test/TestPostgresConnection.java | 7 +- .../test/TestSnowflakeConnection.java | 5 +- .../legend-engine-server/pom.xml | 19 +- .../finos/legend/engine/server/Server.java | 70 ++- .../pom.xml | 9 +- .../AuthenticationMechanismConfiguration.java | 102 +++++ .../legend/connection/Authenticator.java | 41 +- .../legend/connection/ConnectionBuilder.java | 18 +- .../connection/ConnectionBuilderProvider.java | 22 - .../legend/connection/ConnectionFactory.java | 103 +++-- .../legend/connection/ConnectionManager.java | 2 +- .../legend/connection/IdentityFactory.java | 18 +- .../connection/IdentitySpecification.java | 2 +- .../InstrumentedLegendEnvironment.java | 64 --- .../legend/connection/LegendEnvironment.java | 61 +-- .../legend/connection/StoreInstance.java | 136 ++++-- .../finos/legend/connection/StoreSupport.java | 70 ++- .../ApiKeyAuthenticationConfiguration.java | 9 + .../DefaultStoreInstanceProvider.java | 12 +- ...ateKeyPairAuthenticationConfiguration.java | 9 + .../InstrumentedStoreInstanceProvider.java | 6 +- .../KerberosAuthenticationConfiguration.java | 5 + ...erPasswordAuthenticationConfiguration.java | 8 + .../protocol/AuthenticationConfiguration.java | 1 + .../protocol/AuthenticationMechanism.java | 7 - .../protocol/AuthenticationMechanismType.java | 52 +-- .../protocol/ConnectionSpecification.java | 1 + .../connection/ConnectionFactoryTest.java | 234 +++++----- .../connection/LegendEnvironmentTest.java | 127 ------ .../legend/connection/StoreSupportTest.java | 159 ++++++- .../vault/CredentialVaultSecret.java | 8 +- .../EnvironmentCredentialVaultSecret.java | 7 + .../vault/PropertiesFileSecret.java | 7 + .../vault/SystemPropertiesSecret.java | 7 + .../vault/aws/AWSCredentials.java | 2 + .../vault/aws/AWSDefaultCredentials.java | 6 + .../aws/AWSSTSAssumeRoleCredentials.java | 9 + .../vault/aws/AWSSecretsManagerSecret.java | 10 + .../vault/aws/AWSStaticCredentials.java | 8 + .../server/ConnectionFactoryBundle.java | 13 +- .../pom.xml | 21 +- ...ectionDriver.java => DatabaseManager.java} | 7 +- .../finos/legend/connection/DatabaseType.java | 2 + ...__RelationalDatabaseConnectionAdapter.java | 41 ++ .../connection/JDBCConnectionBuilder.java | 54 +++ .../RelationalDatabaseStoreSupport.java | 62 ++- .../H2DatabaseManager.java} | 9 +- .../impl/JDBCConnectionManager.java | 425 ++++++++++++++++++ .../impl/StaticJDBCConnectionBuilder.java | 52 +++ .../jdbc/JDBCConnectionManager.java | 77 ---- .../jdbc/StaticJDBCConnectionBuilder.java | 47 -- .../jdbc/legacy/JdbcConnectionProvider.java | 68 --- .../legacy/JdbcConnectionSpecification.java | 41 -- .../StaticJDBCConnectionSpecification.java | 11 +- ....finos.legend.connection.ConnectionBuilder | 2 +- ....finos.legend.connection.ConnectionManager | 1 - ...rg.finos.legend.connection.DatabaseManager | 1 + ...onnection.jdbc.driver.JDBCConnectionDriver | 1 - .../TestJdbcConnectionProvider.java | 98 ---- ...Driver.java => MemSQLDatabaseManager.java} | 5 +- ...rg.finos.legend.connection.DatabaseManager | 1 + ...onnection.jdbc.driver.JDBCConnectionDriver | 1 - .../PostgresDatabaseManager.java} | 7 +- ...rg.finos.legend.connection.DatabaseManager | 1 + ...onnection.jdbc.driver.JDBCConnectionDriver | 1 - .../PostgresTestContainerWrapper.java | 20 +- .../pom.xml | 12 + .../HACKY__SnowflakeConnectionAdapter.java | 75 ++++ .../impl/SnowflakeConnectionBuilder.java | 61 +-- .../SnowflakeDatabaseManager.java} | 23 +- .../SnowflakeConnectionSpecification.java | 19 + ...rg.finos.legend.connection.DatabaseManager | 1 + ...HACKY__RelationalDatabaseConnectionAdapter | 1 + ...onnection.jdbc.driver.JDBCConnectionDriver | 1 - ...ver.java => SQLServerDatabaseManager.java} | 5 +- ...rg.finos.legend.connection.DatabaseManager | 1 + ...onnection.jdbc.driver.JDBCConnectionDriver | 1 - .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 20 + .../stores/relational/RelationalExecutor.java | 2 +- .../RelationalExecutionConfiguration.java | 40 ++ .../manager/ConnectionManagerSelector.java | 52 +++ 87 files changed, 2133 insertions(+), 1034 deletions(-) create mode 100644 legend-engine-config/legend-engine-connection-integration-tests/src/test/java/org/finos/legend/engine/connection/test/TestJDBCConnectionManager.java create mode 100644 legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/AuthenticationMechanismConfiguration.java delete mode 100644 legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/ConnectionBuilderProvider.java delete mode 100644 legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/InstrumentedLegendEnvironment.java rename legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/{ => impl}/DefaultStoreInstanceProvider.java (86%) rename legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/{ => impl}/InstrumentedStoreInstanceProvider.java (83%) delete mode 100644 legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/test/java/org/finos/legend/connection/LegendEnvironmentTest.java rename legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/{jdbc/driver/JDBCConnectionDriver.java => DatabaseManager.java} (77%) create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/HACKY__RelationalDatabaseConnectionAdapter.java create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/JDBCConnectionBuilder.java rename legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/{jdbc/driver/H2_JDBCConnectionDriver.java => impl/H2DatabaseManager.java} (79%) create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/impl/JDBCConnectionManager.java create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/impl/StaticJDBCConnectionBuilder.java delete mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/jdbc/JDBCConnectionManager.java delete mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/jdbc/StaticJDBCConnectionBuilder.java delete mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/jdbc/legacy/JdbcConnectionProvider.java delete mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/jdbc/legacy/JdbcConnectionSpecification.java rename legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/{jdbc => protocol}/StaticJDBCConnectionSpecification.java (80%) delete mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/resources/META-INF/services/org.finos.legend.connection.ConnectionManager create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/resources/META-INF/services/org.finos.legend.connection.DatabaseManager delete mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/resources/META-INF/services/org.finos.legend.connection.jdbc.driver.JDBCConnectionDriver delete mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/test/java/org/finos/legend/connection/TestJdbcConnectionProvider.java rename legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/src/main/java/org/finos/legend/connection/jdbc/driver/{MemSQL_JDBCConnectionDriver.java => MemSQLDatabaseManager.java} (90%) create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/src/main/resources/META-INF/services/org.finos.legend.connection.DatabaseManager delete mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/src/main/resources/META-INF/services/org.finos.legend.connection.jdbc.driver.JDBCConnectionDriver rename legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/src/main/java/org/finos/legend/connection/{jdbc/driver/PostgreSQL_JDBCConnectionDriver.java => impl/PostgresDatabaseManager.java} (86%) create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/src/main/resources/META-INF/services/org.finos.legend.connection.DatabaseManager delete mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/src/main/resources/META-INF/services/org.finos.legend.connection.jdbc.driver.JDBCConnectionDriver create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/java/org/finos/legend/connection/impl/HACKY__SnowflakeConnectionAdapter.java rename legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/java/org/finos/legend/connection/{jdbc/driver/Snowflake_JDBCConnectionDriver.java => impl/SnowflakeDatabaseManager.java} (77%) create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/resources/META-INF/services/org.finos.legend.connection.DatabaseManager create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/resources/META-INF/services/org.finos.legend.connection.HACKY__RelationalDatabaseConnectionAdapter delete mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/resources/META-INF/services/org.finos.legend.connection.jdbc.driver.JDBCConnectionDriver rename legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/src/main/java/org/finos/legend/connection/jdbc/driver/{SQLServer_JDBCConnectionDriver.java => SQLServerDatabaseManager.java} (89%) create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/src/main/resources/META-INF/services/org.finos.legend.connection.DatabaseManager delete mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/src/main/resources/META-INF/services/org.finos.legend.connection.jdbc.driver.JDBCConnectionDriver diff --git a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml index 8865d46dd04..3228943aa0c 100644 --- a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml @@ -15,7 +15,8 @@ limitations under the License. --> - + org.finos.legend.engine legend-engine-config @@ -85,6 +86,11 @@ junit-jupiter-engine test + + net.bytebuddy + byte-buddy + test + diff --git a/legend-engine-config/legend-engine-connection-integration-tests/src/test/java/org/finos/legend/engine/connection/test/AbstractConnectionFactoryTest.java b/legend-engine-config/legend-engine-connection-integration-tests/src/test/java/org/finos/legend/engine/connection/test/AbstractConnectionFactoryTest.java index a72de8a4250..e5b6435ece9 100644 --- a/legend-engine-config/legend-engine-connection-integration-tests/src/test/java/org/finos/legend/engine/connection/test/AbstractConnectionFactoryTest.java +++ b/legend-engine-config/legend-engine-connection-integration-tests/src/test/java/org/finos/legend/engine/connection/test/AbstractConnectionFactoryTest.java @@ -17,20 +17,23 @@ import org.finos.legend.authentication.vault.CredentialVault; import org.finos.legend.authentication.vault.impl.EnvironmentCredentialVault; import org.finos.legend.authentication.vault.impl.SystemPropertiesCredentialVault; +import org.finos.legend.connection.AuthenticationMechanismConfiguration; import org.finos.legend.connection.Authenticator; import org.finos.legend.connection.ConnectionFactory; import org.finos.legend.connection.DatabaseType; import org.finos.legend.connection.IdentityFactory; import org.finos.legend.connection.IdentitySpecification; -import org.finos.legend.connection.InstrumentedStoreInstanceProvider; +import org.finos.legend.connection.impl.InstrumentedStoreInstanceProvider; import org.finos.legend.connection.LegendEnvironment; import org.finos.legend.connection.RelationalDatabaseStoreSupport; import org.finos.legend.connection.StoreInstance; +import org.finos.legend.connection.impl.EncryptedPrivateKeyPairAuthenticationConfiguration; import org.finos.legend.connection.impl.KerberosCredentialExtractor; import org.finos.legend.connection.impl.KeyPairCredentialBuilder; import org.finos.legend.connection.impl.SnowflakeConnectionBuilder; +import org.finos.legend.connection.impl.UserPasswordAuthenticationConfiguration; import org.finos.legend.connection.impl.UserPasswordCredentialBuilder; -import org.finos.legend.connection.jdbc.StaticJDBCConnectionBuilder; +import org.finos.legend.connection.impl.StaticJDBCConnectionBuilder; import org.finos.legend.connection.protocol.AuthenticationConfiguration; import org.finos.legend.connection.protocol.AuthenticationMechanismType; import org.finos.legend.engine.shared.core.identity.Identity; @@ -58,27 +61,22 @@ public void initialize() new EnvironmentCredentialVault() ) .withStoreSupports( - new RelationalDatabaseStoreSupport.Builder() + new RelationalDatabaseStoreSupport.Builder(DatabaseType.POSTGRES) .withIdentifier("Postgres") - .withDatabase(DatabaseType.POSTGRES) - .withAuthenticationMechanisms( - AuthenticationMechanismType.USER_PASSWORD + .withAuthenticationMechanismConfigurations( + new AuthenticationMechanismConfiguration.Builder(AuthenticationMechanismType.USER_PASSWORD).withAuthenticationConfigurationTypes( + UserPasswordAuthenticationConfiguration.class + ).build() ) .build(), - new RelationalDatabaseStoreSupport.Builder() + new RelationalDatabaseStoreSupport.Builder(DatabaseType.SNOWFLAKE) .withIdentifier("Snowflake") - .withDatabase(DatabaseType.SNOWFLAKE) - .withAuthenticationMechanisms( - AuthenticationMechanismType.KEY_PAIR -// AuthenticationMechanismType.OAUTH + .withAuthenticationMechanismConfigurations( + new AuthenticationMechanismConfiguration.Builder(AuthenticationMechanismType.KEY_PAIR).withAuthenticationConfigurationTypes( + EncryptedPrivateKeyPairAuthenticationConfiguration.class + ).build() ) .build() - ) - .withAuthenticationMechanisms( - AuthenticationMechanismType.USER_PASSWORD, - AuthenticationMechanismType.API_KEY, - AuthenticationMechanismType.KEY_PAIR, - AuthenticationMechanismType.KERBEROS ); CredentialVault credentialVault = this.getCredentialVault(); diff --git a/legend-engine-config/legend-engine-connection-integration-tests/src/test/java/org/finos/legend/engine/connection/test/TestJDBCConnectionManager.java b/legend-engine-config/legend-engine-connection-integration-tests/src/test/java/org/finos/legend/engine/connection/test/TestJDBCConnectionManager.java new file mode 100644 index 00000000000..7abf243d608 --- /dev/null +++ b/legend-engine-config/legend-engine-connection-integration-tests/src/test/java/org/finos/legend/engine/connection/test/TestJDBCConnectionManager.java @@ -0,0 +1,295 @@ +// Copyright 2023 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.connection.test; + +import net.bytebuddy.asm.Advice; +import org.finos.legend.authentication.vault.impl.PropertiesFileCredentialVault; +import org.finos.legend.connection.AuthenticationMechanismConfiguration; +import org.finos.legend.connection.Authenticator; +import org.finos.legend.connection.ConnectionFactory; +import org.finos.legend.connection.DatabaseType; +import org.finos.legend.connection.IdentityFactory; +import org.finos.legend.connection.IdentitySpecification; +import org.finos.legend.connection.JDBCConnectionBuilder; +import org.finos.legend.connection.LegendEnvironment; +import org.finos.legend.connection.PostgresTestContainerWrapper; +import org.finos.legend.connection.RelationalDatabaseStoreSupport; +import org.finos.legend.connection.StoreInstance; +import org.finos.legend.connection.impl.InstrumentedStoreInstanceProvider; +import org.finos.legend.connection.impl.JDBCConnectionManager; +import org.finos.legend.connection.impl.StaticJDBCConnectionBuilder; +import org.finos.legend.connection.impl.UserPasswordAuthenticationConfiguration; +import org.finos.legend.connection.impl.UserPasswordCredentialBuilder; +import org.finos.legend.connection.protocol.AuthenticationConfiguration; +import org.finos.legend.connection.protocol.AuthenticationMechanismType; +import org.finos.legend.connection.protocol.ConnectionSpecification; +import org.finos.legend.connection.protocol.StaticJDBCConnectionSpecification; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.authentication.vault.PropertiesFileSecret; +import org.finos.legend.engine.shared.core.identity.Identity; +import org.junit.jupiter.api.AfterEach; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.BeforeEach; +import org.junit.jupiter.api.Test; + +import java.sql.Connection; +import java.sql.SQLTransientConnectionException; +import java.util.Properties; + +public class TestJDBCConnectionManager +{ + PostgresTestContainerWrapper postgresContainer; + private static final String TEST_STORE_INSTANCE_NAME = "test-store"; + + private LegendEnvironment environment; + private IdentityFactory identityFactory; + private InstrumentedStoreInstanceProvider storeInstanceProvider; + private ConnectionFactory connectionFactory; + private StoreInstance storeInstance; + + @BeforeEach + public void setup() + { + postgresContainer = PostgresTestContainerWrapper.build(); + postgresContainer.start(); + + Properties properties = new Properties(); + properties.put("passwordRef", this.postgresContainer.getPassword()); + + LegendEnvironment.Builder environmentBuilder = new LegendEnvironment.Builder() + .withVaults(new PropertiesFileCredentialVault(properties)) + .withStoreSupports( + new RelationalDatabaseStoreSupport.Builder(DatabaseType.POSTGRES) + .withIdentifier("Postgres") + .withAuthenticationMechanismConfigurations( + new AuthenticationMechanismConfiguration.Builder(AuthenticationMechanismType.USER_PASSWORD).withAuthenticationConfigurationTypes( + UserPasswordAuthenticationConfiguration.class + ).build() + ) + .build() + ); + + this.environment = environmentBuilder.build(); + this.identityFactory = new IdentityFactory.Builder(this.environment) + .build(); + this.storeInstanceProvider = new InstrumentedStoreInstanceProvider(); + ConnectionSpecification connectionSpecification = new StaticJDBCConnectionSpecification( + this.postgresContainer.getHost(), + this.postgresContainer.getPort(), + this.postgresContainer.getDatabaseName() + ); + this.storeInstance = new StoreInstance.Builder(this.environment) + .withIdentifier(TEST_STORE_INSTANCE_NAME) + .withStoreSupportIdentifier("Postgres") + .withConnectionSpecification(connectionSpecification) + .build(); + } + + @AfterEach + public void cleanUp() + { + postgresContainer.stop(); + + JDBCConnectionManager.getInstance().flushPool(); + } + + @Test + public void testBasicConnectionPooling() throws Exception + { + JDBCConnectionBuilder customizedJDBCConnectionBuilder = new StaticJDBCConnectionBuilder.WithPlaintextUsernamePassword(); + customizedJDBCConnectionBuilder.setConnectionPoolConfig( + new JDBCConnectionManager.ConnectionPoolConfig.Builder() + .withMaxPoolSize(2) + .withConnectionTimeout(1000L) + .build() + ); + this.connectionFactory = new ConnectionFactory.Builder(this.environment, this.storeInstanceProvider) + .withCredentialBuilders( + new UserPasswordCredentialBuilder() + ) + .withConnectionBuilders( + customizedJDBCConnectionBuilder + ) + .build(); + this.storeInstanceProvider.injectStoreInstance(this.storeInstance); + Identity identity = identityFactory.createIdentity( + new IdentitySpecification.Builder() + .withName("test-user") + .build() + ); + ConnectionSpecification connectionSpecification = this.storeInstance.getConnectionSpecification(); + AuthenticationConfiguration authenticationConfiguration = new UserPasswordAuthenticationConfiguration( + postgresContainer.getUser(), + new PropertiesFileSecret("passwordRef") + ); + Authenticator authenticator = this.connectionFactory.getAuthenticator(identity, TEST_STORE_INSTANCE_NAME, authenticationConfiguration); + + JDBCConnectionManager connectionManager = JDBCConnectionManager.getInstance(); + Assertions.assertEquals(0, connectionManager.getPoolSize()); + + // 1. Get a connection, this should initialize the pool as well as create a new connection in the empty pool + // this connection should be active + Connection connection0 = this.connectionFactory.getConnection(identity, authenticator); + + String poolName = JDBCConnectionManager.getPoolName(identity, connectionSpecification, authenticationConfiguration); + JDBCConnectionManager.ConnectionPool connectionPool = connectionManager.getPool(poolName); + + // 2. Close the connection, verify that the pool keeps this connection around in idle state + Connection underlyingConnection0 = connection0.unwrap(Connection.class); + connection0.close(); + + Assertions.assertEquals(1, connectionPool.getTotalConnections()); + Assertions.assertEquals(0, connectionPool.getActiveConnections()); + Assertions.assertEquals(1, connectionPool.getIdleConnections()); + + // 3. Get a new connection, the pool should return the idle connection and create no new connection + Connection connection1 = this.connectionFactory.getConnection(identity, authenticator); + + Assertions.assertEquals(underlyingConnection0, connection1.unwrap(Connection.class)); + Assertions.assertEquals(1, connectionPool.getTotalConnections()); + Assertions.assertEquals(1, connectionPool.getActiveConnections()); + Assertions.assertEquals(0, connectionPool.getIdleConnections()); + + // 4. Get another connection while the first one is still alive and used, a new connection + // will be created in the pool + this.connectionFactory.getConnection(identity, authenticator); + + Assertions.assertEquals(2, connectionPool.getTotalConnections()); + Assertions.assertEquals(2, connectionPool.getActiveConnections()); + Assertions.assertEquals(0, connectionPool.getIdleConnections()); + + // 5. Get yet another connection while the first and second one are still alive and used, this will + // exceed the pool size, throwing an error + Assertions.assertThrows(SQLTransientConnectionException.class, () -> + { + this.connectionFactory.getConnection(identity, authenticator); + }); + } + + @Test + public void testConnectionPoolingForDifferentIdentities() throws Exception + { + this.connectionFactory = new ConnectionFactory.Builder(this.environment, this.storeInstanceProvider) + .withCredentialBuilders( + new UserPasswordCredentialBuilder() + ) + .withConnectionBuilders( + new StaticJDBCConnectionBuilder.WithPlaintextUsernamePassword() + ) + .build(); + this.storeInstanceProvider.injectStoreInstance(this.storeInstance); + Identity identity1 = identityFactory.createIdentity( + new IdentitySpecification.Builder() + .withName("testUser1") + .build() + ); + Identity identity2 = identityFactory.createIdentity( + new IdentitySpecification.Builder() + .withName("testUser2") + .build() + ); + ConnectionSpecification connectionSpecification = this.storeInstance.getConnectionSpecification(); + AuthenticationConfiguration authenticationConfiguration = new UserPasswordAuthenticationConfiguration( + postgresContainer.getUser(), + new PropertiesFileSecret("passwordRef") + ); + + JDBCConnectionManager connectionManager = JDBCConnectionManager.getInstance(); + Assertions.assertEquals(0, connectionManager.getPoolSize()); + + // 1. Get a new connection for identity1, which should initialize a pool + this.connectionFactory.getConnection(identity1, this.connectionFactory.getAuthenticator(identity1, TEST_STORE_INSTANCE_NAME, authenticationConfiguration)); + + String poolName1 = JDBCConnectionManager.getPoolName(identity1, connectionSpecification, authenticationConfiguration); + JDBCConnectionManager.ConnectionPool connectionPool1 = connectionManager.getPool(poolName1); + + Assertions.assertEquals(1, connectionManager.getPoolSize()); + Assertions.assertEquals(1, connectionPool1.getTotalConnections()); + Assertions.assertEquals(1, connectionPool1.getActiveConnections()); + Assertions.assertEquals(0, connectionPool1.getIdleConnections()); + + // 2. Get a new connection for identity2, which should initialize another pool + this.connectionFactory.getConnection(identity2, this.connectionFactory.getAuthenticator(identity2, TEST_STORE_INSTANCE_NAME, authenticationConfiguration)); + + String poolName2 = JDBCConnectionManager.getPoolName(identity2, connectionSpecification, authenticationConfiguration); + JDBCConnectionManager.ConnectionPool connectionPool2 = connectionManager.getPool(poolName2); + + Assertions.assertEquals(2, connectionManager.getPoolSize()); + Assertions.assertEquals(1, connectionPool2.getTotalConnections()); + Assertions.assertEquals(1, connectionPool2.getActiveConnections()); + Assertions.assertEquals(0, connectionPool2.getIdleConnections()); + } + + @Test + public void testRetryOnBrokenConnection() + { + // + } + + public static class CustomAdvice + { + @Advice.OnMethodExit + public static void intercept(@Advice.Return(readOnly = false) String value) + { + System.out.println("intercepted: " + value); + value = "hi: " + value; + } + } + +// public static class MyWay +// { +// } +// +// private static class InstrumentedStaticJDBCConnectionBuilder +// { +// static class WithPlaintextUsernamePassword extends StaticJDBCConnectionBuilder.WithPlaintextUsernamePassword +// { +// WithPlaintextUsernamePassword(Function hikariConfigHandler) +// { +// this.connectionManager = new InstrumentedJDBCConnectionManager(hikariConfigHandler); +// } +// +// @Override +// public JDBCConnectionManager getConnectionManager() +// { +// return this.connectionManager; +// } +// +// @Override +// protected Type[] actualTypeArguments() +// { +// Type genericSuperClass = this.getClass().getSuperclass().getGenericSuperclass(); +// ParameterizedType parameterizedType = (ParameterizedType) genericSuperClass; +// return parameterizedType.getActualTypeArguments(); +// } +// } +// } +// +// private static class InstrumentedJDBCConnectionManager extends JDBCConnectionManager +// { +// private final Function hikariConfigHandler; +// +// InstrumentedJDBCConnectionManager(Function hikariConfigHandler) +// { +// this.hikariConfigHandler = hikariConfigHandler; +// } +// +//// @Override +//// protected void handleHikariConfig(HikariConfig config) +//// { +//// config.setRegisterMbeans(true); +//// this.hikariConfigHandler.apply(config); +//// } +// } +} diff --git a/legend-engine-config/legend-engine-connection-integration-tests/src/test/java/org/finos/legend/engine/connection/test/TestPostgresConnection.java b/legend-engine-config/legend-engine-connection-integration-tests/src/test/java/org/finos/legend/engine/connection/test/TestPostgresConnection.java index eef783ac898..9e311f05fa8 100644 --- a/legend-engine-config/legend-engine-connection-integration-tests/src/test/java/org/finos/legend/engine/connection/test/TestPostgresConnection.java +++ b/legend-engine-config/legend-engine-connection-integration-tests/src/test/java/org/finos/legend/engine/connection/test/TestPostgresConnection.java @@ -16,10 +16,11 @@ import org.finos.legend.authentication.vault.CredentialVault; import org.finos.legend.authentication.vault.impl.PropertiesFileCredentialVault; +import org.finos.legend.connection.AuthenticationMechanismConfiguration; import org.finos.legend.connection.PostgresTestContainerWrapper; import org.finos.legend.connection.StoreInstance; import org.finos.legend.connection.impl.UserPasswordAuthenticationConfiguration; -import org.finos.legend.connection.jdbc.StaticJDBCConnectionSpecification; +import org.finos.legend.connection.protocol.StaticJDBCConnectionSpecification; import org.finos.legend.connection.protocol.AuthenticationConfiguration; import org.finos.legend.connection.protocol.AuthenticationMechanismType; import org.finos.legend.connection.protocol.ConnectionSpecification; @@ -80,8 +81,8 @@ public StoreInstance getStoreInstance() return new StoreInstance.Builder(this.environment) .withIdentifier(TEST_STORE_INSTANCE_NAME) .withStoreSupportIdentifier("Postgres") - .withAuthenticationMechanisms( - AuthenticationMechanismType.USER_PASSWORD + .withAuthenticationMechanismConfigurations( + new AuthenticationMechanismConfiguration.Builder(AuthenticationMechanismType.USER_PASSWORD).build() ) .withConnectionSpecification(connectionSpecification) .build(); diff --git a/legend-engine-config/legend-engine-connection-integration-tests/src/test/java/org/finos/legend/engine/connection/test/TestSnowflakeConnection.java b/legend-engine-config/legend-engine-connection-integration-tests/src/test/java/org/finos/legend/engine/connection/test/TestSnowflakeConnection.java index c95604ba9c6..825725a5eea 100644 --- a/legend-engine-config/legend-engine-connection-integration-tests/src/test/java/org/finos/legend/engine/connection/test/TestSnowflakeConnection.java +++ b/legend-engine-config/legend-engine-connection-integration-tests/src/test/java/org/finos/legend/engine/connection/test/TestSnowflakeConnection.java @@ -16,6 +16,7 @@ import org.finos.legend.authentication.vault.CredentialVault; import org.finos.legend.authentication.vault.impl.PropertiesFileCredentialVault; +import org.finos.legend.connection.AuthenticationMechanismConfiguration; import org.finos.legend.connection.StoreInstance; import org.finos.legend.connection.impl.EncryptedPrivateKeyPairAuthenticationConfiguration; import org.finos.legend.connection.protocol.AuthenticationConfiguration; @@ -82,8 +83,8 @@ public StoreInstance getStoreInstance() return new StoreInstance.Builder(this.environment) .withIdentifier(TEST_STORE_INSTANCE_NAME) .withStoreSupportIdentifier("Snowflake") - .withAuthenticationMechanisms( - AuthenticationMechanismType.KEY_PAIR + .withAuthenticationMechanismConfigurations( + new AuthenticationMechanismConfiguration.Builder(AuthenticationMechanismType.KEY_PAIR).build() ) .withConnectionSpecification(connectionSpecification) .build(); diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index e889c0f3807..02789e87e86 100644 --- a/legend-engine-config/legend-engine-server/pom.xml +++ b/legend-engine-config/legend-engine-server/pom.xml @@ -25,8 +25,6 @@ legend-engine-server Legend Engine - Server - - jar @@ -674,6 +672,23 @@ + + org.finos.legend.engine + legend-engine-xt-authentication-connection-factory + + + org.finos.legend.engine + legend-engine-xt-relationalStore-connection + + + org.finos.legend.engine + legend-engine-xt-relationalStore-postgres-connection + runtime + + + org.finos.legend.engine + legend-engine-xt-relationalStore-snowflake-connection + diff --git a/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java b/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java index 230a7e1f4e9..ad248e0062b 100644 --- a/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java +++ b/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java @@ -39,7 +39,25 @@ import org.finos.legend.authentication.intermediationrule.IntermediationRule; import org.finos.legend.authentication.intermediationrule.impl.EncryptedPrivateKeyFromVaultRule; import org.finos.legend.authentication.vault.CredentialVaultProvider; +import org.finos.legend.authentication.vault.impl.EnvironmentCredentialVault; import org.finos.legend.authentication.vault.impl.PropertiesFileCredentialVault; +import org.finos.legend.authentication.vault.impl.SystemPropertiesCredentialVault; +import org.finos.legend.connection.AuthenticationMechanismConfiguration; +import org.finos.legend.connection.ConnectionFactory; +import org.finos.legend.connection.DatabaseType; +import org.finos.legend.connection.LegendEnvironment; +import org.finos.legend.connection.RelationalDatabaseStoreSupport; +import org.finos.legend.connection.StoreInstanceProvider; +import org.finos.legend.connection.impl.DefaultStoreInstanceProvider; +import org.finos.legend.connection.impl.EncryptedPrivateKeyPairAuthenticationConfiguration; +import org.finos.legend.connection.impl.HACKY__SnowflakeConnectionAdapter; +import org.finos.legend.connection.impl.KerberosCredentialExtractor; +import org.finos.legend.connection.impl.KeyPairCredentialBuilder; +import org.finos.legend.connection.impl.SnowflakeConnectionBuilder; +import org.finos.legend.connection.impl.StaticJDBCConnectionBuilder; +import org.finos.legend.connection.impl.UserPasswordAuthenticationConfiguration; +import org.finos.legend.connection.impl.UserPasswordCredentialBuilder; +import org.finos.legend.connection.protocol.AuthenticationMechanismType; import org.finos.legend.engine.api.analytics.DataSpaceAnalytics; import org.finos.legend.engine.api.analytics.DiagramAnalytics; import org.finos.legend.engine.api.analytics.LineageAnalytics; @@ -67,13 +85,13 @@ import org.finos.legend.engine.language.pure.grammar.api.grammarToJson.TransformGrammarToJson; import org.finos.legend.engine.language.pure.grammar.api.jsonToGrammar.JsonToGrammar; import org.finos.legend.engine.language.pure.grammar.api.jsonToGrammar.TransformJsonToGrammar; -import org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalElementAPI; import org.finos.legend.engine.language.pure.grammar.api.relationalOperationElement.RelationalOperationElementGrammarToJson; import org.finos.legend.engine.language.pure.grammar.api.relationalOperationElement.RelationalOperationElementJsonToGrammar; import org.finos.legend.engine.language.pure.grammar.api.relationalOperationElement.TransformRelationalOperationElementGrammarToJson; import org.finos.legend.engine.language.pure.grammar.api.relationalOperationElement.TransformRelationalOperationElementJsonToGrammar; import org.finos.legend.engine.language.pure.modelManager.ModelManager; import org.finos.legend.engine.language.pure.modelManager.sdlc.SDLCLoader; +import org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalElementAPI; import org.finos.legend.engine.plan.execution.PlanExecutor; import org.finos.legend.engine.plan.execution.api.ExecutePlanLegacy; import org.finos.legend.engine.plan.execution.api.ExecutePlanStrategic; @@ -100,8 +118,8 @@ import org.finos.legend.engine.protocol.hostedService.metamodel.HostedServiceDeploymentConfiguration; import org.finos.legend.engine.protocol.pure.v1.PureProtocolObjectMapperFactory; import org.finos.legend.engine.protocol.pure.v1.model.PureProtocol; -import org.finos.legend.engine.pure.code.core.PureCoreExtensionLoader; import org.finos.legend.engine.protocol.snowflakeApp.metamodel.SnowflakeDeploymentConfiguration; +import org.finos.legend.engine.pure.code.core.PureCoreExtensionLoader; import org.finos.legend.engine.query.graphQL.api.debug.GraphQLDebug; import org.finos.legend.engine.query.graphQL.api.execute.GraphQLExecute; import org.finos.legend.engine.query.graphQL.api.grammar.GraphQLGrammar; @@ -157,7 +175,7 @@ public class Server extends Application public static void main(String[] args) throws Exception { EngineUrlStreamHandlerFactory.initialize(); - new Server().run(args.length == 0 ? new String[] {"server", "legend-engine-config/legend-engine-server/src/test/resources/org/finos/legend/engine/server/test/userTestConfig.json"} : args); + new Server().run(args.length == 0 ? new String[]{"server", "legend-engine-config/legend-engine-server/src/test/resources/org/finos/legend/engine/server/test/userTestConfig.json"} : args); } @Override @@ -261,6 +279,10 @@ public void run(T serverConfiguration, Environment environment) relationalExecution.setFlowProviderClass(LegendDefaultDatabaseAuthenticationFlowProvider.class); relationalExecution.setFlowProviderConfiguration(new LegendDefaultDatabaseAuthenticationFlowProviderConfiguration()); } + relationalExecution.setConnectionFactory(this.setupConnectionFactory(serverConfiguration.vaults)); + relationalExecution.setRelationalDatabaseConnectionAdapters(Lists.mutable.of( + new HACKY__SnowflakeConnectionAdapter.WithKeyPair() + )); relationalStoreExecutor = (RelationalStoreExecutor) Relational.build(serverConfiguration.relationalexecution); @@ -391,6 +413,48 @@ public void run(T serverConfiguration, Environment environment) enableCors(environment); } + // TODO: @akphi - this is temporary, rework when we find a better way to handle the initialization of connection factory from config or some external source. + private ConnectionFactory setupConnectionFactory(List vaultConfigurations) + { + LegendEnvironment environment = new LegendEnvironment.Builder() + .withVaults( + new SystemPropertiesCredentialVault(), + new EnvironmentCredentialVault(), + new PropertiesFileCredentialVault(this.buildVaultProperties(vaultConfigurations)) + ) + .withStoreSupports( + new RelationalDatabaseStoreSupport.Builder(DatabaseType.POSTGRES) + .withIdentifier("Postgres") + .withAuthenticationMechanismConfigurations( + new AuthenticationMechanismConfiguration.Builder(AuthenticationMechanismType.USER_PASSWORD).withAuthenticationConfigurationTypes( + UserPasswordAuthenticationConfiguration.class + ).build() + ) + .build(), + new RelationalDatabaseStoreSupport.Builder(DatabaseType.SNOWFLAKE) + .withIdentifier("Snowflake") + .withAuthenticationMechanismConfigurations( + new AuthenticationMechanismConfiguration.Builder(AuthenticationMechanismType.KEY_PAIR).withAuthenticationConfigurationTypes( + EncryptedPrivateKeyPairAuthenticationConfiguration.class + ).build() + ) + .build() + ).build(); + + StoreInstanceProvider storeInstanceProvider = new DefaultStoreInstanceProvider.Builder().build(); + return new ConnectionFactory.Builder(environment, storeInstanceProvider) + .withCredentialBuilders( + new KerberosCredentialExtractor(), + new UserPasswordCredentialBuilder(), + new KeyPairCredentialBuilder() + ) + .withConnectionBuilders( + new StaticJDBCConnectionBuilder.WithPlaintextUsernamePassword(), + new SnowflakeConnectionBuilder.WithKeyPair() + ) + .build(); + } + private void loadVaults(List vaultConfigurations) { if (vaultConfigurations != null) diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml index 8832f6b0867..444b1f80674 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml @@ -76,8 +76,13 @@ - junit - junit + org.junit.jupiter + junit-jupiter-api + test + + + org.junit.jupiter + junit-jupiter-engine test diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/AuthenticationMechanismConfiguration.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/AuthenticationMechanismConfiguration.java new file mode 100644 index 00000000000..11ca50b9ce1 --- /dev/null +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/AuthenticationMechanismConfiguration.java @@ -0,0 +1,102 @@ +// Copyright 2023 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.connection; + +import org.eclipse.collections.api.block.function.Function0; +import org.eclipse.collections.api.factory.Lists; +import org.eclipse.collections.api.list.ImmutableList; +import org.finos.legend.connection.protocol.AuthenticationConfiguration; +import org.finos.legend.connection.protocol.AuthenticationMechanism; + +import java.util.ArrayList; +import java.util.LinkedHashSet; +import java.util.List; +import java.util.Objects; +import java.util.Set; + +public class AuthenticationMechanismConfiguration +{ + private final AuthenticationMechanism authenticationMechanism; + private final ImmutableList> authenticationConfigurationTypes; + private final Function0 defaultAuthenticationConfigurationGenerator; + + private AuthenticationMechanismConfiguration(AuthenticationMechanism authenticationMechanism, List> authenticationConfigurationTypes, Function0 defaultAuthenticationConfigurationGenerator) + { + this.authenticationMechanism = Objects.requireNonNull(authenticationMechanism, "Authentication mechanism is missing"); + this.authenticationConfigurationTypes = Lists.immutable.withAll(authenticationConfigurationTypes); + this.defaultAuthenticationConfigurationGenerator = defaultAuthenticationConfigurationGenerator; + } + + public AuthenticationMechanism getAuthenticationMechanism() + { + return authenticationMechanism; + } + + public ImmutableList> getAuthenticationConfigurationTypes() + { + return authenticationConfigurationTypes; + } + + public Function0 getDefaultAuthenticationConfigurationGenerator() + { + return defaultAuthenticationConfigurationGenerator; + } + + public static class Builder + { + private final AuthenticationMechanism authenticationMechanism; + private final Set> authenticationConfigurationTypes = new LinkedHashSet<>(); + private Function0 defaultAuthenticationConfigurationGenerator; + + public Builder(AuthenticationMechanism authenticationMechanism) + { + this.authenticationMechanism = authenticationMechanism; + } + + public Builder withAuthenticationConfigurationType(Class authenticationConfigurationType) + { + this.authenticationConfigurationTypes.add(authenticationConfigurationType); + return this; + } + + public Builder withAuthenticationConfigurationTypes(List> authenticationConfigurationTypes) + { + this.authenticationConfigurationTypes.addAll(authenticationConfigurationTypes); + return this; + } + + @SafeVarargs + public final Builder withAuthenticationConfigurationTypes(Class... authenticationConfigurationTypes) + { + this.authenticationConfigurationTypes.addAll(Lists.mutable.of(authenticationConfigurationTypes)); + return this; + } + + public Builder withDefaultAuthenticationConfigurationGenerator(Function0 defaultAuthenticationConfigurationGenerator) + { + this.defaultAuthenticationConfigurationGenerator = defaultAuthenticationConfigurationGenerator; + return this; + } + + public AuthenticationMechanismConfiguration build() + { + return new AuthenticationMechanismConfiguration( + this.authenticationMechanism, + new ArrayList<>(this.authenticationConfigurationTypes), + this.defaultAuthenticationConfigurationGenerator + ); + } + } +} diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/Authenticator.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/Authenticator.java index 71b949b1b80..90e10882b38 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/Authenticator.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/Authenticator.java @@ -17,30 +17,37 @@ import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.list.ImmutableList; import org.finos.legend.connection.protocol.AuthenticationConfiguration; +import org.finos.legend.connection.protocol.AuthenticationMechanism; import org.finos.legend.engine.shared.core.identity.Credential; import org.finos.legend.engine.shared.core.identity.Identity; import java.util.List; import java.util.Optional; -public class Authenticator +public class Authenticator { private final StoreInstance storeInstance; + private final AuthenticationMechanism authenticationMechanism; private final AuthenticationConfiguration authenticationConfiguration; private final Class sourceCredentialType; + private final Class targetCredentialType; private final ImmutableList credentialBuilders; private final ConnectionBuilder connectionBuilder; + private final LegendEnvironment environment; - public Authenticator(StoreInstance storeInstance, AuthenticationConfiguration authenticationConfiguration, Class sourceCredentialType, List credentialBuilders, ConnectionBuilder connectionBuilder) + public Authenticator(StoreInstance storeInstance, AuthenticationMechanism authenticationMechanism, AuthenticationConfiguration authenticationConfiguration, Class sourceCredentialType, Class targetCredentialType, List credentialBuilders, ConnectionBuilder connectionBuilder, LegendEnvironment environment) { this.storeInstance = storeInstance; + this.authenticationMechanism = authenticationMechanism; this.authenticationConfiguration = authenticationConfiguration; this.sourceCredentialType = sourceCredentialType; + this.targetCredentialType = targetCredentialType; this.credentialBuilders = Lists.immutable.withAll(credentialBuilders); this.connectionBuilder = connectionBuilder; + this.environment = environment; } - public Credential makeCredential(Identity identity, LegendEnvironment environment) throws Exception + public CRED makeCredential(Identity identity) throws Exception { Credential credential = null; // no need to resolve the source credential if the flow starts with generic `Credential` node @@ -58,14 +65,23 @@ public Credential makeCredential(Identity identity, LegendEnvironment environmen } for (CredentialBuilder credentialBuilder : this.credentialBuilders) { - credential = credentialBuilder.makeCredential(identity, this.authenticationConfiguration, credential, environment); + credential = credentialBuilder.makeCredential(identity, this.authenticationConfiguration, credential, this.environment); } - return credential; + if (!this.targetCredentialType.equals(credential.getClass())) + { + throw new RuntimeException(String.format("Generated credential type is expected to be '%s' (found: %s)", this.targetCredentialType.getSimpleName(), credential.getClass().getSimpleName())); + } + return (CRED) credential; } - public ConnectionBuilder getConnectionBuilder() + public AuthenticationMechanism getAuthenticationMechanism() { - return connectionBuilder; + return authenticationMechanism; + } + + public AuthenticationConfiguration getAuthenticationConfiguration() + { + return authenticationConfiguration; } public StoreInstance getStoreInstance() @@ -78,8 +94,19 @@ public Class getSourceCredentialType() return sourceCredentialType; } + + public Class getTargetCredentialType() + { + return targetCredentialType; + } + public ImmutableList getCredentialBuilders() { return credentialBuilders; } + + public ConnectionBuilder getConnectionBuilder() + { + return connectionBuilder; + } } diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/ConnectionBuilder.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/ConnectionBuilder.java index 276c9d7a8af..49de64a0f9c 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/ConnectionBuilder.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/ConnectionBuilder.java @@ -16,6 +16,7 @@ import org.finos.legend.connection.protocol.ConnectionSpecification; import org.finos.legend.engine.shared.core.identity.Credential; +import org.finos.legend.engine.shared.core.identity.Identity; import java.lang.reflect.ParameterizedType; import java.lang.reflect.Type; @@ -23,7 +24,7 @@ public abstract class ConnectionBuilder { - public abstract CONNECTION getConnection(StoreInstance storeInstance, CRED credential) throws Exception; + protected abstract CONNECTION getConnection(SPEC connectionSpecification, Authenticator authenticator, Identity identity) throws Exception; public Class getCredentialType() { @@ -35,16 +36,25 @@ public Class getConnectionSpecificationType() return (Class) actualTypeArguments()[2]; } - private Type[] actualTypeArguments() + protected Type[] actualTypeArguments() { Type genericSuperClass = this.getClass().getGenericSuperclass(); ParameterizedType parameterizedType = (ParameterizedType) genericSuperClass; return parameterizedType.getActualTypeArguments(); } - protected SPEC getCompatibleConnectionSpecification(StoreInstance storeInstance) + public Authenticator getAuthenticatorCompatible(Authenticator authenticator) { - return (SPEC) storeInstance.getConnectionSpecification(this.getConnectionSpecificationType()); + if (!this.getCredentialType().equals(authenticator.getTargetCredentialType())) + { + throw new RuntimeException(String.format("Authenticator target credential type is expected to be '%s' (found: %s)", this.getCredentialType().getSimpleName(), authenticator.getTargetCredentialType().getSimpleName())); + } + return (Authenticator) authenticator; + } + + public ConnectionManager getConnectionManager() + { + return null; } public static class Key diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/ConnectionBuilderProvider.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/ConnectionBuilderProvider.java deleted file mode 100644 index 20bdca4c7d9..00000000000 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/ConnectionBuilderProvider.java +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright 2023 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.connection; - -import java.util.List; - -public interface ConnectionBuilderProvider -{ - List getBuilders(); -} diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/ConnectionFactory.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/ConnectionFactory.java index c90f266b041..5eca86a7c23 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/ConnectionFactory.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/ConnectionFactory.java @@ -14,7 +14,9 @@ package org.finos.legend.connection; +import org.eclipse.collections.api.block.function.Function0; import org.eclipse.collections.api.factory.Lists; +import org.eclipse.collections.impl.utility.ListIterate; import org.finos.legend.connection.protocol.AuthenticationConfiguration; import org.finos.legend.connection.protocol.AuthenticationMechanism; import org.finos.legend.connection.protocol.ConnectionSpecification; @@ -32,9 +34,7 @@ import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.ServiceLoader; import java.util.Set; -import java.util.stream.Collectors; public class ConnectionFactory { @@ -57,6 +57,32 @@ private ConnectionFactory(LegendEnvironment environment, StoreInstanceProvider s } } + public LegendEnvironment getEnvironment() + { + return environment; + } + + public Authenticator getAuthenticator(Identity identity, String storeInstanceIdentifier, AuthenticationMechanism authenticationMechanism) + { + return this.getAuthenticator(identity, this.storeInstanceProvider.lookup(storeInstanceIdentifier), authenticationMechanism); + } + + public Authenticator getAuthenticator(Identity identity, StoreInstance storeInstance, AuthenticationMechanism authenticationMechanism) + { + AuthenticationMechanismConfiguration authenticationMechanismConfiguration = Objects.requireNonNull(storeInstance.getAuthenticationMechanismConfiguration(authenticationMechanism), String.format("Store '%s' does not support authentication mechanism '%s'. Supported mechanism(s):\n%s", + storeInstance.getIdentifier(), + authenticationMechanism.getLabel(), + ListIterate.collect(storeInstance.getAuthenticationMechanisms(), mechanism -> "- " + mechanism.getLabel()).makeString("\n") + )); + Function0 generator = authenticationMechanismConfiguration.getDefaultAuthenticationConfigurationGenerator(); + AuthenticationConfiguration authenticationConfiguration = Objects.requireNonNull(generator != null ? generator.get() : null, String.format("Can't auto-generate authentication configuration for store '%s' with authentication mechanism '%s'. Please provide a configuration of one of the following type(s):\n%s", + storeInstance.getIdentifier(), + authenticationMechanism.getLabel(), + authenticationMechanismConfiguration.getAuthenticationConfigurationTypes().collect(configType -> "- " + configType.getSimpleName()).makeString("\n") + )); + return this.getAuthenticator(identity, storeInstance, authenticationMechanism, authenticationConfiguration); + } + public Authenticator getAuthenticator(Identity identity, String storeInstanceIdentifier, AuthenticationConfiguration authenticationConfiguration) { return this.getAuthenticator(identity, this.storeInstanceProvider.lookup(storeInstanceIdentifier), authenticationConfiguration); @@ -64,27 +90,26 @@ public Authenticator getAuthenticator(Identity identity, String storeInstanceIde public Authenticator getAuthenticator(Identity identity, StoreInstance storeInstance, AuthenticationConfiguration authenticationConfiguration) { - AuthenticationMechanism authenticationMechanism = environment.findAuthenticationMechanismForConfiguration(authenticationConfiguration); - String authenticationMechanismLabel = authenticationMechanism != null ? ("authentication mechanism '" + authenticationMechanism.getLabel() + "'") : ("authentication mechanism with configuration '" + authenticationConfiguration.getClass().getSimpleName() + "'"); - if (!storeInstance.getAuthenticationConfigurationTypes().contains(authenticationConfiguration.getClass())) - { - throw new RuntimeException(String.format("Can't get authenticator: %s is not supported by store '%s'. Supported mechanism(s):\n%s", - authenticationMechanismLabel, - storeInstance.getIdentifier(), - storeInstance.getAuthenticationMechanisms().stream().map(mechanism -> "- " + mechanism.getLabel() + " (config: " + mechanism.getAuthenticationConfigurationType().getSimpleName() + ")").collect(Collectors.joining("\n"))) - ); - } - AuthenticationFlowResolver.ResolutionResult result = AuthenticationFlowResolver.run(this.credentialBuildersIndex, this.connectionBuildersIndex, identity, authenticationConfiguration, storeInstance.getConnectionSpecification()); + AuthenticationMechanism authenticationMechanism = Objects.requireNonNull(storeInstance.getAuthenticationMechanism(authenticationConfiguration.getClass()), String.format("Store '%s' does not accept authentication configuration type '%s'. Supported configuration type(s):\n%s", + storeInstance.getIdentifier(), + authenticationConfiguration.getClass().getSimpleName(), + ListIterate.collect(storeInstance.getAuthenticationConfigurationTypes(), configType -> "- " + configType.getSimpleName()).makeString("\n") + )); + return this.getAuthenticator(identity, storeInstance, authenticationMechanism, authenticationConfiguration); + } + + private Authenticator getAuthenticator(Identity identity, StoreInstance storeInstance, AuthenticationMechanism authenticationMechanism, AuthenticationConfiguration authenticationConfiguration) + { + AuthenticationFlowResolver.ResolutionResult result = AuthenticationFlowResolver.run(this.credentialBuildersIndex, this.connectionBuildersIndex, identity, authenticationMechanism, authenticationConfiguration, storeInstance.getConnectionSpecification()); if (result == null) { - throw new RuntimeException(String.format("Can't get authenticator: no authentication flow for store '%s' can be resolved for the specified identity using %s (authentication configuration: %s, connection specification: %s)", + throw new RuntimeException(String.format("No authentication flow for store '%s' can be resolved for the specified identity (authentication configuration: %s, connection specification: %s)", storeInstance.getIdentifier(), - authenticationMechanismLabel, authenticationConfiguration.getClass().getSimpleName(), - storeInstance.getConnectionSpecification().getClass().getSimpleName()) - ); + storeInstance.getConnectionSpecification().getClass().getSimpleName() + )); } - return new Authenticator(storeInstance, authenticationConfiguration, result.sourceCredentialType, result.flow, connectionBuildersIndex.get(new ConnectionBuilder.Key(storeInstance.getConnectionSpecification().getClass(), result.targetCredentialType))); + return new Authenticator(storeInstance, authenticationMechanism, authenticationConfiguration, result.sourceCredentialType, result.targetCredentialType, result.flow, connectionBuildersIndex.get(new ConnectionBuilder.Key(storeInstance.getConnectionSpecification().getClass(), result.targetCredentialType)), this.environment); } public Authenticator getAuthenticator(Identity identity, String storeInstanceIdentifier) @@ -94,22 +119,27 @@ public Authenticator getAuthenticator(Identity identity, String storeInstanceIde public Authenticator getAuthenticator(Identity identity, StoreInstance storeInstance) { - List authenticationConfigurations = storeInstance.getAuthenticationMechanisms().toList().collect(AuthenticationMechanism::generateConfiguration).select(Objects::nonNull); Authenticator authenticator = null; - for (AuthenticationConfiguration authenticationConfiguration : authenticationConfigurations) + for (AuthenticationMechanism authenticationMechanism : storeInstance.getAuthenticationMechanisms()) { - AuthenticationFlowResolver.ResolutionResult result = AuthenticationFlowResolver.run(this.credentialBuildersIndex, this.connectionBuildersIndex, identity, authenticationConfiguration, storeInstance.getConnectionSpecification()); - if (result != null) + AuthenticationMechanismConfiguration authenticationMechanismConfiguration = storeInstance.getAuthenticationMechanismConfiguration(authenticationMechanism); + Function0 generator = authenticationMechanismConfiguration.getDefaultAuthenticationConfigurationGenerator(); + AuthenticationConfiguration authenticationConfiguration = generator != null ? generator.get() : null; + if (authenticationConfiguration != null) { - authenticator = new Authenticator(storeInstance, authenticationConfiguration, result.sourceCredentialType, result.flow, connectionBuildersIndex.get(new ConnectionBuilder.Key(storeInstance.getConnectionSpecification().getClass(), result.targetCredentialType))); - break; + AuthenticationFlowResolver.ResolutionResult result = AuthenticationFlowResolver.run(this.credentialBuildersIndex, this.connectionBuildersIndex, identity, authenticationMechanism, authenticationConfiguration, storeInstance.getConnectionSpecification()); + if (result != null) + { + authenticator = new Authenticator(storeInstance, authenticationMechanism, authenticationConfiguration, result.sourceCredentialType, result.targetCredentialType, result.flow, connectionBuildersIndex.get(new ConnectionBuilder.Key(storeInstance.getConnectionSpecification().getClass(), result.targetCredentialType)), this.environment); + break; + } } } if (authenticator == null) { - throw new RuntimeException(String.format("Can't get authenticator: no authentication flow for store '%s' can be resolved for the specified identity using auto-generated authentication configuration. Try specifying an authentication mechanism by providing a configuration of one of the following types:\n%s", + throw new RuntimeException(String.format("No authentication flow for store '%s' can be resolved for the specified identity. Try specifying an authentication mechanism or authentication configuration. Supported configuration type(s):\n%s", storeInstance.getIdentifier(), - storeInstance.getAuthenticationMechanisms().select(mechanism -> mechanism.generateConfiguration() == null).collect(mechanism -> "- " + mechanism.getAuthenticationConfigurationType().getSimpleName() + " (mechanism: " + mechanism.getLabel() + ")").makeString("\n") + ListIterate.collect(storeInstance.getAuthenticationConfigurationTypes(), configType -> "- " + configType.getSimpleName() + " (" + storeInstance.getAuthenticationMechanism(configType).getLabel() + ")").makeString("\n") )); } return authenticator; @@ -137,7 +167,7 @@ private static class AuthenticationFlowResolver * NOTE: * - Since some credential builders do not require a specific input credential type, we added a generic `Credential` node * to Identity (start node) - * - We want to differentiate credential and credential-type nodes because we want to account for (short-circuit) case where + * - We want to differentiate credential and credential-type nodes because we want to account for (short-circuit) cases where * no resolution is needed: some credentials that belong to the identity is enough to build the connection (e.g. Kerberos). * We want to be very explicit about this case, we don't want this behavior to be generic for all types of credentials; for example, * just because an identity comes with a username-password credential, does not mean this credential is appropriate to be used to @@ -145,7 +175,7 @@ private static class AuthenticationFlowResolver *

* With this setup, we can use a basic graph search algorithm (e.g. BFS) to resolve the shortest path to build a connection */ - private AuthenticationFlowResolver(Map credentialBuildersIndex, Map connectionBuildersIndex, Identity identity, AuthenticationConfiguration authenticationConfiguration, ConnectionSpecification connectionSpecification) + private AuthenticationFlowResolver(Map credentialBuildersIndex, Map connectionBuildersIndex, Identity identity, AuthenticationConfiguration authenticationConfiguration, AuthenticationMechanism authenticationMechanism, ConnectionSpecification connectionSpecification) { // add start node (i.e. identity node) this.startNode = new FlowNode(identity); @@ -173,7 +203,7 @@ private AuthenticationFlowResolver(Map .forEach(builder -> this.processEdge(new FlowNode(builder.getCredentialType()), this.endNode)); } - public static String createCredentialBuilderKey(String inputCredentialType, String outputCredentialType) + static String createCredentialBuilderKey(String inputCredentialType, String outputCredentialType) { return inputCredentialType + "__" + outputCredentialType; } @@ -198,10 +228,10 @@ private void processEdge(FlowNode node, FlowNode adjacentNode) /** * Resolves the authentication flow in order to build a connection for a specified identity */ - public static ResolutionResult run(Map credentialBuildersIndex, Map connectionBuildersIndex, Identity identity, AuthenticationConfiguration authenticationConfiguration, ConnectionSpecification connectionSpecification) + public static ResolutionResult run(Map credentialBuildersIndex, Map connectionBuildersIndex, Identity identity, AuthenticationMechanism authenticationMechanism, AuthenticationConfiguration authenticationConfiguration, ConnectionSpecification connectionSpecification) { // using BFS algo to search for the shortest (non-cyclic) path - AuthenticationFlowResolver state = new AuthenticationFlowResolver(credentialBuildersIndex, connectionBuildersIndex, identity, authenticationConfiguration, connectionSpecification); + AuthenticationFlowResolver state = new AuthenticationFlowResolver(credentialBuildersIndex, connectionBuildersIndex, identity, authenticationConfiguration, authenticationMechanism, connectionSpecification); boolean found = false; Set visitedNodes = new HashSet<>(); // Create a set to keep track of visited vertices @@ -363,9 +393,8 @@ public T getConnection(Identity identity, String storeInstanceIdentifier) th public T getConnection(Identity identity, Authenticator authenticator) throws Exception { - Credential credential = authenticator.makeCredential(identity, this.environment); ConnectionBuilder flow = (ConnectionBuilder) authenticator.getConnectionBuilder(); - return flow.getConnection(authenticator.getStoreInstance(), credential); + return flow.getConnection(authenticator.getStoreInstance().getConnectionSpecification(), flow.getAuthenticatorCompatible(authenticator), identity); } public static class Builder @@ -419,9 +448,13 @@ public Builder withConnectionBuilder(ConnectionBuilder connectionBuilder) public ConnectionFactory build() { - for (ConnectionManager connectionManager : ServiceLoader.load(ConnectionManager.class)) + for (ConnectionBuilder connectionBuilder : connectionBuilders) { - connectionManager.initialize(); + ConnectionManager connectionManager = connectionBuilder.getConnectionManager(); + if (connectionManager != null) + { + connectionManager.initialize(environment); + } } return new ConnectionFactory( diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/ConnectionManager.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/ConnectionManager.java index ef2a03f5f86..42848c1e625 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/ConnectionManager.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/ConnectionManager.java @@ -16,5 +16,5 @@ public interface ConnectionManager { - void initialize(); + void initialize(LegendEnvironment environment); } diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/IdentityFactory.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/IdentityFactory.java index 206f5e61162..a02600a70a6 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/IdentityFactory.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/IdentityFactory.java @@ -17,6 +17,7 @@ import org.eclipse.collections.api.factory.Lists; import org.finos.legend.engine.shared.core.identity.Credential; import org.finos.legend.engine.shared.core.identity.Identity; +import org.finos.legend.engine.shared.core.identity.credential.AnonymousCredential; import org.finos.legend.engine.shared.core.identity.factory.DefaultIdentityFactory; import java.util.List; @@ -30,8 +31,7 @@ private IdentityFactory(LegendEnvironment environment) this.environment = environment; } - // TODO: @akphi - this clones the logic from IdentityFactoryProvider, we should - // think of when we can unify them + // TODO: @akphi - this clones the logic from IdentityFactoryProvider, we should think about unifying them private static final DefaultIdentityFactory DEFAULT = new DefaultIdentityFactory(); public Identity createIdentity(IdentitySpecification identitySpecification) @@ -39,8 +39,18 @@ public Identity createIdentity(IdentitySpecification identitySpecification) List credentials = Lists.mutable.empty(); credentials.addAll(identitySpecification.getCredentials()); // TODO: @akphi - should we restrict here that we can only either specify the subject/profiles? - credentials.addAll(DEFAULT.makeIdentity(identitySpecification.getSubject()).getCredentials().toList()); - credentials.addAll(DEFAULT.makeIdentity(Lists.mutable.withAll(identitySpecification.getProfiles())).getCredentials().toList()); + if (identitySpecification.getSubject() != null) + { + credentials.addAll(DEFAULT.makeIdentity(identitySpecification.getSubject()).getCredentials().toList()); + } + if (!identitySpecification.getProfiles().isEmpty()) + { + credentials.addAll(DEFAULT.makeIdentity(Lists.mutable.withAll(identitySpecification.getProfiles())).getCredentials().toList()); + } + if (credentials.isEmpty()) + { + return identitySpecification.getName() != null ? new Identity(identitySpecification.getName(), new AnonymousCredential()) : DEFAULT.makeUnknownIdentity(); + } return new Identity(identitySpecification.getName(), credentials); } diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/IdentitySpecification.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/IdentitySpecification.java index f0f1d0b5eee..7a07c2f6989 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/IdentitySpecification.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/IdentitySpecification.java @@ -103,7 +103,7 @@ public Builder withCredential(Credential credential) public IdentitySpecification build() { return new IdentitySpecification( - Objects.requireNonNull(this.name, "Identity specification name is required"), + this.name, this.profiles, this.subject, this.credentials diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/InstrumentedLegendEnvironment.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/InstrumentedLegendEnvironment.java deleted file mode 100644 index 4cb67543747..00000000000 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/InstrumentedLegendEnvironment.java +++ /dev/null @@ -1,64 +0,0 @@ -// Copyright 2023 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.connection; - -import org.eclipse.collections.api.list.MutableList; -import org.eclipse.collections.api.map.MutableMap; -import org.finos.legend.authentication.vault.CredentialVault; -import org.finos.legend.connection.protocol.AuthenticationMechanism; -import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.authentication.vault.CredentialVaultSecret; - -import java.util.List; -import java.util.Map; - -/** - * This is the instrumented version of {@link LegendEnvironment} which is used for testing. - */ -public class InstrumentedLegendEnvironment extends LegendEnvironment -{ - protected final MutableList vaults; - protected final MutableMap, CredentialVault> vaultsIndex; - protected final MutableMap storeSupportsIndex; - - protected final MutableMap authenticationMechanismsIndex; - - protected InstrumentedLegendEnvironment(List vaults, Map storeSupportsIndex, Map authenticationMechanismsIndex) - { - super(vaults, storeSupportsIndex, authenticationMechanismsIndex); - this.vaults = super.vaults.toList(); - this.vaultsIndex = super.vaultsIndex.toMap(); - this.storeSupportsIndex = super.storeSupportsIndex.toMap(); - this.authenticationMechanismsIndex = super.authenticationMechanismsIndex.toMap(); - } - - public void injectVault(CredentialVault vault) - { - if (this.vaultsIndex.containsKey(vault.getSecretType())) - { - throw new RuntimeException(String.format("Can't register credential vault: found multiple vaults with secret type '%s'", vault.getSecretType().getSimpleName())); - } - this.vaultsIndex.put(vault.getSecretType(), vault); - this.vaults.add(vault); - } - - public void injectStoreSupport(StoreSupport storeSupport) - { - if (this.storeSupportsIndex.containsKey(storeSupport.getIdentifier())) - { - throw new RuntimeException(String.format("Can't register store support: found multiple store supports with identifier '%s'", storeSupport.getIdentifier())); - } - this.storeSupportsIndex.put(storeSupport.getIdentifier(), storeSupport); - } -} diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/LegendEnvironment.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/LegendEnvironment.java index ed3ac3d345d..7751f5bdecc 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/LegendEnvironment.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/LegendEnvironment.java @@ -21,17 +21,13 @@ import org.eclipse.collections.impl.factory.Maps; import org.eclipse.collections.impl.utility.ListIterate; import org.finos.legend.authentication.vault.CredentialVault; -import org.finos.legend.connection.protocol.AuthenticationConfiguration; -import org.finos.legend.connection.protocol.AuthenticationMechanism; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.authentication.vault.CredentialVaultSecret; import org.finos.legend.engine.shared.core.identity.Identity; import java.util.LinkedHashMap; -import java.util.LinkedHashSet; import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.Set; /** * This is the runtime instance of configuration for Legend Engine, the place we package common configs, @@ -43,9 +39,7 @@ public class LegendEnvironment protected final ImmutableMap, CredentialVault> vaultsIndex; protected final ImmutableMap storeSupportsIndex; - protected final ImmutableMap authenticationMechanismsIndex; - - protected LegendEnvironment(List vaults, Map storeSupportsIndex, Map authenticationMechanismsIndex) + protected LegendEnvironment(List vaults, Map storeSupportsIndex) { this.vaults = Lists.immutable.withAll(vaults); MutableMap, CredentialVault> vaultsIndex = Maps.mutable.empty(); @@ -55,7 +49,6 @@ protected LegendEnvironment(List vaults, Map vaults = Lists.mutable.empty(); private final Map storeSupportsIndex = new LinkedHashMap<>(); - private final Set authenticationMechanisms = new LinkedHashSet<>(); public Builder() { - } public Builder withVaults(List vaults) @@ -135,52 +121,9 @@ private void registerStoreSupport(StoreSupport storeSupport) this.storeSupportsIndex.put(storeSupport.getIdentifier(), storeSupport); } - public Builder withAuthenticationMechanisms(List authenticationMechanisms) - { - this.authenticationMechanisms.addAll(authenticationMechanisms); - return this; - } - - - public Builder withAuthenticationMechanisms(AuthenticationMechanism... authenticationMechanisms) - { - this.authenticationMechanisms.addAll(Lists.mutable.with(authenticationMechanisms)); - return this; - } - - public Builder withAuthenticationMechanism(AuthenticationMechanism authenticationMechanism) - { - this.authenticationMechanisms.add(authenticationMechanism); - return this; - } - public LegendEnvironment build() { - Map authenticationMechanismsIndex = new LinkedHashMap<>(); - this.authenticationMechanisms.forEach(mechanism -> - { - String key = mechanism.getAuthenticationConfigurationType().getSimpleName(); - if (authenticationMechanismsIndex.containsKey(key)) - { - throw new IllegalStateException(String.format("Can't build environment configuration: found multiple authentication mechanisms (%s, %s) associated with the same configuration type '%s'", - authenticationMechanismsIndex.get(key).getLabel(), - mechanism.getLabel(), - key - )); - } - AuthenticationConfiguration configuration = mechanism.generateConfiguration(); - if (configuration != null && !configuration.getClass().equals(mechanism.getAuthenticationConfigurationType())) - { - throw new IllegalStateException(String.format("Can't build environment configuration: authentication mechanism '%s' is misconfigured, its associated configuration type is '%s' and its generated configuration type is '%s'", - mechanism.getLabel(), - mechanism.getAuthenticationConfigurationType().getSimpleName(), - configuration.getClass().getSimpleName() - )); - } - authenticationMechanismsIndex.put(key, mechanism); - }); - - return new LegendEnvironment(this.vaults, this.storeSupportsIndex, authenticationMechanismsIndex); + return new LegendEnvironment(this.vaults, this.storeSupportsIndex); } } } diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/StoreInstance.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/StoreInstance.java index cd409d5d996..2ced76c35a8 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/StoreInstance.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/StoreInstance.java @@ -16,36 +16,103 @@ import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.list.ImmutableList; -import org.eclipse.collections.api.list.MutableList; import org.eclipse.collections.impl.utility.ListIterate; import org.finos.legend.connection.protocol.AuthenticationConfiguration; import org.finos.legend.connection.protocol.AuthenticationMechanism; import org.finos.legend.connection.protocol.ConnectionSpecification; import java.util.ArrayList; -import java.util.LinkedHashSet; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; import java.util.Objects; -import java.util.Set; /** * A StoreInstance represents a named instance of a Store. */ -public class StoreInstance +public final class StoreInstance { private final String identifier; private final StoreSupport storeSupport; - private final ImmutableList authenticationMechanisms; - private final ImmutableList> authenticationConfigurationTypes; private final ConnectionSpecification connectionSpecification; + private final Map authenticationMechanismConfigurationIndex; + private final Map, AuthenticationMechanism> authenticationMechanismIndex; - private StoreInstance(String identifier, StoreSupport storeSupport, List authenticationMechanisms, ConnectionSpecification connectionSpecification) + private StoreInstance(String identifier, StoreSupport storeSupport, List authenticationMechanismConfigurations, ConnectionSpecification connectionSpecification) { - this.identifier = identifier; + this.identifier = Objects.requireNonNull(identifier, "Can't create store instance: identifier is missing"); this.storeSupport = storeSupport; - this.authenticationMechanisms = Lists.immutable.withAll(authenticationMechanisms); - this.authenticationConfigurationTypes = Lists.immutable.withAll(ListIterate.collect(authenticationMechanisms, AuthenticationMechanism::getAuthenticationConfigurationType)); - this.connectionSpecification = connectionSpecification; + this.connectionSpecification = Objects.requireNonNull(connectionSpecification, "Connection specification is missing"); + + Map authenticationMechanismConfigurationIndex = new LinkedHashMap<>(); + + if (authenticationMechanismConfigurations.isEmpty()) + { + for (AuthenticationMechanism authenticationMechanism : this.storeSupport.getAuthenticationMechanisms()) + { + authenticationMechanismConfigurationIndex.put(authenticationMechanism, this.storeSupport.getAuthenticationMechanismConfiguration(authenticationMechanism)); + } + } + else + { + for (AuthenticationMechanismConfiguration authenticationMechanismConfiguration : authenticationMechanismConfigurations) + { + AuthenticationMechanism authenticationMechanism = authenticationMechanismConfiguration.getAuthenticationMechanism(); + if (authenticationMechanismConfigurationIndex.containsKey(authenticationMechanism)) + { + throw new RuntimeException(String.format("Found multiple configurations for authentication mechanism '%s'", authenticationMechanism.getLabel())); + } + AuthenticationMechanismConfiguration configFromStoreSupport = this.storeSupport.getAuthenticationMechanismConfiguration(authenticationMechanism); + if (configFromStoreSupport == null) + { + throw new RuntimeException(String.format("Authentication mechanism '%s' is not covered by store support '%s'. Supported mechanism(s):\n%s", + authenticationMechanism.getLabel(), + this.storeSupport.getIdentifier(), + ListIterate.collect(this.storeSupport.getAuthenticationMechanisms(), mechanism -> "- " + mechanism.getLabel()).makeString("\n") + )); + } + ImmutableList> authenticationConfigTypesFromStoreSupport = configFromStoreSupport.getAuthenticationConfigurationTypes(); + List> authenticationConfigurationTypes = Lists.mutable.empty(); + for (Class authenticationConfigurationType : authenticationMechanismConfiguration.getAuthenticationConfigurationTypes()) + { + if (!authenticationConfigTypesFromStoreSupport.contains(authenticationConfigurationType)) + { + throw new RuntimeException(String.format("Authentication configuration type '%s' is not covered by store support '%s' for authentication mechanism '%s'. Supported configuration type(s):\n%s", + authenticationConfigurationType.getSimpleName(), + this.storeSupport.getIdentifier(), + authenticationMechanism.getLabel(), + authenticationConfigTypesFromStoreSupport.collect(type -> "- " + type.getSimpleName()).makeString("\n") + )); + } + else + { + authenticationConfigurationTypes.add(authenticationConfigurationType); + } + } + authenticationMechanismConfigurationIndex.put(authenticationMechanism, new AuthenticationMechanismConfiguration.Builder(authenticationMechanism) + // NOTE: if no configuration type is specified, it means the store instance supports all configuration types configured for that mechanism in the store support + .withAuthenticationConfigurationTypes(!authenticationConfigurationTypes.isEmpty() ? authenticationConfigurationTypes : authenticationConfigTypesFromStoreSupport.toList()) + .withDefaultAuthenticationConfigurationGenerator(authenticationMechanismConfiguration.getDefaultAuthenticationConfigurationGenerator() != null ? authenticationMechanismConfiguration.getDefaultAuthenticationConfigurationGenerator() : configFromStoreSupport.getDefaultAuthenticationConfigurationGenerator()) + .build()); + + } + + } + + this.authenticationMechanismConfigurationIndex = authenticationMechanismConfigurationIndex; + Map, AuthenticationMechanism> authenticationMechanismIndex = new LinkedHashMap<>(); + authenticationMechanismConfigurationIndex.forEach((authenticationMechanism, authenticationMechanismConfiguration) -> + { + if (authenticationMechanismConfiguration.getAuthenticationConfigurationTypes().isEmpty()) + { + throw new RuntimeException(String.format("No authentication configuration type is associated with authentication mechanism '%s'", authenticationMechanism.getLabel())); + } + authenticationMechanismConfiguration.getAuthenticationConfigurationTypes().forEach(configurationType -> + { + authenticationMechanismIndex.put(configurationType, authenticationMechanism); + }); + }); + this.authenticationMechanismIndex = authenticationMechanismIndex; } public String getIdentifier() @@ -58,14 +125,19 @@ public StoreSupport getStoreSupport() return storeSupport; } - public ImmutableList getAuthenticationMechanisms() + public List getAuthenticationMechanisms() + { + return new ArrayList<>(this.authenticationMechanismConfigurationIndex.keySet()); + } + + public List> getAuthenticationConfigurationTypes() { - return authenticationMechanisms; + return new ArrayList<>(this.authenticationMechanismIndex.keySet()); } - public ImmutableList> getAuthenticationConfigurationTypes() + public AuthenticationMechanism getAuthenticationMechanism(Class authenticationConfigurationType) { - return authenticationConfigurationTypes; + return this.authenticationMechanismIndex.get(authenticationConfigurationType); } public ConnectionSpecification getConnectionSpecification() @@ -73,6 +145,11 @@ public ConnectionSpecification getConnectionSpecification() return connectionSpecification; } + public AuthenticationMechanismConfiguration getAuthenticationMechanismConfiguration(AuthenticationMechanism authenticationMechanism) + { + return authenticationMechanismConfigurationIndex.get(authenticationMechanism); + } + public T getConnectionSpecification(Class clazz) { if (!this.connectionSpecification.getClass().equals(clazz)) @@ -87,7 +164,7 @@ public static class Builder private final LegendEnvironment environment; private String identifier; private String storeSupportIdentifier; - private final Set authenticationMechanisms = new LinkedHashSet<>(); + private final List authenticationMechanismConfigurations = Lists.mutable.empty(); private ConnectionSpecification connectionSpecification; public Builder(LegendEnvironment environment) @@ -107,21 +184,21 @@ public Builder withStoreSupportIdentifier(String storeSupportIdentifier) return this; } - public Builder withAuthenticationMechanisms(List authenticationMechanisms) + public Builder withAuthenticationMechanismConfiguration(AuthenticationMechanismConfiguration authenticationMechanismConfiguration) { - this.authenticationMechanisms.addAll(authenticationMechanisms); + this.authenticationMechanismConfigurations.add(authenticationMechanismConfiguration); return this; } - public Builder withAuthenticationMechanism(AuthenticationMechanism authenticationMechanism) + public Builder withAuthenticationMechanismConfigurations(List authenticationMechanismConfigurations) { - this.authenticationMechanisms.add(authenticationMechanism); + this.authenticationMechanismConfigurations.addAll(authenticationMechanismConfigurations); return this; } - public Builder withAuthenticationMechanisms(AuthenticationMechanism... authenticationMechanisms) + public Builder withAuthenticationMechanismConfigurations(AuthenticationMechanismConfiguration... authenticationMechanismConfigurations) { - this.authenticationMechanisms.addAll(Lists.mutable.of(authenticationMechanisms)); + this.authenticationMechanismConfigurations.addAll(Lists.mutable.of(authenticationMechanismConfigurations)); return this; } @@ -133,18 +210,11 @@ public Builder withConnectionSpecification(ConnectionSpecification connectionSpe public StoreInstance build() { - StoreSupport storeSupport = this.environment.findStoreSupport(Objects.requireNonNull(this.storeSupportIdentifier, "Store instance store support identifier is required")); - MutableList unsupportedAuthenticationMechanisms = ListIterate.select(new ArrayList<>(this.authenticationMechanisms), mechanism -> !storeSupport.getAuthenticationMechanisms().contains(mechanism)); - if (!unsupportedAuthenticationMechanisms.isEmpty()) - { - throw new RuntimeException(String.format("Store instance specified with authentication configuration types (%s) which are not covered by its store support '%s'", unsupportedAuthenticationMechanisms.makeString(", "), storeSupport.getIdentifier())); - } return new StoreInstance( - Objects.requireNonNull(this.identifier, "Store instance identifier is required"), - storeSupport, - // NOTE: if no mechanism is specified, it means the store instance supports all mechanisms - this.authenticationMechanisms.isEmpty() ? storeSupport.getAuthenticationMechanisms().toList() : new ArrayList<>(this.authenticationMechanisms), - Objects.requireNonNull(this.connectionSpecification, "Store instance connection specification is required") + this.identifier, + this.environment.findStoreSupport(Objects.requireNonNull(this.storeSupportIdentifier, "Store support identifier is missing")), + this.authenticationMechanismConfigurations, + this.connectionSpecification ); } } diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/StoreSupport.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/StoreSupport.java index 89518bc4dde..fb36a14dc05 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/StoreSupport.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/StoreSupport.java @@ -15,16 +15,14 @@ package org.finos.legend.connection; import org.eclipse.collections.api.factory.Lists; -import org.eclipse.collections.api.list.ImmutableList; -import org.eclipse.collections.impl.utility.ListIterate; import org.finos.legend.connection.protocol.AuthenticationConfiguration; import org.finos.legend.connection.protocol.AuthenticationMechanism; import java.util.ArrayList; -import java.util.LinkedHashSet; +import java.util.LinkedHashMap; import java.util.List; +import java.util.Map; import java.util.Objects; -import java.util.Set; /** * A StoreSupport describes the capabilities supported by a Store. @@ -33,14 +31,40 @@ public class StoreSupport { private final String identifier; - private final ImmutableList authenticationMechanisms; - private final ImmutableList> authenticationConfigurationTypes; + private final Map authenticationMechanismConfigurationIndex; - protected StoreSupport(String identifier, List authenticationMechanisms) + protected StoreSupport(String identifier, List authenticationMechanismConfigurations) { - this.identifier = identifier; - this.authenticationMechanisms = Lists.immutable.withAll(authenticationMechanisms); - this.authenticationConfigurationTypes = Lists.immutable.withAll(ListIterate.collect(authenticationMechanisms, AuthenticationMechanism::getAuthenticationConfigurationType)); + this.identifier = Objects.requireNonNull(identifier, "Identifier is missing"); + + Map authenticationMechanismConfigurationIndex = new LinkedHashMap<>(); + Map, AuthenticationMechanism> authenticationConfigurationTypeIndex = new LinkedHashMap<>(); + for (AuthenticationMechanismConfiguration authenticationMechanismConfiguration : authenticationMechanismConfigurations) + { + AuthenticationMechanism authenticationMechanism = authenticationMechanismConfiguration.getAuthenticationMechanism(); + if (authenticationMechanismConfigurationIndex.containsKey(authenticationMechanism)) + { + throw new RuntimeException(String.format("Found multiple configurations for authentication mechanism '%s'", authenticationMechanism.getLabel())); + } + authenticationMechanismConfigurationIndex.put(authenticationMechanism, authenticationMechanismConfiguration); + authenticationMechanismConfiguration.getAuthenticationConfigurationTypes().forEach(authenticationConfigurationType -> + { + if (authenticationConfigurationTypeIndex.containsKey(authenticationConfigurationType)) + { + throw new RuntimeException(String.format("Authentication configuration type '%s' is associated with multiple authentication mechanisms", authenticationConfigurationType.getSimpleName())); + } + authenticationConfigurationTypeIndex.put(authenticationConfigurationType, authenticationMechanism); + }); + } + + this.authenticationMechanismConfigurationIndex = authenticationMechanismConfigurationIndex; + this.authenticationMechanismConfigurationIndex.forEach((authenticationMechanism, authenticationMechanismConfiguration) -> + { + if (authenticationMechanismConfiguration.getAuthenticationConfigurationTypes().isEmpty()) + { + throw new RuntimeException(String.format("No authentication configuration type is associated with authentication mechanism '%s'", authenticationMechanism.getLabel())); + } + }); } public String getIdentifier() @@ -48,20 +72,20 @@ public String getIdentifier() return identifier; } - public ImmutableList getAuthenticationMechanisms() + public AuthenticationMechanismConfiguration getAuthenticationMechanismConfiguration(AuthenticationMechanism authenticationMechanism) { - return authenticationMechanisms; + return authenticationMechanismConfigurationIndex.get(authenticationMechanism); } - public ImmutableList> getAuthenticationConfigurationTypes() + public List getAuthenticationMechanisms() { - return Lists.immutable.withAll(authenticationConfigurationTypes); + return new ArrayList<>(this.authenticationMechanismConfigurationIndex.keySet()); } public static class Builder { private String identifier; - private final Set authenticationMechanisms = new LinkedHashSet<>(); + private final List authenticationMechanismConfigurations = Lists.mutable.empty(); public Builder withIdentifier(String identifier) { @@ -69,29 +93,29 @@ public Builder withIdentifier(String identifier) return this; } - public Builder withAuthenticationMechanisms(List authenticationMechanisms) + public Builder withAuthenticationMechanismConfiguration(AuthenticationMechanismConfiguration authenticationMechanismConfiguration) { - this.authenticationMechanisms.addAll(authenticationMechanisms); + this.authenticationMechanismConfigurations.add(authenticationMechanismConfiguration); return this; } - public Builder withAuthenticationMechanisms(AuthenticationMechanism... authenticationMechanisms) + public Builder withAuthenticationMechanismConfigurations(List authenticationMechanismConfigurations) { - this.authenticationMechanisms.addAll(Lists.mutable.of(authenticationMechanisms)); + this.authenticationMechanismConfigurations.addAll(authenticationMechanismConfigurations); return this; } - public Builder withAuthenticationMechanism(AuthenticationMechanism authenticationMechanism) + public Builder withAuthenticationMechanismConfigurations(AuthenticationMechanismConfiguration... authenticationMechanismConfigurations) { - this.authenticationMechanisms.add(authenticationMechanism); + this.authenticationMechanismConfigurations.addAll(Lists.mutable.of(authenticationMechanismConfigurations)); return this; } public StoreSupport build() { return new StoreSupport( - Objects.requireNonNull(this.identifier, "Store support identifier is required"), - new ArrayList<>(this.authenticationMechanisms) + this.identifier, + this.authenticationMechanismConfigurations ); } } diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/impl/ApiKeyAuthenticationConfiguration.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/impl/ApiKeyAuthenticationConfiguration.java index f7e614c0b49..4e22064c7c7 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/impl/ApiKeyAuthenticationConfiguration.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/impl/ApiKeyAuthenticationConfiguration.java @@ -39,4 +39,13 @@ public enum Location HEADER, COOKIE } + + @Override + public String shortId() + { + return "ApiKey" + + "--location=" + location + + "--keyName=" + keyName + + "--value=" + value.shortId(); + } } diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/DefaultStoreInstanceProvider.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/impl/DefaultStoreInstanceProvider.java similarity index 86% rename from legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/DefaultStoreInstanceProvider.java rename to legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/impl/DefaultStoreInstanceProvider.java index 4a914100c38..718b6404929 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/DefaultStoreInstanceProvider.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/impl/DefaultStoreInstanceProvider.java @@ -12,17 +12,18 @@ // See the License for the specific language governing permissions and // limitations under the License. -package org.finos.legend.connection; +package org.finos.legend.connection.impl; import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.factory.Maps; import org.eclipse.collections.api.map.ImmutableMap; +import org.finos.legend.connection.StoreInstance; +import org.finos.legend.connection.StoreInstanceProvider; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; -import java.util.ServiceLoader; public class DefaultStoreInstanceProvider implements StoreInstanceProvider { @@ -71,18 +72,13 @@ private void registerStoreInstance(StoreInstance storeInstance) { if (this.storeInstancesIndex.containsKey(storeInstance.getIdentifier())) { - throw new RuntimeException(String.format("Can't register store instance: found multiple store instances with identifier '%s'", storeInstance.getIdentifier())); + throw new RuntimeException(String.format("Found multiple store instances with identifier '%s'", storeInstance.getIdentifier())); } this.storeInstancesIndex.put(storeInstance.getIdentifier(), storeInstance); } public DefaultStoreInstanceProvider build() { - for (ConnectionManager connectionManager : ServiceLoader.load(ConnectionManager.class)) - { - connectionManager.initialize(); - } - return new DefaultStoreInstanceProvider(this.storeInstancesIndex); } } diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/impl/EncryptedPrivateKeyPairAuthenticationConfiguration.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/impl/EncryptedPrivateKeyPairAuthenticationConfiguration.java index b821f70d519..0bd50613949 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/impl/EncryptedPrivateKeyPairAuthenticationConfiguration.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/impl/EncryptedPrivateKeyPairAuthenticationConfiguration.java @@ -33,4 +33,13 @@ public EncryptedPrivateKeyPairAuthenticationConfiguration(String userName, Crede this.privateKey = privateKey; this.passphrase = passphrase; } + + @Override + public String shortId() + { + return "EncryptedPrivateKeyPair" + + "--userName=" + userName + + "--privateKey=" + privateKey.shortId() + + "--passphrase=" + passphrase.shortId(); + } } diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/InstrumentedStoreInstanceProvider.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/impl/InstrumentedStoreInstanceProvider.java similarity index 83% rename from legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/InstrumentedStoreInstanceProvider.java rename to legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/impl/InstrumentedStoreInstanceProvider.java index 19314be985d..c3438eab9fd 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/InstrumentedStoreInstanceProvider.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/impl/InstrumentedStoreInstanceProvider.java @@ -12,9 +12,11 @@ // See the License for the specific language governing permissions and // limitations under the License. -package org.finos.legend.connection; +package org.finos.legend.connection.impl; import org.eclipse.collections.api.factory.Maps; +import org.finos.legend.connection.StoreInstance; +import org.finos.legend.connection.StoreInstanceProvider; import java.util.Map; import java.util.Objects; @@ -30,7 +32,7 @@ public void injectStoreInstance(StoreInstance storeInstance) { if (this.storeInstancesIndex.containsKey(storeInstance.getIdentifier())) { - throw new RuntimeException(String.format("Can't register store instance: found multiple store instances with identifier '%s'", storeInstance.getIdentifier())); + throw new RuntimeException(String.format("Found multiple store instances with identifier '%s'", storeInstance.getIdentifier())); } this.storeInstancesIndex.put(storeInstance.getIdentifier(), storeInstance); } diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/impl/KerberosAuthenticationConfiguration.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/impl/KerberosAuthenticationConfiguration.java index 41443983524..61b6ac6594a 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/impl/KerberosAuthenticationConfiguration.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/impl/KerberosAuthenticationConfiguration.java @@ -20,6 +20,11 @@ public class KerberosAuthenticationConfiguration extends AuthenticationConfigura { public KerberosAuthenticationConfiguration() { + } + @Override + public String shortId() + { + return "Kerberos"; } } diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/impl/UserPasswordAuthenticationConfiguration.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/impl/UserPasswordAuthenticationConfiguration.java index 350ccb62005..61e8fb5c096 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/impl/UserPasswordAuthenticationConfiguration.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/impl/UserPasswordAuthenticationConfiguration.java @@ -31,4 +31,12 @@ public UserPasswordAuthenticationConfiguration(String username, CredentialVaultS this.username = username; this.password = password; } + + @Override + public String shortId() + { + return "UserPassword" + + "--username=" + username + + "--password=" + password.shortId(); + } } diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/protocol/AuthenticationConfiguration.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/protocol/AuthenticationConfiguration.java index 7718300d6fe..10774902332 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/protocol/AuthenticationConfiguration.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/protocol/AuthenticationConfiguration.java @@ -16,4 +16,5 @@ public abstract class AuthenticationConfiguration { + public abstract String shortId(); } diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/protocol/AuthenticationMechanism.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/protocol/AuthenticationMechanism.java index 70f75d1f4fd..7a104453eee 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/protocol/AuthenticationMechanism.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/protocol/AuthenticationMechanism.java @@ -17,11 +17,4 @@ public interface AuthenticationMechanism { String getLabel(); - - Class getAuthenticationConfigurationType(); - - default AuthenticationConfiguration generateConfiguration() - { - return null; - } } diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/protocol/AuthenticationMechanismType.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/protocol/AuthenticationMechanismType.java index e74db8cc985..b60214e8c54 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/protocol/AuthenticationMechanismType.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/protocol/AuthenticationMechanismType.java @@ -18,50 +18,20 @@ import org.finos.legend.connection.impl.EncryptedPrivateKeyPairAuthenticationConfiguration; import org.finos.legend.connection.impl.KerberosAuthenticationConfiguration; import org.finos.legend.connection.impl.UserPasswordAuthenticationConfiguration; +import org.finos.legend.engine.shared.core.identity.Credential; +import org.finos.legend.engine.shared.core.identity.credential.ApiTokenCredential; +import org.finos.legend.engine.shared.core.identity.credential.LegendKerberosCredential; +import org.finos.legend.engine.shared.core.identity.credential.OAuthCredential; +import org.finos.legend.engine.shared.core.identity.credential.PlaintextUserPasswordCredential; +import org.finos.legend.engine.shared.core.identity.credential.PrivateKeyCredential; public enum AuthenticationMechanismType implements AuthenticationMechanism { - USER_PASSWORD("UsernamePassword") - { - @Override - public Class getAuthenticationConfigurationType() - { - return UserPasswordAuthenticationConfiguration.class; - } - }, - - API_KEY("APIKey") - { - @Override - public Class getAuthenticationConfigurationType() - { - return ApiKeyAuthenticationConfiguration.class; - } - }, - - KEY_PAIR("KeyPair") - { - @Override - public Class getAuthenticationConfigurationType() - { - return EncryptedPrivateKeyPairAuthenticationConfiguration.class; - } - }, - - KERBEROS("Kerberos") - { - @Override - public Class getAuthenticationConfigurationType() - { - return KerberosAuthenticationConfiguration.class; - } - - @Override - public AuthenticationConfiguration generateConfiguration() - { - return new KerberosAuthenticationConfiguration(); - } - }; + USER_PASSWORD("UsernamePassword"), + API_KEY("APIKey"), + KEY_PAIR("KeyPair"), + KERBEROS("Kerberos"), + OAUTH("OAuth"); private final String label; diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/protocol/ConnectionSpecification.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/protocol/ConnectionSpecification.java index 450c8786ae2..908ab661327 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/protocol/ConnectionSpecification.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/main/java/org/finos/legend/connection/protocol/ConnectionSpecification.java @@ -16,4 +16,5 @@ public abstract class ConnectionSpecification { + public abstract String shortId(); } diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/test/java/org/finos/legend/connection/ConnectionFactoryTest.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/test/java/org/finos/legend/connection/ConnectionFactoryTest.java index 6bf0b357a69..df1398edd7c 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/test/java/org/finos/legend/connection/ConnectionFactoryTest.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/test/java/org/finos/legend/connection/ConnectionFactoryTest.java @@ -15,13 +15,14 @@ package org.finos.legend.connection; import org.eclipse.collections.api.factory.Lists; +import org.finos.legend.connection.impl.InstrumentedStoreInstanceProvider; import org.finos.legend.connection.protocol.AuthenticationConfiguration; import org.finos.legend.connection.protocol.AuthenticationMechanism; import org.finos.legend.connection.protocol.ConnectionSpecification; import org.finos.legend.engine.shared.core.identity.Credential; import org.finos.legend.engine.shared.core.identity.Identity; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; import java.util.List; import java.util.Optional; @@ -39,8 +40,12 @@ public void testGetConnection_WithFailures() throws Exception new ConnectionBuilder_A() ), Lists.mutable.with( - TestAuthenticationMechanismType.X, - TestAuthenticationMechanismType.Y + new AuthenticationMechanismConfiguration.Builder(TestAuthenticationMechanismType.X) + .withAuthenticationConfigurationTypes(AuthenticationConfiguration_X.class) + .build(), + new AuthenticationMechanismConfiguration.Builder(TestAuthenticationMechanismType.Y) + .withAuthenticationConfigurationTypes(AuthenticationConfiguration_Y.class) + .build() ) ).newStore("test", Lists.mutable.empty()); @@ -52,50 +57,44 @@ public void testGetConnection_WithFailures() throws Exception Exception exception; // error: store not found - exception = Assert.assertThrows(RuntimeException.class, () -> + exception = Assertions.assertThrows(RuntimeException.class, () -> { env.connectionFactory.getConnection(identity, env.connectionFactory.getAuthenticator(identity, "unknown", new AuthenticationConfiguration_X())); }); - Assert.assertEquals("Can't find store instance with identifier 'unknown'", exception.getMessage()); + Assertions.assertEquals("Can't find store instance with identifier 'unknown'", exception.getMessage()); // error: unsupported authentication mechanism - exception = Assert.assertThrows(RuntimeException.class, () -> + exception = Assertions.assertThrows(RuntimeException.class, () -> { - env.connectionFactory.getConnection(identity, env.connectionFactory.getAuthenticator(identity, "test", new AuthenticationConfiguration_Z())); + env.connectionFactory.getConnection(identity, env.connectionFactory.getAuthenticator(identity, "test", TestAuthenticationMechanismType.Z)); }); - Assert.assertEquals("Can't get authenticator: authentication mechanism 'Z' is not supported by store 'test'. Supported mechanism(s):\n- X (config: AuthenticationConfiguration_X)\n- Y (config: AuthenticationConfiguration_Y)", exception.getMessage()); + Assertions.assertEquals("Store 'test' does not support authentication mechanism 'Z'. Supported mechanism(s):\n" + + "- X\n" + + "- Y", exception.getMessage()); - // error: unresolvable authentication flow - exception = Assert.assertThrows(RuntimeException.class, () -> + // error: authentication mechanism does not come with a default config generator + exception = Assertions.assertThrows(RuntimeException.class, () -> { - env.connectionFactory.getConnection(identity, env.connectionFactory.getAuthenticator(identity, "test", new AuthenticationConfiguration_Y())); + env.connectionFactory.getConnection(identity, env.connectionFactory.getAuthenticator(identity, "test", TestAuthenticationMechanismType.X)); }); - Assert.assertEquals("Can't get authenticator: no authentication flow for store 'test' can be resolved for the specified identity using authentication mechanism 'Y' (authentication configuration: AuthenticationConfiguration_Y, connection specification: TestConnectionSpecification)", exception.getMessage()); - - // alternate error message when authentication mechanisms are not properly registered - TestEnv env2 = TestEnv.create( - Lists.mutable.with(), - Lists.mutable.with(), - Lists.mutable.empty(), - Lists.mutable.with( - TestAuthenticationMechanismType.X, - TestAuthenticationMechanismType.Y - ) - ).newStore("test", Lists.mutable.empty()); + Assertions.assertEquals("Can't auto-generate authentication configuration for store 'test' with authentication mechanism 'X'. Please provide a configuration of one of the following type(s):\n" + + "- AuthenticationConfiguration_X", exception.getMessage()); - // error: unsupported authentication mechanism - exception = Assert.assertThrows(RuntimeException.class, () -> + // error: unsupported authentication configuration + exception = Assertions.assertThrows(RuntimeException.class, () -> { - env2.connectionFactory.getConnection(identity, env2.connectionFactory.getAuthenticator(identity, "test", new AuthenticationConfiguration_Z())); + env.connectionFactory.getConnection(identity, env.connectionFactory.getAuthenticator(identity, "test", new AuthenticationConfiguration_Z())); }); - Assert.assertEquals("Can't get authenticator: authentication mechanism with configuration 'AuthenticationConfiguration_Z' is not supported by store 'test'. Supported mechanism(s):\n- X (config: AuthenticationConfiguration_X)\n- Y (config: AuthenticationConfiguration_Y)", exception.getMessage()); + Assertions.assertEquals("Store 'test' does not accept authentication configuration type 'AuthenticationConfiguration_Z'. Supported configuration type(s):\n" + + "- AuthenticationConfiguration_X\n" + + "- AuthenticationConfiguration_Y", exception.getMessage()); // error: unresolvable authentication flow - exception = Assert.assertThrows(RuntimeException.class, () -> + exception = Assertions.assertThrows(RuntimeException.class, () -> { - env2.connectionFactory.getConnection(identity, env2.connectionFactory.getAuthenticator(identity, "test", new AuthenticationConfiguration_Y())); + env.connectionFactory.getConnection(identity, env.connectionFactory.getAuthenticator(identity, "test", new AuthenticationConfiguration_Y())); }); - Assert.assertEquals("Can't get authenticator: no authentication flow for store 'test' can be resolved for the specified identity using authentication mechanism with configuration 'AuthenticationConfiguration_Y' (authentication configuration: AuthenticationConfiguration_Y, connection specification: TestConnectionSpecification)", exception.getMessage()); + Assertions.assertEquals("No authentication flow for store 'test' can be resolved for the specified identity (authentication configuration: AuthenticationConfiguration_Y, connection specification: TestConnectionSpecification)", exception.getMessage()); } /** @@ -114,8 +113,12 @@ public void testGetConnection_WithSimpleFlow() throws Exception new ConnectionBuilder_B() ), Lists.mutable.with( - TestAuthenticationMechanismType.X, - TestAuthenticationMechanismType.Y + new AuthenticationMechanismConfiguration.Builder(TestAuthenticationMechanismType.X) + .withAuthenticationConfigurationTypes(AuthenticationConfiguration_X.class) + .build(), + new AuthenticationMechanismConfiguration.Builder(TestAuthenticationMechanismType.Y) + .withAuthenticationConfigurationTypes(AuthenticationConfiguration_Y.class) + .build() ) ).newStore("test", Lists.mutable.empty()); @@ -143,7 +146,9 @@ public void testGetConnection_WithSpecificBuilderOrder() throws Exception new ConnectionBuilder_B() ), Lists.mutable.with( - TestAuthenticationMechanismType.X + new AuthenticationMechanismConfiguration.Builder(TestAuthenticationMechanismType.X) + .withAuthenticationConfigurationTypes(AuthenticationConfiguration_X.class) + .build() ) ).newStore("test", Lists.mutable.empty()); @@ -170,7 +175,9 @@ public void testGetConnection_WithChainFlow() throws Exception new ConnectionBuilder_C() ), Lists.mutable.with( - TestAuthenticationMechanismType.X + new AuthenticationMechanismConfiguration.Builder(TestAuthenticationMechanismType.X) + .withAuthenticationConfigurationTypes(AuthenticationConfiguration_X.class) + .build() ) ).newStore("test", Lists.mutable.empty()); @@ -199,7 +206,9 @@ public void testGetConnection_WithShortestFlowResolved() throws Exception new ConnectionBuilder_C() ), Lists.mutable.with( - TestAuthenticationMechanismType.X + new AuthenticationMechanismConfiguration.Builder(TestAuthenticationMechanismType.X) + .withAuthenticationConfigurationTypes(AuthenticationConfiguration_X.class) + .build() ) ).newStore("test", Lists.mutable.empty()); @@ -225,9 +234,16 @@ public void testGetConnection_WithNoAuthConfigProvided() throws Exception new ConnectionBuilder_B() ), Lists.mutable.with( - TestAuthenticationMechanismType.X, - TestAuthenticationMechanismType.Y, - TestAuthenticationMechanismType.Z + new AuthenticationMechanismConfiguration.Builder(TestAuthenticationMechanismType.X) + .withAuthenticationConfigurationTypes(AuthenticationConfiguration_X.class) + .build(), + new AuthenticationMechanismConfiguration.Builder(TestAuthenticationMechanismType.Y) + .withAuthenticationConfigurationTypes(AuthenticationConfiguration_Y.class) + .withDefaultAuthenticationConfigurationGenerator(AuthenticationConfiguration_Y::new) + .build(), + new AuthenticationMechanismConfiguration.Builder(TestAuthenticationMechanismType.Z) + .withAuthenticationConfigurationTypes(AuthenticationConfiguration_Z.class) + .build() ) ).newStore("test", Lists.mutable.empty()); @@ -240,11 +256,14 @@ public void testGetConnection_WithNoAuthConfigProvided() throws Exception ), ConnectionBuilder_B.class); // error: unresolvable authentication flow - Exception exception = Assert.assertThrows(RuntimeException.class, () -> + Exception exception = Assertions.assertThrows(RuntimeException.class, () -> { env.connectionFactory.getAuthenticator(new Identity("test"), "test"); }); - Assert.assertEquals("Can't get authenticator: no authentication flow for store 'test' can be resolved for the specified identity using auto-generated authentication configuration. Try specifying an authentication mechanism by providing a configuration of one of the following types:\n- AuthenticationConfiguration_X (mechanism: X)\n- AuthenticationConfiguration_Z (mechanism: Z)", exception.getMessage()); + Assertions.assertEquals("No authentication flow for store 'test' can be resolved for the specified identity. Try specifying an authentication mechanism or authentication configuration. Supported configuration type(s):\n" + + "- AuthenticationConfiguration_X (X)\n" + + "- AuthenticationConfiguration_Y (Y)\n" + + "- AuthenticationConfiguration_Z (Z)", exception.getMessage()); } /** @@ -261,7 +280,9 @@ public void testGetConnection_WithCredentialExtractor() throws Exception new ConnectionBuilder_A() ), Lists.mutable.with( - TestAuthenticationMechanismType.X + new AuthenticationMechanismConfiguration.Builder(TestAuthenticationMechanismType.X) + .withAuthenticationConfigurationTypes(AuthenticationConfiguration_X.class) + .build() ) ).newStore("test", Lists.mutable.empty()); @@ -280,7 +301,9 @@ public void testGetConnection_WithCredentialExtractor() throws Exception new ConnectionBuilder_A() ), Lists.mutable.with( - TestAuthenticationMechanismType.X + new AuthenticationMechanismConfiguration.Builder(TestAuthenticationMechanismType.X) + .withAuthenticationConfigurationTypes(AuthenticationConfiguration_X.class) + .build() ) ).newStore("test", Lists.mutable.empty()); @@ -305,23 +328,25 @@ public void testGetConnection_WithoutCredentialExtractor() throws Exception new ConnectionBuilder_A() ), Lists.mutable.with( - TestAuthenticationMechanismType.X + new AuthenticationMechanismConfiguration.Builder(TestAuthenticationMechanismType.X) + .withAuthenticationConfigurationTypes(AuthenticationConfiguration_X.class) + .build() ) ).newStore("test", Lists.mutable.empty()); Identity identity = new Identity("test", new Credential_A()); - Exception exception = Assert.assertThrows(RuntimeException.class, () -> + Exception exception = Assertions.assertThrows(RuntimeException.class, () -> { env.connectionFactory.getConnection(identity, env.connectionFactory.getAuthenticator(identity, "test", new AuthenticationConfiguration_X())); }); - Assert.assertEquals("Can't get authenticator: no authentication flow for store 'test' can be resolved for the specified identity using authentication mechanism 'X' (authentication configuration: AuthenticationConfiguration_X, connection specification: TestConnectionSpecification)", exception.getMessage()); + Assertions.assertEquals("No authentication flow for store 'test' can be resolved for the specified identity (authentication configuration: AuthenticationConfiguration_X, connection specification: TestConnectionSpecification)", exception.getMessage()); } - private void assertAuthenticator(Identity identity, ConnectionFactory connectionFactory, Authenticator authenticator, Class sourceCredentialType, List credentialBuilders, Class connectionBuilderType) throws Exception + private void assertAuthenticator(Identity identity, ConnectionFactory connectionFactory, Authenticator authenticator, Class sourceCredentialType, List credentialBuilders, Class connectionBuilderType) throws Exception { - Assert.assertEquals(sourceCredentialType, authenticator.getSourceCredentialType()); - Assert.assertEquals(connectionBuilderType, authenticator.getConnectionBuilder().getClass()); - Assert.assertArrayEquals(credentialBuilders.toArray(), authenticator.getCredentialBuilders().stream().map(builder -> String.format("%s->%s [%s]", builder.getInputCredentialType().getSimpleName(), builder.getOutputCredentialType().getSimpleName(), builder.getAuthenticationConfigurationType().getSimpleName())).toArray()); + Assertions.assertEquals(sourceCredentialType, authenticator.getSourceCredentialType()); + Assertions.assertEquals(connectionBuilderType, authenticator.getConnectionBuilder().getClass()); + Assertions.assertArrayEquals(credentialBuilders.toArray(), authenticator.getCredentialBuilders().stream().map(builder -> String.format("%s->%s [%s]", builder.getInputCredentialType().getSimpleName(), builder.getOutputCredentialType().getSimpleName(), builder.getAuthenticationConfigurationType().getSimpleName())).toArray()); connectionFactory.getConnection(identity, authenticator); } @@ -331,14 +356,13 @@ private static class TestEnv final InstrumentedStoreInstanceProvider storeInstanceProvider; final ConnectionFactory connectionFactory; - private TestEnv(List credentialBuilders, List connectionBuilders, List authenticationMechanisms, List supportedAuthenticationMechanisms) + private TestEnv(List credentialBuilders, List connectionBuilders, List authenticationMechanismConfigurations) { this.environment = new LegendEnvironment.Builder() .withStoreSupport(new StoreSupport.Builder() .withIdentifier("test") - .withAuthenticationMechanisms(supportedAuthenticationMechanisms) + .withAuthenticationMechanismConfigurations(authenticationMechanismConfigurations) .build()) - .withAuthenticationMechanisms(authenticationMechanisms) .build(); this.storeInstanceProvider = new InstrumentedStoreInstanceProvider(); this.connectionFactory = new ConnectionFactory.Builder(this.environment, this.storeInstanceProvider) @@ -347,12 +371,12 @@ private TestEnv(List credentialBuilders, List authenticationMechanisms) + TestEnv newStore(String identifier, List authenticationMechanismConfigurations) { this.storeInstanceProvider.injectStoreInstance(new StoreInstance.Builder(this.environment) .withIdentifier(identifier) .withStoreSupportIdentifier("test") - .withAuthenticationMechanisms(authenticationMechanisms) + .withAuthenticationMechanismConfigurations(authenticationMechanismConfigurations) .withConnectionSpecification(new TestConnectionSpecification()) .build()); return this; @@ -360,21 +384,12 @@ TestEnv newStore(String identifier, List authentication static TestEnv create() { - return new TestEnv(Lists.mutable.empty(), Lists.mutable.empty(), Lists.mutable.empty(), Lists.mutable.empty()); - } - - static TestEnv create(List credentialBuilders, List connectionBuilders, List authenticationMechanisms, List supportedAuthenticationMechanisms) - { - return new TestEnv(credentialBuilders, connectionBuilders, authenticationMechanisms, supportedAuthenticationMechanisms); + return new TestEnv(Lists.mutable.empty(), Lists.mutable.empty(), Lists.mutable.empty()); } - static TestEnv create(List credentialBuilders, List connectionBuilders, List supportedAuthenticationMechanisms) + static TestEnv create(List credentialBuilders, List connectionBuilders, List authenticationMechanismConfigurations) { - return new TestEnv(credentialBuilders, connectionBuilders, Lists.mutable.with( - TestAuthenticationMechanismType.X, - TestAuthenticationMechanismType.Y, - TestAuthenticationMechanismType.Z - ), supportedAuthenticationMechanisms); + return new TestEnv(credentialBuilders, connectionBuilders, authenticationMechanismConfigurations); } } @@ -396,48 +411,36 @@ private static class Credential_C implements Credential private static class AuthenticationConfiguration_X extends AuthenticationConfiguration { + @Override + public String shortId() + { + return null; + } } private static class AuthenticationConfiguration_Y extends AuthenticationConfiguration { + @Override + public String shortId() + { + return null; + } } private static class AuthenticationConfiguration_Z extends AuthenticationConfiguration { + @Override + public String shortId() + { + return null; + } } private enum TestAuthenticationMechanismType implements AuthenticationMechanism { - X - { - @Override - public Class getAuthenticationConfigurationType() - { - return AuthenticationConfiguration_X.class; - } - }, - Y - { - @Override - public Class getAuthenticationConfigurationType() - { - return AuthenticationConfiguration_Y.class; - } - - @Override - public AuthenticationConfiguration generateConfiguration() - { - return new AuthenticationConfiguration_Y(); - } - }, - Z - { - @Override - public Class getAuthenticationConfigurationType() - { - return AuthenticationConfiguration_Z.class; - } - }; + X, + Y, + Z; @Override public String getLabel() @@ -517,34 +520,65 @@ public Credential_A makeCredential(Identity identity, AuthenticationConfiguratio // -------------------------- Connection ------------------------------- + private static class TestConnectionManager implements ConnectionManager + { + @Override + public void initialize(LegendEnvironment environment) + { + } + } + private static class TestConnectionSpecification extends ConnectionSpecification { + @Override + public String shortId() + { + return null; + } } private static class ConnectionBuilder_A extends ConnectionBuilder { @Override - public Object getConnection(StoreInstance storeInstance, Credential_A credential) throws Exception + public Object getConnection(TestConnectionSpecification connectionSpecification, Authenticator authenticator, Identity identity) throws Exception { return null; } + + @Override + public ConnectionManager getConnectionManager() + { + return new TestConnectionManager(); + } } private static class ConnectionBuilder_B extends ConnectionBuilder { @Override - public Object getConnection(StoreInstance storeInstance, Credential_B credential) throws Exception + public Object getConnection(TestConnectionSpecification connectionSpecification, Authenticator authenticator, Identity identity) throws Exception { return null; } + + @Override + public ConnectionManager getConnectionManager() + { + return new TestConnectionManager(); + } } private static class ConnectionBuilder_C extends ConnectionBuilder { @Override - public Object getConnection(StoreInstance storeInstance, Credential_C credential) throws Exception + public Object getConnection(TestConnectionSpecification connectionSpecification, Authenticator authenticator, Identity identity) throws Exception { return null; } + + @Override + public ConnectionManager getConnectionManager() + { + return new TestConnectionManager(); + } } } diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/test/java/org/finos/legend/connection/LegendEnvironmentTest.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/test/java/org/finos/legend/connection/LegendEnvironmentTest.java deleted file mode 100644 index 2ff1f49db9c..00000000000 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/test/java/org/finos/legend/connection/LegendEnvironmentTest.java +++ /dev/null @@ -1,127 +0,0 @@ -// Copyright 2023 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.connection; - -import org.eclipse.collections.api.factory.Lists; -import org.finos.legend.connection.protocol.AuthenticationConfiguration; -import org.finos.legend.connection.protocol.AuthenticationMechanism; -import org.junit.Assert; -import org.junit.Test; - -public class LegendEnvironmentTest -{ - @Test - public void testValidateBuilder() - { - // success - new LegendEnvironment.Builder() - .withAuthenticationMechanisms(Lists.mutable.of( - TestAuthenticationMechanismType.X, - TestAuthenticationMechanismType.Y - )).build(); - - Exception exception; - - // failure: found invalid mechanism - exception = Assert.assertThrows(RuntimeException.class, () -> - { - new LegendEnvironment.Builder() - .withAuthenticationMechanisms(Lists.mutable.of( - TestAuthenticationMechanismType.X, - TestAuthenticationMechanismType.Y, - TestAuthenticationMechanismType.Z - )).build(); - }); - Assert.assertEquals("Can't build environment configuration: authentication mechanism 'Z' is misconfigured, its associated configuration type is 'AuthenticationConfiguration_Z' and its generated configuration type is 'AuthenticationConfiguration_X'", exception.getMessage()); - - // failure: found conflicting mechanisms - exception = Assert.assertThrows(RuntimeException.class, () -> - { - new LegendEnvironment.Builder() - .withAuthenticationMechanisms(Lists.mutable.of( - TestAuthenticationMechanismType.X, - TestAuthenticationMechanismType.Y, - TestAuthenticationMechanismType.T - )).build(); - }); - Assert.assertEquals("Can't build environment configuration: found multiple authentication mechanisms (Y, T) associated with the same configuration type 'AuthenticationConfiguration_Y'", exception.getMessage()); - } - - private static class AuthenticationConfiguration_X extends AuthenticationConfiguration - { - } - - private static class AuthenticationConfiguration_Y extends AuthenticationConfiguration - { - } - - private static class AuthenticationConfiguration_Z extends AuthenticationConfiguration - { - } - - private enum TestAuthenticationMechanismType implements AuthenticationMechanism - { - X - { - @Override - public Class getAuthenticationConfigurationType() - { - return AuthenticationConfiguration_X.class; - } - }, - Y - { - @Override - public Class getAuthenticationConfigurationType() - { - return AuthenticationConfiguration_Y.class; - } - - @Override - public AuthenticationConfiguration generateConfiguration() - { - return new AuthenticationConfiguration_Y(); - } - }, - Z - { - @Override - public Class getAuthenticationConfigurationType() - { - return AuthenticationConfiguration_Z.class; - } - - @Override - public AuthenticationConfiguration generateConfiguration() - { - return new AuthenticationConfiguration_X(); - } - }, - T - { - @Override - public Class getAuthenticationConfigurationType() - { - return AuthenticationConfiguration_Y.class; - } - }; - - @Override - public String getLabel() - { - return this.toString(); - } - } -} diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/test/java/org/finos/legend/connection/StoreSupportTest.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/test/java/org/finos/legend/connection/StoreSupportTest.java index d82b88c99c8..3a7f85d05ff 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/test/java/org/finos/legend/connection/StoreSupportTest.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/src/test/java/org/finos/legend/connection/StoreSupportTest.java @@ -14,11 +14,16 @@ package org.finos.legend.connection; +import org.eclipse.collections.api.factory.Lists; +import org.finos.legend.connection.impl.DefaultStoreInstanceProvider; +import org.finos.legend.connection.impl.EncryptedPrivateKeyPairAuthenticationConfiguration; +import org.finos.legend.connection.impl.KerberosAuthenticationConfiguration; +import org.finos.legend.connection.impl.UserPasswordAuthenticationConfiguration; import org.finos.legend.connection.protocol.AuthenticationMechanism; import org.finos.legend.connection.protocol.AuthenticationMechanismType; import org.finos.legend.connection.protocol.ConnectionSpecification; -import org.junit.Assert; -import org.junit.Test; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; public class StoreSupportTest { @@ -33,11 +38,52 @@ public void testValidateStoreSupportBuilder() // failure Exception exception; - exception = Assert.assertThrows(RuntimeException.class, () -> + exception = Assertions.assertThrows(RuntimeException.class, () -> { new StoreSupport.Builder().build(); }); - Assert.assertEquals("Store support identifier is required", exception.getMessage()); + Assertions.assertEquals("Identifier is missing", exception.getMessage()); + + exception = Assertions.assertThrows(RuntimeException.class, () -> + { + new StoreSupport.Builder() + .withIdentifier("test") + .withAuthenticationMechanismConfigurations( + new AuthenticationMechanismConfiguration.Builder(AuthenticationMechanismType.USER_PASSWORD) + .withAuthenticationConfigurationTypes(UserPasswordAuthenticationConfiguration.class) + .build(), + new AuthenticationMechanismConfiguration.Builder(AuthenticationMechanismType.USER_PASSWORD) + .withAuthenticationConfigurationTypes(UserPasswordAuthenticationConfiguration.class) + .build() + ).build(); + }); + Assertions.assertEquals("Found multiple configurations for authentication mechanism 'UsernamePassword'", exception.getMessage()); + + exception = Assertions.assertThrows(RuntimeException.class, () -> + { + new StoreSupport.Builder() + .withIdentifier("test") + .withAuthenticationMechanismConfigurations( + new AuthenticationMechanismConfiguration.Builder(AuthenticationMechanismType.USER_PASSWORD) + .withAuthenticationConfigurationTypes(UserPasswordAuthenticationConfiguration.class) + .build(), + new AuthenticationMechanismConfiguration.Builder(AuthenticationMechanismType.KERBEROS) + .withAuthenticationConfigurationTypes(UserPasswordAuthenticationConfiguration.class) + .build() + ).build(); + }); + Assertions.assertEquals("Authentication configuration type 'UserPasswordAuthenticationConfiguration' is associated with multiple authentication mechanisms", exception.getMessage()); + + exception = Assertions.assertThrows(RuntimeException.class, () -> + { + new StoreSupport.Builder() + .withIdentifier("test") + .withAuthenticationMechanismConfigurations( + new AuthenticationMechanismConfiguration.Builder(AuthenticationMechanismType.USER_PASSWORD) + .build() + ).build(); + }); + Assertions.assertEquals("No authentication configuration type is associated with authentication mechanism 'UsernamePassword'", exception.getMessage()); } @Test @@ -46,9 +92,16 @@ public void testValidateStoreInstanceBuilder() LegendEnvironment environment = new LegendEnvironment.Builder() .withStoreSupport(new StoreSupport.Builder() .withIdentifier("test") - .withAuthenticationMechanisms( - AuthenticationMechanismType.USER_PASSWORD, - AuthenticationMechanismType.KERBEROS + .withAuthenticationMechanismConfigurations( + new AuthenticationMechanismConfiguration.Builder(AuthenticationMechanismType.USER_PASSWORD) + .withAuthenticationConfigurationTypes( + UserPasswordAuthenticationConfiguration.class, + EncryptedPrivateKeyPairAuthenticationConfiguration.class + ) + .build(), + new AuthenticationMechanismConfiguration.Builder(AuthenticationMechanismType.KERBEROS) + .withAuthenticationConfigurationTypes(KerberosAuthenticationConfiguration.class) + .build() ) .build()) .build(); @@ -57,10 +110,13 @@ public void testValidateStoreInstanceBuilder() StoreInstance testStore = new StoreInstance.Builder(environment) .withIdentifier("test-store") .withStoreSupportIdentifier("test") - .withAuthenticationMechanisms(AuthenticationMechanismType.USER_PASSWORD) + .withAuthenticationMechanismConfigurations( + new AuthenticationMechanismConfiguration.Builder(AuthenticationMechanismType.USER_PASSWORD) + .build() + ) .withConnectionSpecification(new TestConnectionSpecification()) .build(); - Assert.assertArrayEquals(new AuthenticationMechanism[]{AuthenticationMechanismType.USER_PASSWORD}, testStore.getAuthenticationMechanisms().toArray()); + Assertions.assertArrayEquals(new AuthenticationMechanism[]{AuthenticationMechanismType.USER_PASSWORD}, testStore.getAuthenticationMechanisms().toArray()); // make sure if no auth mechanisms is specified, all mechanisms will be supported StoreInstance testStore2 = new StoreInstance.Builder(environment) @@ -68,34 +124,89 @@ public void testValidateStoreInstanceBuilder() .withStoreSupportIdentifier("test") .withConnectionSpecification(new TestConnectionSpecification()) .build(); - Assert.assertArrayEquals(new AuthenticationMechanism[]{AuthenticationMechanismType.USER_PASSWORD, AuthenticationMechanismType.KERBEROS}, testStore2.getAuthenticationMechanisms().toArray()); + Assertions.assertArrayEquals(new AuthenticationMechanism[]{AuthenticationMechanismType.USER_PASSWORD, AuthenticationMechanismType.KERBEROS}, testStore2.getAuthenticationMechanisms().toArray()); + + // make sure if no authentication configuration type is specified, all types will be supported + StoreInstance testStore3 = new StoreInstance.Builder(environment) + .withIdentifier("test-store") + .withStoreSupportIdentifier("test") + .withConnectionSpecification(new TestConnectionSpecification()) + .withAuthenticationMechanismConfiguration(new AuthenticationMechanismConfiguration.Builder(AuthenticationMechanismType.USER_PASSWORD).build()) + .build(); + Assertions.assertArrayEquals(Lists.mutable.of( + UserPasswordAuthenticationConfiguration.class, + EncryptedPrivateKeyPairAuthenticationConfiguration.class + ).toArray(), testStore3.getAuthenticationMechanismConfiguration(AuthenticationMechanismType.USER_PASSWORD).getAuthenticationConfigurationTypes().toArray()); // failure Exception exception; - exception = Assert.assertThrows(RuntimeException.class, () -> + exception = Assertions.assertThrows(RuntimeException.class, () -> { new StoreInstance.Builder(environment) .withIdentifier("test-store") .withStoreSupportIdentifier("test") .build(); }); - Assert.assertEquals("Store instance connection specification is required", exception.getMessage()); + Assertions.assertEquals("Connection specification is missing", exception.getMessage()); - exception = Assert.assertThrows(RuntimeException.class, () -> + exception = Assertions.assertThrows(RuntimeException.class, () -> { new StoreInstance.Builder(environment) .withIdentifier("test-store") .withStoreSupportIdentifier("test") - .withAuthenticationMechanisms(AuthenticationMechanismType.API_KEY) + .withAuthenticationMechanismConfigurations( + new AuthenticationMechanismConfiguration.Builder(AuthenticationMechanismType.USER_PASSWORD) + .build(), + new AuthenticationMechanismConfiguration.Builder(AuthenticationMechanismType.USER_PASSWORD) + .build() + ) .withConnectionSpecification(new TestConnectionSpecification()) .build(); }); - Assert.assertEquals("Store instance specified with authentication configuration types (API_KEY) which are not covered by its store support 'test'", exception.getMessage()); + Assertions.assertEquals("Found multiple configurations for authentication mechanism 'UsernamePassword'", exception.getMessage()); + + exception = Assertions.assertThrows(RuntimeException.class, () -> + { + new StoreInstance.Builder(environment) + .withIdentifier("test-store") + .withStoreSupportIdentifier("test") + .withAuthenticationMechanismConfigurations( + new AuthenticationMechanismConfiguration.Builder(AuthenticationMechanismType.API_KEY) + .build() + ) + .withConnectionSpecification(new TestConnectionSpecification()) + .build(); + }); + Assertions.assertEquals("Authentication mechanism 'APIKey' is not covered by store support 'test'. Supported mechanism(s):\n" + + "- UsernamePassword\n" + + "- Kerberos", exception.getMessage()); + + exception = Assertions.assertThrows(RuntimeException.class, () -> + { + new StoreInstance.Builder(environment) + .withIdentifier("test-store") + .withStoreSupportIdentifier("test") + .withAuthenticationMechanismConfigurations( + new AuthenticationMechanismConfiguration.Builder(AuthenticationMechanismType.USER_PASSWORD) + .withAuthenticationConfigurationTypes(KerberosAuthenticationConfiguration.class) + .build() + ) + .withConnectionSpecification(new TestConnectionSpecification()) + .build(); + }); + Assertions.assertEquals("Authentication configuration type 'KerberosAuthenticationConfiguration' is not covered by store support 'test' for authentication mechanism 'UsernamePassword'. Supported configuration type(s):\n" + + "- UserPasswordAuthenticationConfiguration\n" + + "- EncryptedPrivateKeyPairAuthenticationConfiguration", exception.getMessage()); } private static class TestConnectionSpecification extends ConnectionSpecification { + @Override + public String shortId() + { + return null; + } } @Test @@ -104,9 +215,13 @@ public void testStoreInstanceManagement() LegendEnvironment environment = new LegendEnvironment.Builder() .withStoreSupport(new StoreSupport.Builder() .withIdentifier("test") - .withAuthenticationMechanisms( - AuthenticationMechanismType.USER_PASSWORD, - AuthenticationMechanismType.KERBEROS + .withAuthenticationMechanismConfigurations( + new AuthenticationMechanismConfiguration.Builder(AuthenticationMechanismType.USER_PASSWORD) + .withAuthenticationConfigurationTypes(UserPasswordAuthenticationConfiguration.class) + .build(), + new AuthenticationMechanismConfiguration.Builder(AuthenticationMechanismType.KERBEROS) + .withAuthenticationConfigurationTypes(KerberosAuthenticationConfiguration.class) + .build() ) .build()) .build(); @@ -123,17 +238,17 @@ public void testStoreInstanceManagement() Exception exception; // error: store already registered - exception = Assert.assertThrows(RuntimeException.class, () -> + exception = Assertions.assertThrows(RuntimeException.class, () -> { new DefaultStoreInstanceProvider.Builder().withStoreInstances(storeInstance, storeInstance).build(); }); - Assert.assertEquals("Can't register store instance: found multiple store instances with identifier 'test-store'", exception.getMessage()); + Assertions.assertEquals("Found multiple store instances with identifier 'test-store'", exception.getMessage()); // error: store not found - exception = Assert.assertThrows(RuntimeException.class, () -> + exception = Assertions.assertThrows(RuntimeException.class, () -> { storeInstanceProvider.lookup("unknown"); }); - Assert.assertEquals("Can't find store instance with identifier 'unknown'", exception.getMessage()); + Assertions.assertEquals("Can't find store instance with identifier 'unknown'", exception.getMessage()); } } diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/CredentialVaultSecret.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/CredentialVaultSecret.java index a7974149099..e28191a88ca 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/CredentialVaultSecret.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/CredentialVaultSecret.java @@ -29,7 +29,13 @@ public CredentialVaultSecret() // jackson } - public T accept(PackageableElementVisitor visitor) + // TODO: @akphi - turn this into abstract, this default implementation is meant for backward compatibility + public String shortId() + { + return "CredentialVaultSecret"; + } + + public T accept(PackageableElementVisitor visitor) { return visitor.visit(this); } diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/EnvironmentCredentialVaultSecret.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/EnvironmentCredentialVaultSecret.java index 5558932e881..b217f15c179 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/EnvironmentCredentialVaultSecret.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/EnvironmentCredentialVaultSecret.java @@ -31,6 +31,13 @@ public EnvironmentCredentialVaultSecret(String envVariableName) this.envVariableName = envVariableName; } + @Override + public String shortId() + { + return "EnvironmentCredentialVaultSecret" + + "--envVariableName=" + envVariableName; + } + @Override public T accept(PackageableElementVisitor visitor) { diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/PropertiesFileSecret.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/PropertiesFileSecret.java index 1d2bb110620..eccfc23b6cd 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/PropertiesFileSecret.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/PropertiesFileSecret.java @@ -31,6 +31,13 @@ public PropertiesFileSecret(String propertyName) this.propertyName = propertyName; } + @Override + public String shortId() + { + return "PropertiesFileSecret" + + "--propertyName=" + propertyName; + } + @Override public T accept(PackageableElementVisitor visitor) { diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/SystemPropertiesSecret.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/SystemPropertiesSecret.java index 571cc0f441b..f506ad5442f 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/SystemPropertiesSecret.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/SystemPropertiesSecret.java @@ -31,6 +31,13 @@ public SystemPropertiesSecret(String systemPropertyName) this.systemPropertyName = systemPropertyName; } + @Override + public String shortId() + { + return "SystemPropertiesSecret" + + "--systemPropertyName=" + systemPropertyName; + } + @Override public T accept(PackageableElementVisitor visitor) { diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/aws/AWSCredentials.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/aws/AWSCredentials.java index 52555234afb..778607a8740 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/aws/AWSCredentials.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/aws/AWSCredentials.java @@ -22,5 +22,7 @@ public abstract class AWSCredentials { public SourceInformation sourceInformation; + public abstract String shortId(); + public abstract T accept(AWSCredentialsVisitor visitor); } diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/aws/AWSDefaultCredentials.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/aws/AWSDefaultCredentials.java index 4781c894843..b1b1b863755 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/aws/AWSDefaultCredentials.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/aws/AWSDefaultCredentials.java @@ -23,6 +23,12 @@ public AWSDefaultCredentials() { } + @Override + public String shortId() + { + return "AWSDefaultCredentials"; + } + @Override public T accept(AWSCredentialsVisitor visitor) { diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/aws/AWSSTSAssumeRoleCredentials.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/aws/AWSSTSAssumeRoleCredentials.java index 29137588b61..ce8634efce5 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/aws/AWSSTSAssumeRoleCredentials.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/aws/AWSSTSAssumeRoleCredentials.java @@ -36,6 +36,15 @@ public AWSSTSAssumeRoleCredentials(AWSCredentials awsCredentials, String roleArn this.roleSessionName = roleSessionName; } + @Override + public String shortId() + { + return "AWSSTSAssumeRoleCredentials" + + "--roleArn=" + roleArn + + "--roleSessionName=" + roleSessionName + + "--awsCredentials=" + awsCredentials.shortId(); + } + @Override public T accept(AWSCredentialsVisitor visitor) { diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/aws/AWSSecretsManagerSecret.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/aws/AWSSecretsManagerSecret.java index 24f0456bbaa..ac33c9bd39a 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/aws/AWSSecretsManagerSecret.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/aws/AWSSecretsManagerSecret.java @@ -40,6 +40,16 @@ public AWSSecretsManagerSecret(String secretId, String versionId, String version this.awsCredentials = awsCredentials; } + @Override + public String shortId() + { + return "AWSSecretsManagerSecret" + + "--secretId=" + secretId + + "--versionId=" + versionId + + "--versionStage=" + versionStage + + "--awsCredentials=" + awsCredentials.shortId(); + } + @Override public T accept(PackageableElementVisitor visitor) { diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/aws/AWSStaticCredentials.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/aws/AWSStaticCredentials.java index e82640e30d4..e164fd88829 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/aws/AWSStaticCredentials.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/authentication/vault/aws/AWSStaticCredentials.java @@ -33,6 +33,14 @@ public AWSStaticCredentials(CredentialVaultSecret accessKeyId, CredentialVaultSe this.secretAccessKey = secretAccessKey; } + @Override + public String shortId() + { + return "AWSStaticCredentials" + + "--accessKeyId=" + accessKeyId.shortId() + + "--secretAccessKey=" + secretAccessKey.shortId(); + } + @Override public T accept(AWSCredentialsVisitor visitor) { diff --git a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/src/main/java/org/finos/legend/engine/datapush/server/ConnectionFactoryBundle.java b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/src/main/java/org/finos/legend/engine/datapush/server/ConnectionFactoryBundle.java index 77c70b13c14..2b96dfd3940 100644 --- a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/src/main/java/org/finos/legend/engine/datapush/server/ConnectionFactoryBundle.java +++ b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/src/main/java/org/finos/legend/engine/datapush/server/ConnectionFactoryBundle.java @@ -21,13 +21,15 @@ import org.finos.legend.authentication.vault.CredentialVault; import org.finos.legend.authentication.vault.impl.EnvironmentCredentialVault; import org.finos.legend.authentication.vault.impl.SystemPropertiesCredentialVault; +import org.finos.legend.connection.AuthenticationMechanismConfiguration; import org.finos.legend.connection.ConnectionFactory; import org.finos.legend.connection.DatabaseType; -import org.finos.legend.connection.DefaultStoreInstanceProvider; -import org.finos.legend.connection.LegendEnvironment; +import org.finos.legend.connection.impl.DefaultStoreInstanceProvider; import org.finos.legend.connection.IdentityFactory; +import org.finos.legend.connection.LegendEnvironment; import org.finos.legend.connection.RelationalDatabaseStoreSupport; import org.finos.legend.connection.StoreInstanceProvider; +import org.finos.legend.connection.impl.UserPasswordAuthenticationConfiguration; import org.finos.legend.connection.protocol.AuthenticationMechanismType; import java.util.List; @@ -62,11 +64,10 @@ public void run(C configuration, Environment environment) .withVault(new SystemPropertiesCredentialVault()) .withVault(new EnvironmentCredentialVault()) .withVaults(this.credentialVaults) - .withStoreSupport(new RelationalDatabaseStoreSupport.Builder() + .withStoreSupport(new RelationalDatabaseStoreSupport.Builder(DatabaseType.POSTGRES) .withIdentifier("Postgres") - .withDatabase(DatabaseType.POSTGRES) - .withAuthenticationMechanisms( - AuthenticationMechanismType.USER_PASSWORD + .withAuthenticationMechanismConfigurations( + new AuthenticationMechanismConfiguration.Builder(AuthenticationMechanismType.USER_PASSWORD).withAuthenticationConfigurationTypes(UserPasswordAuthenticationConfiguration.class).build() ).build()) .build(); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml index 619aa0f01a2..6754b87c866 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml @@ -33,14 +33,6 @@ org.finos.legend.engine legend-engine-shared-core - - org.finos.legend.engine - legend-engine-xt-authentication-protocol - - - org.finos.legend.engine - legend-engine-xt-authentication-implementation-core - org.finos.legend.engine legend-engine-xt-authentication-connection-factory @@ -62,10 +54,18 @@ + + + com.zaxxer + HikariCP + + + com.h2database h2 + runtime @@ -75,11 +75,6 @@ junit test - - org.finos.legend.engine - legend-engine-xt-authentication-implementation-vault-aws - test - \ No newline at end of file diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/jdbc/driver/JDBCConnectionDriver.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/DatabaseManager.java similarity index 77% rename from legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/jdbc/driver/JDBCConnectionDriver.java rename to legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/DatabaseManager.java index 80c80a32b30..d7320f0a503 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/jdbc/driver/JDBCConnectionDriver.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/DatabaseManager.java @@ -12,17 +12,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -package org.finos.legend.connection.jdbc.driver; +package org.finos.legend.connection; import java.util.List; import java.util.Properties; -public interface JDBCConnectionDriver +public interface DatabaseManager { List getIds(); - // TODO?: @akphi - should we port over the driver wrapper stuffs from DatabaseManager as well? String getDriver(); - String buildURL(String host, int port, String databaseName, Properties extraUserDataSourceProperties); + String buildURL(String host, int port, String databaseName, Properties properties); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/DatabaseType.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/DatabaseType.java index 159627e6a63..3982c57e35e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/DatabaseType.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/DatabaseType.java @@ -16,7 +16,9 @@ public enum DatabaseType implements Database { + H2("H2"), POSTGRES("Postgres"), + BIG_QUERY("BigQuery"), SNOWFLAKE("Snowflake"); private final String label; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/HACKY__RelationalDatabaseConnectionAdapter.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/HACKY__RelationalDatabaseConnectionAdapter.java new file mode 100644 index 00000000000..172bdd2a8d2 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/HACKY__RelationalDatabaseConnectionAdapter.java @@ -0,0 +1,41 @@ +// Copyright 2023 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.connection; + +import org.finos.legend.connection.protocol.AuthenticationConfiguration; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.RelationalDatabaseConnection; +import org.finos.legend.engine.shared.core.identity.Identity; + +/** + * NOTE: this is hacky way of us to realize the relational database connection that we can support + * in the new connection framework (i.e. using {@link ConnectionFactory}), when we have a more + * solid strategy in place for migration to this new framework, we should then remove this mechanism + */ +public interface HACKY__RelationalDatabaseConnectionAdapter +{ + ConnectionFactoryMaterial adapt(RelationalDatabaseConnection relationalDatabaseConnection, Identity identity, LegendEnvironment environment); + + class ConnectionFactoryMaterial + { + public final StoreInstance storeInstance; + public final AuthenticationConfiguration authenticationConfiguration; + + public ConnectionFactoryMaterial(StoreInstance storeInstance, AuthenticationConfiguration authenticationConfiguration) + { + this.storeInstance = storeInstance; + this.authenticationConfiguration = authenticationConfiguration; + } + } +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/JDBCConnectionBuilder.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/JDBCConnectionBuilder.java new file mode 100644 index 00000000000..0c09de0784e --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/JDBCConnectionBuilder.java @@ -0,0 +1,54 @@ +// Copyright 2023 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.connection; + +import org.finos.legend.connection.impl.JDBCConnectionManager; +import org.finos.legend.connection.protocol.ConnectionSpecification; +import org.finos.legend.engine.shared.core.identity.Credential; + +import java.sql.Connection; + +public abstract class JDBCConnectionBuilder extends ConnectionBuilder +{ + private JDBCConnectionManager.ConnectionPoolConfig connectionPoolConfig; + + @Override + public Class getCredentialType() + { + return (Class) actualTypeArguments()[0]; + } + + @Override + public Class getConnectionSpecificationType() + { + return (Class) actualTypeArguments()[1]; + } + + @Override + public JDBCConnectionManager getConnectionManager() + { + return JDBCConnectionManager.getInstance(); + } + + public void setConnectionPoolConfig(JDBCConnectionManager.ConnectionPoolConfig connectionPoolConfig) + { + this.connectionPoolConfig = connectionPoolConfig; + } + + public JDBCConnectionManager.ConnectionPoolConfig getConnectionPoolConfig() + { + return connectionPoolConfig; + } +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/RelationalDatabaseStoreSupport.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/RelationalDatabaseStoreSupport.java index 7a80a169137..b81cb654a97 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/RelationalDatabaseStoreSupport.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/RelationalDatabaseStoreSupport.java @@ -15,23 +15,18 @@ package org.finos.legend.connection; import org.eclipse.collections.api.factory.Lists; -import org.finos.legend.connection.protocol.AuthenticationMechanism; -import java.util.ArrayList; -import java.util.LinkedHashSet; import java.util.List; import java.util.Objects; -import java.util.Set; public class RelationalDatabaseStoreSupport extends StoreSupport { private final Database database; - private final Set authenticationMechanisms = new LinkedHashSet<>(); - private RelationalDatabaseStoreSupport(String identifier, Database database, List authenticationMechanisms) + private RelationalDatabaseStoreSupport(String identifier, Database database, List authenticationMechanismConfigurations) { - super(identifier, authenticationMechanisms); - this.database = database; + super(identifier, authenticationMechanismConfigurations); + this.database = Objects.requireNonNull(database, "Relational database store support database type is missing"); } public Database getDatabase() @@ -39,48 +34,67 @@ public Database getDatabase() return database; } + public static RelationalDatabaseStoreSupport cast(StoreSupport storeSupport) + { + return cast(storeSupport, null); + } + + public static RelationalDatabaseStoreSupport cast(StoreSupport storeSupport, Database database) + { + if (!(storeSupport instanceof RelationalDatabaseStoreSupport)) + { + throw new RuntimeException("Expected store support for relational databases"); + } + RelationalDatabaseStoreSupport relationalDatabaseStoreSupport = (RelationalDatabaseStoreSupport) storeSupport; + if (database != null && !database.equals(relationalDatabaseStoreSupport.getDatabase())) + { + + throw new RuntimeException(String.format("Expected relational database store support for '%s'", database.getLabel())); + } + return relationalDatabaseStoreSupport; + } + public static class Builder { + private final Database database; private String identifier; - private Database database; - private final Set authenticationMechanisms = new LinkedHashSet<>(); + private final List authenticationMechanismConfigurations = Lists.mutable.empty(); - public Builder withIdentifier(String identifier) + public Builder(Database database) { - this.identifier = identifier; - return this; + this.database = database; } - public Builder withDatabase(Database database) + public Builder withIdentifier(String identifier) { - this.database = database; + this.identifier = identifier; return this; } - public Builder withAuthenticationMechanisms(List authenticationMechanisms) + public Builder withAuthenticationMechanismConfiguration(AuthenticationMechanismConfiguration authenticationMechanismConfiguration) { - this.authenticationMechanisms.addAll(authenticationMechanisms); + this.authenticationMechanismConfigurations.add(authenticationMechanismConfiguration); return this; } - public Builder withAuthenticationMechanisms(AuthenticationMechanism... authenticationMechanisms) + public Builder withAuthenticationMechanismConfigurations(List authenticationMechanismConfigurations) { - this.authenticationMechanisms.addAll(Lists.mutable.of(authenticationMechanisms)); + this.authenticationMechanismConfigurations.addAll(authenticationMechanismConfigurations); return this; } - public Builder withAuthenticationMechanism(AuthenticationMechanism authenticationMechanism) + public Builder withAuthenticationMechanismConfigurations(AuthenticationMechanismConfiguration... authenticationMechanismConfigurations) { - this.authenticationMechanisms.add(authenticationMechanism); + this.authenticationMechanismConfigurations.addAll(Lists.mutable.of(authenticationMechanismConfigurations)); return this; } public RelationalDatabaseStoreSupport build() { return new RelationalDatabaseStoreSupport( - Objects.requireNonNull(this.identifier, "Store support identifier is required"), - Objects.requireNonNull(this.database, "Store support database type is required"), - new ArrayList<>(this.authenticationMechanisms) + this.identifier, + this.database, + this.authenticationMechanismConfigurations ); } } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/jdbc/driver/H2_JDBCConnectionDriver.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/impl/H2DatabaseManager.java similarity index 79% rename from legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/jdbc/driver/H2_JDBCConnectionDriver.java rename to legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/impl/H2DatabaseManager.java index 99c86c579ae..44fdf427975 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/jdbc/driver/H2_JDBCConnectionDriver.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/impl/H2DatabaseManager.java @@ -12,15 +12,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -package org.finos.legend.connection.jdbc.driver; +package org.finos.legend.connection.impl; import org.eclipse.collections.impl.factory.Lists; -import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.DatabaseType; +import org.finos.legend.connection.DatabaseManager; +import org.finos.legend.connection.DatabaseType; import java.util.List; import java.util.Properties; -public class H2_JDBCConnectionDriver implements JDBCConnectionDriver +public class H2DatabaseManager implements DatabaseManager { @Override public List getIds() @@ -35,7 +36,7 @@ public String getDriver() } @Override - public String buildURL(String host, int port, String databaseName, Properties extraUserDataSourceProperties) + public String buildURL(String host, int port, String databaseName, Properties properties) { return String.format("jdbc:h2:tcp://%s:%s/mem:%s", host, port, databaseName); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/impl/JDBCConnectionManager.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/impl/JDBCConnectionManager.java new file mode 100644 index 00000000000..8b96bf0aa7a --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/impl/JDBCConnectionManager.java @@ -0,0 +1,425 @@ +// Copyright 2023 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.connection.impl; + +import com.zaxxer.hikari.HikariConfig; +import com.zaxxer.hikari.HikariDataSource; +import org.eclipse.collections.api.block.function.Function0; +import org.eclipse.collections.api.map.ConcurrentMutableMap; +import org.eclipse.collections.impl.map.mutable.ConcurrentHashMap; +import org.finos.legend.connection.Authenticator; +import org.finos.legend.connection.ConnectionManager; +import org.finos.legend.connection.Database; +import org.finos.legend.connection.DatabaseManager; +import org.finos.legend.connection.LegendEnvironment; +import org.finos.legend.connection.StoreInstance; +import org.finos.legend.connection.protocol.AuthenticationConfiguration; +import org.finos.legend.connection.protocol.ConnectionSpecification; +import org.finos.legend.engine.shared.core.identity.Credential; +import org.finos.legend.engine.shared.core.identity.Identity; + +import javax.sql.DataSource; +import java.io.PrintWriter; +import java.sql.Connection; +import java.sql.Driver; +import java.sql.SQLException; +import java.sql.SQLFeatureNotSupportedException; +import java.util.Objects; +import java.util.Properties; +import java.util.ServiceLoader; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.function.Function; +import java.util.function.Supplier; +import java.util.logging.Logger; + +public class JDBCConnectionManager implements ConnectionManager +{ + private static final long HIKARICP_DEFAULT_CONNECTION_TIMEOUT = 30000L; + private static final int HIKARICP_DEFAULT_MAX_POOL_SIZE = 100; + private static final int HIKARICP_DEFAULT_MIN_POOL_SIZE = 0; + + private static final ConcurrentHashMap managerByName = ConcurrentHashMap.newMap(); + private static final AtomicBoolean isInitialized = new AtomicBoolean(); + + private static JDBCConnectionManager INSTANCE; + private final ConcurrentMutableMap poolIndex = ConcurrentHashMap.newMap(); + + protected JDBCConnectionManager() + { + // singleton + } + + public static synchronized JDBCConnectionManager getInstance() + { + if (INSTANCE == null) + { + INSTANCE = new JDBCConnectionManager(); + } + return INSTANCE; + } + + private static void setup() + { + // register database managers + if (!isInitialized.get()) + { + synchronized (isInitialized) + { + if (!isInitialized.get()) + { + for (DatabaseManager manager : ServiceLoader.load(DatabaseManager.class)) + { + manager.getIds().forEach(i -> managerByName.put(i, manager)); + } + isInitialized.set(true); + } + } + } + } + + @Override + public void initialize(LegendEnvironment environment) + { + JDBCConnectionManager.setup(); + } + + public Connection getConnection(Database database, + String host, + int port, + String databaseName, + Properties connectionProperties, + ConnectionPoolConfig connectionPoolConfig, + Function authenticationPropertiesSupplier, + Authenticator authenticator, + Identity identity + ) throws SQLException + { + StoreInstance storeInstance = authenticator.getStoreInstance(); + ConnectionSpecification connectionSpecification = storeInstance.getConnectionSpecification(); + AuthenticationConfiguration authenticationConfiguration = authenticator.getAuthenticationConfiguration(); + String poolName = getPoolName(identity, connectionSpecification, authenticationConfiguration); + + // TODO: @akphi - this is simplistic, we need to handle concurrency and errors + Supplier dataSourceSupplier = () -> this.buildDataSource(database, host, port, databaseName, connectionProperties, connectionPoolConfig, authenticationPropertiesSupplier, authenticator, identity); + Function0 connectionPoolSupplier = () -> new ConnectionPool(dataSourceSupplier.get()); + ConnectionPool connectionPool = this.poolIndex.getIfAbsentPut(poolName, connectionPoolSupplier); + + return connectionPool.dataSource.getConnection(); + +// try (Scope scope = GlobalTracer.get().buildSpan("Get Connection").startActive(true)) +// { +// ConnectionKey connectionKey = this.getConnectionKey(); +// // Logs and traces ----- +// String principal = identityState.getIdentity().getName(); +// scope.span().setTag("Principal", principal); +// scope.span().setTag("DataSourceSpecification", this.toString()); +// LOGGER.info("Get Connection as [{}] for datasource [{}]", principal, connectionKey.shortId()); +// // --------------------- +// try +// { +// DataSourceWithStatistics dataSourceWithStatistics = this.connectionStateManager.getDataSourceForIdentityIfAbsentBuild(identityState, this, dataSourcePoolBuilder); +// // Logs and traces and stats ----- +// String poolName = dataSourceWithStatistics.getPoolName(); +// scope.span().setTag("Pool", poolName); +// int requests = dataSourceWithStatistics.requestConnection(); +// LOGGER.info("Principal [{}] has requested [{}] connections for pool [{}]", principal, requests, poolName); +// return authenticationStrategy.getConnection(dataSourceWithStatistics, identityState.getIdentity()); +// } +// catch (ConnectionException ce) +// { +// LOGGER.error("ConnectionException {{}} : pool stats [{}] ", principal, connectionStateManager.getPoolStatisticsAsJSON(poolNameFor(identityState.getIdentity()))); +// LOGGER.error("ConnectionException ", ce); +// throw ce; +// } +// } + } + + protected HikariDataSource buildDataSource( + Database database, + String host, + int port, + String databaseName, + Properties connectionProperties, + ConnectionPoolConfig connectionPoolConfig, + Function authenticationPropertiesSupplier, + Authenticator authenticator, + Identity identity + ) + { + StoreInstance storeInstance = authenticator.getStoreInstance(); + ConnectionSpecification connectionSpecification = storeInstance.getConnectionSpecification(); + AuthenticationConfiguration authenticationConfiguration = authenticator.getAuthenticationConfiguration(); + DatabaseManager databaseManager = getManagerForDatabase(database); + + String jdbcUrl = databaseManager.buildURL(host, port, databaseName, connectionProperties); + String poolName = getPoolName(identity, connectionSpecification, authenticationConfiguration); + + HikariConfig jdbcConfig = new HikariConfig(); + jdbcConfig.setDriverClassName(databaseManager.getDriver()); + jdbcConfig.setPoolName(poolName); + jdbcConfig.setJdbcUrl(jdbcUrl); + + // NOTE: we could allow more granularity by allow specifying these pooling configurations at specification level + jdbcConfig.setMinimumIdle(connectionPoolConfig != null && connectionPoolConfig.getMinPoolSize() != null ? connectionPoolConfig.getMinPoolSize() : HIKARICP_DEFAULT_MIN_POOL_SIZE); + jdbcConfig.setMaximumPoolSize(connectionPoolConfig != null && connectionPoolConfig.getMaxPoolSize() != null ? connectionPoolConfig.getMaxPoolSize() : HIKARICP_DEFAULT_MAX_POOL_SIZE); + jdbcConfig.setConnectionTimeout(connectionPoolConfig != null && connectionPoolConfig.getConnectionTimeout() != null ? connectionPoolConfig.getConnectionTimeout() : HIKARICP_DEFAULT_CONNECTION_TIMEOUT); + + // specific system configuration to disable statement cache for all databases + // TODO: @akphi - document why we need to do this, check with @pierredebelen, @kevin-m-knight-gs, @epsstan + // See https://github.com/brettwooldridge/HikariCP#statement-cache + jdbcConfig.addDataSourceProperty("cachePrepStmts", false); + jdbcConfig.addDataSourceProperty("prepStmtCacheSize", 0); + jdbcConfig.addDataSourceProperty("prepStmtCacheSqlLimit", 0); + jdbcConfig.addDataSourceProperty("useServerPrepStmts", false); + + jdbcConfig.setDataSource(new DataSourceWrapper(jdbcUrl, connectionProperties, databaseManager, authenticationPropertiesSupplier, authenticator, identity)); + return new HikariDataSource(jdbcConfig); + } + + public ConnectionPool getPool(String poolName) + { + return this.poolIndex.get(poolName); + } + + public int getPoolSize() + { + return this.poolIndex.size(); + } + + public void flushPool() + { + this.poolIndex.forEachKey(this.poolIndex::remove); + } + + public static String getPoolName(Identity identity, ConnectionSpecification connectionSpecification, AuthenticationConfiguration authenticationConfiguration) + { + return String.format("DBPool|%s|%s|%s|%s", + connectionSpecification.shortId(), + authenticationConfiguration.shortId(), + identity.getName(), + identity.getFirstCredential().getClass().getCanonicalName() + ); + } + + private static DatabaseManager getManagerForDatabase(Database database) + { + if (!isInitialized.get()) + { + throw new IllegalStateException("JDBC connection manager has not been configured properly"); + } + DatabaseManager manager = managerByName.get(database.getLabel()); + if (manager == null) + { + throw new RuntimeException(String.format("Can't find any matching managers for database type '%s'", database.getLabel())); + } + return manager; + } + + public static class ConnectionPoolConfig + { + private final Integer minPoolSize; + private final Integer maxPoolSize; + private final Long connectionTimeout; + + private ConnectionPoolConfig(Integer minPoolSize, Integer maxPoolSize, Long connectionTimeout) + { + this.minPoolSize = minPoolSize; + this.maxPoolSize = maxPoolSize; + this.connectionTimeout = connectionTimeout; + } + + public Integer getMinPoolSize() + { + return minPoolSize; + } + + public Integer getMaxPoolSize() + { + return maxPoolSize; + } + + public Long getConnectionTimeout() + { + return connectionTimeout; + } + + public static class Builder + { + private Integer minPoolSize = null; + private Integer maxPoolSize = null; + private Long connectionTimeout = null; + + public Builder withMinPoolSize(Integer minPoolSize) + { + this.minPoolSize = minPoolSize; + return this; + } + + public Builder withMaxPoolSize(Integer maxPoolSize) + { + this.maxPoolSize = maxPoolSize; + return this; + } + + public Builder withConnectionTimeout(Long connectionTimeout) + { + this.connectionTimeout = connectionTimeout; + return this; + } + + public ConnectionPoolConfig build() + { + return new ConnectionPoolConfig(this.minPoolSize, this.maxPoolSize, this.connectionTimeout); + } + } + } + + public static class ConnectionPool + { + private final HikariDataSource dataSource; + + public ConnectionPool(HikariDataSource dataSource) + { + this.dataSource = Objects.requireNonNull(dataSource); + } + + public String getPoolName() + { + return this.dataSource.getPoolName(); + } + + public int getActiveConnections() + { + return this.dataSource.getHikariPoolMXBean().getActiveConnections(); + } + + public int getTotalConnections() + { + return this.dataSource.getHikariPoolMXBean().getTotalConnections(); + } + + public int getIdleConnections() + { + return this.dataSource.getHikariPoolMXBean().getIdleConnections(); + } + + public Properties getProperties() + { + return this.dataSource.getDataSourceProperties(); + } + } + + private static class DataSourceWrapper implements DataSource + { + private final String url; + private final Properties connectionProperties; + private final Function authenticationPropertiesSupplier; + private final Authenticator authenticator; + // TODO: @akphi - how do we get rid of this here? + private final Identity identity; + + private final Driver driver; + + public DataSourceWrapper( + String url, Properties connectionProperties, + DatabaseManager databaseManager, + Function authenticationPropertiesSupplier, + Authenticator authenticator, + Identity identity + ) + { + this.url = url; + this.connectionProperties = connectionProperties; + try + { + this.driver = (Driver) Class.forName(databaseManager.getDriver()).getDeclaredConstructor().newInstance(); + } + catch (Exception e) + { + throw new RuntimeException(e); + } + this.authenticationPropertiesSupplier = authenticationPropertiesSupplier; + this.authenticator = authenticator; + this.identity = identity; + } + + @Override + public Connection getConnection() throws SQLException + { + Properties properties = new Properties(); + properties.putAll(this.connectionProperties); + Credential credential; + try + { + credential = authenticator.makeCredential(identity); + } + catch (Exception e) + { + throw new RuntimeException(e); + } + Properties authenticationProperties = authenticationPropertiesSupplier.apply(credential); + properties.putAll(authenticationProperties); + // TODO: @akphi - prune unnecessary properties using DatabaseManager + // TODO: @akphi - add logging and statistics like in execution DriverWrapper + return driver.connect(this.url, properties); + } + + @Override + public Connection getConnection(String username, String password) throws SQLException + { + throw new RuntimeException(); + } + + @Override + public PrintWriter getLogWriter() throws SQLException + { + return null; + } + + @Override + public void setLogWriter(PrintWriter out) throws SQLException + { + } + + @Override + public void setLoginTimeout(int seconds) throws SQLException + { + } + + @Override + public int getLoginTimeout() throws SQLException + { + return 0; + } + + @Override + public T unwrap(Class iface) throws SQLException + { + return null; + } + + @Override + public boolean isWrapperFor(Class iface) throws SQLException + { + return false; + } + + @Override + public Logger getParentLogger() throws SQLFeatureNotSupportedException + { + return null; + } + } +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/impl/StaticJDBCConnectionBuilder.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/impl/StaticJDBCConnectionBuilder.java new file mode 100644 index 00000000000..1cbe12abf4f --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/impl/StaticJDBCConnectionBuilder.java @@ -0,0 +1,52 @@ +// Copyright 2023 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.connection.impl; + +import org.finos.legend.connection.Authenticator; +import org.finos.legend.connection.JDBCConnectionBuilder; +import org.finos.legend.connection.RelationalDatabaseStoreSupport; +import org.finos.legend.connection.StoreInstance; +import org.finos.legend.connection.protocol.StaticJDBCConnectionSpecification; +import org.finos.legend.engine.shared.core.identity.Credential; +import org.finos.legend.engine.shared.core.identity.Identity; +import org.finos.legend.engine.shared.core.identity.credential.PlaintextUserPasswordCredential; + +import java.sql.Connection; +import java.util.Properties; +import java.util.function.Function; + +public class StaticJDBCConnectionBuilder +{ + public static class WithPlaintextUsernamePassword extends JDBCConnectionBuilder + { + public Connection getConnection(StaticJDBCConnectionSpecification connectionSpecification, Authenticator authenticator, Identity identity) throws Exception + { + StoreInstance storeInstance = authenticator.getStoreInstance(); + RelationalDatabaseStoreSupport storeSupport = RelationalDatabaseStoreSupport.cast(storeInstance.getStoreSupport()); + + Properties connectionProperties = new Properties(); + Function authenticationPropertiesSupplier = cred -> + { + PlaintextUserPasswordCredential credential = (PlaintextUserPasswordCredential) cred; + Properties properties = new Properties(); + properties.put("user", credential.getUser()); + properties.put("password", credential.getPassword()); + return properties; + }; + + return this.getConnectionManager().getConnection(storeSupport.getDatabase(), connectionSpecification.host, connectionSpecification.port, connectionSpecification.databaseName, connectionProperties, this.getConnectionPoolConfig(), authenticationPropertiesSupplier, authenticator, identity); + } + } +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/jdbc/JDBCConnectionManager.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/jdbc/JDBCConnectionManager.java deleted file mode 100644 index 9ee1c8cac2f..00000000000 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/jdbc/JDBCConnectionManager.java +++ /dev/null @@ -1,77 +0,0 @@ -// Copyright 2023 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.connection.jdbc; - -import org.eclipse.collections.impl.map.mutable.ConcurrentHashMap; -import org.finos.legend.connection.ConnectionManager; -import org.finos.legend.connection.Database; -import org.finos.legend.connection.jdbc.driver.JDBCConnectionDriver; - -import java.util.ServiceLoader; -import java.util.concurrent.atomic.AtomicBoolean; - -/** - * TODO?: @akphi - This is a temporary hack! - * We probably need to have a mechanism to control the connection pool - * We cloned DatabaseManager from relational executor, we should consider if we can eventually unify these 2 - */ -public final class JDBCConnectionManager implements ConnectionManager -{ - private static final ConcurrentHashMap driversByName = ConcurrentHashMap.newMap(); - private static final AtomicBoolean isInitialized = new AtomicBoolean(); - - private static void detectDrivers() - { - if (!isInitialized.get()) - { - synchronized (isInitialized) - { - if (!isInitialized.get()) - { - for (JDBCConnectionDriver driver : ServiceLoader.load(JDBCConnectionDriver.class)) - { - JDBCConnectionManager.register(driver); - } - isInitialized.getAndSet(true); - } - } - } - } - - private static void register(JDBCConnectionDriver driver) - { - driver.getIds().forEach(i -> driversByName.put(i, driver)); - } - - public static JDBCConnectionDriver getDriverForDatabase(Database database) - { - if (!isInitialized.get()) - { - throw new IllegalStateException("JDBC connection manager has not been configured properly"); - } - JDBCConnectionDriver driver = driversByName.get(database.getLabel()); - if (driver == null) - { - throw new RuntimeException(String.format("Can't find matching JDBC connection driver for database type '%s'", database)); - } - return driver; - } - - @Override - public void initialize() - { - JDBCConnectionManager.detectDrivers(); - } -} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/jdbc/StaticJDBCConnectionBuilder.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/jdbc/StaticJDBCConnectionBuilder.java deleted file mode 100644 index 0dce38fbbdd..00000000000 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/jdbc/StaticJDBCConnectionBuilder.java +++ /dev/null @@ -1,47 +0,0 @@ -// Copyright 2023 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.connection.jdbc; - -import org.finos.legend.connection.ConnectionBuilder; -import org.finos.legend.connection.RelationalDatabaseStoreSupport; -import org.finos.legend.connection.StoreInstance; -import org.finos.legend.connection.StoreSupport; -import org.finos.legend.connection.jdbc.driver.JDBCConnectionDriver; -import org.finos.legend.engine.shared.core.identity.credential.PlaintextUserPasswordCredential; - -import java.sql.Connection; -import java.sql.DriverManager; -import java.util.Properties; - -public class StaticJDBCConnectionBuilder -{ - public static class WithPlaintextUsernamePassword extends ConnectionBuilder - { - public Connection getConnection(StoreInstance storeInstance, PlaintextUserPasswordCredential credential) throws Exception - { - StoreSupport storeSupport = storeInstance.getStoreSupport(); - StaticJDBCConnectionSpecification connectionSpecification = this.getCompatibleConnectionSpecification(storeInstance); - if (!(storeSupport instanceof RelationalDatabaseStoreSupport)) - { - throw new RuntimeException("Can't get connection: only support relational databases"); - } - JDBCConnectionDriver driver = JDBCConnectionManager.getDriverForDatabase(((RelationalDatabaseStoreSupport) storeSupport).getDatabase()); - return DriverManager.getConnection( - driver.buildURL(connectionSpecification.host, connectionSpecification.port, connectionSpecification.databaseName, new Properties()), - credential.getUser(), credential.getPassword() - ); - } - } -} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/jdbc/legacy/JdbcConnectionProvider.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/jdbc/legacy/JdbcConnectionProvider.java deleted file mode 100644 index 099e2ed1581..00000000000 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/jdbc/legacy/JdbcConnectionProvider.java +++ /dev/null @@ -1,68 +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.connection.jdbc.legacy; - -import org.finos.legend.authentication.credentialprovider.CredentialProviderProvider; -import org.finos.legend.connection.legacy.ConnectionProvider; -import org.finos.legend.connection.legacy.ConnectionSpecification; -import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.authentication.specification.AuthenticationSpecification; -import org.finos.legend.engine.shared.core.identity.Credential; -import org.finos.legend.engine.shared.core.identity.Identity; -import org.finos.legend.engine.shared.core.identity.credential.PlaintextUserPasswordCredential; - -import java.sql.Connection; -import java.sql.DriverManager; -import java.util.Properties; - -public class JdbcConnectionProvider extends ConnectionProvider -{ - public JdbcConnectionProvider(CredentialProviderProvider credentialProviderProvider) - { - super(credentialProviderProvider); - } - - @Override - public Connection makeConnection(ConnectionSpecification connectionSpec, AuthenticationSpecification authenticationSpec, Identity identity) throws Exception - { - assert (connectionSpec instanceof JdbcConnectionSpecification); - JdbcConnectionSpecification jdbcConnectionSpec = (JdbcConnectionSpecification) connectionSpec; - - Credential credential = super.makeCredential(authenticationSpec, identity); - - switch (jdbcConnectionSpec.dbType) - { - case H2: - return connectToH2(jdbcConnectionSpec, credential, identity); - default: - throw new UnsupportedOperationException("Unsupported Db Type " + jdbcConnectionSpec.dbType); - } - } - - private Connection connectToH2(JdbcConnectionSpecification jdbcConnectionSpecification, Credential credential, Identity identity) throws Exception - { - if (!(credential instanceof PlaintextUserPasswordCredential)) - { - String message = String.format("Failed to create connected. Expected credential of type %s but found credential of type %s", PlaintextUserPasswordCredential.class, credential.getClass()); - throw new UnsupportedOperationException(message); - } - PlaintextUserPasswordCredential plaintextUserPasswordCredential = (PlaintextUserPasswordCredential) credential; - Properties properties = new Properties(); - properties.setProperty("user", plaintextUserPasswordCredential.getUser()); - properties.setProperty("password", plaintextUserPasswordCredential.getPassword()); - String url = "jdbc:h2:tcp://" + jdbcConnectionSpecification.dbHostname + ":" + jdbcConnectionSpecification.dbPort + "/mem:" + "db1"; - Connection connection = DriverManager.getConnection(url); - return connection; - } -} \ No newline at end of file diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/jdbc/legacy/JdbcConnectionSpecification.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/jdbc/legacy/JdbcConnectionSpecification.java deleted file mode 100644 index 7722fa37c45..00000000000 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/jdbc/legacy/JdbcConnectionSpecification.java +++ /dev/null @@ -1,41 +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.connection.jdbc.legacy; - -import org.finos.legend.connection.legacy.ConnectionSpecification; - -public class JdbcConnectionSpecification extends ConnectionSpecification -{ - public enum DbType - { - H2 - } - - public String dbHostname; - public int dbPort; - public DbType dbType; - - public JdbcConnectionSpecification() - { - - } - - public JdbcConnectionSpecification(String dbHostname, int dbPort, DbType dbType) - { - this.dbHostname = dbHostname; - this.dbPort = dbPort; - this.dbType = dbType; - } -} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/jdbc/StaticJDBCConnectionSpecification.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/protocol/StaticJDBCConnectionSpecification.java similarity index 80% rename from legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/jdbc/StaticJDBCConnectionSpecification.java rename to legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/protocol/StaticJDBCConnectionSpecification.java index 0ce55adfa6e..373e76c7c42 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/jdbc/StaticJDBCConnectionSpecification.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/java/org/finos/legend/connection/protocol/StaticJDBCConnectionSpecification.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package org.finos.legend.connection.jdbc; +package org.finos.legend.connection.protocol; import org.finos.legend.connection.protocol.ConnectionSpecification; @@ -28,4 +28,13 @@ public StaticJDBCConnectionSpecification(String host, int port, String databaseN this.port = port; this.databaseName = databaseName; } + + @Override + public String shortId() + { + return "StaticJDBC" + + "--host=" + host + + "--port=" + port + + "--databaseName=" + databaseName; + } } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/resources/META-INF/services/org.finos.legend.connection.ConnectionBuilder b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/resources/META-INF/services/org.finos.legend.connection.ConnectionBuilder index b0c819c2b3a..a03d3863361 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/resources/META-INF/services/org.finos.legend.connection.ConnectionBuilder +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/resources/META-INF/services/org.finos.legend.connection.ConnectionBuilder @@ -1 +1 @@ -org.finos.legend.connection.jdbc.StaticJDBCConnectionBuilder$WithPlaintextUsernamePassword +org.finos.legend.connection.impl.StaticJDBCConnectionBuilder$WithPlaintextUsernamePassword diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/resources/META-INF/services/org.finos.legend.connection.ConnectionManager b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/resources/META-INF/services/org.finos.legend.connection.ConnectionManager deleted file mode 100644 index 1344ad1b80f..00000000000 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/resources/META-INF/services/org.finos.legend.connection.ConnectionManager +++ /dev/null @@ -1 +0,0 @@ -org.finos.legend.connection.jdbc.JDBCConnectionManager diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/resources/META-INF/services/org.finos.legend.connection.DatabaseManager b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/resources/META-INF/services/org.finos.legend.connection.DatabaseManager new file mode 100644 index 00000000000..069422f1bf1 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/resources/META-INF/services/org.finos.legend.connection.DatabaseManager @@ -0,0 +1 @@ +org.finos.legend.connection.impl.H2DatabaseManager diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/resources/META-INF/services/org.finos.legend.connection.jdbc.driver.JDBCConnectionDriver b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/resources/META-INF/services/org.finos.legend.connection.jdbc.driver.JDBCConnectionDriver deleted file mode 100644 index 098e66f1d92..00000000000 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/main/resources/META-INF/services/org.finos.legend.connection.jdbc.driver.JDBCConnectionDriver +++ /dev/null @@ -1 +0,0 @@ -org.finos.legend.connection.jdbc.driver.H2_JDBCConnectionDriver diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/test/java/org/finos/legend/connection/TestJdbcConnectionProvider.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/test/java/org/finos/legend/connection/TestJdbcConnectionProvider.java deleted file mode 100644 index 9a263f4497f..00000000000 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/src/test/java/org/finos/legend/connection/TestJdbcConnectionProvider.java +++ /dev/null @@ -1,98 +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.connection; - -import java.sql.Connection; -import java.util.Properties; -import org.finos.legend.authentication.credentialprovider.CredentialProviderProvider; -import org.finos.legend.authentication.credentialprovider.impl.UserPasswordCredentialProvider; -import org.finos.legend.authentication.intermediationrule.IntermediationRuleProvider; -import org.finos.legend.authentication.intermediationrule.impl.UserPasswordFromVaultRule; -import org.finos.legend.authentication.vault.CredentialVaultProvider; -import org.finos.legend.authentication.vault.PlatformCredentialVaultProvider; -import org.finos.legend.authentication.vault.impl.AWSSecretsManagerVault; -import org.finos.legend.authentication.vault.impl.PropertiesFileCredentialVault; -import org.finos.legend.connection.jdbc.legacy.JdbcConnectionProvider; -import org.finos.legend.connection.jdbc.legacy.JdbcConnectionSpecification; -import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.authentication.specification.UserPasswordAuthenticationSpecification; -import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.authentication.vault.PropertiesFileSecret; -import org.finos.legend.engine.shared.core.identity.Identity; -import org.finos.legend.engine.shared.core.identity.credential.AnonymousCredential; -import org.h2.tools.Server; -import org.junit.After; -import org.junit.Before; -import org.junit.Test; - -import static org.junit.Assert.assertNotNull; - -public class TestJdbcConnectionProvider -{ - private Server h2Server; - - @Before - public void setup() throws Exception - { - this.h2Server = Server.createTcpServer("-ifNotExists", "-tcpPort", "0").start(); - } - - @After - public void shutdown() - { - if (this.h2Server == null) - { - return; - } - this.h2Server.stop(); - } - - @Test - public void testH2ConnectionCreation() throws Exception - { - Properties properties = new Properties(); - properties.put("passwordRef1", ""); - PropertiesFileCredentialVault propertiesFileCredentialVault = new PropertiesFileCredentialVault(properties); - - PlatformCredentialVaultProvider platformCredentialVaultProvider = PlatformCredentialVaultProvider.builder() - .with(propertiesFileCredentialVault) - .build(); - - AWSSecretsManagerVault awsSecretsManagerVault = AWSSecretsManagerVault.builder() - .with(platformCredentialVaultProvider) - .build(); - - CredentialVaultProvider credentialVaultProvider = CredentialVaultProvider.builder() - .with(platformCredentialVaultProvider) - .with(awsSecretsManagerVault) - .build(); - - IntermediationRuleProvider intermediationRuleProvider = IntermediationRuleProvider.builder() - .with(new UserPasswordFromVaultRule(credentialVaultProvider)) - .build(); - - CredentialProviderProvider credentialProviderProvider = CredentialProviderProvider.builder() - .with(new UserPasswordCredentialProvider()) - .with(intermediationRuleProvider) - .build(); - - JdbcConnectionProvider connectionProvider = new JdbcConnectionProvider(credentialProviderProvider); - JdbcConnectionSpecification connectionSpecification = new JdbcConnectionSpecification("localhost", this.h2Server.getPort(), JdbcConnectionSpecification.DbType.H2); - UserPasswordAuthenticationSpecification authenticationSpecification = new UserPasswordAuthenticationSpecification("sa", new PropertiesFileSecret("passwordRef1")); - - Identity alice = new Identity("alice", new AnonymousCredential()); - Connection connection = connectionProvider.makeConnection(connectionSpecification, authenticationSpecification, alice); - - assertNotNull(connection); - } -} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/src/main/java/org/finos/legend/connection/jdbc/driver/MemSQL_JDBCConnectionDriver.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/src/main/java/org/finos/legend/connection/jdbc/driver/MemSQLDatabaseManager.java similarity index 90% rename from legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/src/main/java/org/finos/legend/connection/jdbc/driver/MemSQL_JDBCConnectionDriver.java rename to legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/src/main/java/org/finos/legend/connection/jdbc/driver/MemSQLDatabaseManager.java index 93bc8c9612d..a9a81b97815 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/src/main/java/org/finos/legend/connection/jdbc/driver/MemSQL_JDBCConnectionDriver.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/src/main/java/org/finos/legend/connection/jdbc/driver/MemSQLDatabaseManager.java @@ -15,12 +15,13 @@ package org.finos.legend.connection.jdbc.driver; import org.eclipse.collections.impl.factory.Lists; +import org.finos.legend.connection.DatabaseManager; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.DatabaseType; import java.util.List; import java.util.Properties; -public class MemSQL_JDBCConnectionDriver implements JDBCConnectionDriver +public class MemSQLDatabaseManager implements DatabaseManager { @Override public List getIds() @@ -36,7 +37,7 @@ public String getDriver() } @Override - public String buildURL(String host, int port, String databaseName, Properties extraUserDataSourceProperties) + public String buildURL(String host, int port, String databaseName, Properties properties) { return String.format("jdbc:mysql://%s:%s/%s?permitMysqlScheme", host, port, databaseName); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/src/main/resources/META-INF/services/org.finos.legend.connection.DatabaseManager b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/src/main/resources/META-INF/services/org.finos.legend.connection.DatabaseManager new file mode 100644 index 00000000000..29c0a912ba4 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/src/main/resources/META-INF/services/org.finos.legend.connection.DatabaseManager @@ -0,0 +1 @@ +org.finos.legend.connection.jdbc.driver.MemSQLDatabaseManager diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/src/main/resources/META-INF/services/org.finos.legend.connection.jdbc.driver.JDBCConnectionDriver b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/src/main/resources/META-INF/services/org.finos.legend.connection.jdbc.driver.JDBCConnectionDriver deleted file mode 100644 index bf489534a4d..00000000000 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/src/main/resources/META-INF/services/org.finos.legend.connection.jdbc.driver.JDBCConnectionDriver +++ /dev/null @@ -1 +0,0 @@ -org.finos.legend.connection.jdbc.driver.MemSQL_JDBCConnectionDriver diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/src/main/java/org/finos/legend/connection/jdbc/driver/PostgreSQL_JDBCConnectionDriver.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/src/main/java/org/finos/legend/connection/impl/PostgresDatabaseManager.java similarity index 86% rename from legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/src/main/java/org/finos/legend/connection/jdbc/driver/PostgreSQL_JDBCConnectionDriver.java rename to legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/src/main/java/org/finos/legend/connection/impl/PostgresDatabaseManager.java index 47f9d6c4e8e..26565642f82 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/src/main/java/org/finos/legend/connection/jdbc/driver/PostgreSQL_JDBCConnectionDriver.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/src/main/java/org/finos/legend/connection/impl/PostgresDatabaseManager.java @@ -12,15 +12,16 @@ // See the License for the specific language governing permissions and // limitations under the License. -package org.finos.legend.connection.jdbc.driver; +package org.finos.legend.connection.impl; import org.eclipse.collections.impl.factory.Lists; import org.finos.legend.connection.DatabaseType; +import org.finos.legend.connection.DatabaseManager; import java.util.List; import java.util.Properties; -public class PostgreSQL_JDBCConnectionDriver implements JDBCConnectionDriver +public class PostgresDatabaseManager implements DatabaseManager { @Override public List getIds() @@ -35,7 +36,7 @@ public String getDriver() } @Override - public String buildURL(String host, int port, String databaseName, Properties extraUserDataSourceProperties) + public String buildURL(String host, int port, String databaseName, Properties properties) { return String.format("jdbc:postgresql://%s:%s/%s", host, port, databaseName); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/src/main/resources/META-INF/services/org.finos.legend.connection.DatabaseManager b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/src/main/resources/META-INF/services/org.finos.legend.connection.DatabaseManager new file mode 100644 index 00000000000..29f38d7a5c6 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/src/main/resources/META-INF/services/org.finos.legend.connection.DatabaseManager @@ -0,0 +1 @@ +org.finos.legend.connection.impl.PostgresDatabaseManager diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/src/main/resources/META-INF/services/org.finos.legend.connection.jdbc.driver.JDBCConnectionDriver b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/src/main/resources/META-INF/services/org.finos.legend.connection.jdbc.driver.JDBCConnectionDriver deleted file mode 100644 index 4383fc7be57..00000000000 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/src/main/resources/META-INF/services/org.finos.legend.connection.jdbc.driver.JDBCConnectionDriver +++ /dev/null @@ -1 +0,0 @@ -org.finos.legend.connection.jdbc.driver.PostgreSQL_JDBCConnectionDriver diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/src/main/java/org/finos/legend/connection/PostgresTestContainerWrapper.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/src/main/java/org/finos/legend/connection/PostgresTestContainerWrapper.java index c4b2cea4a04..388576e5836 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/src/main/java/org/finos/legend/connection/PostgresTestContainerWrapper.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/src/main/java/org/finos/legend/connection/PostgresTestContainerWrapper.java @@ -21,13 +21,31 @@ public class PostgresTestContainerWrapper { private static final String IMAGE = "postgres"; private static final String TAG = "9.6.12"; - private final PostgreSQLContainer postgreSQLContainer = new PostgreSQLContainer(DockerImageName.parse(IMAGE).withTag(TAG)); + private final PostgreSQLContainer postgreSQLContainer; + + private PostgresTestContainerWrapper() + { + this.postgreSQLContainer = new PostgreSQLContainer(DockerImageName.parse(IMAGE).withTag(TAG)); + } + + private PostgresTestContainerWrapper(String databaseName, String username, String password) + { + this.postgreSQLContainer = new PostgreSQLContainer(DockerImageName.parse(IMAGE).withTag(TAG)) + .withDatabaseName(databaseName) + .withUsername(username) + .withPassword(password); + } public static PostgresTestContainerWrapper build() { return new PostgresTestContainerWrapper(); } + public static PostgresTestContainerWrapper build(String databaseName, String username, String password) + { + return new PostgresTestContainerWrapper(databaseName, username, password); + } + public void start() { this.postgreSQLContainer.start(); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml index d36b8b4ffff..b7aa3c39ef1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml @@ -37,10 +37,22 @@ org.finos.legend.engine legend-engine-xt-authentication-connection-factory + + org.finos.legend.engine + legend-engine-xt-authentication-protocol + org.finos.legend.engine legend-engine-xt-relationalStore-connection + + org.finos.legend.engine + legend-engine-xt-relationalStore-protocol + + + org.finos.legend.engine + legend-engine-xt-relationalStore-snowflake-protocol + diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/java/org/finos/legend/connection/impl/HACKY__SnowflakeConnectionAdapter.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/java/org/finos/legend/connection/impl/HACKY__SnowflakeConnectionAdapter.java new file mode 100644 index 00000000000..32c89b91622 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/java/org/finos/legend/connection/impl/HACKY__SnowflakeConnectionAdapter.java @@ -0,0 +1,75 @@ +// Copyright 2023 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.connection.impl; + +import org.finos.legend.connection.HACKY__RelationalDatabaseConnectionAdapter; +import org.finos.legend.connection.LegendEnvironment; +import org.finos.legend.connection.StoreInstance; +import org.finos.legend.connection.protocol.SnowflakeConnectionSpecification; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.authentication.vault.PropertiesFileSecret; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.DatabaseType; +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.SnowflakePublicAuthenticationStrategy; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.SnowflakeDatasourceSpecification; +import org.finos.legend.engine.shared.core.identity.Identity; + +public class HACKY__SnowflakeConnectionAdapter +{ + public static class WithKeyPair implements HACKY__RelationalDatabaseConnectionAdapter + { + @Override + public ConnectionFactoryMaterial adapt(RelationalDatabaseConnection relationalDatabaseConnection, Identity identity, LegendEnvironment environment) + { + if ( + DatabaseType.Snowflake.equals(relationalDatabaseConnection.databaseType) && + relationalDatabaseConnection.datasourceSpecification instanceof SnowflakeDatasourceSpecification && + relationalDatabaseConnection.authenticationStrategy instanceof SnowflakePublicAuthenticationStrategy + ) + { + SnowflakeDatasourceSpecification datasourceSpecification = (SnowflakeDatasourceSpecification) relationalDatabaseConnection.datasourceSpecification; + SnowflakePublicAuthenticationStrategy authenticationStrategy = (SnowflakePublicAuthenticationStrategy) relationalDatabaseConnection.authenticationStrategy; + + SnowflakeConnectionSpecification connectionSpecification = new SnowflakeConnectionSpecification(); + connectionSpecification.accountName = datasourceSpecification.accountName; + connectionSpecification.region = datasourceSpecification.region; + connectionSpecification.warehouseName = datasourceSpecification.warehouseName; + connectionSpecification.databaseName = datasourceSpecification.databaseName; + connectionSpecification.cloudType = datasourceSpecification.cloudType; + connectionSpecification.quotedIdentifiersIgnoreCase = datasourceSpecification.quotedIdentifiersIgnoreCase; + connectionSpecification.enableQueryTags = datasourceSpecification.enableQueryTags; + connectionSpecification.proxyHost = datasourceSpecification.proxyHost; + connectionSpecification.proxyPort = datasourceSpecification.proxyPort; + connectionSpecification.nonProxyHosts = datasourceSpecification.nonProxyHosts; + connectionSpecification.organization = datasourceSpecification.organization; + connectionSpecification.accountType = datasourceSpecification.accountType; + connectionSpecification.role = datasourceSpecification.role; + + StoreInstance storeInstance = new StoreInstance.Builder(environment) + .withIdentifier("adapted-store") + .withStoreSupportIdentifier("Snowflake") + .withConnectionSpecification(connectionSpecification) + .build(); + + EncryptedPrivateKeyPairAuthenticationConfiguration authenticationConfiguration = new EncryptedPrivateKeyPairAuthenticationConfiguration(); + authenticationConfiguration.userName = authenticationStrategy.publicUserName; + authenticationConfiguration.privateKey = new PropertiesFileSecret(authenticationStrategy.privateKeyVaultReference); + authenticationConfiguration.passphrase = new PropertiesFileSecret(authenticationStrategy.passPhraseVaultReference); + + return new ConnectionFactoryMaterial(storeInstance, authenticationConfiguration); + } + return null; + } + } +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/java/org/finos/legend/connection/impl/SnowflakeConnectionBuilder.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/java/org/finos/legend/connection/impl/SnowflakeConnectionBuilder.java index 6972dbf9321..7c6d11bcaec 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/java/org/finos/legend/connection/impl/SnowflakeConnectionBuilder.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/java/org/finos/legend/connection/impl/SnowflakeConnectionBuilder.java @@ -14,56 +14,57 @@ package org.finos.legend.connection.impl; -import org.finos.legend.connection.ConnectionBuilder; +import org.finos.legend.connection.Authenticator; import org.finos.legend.connection.DatabaseType; +import org.finos.legend.connection.JDBCConnectionBuilder; import org.finos.legend.connection.RelationalDatabaseStoreSupport; import org.finos.legend.connection.StoreInstance; -import org.finos.legend.connection.StoreSupport; -import org.finos.legend.connection.jdbc.JDBCConnectionManager; -import org.finos.legend.connection.jdbc.driver.JDBCConnectionDriver; -import org.finos.legend.connection.protocol.ConnectionSpecification; import org.finos.legend.connection.protocol.SnowflakeConnectionSpecification; +import org.finos.legend.engine.shared.core.identity.Credential; +import org.finos.legend.engine.shared.core.identity.Identity; import org.finos.legend.engine.shared.core.identity.credential.PrivateKeyCredential; import java.sql.Connection; -import java.sql.DriverManager; import java.util.Optional; import java.util.Properties; +import java.util.function.Function; -import static org.finos.legend.connection.jdbc.driver.Snowflake_JDBCConnectionDriver.*; +import static org.finos.legend.connection.impl.SnowflakeDatabaseManager.*; public class SnowflakeConnectionBuilder { - public static class WithKeyPair extends ConnectionBuilder + public static class WithKeyPair extends JDBCConnectionBuilder { @Override - public Connection getConnection(StoreInstance storeInstance, PrivateKeyCredential credential) throws Exception + public Connection getConnection(SnowflakeConnectionSpecification connectionSpecification, Authenticator authenticator, Identity identity) throws Exception { - SnowflakeConnectionSpecification connectionSpecification = this.getCompatibleConnectionSpecification(storeInstance); - StoreSupport storeSupport = storeInstance.getStoreSupport(); - if (!(storeSupport instanceof RelationalDatabaseStoreSupport) || !DatabaseType.SNOWFLAKE.equals(((RelationalDatabaseStoreSupport) storeSupport).getDatabase())) + StoreInstance storeInstance = authenticator.getStoreInstance(); + RelationalDatabaseStoreSupport.cast(storeInstance.getStoreSupport(), DatabaseType.SNOWFLAKE); + + Properties connectionProperties = generateJDBCConnectionProperties(connectionSpecification); + Function authenticationPropertiesSupplier = cred -> { - throw new RuntimeException("Can't get connection: only support Snowflake databases"); - } - JDBCConnectionDriver driver = JDBCConnectionManager.getDriverForDatabase(DatabaseType.SNOWFLAKE); - Properties properties = collectExtraSnowflakeConnectionProperties(connectionSpecification); - properties.put("privateKey", credential.getPrivateKey()); - properties.put("user", credential.getUser()); + PrivateKeyCredential credential = (PrivateKeyCredential) cred; + Properties properties = new Properties(); + properties.put("privateKey", credential.getPrivateKey()); + properties.put("user", credential.getUser()); + return properties; + }; - return DriverManager.getConnection(driver.buildURL(null, 0, connectionSpecification.databaseName, properties), properties); + return this.getConnectionManager().getConnection(DatabaseType.SNOWFLAKE, null, 0, connectionSpecification.databaseName, connectionProperties, this.getConnectionPoolConfig(), authenticationPropertiesSupplier, authenticator, identity); } } - private static Properties collectExtraSnowflakeConnectionProperties(SnowflakeConnectionSpecification connectionSpecification) + public static Properties generateJDBCConnectionProperties(SnowflakeConnectionSpecification connectionSpecification) { Properties properties = new Properties(); // TODO: @akphi - handle quoted identifiers // this is a setting users can control when creating the database connection, we probably don't // want to do this when the database is configured as part of the system boolean quoteIdentifiers = false; - String warehouseName = updateSnowflakeIdentifiers(connectionSpecification.warehouseName, quoteIdentifiers); - String databaseName = updateSnowflakeIdentifiers(connectionSpecification.databaseName, quoteIdentifiers); - properties.put(SNOWFLAKE_ROLE, updateSnowflakeIdentifiers(connectionSpecification.role, quoteIdentifiers)); + String warehouseName = processIdentifier(connectionSpecification.warehouseName, quoteIdentifiers); + String databaseName = processIdentifier(connectionSpecification.databaseName, quoteIdentifiers); + properties.put(SNOWFLAKE_ROLE, processIdentifier(connectionSpecification.role, quoteIdentifiers)); properties.put(SNOWFLAKE_ACCOUNT_NAME, connectionSpecification.accountName); properties.put(SNOWFLAKE_REGION, connectionSpecification.region); @@ -78,22 +79,22 @@ private static Properties collectExtraSnowflakeConnectionProperties(SnowflakeCon properties.put("db", databaseName); properties.put("ocspFailOpen", true); - setProperty(properties, SNOWFLAKE_ACCOUNT_TYPE_NAME, connectionSpecification.accountType); - setProperty(properties, SNOWFLAKE_ORGANIZATION_NAME, connectionSpecification.organization); - setProperty(properties, SNOWFLAKE_PROXY_HOST, connectionSpecification.proxyHost); - setProperty(properties, SNOWFLAKE_PROXY_PORT, connectionSpecification.proxyPort); - setProperty(properties, SNOWFLAKE_NON_PROXY_HOSTS, connectionSpecification.nonProxyHosts); + setNullableProperty(properties, SNOWFLAKE_ACCOUNT_TYPE_NAME, connectionSpecification.accountType); + setNullableProperty(properties, SNOWFLAKE_ORGANIZATION_NAME, connectionSpecification.organization); + setNullableProperty(properties, SNOWFLAKE_PROXY_HOST, connectionSpecification.proxyHost); + setNullableProperty(properties, SNOWFLAKE_PROXY_PORT, connectionSpecification.proxyPort); + setNullableProperty(properties, SNOWFLAKE_NON_PROXY_HOSTS, connectionSpecification.nonProxyHosts); properties.put(SNOWFLAKE_USE_PROXY, properties.get(SNOWFLAKE_PROXY_HOST) != null); return properties; } - private static void setProperty(Properties properties, String key, Object value) + private static void setNullableProperty(Properties properties, String key, Object value) { Optional.ofNullable(value).ifPresent(x -> properties.put(key, value)); } - private static String updateSnowflakeIdentifiers(String identifier, boolean quoteIdentifiers) + public static String processIdentifier(String identifier, boolean quoteIdentifiers) { if (quoteIdentifiers && identifier != null && !(identifier.startsWith("\"") && identifier.endsWith("\""))) { diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/java/org/finos/legend/connection/jdbc/driver/Snowflake_JDBCConnectionDriver.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/java/org/finos/legend/connection/impl/SnowflakeDatabaseManager.java similarity index 77% rename from legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/java/org/finos/legend/connection/jdbc/driver/Snowflake_JDBCConnectionDriver.java rename to legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/java/org/finos/legend/connection/impl/SnowflakeDatabaseManager.java index aaa27cfcccd..81f78f2a73e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/java/org/finos/legend/connection/jdbc/driver/Snowflake_JDBCConnectionDriver.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/java/org/finos/legend/connection/impl/SnowflakeDatabaseManager.java @@ -12,17 +12,18 @@ // See the License for the specific language governing permissions and // limitations under the License. -package org.finos.legend.connection.jdbc.driver; +package org.finos.legend.connection.impl; import org.eclipse.collections.impl.factory.Lists; import org.finos.legend.connection.DatabaseType; import org.finos.legend.connection.SnowflakeAccountType; +import org.finos.legend.connection.DatabaseManager; import org.finos.legend.engine.shared.core.operational.Assert; import java.util.List; import java.util.Properties; -public class Snowflake_JDBCConnectionDriver implements JDBCConnectionDriver +public class SnowflakeDatabaseManager implements DatabaseManager { private static final String PRIVATELINK_SNOWFLAKECOMPUTING_COM = ".privatelink.snowflakecomputing.com"; private static final String SNOWFLAKECOMPUTING_COM = ".snowflakecomputing.com"; @@ -57,18 +58,18 @@ public String getDriver() } @Override - public String buildURL(String host, int port, String databaseName, Properties extraUserDataSourceProperties) + public String buildURL(String host, int port, String databaseName, Properties properties) { - Assert.assertTrue(extraUserDataSourceProperties.getProperty(SNOWFLAKE_ACCOUNT_NAME) != null, () -> SNOWFLAKE_ACCOUNT_NAME + " is not set"); - Assert.assertTrue(extraUserDataSourceProperties.getProperty(SNOWFLAKE_REGION) != null, () -> SNOWFLAKE_REGION + " is not set"); - Assert.assertTrue(extraUserDataSourceProperties.getProperty(SNOWFLAKE_WAREHOUSE_NAME) != null, () -> SNOWFLAKE_WAREHOUSE_NAME + " is not set"); + Assert.assertTrue(properties.getProperty(SNOWFLAKE_ACCOUNT_NAME) != null, () -> SNOWFLAKE_ACCOUNT_NAME + " is not set"); + Assert.assertTrue(properties.getProperty(SNOWFLAKE_REGION) != null, () -> SNOWFLAKE_REGION + " is not set"); + Assert.assertTrue(properties.getProperty(SNOWFLAKE_WAREHOUSE_NAME) != null, () -> SNOWFLAKE_WAREHOUSE_NAME + " is not set"); - String accountName = extraUserDataSourceProperties.getProperty(SNOWFLAKE_ACCOUNT_NAME); - String region = extraUserDataSourceProperties.getProperty(SNOWFLAKE_REGION); - String cloudType = extraUserDataSourceProperties.getProperty(SNOWFLAKE_CLOUD_TYPE); - String organisation = extraUserDataSourceProperties.getProperty(SNOWFLAKE_ORGANIZATION_NAME); + String accountName = properties.getProperty(SNOWFLAKE_ACCOUNT_NAME); + String region = properties.getProperty(SNOWFLAKE_REGION); + String cloudType = properties.getProperty(SNOWFLAKE_CLOUD_TYPE); + String organisation = properties.getProperty(SNOWFLAKE_ORGANIZATION_NAME); - String accountTypeName = extraUserDataSourceProperties.getProperty(SNOWFLAKE_ACCOUNT_TYPE_NAME); + String accountTypeName = properties.getProperty(SNOWFLAKE_ACCOUNT_TYPE_NAME); SnowflakeAccountType accountType = accountTypeName != null ? SnowflakeAccountType.valueOf(accountTypeName) : null; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/java/org/finos/legend/connection/protocol/SnowflakeConnectionSpecification.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/java/org/finos/legend/connection/protocol/SnowflakeConnectionSpecification.java index 5a9dbdeb288..555f44c7979 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/java/org/finos/legend/connection/protocol/SnowflakeConnectionSpecification.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/java/org/finos/legend/connection/protocol/SnowflakeConnectionSpecification.java @@ -31,4 +31,23 @@ public class SnowflakeConnectionSpecification extends ConnectionSpecification public String accountType; public String role; + + @Override + public String shortId() + { + return "Snowflake" + + "--account=" + accountName + + "--region=" + region + + "--warehouse=" + warehouseName + + "--db=" + databaseName + + "--cloudType=" + cloudType + + "--proxyHost=" + proxyHost + + "--proxyPort=" + proxyPort + + "--nonProxyHosts=" + nonProxyHosts + + "--accountType=" + accountType + + "--organisation=" + organization + + "--quoteIdentifiers=" + quotedIdentifiersIgnoreCase + + "--role=" + role + + "--enableQueryTags=" + enableQueryTags; + } } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/resources/META-INF/services/org.finos.legend.connection.DatabaseManager b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/resources/META-INF/services/org.finos.legend.connection.DatabaseManager new file mode 100644 index 00000000000..fa4a918a8d0 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/resources/META-INF/services/org.finos.legend.connection.DatabaseManager @@ -0,0 +1 @@ +org.finos.legend.connection.impl.SnowflakeDatabaseManager diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/resources/META-INF/services/org.finos.legend.connection.HACKY__RelationalDatabaseConnectionAdapter b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/resources/META-INF/services/org.finos.legend.connection.HACKY__RelationalDatabaseConnectionAdapter new file mode 100644 index 00000000000..e92e738a74a --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/resources/META-INF/services/org.finos.legend.connection.HACKY__RelationalDatabaseConnectionAdapter @@ -0,0 +1 @@ +org.finos.legend.connection.impl.HACKY__SnowflakeConnectionAdapter$WithKeyPair \ No newline at end of file diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/resources/META-INF/services/org.finos.legend.connection.jdbc.driver.JDBCConnectionDriver b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/resources/META-INF/services/org.finos.legend.connection.jdbc.driver.JDBCConnectionDriver deleted file mode 100644 index 54e9611d811..00000000000 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/src/main/resources/META-INF/services/org.finos.legend.connection.jdbc.driver.JDBCConnectionDriver +++ /dev/null @@ -1 +0,0 @@ -org.finos.legend.connection.jdbc.driver.Snowflake_JDBCConnectionDriver diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/src/main/java/org/finos/legend/connection/jdbc/driver/SQLServer_JDBCConnectionDriver.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/src/main/java/org/finos/legend/connection/jdbc/driver/SQLServerDatabaseManager.java similarity index 89% rename from legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/src/main/java/org/finos/legend/connection/jdbc/driver/SQLServer_JDBCConnectionDriver.java rename to legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/src/main/java/org/finos/legend/connection/jdbc/driver/SQLServerDatabaseManager.java index 50a75513461..f22628f7a8b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/src/main/java/org/finos/legend/connection/jdbc/driver/SQLServer_JDBCConnectionDriver.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/src/main/java/org/finos/legend/connection/jdbc/driver/SQLServerDatabaseManager.java @@ -15,12 +15,13 @@ package org.finos.legend.connection.jdbc.driver; import org.eclipse.collections.impl.factory.Lists; +import org.finos.legend.connection.DatabaseManager; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.DatabaseType; import java.util.List; import java.util.Properties; -public class SQLServer_JDBCConnectionDriver implements JDBCConnectionDriver +public class SQLServerDatabaseManager implements DatabaseManager { @Override public List getIds() @@ -35,7 +36,7 @@ public String getDriver() } @Override - public String buildURL(String host, int port, String databaseName, Properties extraUserDataSourceProperties) + public String buildURL(String host, int port, String databaseName, Properties properties) { return String.format("jdbc:sqlserver://%s:%s;databaseName=%s", host, port, databaseName); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/src/main/resources/META-INF/services/org.finos.legend.connection.DatabaseManager b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/src/main/resources/META-INF/services/org.finos.legend.connection.DatabaseManager new file mode 100644 index 00000000000..c4d426cd4b6 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/src/main/resources/META-INF/services/org.finos.legend.connection.DatabaseManager @@ -0,0 +1 @@ +org.finos.legend.connection.jdbc.driver.SQLServerDatabaseManager diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/src/main/resources/META-INF/services/org.finos.legend.connection.jdbc.driver.JDBCConnectionDriver b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/src/main/resources/META-INF/services/org.finos.legend.connection.jdbc.driver.JDBCConnectionDriver deleted file mode 100644 index 9ec8d4417bd..00000000000 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/src/main/resources/META-INF/services/org.finos.legend.connection.jdbc.driver.JDBCConnectionDriver +++ /dev/null @@ -1 +0,0 @@ -org.finos.legend.connection.jdbc.driver.SQLServer_JDBCConnectionDriver diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml index a1505602743..ced84a76d07 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml @@ -25,7 +25,7 @@ legend-engine-xt-relationalStore-executionPlan-connection-api jar - Legend Engine - XT - Relational Store - Connection API + Legend Engine - XT - Relational Store - Execution Plan - Connection API diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml index 661e7084aa7..007f8d7f8f9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml @@ -24,7 +24,7 @@ legend-engine-xt-relationalStore-executionPlan-connection-tests jar - Legend Engine - XT - Relational Store - Connection - Tests + Legend Engine - XT - Relational Store - Execution Plan - Connection - Tests 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 ba77a50f1b7..45dd9ec99d3 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 @@ -25,7 +25,7 @@ legend-engine-xt-relationalStore-executionPlan-connection jar - Legend Engine - XT - Relational Store - Connection + Legend Engine - XT - Relational Store - Execution Plan - Connection 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 0adba16fb40..2c7005f303f 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 @@ -127,6 +127,26 @@ + + org.finos.legend.engine + legend-engine-xt-authentication-connection-factory + + + org.bouncycastle + * + + + + + org.finos.legend.engine + legend-engine-xt-relationalStore-connection + + + org.bouncycastle + * + + + 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/RelationalExecutor.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/RelationalExecutor.java index 1267e4bdcc2..f4573c59dfd 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/RelationalExecutor.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/RelationalExecutor.java @@ -107,7 +107,7 @@ public RelationalExecutor(TemporaryTestDbConfiguration temporarytestdb, Relation public RelationalExecutor(TemporaryTestDbConfiguration temporarytestdb, RelationalExecutionConfiguration relationalExecutionConfiguration, Optional flowProviderHolder) { this.flowProviderHolder = flowProviderHolder; - this.connectionManager = new ConnectionManagerSelector(temporarytestdb, relationalExecutionConfiguration.oauthProfiles, flowProviderHolder); + this.connectionManager = new ConnectionManagerSelector(temporarytestdb, relationalExecutionConfiguration.oauthProfiles, flowProviderHolder, relationalExecutionConfiguration.getConnectionFactory(), relationalExecutionConfiguration.getRelationalDatabaseConnectionAdapters(), false); this.relationalExecutionConfiguration = relationalExecutionConfiguration; this.resultInterpreterExtensions = Iterate.addAllTo(ResultInterpreterExtensionLoader.extensions(), Lists.mutable.empty()).collect(ResultInterpreterExtension::additionalResultBuilder); } 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/config/RelationalExecutionConfiguration.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/config/RelationalExecutionConfiguration.java index e344e4a234d..b22846a8447 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/config/RelationalExecutionConfiguration.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/config/RelationalExecutionConfiguration.java @@ -17,6 +17,8 @@ import com.fasterxml.jackson.annotation.JsonProperty; import org.eclipse.collections.api.factory.Lists; import org.finos.legend.authentication.credentialprovider.CredentialProviderProvider; +import org.finos.legend.connection.ConnectionFactory; +import org.finos.legend.connection.HACKY__RelationalDatabaseConnectionAdapter; import org.finos.legend.engine.authentication.provider.DatabaseAuthenticationFlowProvider; import org.finos.legend.engine.authentication.provider.DatabaseAuthenticationFlowProviderConfiguration; import org.finos.legend.engine.plan.execution.stores.StoreExecutorConfiguration; @@ -35,6 +37,8 @@ public class RelationalExecutionConfiguration implements StoreExecutorConfigurat private CredentialProviderProvider credentialProviderProvider; @JsonProperty private RelationalGraphFetchExecutionConfig relationalGraphFetchExecutionConfig; + private ConnectionFactory connectionFactory; + private List relationalDatabaseConnectionAdapters = Lists.mutable.empty(); @Override public StoreType getStoreType() @@ -71,6 +75,16 @@ public CredentialProviderProvider getCredentialProviderProvider() return credentialProviderProvider; } + public ConnectionFactory getConnectionFactory() + { + return connectionFactory; + } + + public List getRelationalDatabaseConnectionAdapters() + { + return relationalDatabaseConnectionAdapters; + } + public void setCredentialProviderProvider(CredentialProviderProvider credentialProviderProvider) { this.credentialProviderProvider = credentialProviderProvider; @@ -86,6 +100,16 @@ public void setFlowProviderConfiguration(DatabaseAuthenticationFlowProviderConfi this.flowProviderConfiguration = flowProviderConfiguration; } + public void setConnectionFactory(ConnectionFactory connectionFactory) + { + this.connectionFactory = connectionFactory; + } + + public void setRelationalDatabaseConnectionAdapters(List adapters) + { + this.relationalDatabaseConnectionAdapters = adapters; + } + public static Builder newInstance() { return new Builder(); @@ -105,6 +129,8 @@ public static class Builder private TemporaryTestDbConfiguration temporaryTestDbConfiguration; private CredentialProviderProvider credentialProviderProvider; private RelationalGraphFetchExecutionConfig relationalGraphFetchExecutionConfig; + private ConnectionFactory connectionFactory; + private final List relationalDatabaseConnectionAdapters = Lists.mutable.empty(); public Builder withTempPath(String tempPath) { @@ -151,6 +177,18 @@ public Builder withRelationalGraphFetchExecutionConfig(RelationalGraphFetchExecu return this; } + public Builder withConnectionFactory(ConnectionFactory connectionFactory) + { + this.connectionFactory = connectionFactory; + return this; + } + + public Builder withRelationalDatabaseConnectionAdapters(List adapters) + { + this.relationalDatabaseConnectionAdapters.addAll(adapters); + return this; + } + public RelationalExecutionConfiguration build() { RelationalExecutionConfiguration relationalExecutionConfiguration = new RelationalExecutionConfiguration(); @@ -161,6 +199,8 @@ public RelationalExecutionConfiguration build() relationalExecutionConfiguration.temporarytestdb = this.temporaryTestDbConfiguration; relationalExecutionConfiguration.credentialProviderProvider = credentialProviderProvider; relationalExecutionConfiguration.relationalGraphFetchExecutionConfig = relationalGraphFetchExecutionConfig; + relationalExecutionConfiguration.connectionFactory = connectionFactory; + relationalExecutionConfiguration.relationalDatabaseConnectionAdapters = relationalDatabaseConnectionAdapters; return relationalExecutionConfiguration; } } 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/ConnectionManagerSelector.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/ConnectionManagerSelector.java index 358f96fc143..c8a4be55180 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/ConnectionManagerSelector.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/ConnectionManagerSelector.java @@ -17,6 +17,8 @@ import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.list.MutableList; import org.eclipse.collections.impl.utility.Iterate; +import org.finos.legend.connection.ConnectionFactory; +import org.finos.legend.connection.HACKY__RelationalDatabaseConnectionAdapter; import org.finos.legend.engine.authentication.credential.CredentialSupplier; import org.finos.legend.engine.authentication.provider.DatabaseAuthenticationFlowProvider; import org.finos.legend.engine.plan.execution.stores.StoreExecutionState; @@ -44,6 +46,12 @@ public class ConnectionManagerSelector { private final Optional flowProviderHolder; private MutableList connectionManagers; + private final ConnectionFactory connectionFactory; + + // TODO: @akphi - these are temporary hacks to bootstrap the new connection framework + private final List relationalDatabaseConnectionAdapters = Lists.mutable.empty(); + public static final String TEMPORARY__USE_NEW_CONNECTION_FRAMEWORK = "org.finos.legend.engine.execution.enableNewConnectionFramework"; + private boolean enableNewConnectionFramework = false; public ConnectionManagerSelector(TemporaryTestDbConfiguration temporaryTestDb, List oauthProfiles) { @@ -57,6 +65,20 @@ public ConnectionManagerSelector(TemporaryTestDbConfiguration temporaryTestDb, L new RelationalConnectionManager(temporaryTestDb.port, oauthProfiles, flowProviderHolder) ).withAll(extensions.collect(e -> e.getExtensionManager(temporaryTestDb.port, oauthProfiles))); this.flowProviderHolder = flowProviderHolder; + this.connectionFactory = null; + } + + public ConnectionManagerSelector(TemporaryTestDbConfiguration temporaryTestDb, List oauthProfiles, Optional flowProviderHolder, ConnectionFactory connectionFactory, List relationalDatabaseConnectionAdapters, boolean enableNewConnectionFrameworkByDefault) + { + MutableList extensions = Iterate.addAllTo(ServiceLoader.load(ConnectionManagerExtension.class), Lists.mutable.empty()); + this.connectionManagers = Lists.mutable.with( + new RelationalConnectionManager(temporaryTestDb.port, oauthProfiles, flowProviderHolder) + ).withAll(extensions.collect(e -> e.getExtensionManager(temporaryTestDb.port, oauthProfiles))); + this.flowProviderHolder = flowProviderHolder; + + this.connectionFactory = connectionFactory; + this.relationalDatabaseConnectionAdapters.addAll(relationalDatabaseConnectionAdapters); + this.enableNewConnectionFramework = enableNewConnectionFrameworkByDefault; } public Optional getFlowProviderHolder() @@ -114,6 +136,36 @@ public Connection getDatabaseConnectionImpl(Identity identity, DatabaseConnectio if (databaseConnection instanceof RelationalDatabaseConnection) { RelationalDatabaseConnection relationalDatabaseConnection = (RelationalDatabaseConnection) databaseConnection; + + if ("true".equals(System.getenv(TEMPORARY__USE_NEW_CONNECTION_FRAMEWORK)) || this.enableNewConnectionFramework) + { + if (this.connectionFactory != null && !this.relationalDatabaseConnectionAdapters.isEmpty()) + { + HACKY__RelationalDatabaseConnectionAdapter.ConnectionFactoryMaterial connectionFactoryMaterial = null; + for (HACKY__RelationalDatabaseConnectionAdapter adapter : this.relationalDatabaseConnectionAdapters) + { + connectionFactoryMaterial = adapter.adapt(relationalDatabaseConnection, identity, this.connectionFactory.getEnvironment()); + if (connectionFactoryMaterial != null) + { + break; + } + } + + if (connectionFactoryMaterial != null) + { + try + { + return this.connectionFactory.getConnection(identity, connectionFactoryMaterial.storeInstance, connectionFactoryMaterial.authenticationConfiguration); + } + catch (Exception exception) + { + // TODO: @akphi @epsstan - should we throw here? + throw new RuntimeException((exception)); + } + } + } + } + Optional databaseCredentialHolder = RelationalConnectionManager.getCredential(flowProviderHolder, relationalDatabaseConnection, identity, runtimeContext); return datasource.getConnectionUsingIdentity(identity, databaseCredentialHolder); } From 3f04b21b2bbdd10cf26d82e1611a3d957b65e208 Mon Sep 17 00:00:00 2001 From: Rafael Bey <24432403+rafaelbey@users.noreply.github.com> Date: Thu, 12 Oct 2023 14:04:20 -0400 Subject: [PATCH 05/80] Elasticsearch - support for complex expression on TDS project/extend (#2356) --- .../legend-engine-server/pom.xml | 26 +- .../finos/legend/engine/server/Server.java | 8 +- .../TDSColumnWithSerializer.java | 18 +- .../pure/router/routing/router_routing.pure | 66 +- .../src/main/resources/core/pure/tds/tds.pure | 21 +- .../extensions/store_contract.pure | 2 +- .../functions/pure_to_elasticsearch.pure | 725 ++++++++++++++---- .../functions/specification_utils.pure | 20 + .../test/shared/ElasticsearchCommands.java | 5 +- .../elasticsearch_plan_test.pure | 38 +- .../elasticsearch_plan_test_7.pure | 22 +- ...lasticsearch_plan_test_filter_boolean.pure | 39 + .../elasticsearch_plan_test_filter_date.pure | 30 +- .../elasticsearch_plan_test_filter_enum.pure | 31 + ...icsearch_plan_test_filter_expressions.pure | 6 +- .../elasticsearch_plan_test_misc.pure | 72 +- .../elasticsearch_plan_test_project.pure | 60 +- ...asticsearch_plan_test_project_boolean.pure | 87 +++ .../elasticsearch_plan_test_project_date.pure | 238 ++++++ ...elasticsearch_plan_test_project_float.pure | 198 +++++ ...asticsearch_plan_test_project_integer.pure | 190 +++++ ...asticsearch_plan_test_project_keyword.pure | 61 ++ .../elasticsearch_plan_test_project_text.pure | 77 ++ ...chExecutionPlanFromGrammarIntegration.java | 2 +- 24 files changed, 1747 insertions(+), 295 deletions(-) create mode 100644 legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_filter_boolean.pure create mode 100644 legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_filter_enum.pure create mode 100644 legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project_boolean.pure create mode 100644 legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project_date.pure create mode 100644 legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project_float.pure create mode 100644 legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project_integer.pure create mode 100644 legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project_keyword.pure create mode 100644 legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project_text.pure diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index 02789e87e86..532d877188a 100644 --- a/legend-engine-config/legend-engine-server/pom.xml +++ b/legend-engine-config/legend-engine-server/pom.xml @@ -672,6 +672,27 @@ + + org.finos.legend.engine + legend-engine-xt-elasticsearch-V7-executionPlan + ${project.version} + + + org.finos.legend.engine + legend-engine-extensions-collection-generation + runtime + + + org.finos.legend.engine + legend-engine-extensions-collection-execution + runtime + + + org.bouncycastle + * + + + org.finos.legend.engine legend-engine-xt-authentication-connection-factory @@ -689,6 +710,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake-connection + @@ -912,12 +934,12 @@ - junit junit - test + runtime + diff --git a/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java b/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java index ad248e0062b..45ea6d8881a 100644 --- a/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java +++ b/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java @@ -102,6 +102,8 @@ import org.finos.legend.engine.plan.execution.concurrent.ParallelGraphFetchExecutionExecutorPool; import org.finos.legend.engine.plan.execution.graphFetch.GraphFetchExecutionConfiguration; import org.finos.legend.engine.plan.execution.service.api.ServiceModelingApi; +import org.finos.legend.engine.plan.execution.stores.elasticsearch.v7.plugin.ElasticsearchV7StoreExecutor; +import org.finos.legend.engine.plan.execution.stores.elasticsearch.v7.plugin.ElasticsearchV7StoreExecutorBuilder; import org.finos.legend.engine.plan.execution.stores.inMemory.plugin.InMemory; import org.finos.legend.engine.plan.execution.stores.mongodb.plugin.MongoDBStoreExecutor; import org.finos.legend.engine.plan.execution.stores.mongodb.plugin.MongoDBStoreExecutorBuilder; @@ -292,12 +294,14 @@ public void run(T serverConfiguration, Environment environment) MongoDBStoreExecutorConfiguration mongoDBExecutorConfiguration = MongoDBStoreExecutorConfiguration.newInstance().withCredentialProviderProvider(credentialProviderProvider).build(); MongoDBStoreExecutor mongoDBStoreExecutor = (MongoDBStoreExecutor) new MongoDBStoreExecutorBuilder().build(mongoDBExecutorConfiguration); + ElasticsearchV7StoreExecutor elasticsearchV7StoreExecutor = (ElasticsearchV7StoreExecutor) new ElasticsearchV7StoreExecutorBuilder().build(); + PlanExecutor planExecutor; ParallelGraphFetchExecutionExecutorPool parallelGraphFetchExecutionExecutorPool = null; if (serverConfiguration.graphFetchExecutionConfiguration != null) { GraphFetchExecutionConfiguration graphFetchExecutionConfiguration = serverConfiguration.graphFetchExecutionConfiguration; - planExecutor = PlanExecutor.newPlanExecutor(graphFetchExecutionConfiguration, relationalStoreExecutor, serviceStoreExecutor, mongoDBStoreExecutor, InMemory.build()); + planExecutor = PlanExecutor.newPlanExecutor(graphFetchExecutionConfiguration, relationalStoreExecutor, elasticsearchV7StoreExecutor, serviceStoreExecutor, mongoDBStoreExecutor, InMemory.build()); if (graphFetchExecutionConfiguration.canExecuteInParallel()) { parallelGraphFetchExecutionExecutorPool = new ParallelGraphFetchExecutionExecutorPool(graphFetchExecutionConfiguration.getParallelGraphFetchExecutionConfig(), "thread-pool for parallel graphFetch execution"); @@ -306,7 +310,7 @@ public void run(T serverConfiguration, Environment environment) } else { - planExecutor = PlanExecutor.newPlanExecutor(relationalStoreExecutor, serviceStoreExecutor, mongoDBStoreExecutor, InMemory.build()); + planExecutor = PlanExecutor.newPlanExecutor(relationalStoreExecutor, elasticsearchV7StoreExecutor, serviceStoreExecutor, mongoDBStoreExecutor, InMemory.build()); } // Session Management diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/src/main/java/org/finos/legend/engine/plan/execution/result/serialization/TDSColumnWithSerializer.java b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/src/main/java/org/finos/legend/engine/plan/execution/result/serialization/TDSColumnWithSerializer.java index 2dc2862695d..d70b4e16b46 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/src/main/java/org/finos/legend/engine/plan/execution/result/serialization/TDSColumnWithSerializer.java +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/src/main/java/org/finos/legend/engine/plan/execution/result/serialization/TDSColumnWithSerializer.java @@ -15,13 +15,12 @@ package org.finos.legend.engine.plan.execution.result.serialization; import com.fasterxml.jackson.core.JsonGenerator; -import org.eclipse.collections.impl.block.procedure.checked.ThrowingProcedure2; -import org.finos.legend.engine.plan.dependencies.domain.date.PureDate; -import org.finos.legend.engine.protocol.pure.v1.model.executionPlan.result.TDSColumn; - import java.io.IOException; import java.math.BigDecimal; import java.util.Objects; +import org.eclipse.collections.impl.block.procedure.checked.ThrowingProcedure2; +import org.finos.legend.engine.plan.dependencies.domain.date.PureDate; +import org.finos.legend.engine.protocol.pure.v1.model.executionPlan.result.TDSColumn; public class TDSColumnWithSerializer { @@ -51,9 +50,16 @@ public TDSColumnWithSerializer(TDSColumn tdsColumn) return (ThrowingProcedure2) JsonGenerator::writeBoolean; case "Date": case "DateTime": - return (ThrowingProcedure2) (jg, d) -> jg.writeString(d.toInstant().toString()); case "StrictDate": - return (ThrowingProcedure2) (jg, d) -> jg.writeString(d.toLocalDate().toString()); + return (ThrowingProcedure2) (jg, d) -> + { + String formatted = d.toString(); + if (d.hasMinute()) + { + formatted += "Z"; + } + jg.writeString(formatted); + }; default: throw new UnsupportedOperationException("TDS type not supported: " + type); } diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/routing/router_routing.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/routing/router_routing.pure index 816b1e27d55..e21a30fc15d 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/routing/router_routing.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/routing/router_routing.pure @@ -500,60 +500,19 @@ function meta::pure::router::routing::processColumnSpecification(v:ValueSpecific function meta::pure::router::routing::processColSpecParams(fe:FunctionExpression[1], state:RoutingState[1], executionContext:ExecutionContext[1], vars:Map[1], inScopeVars:Map>[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):Any[*] { let routedFe = ^$state(value=$fe)->routeValueSpecification($executionContext, $vars, $inScopeVars, $extensions, $debug); - let params = $routedFe.value->evaluateAndDeactivate()->cast(@FunctionExpression)->toOne().parametersValues->map(p|$p->byPassRouterInfo()->match([r:FunctionRoutedValueSpecification[1]|$r.originalFunction;, v:ValueSpecification[1]|$v]))->cast(@ValueSpecification); - let newParams = $params->map(p|if($p->instanceOf(SimpleFunctionExpression),| $p->processColumnSpecification($state, $executionContext, $vars, $inScopeVars, $extensions, $debug).value->cast(@ValueSpecification),| $p)); - let nfe = ^$fe(parametersValues=$newParams); - - // In plan generation flow, not always all variables will be present in inScopeVars as they could be function params (known only at runtime) - // Hence, reactivating with empty lists in such situations (as the expression of lambda is not expected to be reactivated) - $nfe->reactivateWithDummyValuesForOpenVariables($inScopeVars)->evaluateAndDeactivate(); + let parametersValues = $routedFe.value->evaluateAndDeactivate()->cast(@FunctionExpression)->toOne().parametersValues->map(x | $x->byPassRouterInfo()->match([ + i: InstanceValue[1] | $i.values->match([ + // workaround a compile execution behavior that check for open variables and cause expressions to fail reactivation (does not happen on interpreted) + l: LambdaFunction[1] | ^$i(values = ^$l(openVariables = [])), + a: Any[*] | $i + ]), + a: ValueSpecification[*] | $a + ]))->cast(@ValueSpecification); + + let nfe = ^$fe(parametersValues = $parametersValues); + let colSpec = $nfe->reactivate($inScopeVars)->evaluateAndDeactivate()->cast(@ColumnSpecification)->toOne(); } -function meta::pure::router::routing::reactivateWithDummyValuesForOpenVariables(vs:ValueSpecification[1], inScopeVars:Map>[1]) : Any[*] -{ - let lambdas = $vs->extractLambdasFromVS(); - let newInScopeVars = $lambdas->fold( {l, vars | $vars->meta::pure::router::routing::addDummyValuesforOpenVariables($l)}, $inScopeVars) ; - $vs->reactivate($newInScopeVars); -} - -function meta::pure::router::routing::addDummyValuesforOpenVariables( inScopeVars : Map>[1], l :LambdaFunction[1] ) : Map>[1] -{ - $l.openVariables->fold({v, vars| if($vars->get($v)->isEmpty(), | $vars-> meta::pure::functions::collection::put($v, list([])); , | $vars) }, $inScopeVars); -} - -function meta::pure::router::routing::extractLambdasFromAny(a:Any[1]): LambdaFunction[*] -{ - $a->match([ - f:Function[1] | $f->extractLambdasFromFunction();, - vs: ValueSpecification[1] | $vs->extractLambdasFromVS();, - other: Any[1] | [] - ]); -} - -function meta::pure::router::routing::extractLambdasFromVS(vs:ValueSpecification[1]):LambdaFunction[*] -{ - $vs->match([ - e:ExtendedRoutedValueSpecification[1] | $e.value->evaluateAndDeactivate()->extractLambdasFromVS() , - f:FunctionRoutedValueSpecification[1] | $f.value->evaluateAndDeactivate()->extractLambdasFromVS(), - r:NoSetRoutedValueSpecification[1] | $r.value->evaluateAndDeactivate()->extractLambdasFromVS(), - fe:FunctionExpression[1] | $fe.func->evaluateAndDeactivate()->extractLambdasFromFunction()->concatenate($fe.parametersValues->evaluateAndDeactivate()->map(p| $p->extractLambdasFromVS())), - i:InstanceValue[1] | $i.values->evaluateAndDeactivate()->map(v|$v->extractLambdasFromAny()), - va:VariableExpression[1] | [], - vs:ValueSpecification[1] | [] - ]); -} - -function meta::pure::router::routing::extractLambdasFromFunction(f:Function[1]): LambdaFunction[*] -{ - $f->match([ - p:Property[1] | [], - nf:NativeFunction[1] | [], - l: LambdaFunction[1] | $l, - qp:QualifiedProperty[1] | $qp.expressionSequence->evaluateAndDeactivate()->map(vs|$vs->extractLambdasFromVS());, - cfd:ConcreteFunctionDefinition[1] | $cfd.expressionSequence->evaluateAndDeactivate()->map(vs|$vs->extractLambdasFromVS());, - f:Function[1] | [] - ]); -} function meta::pure::router::routing::processAggregationFunctionExpression(aggFuncExpr:FunctionExpression[1], routed:ExtendedRoutedValueSpecification[*], v:RoutingState[1], executionContext:ExecutionContext[1], vars:Map[1], inScopeVars:Map>[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):RoutingState[1] { @@ -679,6 +638,9 @@ function meta::pure::router::routing::shouldStopFunctions(extensions:meta::pure: groupBy_K_MANY__Function_MANY__AggregateValue_MANY__String_MANY__TabularDataSet_1_, groupBy_TabularDataSet_1__String_MANY__AggregateValue_MANY__TabularDataSet_1_, distinct_TabularDataSet_1__TabularDataSet_1_, + month_Date_1__Month_1_, + quarter_Date_1__Quarter_1_, + dayOfWeek_Date_1__DayOfWeek_1_, mostRecentDayOfWeek_DayOfWeek_1__Date_1_, mostRecentDayOfWeek_Date_1__DayOfWeek_1__Date_1_, previousDayOfWeek_DayOfWeek_1__Date_1_, diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/tds/tds.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/tds/tds.pure index 9ef0a2220ab..17bc0e98f5c 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/tds/tds.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/tds/tds.pure @@ -441,7 +441,8 @@ function <> meta::pure::tds::multipleColumnComp(row:TDSRow[1], o if ($sortInfo->isEmpty(), | 0, | let s = $sortInfo->head(); - let res = $row.get($s.column->toOne())->compare($other.get($s.column->toOne())); + let res = if($row.isNull($s.column->toOne()), |^TDSNull(), |$row.get($s.column->toOne())) + ->compare(if($other.isNull($s.column->toOne()), |^TDSNull(), |$other.get($s.column->toOne()))); if ($res == 0, |$row->multipleColumnComp($other, $sortInfo->tail()), |if ($s.direction == SortDirection.ASC, |$res,|-$res)); ); } @@ -541,7 +542,15 @@ function //todo: remove this by making parent an association $newTds->mutateAdd('rows', $tds.rows->map(r | ^TDSRow(parent=$newTds, - values=$r.values->concatenate($newColumnFunctions.func->map(f | $f->evaluate(^List(values=[$r]))))))); + values=$r.values->concatenate( + $newColumnFunctions.func->map(f | + let value = $f->evaluate(^List(values=[$r])); + if($value->isEmpty(), |^TDSNull(), |$value); + ) + ) + ) + ) + ); $newTds; } @@ -559,7 +568,13 @@ function //todo: remove this by making parent an association $newTds->mutateAdd('rows', $tds.rows->map(r | ^TDSRow(parent=$newTds, - values=$newColumnFunctions.func->map(f | $f->evaluate(^List(values=[$r])))))); + values=$newColumnFunctions.func->map(f | + let value = $f->evaluate(^List(values=[$r])); + if($value->isEmpty(), |^TDSNull(), |$value); + ) + ) + ) + ); $newTds; } diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/extensions/store_contract.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/extensions/store_contract.pure index 024ac56177c..5f2da2e7f64 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/extensions/store_contract.pure +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/extensions/store_contract.pure @@ -130,7 +130,7 @@ function meta::external::store::elasticsearch::v7::contract::supports(): Functio { let supportedFunctions = meta::external::store::elasticsearch::v7::pureToEs::supportedRoutingFunctions().first; - {f:FunctionExpression[1]| $supportedFunctions->exists(x | $x->eval($f.func))}; + {f:FunctionExpression[1]| $supportedFunctions->exists(x | $x->eval($f.func, []))}; } function meta::external::store::elasticsearch::v7::contract::shouldStopPreeval(): Function<{Any[*]->Boolean[1]}>[1] diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/functions/pure_to_elasticsearch.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/functions/pure_to_elasticsearch.pure index e24ba31b711..f5d185d6b19 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/functions/pure_to_elasticsearch.pure +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/functions/pure_to_elasticsearch.pure @@ -12,7 +12,6 @@ // See the License for the specific language governing permissions and // limitations under the License. -import meta::pure::functions::hash::*; import meta::pure::platform::executionPlan::generation::*; import meta::pure::executionPlan::*; import meta::external::store::elasticsearch::v7::specification::utils::*; @@ -43,6 +42,7 @@ import meta::external::store::elasticsearch::v7::metamodel::executionPlan::conte Class meta::external::store::elasticsearch::v7::pureToEs::State { + counter: Integer[1] = 1; search: SearchRequestBody[1]; inFilter: Boolean[1]; inProject: Boolean[1]; @@ -65,10 +65,11 @@ Class meta::external::store::elasticsearch::v7::pureToEs::State tdsESDetails: TDSESDetail[*]; - supportedRoutingFunctions: Pair[1]->Boolean[1]}>, Function<{FunctionExpression[1], State[1]->State[1]}>>[*]; - supportedFilterFunctions: Pair[1]->Boolean[1]}>, Function<{FunctionExpression[1], State[1]->State[1]}>>[*]; - supportedSimpleValueFunctions: Pair[1]->Boolean[1]}>, Function<{FunctionExpression[1], State[1]->Pair, State>[1]}>>[*]; - supportedAggregationFunctions: Pair[1]->Boolean[1]}>, Function<{FunctionExpression[1], String[1]->AggregationContainer[1]}>>[*]; + supportedRoutingFunctions: Pair[1],State[0..1]->Boolean[1]}>, Function<{FunctionExpression[1], State[1]->State[1]}>>[*]; + supportedFilterFunctions: Pair[1],State[0..1]->Boolean[1]}>, Function<{FunctionExpression[1], State[1]->State[1]}>>[*]; + supportedSimpleValueFunctions: Pair[1],State[0..1]->Boolean[1]}>, Function<{FunctionExpression[1], State[1]->Pair, State>[1]}>>[*]; + supportedAggregationFunctions: Pair[1],State[0..1]->Boolean[1]}>, Function<{FunctionExpression[1], String[1]->AggregationContainer[1]}>>[*]; + supportedForPainlessScriptFunctions: Pair[1],State[0..1]->Boolean[1]}>, Function<{FunctionExpression[1], State[1]->Pair[1]}>>[*]; } Class meta::external::store::elasticsearch::v7::pureToEs::TDSESDetail @@ -79,6 +80,8 @@ Class meta::external::store::elasticsearch::v7::pureToEs::TDSESDetail path(){ $this.resultPath.path() }:String[1]; + expression: FunctionExpression[0..1]; + format: String[0..1]; } function meta::external::store::elasticsearch::v7::pureToEs::processSelectAllTds(vs : FunctionExpression[1], req: State[1]): State[1] @@ -97,10 +100,12 @@ function meta::external::store::elasticsearch::v7::pureToEs::processSelectAllTds }) ->concatenate(^_IDResultPath(property = ^KeywordProperty(), fieldPath = '_id')); + let tdsDetails = $resultPaths->map(x | let type = $x.property->propertySupport().pureType->cast(@DataType); ^TDSESDetail(type = $type, name = $x.path(), resultPath = $x, format = if($type == Date, |'date_optional_time', |[]));); + ^$req( lazyIndex = $index, - search = resultPathToQuery($resultPaths, $req.search), - tdsESDetails = $resultPaths->map(x | ^TDSESDetail(type = $x.property->propertySupport().pureType->cast(@DataType), name = $x.path(), resultPath = $x)) + search = resultPathToQuery($tdsDetails, $req.search), + tdsESDetails = $tdsDetails ); } @@ -112,46 +117,75 @@ function meta::external::store::elasticsearch::v7::pureToEs::getResultPath(prope ); } -function meta::external::store::elasticsearch::v7::pureToEs::resultPathToQuery(resultPaths: ResultPath[*], search: SearchRequestBody[1]): SearchRequestBody[1] +function meta::external::store::elasticsearch::v7::pureToEs::resultPathToQuery(tdsDetails: TDSESDetail[*], search: SearchRequestBody[1]): SearchRequestBody[1] { - let frps = $resultPaths->filter(x | $x->instanceOf(FieldResultPath))->cast(@FieldResultPath); - let srps = $resultPaths->concatenate($frps.readFrom)->filter(x | $x->instanceOf(SourceFieldResultPath))->cast(@SourceFieldResultPath); - let docps = $resultPaths->concatenate($frps.readFrom)->filter(x | $x->instanceOf(DocValueResultPath))->cast(@DocValueResultPath); + let frps = $tdsDetails.resultPath->filter(x | $x->instanceOf(FieldResultPath))->cast(@FieldResultPath); + let srps = $tdsDetails.resultPath->concatenate($frps.readFrom)->filter(x | $x->instanceOf(SourceFieldResultPath))->cast(@SourceFieldResultPath); + let docps = $tdsDetails.resultPath->concatenate($frps.readFrom)->filter(x | $x->instanceOf(DocValueResultPath))->cast(@DocValueResultPath); let seachWithSrps = $srps->isNotEmpty()->if(| ^$search(_source = ^SourceConfig(filter = ^SourceFilter(includes = $srps.path()->literal()))), | $search); - let fields = $docps->map(x | $x->resultPathToFieldAndFormat()); + let fields = $docps->map(x | $x->resultPathToFieldAndFormat($tdsDetails->filter(t | $t.resultPath == $x)->first())); $fields->isEmpty()->if(|$seachWithSrps, |^$seachWithSrps(docvalue_fields = $fields)); } -function meta::external::store::elasticsearch::v7::pureToEs::resultPathToFieldAndFormat(resultPath: DocValueResultPath[1]): FieldAndFormat[1] +function meta::external::store::elasticsearch::v7::pureToEs::resultPathToFieldAndFormat(resultPath: DocValueResultPath[1], tdsEsDetail: TDSESDetail[0..1]): FieldAndFormat[1] { - let format = if($resultPath.property->propertySupport().pureType == Date, | 'date_optional_time', | []); + let format = if($resultPath.property->propertySupport().pureType == Date, | $tdsEsDetail.format->defaultIfEmpty('date_optional_time')->toOne(), | []); ^FieldAndFormat(field = $resultPath.path()->literal(), format = $format->literal()); } +function meta::external::store::elasticsearch::v7::pureToEs::processExtend(vs : FunctionExpression[1], initReq: State[1]): State[1] +{ + $initReq.debug(|'Processing ->extend'); + processProject($vs, $initReq, true); +} + function meta::external::store::elasticsearch::v7::pureToEs::processProject(vs : FunctionExpression[1], initReq: State[1]): State[1] { $initReq.debug(|'Processing ->project'); - let currReq = process($vs.parametersValues->at(0), ^$initReq(inProject = true)); + processProject($vs, $initReq, false); +} + +function meta::external::store::elasticsearch::v7::pureToEs::processProject(vs : FunctionExpression[1], initReq: State[1], extend: Boolean[1]): State[1] +{ + let currReq = process($vs.parametersValues->at(0), $initReq); + assert(!$currReq.inFilter); assertFalse($currReq.aggregationQuery, |'project not supported in aggreagtion queries'); let cols = $vs->instanceValuesAtParameter(1, $currReq.sq.inScopeVars); - let fields = $cols->match([ - tdsCols: BasicColumnSpecification[*] | $tdsCols->map(x | $x->processProjectColumn($currReq)) + let fieldsStatePair = $cols->match([ + tdsCols: BasicColumnSpecification[*] | $tdsCols->fold( + {col: BasicColumnSpecification[1], pair: Pair, State>[1] | + let details = $col->processProjectColumn($pair.second); + pair(list($pair.first.values->concatenate($details.first)), $details.second); + }, pair(list([]->cast(@TDSESDetail)), ^$currReq(inProject = true))) ]); - let search = $currReq.search; - ^$currReq( - search = resultPathToQuery($fields.resultPath, $search), + let newReq = $fieldsStatePair.second; + let fields = if($extend, |$newReq.tdsESDetails, |[])->concatenate($fieldsStatePair.first.values); + let search = $newReq.search; + ^$newReq( + search = resultPathToQuery($fields, $search), tdsESDetails = $fields, inProject = false ); } -function meta::external::store::elasticsearch::v7::pureToEs::processProjectColumn(vs : BasicColumnSpecification[1], initReq: State[1]): TDSESDetail[1] +function meta::external::store::elasticsearch::v7::pureToEs::processProjectColumn(vs : BasicColumnSpecification[1], initReq: State[1]): Pair[1] { let expr = $vs.func->cast(@FunctionDefinition).expressionSequence->toOne('tds column projection only supports simple expressions'); let name = $vs.name; - let tdsDetail = $expr->extractSimpleValue($initReq).first.values->cast(@TDSESDetail)->toOne(); - ^$tdsDetail(name = $name, type = $vs.func->functionReturnType().rawType->toOne()->cast(@DataType)); + let type = $vs.func->functionReturnType().rawType->toOne()->cast(@DataType)->map(x | $x->_subTypeOf(Enum)->if(|String, |$x)); + + $initReq.debug(|'Processing project - %s = %s'->format([$vs.name, $expr->printValueSpecification('')])); + + $expr->extractSimpleValue($initReq).first.values->match([ + tdsDetail: TDSESDetail[1] | pair(^$tdsDetail(name = $name, type = $type), $initReq), + {fe: FunctionExpression[1] | + let resultPath = ^DocValueResultPath(fieldPath = $name, property = $type->defaultRuntimePropertyForPureType()); + let scripted = $fe->toRuntimeMapping($resultPath, $initReq); + pair(^TDSESDetail(type = $type, name = $name, resultPath = $resultPath, expression = $fe, format = $scripted.search.runtime_mappings->toOne()->get($name).format.value), $scripted); + }, + any: Any[*] | fail(|'Cannot project column - %s:%s'->format([$name,$any->type()->elementToPath()]))->cast(@Pair) + ]); } function meta::external::store::elasticsearch::v7::pureToEs::processLimit(vs : FunctionExpression[1], initReq: State[1]): State[1] @@ -165,7 +199,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processLimit(vs : F } -function meta::external::store::elasticsearch::v7::pureToEs::processDrop(vs : FunctionExpression[1], initReq: State[1]): State[1] +function meta::external::store::elasticsearch::v7::pureToEs::processDrop(vs : FunctionExpression[1], initReq: State[1]): State[1] { $initReq.debug(|'Processing ->drop'); let currReq = process($vs.parametersValues->at(0), $initReq); @@ -239,12 +273,12 @@ function meta::external::store::elasticsearch::v7::pureToEs::processGroupBy(vs: assert($groupByCols->size() == $groupByTdsESDetails->size(), | 'grouping by unknown columns: ' + $groupByCols->removeAll($groupByTdsESDetails.name)->joinStrings('[', ', ', ']')); let aggPairs = $aggregateValues->map({x | - let rawToAggregate = processProjectColumn(^BasicColumnSpecification(func = $x.mapFn, name = $x.name), $groupedReq); + let rawToAggregate = processProjectColumn(^BasicColumnSpecification(func = $x.mapFn, name = $x.name), $groupedReq).first; let aggFunc = $x.aggregateFn->deepByPassRouterInfo()->cast(@FunctionDefinition).expressionSequence->toOne('tds aggregation only supports simple expressions: max, min, sum, etc.'); let container = if ($aggFunc->instanceOf(FunctionExpression), | - $groupedReq.supportedAggregationFunctions->findAndEvalSupportedFunction($aggFunc->cast(@FunctionExpression), $rawToAggregate.path()) + $groupedReq.supportedAggregationFunctions->findAndEvalSupportedFunction($aggFunc->cast(@FunctionExpression), $rawToAggregate.path(), $groupedReq) , | fail('Unsupported aggregation functions: ' + $aggFunc->printValueSpecification('')); @@ -294,27 +328,25 @@ function meta::external::store::elasticsearch::v7::pureToEs::processGroupBy(vs: function meta::external::store::elasticsearch::v7::pureToEs::processFilter(vs : FunctionExpression[1], initReq: State[1]): State[1] { $initReq.debug(|'Processing ->filter'); - let req = ^$initReq(inFilter = true); - let debug = $req.debug; - let currReq = process($vs.parametersValues->at(0), ^$req(debug = ^$debug(space = $debug.space + '\t'))); + let debug = $initReq.debug; + let currReq = process($vs.parametersValues->at(0), ^$initReq(debug = ^$debug(space = $debug.space + '\t'))); assertFalse($currReq.aggregationQuery, |'filter not supported in aggregation queries'); - let withFilterReq = processFilterLambda($vs.parametersValues->at(1), $currReq); + let withFilterReq = processFilterLambda($vs.parametersValues->at(1), ^$currReq(inFilter = true)); ^$withFilterReq(inFilter = false, debug = $debug); } function meta::external::store::elasticsearch::v7::pureToEs::processFilterLambda(vs : ValueSpecification[1], req: State[1]): State[1] { $req.debug(|'-- processing filter lambda ' + $vs->type()->toString() + ': ' + $vs->printValueSpecification('\n')); - $vs->match([ fr: FunctionRoutedValueSpecification[1] | $fr.value->processFilterLambda($req), iv: InstanceValue[1] | $iv.values->match([ - f: FunctionDefinition[1 ] | $f.expressionSequence->at(0)->processFilterLambda($req), - any: Any[1] | fail('not supported: ' + $iv.values->type()->toString());$req; + f: FunctionDefinition[1] | $f.expressionSequence->at(0)->processFilterLambda($req), + any: Any[1] | fail('not supported: ' + $iv.values->type()->toString())->cast(@State) ]), - fe: FunctionExpression[1] | $req.supportedFilterFunctions->findAndEvalSupportedFunction($fe, $req), - any: Any[1] | fail('not supported: ' + $any->printValueSpecification(''));$req; + fe: FunctionExpression[1] | $req.supportedFilterFunctions->findAndEvalSupportedFunction($fe, $req, $req), + any: Any[1] | fail('not supported: ' + $any->printValueSpecification(''))->cast(@State) ]); } @@ -472,18 +504,18 @@ function <> meta::external::store::elasticsearch::v7::pureToEs:: function meta::external::store::elasticsearch::v7::pureToEs::process(vs : ValueSpecification[1], req: State[1]): State[1] { - $req.debug(|'-- processing VS ' + $vs->type()->toString() + ': ' + $vs->printValueSpecification('\n')); + $req.debug(|'-- processing VS ' + $vs->printValueSpecification('\n')); $vs->match([ - fe: FunctionExpression[1] | $req.supportedRoutingFunctions->findAndEvalSupportedFunction($fe, $req), + fe: FunctionExpression[1] | $req.supportedRoutingFunctions->findAndEvalSupportedFunction($fe, $req, $req), tds: TDSRoutedValueSpecification[1] | $tds.value->process($req), ervs: ExtendedRoutedValueSpecification[1] | $ervs.value->process($req), any: Any[1] | fail('not supported: ' + $any->type()->toString());$req; ]); } -function meta::external::store::elasticsearch::v7::pureToEs::findAndEvalSupportedFunction(funcs: Pair[1]->Boolean[1]}>, Function<{FunctionExpression[1], P[n]->T[m]}>>[*], fe : FunctionExpression[1], req: P[n]): T[m] +function meta::external::store::elasticsearch::v7::pureToEs::findAndEvalSupportedFunction(funcs: Pair[1],State[0..1]->Boolean[1]}>, Function<{FunctionExpression[1], P[n]->T[m]}>>[*], fe : FunctionExpression[1], req: P[n], state: State[1]): T[m] { - eval($funcs->filter(x|$x.first->eval($fe.func))->at(0)->toOne('function not supported yet: ' + $fe.func->elementToPath()).second, $fe, $req); + eval($funcs->filter(x|$x.first->eval($fe.func, $state))->first()->toOne('function not supported yet: ' + $fe.func->elementToPath()).second, $fe, $req); } function meta::external::store::elasticsearch::v7::pureToEs::defaultSize(): Integer[1] @@ -507,7 +539,8 @@ function meta::external::store::elasticsearch::v7::pureToEs::process(sq:StoreQue supportedFilterFunctions = supportedFilterFunctions(), supportedRoutingFunctions = supportedRoutingFunctions(), supportedSimpleValueFunctions = supportedSimpleValueFunctions(), - supportedAggregationFunctions = supportedAggregationFunctions() + supportedAggregationFunctions = supportedAggregationFunctions(), + supportedForPainlessScriptFunctions = supportedForPainlessScriptFunctions() ); let processedReq = $sq.fe->process($req); @@ -515,30 +548,38 @@ function meta::external::store::elasticsearch::v7::pureToEs::process(sq:StoreQue ^$processedReq(search = if($search.size->isEmpty(), | ^$search(size = defaultSize()->literal()), | $search)); } -function meta::external::store::elasticsearch::v7::pureToEs::supportedRoutingFunctions():Pair[1]->Boolean[1]}>, Function<{FunctionExpression[1], State[1]->State[1]}>>[*] +function meta::external::store::elasticsearch::v7::pureToEs::supportedIfEqual(func: Function[1]):LambdaFunction<{Function[1],State[0..1]->Boolean[1]}>[1] +{ + {x: Function[1], req: State[0..1] | $x == $func} +} + +function meta::external::store::elasticsearch::v7::pureToEs::supportedRoutingFunctions():Pair[1],State[0..1]->Boolean[1]}>, Function<{FunctionExpression[1],State[1]->State[1]}>>[*] { let supported = [ - pair(x: Function[1] | $x == indexToTDS_Elasticsearch7Store_1__String_1__TabularDataSet_1_, processSelectAllTds_FunctionExpression_1__State_1__State_1_), - pair(x: Function[1] | $x == meta::pure::tds::project_TabularDataSet_1__ColumnSpecification_MANY__TabularDataSet_1_, processProject_FunctionExpression_1__State_1__State_1_), + pair(supportedIfEqual(indexToTDS_Elasticsearch7Store_1__String_1__TabularDataSet_1_), processSelectAllTds_FunctionExpression_1__State_1__State_1_), + pair(supportedIfEqual(meta::pure::tds::project_TabularDataSet_1__ColumnSpecification_MANY__TabularDataSet_1_), processProject_FunctionExpression_1__State_1__State_1_), + pair(supportedIfEqual(meta::pure::tds::extend_TabularDataSet_1__BasicColumnSpecification_MANY__TabularDataSet_1_), processExtend_FunctionExpression_1__State_1__State_1_), - pair(x: Function[1] | $x == meta::pure::tds::filter_TabularDataSet_1__Function_1__TabularDataSet_1_, processFilter_FunctionExpression_1__State_1__State_1_), + pair(supportedIfEqual(meta::pure::tds::filter_TabularDataSet_1__Function_1__TabularDataSet_1_), processFilter_FunctionExpression_1__State_1__State_1_), - pair(x: Function[1] | $x == meta::pure::tds::sort_TabularDataSet_1__String_MANY__TabularDataSet_1_, processDefaultSort_FunctionExpression_1__State_1__State_1_), - pair(x: Function[1] | $x == meta::pure::tds::sort_TabularDataSet_1__SortInformation_MANY__TabularDataSet_1_, processSortWithInformation_FunctionExpression_1__State_1__State_1_), - pair(x: Function[1] | $x == meta::pure::tds::sort_TabularDataSet_1__String_1__SortDirection_1__TabularDataSet_1_, processSortWithDirection_FunctionExpression_1__State_1__State_1_), + pair(supportedIfEqual(meta::pure::tds::sort_TabularDataSet_1__String_MANY__TabularDataSet_1_), processDefaultSort_FunctionExpression_1__State_1__State_1_), + pair(supportedIfEqual(meta::pure::tds::sort_TabularDataSet_1__SortInformation_MANY__TabularDataSet_1_), processSortWithInformation_FunctionExpression_1__State_1__State_1_), + pair(supportedIfEqual(meta::pure::tds::sort_TabularDataSet_1__String_1__SortDirection_1__TabularDataSet_1_), processSortWithDirection_FunctionExpression_1__State_1__State_1_), - pair(x: Function[1] | $x == meta::pure::tds::groupBy_TabularDataSet_1__String_MANY__AggregateValue_MANY__TabularDataSet_1_, processGroupBy_FunctionExpression_1__State_1__State_1_), + pair(supportedIfEqual(meta::pure::tds::groupBy_TabularDataSet_1__String_MANY__AggregateValue_MANY__TabularDataSet_1_), processGroupBy_FunctionExpression_1__State_1__State_1_), - pair(x: Function[1] | $x == meta::pure::tds::limit_TabularDataSet_1__Integer_1__TabularDataSet_1_, processLimit_FunctionExpression_1__State_1__State_1_), - pair(x: Function[1] | $x == meta::pure::tds::take_TabularDataSet_1__Integer_1__TabularDataSet_1_, processLimit_FunctionExpression_1__State_1__State_1_), - pair(x: Function[1] | $x == meta::pure::tds::drop_TabularDataSet_1__Integer_1__TabularDataSet_1_, processDrop_FunctionExpression_1__State_1__State_1_), - pair(x: Function[1] | $x == meta::pure::tds::slice_TabularDataSet_1__Integer_1__Integer_1__TabularDataSet_1_, processSlice_FunctionExpression_1__State_1__State_1_) + pair(supportedIfEqual(meta::pure::tds::limit_TabularDataSet_1__Integer_1__TabularDataSet_1_), processLimit_FunctionExpression_1__State_1__State_1_), + pair(supportedIfEqual(meta::pure::tds::take_TabularDataSet_1__Integer_1__TabularDataSet_1_), processLimit_FunctionExpression_1__State_1__State_1_), + pair(supportedIfEqual(meta::pure::tds::drop_TabularDataSet_1__Integer_1__TabularDataSet_1_), processDrop_FunctionExpression_1__State_1__State_1_), + pair(supportedIfEqual(meta::pure::tds::slice_TabularDataSet_1__Integer_1__Integer_1__TabularDataSet_1_), processSlice_FunctionExpression_1__State_1__State_1_) ]; } function meta::external::store::elasticsearch::v7::pureToEs::processEqual(vs : FunctionExpression[1], initReq: State[1]): State[1] { + $initReq.debug(|'-- processing equal ' + $vs->printValueSpecification('\n')); + assert($initReq.inFilter, 'equal only supporter on filter context'); let leftSidePair = $vs.parametersValues->at(0)->extractSimpleValue($initReq); @@ -549,6 +590,12 @@ function meta::external::store::elasticsearch::v7::pureToEs::processEqual(vs : F let req = $rightSidePair.second; + processEqual($leftSide, $rightSide, $req); +} + +function meta::external::store::elasticsearch::v7::pureToEs::processEqual(leftSide: Any[*], rightSide: Any[*], req: State[1]): State[1] +{ + let eqInputs = if($leftSide->size() == 1 && $leftSide->toOne()->instanceOf(TDSESDetail), |pair($leftSide->toOne()->cast(@TDSESDetail), list($rightSide)), | @@ -791,6 +838,18 @@ function meta::external::store::elasticsearch::v7::pureToEs::processIsNotEmpty(v ^$req(search = ^$search(query = ^QueryContainer(bool = ^BoolQuery(filter = $query)))); } +function meta::external::store::elasticsearch::v7::pureToEs::processTdsGetBoolean(vs : FunctionExpression[1], initReq: State[1]): State[1] +{ + assert($initReq.inFilter, 'TdsRow.getBoolean only supporter on filter context'); + + let columnPair = $vs->extractSimpleValue($initReq); + let column = $columnPair.first.values->cast(@TDSESDetail)->toOne(); + + let req = $columnPair.second; + + processEqual($column, true, $req); +} + function meta::external::store::elasticsearch::v7::pureToEs::processTdsIsNull(vs : FunctionExpression[1], initReq: State[1]): State[1] { assert($initReq.inFilter, 'TdsRow.isNull only supporter on filter context'); @@ -931,40 +990,40 @@ function meta::external::store::elasticsearch::v7::pureToEs::processNot(vs : Fun function meta::external::store::elasticsearch::v7::pureToEs::processOr(vs : FunctionExpression[1], req: State[1]): State[1] { assert($req.inFilter, 'or only supporter on filter context'); + let search = $req.search; let leftSide = $vs.parametersValues->at(0)->processFilterLambda($req); - let rightSide = $vs.parametersValues->at(1)->processFilterLambda($req); + let rightSide = $vs.parametersValues->at(1)->processFilterLambda(^$leftSide(search = $search)); let bool = ^BoolQuery(minimum_should_match = literal('1'), should = [ $leftSide.search.query->toOne(), $rightSide.search.query->toOne() ]); let query = ^QueryContainer(bool = ^BoolQuery(filter = ^QueryContainer(bool = $bool))); - let search = $req.search; - ^$req(search = ^$search(query = $query), extraNodes = $req.extraNodes->concatenate($leftSide.extraNodes)->concatenate($rightSide.extraNodes)); + ^$rightSide(search = ^$search(query = $query), extraNodes = $req.extraNodes->concatenate($leftSide.extraNodes)->concatenate($rightSide.extraNodes)); } function meta::external::store::elasticsearch::v7::pureToEs::processAnd(vs : FunctionExpression[1], req: State[1]): State[1] { assert($req.inFilter, 'and only supporter on filter context'); + let search = $req.search; let leftSide = $vs.parametersValues->at(0)->processFilterLambda($req); - let rightSide = $vs.parametersValues->at(1)->processFilterLambda($req); + let rightSide = $vs.parametersValues->at(1)->processFilterLambda(^$leftSide(search = $search)); let bool = ^BoolQuery(must = [ $leftSide.search.query->toOne(), $rightSide.search.query->toOne() ]); let query = ^QueryContainer(bool = ^BoolQuery(filter = ^QueryContainer(bool = $bool))); - let search = $req.search; - ^$req(search = ^$search(query = $query), extraNodes = $req.extraNodes->concatenate($leftSide.extraNodes)->concatenate($rightSide.extraNodes)); + ^$rightSide(search = ^$search(query = $query), extraNodes = $req.extraNodes->concatenate($leftSide.extraNodes)->concatenate($rightSide.extraNodes)); } function meta::external::store::elasticsearch::v7::pureToEs::extractSimpleValue(vs : Any[1], req: State[1]): Pair, State>[1] { - $req.debug(|'-- processing simple value ' + $vs->type()->toString()); + $req.debug(|'-- processing simple value ' + $vs->match([vs: ValueSpecification[1] | $vs->printValueSpecification(''), a:Any[1] | $a->toString()])); $vs->match([ rfe: FunctionExpression[1] | let fe = $rfe->deepByPassRouterInfo()->cast(@FunctionExpression); if($fe.func->instanceOf(QualifiedProperty), - | pair($fe.func->cast(@QualifiedProperty)->qualifiedPropertyToTDSESDetail($fe.parametersValues, $req)->list(), $req), + | $fe->qualifiedPropertyToTDSESDetail($req), | if(toOne_T_MANY__T_1_ == $fe.func, | $fe.parametersValues->at(0)->extractSimpleValue($req), - | $req.supportedSimpleValueFunctions->findAndEvalSupportedFunction($fe, $req) + | $req.supportedSimpleValueFunctions->findAndEvalSupportedFunction($fe, $req, $req) ));, iv: InstanceValue[1] | $iv.values->fold({x, currState | let r = $x->extractSimpleValue($currState.second); @@ -976,124 +1035,134 @@ function meta::external::store::elasticsearch::v7::pureToEs::extractSimpleValue( ]); } -function meta::external::store::elasticsearch::v7::pureToEs::qualifiedPropertyToTDSESDetail(qp : QualifiedProperty[1], params: ValueSpecification[*], req: State[1]): TDSESDetail[1] +function meta::external::store::elasticsearch::v7::pureToEs::qualifiedPropertyToTDSESDetail(fe : FunctionExpression[1], req: State[1]): Pair, State>[1] { + let qp = $fe.func->cast(@QualifiedProperty); + let params = $fe.parametersValues; assert($params->at(0)->byPassRouterInfo().genericType.rawType->toOne() == TDSRow, 'Only TDSRow operations supported'); - let tdsProperties = ['getNumber', 'getInteger', 'getString', 'getNullableString', 'getFloat', 'getDate', 'getBoolean', 'getEnum', 'getDateTime', 'getStrictDate', 'isNull', 'isNotNull']; + let tdsProperties = ['getNumber', 'getInteger', 'getString', 'getNullableString', 'getFloat', 'getDate', 'getBoolean', 'getEnum', 'getDateTime', 'getStrictDate'] + ->concatenate(if($req.inProject, |[], |['isNull', 'isNotNull'])); let funcName = $qp.functionName->toOne(); - let valid = $tdsProperties->contains($funcName); - assert($tdsProperties->contains($funcName), | 'Unsupported TDSRow function:' + $qp.functionName->toOne()); + $tdsProperties->contains($funcName)->if( + {| + let propertyName = $params->at(1)->match([ + iv:InstanceValue[1]|$iv.values, + any: Any[1] | fail($any->printValueSpecification('\n') + ' not supported'); + ])->toOne()->toString(); - let propertyName = $params->at(1)->match([ - iv:InstanceValue[1]|$iv.values, - any: Any[1] | fail($any->printValueSpecification('\n') + ' not supported'); - ])->toOne()->toString(); + let tdsDetail = $req.tdsESDetails->filter(f | $f.name == $propertyName) + ->toOne('Property \'%s\' not found on query project. Available: [%s]'->format([$propertyName, $req.tdsESDetails.name->joinStrings('\'', '\', \'', '\'')])); - $req.tdsESDetails->filter(f | $f.name == $propertyName) - ->toOne('Property \'%s\' not found on query project. Available: [%s]'->format([$propertyName, $req.tdsESDetails.name->joinStrings('\'', '\', \'', '\'')])); + pair($tdsDetail->list(), $req); + }, + {| + $req.supportedSimpleValueFunctions->findAndEvalSupportedFunction($fe, $req, $req); + } + ); } -function meta::external::store::elasticsearch::v7::pureToEs::supportedFilterFunctions():Pair[1]->Boolean[1]}>, Function<{FunctionExpression[1], State[1]->State[1]}>>[*] +function meta::external::store::elasticsearch::v7::pureToEs::supportedFilterFunctions():Pair[1],State[1]->Boolean[1]}>, Function<{FunctionExpression[1],State[1]->State[1]}>>[*] { let supported = [ - pair(x: Function[1] | $x == meta::pure::functions::boolean::equal_Any_MANY__Any_MANY__Boolean_1_, meta::external::store::elasticsearch::v7::pureToEs::processEqual_FunctionExpression_1__State_1__State_1_) - ,pair(x: Function[1] | $x == meta::pure::functions::boolean::or_Boolean_1__Boolean_1__Boolean_1_, meta::external::store::elasticsearch::v7::pureToEs::processOr_FunctionExpression_1__State_1__State_1_) - ,pair(x: Function[1] | $x == meta::pure::functions::boolean::and_Boolean_1__Boolean_1__Boolean_1_, meta::external::store::elasticsearch::v7::pureToEs::processAnd_FunctionExpression_1__State_1__State_1_) - ,pair(x: Function[1] | $x == meta::pure::functions::boolean::not_Boolean_1__Boolean_1_, meta::external::store::elasticsearch::v7::pureToEs::processNot_FunctionExpression_1__State_1__State_1_) + pair(supportedIfEqual(meta::pure::functions::boolean::equal_Any_MANY__Any_MANY__Boolean_1_), processEqual_FunctionExpression_1__State_1__State_1_) + ,pair(supportedIfEqual(meta::pure::functions::boolean::or_Boolean_1__Boolean_1__Boolean_1_), processOr_FunctionExpression_1__State_1__State_1_) + ,pair(supportedIfEqual(meta::pure::functions::boolean::and_Boolean_1__Boolean_1__Boolean_1_), processAnd_FunctionExpression_1__State_1__State_1_) + ,pair(supportedIfEqual(meta::pure::functions::boolean::not_Boolean_1__Boolean_1_), processNot_FunctionExpression_1__State_1__State_1_) - ,pair(x: Function[1] | $x == meta::pure::functions::boolean::greaterThan_Number_1__Number_1__Boolean_1_, meta::external::store::elasticsearch::v7::pureToEs::processGreaterThan_FunctionExpression_1__State_1__State_1_) - ,pair(x: Function[1] | $x == meta::pure::functions::boolean::greaterThanEqual_Number_1__Number_1__Boolean_1_, meta::external::store::elasticsearch::v7::pureToEs::processGreaterThanEqual_FunctionExpression_1__State_1__State_1_) + ,pair(supportedIfEqual(meta::pure::functions::boolean::greaterThan_Number_1__Number_1__Boolean_1_), processGreaterThan_FunctionExpression_1__State_1__State_1_) + ,pair(supportedIfEqual(meta::pure::functions::boolean::greaterThanEqual_Number_1__Number_1__Boolean_1_), processGreaterThanEqual_FunctionExpression_1__State_1__State_1_) - ,pair(x: Function[1] | $x == meta::pure::functions::boolean::greaterThan_Date_1__Date_1__Boolean_1_, meta::external::store::elasticsearch::v7::pureToEs::processGreaterThan_FunctionExpression_1__State_1__State_1_) - ,pair(x: Function[1] | $x == meta::pure::functions::boolean::greaterThanEqual_Date_1__Date_1__Boolean_1_, meta::external::store::elasticsearch::v7::pureToEs::processGreaterThanEqual_FunctionExpression_1__State_1__State_1_) + ,pair(supportedIfEqual(meta::pure::functions::boolean::greaterThan_Date_1__Date_1__Boolean_1_), processGreaterThan_FunctionExpression_1__State_1__State_1_) + ,pair(supportedIfEqual(meta::pure::functions::boolean::greaterThanEqual_Date_1__Date_1__Boolean_1_), processGreaterThanEqual_FunctionExpression_1__State_1__State_1_) - ,pair(x: Function[1] | $x == meta::pure::functions::boolean::lessThan_Number_1__Number_1__Boolean_1_, meta::external::store::elasticsearch::v7::pureToEs::processLessThan_FunctionExpression_1__State_1__State_1_) - ,pair(x: Function[1] | $x == meta::pure::functions::boolean::lessThanEqual_Number_1__Number_1__Boolean_1_, meta::external::store::elasticsearch::v7::pureToEs::processLessThanEqual_FunctionExpression_1__State_1__State_1_) + ,pair(supportedIfEqual(meta::pure::functions::boolean::lessThan_Number_1__Number_1__Boolean_1_), processLessThan_FunctionExpression_1__State_1__State_1_) + ,pair(supportedIfEqual(meta::pure::functions::boolean::lessThanEqual_Number_1__Number_1__Boolean_1_), processLessThanEqual_FunctionExpression_1__State_1__State_1_) - ,pair(x: Function[1] | $x == meta::pure::functions::boolean::lessThan_Date_1__Date_1__Boolean_1_, meta::external::store::elasticsearch::v7::pureToEs::processLessThan_FunctionExpression_1__State_1__State_1_) - ,pair(x: Function[1] | $x == meta::pure::functions::boolean::lessThanEqual_Date_1__Date_1__Boolean_1_, meta::external::store::elasticsearch::v7::pureToEs::processLessThanEqual_FunctionExpression_1__State_1__State_1_) + ,pair(supportedIfEqual(meta::pure::functions::boolean::lessThan_Date_1__Date_1__Boolean_1_), processLessThan_FunctionExpression_1__State_1__State_1_) + ,pair(supportedIfEqual(meta::pure::functions::boolean::lessThanEqual_Date_1__Date_1__Boolean_1_), processLessThanEqual_FunctionExpression_1__State_1__State_1_) - ,pair(x: Function[1] | $x->instanceOf(QualifiedProperty) && $x->cast(@QualifiedProperty).name == 'isNull', meta::external::store::elasticsearch::v7::pureToEs::processTdsIsNull_FunctionExpression_1__State_1__State_1_) - ,pair(x: Function[1] | $x == meta::pure::functions::collection::isEmpty_Any_$0_1$__Boolean_1_, meta::external::store::elasticsearch::v7::pureToEs::processIsEmpty_FunctionExpression_1__State_1__State_1_) - ,pair(x: Function[1] | $x->instanceOf(QualifiedProperty) && $x->cast(@QualifiedProperty).name == 'isNotNull', meta::external::store::elasticsearch::v7::pureToEs::processTdsIsNotNull_FunctionExpression_1__State_1__State_1_) - ,pair(x: Function[1] | $x == meta::pure::functions::collection::isNotEmpty_Any_$0_1$__Boolean_1_, meta::external::store::elasticsearch::v7::pureToEs::processIsNotEmpty_FunctionExpression_1__State_1__State_1_) + ,pair({x: Function[1], req: State[1] | $x->instanceOf(QualifiedProperty) && $x->cast(@QualifiedProperty).name == 'getBoolean'}, processTdsGetBoolean_FunctionExpression_1__State_1__State_1_) - ,pair(x: Function[1] | $x == meta::pure::functions::string::startsWith_String_1__String_1__Boolean_1_, meta::external::store::elasticsearch::v7::pureToEs::processStartsWith_FunctionExpression_1__State_1__State_1_) - ,pair(x: Function[1] | $x == meta::pure::functions::string::endsWith_String_1__String_1__Boolean_1_, meta::external::store::elasticsearch::v7::pureToEs::processEndsWith_FunctionExpression_1__State_1__State_1_) - ,pair(x: Function[1] | $x == meta::pure::functions::string::contains_String_$0_1$__String_1__Boolean_1_, meta::external::store::elasticsearch::v7::pureToEs::processContains_FunctionExpression_1__State_1__State_1_) - ,pair(x: Function[1] | $x == meta::pure::functions::string::contains_String_1__String_1__Boolean_1_, meta::external::store::elasticsearch::v7::pureToEs::processContains_FunctionExpression_1__State_1__State_1_) - ,pair(x: Function[1] | $x == meta::pure::functions::collection::in_Any_1__Any_MANY__Boolean_1_, meta::external::store::elasticsearch::v7::pureToEs::processIn_FunctionExpression_1__State_1__State_1_) + ,pair({x: Function[1], req: State[1] | $x->instanceOf(QualifiedProperty) && $x->cast(@QualifiedProperty).name == 'isNull'}, processTdsIsNull_FunctionExpression_1__State_1__State_1_) + ,pair(supportedIfEqual(meta::pure::functions::collection::isEmpty_Any_$0_1$__Boolean_1_), processIsEmpty_FunctionExpression_1__State_1__State_1_) + ,pair({x: Function[1], req: State[1] | $x->instanceOf(QualifiedProperty) && $x->cast(@QualifiedProperty).name == 'isNotNull'}, processTdsIsNotNull_FunctionExpression_1__State_1__State_1_) + ,pair(supportedIfEqual(meta::pure::functions::collection::isNotEmpty_Any_$0_1$__Boolean_1_), processIsNotEmpty_FunctionExpression_1__State_1__State_1_) + + ,pair(supportedIfEqual(meta::pure::functions::string::startsWith_String_1__String_1__Boolean_1_), processStartsWith_FunctionExpression_1__State_1__State_1_) + ,pair(supportedIfEqual(meta::pure::functions::string::endsWith_String_1__String_1__Boolean_1_), processEndsWith_FunctionExpression_1__State_1__State_1_) + ,pair(supportedIfEqual(meta::pure::functions::string::contains_String_$0_1$__String_1__Boolean_1_), processContains_FunctionExpression_1__State_1__State_1_) + ,pair(supportedIfEqual(meta::pure::functions::string::contains_String_1__String_1__Boolean_1_), processContains_FunctionExpression_1__State_1__State_1_) + ,pair(supportedIfEqual(meta::pure::functions::collection::in_Any_1__Any_MANY__Boolean_1_), processIn_FunctionExpression_1__State_1__State_1_) ]; } -function meta::external::store::elasticsearch::v7::pureToEs::supportedSimpleValueFunctions(): Pair[1]->Boolean[1]}>, Function<{FunctionExpression[1], State[1]->Pair, State>[1]}>>[*] +function meta::external::store::elasticsearch::v7::pureToEs::supportedSimpleValueFunctions(): Pair[1], State[1]->Boolean[1]}>, Function<{FunctionExpression[1], State[1]->Pair, State>[1]}>>[*] { let supported = [ - pair(x: Function[1] | $x == meta::pure::functions::lang::extractEnumValue_Enumeration_1__String_1__T_1_, meta::external::store::elasticsearch::v7::pureToEs::reactivateFE_FunctionExpression_1__State_1__Pair_1_) - ,pair(x: Function[1] | $x == meta::pure::tds::asc_String_1__SortInformation_1_, meta::external::store::elasticsearch::v7::pureToEs::reactivateFE_FunctionExpression_1__State_1__Pair_1_) - ,pair(x: Function[1] | $x == meta::pure::tds::desc_String_1__SortInformation_1_, meta::external::store::elasticsearch::v7::pureToEs::reactivateFE_FunctionExpression_1__State_1__Pair_1_) - ,pair(x: Function[1] | $x == meta::pure::tds::agg_String_1__FunctionDefinition_1__FunctionDefinition_1__AggregateValue_1_, meta::external::store::elasticsearch::v7::pureToEs::reactivateFE_FunctionExpression_1__State_1__Pair_1_) - // catch all - delegate to platform evaluation of expression, and assign to variable. ES will then use the variable on the plan - ,pair(x: Function[1] | true, meta::external::store::elasticsearch::v7::pureToEs::evaluateAsPureExpressionNode_FunctionExpression_1__State_1__Pair_1_) + pair(supportedIfEqual(meta::pure::functions::lang::extractEnumValue_Enumeration_1__String_1__T_1_), reactivateFE_FunctionExpression_1__State_1__Pair_1_) + ,pair(supportedIfEqual(meta::pure::tds::asc_String_1__SortInformation_1_), reactivateFE_FunctionExpression_1__State_1__Pair_1_) + ,pair(supportedIfEqual(meta::pure::tds::desc_String_1__SortInformation_1_), reactivateFE_FunctionExpression_1__State_1__Pair_1_) + ,pair(supportedIfEqual(meta::pure::tds::agg_String_1__FunctionDefinition_1__FunctionDefinition_1__AggregateValue_1_), reactivateFE_FunctionExpression_1__State_1__Pair_1_) + // catch all + ,pair({x: Function[1], req: State[1] | $req.inFilter}, evaluateAsPureExpressionNode_FunctionExpression_1__State_1__Pair_1_) + ,pair({x: Function[1], req: State[1] | $req.inProject}, passthruForPainlessExpression_FunctionExpression_1__State_1__Pair_1_) ]; } function meta::external::store::elasticsearch::v7::pureToEs::reactivateFE(fe: FunctionExpression[1], req: State[1]): Pair, State>[1] { + $req.debug(|'Reactivating FE: ' + $fe->printValueSpecification('')); pair($fe->cast(@FunctionExpression)->reactivate($req.sq.inScopeVars)->list(), $req); } +function meta::external::store::elasticsearch::v7::pureToEs::passthruForPainlessExpression(fe: FunctionExpression[1], req: State[1]): Pair, State>[1] +{ + $req.debug(|'Passthru for painless: ' + $fe->printValueSpecification('')); + assert($req.inProject, |'Evaluation as runtime mapping expression only supported on project context'); + pair(list($fe), $req); +} + function meta::external::store::elasticsearch::v7::pureToEs::evaluateAsPureExpressionNode(fe: FunctionExpression[1], req: State[1]): Pair, State>[1] { + $req.debug(|'Converting to pure expression node: ' + $fe->printValueSpecification('')); + assert($req.inFilter, |'Evaluation as pure expression only supported on filter context'); let type = $fe.func->functionReturnType(); let multiplicity = $fe.func->functionReturnMultiplicity(); - // todo any validation to prevent compilation errors?? - // let variables = $fe->findVariableExpressionsInValueSpecification(); - - let expression = $fe->printFunctionExpression(''); - let codeHash = $expression->hash(HashType.SHA256); - let charToIntMap = newMap([ - pair('0', 0), pair('1', 1), pair('2', 2), pair('3', 3), - pair('4', 4), pair('5', 5), pair('6', 6), pair('7', 7), - pair('8', 8), pair('9', 9), pair('a', 10), pair('b', 11), - pair('c', 12), pair('d', 13), pair('e', 14), pair('f', 15) - ]); - let prime = floor(pow(2, 31) - 1); - let varName = '@' + $codeHash->toLower()->chunk(1)->fold({c, h | (31 * $h) + $charToIntMap->get($c)->toOne() + 47}, 0)->mod($prime)->toString(); + let varName = '@planVariable' + $req.counter->toString(); let platformNode = processValueSpecification($fe, ^PlatformPlanGenerationState(inScopeVars = $req.sq.inScopeVars, exeCtx = $req.exeCtx), $req.extensions, $req.debug) - ->toOne('Expression currently not supported: ' + $expression); + ->toOne('Expression currently not supported: ' + $fe->printFunctionExpression('')); let allocNode = ^AllocationExecutionNode(resultType = $platformNode.resultType, varName = $varName, executionNodes = $platformNode); pair( list(^PlanVarPlaceHolder(type = $platformNode.resultType.type, name = $varName, multiplicity = $fe.func->functionReturnMultiplicity())), - ^$req(extraNodes = $req.extraNodes->concatenate($allocNode)) + ^$req(extraNodes = $req.extraNodes->concatenate($allocNode), counter = $req.counter + 1) ); } -function meta::external::store::elasticsearch::v7::pureToEs::supportedAggregationFunctions(): Pair[1]->Boolean[1]}>, Function<{FunctionExpression[1], String[1]->AggregationContainer[1]}>>[*] +function meta::external::store::elasticsearch::v7::pureToEs::supportedAggregationFunctions(): Pair[1],State[1]->Boolean[1]}>, Function<{FunctionExpression[1],String[1]->AggregationContainer[1]}>>[*] { let supported = [ - pair(x: Function[1] | $x == meta::pure::functions::math::sum_Integer_MANY__Integer_1_, {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(sum = ^SumAggregation(field = $y->literal()))}) - ,pair(x: Function[1] | $x == meta::pure::functions::math::sum_Float_MANY__Float_1_, {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(sum = ^SumAggregation(field = $y->literal()))}) - ,pair(x: Function[1] | $x == meta::pure::functions::math::sum_Number_MANY__Number_1_, {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(sum = ^SumAggregation(field = $y->literal()))}) + pair(supportedIfEqual(meta::pure::functions::math::sum_Integer_MANY__Integer_1_), {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(sum = ^SumAggregation(field = $y->literal()))}) + ,pair(supportedIfEqual(meta::pure::functions::math::sum_Float_MANY__Float_1_), {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(sum = ^SumAggregation(field = $y->literal()))}) + ,pair(supportedIfEqual(meta::pure::functions::math::sum_Number_MANY__Number_1_), {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(sum = ^SumAggregation(field = $y->literal()))}) - ,pair(x: Function[1] | $x == meta::pure::functions::math::max_Integer_MANY__Integer_$0_1$_, {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(max = ^MaxAggregation(field = $y->literal()))}) - ,pair(x: Function[1] | $x == meta::pure::functions::math::max_Float_MANY__Float_$0_1$_, {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(max = ^MaxAggregation(field = $y->literal()))}) - ,pair(x: Function[1] | $x == meta::pure::functions::math::max_Number_MANY__Number_$0_1$_, {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(max = ^MaxAggregation(field = $y->literal()))}) + ,pair(supportedIfEqual(meta::pure::functions::math::max_Integer_MANY__Integer_$0_1$_), {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(max = ^MaxAggregation(field = $y->literal()))}) + ,pair(supportedIfEqual(meta::pure::functions::math::max_Float_MANY__Float_$0_1$_), {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(max = ^MaxAggregation(field = $y->literal()))}) + ,pair(supportedIfEqual(meta::pure::functions::math::max_Number_MANY__Number_$0_1$_), {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(max = ^MaxAggregation(field = $y->literal()))}) - ,pair(x: Function[1] | $x == meta::pure::functions::math::min_Integer_MANY__Integer_$0_1$_, {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(min = ^MinAggregation(field = $y->literal()))}) - ,pair(x: Function[1] | $x == meta::pure::functions::math::min_Float_MANY__Float_$0_1$_, {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(min = ^MinAggregation(field = $y->literal()))}) - ,pair(x: Function[1] | $x == meta::pure::functions::math::min_Number_MANY__Number_$0_1$_, {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(min = ^MinAggregation(field = $y->literal()))}) + ,pair(supportedIfEqual(meta::pure::functions::math::min_Integer_MANY__Integer_$0_1$_), {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(min = ^MinAggregation(field = $y->literal()))}) + ,pair(supportedIfEqual(meta::pure::functions::math::min_Float_MANY__Float_$0_1$_), {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(min = ^MinAggregation(field = $y->literal()))}) + ,pair(supportedIfEqual(meta::pure::functions::math::min_Number_MANY__Number_$0_1$_), {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(min = ^MinAggregation(field = $y->literal()))}) - ,pair(x: Function[1] | $x == meta::pure::functions::math::average_Integer_MANY__Float_1_, {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(avg = ^AverageAggregation(field = $y->literal()))}) - ,pair(x: Function[1] | $x == meta::pure::functions::math::average_Float_MANY__Float_1_, {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(avg = ^AverageAggregation(field = $y->literal()))}) - ,pair(x: Function[1] | $x == meta::pure::functions::math::average_Number_MANY__Float_1_, {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(avg = ^AverageAggregation(field = $y->literal()))}) + ,pair(supportedIfEqual(meta::pure::functions::math::average_Integer_MANY__Float_1_), {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(avg = ^AverageAggregation(field = $y->literal()))}) + ,pair(supportedIfEqual(meta::pure::functions::math::average_Float_MANY__Float_1_), {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(avg = ^AverageAggregation(field = $y->literal()))}) + ,pair(supportedIfEqual(meta::pure::functions::math::average_Number_MANY__Float_1_), {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(avg = ^AverageAggregation(field = $y->literal()))}) - ,pair(x: Function[1] | $x == meta::pure::functions::collection::count_Any_MANY__Integer_1_, {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(value_count = ^ValueCountAggregation(field = $y->literal()))}) + ,pair(supportedIfEqual(meta::pure::functions::collection::count_Any_MANY__Integer_1_), {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(value_count = ^ValueCountAggregation(field = $y->literal()))}) ]; } @@ -1107,7 +1176,9 @@ function meta::external::store::elasticsearch::v7::pureToEs::literalOrExpression date: Date[1] | $date->toString()->literal(), var: VariableExpression[1] | expression(^PlanVarPlaceHolder(name = $var.name, type = $var.genericType.rawType->toOne(), multiplicity = $var.multiplicity), $supportZeroMult), planVar: PlanVarPlaceHolder[1] | $planVar->expression($supportZeroMult), + enum: Enum[1] | $enum->toString()->literal(), none: Any[0] | [], + a: Any[1] | fail(|'not supported type: ' + $a->type()->elementToPath())->literal(), mult: Any[*] | $mult->map(x | $x->literalOrExpression($supportZeroMult)); ]); } @@ -1154,4 +1225,400 @@ function meta::external::store::elasticsearch::v7::pureToEs::varFreemarkerExpres | '${' + $var.name + $toJson + '}' )); +} + +function meta::external::store::elasticsearch::v7::pureToEs::toRuntimeMapping(vs: FunctionExpression[1], field: DocValueResultPath[1], initReq: State[1]): State[1] +{ + let p = processPainless($vs, ^$initReq(inProject = false, inFilter = true)); + + let script = $p.first; + let req = $p.second; + + let type = $field.property->match([ + b: BooleanProperty[1] | RuntimeFieldType._boolean, + k: KeywordProperty[1] | RuntimeFieldType.keyword, + l: LongNumberProperty[1] | RuntimeFieldType._long, + d: DoubleNumberProperty[1] | RuntimeFieldType._double, + b: DateProperty[1] | RuntimeFieldType.date + ]); + + let toEpochMillis = if ($type == RuntimeFieldType.date, |'.toInstant().toEpochMilli()', |''); + + let emittingScript = ^$script(source = 'emit(%s%s)'->format([$script.source.value->toOne(), $toEpochMillis])->literal()); + + let format = painlessDateFunctionsFormat($vs.func)->literal(); + + let newField = pair($field.path(), ^RuntimeField(script = ^Script(inline = $emittingScript), format = $format, type = $type)); + + let search = $req.search; + let fields = $search.runtime_mappings->map(x | $x->keyValues()); + + let newSearch = ^$search(runtime_mappings = newMap($fields->concatenate($newField))); + ^$req(search = $newSearch, inProject = $initReq.inProject, inFilter = $initReq.inFilter); +} + +function meta::external::store::elasticsearch::v7::pureToEs::painlessParameter(req: State[1]): Pair[1] +{ + pair('param' + $req.counter->toString(), ^$req(counter = $req.counter + 1)); +} + +function meta::external::store::elasticsearch::v7::pureToEs::processPainless(vs: ValueSpecification[1], initReq: State[1]): Pair[1] +{ + $vs->match([ + fe: FunctionExpression[1] | $initReq.supportedForPainlessScriptFunctions->findAndEvalSupportedFunction($fe, $initReq, $initReq), + iv: InstanceValue[1] | + $iv.values->match([ + f: FunctionDefinition[1] | $f.expressionSequence->at(0)->processPainless($initReq), + any: Any[1] | $any->processPainlessScalarValue($initReq) + ]) + ]); +} + +function meta::external::store::elasticsearch::v7::pureToEs::processPainlessScalarValue(any: Any[1], req: State[1]): Pair[1] +{ + let value = $any->literalOrExpression(false)->toOne(); + + let param = painlessParameter($req); + let script = 'params[\'%s\']'->format($param.first); + + pair(^InlineScript(source = $script->literal(), params = newMap(pair($param.first, $value))), $param.second); +} + +function meta::external::store::elasticsearch::v7::pureToEs::painlessExtractField(tdsESDetail: TDSESDetail[1]): String[1] +{ + $tdsESDetail.resultPath.property->match([ + text: TextProperty[1] | 'params[\'_source\'][\'%s\']', + any: Any[1] | 'doc[\'%s\'].value'; + ])->format($tdsESDetail.path()); +} + +function meta::external::store::elasticsearch::v7::pureToEs::processPainlessEnumValue(fe: FunctionExpression[1], req: State[1]): Pair[1] +{ + $fe.parametersValues->at(1)->processPainless($req); +} + +function meta::external::store::elasticsearch::v7::pureToEs::processPainlessIsEmpty(fe: FunctionExpression[1], initReq: State[1]): Pair[1] +{ + let fieldPair = if ($fe.func->instanceOf(QualifiedProperty), + |$fe->qualifiedPropertyToTDSESDetail($initReq), + |$fe.parametersValues->at(0)->extractSimpleValue($initReq) + ); + let field = $fieldPair.first.values->cast(@TDSESDetail)->toOne('isEmpty only works on tds columns for now'); + let req = $fieldPair.second; + + let script = $field.resultPath.property->match([ + text: TextProperty[1] | 'params[\'_source\'][\'%s\'] == null', + any: Any[1] | 'doc[\'%s\'].size() == 0'; + ])->format($field.path()); + + pair(^InlineScript(source = $script->literal(), params = newMap([])), $req); +} + +function meta::external::store::elasticsearch::v7::pureToEs::processPainlessIsNotEmpty(fe: FunctionExpression[1], initReq: State[1]): Pair[1] +{ + let fieldPair = if ($fe.func->instanceOf(QualifiedProperty), + |$fe->qualifiedPropertyToTDSESDetail($initReq), + |$fe.parametersValues->at(0)->extractSimpleValue($initReq) + ); + + let field = $fieldPair.first.values->cast(@TDSESDetail)->toOne('isNotEmpty only works on tds columns for now'); + let req = $fieldPair.second; + + let script = $field.resultPath.property->match([ + text: TextProperty[1] | 'params[\'_source\'][\'%s\'] != null', + any: Any[1] | 'doc[\'%s\'].size() != 0'; + ])->format($field.path()); + + pair(^InlineScript(source = $script->literal(), params = newMap([])), $req); +} + +function meta::external::store::elasticsearch::v7::pureToEs::processPainlessBooleanComparison(fe: FunctionExpression[1], initReq: State[1]): Pair[1] +{ + let funcName = $fe.func.functionName->toOne(); + let maybeOperation = [ + pair('equal', '=='), + pair('lessThanEqual', '<='), + pair('lessThan', '<'), + pair('greaterThanEqual', '>='), + pair('greaterThan', '>') + ]->filter(x | $x.first == $funcName).second->toOne('Boolean comparison not supported: ' + $funcName); + + let leftSidePair = $fe.parametersValues->at(0)->extractSimpleValue($initReq); + let leftSide = $leftSidePair.first.values->toOne(); + + let rightSidePair = $fe.parametersValues->at(1)->extractSimpleValue($leftSidePair.second); + let rightSide = $rightSidePair.first.values->toOne(); + + let inputs = if($leftSide->size() == 1 && $leftSide->toOne()->instanceOf(TDSESDetail), + |pair($leftSide->toOne()->cast(@TDSESDetail), list($rightSide)), + | + assert($rightSide->size() == 1 && $rightSide->toOne()->instanceOf(TDSESDetail), 'should include an index property'); + pair($rightSide->toOne()->cast(@TDSESDetail), list($leftSide)); + ); + + let operation = if($rightSide->size() == 1 && $rightSide->toOne()->instanceOf(TDSESDetail) && $maybeOperation != '==', + | + [ + pair('<=', '>='), + pair('<', '>'), + pair('>=', '<='), + pair('>', '<') + ]->filter(x | $x.first == $maybeOperation).second->toOne(), + |$maybeOperation + ); + + let tdsESDetail = $inputs.first; + let value = $inputs.second.values->toOne(); + + let lastReq = $rightSidePair.second; + let param = painlessParameter($lastReq); + + $tdsESDetail.type->in([Date, StrictDate, DateTime])->if( + {| + let newValue = $value->match([ + date: Date[1] | $date->toEpochValue(DurationUnit.MILLISECONDS), + var: VariableExpression[1] | ^PlanVarPlaceHolder(name = $var.name, type = $var.genericType.rawType->toOne(), multiplicity = $var.multiplicity), + pv: PlanVarPlaceHolder[1] | $pv, // $pv.type + any: Any[*] | fail() + ]); + + let paramScript = $newValue->match([ + pv: PlanVarPlaceHolder[1] | + if($pv.type == StrictDate, + |'LocalDate.parse(params[\'%s\']).atTime(0, 0).toInstant(ZoneOffset.UTC).toEpochMilli()', + | if($pv.type == DateTime, + |'ZonedDateTime.parse(params[\'%s\']).toInstant().toEpochMilli()', + | fail('Type not supported on variable - %s:%s'->format([$pv.name, $pv.type->elementToPath()]))->cast(@String) + ) + ), + any: Any[*] | 'params[\'%s\']' + ])->format($param.first); + + let script = '%s.toInstant().toEpochMilli() %s %s'->format([painlessExtractField($tdsESDetail), $operation, $paramScript]); + let literalOrExpression = $newValue->literalOrExpression(true)->toOne(); + pair(^InlineScript(source = $script->literal(), params = newMap(pair($param.first, $literalOrExpression))), $param.second); + }, + {| + let script = '%s %s params[\'%s\']'->format([painlessExtractField($tdsESDetail), $operation, $param.first]); + let literalOrExpression = $value->literalOrExpression(true)->toOne(); + pair(^InlineScript(source = $script->literal(), params = newMap(pair($param.first, $literalOrExpression))), $param.second); + } + ); +} + +function meta::external::store::elasticsearch::v7::pureToEs::processPainlessNot(fe: FunctionExpression[1], initReq: State[1]): Pair[1] +{ + let toNot = processPainless($fe.parametersValues->at(0), $initReq); + let toNotScript = $toNot.first; + let script = '!(%s)'->format($toNotScript.source.value->toOne()); + pair(^$toNotScript(source = $script->literal()), $toNot.second); +} + +function meta::external::store::elasticsearch::v7::pureToEs::processPainlessAndOr(fe: FunctionExpression[1], initReq: State[1]): Pair[1] +{ + let funcName = $fe.func.functionName->toOne(); + let operation = [ + pair('and', '&&'), + pair('or', '||') + ]->filter(x | $x.first == $funcName).second->toOne('Only support and/or but found: ' + $funcName); + + let left = processPainless($fe.parametersValues->at(0), $initReq); + let right = processPainless($fe.parametersValues->at(1), $left.second); + + let leftScript = $left.first.source.value->toOne(); + let rightScript = $right.first.source.value->toOne(); + + let params = $left.first.params->toOne()->keyValues()->concatenate($right.first.params->toOne()->keyValues())->newMap(); + + let script = '(%s) %s (%s)'->format([$leftScript, $operation, $rightScript]); + pair(^InlineScript(source = $script->literal(), params = $params), $right.second); +} + +function meta::external::store::elasticsearch::v7::pureToEs::processPainlessIf(fe: FunctionExpression[1], initReq: State[1]): Pair[1] +{ + let condition = processPainless($fe.parametersValues->at(0), $initReq); + let ifTrue = processPainless($fe.parametersValues->at(1), $condition.second); + let ifFalse = processPainless($fe.parametersValues->at(2), $ifTrue.second); + + let conditionScript = $condition.first.source.value->toOne(); + let ifTrueScript = $ifTrue.first.source.value->toOne(); + let ifFalseScript = $ifFalse.first.source.value->toOne(); + + let params = $condition.first.params->toOne()->keyValues() + ->concatenate($ifTrue.first.params->toOne()->keyValues()) + ->concatenate($ifFalse.first.params->toOne()->keyValues()) + ->newMap(); + + let script = '(%s) ? (%s) : (%s)'->format([$conditionScript, $ifTrueScript, $ifFalseScript]); + pair(^InlineScript(source = $script->literal(), params = $params), $ifFalse.second); +} + +function meta::external::store::elasticsearch::v7::pureToEs::processPainlessDateTruncate(fe: FunctionExpression[1], initReq: State[1], unit: String[1]): Pair[1] +{ + let dateFieldPair = $fe.parametersValues->at(0)->extractSimpleValue($initReq); + + let dateField = $dateFieldPair.first.values->cast(@TDSESDetail)->toOne(); + let req = $dateFieldPair.second; + + let script = '%s.truncatedTo(ChronoUnit.%s)'->format([painlessExtractField($dateField), $unit]); + pair(^InlineScript(source = $script->literal(), params = newMap([])), $req); +} + +function meta::external::store::elasticsearch::v7::pureToEs::processPainlessExtractDatePart(fe: FunctionExpression[1], initReq: State[1], field: String[1]): Pair[1] +{ + let dateFieldPair = $fe.parametersValues->at(0)->extractSimpleValue($initReq); + + let dateField = $dateFieldPair.first.values->cast(@TDSESDetail)->toOne(); + let req = $dateFieldPair.second; + + let script = '%s.getLong(%s)'->format([painlessExtractField($dateField), $field]); + pair(^InlineScript(source = $script->literal(), params = newMap([])), $req); +} + +function meta::external::store::elasticsearch::v7::pureToEs::processPainlessDateFormat(fe: FunctionExpression[1], initReq: State[1], format: String[1]): Pair[1] +{ + let dateFieldPair = $fe.parametersValues->at(0)->extractSimpleValue($initReq); + + let dateField = $dateFieldPair.first.values->cast(@TDSESDetail)->toOne(); + let req = $dateFieldPair.second; + + let param = painlessParameter($req); + + let script = '%s.format(DateTimeFormatter.ofPattern(params[\'%s\']))'->format([painlessExtractField($dateField), $param.first]); + pair(^InlineScript(source = $script->literal(), params = newMap(pair($param.first, $format->literal()))), $param.second); +} + +function meta::external::store::elasticsearch::v7::pureToEs::processPainlessFirstDayOfWeek(fe: FunctionExpression[1], initReq: State[1]): Pair[1] +{ + let dateFieldPair = $fe.parametersValues->at(0)->extractSimpleValue($initReq); + + let dateField = $dateFieldPair.first.values->cast(@TDSESDetail)->toOne(); + let req = $dateFieldPair.second; + + let script = '%s.with(DayOfWeek.MONDAY).truncatedTo(ChronoUnit.DAYS)'->format([painlessExtractField($dateField)]); + pair(^InlineScript(source = $script->literal(), params = newMap([])), $req); +} + +function meta::external::store::elasticsearch::v7::pureToEs::processPainlessFirstDayOfMonth(fe: FunctionExpression[1], initReq: State[1]): Pair[1] +{ + let dateFieldPair = $fe.parametersValues->at(0)->extractSimpleValue($initReq); + + let dateField = $dateFieldPair.first.values->cast(@TDSESDetail)->toOne(); + let req = $dateFieldPair.second; + + let script = '%s.with(ChronoField.DAY_OF_MONTH, 1).truncatedTo(ChronoUnit.DAYS)'->format(painlessExtractField($dateField)); + pair(^InlineScript(source = $script->literal(), params = newMap([])), $req); +} + +function meta::external::store::elasticsearch::v7::pureToEs::processPainlessFirstDayOfQuarter(fe: FunctionExpression[1], initReq: State[1]): Pair[1] +{ + let dateFieldPair = $fe.parametersValues->at(0)->extractSimpleValue($initReq); + + let dateField = $dateFieldPair.first.values->cast(@TDSESDetail)->toOne(); + let req = $dateFieldPair.second; + + let painlessField = $dateField->painlessExtractField(); + let script = '%s.with(ChronoField.MONTH_OF_YEAR, (%s.get(IsoFields.QUARTER_OF_YEAR) * 3) - 2).with(ChronoField.DAY_OF_MONTH, 1).truncatedTo(ChronoUnit.DAYS)'->format([$painlessField, $painlessField]); + pair(^InlineScript(source = $script->literal(), params = newMap([])), $req); +} + +function meta::external::store::elasticsearch::v7::pureToEs::painlessDateFunctionsFormat(func: Function[1]): String[0..1] +{ + painlessDateSupportedFunctions()->filter(p | $p.first == $func).second.format->first(); +} + +function meta::external::store::elasticsearch::v7::pureToEs::painlessDateSupportedFunctions(): Pair, PainlessDateSupportedFunction>[*] +{ + [ + pair(datePart_Date_1__Date_1_, + painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessDateTruncate($fe, $req, 'DAYS')}, 'yyyy-MM-dd')) + ,pair(firstMillisecondOfSecond_Date_1__DateTime_1_, + painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessDateTruncate($fe, $req, 'SECONDS')}, 'yyyy-MM-dd\'T\'HH:mm:ss.SSSZ')) + ,pair(firstSecondOfMinute_Date_1__DateTime_1_, + painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessDateTruncate($fe, $req, 'MINUTES')}, 'yyyy-MM-dd\'T\'HH:mm:ssZ')) + ,pair(firstMinuteOfHour_Date_1__DateTime_1_, + painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessDateTruncate($fe, $req, 'HOURS')}, 'yyyy-MM-dd\'T\'HH:mmZ')) + ,pair(firstHourOfDay_Date_1__DateTime_1_, + painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessDateTruncate($fe, $req, 'DAYS')}, 'yyyy-MM-dd\'T\'HH')) + + ,pair(firstDayOfMonth_Date_1__Date_1_, + painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessFirstDayOfMonth($fe, $req)}, 'yyyy-MM-dd')) + ,pair(firstDayOfWeek_Date_1__Date_1_, + painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessFirstDayOfWeek($fe, $req)}, 'yyyy-MM-dd')) + ,pair(firstDayOfQuarter_Date_1__StrictDate_1_, + painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessFirstDayOfQuarter($fe, $req)}, 'yyyy-MM-dd')) + + ,pair(year_Date_1__Integer_1_, + painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessExtractDatePart($fe, $req, 'ChronoField.YEAR')}, [])) + ,pair(weekOfYear_Date_1__Integer_1_, + painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessExtractDatePart($fe, $req, 'IsoFields.WEEK_OF_WEEK_BASED_YEAR')}, [])) + + ,pair(monthNumber_Date_1__Integer_1_, + painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessExtractDatePart($fe, $req, 'ChronoField.MONTH_OF_YEAR')}, [])) + ,pair(month_Date_1__Month_1_, + painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessDateFormat($fe, $req, 'MMMM')}, [])) + + ,pair(quarterNumber_Date_1__Integer_1_, + painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessExtractDatePart($fe, $req, 'IsoFields.QUARTER_OF_YEAR')}, [])) + ,pair(quarter_Date_1__Quarter_1_, + painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessDateFormat($fe, $req, '\'Q\'q')}, [])) + + ,pair(dayOfWeekNumber_Date_1__Integer_1_, + painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessExtractDatePart($fe, $req, 'ChronoField.DAY_OF_WEEK')}, [])) + ,pair(dayOfWeek_Date_1__DayOfWeek_1_, + painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessDateFormat($fe, $req, 'EEEE')}, [])) + ] +} + +function meta::external::store::elasticsearch::v7::pureToEs::painlessDateSupportedFunction(func: Function<{FunctionExpression[1],State[1]->Pair[1]}>[1], format: String[0..1]): PainlessDateSupportedFunction[1] +{ + ^PainlessDateSupportedFunction( + processor = $func, + format = $format + ) +} + +Class meta::external::store::elasticsearch::v7::pureToEs::PainlessDateSupportedFunction +{ + processor: Function<{FunctionExpression[1],State[1]->Pair[1]}>[1]; + format: String[0..1]; +} + +function meta::external::store::elasticsearch::v7::pureToEs::supportedForPainlessScriptFunctions(): Pair[1],State[1]->Boolean[1]}>, Function<{FunctionExpression[1],State[1]->Pair[1]}>>[*] +{ + let supported = [ + pair(supportedIfEqual(extractEnumValue_Enumeration_1__String_1__T_1_), processPainlessEnumValue_FunctionExpression_1__State_1__Pair_1_) + + ,pair(supportedIfEqual(isEmpty_Any_$0_1$__Boolean_1_), processPainlessIsEmpty_FunctionExpression_1__State_1__Pair_1_) + ,pair(supportedIfEqual(isNotEmpty_Any_$0_1$__Boolean_1_), processPainlessIsNotEmpty_FunctionExpression_1__State_1__Pair_1_) + + ,pair({x: Function[1], req: State[1] | $x->instanceOf(QualifiedProperty) && $x->cast(@QualifiedProperty).name == 'isNull'}, + processPainlessIsEmpty_FunctionExpression_1__State_1__Pair_1_) + ,pair({x: Function[1], req: State[1] | $x->instanceOf(QualifiedProperty) && $x->cast(@QualifiedProperty).name == 'isNotNull'}, + processPainlessIsNotEmpty_FunctionExpression_1__State_1__Pair_1_) + + + ,pair(supportedIfEqual(equal_Any_MANY__Any_MANY__Boolean_1_), processPainlessBooleanComparison_FunctionExpression_1__State_1__Pair_1_) + ,pair(supportedIfEqual(not_Boolean_1__Boolean_1_), processPainlessNot_FunctionExpression_1__State_1__Pair_1_) + + ,pair(supportedIfEqual(or_Boolean_1__Boolean_1__Boolean_1_), processPainlessAndOr_FunctionExpression_1__State_1__Pair_1_) + ,pair(supportedIfEqual(and_Boolean_1__Boolean_1__Boolean_1_), processPainlessAndOr_FunctionExpression_1__State_1__Pair_1_) + + ,pair(supportedIfEqual(greaterThan_Number_1__Number_1__Boolean_1_), processPainlessBooleanComparison_FunctionExpression_1__State_1__Pair_1_) + ,pair(supportedIfEqual(greaterThanEqual_Number_1__Number_1__Boolean_1_), processPainlessBooleanComparison_FunctionExpression_1__State_1__Pair_1_) + + ,pair(supportedIfEqual(greaterThan_Date_1__Date_1__Boolean_1_), processPainlessBooleanComparison_FunctionExpression_1__State_1__Pair_1_) + ,pair(supportedIfEqual(greaterThanEqual_Date_1__Date_1__Boolean_1_), processPainlessBooleanComparison_FunctionExpression_1__State_1__Pair_1_) + + ,pair(supportedIfEqual(lessThan_Number_1__Number_1__Boolean_1_), processPainlessBooleanComparison_FunctionExpression_1__State_1__Pair_1_) + ,pair(supportedIfEqual(lessThanEqual_Number_1__Number_1__Boolean_1_), processPainlessBooleanComparison_FunctionExpression_1__State_1__Pair_1_) + + ,pair(supportedIfEqual(lessThan_Date_1__Date_1__Boolean_1_), processPainlessBooleanComparison_FunctionExpression_1__State_1__Pair_1_) + ,pair(supportedIfEqual(lessThanEqual_Date_1__Date_1__Boolean_1_), processPainlessBooleanComparison_FunctionExpression_1__State_1__Pair_1_) + + ,pair(supportedIfEqual(if_Boolean_1__Function_1__Function_1__T_m_), processPainlessIf_FunctionExpression_1__State_1__Pair_1_) + + ]->concatenate( + painlessDateSupportedFunctions()->map(x | pair(supportedIfEqual($x.first), $x.second.processor)) + ); } \ No newline at end of file diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/functions/specification_utils.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/functions/specification_utils.pure index 1399ba01a2e..04e1782db40 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/functions/specification_utils.pure +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/functions/specification_utils.pure @@ -199,4 +199,24 @@ function <> meta::external::store::elasticsearch::v7::specification:: ]; assertJsonStringsEqual($expected->meta::json::toJSON(), $actual->meta::json::toJSON()); +} + +function meta::external::store::elasticsearch::v7::specification::utils::property::defaultRuntimePropertyForPureType(type: DataType[1]): PropertyBase[1] +{ + if ($type == String || $type->_subTypeOf(Enum), + | ^KeywordProperty(), + | if ($type == Integer, + | ^LongNumberProperty(), + | if ($type == Float, + | ^DoubleNumberProperty(), + | if ($type == Boolean, + | ^BooleanProperty(), + | if ($type == Date || $type == DateTime || $type == StrictDate, + | ^DateProperty(), + | fail(|'Datatype not supported for runtime mapping: ' + $type->elementToPath())->cast(@PropertyBase) + ) + ) + ) + ) + ) } \ No newline at end of file diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/test/shared/ElasticsearchCommands.java b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/test/shared/ElasticsearchCommands.java index 843cf393a22..893eb6fa3bf 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/test/shared/ElasticsearchCommands.java +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/test/shared/ElasticsearchCommands.java @@ -74,7 +74,9 @@ private static ElasticsearchContainer createContainer(String imageTag) ElasticsearchContainer container = new ElasticsearchContainer(image); long start = System.currentTimeMillis(); - container.withPassword(getPassword()).start(); + container.withPassword(getPassword()) + .withEnv("xpack.security.enabled", "false") + .start(); LOGGER.info("ES Test cluster for version {} running on {}. Took {}ms to start.", imageTag, container.getHttpHostAddress(), System.currentTimeMillis() - start); return container; } @@ -120,6 +122,7 @@ public static String request(String imageTag, String json) switch (imageTag.charAt(0)) { case '7': + case '8': return requestV7(url, json); default: throw new RuntimeException("Version not supported yet: " + imageTag); diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test.pure index fc0ce310975..c9910fe619f 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test.pure +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test.pure @@ -93,7 +93,7 @@ function meta::external::store::elasticsearch::executionTest::testCase::omdbComm Title = $title, Director = $director, MPAA = $MPAA, - ReleaseDate = format('%t{yyyy-MM-dd hh:mm:ssa}', $releaseDate), + ReleaseDate = format('%t{yyyy-MM-dd hh:mm:ss.SSSa}', $releaseDate), ReleaseDateRaw = $releaseDate, Budget = $budget, Revenue = $revenue, @@ -106,47 +106,47 @@ function meta::external::store::elasticsearch::executionTest::testCase::omdbComm { // at the moment,dates are hard to distinguish between StrictDate or DateTime, hence we are testing using DateTime for now let records = [ - omdbCommonIndexRecord('Iron Man', 'Jon Favreau', 'PG-13', %2008-05-02T00:00:00, 140, 585.8, + omdbCommonIndexRecord('Iron Man', 'Jon Favreau', 'PG-13', %2008-05-02T00:00:00.100, 140, 585.8, 'Tells the story of Tony Stark, a billionaire industrialist and genius inventor who is kidnapped and forced to build a devastating weapon', 'Robert Downey Jr.' ), - omdbCommonIndexRecord('Iron Man 2', 'Jon Favreau', 'PG-13', %2010-04-26T00:00:00, 170, 623.9, + omdbCommonIndexRecord('Iron Man 2', 'Jon Favreau', 'PG-13', %2010-04-26T00:00:00.200, 170, 623.9, 'With the world now aware of his identity as Iron Man, Tony Stark must contend with both his declining health and a vengeful mad man with ties to his father\'s legacy.', 'Robert Downey Jr.' ), - omdbCommonIndexRecord('The Imitation Game', 'Morten Tyldum', 'PG-13', %2014-08-29T00:00:00, 14, 233.5, + omdbCommonIndexRecord('The Imitation Game', 'Morten Tyldum', 'PG-13', %2014-08-29T00:00:00.300, 14, 233.5, 'In 1951, two policemen, Nock and Staehl, investigate the mathematician Alan Turing after an apparent break-in at his home', 'Benedict Cumberbatch' ), - omdbCommonIndexRecord('The Bourne Identity', 'Doug Liman', 'PG-13', %2002-06-06T00:00:00, 60, 214.0, + omdbCommonIndexRecord('The Bourne Identity', 'Doug Liman', 'PG-13', %2002-06-06T00:00:00.400, 60, 214.0, 'Jason Bourne, a man suffering from psychogenic amnesia attempting to discover his identity amidst a clandestine conspiracy within the CIA', 'Matt Damon' ), - omdbCommonIndexRecord('American Gangster', 'Ridley Scott', 'R', %2007-10-19T00:00:00, 100, 266.5, + omdbCommonIndexRecord('American Gangster', 'Ridley Scott', 'R', %2007-10-19T00:00:00.500, 100, 266.5, [], 'Denzel Washington' ), - omdbCommonIndexRecord('Sherlock Holmes: A Game of Shadows', 'Guy Ritchie', [], %2011-12-16T00:00:00, 125, 543.8, + omdbCommonIndexRecord('Sherlock Holmes: A Game of Shadows', 'Guy Ritchie', [], %2011-12-16T00:00:00.600, 125, 543.8, 'Sherlock Holmes is investigating a seemingly unrelated series of crimes around Europe, believing them all connected to Professor Moriarty', 'Robert Downey Jr.' ), - omdbCommonIndexRecord('Ghostbusters', 'Ivan Reitman', 'PG', %1984-06-08T00:00:00, 25, 295.2, + omdbCommonIndexRecord('Ghostbusters', 'Ivan Reitman', 'PG', %1984-06-08T00:00:00.700, 25, 295.2, 'Three parapsychologists forced out of their university funding set up shop as a unique ghost removal service in New York City, attracting frightened yet skeptical customers.', 'Bill Murray' ), - omdbCommonIndexRecord('The Hitchhiker\'s Guide to the Galaxy', 'Garth Jennings', [], %2005-04-28T00:00:00, 45, 104.5, + omdbCommonIndexRecord('The Hitchhiker\'s Guide to the Galaxy', 'Garth Jennings', [], %2005-04-28T00:00:00.800, 45, 104.5, 'Mere seconds before the Earth is to be demolished by an alien construction crew, journeyman Arthur Dent is swept off the planet by his friend Ford Prefect, a researcher penning a new edition of "The Hitchhiker\'s Guide to the Galaxy."', 'Martin Freeman' ), - omdbCommonIndexRecord('Inspector Gadget', 'David Kellogg', [], %1999-07-23T00:00:00, 75, 134.4, + omdbCommonIndexRecord('Inspector Gadget', 'David Kellogg', [], %1999-07-23T00:00:00.900, 75, 134.4, 'A security guard\'s dreams come true when he is selected to be transformed into a cybernetic police officer.', 'Don Adams' ), - omdbCommonIndexRecord('The Great Gatsby', 'Baz Luhrmann', [], %2013-05-01T00:00:00, 105, 353.6, + omdbCommonIndexRecord('The Great Gatsby', 'Baz Luhrmann', [], %2013-05-01T00:00:00.000, 105, 353.6, 'The film follows the life and times of millionaire Jay Gatsby and his neighbor Nick Carraway, who recounts his encounter with Gatsby at the height of the Roaring Twenties on Long Island in New York.', 'Leonardo DiCaprio' ), - omdbCommonIndexRecord('Garfield 2', 'Tim Hill', [], %2006-06-16T00:00:00, 60, 143.3, + omdbCommonIndexRecord('Garfield 2', 'Tim Hill', [], %2006-06-16T00:00:01.000, 60, 143.3, 'Garfield follows Jon to England and receives the royal treatment after he is mistaken for the heir to a grand castle.', 'Bill Murray' ) @@ -242,6 +242,8 @@ function meta::external::store::elasticsearch::executionTest::testCase::tds::run function meta::external::store::elasticsearch::executionTest::testCase::execute(config: TestConfig[1], f: FunctionDefinition[1], vars: Pair[*]): TabularDataSet[1] { + // $f->printFunctionDefinition(' ')->println(); + let resultJson = meta::legend::execute( $f, $vars, @@ -277,14 +279,14 @@ function meta::external::store::elasticsearch::executionTest::testCase::assertTd [ $expected.columns.name->joinStrings('[', ', ', ']'), $actual.columns.name->joinStrings('[', ', ', ']') ] ); - // println($expected.rows.values); - // println($actual.rows.values); - assertEquals($expected.rows->size(), $actual.rows->size(), 'Number of rows are different. Expected %d, got %d', [ $expected.rows->size(), $actual.rows->size() ] ); + // println($expected.rows.values); + // println($actual.rows.values); + let zipped = if ($description->contains('sort('), | $expected.rows->map(r | $expected.columns.name->map(c | $r.get($c))) ->zip($actual.rows->map(r | $actual.columns.name->map(c | $r.get($c)))), @@ -292,13 +294,17 @@ function meta::external::store::elasticsearch::executionTest::testCase::assertTd ->zip($actual->sort($actual.columns.name).rows->map(r | $actual.columns.name->map(c | $r.get($c)))) ); + // $zipped->map(p | $p.first->toString() + ' == ' + $p.second->toString())->println(); + $zipped->forAll(x | assert(comparePrimitives($x.first, $x.second))); } function <> meta::external::store::elasticsearch::executionTest::testCase::comparePrimitives(firstInstance: Any[1], secondInstance: Any[1]): Boolean[1] { $firstInstance->match([ n: Number[1] | assertEqWithinTolerance($n, $secondInstance->cast(@Number), 0.0001), - a: Any[1] | assertEquals($a, $secondInstance)]); + e: Enum[1] | assertEquals($e, extractEnumValue($e->type()->cast(@Enumeration), $secondInstance->cast(@String))), + a: Any[1] | assertEquals($a, $secondInstance) + ]); } function meta::external::store::elasticsearch::executionTest::testCase::asZeroOne(var: T[0..1]): T[0..1] diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_7.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_7.pure index 706a945ad0a..40f3c46203b 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_7.pure +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_7.pure @@ -48,7 +48,7 @@ function <> meta::external::store::elasticsearch::executionTest: ), pair('Director', ^meta::external::store::elasticsearch::v7::metamodel::specification::types::mapping::Property(keyword = ^KeywordProperty())), pair('MPAA', ^meta::external::store::elasticsearch::v7::metamodel::specification::types::mapping::Property(keyword = ^KeywordProperty())), - pair('ReleaseDate', ^meta::external::store::elasticsearch::v7::metamodel::specification::types::mapping::Property(date = ^DateProperty(format = 'yyyy-MM-dd hh:mm:ssa'->literal()))), + pair('ReleaseDate', ^meta::external::store::elasticsearch::v7::metamodel::specification::types::mapping::Property(date = ^DateProperty(format = 'yyyy-MM-dd hh:mm:ss.SSSa'->literal()))), pair('Budget', ^meta::external::store::elasticsearch::v7::metamodel::specification::types::mapping::Property(integer = ^IntegerNumberProperty())), pair('Revenue', ^meta::external::store::elasticsearch::v7::metamodel::specification::types::mapping::Property(_float = ^FloatNumberProperty())), pair('MainActor', ^meta::external::store::elasticsearch::v7::metamodel::specification::types::mapping::Property(object = @@ -77,7 +77,7 @@ function <> meta::external::store::elasticsearch::executionTest: function <> meta::external::store::elasticsearch::executionTest::test::v7::index(name: String[1], records: Any[*]): Any[*] { - let deletIndex = ^DeleteRequest( + let deleteIndex = ^DeleteRequest( index = $name->literal(), ignore_unavailable = true->literal() ); @@ -103,7 +103,7 @@ function <> meta::external::store::elasticsearch::executionTest: ); [ - $deletIndex, + $deleteIndex, $createIndex, $indexData, $countData @@ -121,21 +121,13 @@ function <> meta::external::store::elasticsearch::executionTest: ); } -function <> meta::external::store::elasticsearch::executionTest::test::v7::test_7_8_0(): PureTestCollection[1] +// this test if 7 is fwd compatible for now until we settle on 7 functionality, and create 8 officially... +function <> meta::external::store::elasticsearch::executionTest::test::v7::test_8_6_2(): PureTestCollection[1] { - let testToIgnore = [ - // start multi_term ignore - not supported until 7.12 - meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::sort::testSortOnSingleAggFields_multipleGroupByFields_TestConfig_1__Boolean_1_, - meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::sort::testSortOnSingleAggFields_multipleGroupByFields_withRename_TestConfig_1__Boolean_1_, - meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::sort::testSortOnMultipleAggFields_TestConfig_1__Boolean_1_, - meta::external::store::elasticsearch::executionTest::testCase::tds::groupBy::sort::testSortOnMultipleAggFields_withRename_TestConfig_1__Boolean_1_ - // end multi_term ignore - not supported until 7.12 - ]; - - '7.8.0'->collectTest(x | $x->in($testToIgnore)->not()); + '8.6.2'->collectTest([]); } function <> meta::external::store::elasticsearch::executionTest::test::v7::test_7_17_0(): PureTestCollection[1] { - '7.17.0'->collectTest([]); + '7.17.7'->collectTest([]); } \ No newline at end of file diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_filter_boolean.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_filter_boolean.pure new file mode 100644 index 00000000000..eaba4b2f81b --- /dev/null +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_filter_boolean.pure @@ -0,0 +1,39 @@ +// Copyright 2023 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::pure::test::*; +import meta::external::store::elasticsearch::executionTest::testCase::*; +import meta::external::store::elasticsearch::executionTest::testCase::tds::*; +import meta::external::store::elasticsearch::executionTest::test::*; +import meta::external::store::elasticsearch::executionTest::utils::*; + +function + <> +meta::external::store::elasticsearch::executionTest::testCase::tds::filter::boolean::testFilterUsingBooleanIsNotEmptyField(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x + ->extend(col(x: TDSRow[1] | $x.getNullableString('MPAA')->isNotEmpty(), 'missing mpaa')) + ->filter(x | $x.getBoolean('missing mpaa')) + ); +} + +function + <> +meta::external::store::elasticsearch::executionTest::testCase::tds::filter::boolean::testFilterUsingBooleanIsEmptyField(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x + ->extend(col(x: TDSRow[1] | $x.getNullableString('MPAA')->isEmpty(), 'has mpaa')) + ->filter(x | $x.getBoolean('has mpaa')) + ); +} \ No newline at end of file diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_filter_date.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_filter_date.pure index db32c64f8db..d69e338dd57 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_filter_date.pure +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_filter_date.pure @@ -23,7 +23,7 @@ function {doc.doc = 'Test equal filter on Elasticsearch Keyword property mapping'} meta::external::store::elasticsearch::executionTest::testCase::tds::filter::date::testEqualValueFilter(config:TestConfig[1]):Boolean[1] { - $config->testTdsExpression(x | $x->filter(x | $x.getDate('ReleaseDate') == %1984-06-08T00:00:00+0000)); + $config->testTdsExpression(x | $x->filter(x | $x.getDate('ReleaseDate') == %1984-06-08T00:00:00.700+0000)); } function @@ -31,7 +31,7 @@ function {doc.doc = 'Test equal filter on Elasticsearch Keyword property mapping'} meta::external::store::elasticsearch::executionTest::testCase::tds::filter::date::testNotEqualValueFilter(config:TestConfig[1]):Boolean[1] { - $config->testTdsExpression(x | $x->filter(x | $x.getDate('ReleaseDate') != %1984-06-08T00:00:00+0000)); + $config->testTdsExpression(x | $x->filter(x | $x.getDate('ReleaseDate') != %1984-06-08T00:00:00.700+0000)); } function @@ -63,7 +63,7 @@ function {doc.doc = 'Test greater than equal filter on Elasticsearch Integer property mapping'} meta::external::store::elasticsearch::executionTest::testCase::tds::filter::date::testGreaterThanEqualReversedDate(config:TestConfig[1]):Boolean[1] { - $config->testTdsExpression(x | $x->filter(x | %2010-04-26T00:00:00+0000 >= $x.getDate('ReleaseDate'))); + $config->testTdsExpression(x | $x->filter(x | %2010-04-26T00:00:00.200+0000 >= $x.getDate('ReleaseDate'))); } function @@ -71,7 +71,7 @@ function {doc.doc = 'Test less than filter on Elasticsearch Integer property mapping'} meta::external::store::elasticsearch::executionTest::testCase::tds::filter::date::testLessThanDate(config:TestConfig[1]):Boolean[1] { - $config->testTdsExpression(x | $x->filter(x | $x.getDate('ReleaseDate') < %2010-04-26T00:00:00+0000)); + $config->testTdsExpression(x | $x->filter(x | $x.getDate('ReleaseDate') < %2010-04-26T00:00:00.200+0000)); } function @@ -79,7 +79,7 @@ function {doc.doc = 'Test less than filter on Elasticsearch Integer property mapping'} meta::external::store::elasticsearch::executionTest::testCase::tds::filter::date::testLessThanReversedDate(config:TestConfig[1]):Boolean[1] { - $config->testTdsExpression(x | $x->filter(x | %2010-04-26T00:00:00+0000 < $x.getDate('ReleaseDate'))); + $config->testTdsExpression(x | $x->filter(x | %2010-04-26T00:00:00.200+0000 < $x.getDate('ReleaseDate'))); } function @@ -87,7 +87,7 @@ function {doc.doc = 'Test less than equal filter on Elasticsearch Integer property mapping'} meta::external::store::elasticsearch::executionTest::testCase::tds::filter::date::testLessThanEqualDate(config:TestConfig[1]):Boolean[1] { - $config->testTdsExpression(x | $x->filter(x | $x.getDate('ReleaseDate') <= %2010-04-26T00:00:00+0000)); + $config->testTdsExpression(x | $x->filter(x | $x.getDate('ReleaseDate') <= %2010-04-26T00:00:00.200+0000)); } function @@ -95,7 +95,7 @@ function {doc.doc = 'Test less than equal filter on Elasticsearch Integer property mapping'} meta::external::store::elasticsearch::executionTest::testCase::tds::filter::date::testLessThanEqualReversedDate(config:TestConfig[1]):Boolean[1] { - $config->testTdsExpression(x | $x->filter(x | %2010-04-26T00:00:00+0000 <= $x.getDate('ReleaseDate'))); + $config->testTdsExpression(x | $x->filter(x | %2010-04-26T00:00:00.200+0000 <= $x.getDate('ReleaseDate'))); } function @@ -103,7 +103,7 @@ function {doc.doc = 'Test equal filter on Elasticsearch Keyword property mapping with variable'} meta::external::store::elasticsearch::executionTest::testCase::tds::filter::date::testEqualValueFilter_PureOneVariable(config:TestConfig[1]):Boolean[1] { - let var = %1984-06-08T00:00:00+0000; + let var = %1984-06-08T00:00:00.700+0000; $config->testTdsExpression(x | $x->filter(x | $x.getDate('ReleaseDate') == $var)); } @@ -112,7 +112,7 @@ function {doc.doc = 'Test equal filter on Elasticsearch Keyword property mapping with variable'} meta::external::store::elasticsearch::executionTest::testCase::tds::filter::date::testNotEqualValueFilter_PureOneVariable(config:TestConfig[1]):Boolean[1] { - let var = %1984-06-08T00:00:00+0000; + let var = %1984-06-08T00:00:00.700+0000; $config->testTdsExpression(x | $x->filter(x | $x.getDate('ReleaseDate') != $var)); } @@ -139,7 +139,7 @@ function {doc.doc = 'Test greater than equal filter on Elasticsearch Integer property mapping with variable'} meta::external::store::elasticsearch::executionTest::testCase::tds::filter::date::testGreaterThanEqualDate_PureOneVariable(config:TestConfig[1]):Boolean[1] { - let var = %1984-06-08T00:00:00+0000; + let var = %1984-06-08T00:00:00.700+0000; $config->testTdsExpression(x | $x->filter(x | $x.getDate('ReleaseDate') >= $var)); } @@ -148,7 +148,7 @@ function {doc.doc = 'Test greater than equal filter on Elasticsearch Integer property with variable mapping'} meta::external::store::elasticsearch::executionTest::testCase::tds::filter::date::testGreaterThanEqualReversedDate_PureOneVariable(config:TestConfig[1]):Boolean[1] { - let var = %2010-04-26T00:00:00+0000; + let var = %2010-04-26T00:00:00.200+0000; $config->testTdsExpression(x | $x->filter(x | $var >= $x.getDate('ReleaseDate'))); } @@ -157,7 +157,7 @@ function {doc.doc = 'Test less than filter on Elasticsearch Integer property mapping with variable'} meta::external::store::elasticsearch::executionTest::testCase::tds::filter::date::testLessThanDate_PureOneVariable(config:TestConfig[1]):Boolean[1] { - let var = %2010-04-26T00:00:00+0000; + let var = %2010-04-26T00:00:00.200+0000; $config->testTdsExpression(x | $x->filter(x | $x.getDate('ReleaseDate') < $var)); } @@ -166,7 +166,7 @@ function {doc.doc = 'Test less than filter on Elasticsearch Integer property mapping with variable'} meta::external::store::elasticsearch::executionTest::testCase::tds::filter::date::testLessThanReversedDate_PureOneVariable(config:TestConfig[1]):Boolean[1] { - let var = %2010-04-26T00:00:00+0000; + let var = %2010-04-26T00:00:00.200+0000; $config->testTdsExpression(x | $x->filter(x | $var < $x.getDate('ReleaseDate'))); } @@ -175,7 +175,7 @@ function {doc.doc = 'Test less than equal filter on Elasticsearch Integer property mapping with variable'} meta::external::store::elasticsearch::executionTest::testCase::tds::filter::date::testLessThanEqualDate_PureOneVariable(config:TestConfig[1]):Boolean[1] { - let var = %2010-04-26T00:00:00+0000; + let var = %2010-04-26T00:00:00.200+0000; $config->testTdsExpression(x | $x->filter(x | $x.getDate('ReleaseDate') <= $var)); } @@ -184,6 +184,6 @@ function {doc.doc = 'Test less than equal filter on Elasticsearch Integer property mapping with variable'} meta::external::store::elasticsearch::executionTest::testCase::tds::filter::date::testLessThanEqualReversedDate_PureOneVariable(config:TestConfig[1]):Boolean[1] { - let var = %2010-04-26T00:00:00+0000; + let var = %2010-04-26T00:00:00.200+0000; $config->testTdsExpression(x | $x->filter(x | $var <= $x.getDate('ReleaseDate'))); } \ No newline at end of file diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_filter_enum.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_filter_enum.pure new file mode 100644 index 00000000000..1422ec8c883 --- /dev/null +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_filter_enum.pure @@ -0,0 +1,31 @@ +// Copyright 2023 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::pure::test::*; +import meta::external::store::elasticsearch::executionTest::testCase::*; +import meta::external::store::elasticsearch::executionTest::testCase::tds::*; +import meta::external::store::elasticsearch::executionTest::test::*; +import meta::external::store::elasticsearch::executionTest::utils::*; + + +function + <> + +meta::external::store::elasticsearch::executionTest::testCase::tds::filter::enum::testFilterEnum(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x + ->extend(col(x: TDSRow[1] | $x.getDate('ReleaseDate')->dayOfWeek(), 'dayOfWeek')) + ->filter(x | $x.getEnum('dayOfWeek') == DayOfWeek.Monday) + ); +} \ No newline at end of file diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_filter_expressions.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_filter_expressions.pure index 3ee5fa5f6e3..9f34ed60562 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_filter_expressions.pure +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_filter_expressions.pure @@ -79,7 +79,7 @@ function {doc.doc = 'Test filter date adjust expression'} meta::external::store::elasticsearch::executionTest::testCase::tds::filter::expressions::testAdjustExpression(config:TestConfig[1]):Boolean[1] { - let val = %1984-06-07T00:00:00+0000; + let val = %1984-06-07T00:00:00.700+0000; $config->testTdsExpression(x | $x->filter(x | $x.getDate('ReleaseDate') == adjust($val, 1, DurationUnit.DAYS))); } @@ -104,6 +104,6 @@ function {doc.doc = 'Test filter adjust today expression'} meta::external::store::elasticsearch::executionTest::testCase::tds::filter::expressions::testAdjustTodayExpression(config:TestConfig[1]):Boolean[1] { - let val = -1 * dateDiff(%1984-06-08T00:00:00+0000, now(), DurationUnit.DAYS); - $config->testTdsExpression(x | $x->filter(x | $x.getDate('ReleaseDate') == adjust(parseDate(today()->toString() + 'T00:00:00'), $val, DurationUnit.DAYS))); + let val = -1 * dateDiff(%1984-06-08T00:00:00.700+0000, now(), DurationUnit.DAYS); + $config->testTdsExpression(x | $x->filter(x | $x.getDate('ReleaseDate') == adjust(parseDate(today()->toString() + 'T00:00:00.700'), $val, DurationUnit.DAYS))); } \ No newline at end of file diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_misc.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_misc.pure index 31c15eb79ff..7257c358512 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_misc.pure +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_misc.pure @@ -23,7 +23,7 @@ function {doc.doc = 'Test limit on Elasticsearch'} meta::external::store::elasticsearch::executionTest::testCase::tds::misc::testLimit(config:TestConfig[1]):Boolean[1] { - $config->testTdsExpression(x | $x->sort('_id')->limit(3)); + $config->testTdsExpression(x | $x->sort('Title')->limit(3)); } function @@ -31,32 +31,32 @@ function {doc.doc = 'Test take on Elasticsearch'} meta::external::store::elasticsearch::executionTest::testCase::tds::misc::testTake(config:TestConfig[1]):Boolean[1] { - $config->testTdsExpression(x | $x->sort('_id')->take(3)); + $config->testTdsExpression(x | $x->sort('Title')->take(3)); } -function +function <> - {doc.doc = 'Test drop on Elasticsearch'} + {doc.doc = 'Test drop on Elasticsearch'} meta::external::store::elasticsearch::executionTest::testCase::tds::misc::testDrop(config:TestConfig[1]):Boolean[1] { - $config->testTdsExpression(x | $x->sort('_id')->drop(3)); + $config->testTdsExpression(x | $x->sort('Title')->drop(3)); } -function +function <> - {doc.doc = 'Test drop and limit together on Elasticsearch'} + {doc.doc = 'Test drop and limit together on Elasticsearch'} meta::external::store::elasticsearch::executionTest::testCase::tds::misc::testDropAndLimit(config:TestConfig[1]):Boolean[1] { - $config->testTdsExpression(x | $x->sort('_id')->drop(3)->limit(3)); + $config->testTdsExpression(x | $x->sort('Title')->drop(3)->limit(3)); } -function +function <> - {doc.doc = 'Test limit and drop together on Elasticsearch'} + {doc.doc = 'Test limit and drop together on Elasticsearch'} meta::external::store::elasticsearch::executionTest::testCase::tds::misc::testLimitAndDrop(config:TestConfig[1]):Boolean[1] { - $config->testTdsExpression(x | $x->sort('_id')->limit(4)->drop(3)); - $config->testTdsExpressionReturnsEmpty(x | $x->sort('_id')->limit(3)->drop(3)); + $config->testTdsExpression(x | $x->sort('Title')->limit(4)->drop(3)); + $config->testTdsExpressionReturnsEmpty(x | $x->sort('Title')->limit(3)->drop(3)); } function @@ -64,8 +64,8 @@ function {doc.doc = 'Test slice on Elasticsearch'} meta::external::store::elasticsearch::executionTest::testCase::tds::misc::testSlice(config:TestConfig[1]):Boolean[1] { - $config->testTdsExpression(x | $x->sort('_id')->slice(0, 1)); - $config->testTdsExpression(x | $x->sort('_id')->slice(3, 4)); + $config->testTdsExpression(x | $x->sort('Title')->slice(0, 1)); + $config->testTdsExpression(x | $x->sort('Title')->slice(3, 4)); } function @@ -74,7 +74,7 @@ function meta::external::store::elasticsearch::executionTest::testCase::tds::misc::testLimit_PureOneVariable(config:TestConfig[1]):Boolean[1] { let val = 3; - $config->testTdsExpression(x | $x->sort('_id')->limit($val)); + $config->testTdsExpression(x | $x->sort('Title')->limit($val)); } function @@ -83,7 +83,7 @@ function meta::external::store::elasticsearch::executionTest::testCase::tds::misc::testTake_PureOneVariable(config:TestConfig[1]):Boolean[1] { let val = 3; - $config->testTdsExpression(x | $x->sort('_id')->take($val)); + $config->testTdsExpression(x | $x->sort('Title')->take($val)); } function @@ -92,7 +92,7 @@ function meta::external::store::elasticsearch::executionTest::testCase::tds::misc::testDrop_PureOneVariable(config:TestConfig[1]):Boolean[1] { let val = 3; - $config->testTdsExpression(x | $x->sort('_id')->drop($val)); + $config->testTdsExpression(x | $x->sort('Title')->drop($val)); } function @@ -102,34 +102,34 @@ meta::external::store::elasticsearch::executionTest::testCase::tds::misc::testDr { let var = 3; - $config->testTdsExpression(x | $x->sort('_id')->drop($var)->limit($var)); + $config->testTdsExpression(x | $x->sort('Title')->drop($var)->limit($var)); - $config->testTdsExpression(x | $x->sort('_id')->drop(3)->limit($var)); + $config->testTdsExpression(x | $x->sort('Title')->drop(3)->limit($var)); - $config->testTdsExpression(x | $x->sort('_id')->drop($var)->limit(3)); + $config->testTdsExpression(x | $x->sort('Title')->drop($var)->limit(3)); } -function +function <> - {doc.doc = 'Test limit and drop together on Elasticsearch with variable'} + {doc.doc = 'Test limit and drop together on Elasticsearch with variable'} meta::external::store::elasticsearch::executionTest::testCase::tds::misc::testLimitAndDrop_PureOneVariable(config:TestConfig[1]):Boolean[1] { let var = 4; let var2 = 3; - $config->testTdsExpression(x | $x->sort('_id')->limit($var)->drop($var2)); - $config->testTdsExpressionReturnsEmpty(x | $x->sort('_id')->limit($var2)->drop($var2)); + $config->testTdsExpression(x | $x->sort('Title')->limit($var)->drop($var2)); + $config->testTdsExpressionReturnsEmpty(x | $x->sort('Title')->limit($var2)->drop($var2)); - $config->testTdsExpression(x | $x->sort('_id')->limit(4)->drop($var2)); - $config->testTdsExpressionReturnsEmpty(x | $x->sort('_id')->limit(3)->drop($var2)); + $config->testTdsExpression(x | $x->sort('Title')->limit(4)->drop($var2)); + $config->testTdsExpressionReturnsEmpty(x | $x->sort('Title')->limit(3)->drop($var2)); - $config->testTdsExpression(x | $x->sort('_id')->limit($var)->drop(3)); - $config->testTdsExpressionReturnsEmpty(x | $x->sort('_id')->limit($var2)->drop(3)); + $config->testTdsExpression(x | $x->sort('Title')->limit($var)->drop(3)); + $config->testTdsExpressionReturnsEmpty(x | $x->sort('Title')->limit($var2)->drop(3)); } -function +function <> - {doc.doc = 'Test slice on Elasticsearch with variable'} + {doc.doc = 'Test slice on Elasticsearch with variable'} meta::external::store::elasticsearch::executionTest::testCase::tds::misc::testSlice_PureOneVariable(config:TestConfig[1]):Boolean[1] { let var0 = 0; @@ -138,11 +138,11 @@ meta::external::store::elasticsearch::executionTest::testCase::tds::misc::testSl let var3 = 3; let var4 = 4; - $config->testTdsExpression(x | $x->sort('_id')->slice($var0, $var1)); - $config->testTdsExpression(x | $x->sort('_id')->slice(0, $var1)); - $config->testTdsExpression(x | $x->sort('_id')->slice($var0, 1)); + $config->testTdsExpression(x | $x->sort('Title')->slice($var0, $var1)); + $config->testTdsExpression(x | $x->sort('Title')->slice(0, $var1)); + $config->testTdsExpression(x | $x->sort('Title')->slice($var0, 1)); - $config->testTdsExpression(x | $x->sort('_id')->slice($var3, $var4)); - $config->testTdsExpression(x | $x->sort('_id')->slice(3, $var4)); - $config->testTdsExpression(x | $x->sort('_id')->slice($var3, 4)); + $config->testTdsExpression(x | $x->sort('Title')->slice($var3, $var4)); + $config->testTdsExpression(x | $x->sort('Title')->slice(3, $var4)); + $config->testTdsExpression(x | $x->sort('Title')->slice($var3, 4)); } \ No newline at end of file diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project.pure index 2d221e9c422..201f78cf3cd 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project.pure +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project.pure @@ -18,36 +18,70 @@ import meta::external::store::elasticsearch::executionTest::testCase::tds::*; import meta::external::store::elasticsearch::executionTest::test::*; import meta::external::store::elasticsearch::executionTest::utils::*; +// function +// <> +// {doc.doc = 'Test projection on Elasticsearch with pure constant expressions'} +// meta::external::store::elasticsearch::executionTest::testCase::tds::project::misc::testProjectExpressionConstant(config:TestConfig[1]):Boolean[1] +// { +// $config->testTdsExpression(x|$x->project([col(x: TDSRow[1] | 'Hello World!', 'Bucket')])); +// } + +// function +// <> +// {doc.doc = 'Test projection on Elasticsearch with pure constant expressions'} +// meta::external::store::elasticsearch::executionTest::testCase::tds::project::misc::testProjectExpressionConstantWithVariable(config:TestConfig[1]):Boolean[1] +// { +// let val = 12345; +// $config->testTdsExpression(x|$x->project([col(x: TDSRow[1] | $val, 'Bucket')])); +// } function <> - {doc.doc = 'Test projection on Elasticsearch Keyword property mapping'} -meta::external::store::elasticsearch::executionTest::testCase::tds::project::testProjectKeyword(config:TestConfig[1]):Boolean[1] + {doc.doc = 'Test projection on Elasticsearch with pure if expressions'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::misc::testProjectExpressionIf(config:TestConfig[1]):Boolean[1] { - $config->testTdsExpression(x|$x->project([col(x: TDSRow[1] | $x.getString('Title'), 'Hello')])); + $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | if($x.getDate('ReleaseDate') >= %1990-01-01, |'90s and newer', |'Older than 90s'), 'Bucket')])); } - function <> - {doc.doc = 'Test projection on Elasticsearch Integer property mapping'} -meta::external::store::elasticsearch::executionTest::testCase::tds::project::testProjectInteger(config:TestConfig[1]):Boolean[1] + {doc.doc = 'Test projection on Elasticsearch with pure if expressions'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::misc::testProjectExpressionIfWithVariables(config:TestConfig[1]):Boolean[1] { - $config->testTdsExpression(x|$x->project([col(x: TDSRow[1] | $x.getInteger('Budget'), 'Hello')])); + let var = %1990-01-01; + $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | if($x.getDate('ReleaseDate') >= $var, |'90s and newer', |'Older than 90s'), 'Bucket')])); } function <> - {doc.doc = 'Test projection on Elasticsearch Float property mapping'} -meta::external::store::elasticsearch::executionTest::testCase::tds::project::testProjectFloat(config:TestConfig[1]):Boolean[1] + {doc.doc = 'Test projection on Elasticsearch with pure nested if expressions'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::misc::testProjectExpressionNestedIf(config:TestConfig[1]):Boolean[1] { - $config->testTdsExpression(x|$x->project([col(x: TDSRow[1] | $x.getFloat('Revenue'), 'Hello')])); + $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | + if($x.getDate('ReleaseDate') < %1990-01-01, + |'Oldest', + |if($x.getDate('ReleaseDate') < %2000-01-01, + |'Older', + |if($x.getDate('ReleaseDate') < %2010-01-01, + |'Newer', + |'Newest'))), 'Bucket')])); } function <> - {doc.doc = 'Test projection on Elasticsearch Date property mapping'} -meta::external::store::elasticsearch::executionTest::testCase::tds::project::testProjectDate(config:TestConfig[1]):Boolean[1] + {doc.doc = 'Test projection on Elasticsearch with pure nested if expressions'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::misc::testProjectExpressionNestedIfWithVariables(config:TestConfig[1]):Boolean[1] { - $config->testTdsExpression(x|$x->project([col(x: TDSRow[1] | $x.getDate('ReleaseDate'), 'Hello')])); + let var1 = %1990-01-01; + let var2 = %2000-01-01; + let var3 = %2010-01-01; + + $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | + if($x.getDate('ReleaseDate') < $var1, + |'Oldest', + |if($x.getDate('ReleaseDate') < $var2, + |'Older', + |if($x.getDate('ReleaseDate') < $var3, + |'Newer', + |'Newest'))), 'Bucket')])); } \ No newline at end of file diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project_boolean.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project_boolean.pure new file mode 100644 index 00000000000..f2ec3195bd2 --- /dev/null +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project_boolean.pure @@ -0,0 +1,87 @@ +// Copyright 2023 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::pure::test::*; +import meta::external::store::elasticsearch::executionTest::testCase::*; +import meta::external::store::elasticsearch::executionTest::testCase::tds::*; +import meta::external::store::elasticsearch::executionTest::test::*; +import meta::external::store::elasticsearch::executionTest::utils::*; + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure isEmpty expressions'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::boolean::testProjectExpressionIsEmpty(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | $x.getNullableString('MPAA')->isEmpty(), 'has mpaa')])); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure TdsisNull expressions'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::boolean::testProjectExpressionTdsIsNull(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | $x.isNull('MPAA'), 'has mpaa')])); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure isNotEmpty expressions'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::boolean::testProjectExpressionIsNotEmpty(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | $x.getNullableString('MPAA')->isNotEmpty(), 'missing mpaa')])); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure TdsisNotNull expressions'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::boolean::testProjectExpressionTdsIsNotEmpty(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | $x.isNotNull('MPAA'), 'missing mpaa')])); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure && expressions'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::boolean::testProjectExpressionAnd(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | ($x.getDate('ReleaseDate') >= %1990-01-01) && ($x.getDate('ReleaseDate') < %2000-01-01), '90s')])); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure && expressions'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::boolean::testProjectExpressionAndWithVariables(config:TestConfig[1]):Boolean[1] +{ + let var1 = %1990-01-01; + let var2 = %2000-01-01; + $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | ($x.getDate('ReleaseDate') >= $var1) && ($x.getDate('ReleaseDate') < $var2), '90s')])); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with || expressions'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::boolean::testProjectExpressionOr(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | ($x.getDate('ReleaseDate') < %1990-01-01) || ($x.getDate('ReleaseDate') >= %2000-01-01), 'Not 90s')])); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure || expressions'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::boolean::testProjectExpressionOrWithVariables(config:TestConfig[1]):Boolean[1] +{ + let var1 = %1990-01-01; + let var2 = %2000-01-01; + $config->testTdsExpression(x|$x->extend([col(x: TDSRow[1] | ($x.getDate('ReleaseDate') < $var1) && ($x.getDate('ReleaseDate') >= $var2), 'Not 90s')])); +} \ No newline at end of file diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project_date.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project_date.pure new file mode 100644 index 00000000000..d14eb85760e --- /dev/null +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project_date.pure @@ -0,0 +1,238 @@ +// Copyright 2023 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::pure::test::*; +import meta::external::store::elasticsearch::executionTest::testCase::*; +import meta::external::store::elasticsearch::executionTest::testCase::tds::*; +import meta::external::store::elasticsearch::executionTest::test::*; +import meta::external::store::elasticsearch::executionTest::utils::*; + +function + <> + {doc.doc = 'Test projection on Elasticsearch Date property mapping'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testProjectDate(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->project([col(x: TDSRow[1] | $x.getDate('ReleaseDate'), 'RD')])); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure == expression on date'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testEqualValue(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getDate('ReleaseDate') == %1984-06-08T00:00:00.700+0000, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure != expression on date'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testNotEqualValue(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getDate('ReleaseDate') != %1984-06-08T00:00:00.700+0000, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure > expression on date'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testGreaterThanDate(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getDate('ReleaseDate') > %1985-01-01T00:00:00+0000, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure > expression on date'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testGreaterThanReversedDate(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | %2000-01-01T00:00:00+0000 > $x.getDate('ReleaseDate'), 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure >= expression on date'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testGreaterThanEqualDate(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getDate('ReleaseDate') >= %1984-06-08T00:00:00+0000, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure >= expression on date'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testGreaterThanEqualReversedDate(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | %2010-04-26T00:00:00.200+0000 >= $x.getDate('ReleaseDate'), 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure < expression on date'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testLessThanDate(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getDate('ReleaseDate') < %2010-04-26T00:00:00.200+0000, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure < expression on date'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testLessThanReversedDate(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | %2010-04-26T00:00:00.200+0000 < $x.getDate('ReleaseDate'), 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure <= expression on date'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testLessThanEqualDate(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getDate('ReleaseDate') <= %2010-04-26T00:00:00.200+0000, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure <= expression on date'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testLessThanEqualReversedDate(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | %2010-04-26T00:00:00.200+0000 <= $x.getDate('ReleaseDate'), 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure datePart expression on date'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testProjectDatePart(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend(col(x: TDSRow[1] | $x.getDate('ReleaseDate')->datePart(), 'datePart'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure firstMillisecondOfSecond expression on date'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testProjectFirstMillisecondOfSecond(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend(col(x: TDSRow[1] | $x.getDate('ReleaseDate')->firstMillisecondOfSecond(), 'firstMillisecondOfSecond'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure firstSecondOfMinute expression on date'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testProjectFirstSecondOfMinute(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend(col(x: TDSRow[1] | $x.getDate('ReleaseDate')->firstSecondOfMinute(), 'firstSecondOfMinute'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure firstMinuteOfHour expression on date'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testProjectFirstMinuteOfHour(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend(col(x: TDSRow[1] | $x.getDate('ReleaseDate')->firstMinuteOfHour(), 'firstMinuteOfHour'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure firstHourOfDay expression on date'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testProjectFirstHourOfDay(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend(col(x: TDSRow[1] | $x.getDate('ReleaseDate')->firstHourOfDay(), 'firstHourOfDay'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure firstDayOfMonth expression on date'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testProjectFirstDayOfMonth(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend(col(x: TDSRow[1] | $x.getDate('ReleaseDate')->firstDayOfMonth(), 'firstDayOfMonth'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure firstDayOfWeek expression on date'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testProjectFirstDayOfWeek(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend(col(x: TDSRow[1] | $x.getDate('ReleaseDate')->firstDayOfWeek(), 'firstDayOfWeek'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure firstDayOfQuarter expression on date'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testProjectFirstDayOfQuarter(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend(col(x: TDSRow[1] | $x.getDate('ReleaseDate')->firstDayOfQuarter(), 'firstDayOfQuarter'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure year expression on date'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testProject_year(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend(col(x: TDSRow[1] | $x.getDate('ReleaseDate')->year(), 'year'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure weekOfYear expression on date'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testProject_weekOfYear(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend(col(x: TDSRow[1] | $x.getDate('ReleaseDate')->weekOfYear(), 'weekOfYear')) + // todo some dates provide discrepancies, cause by Java calendar poor implementation of week of year, so narrow to values that work + ->filter(x | $x.getDate('ReleaseDate') == %2008-05-02T00:00:00.100) + ); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure monthNumber expression on date'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testProject_monthNumber(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend(col(x: TDSRow[1] | $x.getDate('ReleaseDate')->monthNumber(), 'monthNumber'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure month expression on date'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testProject_month(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend(col(x: TDSRow[1] | $x.getDate('ReleaseDate')->month(), 'month'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure quarterNumber expression on date'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testProject_quarterNumber(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend(col(x: TDSRow[1] | $x.getDate('ReleaseDate')->quarterNumber(), 'quarterNumber'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure quarter expression on date'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testProject_quarter(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend(col(x: TDSRow[1] | $x.getDate('ReleaseDate')->quarter(), 'quarter'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure dayOfWeekNumber expression on date'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testProject_dayOfWeekNumber(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend(col(x: TDSRow[1] | $x.getDate('ReleaseDate')->dayOfWeekNumber(), 'dayOfWeekNumber'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure dayOfWeek expression on date'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::date::testProject_dayOfWeek(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->extend(col(x: TDSRow[1] | $x.getDate('ReleaseDate')->dayOfWeek(), 'dayOfWeek'))); +} \ No newline at end of file diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project_float.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project_float.pure new file mode 100644 index 00000000000..34563842ef7 --- /dev/null +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project_float.pure @@ -0,0 +1,198 @@ +// Copyright 2023 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::pure::test::*; +import meta::external::store::elasticsearch::executionTest::testCase::*; +import meta::external::store::elasticsearch::executionTest::testCase::tds::*; +import meta::external::store::elasticsearch::executionTest::test::*; +import meta::external::store::elasticsearch::executionTest::utils::*; + +function + <> + {doc.doc = 'Test projection on Elasticsearch Float property mapping'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::float::testProjectFloat(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->project([col(x: TDSRow[1] | $x.getFloat('Revenue'), 'rev')])); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure == expression on float'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::float::testEqualValueProject(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getFloat('Revenue') == 233.5, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure != expression on float'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::float::testNotEqualValueProject(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getFloat('Revenue') != 233.5, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure > expression on float'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::float::testGreaterThanfloat(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getFloat('Revenue') > 266.5, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure > expression on float'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::float::testGreaterThanReversedfloat(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | 266.5 > $x.getFloat('Revenue'), 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure >= expression on float'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::float::testGreaterThanEqualfloat(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getFloat('Revenue') >= 266.5, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure >= expression on float'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::float::testGreaterThanEqualReversedfloat(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | 266.5 >= $x.getFloat('Revenue'), 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure < expression on float'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::float::testLessThanfloat(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getFloat('Revenue') < 266.5, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure < expression on float'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::float::testLessThanReversedfloat(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | 266.5 < $x.getFloat('Revenue'), 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure <= expression on float'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::float::testLessThanEqualfloat(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getFloat('Revenue') <= 266.5, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure <= expression on float'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::float::testLessThanEqualReversedfloat(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | 266.5 <= $x.getFloat('Revenue'), 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure == expression on float'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::float::testEqualValueFilterWithVariable(config:TestConfig[1]):Boolean[1] +{ + let var = 233.5; + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getFloat('Revenue') == $var, 'expression'))); +} + + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure != expression on float'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::float::testNotEqualValueFilterWithVariable(config:TestConfig[1]):Boolean[1] +{ + let var = 233.5; + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getFloat('Revenue') != $var, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure > expression on float'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::float::testGreaterThanfloatWithVariable(config:TestConfig[1]):Boolean[1] +{ + let var = 266.5; + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getFloat('Revenue') > $var, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure > expression on float'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::float::testGreaterThanReversedfloatWithVariable(config:TestConfig[1]):Boolean[1] +{ + let var = 266.5; + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $var > $x.getFloat('Revenue'), 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure >= expression on float'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::float::testGreaterThanEqualfloatWithVariable(config:TestConfig[1]):Boolean[1] +{ + let var = 266.5; + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getFloat('Revenue') >= $var, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure >= expression on float'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::float::testGreaterThanEqualReversedfloatWithVariable(config:TestConfig[1]):Boolean[1] +{ + let var = 266.5; + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $var >= $x.getFloat('Revenue'), 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure < expression on float'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::float::testLessThanfloatWithVariable(config:TestConfig[1]):Boolean[1] +{ + let var = 266.5; + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getFloat('Revenue') < $var, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure < expression on float'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::float::testLessThanReversedfloatWithVariable(config:TestConfig[1]):Boolean[1] +{ + let var = 266.5; + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $var < $x.getFloat('Revenue'), 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure <= expression on float'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::float::testLessThanEqualfloatWithVariable(config:TestConfig[1]):Boolean[1] +{ + let var = 266.5; + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getFloat('Revenue') <= $var, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure <= expression on float'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::float::testLessThanEqualReversedfloatWithVariable(config:TestConfig[1]):Boolean[1] +{ + let var = 266.5; + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $var <= $x.getFloat('Revenue'), 'expression'))); +} diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project_integer.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project_integer.pure new file mode 100644 index 00000000000..058c6dc38fe --- /dev/null +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project_integer.pure @@ -0,0 +1,190 @@ +// Copyright 2023 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::pure::test::*; +import meta::external::store::elasticsearch::executionTest::testCase::*; +import meta::external::store::elasticsearch::executionTest::testCase::tds::*; +import meta::external::store::elasticsearch::executionTest::test::*; +import meta::external::store::elasticsearch::executionTest::utils::*; + +function + <> + {doc.doc = 'Test projection on Elasticsearch Integer property mapping'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::integer::testProjectInteger(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->project([col(x: TDSRow[1] | $x.getInteger('Budget'), 'Hello')])); +} + + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure != expression on integer'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::integer::testNotEqualValue(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getInteger('Budget') != 170, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure > expression on integer'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::integer::testGreaterThan(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getInteger('Budget') > 55, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure > expression on integer'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::integer::testGreaterThanReversedInteger(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | 55 > $x.getInteger('Budget'), 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure >= expression on integer'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::integer::testGreaterThanEqualInteger(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getInteger('Budget') >= 55, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure >= expression on integer'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::integer::testGreaterThanEqualReversedInteger(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | 55 >= $x.getInteger('Budget'), 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure < expression on integer'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::integer::testLessThanInteger(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getInteger('Budget') < 55, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure < expression on integer'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::integer::testLessThanReversedInteger(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | 55 < $x.getInteger('Budget'), 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure <= expression on integer'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::integer::testLessThanEqualInteger(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getInteger('Budget') <= 55, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure <= expression on integer'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::integer::testLessThanEqualReversedInteger(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | 55 <= $x.getInteger('Budget'), 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure == expression on integer'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::integer::testEqualValueFilterWithVariable(config:TestConfig[1]):Boolean[1] +{ + let var = 170; + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getInteger('Budget') == $var, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure != expression on integer'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::integer::testNotEqualValueFilterWithVariable(config:TestConfig[1]):Boolean[1] +{ + let var = 170; + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getInteger('Budget') != $var, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure > expression on integer'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::integer::testGreaterThanIntegerWithVariable(config:TestConfig[1]):Boolean[1] +{ + let var = 55; + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getInteger('Budget') > $var, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure > expression on integer'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::integer::testGreaterThanReversedIntegerWithVariable(config:TestConfig[1]):Boolean[1] +{ + let var = 55; + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $var > $x.getInteger('Budget'), 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure >= expression on integer'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::integer::testGreaterThanEqualIntegerWithVariable(config:TestConfig[1]):Boolean[1] +{ + let var = 55; + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getInteger('Budget') >= $var, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure >= expression on integer'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::integer::testGreaterThanEqualReversedIntegerWithVariable(config:TestConfig[1]):Boolean[1] +{ + let var = 55; + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $var >= $x.getInteger('Budget'), 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure < expression on integer'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::integer::testLessThanInteger_PurOneVariable(config:TestConfig[1]):Boolean[1] +{ + let val = 55; + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getInteger('Budget') < $val, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure < expression on integer'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::integer::testLessThanReversedIntegerWithVariable(config:TestConfig[1]):Boolean[1] +{ + let val = 55; + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $val < $x.getInteger('Budget'), 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure <= expression on integer'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::integer::testLessThanEqualIntegerWithVariable(config:TestConfig[1]):Boolean[1] +{ + let val = 55; + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getInteger('Budget') <= $val, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure <= expression on integer'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::integer::testLessThanEqualReversedIntegerWithVariable(config:TestConfig[1]):Boolean[1] +{ + let val = 55; + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $val <= $x.getInteger('Budget'), 'expression'))); +} diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project_keyword.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project_keyword.pure new file mode 100644 index 00000000000..16ef0069ea8 --- /dev/null +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project_keyword.pure @@ -0,0 +1,61 @@ +// Copyright 2023 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::pure::test::*; +import meta::external::store::elasticsearch::executionTest::testCase::*; +import meta::external::store::elasticsearch::executionTest::testCase::tds::*; +import meta::external::store::elasticsearch::executionTest::test::*; +import meta::external::store::elasticsearch::executionTest::utils::*; + +function + <> + {doc.doc = 'Test projection on Elasticsearch Keyword property mapping'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::keyword::testProjectKeyword(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->project([col(x: TDSRow[1] | $x.getString('Title'), 'Title')])); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure == expression on keyword'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::keyword::testEqualValue(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getString('Title') == 'Iron Man', 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure != expression on keyword'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::keyword::testNotEqualValue(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getString('Title') != 'Iron Man', 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure == expression on keyword'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::keyword::testEqualValueWithVariable(config:TestConfig[1]):Boolean[1] +{ + let var = 'Iron Man'; + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getString('Title') == $var, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure != expression on keyword'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::keyword::testNotEqualValueWithVariable(config:TestConfig[1]):Boolean[1] +{ + let var = 'Iron Man'; + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getString('Title') != $var, 'expression'))); +} diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project_text.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project_text.pure new file mode 100644 index 00000000000..2bd4aa98876 --- /dev/null +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_project_text.pure @@ -0,0 +1,77 @@ +// Copyright 2023 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::pure::test::*; +import meta::external::store::elasticsearch::executionTest::testCase::*; +import meta::external::store::elasticsearch::executionTest::testCase::tds::*; +import meta::external::store::elasticsearch::executionTest::test::*; +import meta::external::store::elasticsearch::executionTest::utils::*; + +function + <> + {doc.doc = 'Test projection on Elasticsearch Text property mapping'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::text::testProjectText(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x|$x->project(col(x: TDSRow[1] | $x.getNullableString('Description'), 'Description'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure isEmpty expression on text'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::text::testIsEmpty(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getNullableString('Description')->isEmpty(), 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure isNotEmpty expression on text'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::text::testIsNotEmpty(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getNullableString('Description')->isNotEmpty(), 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure == expression on text'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::text::testEqualValue(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getNullableString('Description') == 'A security guard\'s dreams come true when he is selected to be transformed into a cybernetic police officer.', 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure != expression on text'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::text::testNotEqualValue(config:TestConfig[1]):Boolean[1] +{ + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getNullableString('Description') != 'A security guard\'s dreams come true when he is selected to be transformed into a cybernetic police officer.', 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure == expression on text'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::text::testEqualValueWithVariable(config:TestConfig[1]):Boolean[1] +{ + let var = 'A security guard\'s dreams come true when he is selected to be transformed into a cybernetic police officer.'; + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getNullableString('Description') == $var, 'expression'))); +} + +function + <> + {doc.doc = 'Test projection on Elasticsearch with pure != expression on text'} +meta::external::store::elasticsearch::executionTest::testCase::tds::project::text::testNotEqualValueWithVariable(config:TestConfig[1]):Boolean[1] +{ + let var = 'A security guard\'s dreams come true when he is selected to be transformed into a cybernetic police officer.'; + $config->testTdsExpression(x | $x->extend(col(x: TDSRow[1] | $x.getNullableString('Description') != $var, 'expression'))); +} \ No newline at end of file diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/test/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/test/TestElasticsearchExecutionPlanFromGrammarIntegration.java b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/test/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/test/TestElasticsearchExecutionPlanFromGrammarIntegration.java index 742cf8ffa22..02e922294a4 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/test/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/test/TestElasticsearchExecutionPlanFromGrammarIntegration.java +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/test/java/org/finos/legend/engine/plan/execution/stores/elasticsearch/test/TestElasticsearchExecutionPlanFromGrammarIntegration.java @@ -55,7 +55,7 @@ public class TestElasticsearchExecutionPlanFromGrammarIntegration { - private static final String TEST_IMAGE_TAG = "7.8.0"; + private static final String TEST_IMAGE_TAG = "7.17.7"; private static PureModel PURE_MODEL; @BeforeClass From 02d2dbe19cf239eca0a713f54e5149a909d005ed Mon Sep 17 00:00:00 2001 From: AFine-gs <69924417+AFine-gs@users.noreply.github.com> Date: Thu, 12 Oct 2023 17:07:08 -0400 Subject: [PATCH 06/80] Improve performance of dateTimeSerialization (#2363) --- ...oCSVSerializerWithTransformersApplied.java | 3 +- ...lationalResultToJsonDefaultSerializer.java | 10 +-- ...elationalResultToPureFormatSerializer.java | 1 - .../RelationalResultToPureTDSSerializer.java | 6 +- ...onalResultToPureTDSToObjectSerializer.java | 6 +- .../serialization/ValueTransformer.java | 68 +++++++++++++++++++ .../serialization/TestValueTransformer.java | 44 ++++++++++++ 7 files changed, 127 insertions(+), 11 deletions(-) create mode 100644 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/serialization/ValueTransformer.java create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/serialization/TestValueTransformer.java 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/serialization/RelationalResultToCSVSerializerWithTransformersApplied.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/serialization/RelationalResultToCSVSerializerWithTransformersApplied.java index ee06a48c6ac..98776e7f091 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/serialization/RelationalResultToCSVSerializerWithTransformersApplied.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/serialization/RelationalResultToCSVSerializerWithTransformersApplied.java @@ -38,6 +38,7 @@ public class RelationalResultToCSVSerializerWithTransformersApplied extends CsvS { private final RelationalResult relationalResult; private final CSVFormat csvFormat; + private final ValueTransformer valueTransformer = new ValueTransformer(); public RelationalResultToCSVSerializerWithTransformersApplied(RelationalResult relationalResult) { @@ -97,7 +98,7 @@ private void printRecords(ResultSet resultSet, CSVPrinter csvPrinter) throws SQL { for (int i = 1; i <= columnCount; ++i) { - csvPrinter.print(transformers.get(i - 1).valueOf(relationalResult.getValue(i))); + csvPrinter.print(valueTransformer.transformRelationalValue(relationalResult.getValue(i), transformers.get(i - 1))); } csvPrinter.println(); } 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/serialization/RelationalResultToJsonDefaultSerializer.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/serialization/RelationalResultToJsonDefaultSerializer.java index 2b21c75d5d8..39817fb7ac1 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/serialization/RelationalResultToJsonDefaultSerializer.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/serialization/RelationalResultToJsonDefaultSerializer.java @@ -23,7 +23,6 @@ import io.opentracing.util.GlobalTracer; import org.eclipse.collections.api.block.function.Function; import org.eclipse.collections.api.factory.Lists; -import org.eclipse.collections.api.list.MutableList; import org.eclipse.collections.impl.utility.Iterate; import org.finos.legend.engine.plan.execution.result.serialization.ExecutionResultObjectMapperFactory; import org.finos.legend.engine.plan.execution.result.serialization.Serializer; @@ -38,7 +37,6 @@ import java.io.OutputStream; import java.sql.SQLException; import java.util.List; -import java.util.ServiceLoader; public class RelationalResultToJsonDefaultSerializer extends Serializer { @@ -55,6 +53,7 @@ public class RelationalResultToJsonDefaultSerializer extends Serializer private final byte[] b_values = "{\"values\": [".getBytes(); private final byte[] b_end = "]}".getBytes(); private final byte[] b_endResult = "}".getBytes(); + private final ValueTransformer transformer = new ValueTransformer(); public RelationalResultToJsonDefaultSerializer(RelationalResult relationalResult) { @@ -127,14 +126,15 @@ private void processRow(OutputStream outputStream) throws IOException, SQLExcept { outputStream.write(b_values); - MutableList> transformers = relationalResult.getTransformers(); for (int i = 1; i <= relationalResult.columnCount - 1; i++) { - outputStream.write(purePrimitiveToJsonConverter.apply(transformers.get(i - 1).valueOf(relationalResult.getValue(i))).getBytes()); + Object value = relationalResult.getValue(i); + + outputStream.write(((String) transformer.transformWrappedRelationalValue(value, relationalResult.getTransformers().get(i - 1).andThen(purePrimitiveToJsonConverter))).getBytes()); outputStream.write(b_comma); } - outputStream.write(purePrimitiveToJsonConverter.apply(transformers.get(relationalResult.columnCount - 1).valueOf(relationalResult.getValue(relationalResult.columnCount))).getBytes()); + outputStream.write(((String) transformer.transformWrappedRelationalValue(relationalResult.getValue(relationalResult.columnCount), relationalResult.getTransformers().get(relationalResult.columnCount - 1).andThen(purePrimitiveToJsonConverter))).getBytes()); outputStream.write(b_end); } 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/serialization/RelationalResultToPureFormatSerializer.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/serialization/RelationalResultToPureFormatSerializer.java index 6511b266511..0c89756d3d4 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/serialization/RelationalResultToPureFormatSerializer.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/serialization/RelationalResultToPureFormatSerializer.java @@ -45,7 +45,6 @@ public class RelationalResultToPureFormatSerializer extends Serializer protected final ObjectMapper objectMapper = ExecutionResultObjectMapperFactory.getNewObjectMapper(); private final byte[] start_token; private final byte[] end_token; - protected RelationalResult relationalResult; public RelationalResultToPureFormatSerializer(RelationalResult relationalResult, byte[] start_token, byte[] end_token) 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/serialization/RelationalResultToPureTDSSerializer.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/serialization/RelationalResultToPureTDSSerializer.java index 0f950a7e9f5..ff472c0a5ee 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/serialization/RelationalResultToPureTDSSerializer.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/serialization/RelationalResultToPureTDSSerializer.java @@ -26,6 +26,8 @@ public class RelationalResultToPureTDSSerializer extends RelationalResultToPureFormatSerializer { + private final ValueTransformer valueTransformer = new ValueTransformer(); + public RelationalResultToPureTDSSerializer(RelationalResult relationalResult) { super(relationalResult, object_start, object_end); @@ -85,11 +87,11 @@ public void processRow(OutputStream outputStream) throws IOException, SQLExcepti for (int i = 1; i <= relationalResult.columnCount - 1; i++) { - objectMapper.writeValue(outputStream, transformers.get(i - 1).valueOf(relationalResult.getValue(i))); + objectMapper.writeValue(outputStream, valueTransformer.transformRelationalValue(relationalResult.getValue(i), transformers.get(i - 1))); outputStream.write(b_comma); } - objectMapper.writeValue(outputStream, transformers.get(relationalResult.columnCount - 1).valueOf(relationalResult.getValue(relationalResult.columnCount))); + objectMapper.writeValue(outputStream, valueTransformer.transformRelationalValue(relationalResult.getValue(relationalResult.columnCount), transformers.get(relationalResult.columnCount - 1))); outputStream.write(b_array_close); outputStream.write(object_end); 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/serialization/RelationalResultToPureTDSToObjectSerializer.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/serialization/RelationalResultToPureTDSToObjectSerializer.java index a3854f4cb22..5cf75c497f1 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/serialization/RelationalResultToPureTDSToObjectSerializer.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/serialization/RelationalResultToPureTDSToObjectSerializer.java @@ -25,6 +25,8 @@ public class RelationalResultToPureTDSToObjectSerializer extends RelationalResultToPureFormatSerializer { + private final ValueTransformer valueTransformer = new ValueTransformer(); + public RelationalResultToPureTDSToObjectSerializer(RelationalResult relationalResult) { super(relationalResult, b_array_open, b_array_close); @@ -45,13 +47,13 @@ public void processRow(OutputStream outputStream) throws IOException, SQLExcepti { objectMapper.writeValue(outputStream, ((TDSBuilder) relationalResult.builder).columns.get(i - 1).name); outputStream.write(b_colon); - objectMapper.writeValue(outputStream, transformers.get(i - 1).valueOf(relationalResult.getValue(i))); + objectMapper.writeValue(outputStream, valueTransformer.transformRelationalValue(relationalResult.getValue(i), transformers.get(i - 1))); outputStream.write(b_comma); } objectMapper.writeValue(outputStream, ((TDSBuilder) relationalResult.builder).columns.get(relationalResult.columnCount - 1).name); outputStream.write(b_colon); - objectMapper.writeValue(outputStream, transformers.get(relationalResult.columnCount - 1).valueOf(relationalResult.getValue(relationalResult.columnCount))); + objectMapper.writeValue(outputStream, valueTransformer.transformRelationalValue(relationalResult.getValue(relationalResult.columnCount), transformers.get(relationalResult.columnCount - 1))); outputStream.write(object_end); } 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/serialization/ValueTransformer.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/serialization/ValueTransformer.java new file mode 100644 index 00000000000..a50697014e1 --- /dev/null +++ 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/serialization/ValueTransformer.java @@ -0,0 +1,68 @@ +// Copyright 2023 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.serialization; + +import java.sql.Timestamp; +import java.time.ZoneOffset; +import java.time.format.DateTimeFormatter; +import java.util.function.Function; + +class ValueTransformer +{ + private final DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + private final DateTimeFormatter timeFormatterWithZ = DateTimeFormatter.ofPattern("yyyy-MM-dd'T'HH:mm:ss.nnnnnnnnnZ"); + private final ZoneOffset offset = ZoneOffset.UTC; + + protected ValueTransformer() + { + + } + + protected Object transformWrappedRelationalValue(Object relationalValue, Function transformer) + { + if (relationalValue instanceof Timestamp) + { + return "\"" + timeFormatterWithZ.format(((Timestamp) relationalValue).toInstant().atOffset(offset)) + "\""; + + } + else if (relationalValue instanceof java.sql.Date) + { + return "\"" + ((java.sql.Date) relationalValue).toLocalDate().format(dateFormat) + "\""; + } + else + { + return transformer.apply(relationalValue); + } + + } + + protected Object transformRelationalValue(Object relationalValue, Function transformer) + { + if (relationalValue instanceof Timestamp) + { + return timeFormatterWithZ.format(((Timestamp) relationalValue).toInstant().atOffset(offset)); + + } + else if (relationalValue instanceof java.sql.Date) + { + return ((java.sql.Date) relationalValue).toLocalDate().format(dateFormat); + } + else + { + return transformer.apply(relationalValue); + } + } + +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/serialization/TestValueTransformer.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/serialization/TestValueTransformer.java new file mode 100644 index 00000000000..b138b0f206f --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/serialization/TestValueTransformer.java @@ -0,0 +1,44 @@ +// Copyright 2023 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.serialization; + +import org.junit.Assert; +import org.junit.Test; + +import java.sql.Date; +import java.sql.Timestamp; + +public class TestValueTransformer +{ + @Test + public void testValueTransformer() + { + ValueTransformer valueTransformer = new ValueTransformer(); + Timestamp time = new Timestamp(1696532242123L); + Date date = new Date(1696532242123L); + + + org.eclipse.collections.api.block.function.Function transform = value -> value + "Transformed"; + Assert.assertEquals("2023-10-05T18:57:22.123000000+0000", valueTransformer.transformRelationalValue(time, transform)); + Assert.assertEquals("2023-10-05", valueTransformer.transformRelationalValue(date, transform)); + Assert.assertEquals("otherTransformed", valueTransformer.transformRelationalValue("other", transform)); + + Assert.assertEquals("\"2023-10-05T18:57:22.123000000+0000\"", valueTransformer.transformWrappedRelationalValue(time, transform)); + Assert.assertEquals("\"2023-10-05\"", valueTransformer.transformWrappedRelationalValue(date, transform)); + Assert.assertEquals("otherTransformed", valueTransformer.transformWrappedRelationalValue("other", transform)); + + } + +} From 22a900183bc72ac9521319f02142f4fb0d403d5c Mon Sep 17 00:00:00 2001 From: Rafael Bey <24432403+rafaelbey@users.noreply.github.com> Date: Thu, 12 Oct 2023 17:17:05 -0400 Subject: [PATCH 07/80] Update CODEOWNERS (#2364) --- CODEOWNERS | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/CODEOWNERS b/CODEOWNERS index 9ae1e6d5b14..feb7e32fc2b 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -1,10 +1,10 @@ -* @pierredebelen @epsstan @davidharte-gs @gs-ssh16 @hardikmaheshwari @aormerod-gs +* @pierredebelen @epsstan @davidharte-gs @gs-ssh16 @rafaelbey @aormerod-gs /.github/** @finos/legend-engine-maintainers /docs/** @finos/legend-engine-maintainers /legend-engine-application-query/** @finos/legend-engine-maintainers /legend-engine-config/** @finos/legend-engine-maintainers -/legend-engine-core/** @pierredebelen @epsstan @davidharte-gs @gs-ssh16 @hardikmaheshwari @aormerod-gs -/legend-engine-pure/** @pierredebelen @epsstan @davidharte-gs @gs-ssh16 @hardikmaheshwari @aormerod-gs +/legend-engine-core/** @pierredebelen @epsstan @davidharte-gs @gs-ssh16 @rafaelbey @aormerod-gs +/legend-engine-pure/** @pierredebelen @epsstan @davidharte-gs @gs-ssh16 @rafaelbey @aormerod-gs /legend-engine-xts-analytics/** @finos/legend-engine-maintainers /legend-engine-xts-authentication/** @finos/legend-engine-maintainers /legend-engine-xts-avro/** @finos/legend-engine-maintainers @@ -17,7 +17,7 @@ /legend-engine-xts-flatdata/** @finos/legend-engine-maintainers /legend-engine-xts-functionActivator/** @finos/legend-engine-maintainers /legend-engine-xts-generation/** @finos/legend-engine-maintainers -/legend-engine-xts-graphQL/** @pierredebelen @epsstan @davidharte-gs @gs-ssh16 @hardikmaheshwari @aormerod-gs +/legend-engine-xts-graphQL/** @pierredebelen @epsstan @davidharte-gs @gs-ssh16 @rafaelbey @aormerod-gs /legend-engine-xts-haskell/** @finos/legend-engine-maintainers /legend-engine-xts-iceberg/** @finos/legend-engine-maintainers /legend-engine-xts-java/** @finos/legend-engine-maintainers From fb42a4cd5ca7a198bf23cbf12a5706978cb8a27c Mon Sep 17 00:00:00 2001 From: RelationalAI Date: Thu, 12 Oct 2023 22:17:27 +0100 Subject: [PATCH 08/80] Initial PR for the RelationalAI extension (#2346) * Init commit of RAI Integration * Add former test code * Update test connection * Move files * Add `QueryActivity` * Bootstrap testing for Rel transpilation * Update test supporters * Add test for `map` * Re-add tests * Comment out unused code temporarily * Use indexing from parent for TDS functions * Add support for `filter` for `TabularDataSet`s (#5) * Bump up PURE version for dev * Change `error` signature * Implement support for `filter` for `TabluarDataSet`s * Support for extraction of enum values * Adapt to new upstream changes * Adapt handling or RAI bool * Fix Java compile error due to upstream changes. * Remove old code. * Refactoring and POM file changes for new directory structure. * Update license header. * Fix indentation to match repo conventions. * Fix Maven build for new project layout. * Fixes for changes in architecture. * Temporary workaround to get code to compile. * Refactor for new project code layout. * Fix dependencies for new modules. * Undo some temporary compile workarounds. * Remove duplicate dependency from build. * Fix dependency name. * Reintroduce basic tests. * Fix basic tests. * Cleanup contract for changes to PURE. * Remove execution logic. * Remove RAI Cloud connection classes. * Remove old file. * Remove more dead code. * Remove unused parameters. * Delete old comment. * Rename basic tests. * Fix versions in POM files. * Fix path. * Remove unneeded LibCodeRepository. * Cleanup: remove old files. * Remove isSome() which can be replaced by the standard function isNotEmpty(). * Remove dead code. * Prefer standard library functions over utility functions. * Remove dead code. * Remove dead code. * Remove unused Trie collections. * Remove unused collections. * Remove dead code. * Rename to better name. * Remove dependency that is not required. * Fix parent in POM. * Fix POM file. --------- Co-authored-by: Gerald Berger Co-authored-by: Gerald Berger <59661379+gbrgr@users.noreply.github.com> Co-authored-by: Andrew Bate --- .../finos/legend/engine/ide/PureIDELight.java | 3 +- .../pom.xml | 122 ++ .../RelLanguageCodeRepositoryProvider.java | 29 + ...lesystem.repository.CodeRepositoryProvider | 1 + ...xternal_query_relationalai.definition.json | 16 + .../compile/ir/ir.pure | 1328 +++++++++++++++++ .../compile/ir/tds.pure | 79 + .../compile/ir/utils.pure | 45 + .../compile/state.pure | 63 + .../compile/translate/tds.pure | 146 ++ .../compile/translate/translate.pure | 833 +++++++++++ .../compile/utils.pure | 72 + .../contract/contract.pure | 40 + .../extension/extension.pure | 9 + .../mapping/execution.pure | 221 +++ .../mapping/frontend/frontend.pure | 241 +++ .../mapping/mapping.pure | 157 ++ .../mapping/support.pure | 14 + .../rel/lib.pure | 97 ++ .../rel/metamodel/rel.pure | 776 ++++++++++ .../rel/metamodel/render.pure | 344 +++++ .../rel/metamodel/store.pure | 89 ++ .../rel/metamodel/utils.pure | 18 + .../runtime/connection.pure | 31 + .../test/query/basic.pure | 87 ++ .../test/query/models/basicmodel.pure | 27 + .../test/rel/metamodel.pure | 23 + .../test/rel/render.pure | 145 ++ .../test/testutils/testutils.pure | 18 + .../test/utils/lang.pure | 29 + .../test/utils/utils.pure | 74 + .../utils/assert.pure | 25 + .../utils/collection.pure | 58 + .../utils/lang.pure | 34 + .../utils/maybe.pure | 18 + .../utils/meta.pure | 16 + .../utils/misc.pure | 74 + .../utils/result.pure | 187 +++ .../utils/visitor.pure | 26 + legend-engine-xts-relationalai/pom.xml | 34 + pom.xml | 8 + 41 files changed, 5656 insertions(+), 1 deletion(-) create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/java/org/finos/legend/pure/code/core/RelLanguageCodeRepositoryProvider.java create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai.definition.json create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/ir/ir.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/ir/tds.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/ir/utils.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/state.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/translate/tds.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/translate/translate.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/utils.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/contract/contract.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/extension/extension.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/mapping/execution.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/mapping/frontend/frontend.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/mapping/mapping.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/mapping/support.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/rel/lib.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/rel/metamodel/rel.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/rel/metamodel/render.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/rel/metamodel/store.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/rel/metamodel/utils.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/runtime/connection.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/query/basic.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/query/models/basicmodel.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/rel/metamodel.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/rel/render.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/testutils/testutils.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/utils/lang.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/utils/utils.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/assert.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/collection.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/lang.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/maybe.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/meta.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/misc.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/result.pure create mode 100644 legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/visitor.pure create mode 100644 legend-engine-xts-relationalai/pom.xml diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/src/main/java/org/finos/legend/engine/ide/PureIDELight.java b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/src/main/java/org/finos/legend/engine/ide/PureIDELight.java index ad32fdc40f1..953743532a5 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/src/main/java/org/finos/legend/engine/ide/PureIDELight.java +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/src/main/java/org/finos/legend/engine/ide/PureIDELight.java @@ -102,7 +102,8 @@ protected MutableList buildRepositories(SourceLocationCon .with(this.buildCore("legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure","service")) .with(this.buildCore("legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure","external-tableformat-iceberg")) .with(this.buildCore("legend-engine-xts-arrow/legend-engine-xt-arrow-pure", "external-format-arrow")) - ; + .with(this.buildCore("legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure", "external-query-relationalai")) + ; } @Override diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml new file mode 100644 index 00000000000..7b302ced7ce --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml @@ -0,0 +1,122 @@ + + + + + + org.finos.legend.engine + legend-engine-xts-relationalai + 4.30.3-SNAPSHOT + + 4.0.0 + + legend-engine-xt-relationalai-pure + jar + Legend Engine - XT - RelationalAI - PAR/JAVA + + + + + org.finos.legend.pure + legend-pure-maven-generation-par + + ${project.basedir}/src/main/resources + ${legend.pure.version} + + platform + core + core_external_query_relationalai + core_relational + + + ${project.basedir}/src/main/resources/core_external_query_relationalai.definition.json + + + + + generate-sources + + build-pure-jar + + + + + + 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-graph-grammar + ${legend.pure.version} + + + org.finos.legend.engine + legend-engine-pure-code-compiled-core + ${project.version} + + + org.finos.legend.engine + legend-engine-xt-sql-pure-metamodel + ${project.version} + + + org.finos.legend.engine + legend-engine-pure-runtime-compiler + ${project.version} + + + org.finos.legend.engine + legend-engine-xt-relationalStore-pure + ${project.version} + + + + + + + + + org.finos.legend.pure + legend-pure-m3-core + + + + + + com.fasterxml.jackson.core + jackson-annotations + test + + + com.fasterxml.jackson.core + jackson-databind + test + + + com.fasterxml.jackson.core + jackson-core + test + + + + diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/java/org/finos/legend/pure/code/core/RelLanguageCodeRepositoryProvider.java b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/java/org/finos/legend/pure/code/core/RelLanguageCodeRepositoryProvider.java new file mode 100644 index 00000000000..48fc8c43e41 --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/java/org/finos/legend/pure/code/core/RelLanguageCodeRepositoryProvider.java @@ -0,0 +1,29 @@ +// Copyright 2022 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.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 RelLanguageCodeRepositoryProvider implements CodeRepositoryProvider +{ + @Override + public CodeRepository repository() + { + return GenericCodeRepository.build("core_external_query_relationalai.definition.json"); + } +} + diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider new file mode 100644 index 00000000000..7ecea0651d0 --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider @@ -0,0 +1 @@ +org.finos.legend.pure.code.core.RelLanguageCodeRepositoryProvider \ No newline at end of file diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai.definition.json b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai.definition.json new file mode 100644 index 00000000000..d6316061a51 --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai.definition.json @@ -0,0 +1,16 @@ +{ + "name" : "core_external_query_relationalai", + "pattern" : "(meta::rel|meta::pure::mapping)(::.*)?", + "dependencies": [ + "platform", + "platform_functions", + "platform_dsl_mapping", + "platform_dsl_graph", + "platform_dsl_path", + "platform_functions_json", + "platform_store_relational", + "core", + "core_relational", + "core_functions" + ] +} \ No newline at end of file diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/ir/ir.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/ir/ir.pure new file mode 100644 index 00000000000..e2d4495289c --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/ir/ir.pure @@ -0,0 +1,1328 @@ +/** + * Intermediate representation (IR) for PURE queries + * + * Here we define classes that model the part of PURE expressions + * which are supported for compilation into Rel code. Most of this file + * consists of functions that take instances of `ValueSpecification` and + * translate these instances into IR objects. IR objects exist so that + * subsequent compilation can rely on well-defined type signatures without + * having to manually parse `ValueSpecification`s first. + */ + + +import meta::rel::compile::ir::*; +import meta::rel::mapping::*; +import meta::rel::utils::*; +import meta::rel::utils::lang::*; +import meta::rel::lib::*; +import meta::rel::metamodel::*; +import meta::pure::router::metamodel::*; + +/** + * Abstract type representing PURE query expressions. Expressions evaluate to values. + */ +Class <> meta::rel::compile::ir::PExpr { } + +Class <> meta::rel::compile::ir::Constant extends PExpr { } + +Class meta::rel::compile::ir::VariablePlaceholder extends PExpr { + identifier: String[1]; +} + +Class meta::rel::compile::ir::StringConst extends meta::rel::compile::ir::Constant { + value: String[1]; +} + +Class meta::rel::compile::ir::IntegerConst extends meta::rel::compile::ir::Constant { + value: Integer[1]; +} + +Class meta::rel::compile::ir::FloatConst extends meta::rel::compile::ir::Constant { + value: Float[1]; +} + +Class meta::rel::compile::ir::BooleanConst extends meta::rel::compile::ir::Constant { + value: Boolean[1]; +} + +Class meta::rel::compile::ir::StrictDateConst extends meta::rel::compile::ir::Constant { + value: StrictDate[1]; +} + +Class meta::rel::compile::ir::DateTimeConst extends meta::rel::compile::ir::Constant { + value: DateTime[1]; +} + +/** + * Expression asking to fetch all elements of a certain type. + */ +Class meta::rel::compile::ir::All extends PExpr { + set: RelSetImplementation[1]; +} + +/** + * Expression asking to filter another query node by a given predicate. + */ +Class meta::rel::compile::ir::Filter extends PExpr { + parent: PExpr[1]; + predicate: Scoped[1]; +} + +/** + * Type denoting an application of a function to multiple expressions. + */ +Class meta::rel::compile::ir::FunctionExpr<|n> extends PExpr { + arguments: PExpr[n]; + fn: FunctionDefinition<{meta::rel::metamodel::Expr[n]->meta::rel::metamodel::Expr[1]}>[1]; +} + +/** + * Type denoting `exists` expressions. + */ +Class meta::rel::compile::ir::Exists extends PExpr { + parent: PExpr[1]; + predicate: Scoped[1]; +} + +/** + * Type denoting `forAll` expressions. + */ +Class meta::rel::compile::ir::ForAll extends PExpr { + parent: PExpr[1]; + predicate: Scoped[1]; +} + +/** + * Type for expressions which denote access to a variable + * representing a Rel set. + */ +Class meta::rel::compile::ir::SetAccess extends PExpr { + set: RelSetImplementation[1]; + variable: String[1]; +} + +/** + * Type representing access to a property. + */ +Class meta::rel::compile::ir::PropertyAccess extends PExpr { + parent: PExpr[1]; + property: Property[1]; + set: RelSetImplementation[0..1]; +} + +/** + * Type representing an access to a column of a row. + * Such calls can only occur if the `parent` expression represents + * a `TDSRow`. + */ +Class meta::rel::compile::ir::ColumnAccess extends PExpr { + parent: PExpr[1]; + column: String[1]; +} + +/** + * Helper type for representing variable scopes. + */ +Class meta::rel::compile::ir::Scoped extends PExpr { + variables: String[*]; + inner: PExpr[1]; + parent: PExpr[0..1]; +} + +/** + * Type denoting `map` expressions. + */ +Class meta::rel::compile::ir::MapExpr extends PExpr { + parent: PExpr[1]; + body: Scoped[1]; +} + +/** + * Type denoting projections. + */ +Class meta::rel::compile::ir::Project extends PExpr { + parent: PExpr[1]; + projections: Pair[*]; +} + +/** + * Denotes an aggregation function. + */ +Class meta::rel::compile::ir::Aggregate { + map: Scoped[1]; + aggregateFunction: Scoped[1]; + name: String[0..1]; +} + +Class <> meta::rel::compile::ir::GroupBy extends PExpr { + parent: PExpr[1]; + aggregates: Aggregate[*]; +} + +/** + * Expression type denting `group by` expressions. + */ +Class meta::rel::compile::ir::GroupByScopes extends GroupBy { + group: Scoped[*]; + names: String[*]; + + group() { + $this.group; + }: Any[*]; + + names() { + $this.names; + }: String[*]; +} + +/** + * Expression type denting `group by` expressions. + */ +Class meta::rel::compile::ir::GroupByColumns extends GroupBy { + group: String[*]; + + group() { + $this.group; + }: Any[*]; + + names() { + $this.group->concatenate($this.aggregates.name); + }: String[*]; +} + +/** + * If-then-else expression. + */ +Class meta::rel::compile::ir::IfThenElse extends PExpr { + condition: PExpr[1]; + then: Scoped[1]; + else: Scoped[1]; +} + +/** + * Helper class for implementing a custom compilation step without the need + * to represent IR objects explicitly. + */ +Class meta::rel::compile::ir::CompilationStep extends PExpr { + logic: FunctionDefinition<{ + FunctionDefinition<{Any[1]->Result[1]}>[1], + meta::rel::compile::CompilationState[1] + ->Result[1] + }>[1]; + + property: FunctionDefinition<{String[1], Any[*]->Any[*]}>[0..1]; +} + +//////////////////////// +/// Constructor methods +//////////////////////// + +function meta::rel::compile::ir::const(value: String[1]): StringConst[1] { + string($value); +} + +function meta::rel::compile::ir::const(value: Integer[1]): IntegerConst[1] { + integer($value); +} + +function meta::rel::compile::ir::const(value: Float[1]): FloatConst[1] { + float($value); +} + +function meta::rel::compile::ir::const(value: Boolean[1]): BooleanConst[1] { + boolean($value); +} + +function meta::rel::compile::ir::const(value: StrictDate[1]): StrictDateConst[1] { + strictDate($value); +} + +function meta::rel::compile::ir::const(value: DateTime[1]): DateTimeConst[1] { + dateTime($value); +} + +function meta::rel::compile::ir::string(value: String[1]): StringConst[1] { + ^StringConst(value=$value); +} + +function meta::rel::compile::ir::integer(value: Integer[1]): IntegerConst[1] { + ^IntegerConst(value=$value); +} + +function meta::rel::compile::ir::float(value: Float[1]): FloatConst[1] { + ^FloatConst(value=$value); +} + +function meta::rel::compile::ir::boolean(value: Boolean[1]): BooleanConst[1] { + ^BooleanConst(value=$value); +} + +function meta::rel::compile::ir::strictDate(value: StrictDate[1]): StrictDateConst[1] { + ^StrictDateConst(value=$value); +} + +function meta::rel::compile::ir::dateTime(value: DateTime[1]): DateTimeConst[1] { + ^DateTimeConst(value=$value); +} + +function meta::rel::compile::ir::variablePlaceholder(identifier: String[1]): VariablePlaceholder[1] { + ^VariablePlaceholder(identifier=$identifier); +} + +function meta::rel::compile::ir::fexpr<|n>( + arguments: PExpr[n], + fn: FunctionDefinition<{meta::rel::metamodel::Expr[n]->meta::rel::metamodel::Expr[1]}>[1] +): FunctionExpr<|n>[1] { + ^FunctionExpr<|n>(arguments=$arguments, fn=$fn); +} + +function meta::rel::compile::ir::setAccess(set: RelSetImplementation[1], variable: String[1]): SetAccess[1] { + ^SetAccess(set=$set, variable=$variable); +} + +function meta::rel::compile::ir::propertyAccess( + parent: PExpr[1], + property: Property[1], + set: RelSetImplementation[0..1] +): PropertyAccess[1] { + ^PropertyAccess(parent=$parent, property=$property, set=$set); +} + + +function meta::rel::compile::ir::columnAccess(parent: PExpr[1], column: String[1]): ColumnAccess[1] { + ^ColumnAccess(parent=$parent, column=$column); +} + +function meta::rel::compile::ir::all(set: RelSetImplementation[1]): All[1] { + ^All(set=$set); +} + +function meta::rel::compile::ir::filter(parent: PExpr[1], predicate: Scoped[1]): Filter[1] { + ^Filter(parent=$parent, predicate=$predicate); +} + +function meta::rel::compile::ir::scoped(inner: PExpr[1], variable: String[*]): Scoped[1] { + scoped($inner, $variable, []); +} + +function meta::rel::compile::ir::scoped(inner: PExpr[1], variables: String[*], parent: PExpr[0..1]): Scoped[1] { + ^Scoped(inner=$inner, variables=$variables, parent=$parent); +} + +function meta::rel::compile::ir::withParent(scoped: Scoped[1], parent: PExpr[0..1]): Scoped[1] { + ^$scoped(parent=$parent); +} + +function meta::rel::compile::ir::mapExpr(parent: PExpr[1], body: Scoped[1]): MapExpr[1] { + ^MapExpr(parent=$parent, body=$body); +} + +function meta::rel::compile::ir::exists(parent: PExpr[1], predicate: Scoped[1]): meta::rel::compile::ir::Exists[1] { + ^meta::rel::compile::ir::Exists(parent=$parent, predicate=$predicate); +} + +function meta::rel::compile::ir::forAll(parent: PExpr[1], predicate: Scoped[1]): meta::rel::compile::ir::ForAll[1] { + ^meta::rel::compile::ir::ForAll(parent=$parent, predicate=$predicate); +} + +function meta::rel::compile::ir::project(parent: PExpr[1], projections: Pair[*]): Project[1] { + ^Project(parent=$parent, projections=$projections); +} + +function meta::rel::compile::ir::aggregate(map: Scoped[1], aggregateFunction: Scoped[1]): Aggregate[1] { + ^Aggregate(map=$map, aggregateFunction=$aggregateFunction); +} + +function meta::rel::compile::ir::aggregate(map: Scoped[1], aggregateFunction: Scoped[1], name: String[1]): Aggregate[1] { + let agg = aggregate($map, $aggregateFunction); + ^$agg(name=$name); +} + +function meta::rel::compile::ir::groupBy(parent: PExpr[1], group: Scoped[*], aggregates: Aggregate[*], names: String[*]): GroupByScopes[1] { + ^GroupByScopes(parent=$parent, group=$group, aggregates=$aggregates, names=$names); +} + +function meta::rel::compile::ir::groupBy(parent: PExpr[1], group: String[*], aggregates: Aggregate[*]): GroupByColumns[1] { + ^GroupByColumns(parent=$parent, group=$group, aggregates=$aggregates); +} + +function meta::rel::compile::ir::compilationStep( + logic: FunctionDefinition<{ + FunctionDefinition<{Any[1]->Result[1]}>[1], + meta::rel::compile::CompilationState[1] + ->Result[1] + }>[1] +): CompilationStep[1] { + compilationStep($logic, []); +} + +function meta::rel::compile::ir::compilationStep( + logic: FunctionDefinition<{ + FunctionDefinition<{Any[1]->Result[1]}>[1], + meta::rel::compile::CompilationState[1] + ->Result[1] + }>[1], + property: FunctionDefinition<{String[1], Any[*]->Any[*]}>[0..1] +): CompilationStep[1] { + ^CompilationStep(logic=$logic, property=$property); +} + +function meta::rel::compile::ir::ifThenElse(condition: PExpr[1], then: Scoped[1], else: Scoped[1]): meta::rel::compile::ir::IfThenElse[1] { + ^meta::rel::compile::ir::IfThenElse(condition=$condition, then=$then, else=$else); +} + +//////////////////////// +/// API methods +//////////////////////// + +function meta::rel::compile::ir::set(expr: PExpr[1]): RelSetImplementation[0..1] { + $expr->match([ + {access: SetAccess[1] | $access.set}, + {scoped: Scoped[1] | $scoped.parent->map(p | $p->set()); }, + {all: All[1] | $all.set}, + {access: PropertyAccess[1] | $access.set}, + {map: MapExpr[1] | $map.parent->set()}, + {filter: Filter[1] | $filter.parent->set()}, + {exists: meta::rel::compile::ir::Exists[1] | $exists.parent->set()}, + {forAll: meta::rel::compile::ir::ForAll[1] | $forAll.parent->set()}, + {project: Project[1] | $project.parent->set()}, + {groupBy: GroupBy[1] | $groupBy.parent->set()}, + {step: CompilationStep[1] | $step.property->map(fun | $fun->eval('set', []))->first()->cast(@RelSetImplementation)}, + {other: Any[1] | []} + ]); +} + +function meta::rel::compile::ir::root(expr: PExpr[1]): PExpr[1] { + $expr->match([ + {access: SetAccess[1] | $access}, + {scoped: Scoped[1] | $scoped.parent->map(p | $p->root())->orElse($scoped)}, + {variable: VariablePlaceholder[1] | $variable}, + {access: PropertyAccess[1] | $access.parent->root()}, + {access: ColumnAccess[1] | $access.parent->root()} + ]) +} + +//////////////////////// +/// Translation methods +//////////////////////// + +function meta::rel::compile::ir::intoPExpr(spec: ValueSpecification[1]): Result[1] { + $spec->intoPExpr([]); +} + +function meta::rel::compile::ir::intoPExpr(spec: ValueSpecification[1], set: RelSetImplementation[0..1]): Result[1] { + $spec->match([ + {routed: meta::pure::router::store::metamodel::StoreMappingRoutedValueSpecification[1] | + $routed.sets + ->first() + ->okOr(| 'No set implementation supplied for value specification ' + $routed.id->quote()) + ->tryCast(@RelSetImplementation) + ->andThen({this: RelSetImplementation[1] | + $routed.value->match([ + {func: FunctionExpression[1] | $func->intoPExpr($this); }, + {var: VariableExpression[1] | $this->setAccess($var.name)->ok(); }, + {other: ValueSpecification[1] | $other->intoPExpr($this); } + ]); + }); + }, + {value: InstanceValue[1] | $value->intoPExpr($set); }, + {func: FunctionExpression[1] | $func->intoPExpr($set); }, + {variable: VariableExpression[1] | variablePlaceholder($variable.name)->ok(); }, + {other: Any[1] | $other->intoPExpr($set); } + ]) +} + +function meta::rel::compile::ir::intoPExpr(func: FunctionExpression[1], set: RelSetImplementation[0..1]): Result[1] { + $func.func->match([ + {property: Property[1] | + $property.name + ->okOr(| 'Encountered empty name for property.') + ->andThen({name: String[1] | + $func.parametersValues + ->at(0) + ->tryCast(@ExtendedRoutedValueSpecification) + ->andThen({paramSpec: RoutedValueSpecification[1] | + $set + ->okOr(| 'No set specified for property ' + $name->quote()) + ->andThen({set: RelSetImplementation[1] | + $paramSpec + ->intoPExpr() + ->then(inner | $inner->propertyAccess($property, $set)); + }); + }); + }); + }, + {property: QualifiedProperty[1] | + $func.parametersValues + ->at(0) + ->intoPExpr() + ->andThen({parent: PExpr[1] | + switch([ + // TODO check whether the first argument is a `TDSRow` + case($property.name == 'getString' || $property.name == 'getInteger' || $property.name == 'getDate', {| + // Existence of these values guaranteed by signature + let column = $func.parametersValues + ->at(1) + ->cast(@InstanceValue) + .values + ->toOne() + ->cast(@String); + + $parent->columnAccess($column)->ok(); + }) + ], {| + let exprs = $func.func->cast(@FunctionDefinition).expressionSequence->evaluateAndDeactivate(); + if ($exprs->size() == 1, {| + compilationStep({callback: FunctionDefinition<{Any[1]->Result[1]}>[1], state: meta::rel::compile::CompilationState[1] | + $parent + ->meta::rel::compile::compile($callback, $state) + ->andThen({prev: meta::rel::compile::CompilationState[1] | + let parent = $prev.current->toOne(); + + $exprs + ->at(0) + ->intoPExpr() + ->andThen({pexpr: PExpr[1] | + $pexpr->meta::rel::compile::compile({a: Any[1] | + if ($a == 'this', | $parent->ok(), | $callback->eval($a)); + }, $prev); + }); + }); + }) + ->ok(); + }, {| + let error = error(| + format('Encountered unknown qualified property while translating: `%s`', $property.name) + ); + error($error); + }); + }); + }); + }, + {other: Function[1] | + switch([ + case($other == filter_T_MANY__Function_1__T_MANY_, {| + $func.parametersValues + ->at(0) + ->intoPExpr() + ->andThen({parent: PExpr[1] | + $func.parametersValues + ->at(1) + ->intoScoped($parent) + ->then(scoped: Scoped[1] | $parent->filter($scoped)); + }); + }), + case($other == getAll_Class_1__T_MANY_, {| + $func.parametersValues + ->at(0) + ->map(vs: meta::pure::router::store::metamodel::StoreMappingRoutedValueSpecification[1] | + $vs.sets + ->first() + ->okOr(| 'No set implementation supplied.') + ->tryCast(@RelSetImplementation); + ) + ->then(set | all($set)); + }), + case($other == map_T_m__Function_1__V_m_ || $other == map_T_MANY__Function_1__V_MANY_, {| + $func.parametersValues + ->at(0) + ->intoPExpr() + ->andThen({parent: PExpr[1] | + $func.parametersValues + ->at(1) + ->intoScoped($parent) + ->then(scoped: Scoped[1] | $parent->mapExpr($scoped)); + }); + }), + case($other == exists_T_MANY__Function_1__Boolean_1_, {| + $func.parametersValues + ->at(0) + ->intoPExpr() + ->andThen({parent: PExpr[1] | + $func.parametersValues + ->at(1) + ->intoScoped($parent) + ->then({predicate: Scoped[1] | $parent->exists($predicate); }); + }) + }), + case($other == forAll_T_MANY__Function_1__Boolean_1_, {| + $func.parametersValues + ->at(0) + ->intoPExpr() + ->andThen({parent: PExpr[1] | + $func.parametersValues + ->at(1) + ->intoScoped($parent) + ->then({predicate: Scoped[1] | $parent->forAll($predicate); }); + }) + }), + case($other == project_T_MANY__Path_MANY__TabularDataSet_1_, {| + $func.parametersValues + ->at(0) + ->intoPExpr() + ->andThen({parent: PExpr[1] | + let paths = $func.parametersValues + ->at(1); + + switch([ + case($paths->instanceOf(ExtendedRoutedValueSpecification), + | $paths + ->cast(@ExtendedRoutedValueSpecification) + .value + ->cast(@InstanceValue) + .values + ->cast(@meta::pure::metamodel::path::Path) + ), + case($paths->instanceOf(InstanceValue), | + $paths + ->cast(@InstanceValue) + .values + ->cast(@meta::pure::metamodel::path::Path) + ) + ], {| $paths->reactivate(); }) + ->okOr(| 'Encountered unknown argument during compilation of `project_T_MANY__Path_MANY__TabularDataSet_1_`.') + ->andThem({paths: meta::pure::metamodel::path::Path[*] | + $parent + ->set() + ->okOr(| 'Expected set in parent expression of `project_T_MANY__Path_MANY__TabularDataSet_1_`.') + ->andThen({set: RelSetImplementation[1] | + $paths + ->map({path | + $path.path + ->fold({element, accum | + $accum + ->andThen({expr: PExpr[1] | + $element + ->tryCast(@meta::pure::metamodel::path::PropertyPathElement) + ->andThen(p: meta::pure::metamodel::path::PropertyPathElement[1] | $p.property->tryCast(@Property)) + ->andThen({property: Property[1] | + $property + .genericType + .rawType + ->okOr(| format('No type information for property `%s`.', $property.name)) + ->then({type: Type[1] | + let next = + $set + .parent + ->meta::pure::mapping::classMappingById($type->elementToPath('_')) + ->map(set | $set->cast(@RelSetImplementation)); + + $expr->propertyAccess($property, $next); + }) + }); + }); + }, ok(setAccess($set, 'x'))) + ->then(expr: PExpr[1] | + let name = + if ($path.name->isEmpty() || $path.name == '', {| + $path.path + ->last() + ->map({last | + if ($last->instanceOf(meta::pure::metamodel::path::PropertyPathElement), {| + $last + ->cast(@meta::pure::metamodel::path::PropertyPathElement) + .property + .name + ->orElse('') + }, | '') + }) + ->orElse(''); + }, | $path.name) + ->orElse(''); + + pair($name, $expr->scoped('x')->withParent($parent)); + ); + }) + ->collect() + ->them({pairs: Pair[*] | + $parent->project($pairs); + }); + }); + }); + }); + }), + case($other == project_T_MANY__ColumnSpecification_MANY__TabularDataSet_1_ || + $other == project_TabularDataSet_1__ColumnSpecification_MANY__TabularDataSet_1_, {| + $func.parametersValues + ->at(0) + ->intoPExpr() + ->andThen({parent: PExpr[1] | + $func.parametersValues + ->at(1) + ->tryCast(@InstanceValue) + ->andThen({params: InstanceValue[1] | + $params.values + ->map({v | + $v->tryCast(@InstanceValue) + ->then(i: InstanceValue[1] | + // Values guaranteed by function signature + $i.values + ->toOne() + ->cast(@BasicColumnSpecification) + ); + }) + ->collect() + ->andThem({columns: BasicColumnSpecification[*] | + $columns.func + ->map(f | + $f->tryCast(@FunctionDefinition) + ->andThen(fexpr: FunctionDefinition[1] | $fexpr->intoScoped($parent)) + ) + ->collect() + ->them(fexprs | $parent->project($columns.name->zip($fexprs))); + }); + }); + }); + }), + case($other == groupBy_K_MANY__Function_MANY__AggregateValue_MANY__String_MANY__TabularDataSet_1_, {| + $func.parametersValues + ->at(0) + ->intoPExpr() + ->andThen({parent: PExpr[1] | + $func.parametersValues + ->at(1) + ->intoScopes($parent) + ->collect() + ->andThem({group: Scoped[*] | + $func.parametersValues + ->at(2) + ->intoAggregates($parent) + ->collect() + ->andThem({aggregates: Aggregate[*] | + $func.parametersValues + ->at(3) + ->tryCast(@InstanceValue) + ->andThen(i: InstanceValue[1] | + $i.values + ->map(v | $v->tryCast(@String)) + ->collect() + ) + ->andThem({names: String[*] | + if ($names->size() != $group->size() + $aggregates->size(), + | error('Number of specified columns does not match the arity of the `group by` expression.'), + {| + let namedAggregates = + $aggregates + ->toNumbered() + ->map({pair: Pair[1] | + let agg = $pair.second; + ^$agg(name=$names->at($group->size() + $pair.first - 1)); + }); + $parent + ->groupBy($group, $namedAggregates, $names) + ->ok(); + } + ); + }) + }) + }); + }); + }), + case($other == groupBy_TabularDataSet_1__String_MANY__AggregateValue_MANY__TabularDataSet_1_, {| + $func.parametersValues + ->at(0) + ->intoPExpr() + ->andThen({parent: PExpr[1] | + $func.parametersValues + ->at(1) + ->tryCast(@InstanceValue) + ->andThen(v: InstanceValue[1] | + $v.values + ->map(s | $s->tryCast(@String)) + ->collect() + ) + ->andThem({columns: String[*] | + $func.parametersValues + ->at(2) + ->map(vs: ValueSpecification[1] | $vs->intoAggregates($parent)->collect()) + ->them({aggregates: Aggregate[*] | + $parent->groupBy($columns, $aggregates); + }); + }) + }); + }), + case($other == and_Boolean_1__Boolean_1__Boolean_1_ || + $other == or_Boolean_1__Boolean_1__Boolean_1_ || + $other == equal_Any_MANY__Any_MANY__Boolean_1_ || + $other == greaterThan_Number_1__Number_1__Boolean_1_ || + $other == greaterThanEqual_Number_1__Number_1__Boolean_1_ || + $other == greaterThan_Date_1__Date_1__Boolean_1_ || + $other == greaterThanEqual_Date_1__Date_1__Boolean_1_ || + $other == lessThan_Number_1__Number_1__Boolean_1_ || + $other == lessThanEqual_Number_1__Number_1__Boolean_1_ || + $other == lessThan_Date_1__Date_1__Boolean_1_ || + $other == lessThanEqual_Date_1__Date_1__Boolean_1_ || + $other == divide_Number_1__Number_1__Float_1_, {| + let left = $func.parametersValues->at(0); + let right = $func.parametersValues->at(1); + + [$left, $right] + ->evaluateAndDeactivate() + ->tryCastm(@ValueSpecification) + ->andThem({specs: ValueSpecification[*] | + $specs + ->map(spec | $spec->intoPExpr()) + ->collect() + }) + ->andThem({arguments: PExpr[*] | + $func + ->getFunctionExpr() + ->then(fn | $arguments->fexpr($fn)); + }); + }), + case($other == not_Boolean_1__Boolean_1_ || $other == isEmpty_Any_$0_1$__Boolean_1_ || + $other == toOne_T_MANY__T_1_, {| + $func.parametersValues + ->at(0) + ->intoPExpr() + ->andThen({inner: PExpr[1] | + $func + ->getFunctionExpr() + ->then(fn | $inner->fexpr($fn)); + }); + }), + case($other == plus_Number_MANY__Number_1_ || $other == plus_String_MANY__String_1_ || + $other == plus_Integer_MANY__Integer_1_ || $other == plus_Float_MANY__Float_1_ || + $other == times_Number_MANY__Number_1_ || $other == times_Integer_MANY__Integer_1_ || + $other == times_Float_MANY__Float_1_ || $other == minus_Number_MANY__Number_1_ || + $other == minus_Integer_MANY__Integer_1_ || $other == minus_Float_MANY__Float_1_, {| + $func.parametersValues + ->at(0) + ->tryCast(@InstanceValue) + ->andThen({spec: InstanceValue[1] | + $spec.values + ->map(v: ValueSpecification[1] | $v->intoPExpr()) + ->collect(); + }) + ->andThem({params: PExpr[*] | + $func + ->getFunctionExpr() + ->then(fn | $params->fexpr($fn)); + }); + }), + case($other == sum_Integer_MANY__Integer_1_ || $other == sum_Float_MANY__Float_1_ || $other == sum_Number_MANY__Number_1_ || + $other == count_Any_MANY__Integer_1_ || + $other == max_Integer_MANY__Integer_$0_1$_ || $other == max_Float_MANY__Float_$0_1$_ || + $other == min_Integer_MANY__Integer_$0_1$_ || $other == min_Float_MANY__Float_$0_1$_ || + $other == toString_Any_1__String_1_, {| + $func.parametersValues + ->at(0) + ->intoPExpr() + ->andThen({parent: PExpr[1] | + $func + ->getFunctionExpr() + ->then(fun | $parent->fexpr($fun)); + }); + }), + case($other == if_Boolean_1__Function_1__Function_1__T_m_, {| + $func.parametersValues + ->at(0) + ->intoPExpr() + ->andThen({condition: PExpr[1] | + $func.parametersValues + ->at(1) + ->intoScoped() + ->andThen({then: Scoped[1] | + $func.parametersValues + ->at(2) + ->intoScoped() + ->then(else: Scoped[1] | $condition->ifThenElse($then, $else)); + }); + }); + }), + case($other == instanceOf_Any_1__Type_1__Boolean_1_, {| + let object = $func.parametersValues->at(0); + let type = $func.parametersValues->at(1); + + $object + ->intoPExpr() + ->andThen({obj: PExpr[1] | + $type + ->tryCast(@ExtendedRoutedValueSpecification) + ->andThen({spec: ExtendedRoutedValueSpecification[1] | + $spec + ->intoPExpr() + ->then({class: PExpr[1] | + compilationStep({callback: FunctionDefinition<{Any[1]->Result[1]}>[1], state: meta::rel::compile::CompilationState[1] | + $obj + ->meta::rel::compile::compile($callback, $state) + ->andThen({state: meta::rel::compile::CompilationState[1] | + let objExpr = $state.current->toOne(); + $class + ->meta::rel::compile::compile($callback, $state) + ->then({next: meta::rel::compile::CompilationState[1] | + let typeExpr = $next.current->toOne(); + let current = $typeExpr->atom($objExpr); + + ^$next(current=$current->annotate(Boolean)); + }); + }); + }); + }); + }); + }); + }), + /*case($other == cast_Any_m__T_1__T_m_, {| + $func.parametersValues + ->at(0) + ->intoPExpr() + ->andThen({obj: PExpr[1] | + $func.parametersValues + ->at(1) + ->tryCast(@ExtendedRoutedValueSpecification) + ->andThen({spec: ExtendedRoutedValueSpecification[1] | + $spec.sets + ->first() + ->okOr(| 'No set implementation specified for argument of `cast`.') + ->tryCast(@RelSetImplementation) + ->then({set: RelSetImplementation[1] | + compilationStep({callback: FunctionDefinition<{Any[1]->Result[1]}>[1], state: meta::rel::compile::CompilationState[1] | + $obj + ->meta::rel::compile::compile($callback, $state) + ->then({next: meta::rel::compile::CompilationState[1] | + let obj = $next.current->toOne(); + let var = $next.variableFactory->meta::rel::compile::utils::next('x')->var(); + let current = + $var + ->from($var->in($obj)->where($set.classExpr->atom($var))); + + ^$next(current=$current->annotate($set.class)); + //$next; + }) + }, + {property: String[1], params: Any[*] | + if ($property == 'set', | $set, | []); + }); + }) + }); + }); + }),*/ //TODO + case($other == meta::pure::graphFetch::execution::serialize_T_MANY__RootGraphFetchTree_1__String_1_, {| + $func.parametersValues + ->at(0) + ->intoPExpr() + ->then({parent: PExpr[1] | + compilationStep({callback: FunctionDefinition<{Any[1]->Result[1]}>[1], state: meta::rel::compile::CompilationState[1] | + $parent + ->meta::rel::compile::compile($callback, $state) + ->then({state: meta::rel::compile::CompilationState[1] | $state}); + }); + }); + }), + case($other == meta::pure::graphFetch::execution::graphFetch_T_MANY__RootGraphFetchTree_1__T_MANY_, {| + $func.parametersValues + ->at(0) + ->intoPExpr() + ->then({parent: PExpr[1] | + compilationStep({callback: FunctionDefinition<{Any[1]->Result[1]}>[1], state: meta::rel::compile::CompilationState[1] | + // TODO: Implement! + $parent + ->meta::rel::compile::compile($callback, $state) + ->then({state: meta::rel::compile::CompilationState[1] | $state}); + }); + }); + }), + case($other == meta::pure::functions::lang::extractEnumValue_Enumeration_1__String_1__T_1_, {| + $func.parametersValues + ->at(0) + ->tryCast(@InstanceValue) + ->andThen({value: InstanceValue[1] | + let enum = $value.values + ->at(0) + ->cast(@Enumeration); + + $func.parametersValues + ->at(1) + ->tryCast(@InstanceValue) + ->then({val: InstanceValue[1] | + let enumValue = $val.values + ->at(0) + ->cast(@String); + + compilationStep({callback: FunctionDefinition<{Any[1]->Result[1]}>[1], state: meta::rel::compile::CompilationState[1] | + ^$state(current= + $enum + ->enumName() + ->meta::rel::metamodel::rel() + ->appl(meta::rel::metamodel::label($enumValue)) + ) + ->ok(); + }); + }); + }); + }), + case($other == meta::pure::tds::join_TabularDataSet_1__TabularDataSet_1__JoinType_1__Function_1__TabularDataSet_1_, {| + meta::rel::compile::ir::tds::intoPExpr($func); + }), + case($other == meta::pure::tds::filter_TabularDataSet_1__Function_1__TabularDataSet_1_, {| + meta::rel::compile::ir::tds::intoPExpr($func); +// +// FIXME: Commented out to fix the build. +// }), +// case($other == meta::rel::query::def_String_1__FunctionDefinition_1__Any_MANY_, {| +// // TODO not implemented yet +// let query = $func.parametersValues->at(1)->intoScoped()->unwrap()->inspect(); +// +// meta::rel::compile::ir::const(1)->ok(); +// + }) + ], {| + let error = error(| + 'Encountered unknown instance while translating: ' + + $other + ->elementToPath() + ->else(| '<>') + ->quote(); + ); + error($error); + }); + } + ]); +} + +function meta::rel::compile::ir::intoPExpr(spec: InstanceValue[1], set: RelSetImplementation[0..1]): Result[1] { + $spec.values + ->okOr(| 'Expected value within `InstanceValue`.') + ->andThem({values: Any[*] | + if ($values->size() != 1, + | error(error(| 'Expected exactly one value in `InstanceValue`.')), + | $values->toOne()->ok() + ); + }) + ->andThen(value: Any[1] | $value->intoPExpr($set)); +} + +function meta::rel::compile::ir::intoPExpr(value: Any[1], set: RelSetImplementation[0..1]): Result[1] { + $value->match([ + s: String[1] | ok(string($s)), + i: Integer[1] | ok(integer($i)), + f: Float[1] | ok(float($f)), + b: Boolean[1] | ok(boolean($b)), + d: StrictDate[1] | ok(strictDate($d)), + d: DateTime[1] | ok(dateTime($d)), + {class: Class[1] | + $set + ->map({set: RelSetImplementation[1] | + compilationStep({callback: FunctionDefinition<{Any[1]->Result[1]}>[1], state: meta::rel::compile::CompilationState[1] | + ^$state(current=$set.classExpr) + ->ok(); + }); + }) + ->okOr(| format('Encountered class `%s` but no set implementation has been provided.', $class.name)); + }, + {a: Any[1] | + let error = error(| + 'Encountered unknown instance while translating: ' + + $a + ->type() + ->elementToPath() + ->else(| '<>') + ->quote(); + ); + error($error); + } + ]) +} + +function meta::rel::compile::ir::intoScoped(spec: ValueSpecification[1]): Result[1] { + $spec->intoScoped([]); +} + +function meta::rel::compile::ir::intoScoped(spec: ValueSpecification[1], parent: PExpr[0..1]): Result[1] { + $spec->match([ + {spec: FunctionRoutedValueSpecification[1] | + $spec.value + ->tryCast(@InstanceValue) + ->andThen({value: InstanceValue[1] | + $value.values + ->first() + ->okOr(| 'Expected one value in `InstanceValue`.') + ->tryCast(@FunctionDefinition) + }) + ->andThen(func: FunctionDefinition[1] | $func->intoScoped($parent)); + }, + {spec: RoutedValueSpecification[1] | + $spec.value + ->tryCast(@FunctionRoutedValueSpecification) + ->andThen({inner: FunctionRoutedValueSpecification[1] | $inner->intoScoped($parent)}); + } + ]); +} + +function meta::rel::compile::ir::intoScoped(func: FunctionDefinition[1], parent: PExpr[0..1]): Result[1] { + $func.expressionSequence + ->evaluateAndDeactivate() + ->okOr(|'Encountered empty function body while evaluating expression.') + ->andThem({exprs: ValueSpecification[*] | + if ($exprs->size() != 1, + | error(error(| 'More than one expression in function body not supported yet.')), + | $exprs->toOne()->ok() + ); + }) + ->andThen({spec: ValueSpecification[1] | + $spec + ->intoPExpr() + ->andThen({inner: PExpr[1] | + $func + ->functionType() + .parameters + ->evaluateAndDeactivate() + ->tryCastm(@VariableExpression) + ->them(vars: VariableExpression[*] | $inner->scoped($vars.name, $parent)); + }); + }); +} + +function meta::rel::compile::ir::intoScopes(spec: ValueSpecification[1]): Result[*] { + $spec->intoScopes([]) +} + +function meta::rel::compile::ir::intoScopes(spec: ValueSpecification[1], parent: PExpr[0..1]): Result[*] { + $spec->match([ + {spec: InstanceValue[1] | + $spec.values + ->map({v | + $v->map(f: ValueSpecification[1] | $f->intoScoped($parent)); + }) + }, + {spec: ExtendedRoutedValueSpecification[1] | $spec.value->intoScopes($parent); }, + {other: ValueSpecification[1] | $other->intoScoped($parent); } + ]); +} + +function meta::rel::compile::ir::intoAggregates(spec: ValueSpecification[1], parent: PExpr[1]): Result[*] { + $spec->match([ + {fexpr: SimpleFunctionExpression[1] | + switch([ + case($fexpr.func == agg_FunctionDefinition_1__FunctionDefinition_1__AggregateValue_1_, {| + $fexpr.parametersValues + ->at(0) + ->intoScoped($parent) + ->andThen({map: Scoped[1] | + $fexpr.parametersValues + ->at(1) + ->intoScoped($parent) + ->then(aggFn: Scoped[1] | aggregate($map, $aggFn)); + }); + }), + case($fexpr.func == agg_String_1__FunctionDefinition_1__FunctionDefinition_1__AggregateValue_1_, {| + $fexpr.parametersValues + ->at(0) + ->tryCast(@InstanceValue) + ->andThen(v: InstanceValue[1] | + $v.values + ->toOne() + ->tryCast(@String) + ) + ->andThen({name: String[1] | + $fexpr.parametersValues + ->at(1) + ->intoScoped($parent) + ->andThen({map: Scoped[1] | + $fexpr.parametersValues + ->at(2) + ->intoScoped($parent) + ->then(aggFn: Scoped[1] | aggregate($map, $aggFn, $name)) + }); + }); + }) + ], {| + let error = error(| + format('Encountered unexpected aggregation function during translation: `%s`', $fexpr.func->elementToPath()) + ); + error($error); + }); + }, + {value: InstanceValue[1] | + $value.values + ->map({v | + let casted = $v->tryCast(@ValueSpecification); + if ($casted->isOk(), | $casted.values->toOne()->intoAggregates($parent), | error($casted.errors)); + }); + } + ]); +} + +function meta::rel::compile::ir::getFunctionExpr( + fn: FunctionExpression[1] +): ResultExpr[1]}>|0..1>[1] { + + let eval = + switch([ + case($fn.func == sum_Integer_MANY__Integer_1_ || $fn.func == sum_Float_MANY__Float_1_ || $fn.func == sum_Number_MANY__Number_1_, {| + {exprs: Expr[*] | + $exprs + ->at(0) + ->sum(); + }->ok(); + }), + case($fn.func == count_Any_MANY__Integer_1_, {| + {exprs: Expr[*] | + $exprs + ->at(0) + ->count(); + } + ->ok(); + }), + case($fn.func == max_Integer_MANY__Integer_$0_1$_ || $fn.func == max_Float_MANY__Float_$0_1$_, {| + {exprs: Expr[*] | + $exprs + ->at(0) + ->max(); + } + ->ok(); + }), + case($fn.func == min_Integer_MANY__Integer_$0_1$_ || $fn.func == min_Float_MANY__Float_$0_1$_, {| + {exprs: Expr[*] | + $exprs + ->at(0) + ->min(); + } + ->ok(); + }), + case($fn.func == equal_Any_MANY__Any_MANY__Boolean_1_, {| + {exprs: Expr[*] | + $exprs + ->at(0) + ->equals($exprs->at(1)); + } + ->ok(); + }), + case($fn.func == and_Boolean_1__Boolean_1__Boolean_1_, {| + {exprs: Expr[*] | + $exprs + ->at(0) + ->and($exprs->at(1)); + } + ->ok(); + }), + case($fn.func == or_Boolean_1__Boolean_1__Boolean_1_, {| + {exprs: Expr[*] | + $exprs + ->at(0) + ->or($exprs->at(1)) + ->annotate(Boolean); + } + ->ok(); + }), + case($fn.func == greaterThan_Number_1__Number_1__Boolean_1_ || $fn.func == greaterThan_Date_1__Date_1__Boolean_1_, {| + {exprs: Expr[*] | + $exprs + ->at(0) + ->greaterThan($exprs->at(1)); + } + ->ok(); + }), + case($fn.func == greaterThanEqual_Number_1__Number_1__Boolean_1_ || $fn.func == greaterThanEqual_Date_1__Date_1__Boolean_1_, {| + {exprs: Expr[*] | + $exprs + ->at(0) + ->greaterThanEqual($exprs->at(1)); + } + ->ok(); + }), + case($fn.func == lessThan_Number_1__Number_1__Boolean_1_ || $fn.func == lessThan_Date_1__Date_1__Boolean_1_, {| + {exprs: Expr[*] | + $exprs + ->at(0) + ->lessThan($exprs->at(1)); + } + ->ok(); + }), + case($fn.func == lessThanEqual_Number_1__Number_1__Boolean_1_ || $fn.func == lessThanEqual_Date_1__Date_1__Boolean_1_, {| + {exprs: Expr[*] | + $exprs + ->at(0) + ->lessThanEqual($exprs->at(1)); + } + ->ok(); + }), + case($fn.func == plus_Number_MANY__Number_1_ || $fn.func == plus_Integer_MANY__Integer_1_ || + $fn.func == plus_Float_MANY__Float_1_, {| + {exprs: Expr[*] | + $exprs->plus(); + } + ->ok(); + }), + case($fn.func == minus_Number_MANY__Number_1_ || $fn.func == minus_Integer_MANY__Integer_1_ || + $fn.func == minus_Float_MANY__Float_1_, {| + {exprs: Expr[*] | + $exprs->minus(); + } + ->ok(); + }), + case($fn.func == plus_String_MANY__String_1_, {| + {exprs: Expr[*] | + $exprs->concat(); + } + ->ok(); + }), + case($fn.func == times_Number_MANY__Number_1_ || $fn.func == times_Integer_MANY__Integer_1_ || + $fn.func == times_Float_MANY__Float_1_, {| + {exprs: Expr[*] | + $exprs->times(); + } + ->ok(); + }), + case($fn.func == divide_Number_1__Number_1__Float_1_, {| + {exprs: Expr[*] | + $exprs->at(0)->divide($exprs->at(1)); + } + ->ok(); + }), + case($fn.func == not_Boolean_1__Boolean_1_, {| + {exprs: Expr[*] | + $exprs + ->at(0) + ->not(); + } + ->ok(); + }), + case($fn.func == isEmpty_Any_$0_1$__Boolean_1_, {| + {exprs: Expr[*] | + $exprs + ->at(0) + ->group() + ->exists() + ->not(); + } + ->ok(); + }), + case($fn.func == toOne_T_MANY__T_1_, {| + {exprs: Expr[*] | + $exprs + ->at(0); + } + ->ok(); + }), + case($fn.func == toString_Any_1__String_1_, {| + {exprs: Expr[*] | + $exprs + ->at(0) + ->string(); + } + ->ok(); + }) + ], {| + let error = error(| + 'Encountered unknown instance while translating: ' + + $fn.func + ->elementToPath() + ->else(| '<>') + ->quote(); + ); + error($error); + }); + + let type = $fn.genericType.rawType; + + // Annotate function result with `type`. + $eval + ->then(inner: FunctionDefinition<{Expr[*]->Expr[1]}>[1] | + {exprs: Expr[*] | + $inner + ->eval($exprs) + ->annotate($type); + }; + ); +} diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/ir/tds.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/ir/tds.pure new file mode 100644 index 00000000000..23edea07fbf --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/ir/tds.pure @@ -0,0 +1,79 @@ +import meta::rel::compile::ir::*; +import meta::rel::compile::ir::tds::*; +import meta::rel::utils::*; +import meta::rel::utils::lang::*; + +Class meta::rel::compile::ir::tds::Join extends PExpr { + type: meta::relational::metamodel::join::JoinType[1]; + condition: Scoped[1]; + left: PExpr[1]; + right: PExpr[1]; +} + +Class meta::rel::compile::ir::tds::TDSFilter extends PExpr { + parent: PExpr[1]; + predicate: Scoped[1]; +} + +function meta::rel::compile::ir::tds::join( + left: PExpr[1], + right: PExpr[1], + type: meta::relational::metamodel::join::JoinType[1], + condition: Scoped[1] +): Join[1] { + ^Join(type=$type, condition=$condition, left=$left, right=$right); +} + +function meta::rel::compile::ir::tds::filter(parent: PExpr[1], predicate: Scoped[1]): TDSFilter[1] { + ^TDSFilter(parent=$parent, predicate=$predicate); +} + +function meta::rel::compile::ir::tds::intoPExpr(func: FunctionExpression[1]): Result[1] { + switch([ + case($func.func == meta::pure::tds::join_TabularDataSet_1__TabularDataSet_1__JoinType_1__Function_1__TabularDataSet_1_, {| + $func.parametersValues + ->at(0) + ->meta::rel::compile::ir::intoPExpr() + ->andThen({left: PExpr[1] | + $func.parametersValues + ->at(1) + ->meta::rel::compile::ir::intoPExpr() + ->andThen({right: PExpr[1] | + $func.parametersValues + ->at(2) + ->reactivate(^Map>()) + ->tryCastm(@meta::relational::metamodel::join::JoinType) + ->them({js | $js->toOne()}) + ->andThen({joinType: meta::relational::metamodel::join::JoinType[1] | + $func.parametersValues + ->at(3) + ->intoScoped() + ->then(condition: Scoped[1] | join($left, $right, $joinType, $condition)); + }); + }); + }); + }), + case($func.func == meta::pure::tds::filter_TabularDataSet_1__Function_1__TabularDataSet_1_, {| + $func.parametersValues + ->at(0) + ->meta::rel::compile::ir::intoPExpr() + ->andThen({parent: PExpr[1] | + $func.parametersValues + ->at(1) + ->meta::rel::compile::ir::intoScoped() + ->then({predicate: Scoped[1] | + meta::rel::compile::ir::tds::filter($parent, $predicate); + }); + }); + }) + ], {| + let error = error(| + 'Encountered unknown instance while translating: ' + + $func.func + ->elementToPath() + ->else(| '<>') + ->quote(); + ); + error($error); + }) +} \ No newline at end of file diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/ir/utils.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/ir/utils.pure new file mode 100644 index 00000000000..be7b976981a --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/ir/utils.pure @@ -0,0 +1,45 @@ +import meta::rel::compile::ir::*; +import meta::rel::compile::ir::utils::*; +import meta::rel::utils::*; + +function meta::rel::compile::ir::utils::display(expr: PExpr[1]): String[1] { + $expr->display(0); +} + +function meta::rel::compile::ir::utils::display(expr: PExpr[1], indent: Integer[1]): String[1] { + $expr->match([ + {int: IntegerConst[1] | $int.value->toString()}, + {float: FloatConst[1] | $float.value->toString()}, + {var: VariablePlaceholder[1] | $var.identifier}, + {all: All[1] | format('%sAll %s', [indent($indent), $all.set.id])}, + {access: SetAccess[1] | + format('%sSet access %s via variable `%s`', [indent($indent), $access.set.id->orElse(''), $access.variable]); + }, + {access: PropertyAccess[1] | + format('%sProperty access on `%s`\n%s', [indent($indent), $access.property.name->toOne(), $access.parent->display($indent + 2)]); + }, + {scoped: Scoped[1] | + format('%sScope via `%s`:\n%s', [indent($indent), $scoped.variables->joinStrings(', '), $scoped.inner->display($indent + 2)]); + }, + {exists: Exists[1] | + format('%sExists\n%s\n%s', [indent($indent), $exists.parent->display($indent + 2), $exists.predicate->display($indent + 2)]) + }, + {forAll: ForAll[1] | + format('%sFor all\n%s\n%s', [indent($indent), $forAll.parent->display($indent + 2), $forAll.predicate->display($indent + 2)]) + }, + {filter: Filter[1] | + format('%sFilter\n%s\n%s', [indent($indent), $filter.parent->display($indent + 2), $filter.predicate->display($indent + 2)]) + }, + {map: MapExpr[1] | + format('%sMap\n%s\n%s', [indent($indent), $map.parent->display($indent + 2), $map.body->display($indent + 2)]) + }, + {fexpr: FunctionExpr<|*>[1] | + format('%sFunction Expression %s\n%s', [ + indent($indent), + $fexpr.fn->id(), + $fexpr.arguments->map(arg | $arg->display($indent + 2))->joinStrings('\n') + ]) + } + ]); +} + diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/state.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/state.pure new file mode 100644 index 00000000000..7ac4d2096a8 --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/state.pure @@ -0,0 +1,63 @@ +import meta::rel::utils::collection::*; +import meta::rel::compile::*; +import meta::rel::metamodel::*; +import meta::rel::compile::utils::*; +import meta::rel::utils::*; + + +/** + * Type that tracks the state of compilation. + */ +Class meta::rel::compile::CompilationState { + // The program generated thus far. + program: Program[1]; + // The current expression. This expression is used to + // indicate the output of the subsequent step. This is a + // convenient helper attribute so that steps do not have to + // manually inspect `program` to retrieve the relevant result + // of the previous compilation step. + current: Expr[0..1]; + // A variable factory for generating unique identifiers. + variableFactory: IdentifierFactory[1]; + + // Factory used for producing relation names + relFactory: IdentifierFactory[1]; + + // Column names of the output + cols: Columns[1]; + debugContext: DebugContext[1]; + + // TODO: We can use this field to implement custom output + // serialization as used in, e.g., `graphFetch`. + serializers: Any[*]; +} + +function meta::rel::compile::CompilationState(debugContext: DebugContext[1]): CompilationState[1] { + ^CompilationState( + program=program('compiled', []), + variableFactory=^IdentifierFactory(), + relFactory=^IdentifierFactory(), + debugContext=$debugContext, + cols=columns() + ); +} + +function meta::rel::compile::step( + state: Result[1], + logic: FunctionDefinition<{Expr[1]->Result[1]}>[1] +): Result[1] { + $state->andThen({inner: CompilationState[1] | + $inner.current + ->okOr(| 'Expected expression in current state.') + ->andThen($logic) + ->then({expr: Expr[1] | ^$inner(current=$expr)}); + }); +} + +function meta::rel::compile::current(state: Result[1]): Result[1] { + $state->andThen(inner: CompilationState[1] | $inner->current()); +} + +function meta::rel::compile::current(state: CompilationState[1]): Result[1] { + $state.current->okOr(| 'Current expression empty.'); +} diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/translate/tds.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/translate/tds.pure new file mode 100644 index 00000000000..6e6e2a1145d --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/translate/tds.pure @@ -0,0 +1,146 @@ +import meta::rel::compile::*; +import meta::rel::compile::utils::*; +import meta::rel::compile::ir::*; +import meta::rel::compile::ir::tds::*; +import meta::rel::utils::*; +import meta::rel::metamodel::*; + +function meta::rel::compile::tds::compile( + join: Join[1], + callback: FunctionDefinition<{Any[1]->Result[1]}>[1], + state: CompilationState[1] +): Result[1] { + $join.left + ->compile($callback, $state) + ->andThen({leftState: CompilationState[1] | + let left = $leftState.current->toOne(); + + $join.right + ->compile($callback, $leftState) + ->andThen({rightState: CompilationState[1] | + let right = $rightState.current->toOne(); + + let leftVar = $join.condition.variables->at(0); + let rightVar = $join.condition.variables->at(1); + + let target = $leftState.relFactory->next('tbl'); + let vi = var('i'); + let vj = var('j'); + + $join.condition + ->compile({a: Any[1] | + $a->tryCast(@ColumnAccess) + ->then({access: ColumnAccess[1] | + let var = $access + ->root() + ->cast(@VariablePlaceholder); + + if ($var.identifier == $leftVar, {| + $left->appl([label($access.column), $vi]); + }, {| + $right->appl([label($access.column), $vj]); + }); + }); + }, $rightState) + ->then({joinedState: CompilationState[1] | + let joined = $joinedState.current->toOne(); + + let joinRule = def( + rel($target) + ->appl(label('base')), + rel('sort')->appl( + $joined->for(vars([$vi, $vj])) + ) + ); + + let projections = + $leftState.cols.names + ->map({col: String[1] | + def( + $target + ->appl(label($col)), + [ + var('k'), + $left->appl([label($col), var('i')]), + $target->appl([label('base'), var('k'), var('i'), dontCare()]) + ] + ->product() + ->from(vars(['i', 'k'])) + ); + }) + ->concatenate( + $rightState.cols.names + ->map({col: String[1] | + def( + $target + ->appl(label($col)), + [ + var('k'), + $right->appl([label($col), var('i')]), + $target->appl([label('base'), var('k'), dontCare(), var('i')]) + ] + ->product() + ->from(vars(['i', 'k'])) + ); + }) + ); + + ^$joinedState( + program=$joinedState.program->with($joinRule->concatenate($projections)), + cols=columns($leftState.cols.names->concatenate($rightState.cols.names)), + current=rel($target) + ); + }); + }); + }); +} + +function meta::rel::compile::tds::compile( + filter: TDSFilter[1], + callback: FunctionDefinition<{Any[1]->Result[1]}>[1], + state: CompilationState[1] +): Result[1] { + $filter.parent + ->compile($callback, $state) + ->andThen({parentState: CompilationState[1] | + let parent = $parentState.current->toOne(); + let vx = var('x'); + + $filter.predicate + ->compile({a: Any[1] | + $a->tryCast(@ColumnAccess) + ->andThen({access: ColumnAccess[1] | + let var = $access + ->root() + ->cast(@VariablePlaceholder) + .identifier; + + if ($var == $filter.predicate.variables, {| + $parent + ->appl([label($access.column), $vx]) + ->ok(); + }, | $callback->eval($a)); + }); + }, $parentState) + ->then({next: CompilationState[1] | + let table = $next.relFactory->next('tbl'); + let predicate = $next.current->toOne(); + + let vc = var('c'); + + let head = rel($table); + let rule = + $head + ->appl([$vc, $vx]) + ->def([ + $parent->appl([$vc, $vx]), + $predicate + ]); + + ^$next( + current=$head, + program=$next.program->with($rule) + ); + }); + }); +} \ No newline at end of file diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/translate/translate.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/translate/translate.pure new file mode 100644 index 00000000000..4064dd6d25a --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/translate/translate.pure @@ -0,0 +1,833 @@ +/** + * The main logic of the compiler from PURE to Rel queries. + * + * The compiler receives instances of `PExpr`, which is the parent + * (abstract) type of each IR object. For each type `T` of IR object, + * we provide a function + * ``` + * compile(T[1], FunctionDefinition<{Any[1]->Result[1]}>[1], CompilationState[1]): Result[1] + * ``` + * which carries out the actual compilation step. The second argument is + * a generic callback function that can be used by parent expression + * to guide compilation of child expressions, while `CompilationState` + * tracks outputs of previous compilation steps. + */ + +import meta::rel::utils::*; +import meta::rel::utils::collection::*; +import meta::rel::utils::lang::*; +import meta::rel::compile::*; +import meta::rel::compile::ir::*; +import meta::rel::compile::utils::*; +import meta::rel::metamodel::*; +import meta::rel::metamodel::syntactic::*; +import meta::rel::mapping::*; +import meta::rel::lib::*; + + +function meta::rel::compile::compile( + expr: PExpr[1], + callback: FunctionDefinition<{Any[1]->Result[1]}>[1], + state: CompilationState[1] +): Result[1] { + $expr->match([ + all: All[1] | $all->compile($callback, $state), + s: StringConst[1] | ^$state(current=meta::rel::metamodel::const($s.value)->annotate(String))->ok(), + i: IntegerConst[1] | ^$state(current=meta::rel::metamodel::const($i.value)->annotate(Integer))->ok(), + f: FloatConst[1] | ^$state(current=meta::rel::metamodel::const($f.value)->annotate(Float))->ok(), + b: BooleanConst[1] | ^$state( + current= + if($b.value, | booleanTrue(), | booleanFalse()) + ->annotate(Boolean) + ) + ->ok(), + d: StrictDateConst[1] | ^$state(current=meta::rel::metamodel::const($d.value)->annotate(StrictDate))->ok(), + d: DateTimeConst[1] | ^$state(current=meta::rel::metamodel::const($d.value)->annotate(DateTime))->ok(), + property: PropertyAccess[1] | $property->compile($callback, $state), + access: SetAccess[1] | $access->compile($callback, $state), + access: ColumnAccess[1] | $access->compile($callback, $state), + filter: Filter[1] | $filter->compile($callback, $state), + map: MapExpr[1] | $map->compile($callback, $state), + project: Project[1] | $project->compile($callback, $state), + scoped: Scoped[1] | $scoped->compile($callback, $state), + groupBy: GroupBy[1] | $groupBy->compile($callback, $state), + variablePlaceholder: VariablePlaceholder[1] | $variablePlaceholder->compile($callback, $state), + fexpr: FunctionExpr<|*>[1] | $fexpr->compile($callback, $state), + exists: meta::rel::compile::ir::Exists[1] | $exists->compile($callback, $state), + forAll: meta::rel::compile::ir::ForAll[1] | $forAll->compile($callback, $state), + step: CompilationStep[1] | $step.logic->eval($callback, $state), + ifThenElse: meta::rel::compile::ir::IfThenElse[1] | $ifThenElse->compile($callback, $state), + join: meta::rel::compile::ir::tds::Join[1] | $join->meta::rel::compile::tds::compile($callback, $state), + filter: meta::rel::compile::ir::tds::TDSFilter[1] | $filter->meta::rel::compile::tds::compile($callback, $state) + ]); +} + +function meta::rel::compile::compile( + all: All[1], + callback: FunctionDefinition<{Any[1]->Result[1]}>[1], + state: CompilationState[1] +): Result[1] { + $all.set.classExpr + ->okOr( + | 'Mappings with empty class expressions not yet supported. No class expression found ' + + 'for class ' + $all.set.class.name->else(| '<>')->quote() + ) + ->then(expr: Expr[1] | ^$state(current=$expr->annotate($all.set.class))) +} + +function meta::rel::compile::compile( + filter: Filter[1], + callback: FunctionDefinition<{Any[1]->Result[1]}>[1], + state: CompilationState[1] +): Result[1] { + $filter.parent + ->compile($callback, $state) + ->step({parent: Expr[1] | + let bound = var($state.variableFactory->next()); + + $filter.predicate + ->compile({a: Any[1] | + $a + ->tryCast(@String) + ->andThen({var: String[1] | + if ($var == $filter.predicate.variables->toOne(), + | ok($bound), + | $callback->eval($a) + ); + }) + }, $state) + ->step({predicate: Expr[1] | + $predicate + ->abstract($bound->in($parent)) + ->annotate($parent.annotation) + ->ok(); + /*$parent + ->atom([$index, $bound]) + ->and($predicate) + ->abstract(vars([$index, $bound])) + ->annotate($parent.annotation) + ->ok();*/ + }) + ->current(); + }); +} + +function meta::rel::compile::compile<|n>( + fexpr: FunctionExpr<|n>[1], + callback: FunctionDefinition<{Any[1]->Result[1]}>[1], + state: CompilationState[1] +): Result[1] { + $fexpr.arguments + ->map(a | $a->compile($callback, $state)->current()) + ->collect() + ->them({params: Expr[*] | $fexpr.fn->eval($params); }) + ->then({result: Expr[1] | ^$state(current=$result); }); +} + +function meta::rel::compile::compile( + exists: meta::rel::compile::ir::Exists[1], + callback: FunctionDefinition<{Any[1]->Result[1]}>[1], + state: CompilationState[1] +): Result[1] { + $exists.parent + ->compile($callback, $state) + ->step({parent: Expr[1] | + let bound = var($state.variableFactory->next()); + + $exists.predicate + ->compile({a: Any[1] | + $a + ->tryCast(@String) + ->andThen({var: String[1] | + if ($var == $exists.predicate.variables->toOne(), + | ok($bound), + | $callback->eval($a) + ); + }) + }, $state) + ->step({predicate: Expr[1] | + /*[ + meta::rel::metamodel::const(1), + $parent + ->atom([$index, $bound]) + ->and($predicate) + ->abstract(vars([$index, $bound])) + ->exists() + ] + ->product() + ->group() + ->annotate(Boolean) + ->ok()*/ + $predicate + ->abstract($bound->in($parent)) + ->exists() + ->annotate(Boolean) + ->ok() + }) + ->current(); + }); +} + +function meta::rel::compile::compile( + forAll: meta::rel::compile::ir::ForAll[1], + callback: FunctionDefinition<{Any[1]->Result[1]}>[1], + state: CompilationState[1] +): Result[1] { + $forAll.parent + ->compile($callback, $state) + ->step({parent: Expr[1] | + let bound = var($state.variableFactory->next()); + + $forAll.predicate + ->compile({a: Any[1] | + $a + ->tryCast(@String) + ->andThen({var: String[1] | + if ($var == $forAll.predicate.variables->toOne(), + | ok($bound), + | $callback->eval($a) + ); + }) + }, $state) + ->step({predicate: Expr[1] | + $bound + ->in($parent) + ->forAll($predicate) + ->annotate(Boolean) + ->ok(); + + /*[ + meta::rel::metamodel::const(1), + vars([$index, $bound]) + ->where( + $parent + ->atom([$index, $bound]) + ) + ->forAll($predicate) + ] + ->product() + ->group() + ->annotate(Boolean) + ->ok();*/ + }) + ->current(); + }); +} + +function meta::rel::compile::compile( + access: SetAccess[1], + callback: FunctionDefinition<{Any[1]->Result[1]}>[1], + state: CompilationState[1] +): Result[1] { + $callback + ->eval($access.variable) + ->then({var: Expr[1] | ^$state(current=$var->annotate($access.set.class)); }); +} + +function meta::rel::compile::compile( + access: ColumnAccess[1], + callback: FunctionDefinition<{Any[1]->Result[1]}>[1], + state: CompilationState[1] +): Result[1] { + $callback + ->eval($access) + ->then({expr: Expr[1] | + ^$state( + current=$expr + ); + }); +} + +function meta::rel::compile::compile( + access: PropertyAccess[1], + callback: FunctionDefinition<{Any[1]->Result[1]}>[1], + state: CompilationState[1] +): Result[1] { + $access.parent + ->compile($callback, $state) + ->step({parent: Expr[1] | + $access.property.name + ->okOr(| 'No name specified for property.') + ->andThen({propertyName: String[1] | + $access.parent + ->set() + ->map(set | $set->meta::pure::mapping::propertyMappingsByPropertyName($propertyName); ) + ->okOr(| format('No property mapping found for property %s', [$propertyName->quote()])) + ->them(inner: meta::pure::mapping::PropertyMapping[*] | $inner->first()->toOne()) + ->tryCast(@RelPropertyMapping) + ->andThen({mapping: RelPropertyMapping[1] | + $access.property.genericType.rawType + ->okOr(| 'Could not determine type of property ' + $propertyName) + ->then({type: Type[1] | + $mapping + .target + ->appl($parent); + }) + }); + }) + }); +} + +function meta::rel::compile::compile( + expr: MapExpr[1], + callback: FunctionDefinition<{Any[1]->Result[1]}>[1], + state: CompilationState[1] +): Result[1] { + $expr.parent + ->compile($callback, $state) + ->step({parent: Expr[1] | + let bound = var($state.variableFactory->next()); + + $expr.body + ->compile({a: Any[1] | + $a + ->tryCast(@String) + ->andThen({var: String[1] | + if ($var == $expr.body.variables->toOne(), + | ok($bound), + | $callback->eval($a) + ); + }) + }, $state) + ->step({body: Expr[1] | + $body + ->from($bound->in($parent)) + ->group() + ->annotate($body.annotation) + ->ok() + + /*[$index, $body] + ->product() + ->from( + vars([$index, $bound]) + ->where($parent->group()->atom([$index, $bound])) + ) + ->group() + ->annotate($body.annotation) + ->ok()*/ + }) + ->current(); + }); +} + +function meta::rel::compile::compile( + expr: Scoped[1], + callback: FunctionDefinition<{Any[1]->Result[1]}>[1], + state: CompilationState[1] +): Result[1] { + $expr.inner->compile($callback, $state); +} + +function meta::rel::compile::compile( + expr: Project[1], + callback: FunctionDefinition<{Any[1]->Result[1]}>[1], + state: CompilationState[1] +): Result[1] { + $expr.parent + ->compile($callback, $state) + ->andThen({state: CompilationState[1] | + let parent = $state.current->toOne(); + let targetTable = $state.relFactory->next('tbl'); + + if ($parent.annotation == TabularDataSet, {| + $expr.projections + ->map({pair: Pair[1] | + let name = $pair.first; + let vi = var('i'); + + $pair.second + ->compile({a: Any[1] | + $a->tryCast(@ColumnAccess) + ->andThen({access: ColumnAccess[1] | + $parent + ->appl([label($access.column), $vi]) + ->ok(); + }); + }, $state) + ->current() + ->then({map: Expr[1] | + let head = + rel($targetTable) + ->appl(label($name)); + let body = $map->for($vi); + + def($head, $body); + }); + }) + ->collect(); + }, {| + let vx = var('x'); + + let baseRule = + def( + rel($targetTable)->appl(label('base')), + $vx->from($vx->in($parent)) + ); + + $expr.projections + ->map({pair: Pair[1] | + let name = $pair.first; + let vx = var('x'); + + $pair.second + ->compile({a: Any[1] | + $a->tryCast(@String) + ->andThen({var: String[1] | + if ($var == $pair.second.variables->toOne(), | ok($vx), | $callback->eval($var)); + }); + }, $state) + ->current() + ->then({scope: Expr[1] | + def( + rel($targetTable) + ->appl([label($name), $vx]), + [ + $scope, + rel($targetTable) + ->atom([label('base'), $vx]) + ]->product() + ); + }); + }) + ->collect() + ->them({projections: Rule[*] | $baseRule->concatenate($projections)}); + }) + ->them({rules: Rule[*] | + ^$state( + program=$state.program->with($rules), + current=rel($targetTable)->annotate(TabularDataSet), + cols=columns($expr.projections.first) + ); + }); + }); +} + + +function meta::rel::compile::compile( + expr: VariablePlaceholder[1], + callback: FunctionDefinition<{Any[1]->Result[1]}>[1], + state: CompilationState[1] +): Result[1] { + $callback + ->eval($expr.identifier) + ->then(subst: Expr[1] | ^$state(current=$subst)); +} + +function meta::rel::compile::compile( + expr: GroupBy[1], + callback: FunctionDefinition<{Any[1]->Result[1]}>[1], + state: CompilationState[1] +): Result[1] { + $expr->match([ + gs: GroupByScopes[1] | $gs->compile($callback, $state), + gc: GroupByColumns[1] | $gc->compile($callback, $state) + ]); +} + +function meta::rel::compile::compile( + expr: GroupByScopes[1], + callback: FunctionDefinition<{Any[1]->Result[1]}>[1], + state: CompilationState[1] +): Result[1] { + $expr.parent + ->compile($callback, $state) + ->andThen({parentState: CompilationState[1] | + let parent = $parentState.current->toOne(); + let parentVariable = var($parentState.variableFactory->next()); + let indexVariable = var($parentState.variableFactory->next()); + let baseTable = $parentState.relFactory->next('tbl'); + + $expr.group->map({g: Scoped[1] | + $g->compile({a: Any[1] | + $a->tryCast(@String) + ->andThen({var: String[1] | + if ($var == $g.variables->toOne(), | ok($parentVariable), | $callback->eval($a)); + }); + }, $parentState) + ->current(); + }) + ->collect() + ->them({group: Expr[*] | + let rules = + $group + ->toIndexed() + ->fold({pair: Pair[1], accum | + let body = + $pair.second + ->for( + $parentVariable + ->where($baseTable->atom([label('base'), $parentVariable])) + ); + + let head = + rel($baseTable) + ->appl([label('group'), label($pair.first->toString())]); + + let rule = def($head, $body); + + $accum->concatenate($rule); + }, []) + ->concatenate( + rel($baseTable) + ->appl(label('base')) + ->def(var('x')->from(var('x')->in($parent))) + ) + // def tbl1[:groups] = sort[(tbl1:group[:"0"][j], tbl1:group[:"1"][j] from j)] + ->concatenate( + if ($expr.group->isEmpty(), | [], {| + def( + rel($baseTable) + ->appl(label('groups')), + rel('sort') + ->appl( + $expr.group + ->toIndexed() + ->map({pair: Pair[1] | + rel($baseTable) + ->appl([label('group'), label($pair.first->toString()), var('j')]) + }) + ->toOneMany() + ->product() + ->from(var('j')) + ->group() + ) + ) + }) + ) + ->concatenate( + //def tbl1[:Underlying] = tbl1[:groups][i, x, _] for i, x + $expr.group + ->toIndexed() + ->map({pair: Pair[1] | + let index = $pair.first; + let name = $expr.names->at($index); + + def( + rel($baseTable) + ->appl(label($name)), + rel($baseTable) + ->appl([label('groups'), var('i')]) + ->appl( + range(0, $index) + ->map(i | dontCare()) + ->concatenate(var('x')) + ->concatenate( + range($index + 1, $expr.group->size()) + ->map(i | dontCare()) + ) + ) + ->for(vars(['i', 'x'])) + ); + }) + ); + + pair( + ^$parentState( + program = $parentState.program->with($rules), + variableFactory=$parentState.variableFactory->reset(), + cols=$parentState.cols->clear() + ), + $baseTable + ); + }); + }) + ->andThen({pair: Pair[1] | + let state = $pair.first; + let baseTable = $pair.second; + + let factory = $state.variableFactory->reset(); + let groupByVariables = $expr.group->map(_g | $factory->next()->var()); + let head = $state.current->toOne(); + + $expr.aggregates->map({agg: Aggregate[1] | + let aggVar = $factory->next()->var(); + + $agg.aggregateFunction->compile({a: Any[1] | + $a->tryCast(@String) + ->andThen({var: String[1] | + if ($var == $agg.aggregateFunction.variables->toOne(), {| + $agg.map->compile({a: Any[1] | + $a->tryCast(@String) + ->andThen({var: String[1] | + if ($var == $agg.map.variables->toOne(), | ok($aggVar), | $callback->eval($a)); + }) + }, $state) + ->step({mapExpr: Expr[1] | + let body = $groupByVariables + ->toIndexed() + ->fold({pair: Pair[1], accum | + let groupBy = $pair.second; + let head = + rel($baseTable) + ->appl([label('group'), label($pair.first->toString())]); + + $accum->and($head->atom([$aggVar, $groupBy])); + }, + rel($baseTable) + ->appl(label('base')) + ->atom($aggVar) + ); + + $mapExpr + ->from( + $aggVar + ->where($body) + ) + ->ok(); + }) + ->current() + },| $callback->eval($a)); + }); + }, $state) + ->current(); + }) + ->collect() + ->them({aggregates: Expr[*] | + let offset = $groupByVariables->size(); + let vi = var('i'); + + let grouper = $groupByVariables + ->toIndexed() + ->map({pair: Pair[1] | + rel($baseTable) + ->appl($expr.names->at($pair.first)->label()) + ->atom([$vi, $pair.second]) + }); + + let rules = + $aggregates + ->toIndexed() + ->map({pair: Pair[1] | + let head = rel($baseTable) + ->appl($expr.names->at($pair.first + $offset)->label()); + + let binding = vars($vi->concatenate($groupByVariables)->toOneMany()); + let bound = + [$vi, $pair.second] + ->product(); + + let body = + if($grouper->size() == 0, {| + $bound->from($vi->in(meta::rel::metamodel::const(1))); + }, {| + $bound->from( + $binding + ->where( + $grouper + ->toOneMany() + ->and() + ) + ); + }); + + def($head, $body); + }); + + ^$state( + current=rel($baseTable)->annotate(TabularDataSet), + program=$state.program->with($rules), + cols=columns($expr.names) + ); + }); + }); +} + +function meta::rel::compile::compile( + expr: GroupByColumns[1], + callback: FunctionDefinition<{Any[1]->Result[1]}>[1], + state: CompilationState[1] +): Result[1] { + $expr.parent + ->compile($callback, $state) + ->andThen({parentState: CompilationState[1] | + let parent = $parentState.current->toOne(); + let targetTable = $parentState.relFactory->next('tbl'); + + let groupRules = + $expr.group + ->toIndexed() + ->fold({pair: Pair[1], accum | + let index = $pair.first; + let column = $pair.second; + let vx = var('x'); + let vi = var('i'); + + // Group reference rules of the form `tbl:group[:"i"] = ...` + let rules = [ + def( + rel($targetTable) + ->appl([label('group'), label($index->toString())]), + $parent->appl(label($column)) + ), + // Target rules of the form `tbl:column = ...` + def( + rel($targetTable) + ->appl(label($column)), + rel($targetTable) + ->appl([label('groups'), $vi]) + ->appl( + range(0, $index) + ->map(i | dontCare()) + ->concatenate(var('x')) + ->concatenate( + range($index + 1, $expr.group->size()) + ->map(i | dontCare()) + ) + ) + ->for(vars([$vi, $vx])) + ) + ]; + + $accum->concatenate($rules); + }, []) + ->concatenate( + if ($expr.group->isEmpty(), | [], {| + def( + rel($targetTable) + ->appl(label('groups')), + rel('sort') + ->appl( + $expr.group + ->toIndexed() + ->map({pair: Pair[1] | + rel($targetTable) + ->appl([label('group'), label($pair.first->toString()), var('j')]) + }) + ->toOneMany() + ->product() + ->from(var('j')) + ->group() + ) + ) + }) + ); + + $expr.aggregates + ->map({agg: Aggregate[1] | + let head = rel($targetTable) + ->appl($agg.name->toOne()->label()); + let vxs = $expr.group->map(g | $parentState.variableFactory->next('x')->var()); + let vj = var('j'); + + $agg.aggregateFunction->compile({a: Any[1] | + $a->tryCast(@String) + ->andThen({var: String[1] | + if ($var == $agg.aggregateFunction.variables->toOne(), {| + $agg.map->compile({a: Any[1] | + $a->match([ + {var: String[1] | + if ($var == $agg.map.variables->toOne(), {| + ok(reltrue()); + }, | $callback->eval($var)); + }, + {access: ColumnAccess[1] | + $access.parent->compile({a: Any[1] | + $a->tryCast(@String) + ->andThen({var: String[1] | + if ($var == $agg.map.variables->toOne(), {| + $parent + ->appl([label($access.column), $vj]) + ->ok(); + }, | $callback->eval($var)); + }); + }, $state) + ->current(); + } + ]) + ->then({map: Expr[1] | + let binding = + if ($expr.group->isEmpty(), {| + $vj->where($parent->appl([dontCare(), $vj, dontCare()])) + }, {| + $vj->where( + range($expr.group->size()) + ->fold({i, accum | + $accum->concatenate( + rel($targetTable) + ->atom([label('group'), label($i->toString()), $vj, $vxs->at($i)]) + ) + }, []) + ->toOneMany() + ->and() + //->product() + ); + }); + + $map->for($binding); + }); + }, $parentState) + ->current(); + }, | $callback->eval($var)); + }); + }, $parentState) + ->current() + ->then({aggBody: Expr[1] | + let vi = var('i'); + + let binding = + if ($expr.group->isEmpty(), {| + //vars($vi->concatenate($vxs)->toOneMany()) + $vi->in(meta::rel::metamodel::const(1)); + }, {| + vars([$vi]->concatenate($vxs)->toOneMany()) + ->where( + $expr.group + ->zip($vxs) + ->fold({group, accum | + $accum->concatenate( + rel($targetTable) + ->appl(label($group.first)) + ->appl([$vi, $group.second]) + ) + }, []) + ->toOneMany() + ->and() + ); + }); + + let body = + [$vi, $aggBody] + ->product() + ->from($binding); + + def($head, $body); + }); + }) + ->collect() + ->them({aggregateRules: Rule[*] | + ^$parentState( + program=$parentState.program + ->with($groupRules) + ->with($aggregateRules), + current=rel($targetTable)->annotate(TabularDataSet), + cols=columns($expr.names) + ); + }); + }); +} + + +function meta::rel::compile::compile( + ifThenElse: meta::rel::compile::ir::IfThenElse[1], + callback: FunctionDefinition<{Any[1]->Result[1]}>[1], + state: CompilationState[1] +): Result[1] { + $ifThenElse.condition + ->compile($callback, $state) + ->andThen({state: CompilationState[1] | + let condition = $state->current()->unwrap(); + $ifThenElse.then + ->compile($callback, $state) + ->andThen({state: CompilationState[1] | + let then = $state->current()->unwrap(); + + $ifThenElse.else + ->compile($callback, $state) + ->step({else: Expr[1] | + $condition + ->meta::rel::metamodel::ifThenElse($then, $else) + ->ok(); + }); + }); + }); +} \ No newline at end of file diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/utils.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/utils.pure new file mode 100644 index 00000000000..705d9b33581 --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/compile/utils.pure @@ -0,0 +1,72 @@ +import meta::rel::compile::utils::*; +import meta::rel::metamodel::*; +import meta::rel::utils::*; +import meta::rel::utils::collection::*; + +Class meta::rel::compile::utils::IdentifierFactory { + produced: Integer[*]; + prefix: String[0..1]; +} + +function meta::rel::compile::utils::next(factory: IdentifierFactory[1]): String[1] { + $factory.prefix + ->map(inner | $factory->next($inner)) + ->else(| $factory->next('x')); +} + +function meta::rel::compile::utils::next(factory: IdentifierFactory[1], prefix: String[1]): String[1] { + let new = max($factory.produced->else(| [0])) + 1; + $factory->mutateAdd('produced', $new); + + $prefix + $new->toString(); +} + +function meta::rel::compile::utils::reset(factory: IdentifierFactory[1]): IdentifierFactory[1] { + ^$factory(produced=[]); +} + +Class meta::rel::compile::utils::Columns { + names: String[*]; + positions: BiMap[1]; + + at(position: Integer[1]) { + $this.positions->getKey($position); + }: String[0..1]; + + position(name: String[1]) { + $this.positions->getValue($name); + }: Integer[0..1]; + + len() { + $this.names->size(); + }: Integer[1]; + + has(name: String[1]) { + $this.position($name)->isEmpty(); + }: Boolean[1]; +} + +function meta::rel::compile::utils::columns(): Columns[1] { + ^Columns(positions=BiMap(@String, @Integer)) +} + +function meta::rel::compile::utils::columns(names: String[*]): Columns[1] { + columns()->putAll($names); +} + +function meta::rel::compile::utils::put(columns: Columns[1], column: String[1]): Columns[1] { + let cols = $columns.names->concatenate($column); + let positions = $columns.positions->put($column, $cols->size() - 1); + + ^$columns(names=$cols, positions=$positions); +} + +function meta::rel::compile::utils::putAll(columns: Columns[1], names: String[*]): Columns[1] { + $names->fold({elem, accum | + $accum->put($elem); + }, $columns); +} + +function meta::rel::compile::utils::clear(columns: Columns[1]): Columns[1] { + ^$columns(names=[], positions=BiMap(@String, @Integer)); +} \ No newline at end of file diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/contract/contract.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/contract/contract.pure new file mode 100644 index 00000000000..9ab34031007 --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/contract/contract.pure @@ -0,0 +1,40 @@ +import meta::pure::store::*; +import meta::pure::mapping::*; +import meta::pure::runtime::*; +import meta::pure::extension::*; +import meta::rel::mapping::*; + +function meta::rel::contract::contract(): StoreContract[1] { + ^StoreContract( + id = 'relationalai', + + // Routing ------------------------------------------------------------------------------------------ + supports = meta::rel::mapping::supports_FunctionExpression_1__Boolean_1_, + supportsNativeJoinAmongElements = true, + shouldStopRouting = [ + meta::pure::tds::project_TableTDS_1__ColumnSpecification_MANY__TabularDataSet_1_, + // meta::pure::tds::tableToTDS_Table_1__TableTDS_1_, + // meta::pure::tds::viewToTDS_View_1__TableTDS_1_, + meta::pure::tds::join_TabularDataSet_1__TabularDataSet_1__JoinType_1__Function_1__TabularDataSet_1_ + // meta::pure::tds::join_TabularDataSet_1__TabularDataSet_1__JoinType_1__String_$1_MANY$__String_$1_MANY$__TabularDataSet_1_, + // meta::relational::functions::database::tableReference_Database_1__String_1__String_1__Table_1_, + // meta::relational::functions::columnProjectionsFromRoot_Any_MANY__NamedRelation_1__String_MANY__Boolean_$0_1$__Integer_$0_1$__RelationData_1_ + ], + // ------------------------------------------------------------------------------------------ Routing + + // ExecutionPlan Generation ------------------------------------------------------------------------- + supportsStreamFunction = meta::rel::mapping::supportsStream_FunctionExpression_1__Boolean_1_, + // ------------------------------------------------------------------------------------ ExecutionPlan + + // Core --------------------------------------------------------------------------------------------- + supportsSetImplementation = s:SetImplementation[1]|$s->instanceOf(RelSetImplementation), + supportsStore = s:Store[1] | $s->instanceOf(meta::rel::metamodel::store::RAIDatabase), + resolveStoreFromSetImplementation = {s:InstanceSetImplementation[1] | + $s.stores->toOne(); + }, + // --------------------------------------------------------------------------------------------- Core + + // DEPRECTAED AND TO BE REMOVED + executeStoreQuery = meta::rel::mapping::execution_StoreQuery_1__RoutedValueSpecification_$0_1$__Mapping_1__Runtime_1__ExecutionContext_1__Extension_MANY__DebugContext_1__Result_1_ + ) +} \ No newline at end of file diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/extension/extension.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/extension/extension.pure new file mode 100644 index 00000000000..e945c2dd626 --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/extension/extension.pure @@ -0,0 +1,9 @@ +import meta::rel::contract::*; +import meta::pure::extension::*; + +function meta::rel::extension::defaultRAIExtension(): Extension[1] { + ^Extension( + availableStores = [contract()], + type = 'relationalai' + ); +} \ No newline at end of file diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/mapping/execution.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/mapping/execution.pure new file mode 100644 index 00000000000..4715e02e9cb --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/mapping/execution.pure @@ -0,0 +1,221 @@ +import meta::rel::runtime::*; +import meta::pure::executionPlan::*; +import meta::rel::utils::*; +import meta::rel::utils::lang::*; +import meta::rel::utils::collection::*; +import meta::rel::metamodel::store::*; +import meta::rel::mapping::*; +import meta::rel::compile::ir::*; +import meta::rel::compile::*; +import meta::rel::compile::utils::*; +import meta::rel::metamodel::render::*; +import meta::rel::metamodel::*; +import meta::rel::execute::*; +import meta::rel::mapping::*; +import meta::rel::contract::*; + +Class meta::rel::mapping::QueryActivity extends meta::pure::mapping::Activity { + relSource: String[1]; +} + +function meta::rel::mapping::execution( + sq: meta::pure::mapping::StoreQuery[1], + _ext: RoutedValueSpecification[0..1], + mapping: meta::pure::mapping::Mapping[1], + runtime: meta::pure::runtime::Runtime[1], + exeCtx: meta::pure::runtime::ExecutionContext[1], + extensions: meta::pure::extension::Extension[*], + debug: DebugContext[1] +): meta::pure::mapping::Result[1] { + if (!$sq.store->instanceOf(RAIDatabase), | fail('Rel queries can only be executed against an instance of `RAIDatabase`'), | ''); + + $sq.fe->execution($mapping, $debug); +} + +function <> meta::rel::mapping::execution( + query: FunctionExpression[1], + mapping: meta::pure::mapping::Mapping[1], + debug: DebugContext[1] +): meta::pure::mapping::Result[1] { + let state = CompilationState($debug); + + let result = $query + ->intoPExpr() + ->andThen({node: PExpr[1] | + //$debug->debug(| 'PURE Expression plan:'); + //$debug->debug(| $node->meta::rel::compile::ir::utils::display()); + $node->compile({_a: Any[1] | error('Unexpected error during compilation.'); }, $state); + }) + ->andThen({state: CompilationState[1] | + $debug->debug(| 'Column names:'); + $debug->debug(| $state.cols.names); + $state.current + ->okOr(| 'No current expression.') + ->andThen({expr: Expr[1] | + let type = $query.genericType.rawType; + + // We distinguish three cases. + // 1. The type of the query may be a class belonging to our mapping. + // 2. The type of the query may be `TabularDataSet`, in which case we + // interpret the query results as a table. + // 3. The type may be a primitive type. + $type->match([ + {class: Class[1] | + switch([ + // Handles case 2. + case($class == TabularDataSet, {| + // Return the new state. + let outputBody = + $state.cols.names + ->map({col: String[1] | + $expr + ->appl([label($col), var('i')]) + }); + + let output = + def( + rel('output'), + if ($outputBody->isEmpty(), | reltrue(), {| + $outputBody + ->toOneMany() + ->product() + ->from(var('i')) + }) + ); + + ^$state( + program=$state.program->with($output) + ) + ->ok(); + }) + ], {| + // Handles case 1. + $mapping + ->meta::pure::mapping::_classMappingByClass($class) + ->okOr(| format('No class mapping found for `%s`', $class.name)) + ->tryCastm(@RelSetImplementation) + ->them({sets: RelSetImplementation[*] | $sets->first()->toOne(); }) + ->andThen({set: RelSetImplementation[1] | + $set + ->propertyOutputs() + ->them({rules: Pair[*] | + ^$state( + program=$state + .program + ->with([ + rel('output') + ->appl(label('query')) + ->headAtom(var('x')) + ->def($expr->atom(var('x'))) + ]) + ->with($rules.second) + ) + }); + }); + }); + }, + // Handles case 3. + {p: PrimitiveType[1] | + ^$state(program= + $state + .program + ->with(rel('output')->def($expr)) + ) + ->ok(); + } + ]); + }); + }); + + + if ($result->isOk(), {| + let unwrapped = $result->unwrap(); + let compiled = $unwrapped.program->render(); + + ^meta::pure::mapping::Result( + values=[], + activities=[^QueryActivity(relSource=$compiled)] + ); + }, {| + // Fail with error message + $result->unwrap(); + ^meta::pure::mapping::Result(); + }); +} + +/** + * Helper function which generates output rules for the property mappings + * belonging to `set`. Output rules take the format + * + * ```rel + * def output[:property] = Class:property[x] for x in output[:query] + * ``` + * + * Here, `Class:property` is the property expression associated to the property + * named `property`. This function assumes that query results are stored in + * `output[:query]` + */ +function <> meta::rel::mapping::propertyOutputs( + set: RelSetImplementation[1] +): Result|*>[1] { + $set.propertyMappings + ->tryCastm(@RelPropertyMapping) + ->them({properties: RelPropertyMapping[*] | + let primitiveProperties = + $properties + ->filter(p: RelPropertyMapping[1] | $p.property->isPrimitiveValueProperty()); + + let exprs = zip( + $primitiveProperties + .property + .name + ->map(n | label($n)), + $primitiveProperties.target + ); + + $exprs + ->map({pair | + $pair.first + ->pair( + rel('output') + ->appl($pair.first) + ->def( + $pair.second + ->appl(var('x')) + ->for(var('x') + ->where( + rel('output') + ->appl(label('query')) + ->atom(var('x')) + ) + ) + ) + ) + }); + }); +} + +function meta::rel::mapping::supports(f: FunctionExpression[1]): Boolean[1] { + true; +} + +function meta::rel::mapping::supportsStream(f: FunctionExpression[1]): Boolean[1] { + [ + meta::pure::functions::collection::in_Any_1__Any_MANY__Boolean_1_, + meta::pure::functions::collection::in_Any_$0_1$__Any_MANY__Boolean_1_ + ]->contains($f.func); +} + +function meta::rel::mapping::planExecution( + sq: meta::pure::mapping::StoreQuery[1], + ext: RoutedValueSpecification[0..1], + mapping: meta::pure::mapping::Mapping[0..1], + runtime: meta::pure::runtime::Runtime[0..1], + exeCtx: meta::pure::runtime::ExecutionContext[1], + extensions: meta::pure::router::extension::RouterExtension[*], + debug:DebugContext[1] +): ExecutionNode[1] { + fail('Not implemented'); + + ^ExecutionNode(resultType=^ResultType(type=^Type())); +} \ No newline at end of file diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/mapping/frontend/frontend.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/mapping/frontend/frontend.pure new file mode 100644 index 00000000000..9f34ba13dce --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/mapping/frontend/frontend.pure @@ -0,0 +1,241 @@ +import meta::rel::mapping::frontend::*; +import meta::rel::mapping::*; +import meta::pure::mapping::*; +import meta::rel::metamodel::*; +import meta::rel::metamodel::render::*; +import meta::rel::utils::*; +import meta::rel::utils::meta::*; +import meta::pure::store::*; +import meta::rel::metamodel::store::*; +import meta::rel::utils::collection::*; +import meta::rel::utils::lang::*; +import meta::rel::compile::utils::*; +import meta::rel::runtime::*; +import meta::rel::execute::*; +import meta::rel::utils::visitor::*; + +Class meta::rel::mapping::frontend::RAISchema { + mapping: Mapping[1]; + store: RAIDatabase[1]; + + insertFns: Map, FunctionDefinition<{Any[1..*]->Rule[*]}>>[1]; +} + +function meta::rel::mapping::frontend::RAISchema(name: String[1]): RAISchema[1] { + ^RAISchema( + mapping=^Mapping(), + store=RAIDatabase([], $name), + insertFns=^Map, FunctionDefinition<{Any[1]->Rule[*]}>>() + ); +} + +function meta::rel::mapping::frontend::schema(class: Class[1]): RelationDeclaration[1] { + $class.name + ->toOne() + ->relation([entityType($class)]); +} + +function meta::rel::mapping::frontend::schema(property: Property[1]): RelationDeclaration[1] { + $property->schema( + $property + .owner + ->cast(@Class) + ); +} + +function meta::rel::mapping::frontend::schema(property: Property[1], parent: Class[0..1]): RelationDeclaration[1] { + let name = $property.name->toOne(); + let rawType = $property->type(); + + let type = switch([ + case($rawType == String, | stringType()), + case($rawType == Integer, | integerType()), + case($rawType == Float, | floatType()), + case($rawType->instanceOf(Class), | entityType($rawType->cast(@Class))) + ], {| + fail(format('Unknown type for property %s', $name)); + entityType(Any); + }); + + $parent + ->map({class: Class[1] | + format('%s:%s', [$class.name->toOne(), $name]) + ->relation([entityType($class), $type]) + }) + ->orElse($name->relation([hashValueType(), $type])); +} + +function meta::rel::mapping::frontend::includeClass(schema: RAISchema[1], class: Class[1]): RAISchema[1] { + if ($schema.mapping->_classMappingByClass($class)->isEmpty(), {| + let classRelation = $class->schema(); + + let properties = $class + ->meta::pure::functions::meta::hierarchicalProperties() + ->concatenate( + $class->meta::pure::functions::meta::hierarchicalPropertiesFromAssociations() + ) + ->map({p | + let owner = + if($p.owner->instanceOf(Association), {| + let assoc = $p.owner->cast(@Association); + let left = $assoc.properties->at(0); + let right = $assoc.properties->at(1); + + let ref = if ($p == $left, | $right, | $left ); + $ref.genericType.rawType->toOne()->cast(@Class); + }, | $p.owner->cast(@Class)); + + let relation = $p->schema($owner); + pair($p->cast(@Property), $relation); + }); + + let augmentedStore = + $properties.second + ->fold({decl, accum | + $accum->with($decl); + }, $schema.store) + ->with($classRelation); + + let augmentedMapping = + $schema.mapping + ->withClassMapping($class, $classRelation->name()->rel(), {set: RelSetImplementation[1] | + $properties + ->fold({property, accum | + $accum->withPropertyMapping($property.first, $property.second->name()->rel(), $augmentedStore); + }, $set); + }); + + let augmentedSchema = + ^$schema( + mapping=$augmentedMapping, + store=$augmentedStore, + insertFns=$schema.insertFns->put($class, $class->insertFunction()) + ); + + $class + .propertiesFromAssociations + ->filter(property | $property->type()->instanceOf(Class)) + ->fold({property: Property[1], accum | + let associated = $property + .genericType + .rawType + ->toOne() + ->cast(@Class); + $accum->includeClass($associated); + }, $augmentedSchema); + }, | $schema); +} + +function meta::rel::mapping::frontend::insertFunction( + class: Class[1] +): FunctionDefinition<{Any[1..*]->Rule[*]}>[1] { + {objects: Any[1..*] | + $class + ->insertFunction(^Visited(explored=^Map())) + ->eval($objects) + .values; + }; +} + +function <> meta::rel::mapping::frontend::insertFunction( + class: Class[1], + visited: Visited[1] +): FunctionDefinition<{Any[1..*]->Visited[1]}>[1] { + let classRelation = $class->schema(); + let factory = ^IdentifierFactory(); + + {objects: Any[1..*] | + $objects->fold({object, visited | + if (!$visited->hasVisited($object), {| + let entityVar = var('id'); + // Fetch associated properties + let associated = $class + ->complexProperties() + ->toIndexed() + ->map({pair: Pair>[1] | + let index = $pair.first; + let property = $pair.second; + + $property + ->rawEvalProperty($object) + ->map({value | + // Introduce a bound variable for each associated property + triple($property.name->toOne()->label(), $value, $factory->next()->var()); + }); + }); + + let rule = + rel('insert') + ->appl($classRelation->name()->label()) + ->def( + $entityVar + ->concatenate( + // Create tuples of the form `(:property, #, value)`, where `#` is the + // (variable bound to) the hash value of `$object` + $class + ->primitiveProperties() + ->map({property | + $property + ->rawEvalProperty($object) + ->map({value: Any[1] | + [$property.name->toOne()->label(), $entityVar, const($value)] + ->tuple(); + }) + }) + ) + ->concatenate( + // Add insertion records for associated properties + $associated + ->map({triple | + [$triple.first, $entityVar, $triple.third]->tuple(); + }) + ) + ->toOneMany() + ->union() + ->from( + $entityVar + ->concatenate($associated.third) + ->toOneMany() + ->where( + $associated + ->fold({assoc, accum | + $accum->and( + $assoc.third->equals( + // TODO maybe externalize this functionality + rel('pure_hash')->appl(entityRecord($assoc.second)) + ) + ); + }, $entityVar->equals( + rel('pure_hash')->appl(entityRecord($object)) + )) + ) + ) + ); + + $associated + ->fold({triple, accum | + insertFunction($triple.second->class(), $accum) + ->eval($triple.second) + ->report($accum); + }, $visited->report($object)) + ->with($rule); + }, | $visited); + }, $visited); + }; +} + +function <> meta::rel::mapping::frontend::entityRecord(object: Any[1]): Expr[1] { + let class = $object->class(); + + $class + ->primitiveProperties() + ->map({property | + $property + ->rawEvalProperty($object) + ->map({value | + [$property.name->toOne()->label(), const($value)] + ->tuple() + }) + }) + ->relation(); +} diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/mapping/mapping.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/mapping/mapping.pure new file mode 100644 index 00000000000..c87ce4b7735 --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/mapping/mapping.pure @@ -0,0 +1,157 @@ +import meta::rel::mapping::*; +import meta::pure::mapping::*; +import meta::pure::store::*; +import meta::rel::metamodel::*; +import meta::rel::utils::*; + + +Class meta::rel::mapping::RelSetImplementation extends InstanceSetImplementation { + // We demand an expression that defines the class we are implementing. + classExpr: Expr[1]; +} + +Class meta::rel::mapping::RelPropertyMapping extends PropertyMapping { + target: Expr[1]; +} + +///////////////////////// +/// Constructor methods +///////////////////////// + +function meta::rel::mapping::propertyMapping( + property: Property[1], + target: Expr[1], + owner: RelSetImplementation[0..1], + store: Store[0..1] +): RelPropertyMapping[1] { + let targetSetImplementationId = + if ($property->isPrimitiveValueProperty(), + | [], + | $property.name + ->map({n: String[1] | + if ($property.owner->instanceOf(Association), {| + $property.owner + ->cast(@Association) + ->propertyByName($n) + ->map(property | + $property.genericType.rawType + ->map(type | $type->elementToPath('_'))); + }, + {| + //$property->ownerClass()->elementToPath('_'); + $property.genericType.rawType->toOne()->elementToPath('_') + }) + }) + ); + + ^RelPropertyMapping( + targetSetImplementationId=$targetSetImplementationId->else(| ''), + sourceSetImplementationId=$property->ownerClass()->elementToPath('_'), + property=$property, + target=$target, + store=$store, + owner=$owner + ); +} + +function meta::rel::mapping::propertyMapping( + sourceClass: Class[1], + property: String[1], + target: Expr[1], + owner: RelSetImplementation[0..1], + store: Store[0..1] +): RelPropertyMapping[0..1] { + $sourceClass + ->propertyByName($property) + ->map({prop | + propertyMapping( + $prop->cast(@Property), + $target, + $owner, + $store + ) + }); +} + +function meta::rel::mapping::classMapping( + sourceClass: Class[1], + classExpr: Expr[1], + mapping: Mapping[1], + stores: Store[*] +): RelSetImplementation[1] { + ^RelSetImplementation( + id=$sourceClass->elementToPath('_'), + root=true, + class=$sourceClass, + parent=$mapping, + stores=$stores, + classExpr=$classExpr + ); +} + +function meta::rel::mapping::withPropertyMapping( + setImpl: RelSetImplementation[1], + propertyMapping: RelPropertyMapping[1] +): RelSetImplementation[1] { + $setImpl->mutateAdd( + 'propertyMappings', + $propertyMapping + ); + + if(!$propertyMapping.store->in($setImpl.stores), | $setImpl->mutateAdd('stores', $propertyMapping.store), | $setImpl); +} + +function meta::rel::mapping::withPropertyMapping( + setImpl: RelSetImplementation[1], + source: Property[1], + target: Expr[1], + store: Store[0..1] +): RelSetImplementation[1] { + $setImpl->withPropertyMapping(propertyMapping($source, $target, $setImpl, $store)); +} + +function meta::rel::mapping::withPropertyMapping( + setImpl: RelSetImplementation[0..1], + property: String[1], + target: Expr[1], + store: Store[0..1] +): RelSetImplementation[0..1] { + $setImpl->map(set | + propertyMapping($set.class, $property, $target, $set, $store) + ->map(m | $set->withPropertyMapping($m)) + ); +} + +function meta::rel::mapping::withPropertyMapping( + setImpl: RelSetImplementation[0..1], + property: String[1], + target: Expr[1] +): RelSetImplementation[0..1] { + $setImpl->withPropertyMapping($property, $target, []); +} + + +function meta::rel::mapping::withClassMapping( + mapping: Mapping[1], + sourceClass: Class[1], + classExpr: Expr[1], + stores: Store[*], + logic: FunctionDefinition<{RelSetImplementation[1]->RelSetImplementation[1]}>[1] +): Mapping[1] { + $mapping->mutateAdd( + 'classMappings', + $logic->eval( + $sourceClass->classMapping($classExpr, $mapping, $stores) + ) + ); + $mapping; +} + +function meta::rel::mapping::withClassMapping( + mapping: Mapping[1], + sourceClass: Class[1], + classExpr: Expr[1], + logic: FunctionDefinition<{RelSetImplementation[1]->RelSetImplementation[1]}>[1] +): Mapping[1] { + $mapping->withClassMapping($sourceClass, $classExpr, [], $logic); +} \ No newline at end of file diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/mapping/support.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/mapping/support.pure new file mode 100644 index 00000000000..e001688370e --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/mapping/support.pure @@ -0,0 +1,14 @@ +import meta::pure::mapping::*; +import meta::rel::mapping::*; + +function meta::rel::mapping::rel(result: Result[1]): String[1] { + let relSource = $result.activities + ->filter(a | $a->instanceOf(QueryActivity)) + ->at(0) + ->cast(@QueryActivity) + .relSource; + + println($relSource); + + $relSource; +} \ No newline at end of file diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/rel/lib.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/rel/lib.pure new file mode 100644 index 00000000000..f8b02e4648e --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/rel/lib.pure @@ -0,0 +1,97 @@ +import meta::rel::metamodel::*; +import meta::rel::lib::*; +import meta::rel::metamodel::render::*; +import meta::rel::utils::*; + +function meta::rel::lib::booleanTrue(): Expr[1] { + rel('boolean_true'); +} + +function meta::rel::lib::booleanFalse(): Expr[1] { + rel('boolean_false'); +} + +function meta::rel::lib::enumerate(expr: Expr[1]): Expr[1] { + rel('enumerate')->appl($expr); +} + +function meta::rel::lib::count(expr: Expr[1]): Expr[1] { + rel('count')->appl($expr); +} + +function meta::rel::lib::sum(expr: Expr[1]): Expr[1] { + rel('sum')->appl($expr); +} + +function meta::rel::lib::min(expr: Expr[1]): Expr[1] { + rel('min')->appl($expr); +} + +function meta::rel::lib::max(expr: Expr[1]): Expr[1] { + rel('max')->appl($expr); +} + +function meta::rel::lib::transpose(expr: Expr[1]): Expr[1] { + rel('transpose')->appl($expr); +} + +function meta::rel::lib::plus(left: Expr[1], right: Expr[1]): Expr[1] { + [$left, $right]->plus(); +} + +function meta::rel::lib::plus(exprs: Expr[*]): Expr[1] { + $exprs + ->stringify(elem | $elem->render(), ' + ') + ->fragment(); +} + +function meta::rel::lib::times(exprs: Expr[*]): Expr[1] { + $exprs + ->stringify(elem | $elem->render(), ' * ') + ->fragment(); +} + +function meta::rel::lib::minus(exprs: Expr[*]): Expr[1] { + $exprs + ->stringify(elem | $elem->render(), ' - ') + ->fragment(); +} + +function meta::rel::lib::concat(exprs: Expr[*]): Expr[1] { + if ($exprs->size() == 0, + | const(''), + {| + let init = $exprs->at(0); + $exprs + ->slice(1, $exprs->size()) + ->fold({expr, accum | + rel('concat')->appl([$accum, $expr]); + }, $init) + ->group(); + } + ) +} + +function meta::rel::lib::divide(left: Expr[1], right: Expr[1]): Expr[1] { + fragment(format('%s / %s', [$left->render(), $right->render()])); +} + +function meta::rel::lib::greaterThan(left: Expr[1], right: Expr[1]): Expr[1] { + fragment(format('%s > %s', [$left->render(), $right->render()])) +} + +function meta::rel::lib::greaterThanEqual(left: Expr[1], right: Expr[1]): Expr[1] { + fragment(format('%s >= %s', [$left->render(), $right->render()])) +} + +function meta::rel::lib::lessThan(left: Expr[1], right: Expr[1]): Expr[1] { + fragment(format('%s < %s', [$left->render(), $right->render()])) +} + +function meta::rel::lib::lessThanEqual(left: Expr[1], right: Expr[1]): Expr[1] { + fragment(format('%s <= %s', [$left->render(), $right->render()])) +} + +function meta::rel::lib::string(expr: Expr[1]): Expr[1] { + rel('string')->appl($expr); +} \ No newline at end of file diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/rel/metamodel/rel.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/rel/metamodel/rel.pure new file mode 100644 index 00000000000..bac2ee123b1 --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/rel/metamodel/rel.pure @@ -0,0 +1,776 @@ +import meta::rel::metamodel::*; +import meta::rel::metamodel::render::*; +import meta::rel::utils::*; + + +Class <> meta::rel::metamodel::Annotated { + annotation: Any[*]; +} + +/** + * Abstract type representing expressions. + */ +Class <> meta::rel::metamodel::Expr extends Annotated { + variables() { + [] + }: Variable[*]; + + code() { + $this->render(); + }: String[1]; +} + +/** + * Type denoting a grouped expression which is rendered within + * parentheses. + */ +Class meta::rel::metamodel::ExprGroup extends Expr { + parent: Expr[1]; +} + +/** + * Expression type directly represented via code. + */ +Class meta::rel::metamodel::Fragment extends Expr { + code: String[1]; +} + +/** + * Type representing `_`. + */ +Class meta::rel::metamodel::DontCare extends Expr { } + +/** + * Abstract type representing bindings. + */ +Class <> meta::rel::metamodel::Binding extends Annotated { + code() { + $this->render(); + }: String[1]; +} + +/** + * Abstract type denoting constant values. + */ +Class <> meta::rel::metamodel::Constant extends Expr { } + +/** + * Type representing variables. A variables is both an expression + * and a binding. + */ +Class meta::rel::metamodel::Variable extends Expr, Binding { + identifier: String[1]; + + variables() { + [$this]; + }: Variable[*]; +} + +Class meta::rel::metamodel::Variables extends Binding, Expr { + inner: Variable[1..*]; +} + +Class meta::rel::metamodel::RelInteger extends Constant { + value: Integer[1]; +} + +Class meta::rel::metamodel::RelFloat extends Constant { + value: Float[1]; +} + +Class meta::rel::metamodel::RelString extends Constant { + value: String[1]; +} + +Class meta::rel::metamodel::RelDate extends Constant { + value: StrictDate[1]; +} + +Class meta::rel::metamodel::RelDateTime extends Constant { + value: DateTime[1]; +} + +/** + * Type representing tuples. + */ +Class meta::rel::metamodel::Tuple extends Expr { + arguments: Expr[*]; +} + +/** + * Type representing a relation's constructor, i.e., expressions that + * denote relations, for instance `{(1, 2); (3, 4)}`. + */ +Class meta::rel::metamodel::RelationCons extends Expr { + arguments: Tuple[*]; +} + +/** + * Binding involving a `where` clause. + */ +Class meta::rel::metamodel::WhereBinding extends Binding { + parents: Binding[1..*]; + where: Expr[1]; +} + +/** + * Binding involving an `in` clause. + */ +Class meta::rel::metamodel::InBinding extends Binding { + variable: Variable[1]; + in: Expr[1]; +} + +/** + * Denotes an intersection of expressions. We declare that such + * sequences are expressions as well. + */ +Class meta::rel::metamodel::Product extends Expr { + exprs: Expr[1..*]; + + variables() { + $this.exprs->fold({e, accum | + $accum->concatenate($e.variables()); + }, []); + }: Variable[*]; +} + +Class meta::rel::metamodel::Union extends Expr { + exprs: Expr[1..*]; + + variables() { + $this.exprs->fold({e, accum | + $accum->concatenate($e.variables()); + }, []); + }: Variable[*]; +} + +/** + * Abstract type for denoting expressions that may occur + * on the left-hand side (the "head") of definitions. + */ +Class <> meta::rel::metamodel::HeadExpr extends Expr { } + +/** + * Conjunction of two formulas. + */ +Class meta::rel::metamodel::And extends Expr { + conjuncts: Expr[*]; +} + +/** + * Disjunction of two formulas. + */ +Class meta::rel::metamodel::Or extends Expr { + disjuncts: Expr[*]; +} + +/** + * Negation of an expression (!). + */ +Class meta::rel::metamodel::Not extends Expr { + inner: Expr[1]; +} + +/** + * Formula stating that one formula implies the other. + */ +Class meta::rel::metamodel::Implies extends Expr { + antecedence: Expr[1]; + consequence: Expr[1]; +} + +/** + * Existential quantification over an expression. + */ +Class meta::rel::metamodel::Exists extends Expr { + inner: Expr[1]; +} + +/** + * Universal quantification over an expression. + */ +Class meta::rel::metamodel::ForAll extends Expr { + bindings: Binding[1..*]; + inner: Expr[1]; +} + +/** + * Type denoting an equality expression. + */ +Class meta::rel::metamodel::Equals extends Expr { + left: Expr[1]; + right: Expr[1]; +} + +/** + * Denotes an if-then-else expression. + */ +Class meta::rel::metamodel::IfThenElse extends Expr { + // The condition has to be boolean. + condition: Expr[1]; + then: Expr[1]; + else: Expr[1]; +} + +/** + * Type denoting relational applications that have relation names as heads. + */ +Class meta::rel::metamodel::NamedApplication extends HeadExpr { + head: HeadExpr[1]; + arguments: Expr[*]; +} + +/** + * Denotes the name of a relation. + */ +Class meta::rel::metamodel::RelationName extends HeadExpr { + identifier: String[1]; +} + + +/** + * A relational atom is a relational application that results in a formula (0-ary relation). + */ +Class meta::rel::metamodel::NamedAtom extends NamedApplication { } + +/** + * Type denoting arbitrary relational applications. + */ +Class meta::rel::metamodel::Application extends Expr { + head: Expr[1]; + arguments: Expr[*]; +} + +Class meta::rel::metamodel::Atom extends Application { } + +/** + * Denotes relational abstraction. + */ +Class meta::rel::metamodel::Abstraction extends Expr { + bindings: Binding[1..*]; + body: Expr[1]; +} + +/** + * Denotes composition (navigation). + */ +Class meta::rel::metamodel::Composition extends Expr { + from: Expr[1]; + to: Expr[1]; +} + +/** + * Denotes a `from` expression. + */ +Class meta::rel::metamodel::From extends Expr { + bindings: Binding[*]; + expr: Expr[1]; +} + +/** + * Denotes a `for` expression. + */ +Class meta::rel::metamodel::For extends Expr { + bindings: Binding[*]; + expr: Expr[1]; +} + +/** + * Abstract type representing elements or a program (rules and comments). + */ +Class <> meta::rel::metamodel::ProgramElement extends Annotated { + code() { + $this->render(); + }: String[1]; +} + +Class meta::rel::metamodel::Comment extends ProgramElement { } + +Class meta::rel::metamodel::LineComment extends Comment { + text: String[1]; +} + +/** + * Type representing a rule. + */ +Class meta::rel::metamodel::Rule extends ProgramElement { + head: HeadExpr[1]; + body: Expr[1..*]; + inline: Boolean[1]; +} + +Class meta::rel::metamodel::RawRule extends ProgramElement { + code: String[1]; +} + +/** + * Rule type representing entity definitions. + */ +Class meta::rel::metamodel::EntityDef extends Rule { + name: RelationName[1]; +} + +/** + * Type representing an integrity constraint. + */ +Class meta::rel::metamodel::IC extends Rule { } + + +Class meta::rel::metamodel::Module { + identifier: String[0..1]; + rules: Rule[*]; +} + +Class meta::rel::metamodel::Program { + identifier: String[0..1]; + elements: ProgramElement[*]; + + code() { + $this->render(); + }: String[1]; + + output() { + $this.elements + ->filter(e | + $e->match([ + r: Rule[1] | $r.head->identifier() == 'output', + _p: ProgramElement[1] | false + ]); + ) + ->map(e | $e->cast(@Rule)); + }: Rule[*]; +} + +Class <> meta::rel::metamodel::ConstType { } + +Class meta::rel::metamodel::RelationType { + positions: ConstType[*]; + names: Map[1]; +} + +Class meta::rel::metamodel::RelationTypeUnion extends RelationType { + union: RelationType[1..*]; +} + +Class meta::rel::metamodel::ConstTypeUnion extends ConstType { + union: ConstType[1..*]; +} + +Class meta::rel::metamodel::StringType extends ConstType { } + +Class meta::rel::metamodel::HashValueType extends ConstType { } + +Class meta::rel::metamodel::EntityType extends HashValueType { + class: Class[1]; +} + +Class meta::rel::metamodel::IntegerType extends ConstType { } + +Class meta::rel::metamodel::FloatType extends ConstType { } + +Class meta::rel::metamodel::LabelsType extends ConstType { } + +Class meta::rel::metamodel::Label extends Constant, ConstType { + identifier: String[1]; +} + + +//////////////////////// +/// Constructor methods +//////////////////////// + +function meta::rel::metamodel::const(value: Integer[1]): RelInteger[1] { + ^RelInteger(value=$value); +} + +function meta::rel::metamodel::const(value: Float[1]): RelFloat[1] { + ^RelFloat(value=$value); +} + +function meta::rel::metamodel::const(value: String[1]): RelString[1] { + ^RelString(value=$value); +} + +function meta::rel::metamodel::const(value: StrictDate[1]): RelDate[1] { + ^RelDate(value=$value); +} + +function meta::rel::metamodel::const(value: DateTime[1]): RelDateTime[1] { + ^RelDateTime(value=$value); +} + +function meta::rel::metamodel::const(value: Any[1]): Constant[1] { + $value->match([ + v: String[1] | $v->const(), + v: Integer[1] | $v->const(), + v: Float[1] | $v->const(), + v: StrictDate[1] | $v->const(), + v: DateTime[1] | $v->const() + ]); +} + +function meta::rel::metamodel::label(identifier: String[1]): Label[1] { + ^Label(identifier=$identifier->escapeString('"')); +} + +function meta::rel::metamodel::dontCare(): DontCare[1] { + ^DontCare(); +} + +function meta::rel::metamodel::stringType(): StringType[1] { + ^StringType(); +} + +function meta::rel::metamodel::hashValueType(): HashValueType[1] { + ^HashValueType(); +} + +function meta::rel::metamodel::entityType(class: Class[1]): EntityType[1] { + ^EntityType(class=$class); +} + +function meta::rel::metamodel::integerType(): IntegerType[1] { + ^IntegerType(); +} + +function meta::rel::metamodel::labelsType(): LabelsType[1] { + ^LabelsType(); +} + +function meta::rel::metamodel::floatType(): FloatType[1] { + ^FloatType(); +} + +function meta::rel::metamodel::typeUnion(types: ConstType[1..*]): ConstTypeUnion[1] { + ^ConstTypeUnion(union=$types); +} + +function meta::rel::metamodel::typeUnion(types: RelationType[1..*]): RelationTypeUnion[1] { + ^RelationTypeUnion(union=$types, names=^Map()); +} + +function meta::rel::metamodel::relationType(positions: ConstType[1..*]): RelationType[1] { + ^RelationType(positions=$positions, names=^Map()); +} + +function meta::rel::metamodel::relationType(positions: ConstType[1..*], names: Map[1]): RelationType[1] { + ^RelationType(positions=$positions, names=$names); +} + +function meta::rel::metamodel::tuple(arguments: Expr[*]): Tuple[1] { + ^Tuple(arguments=$arguments); +} + +function meta::rel::metamodel::relation(tuples: Tuple[*]): RelationCons[1] { + ^RelationCons(arguments=$tuples); +} + +function meta::rel::metamodel::reltrue(): RelationCons[1] { + relation(tuple([]->cast(@Expr))); +} + +function meta::rel::metamodel::relfalse(): RelationCons[1] { + relation([]); +} + +function meta::rel::metamodel::var(identifier: String[1]): Variable[1] { + ^Variable(identifier=$identifier); +} + +function meta::rel::metamodel::vars(inner: Variable[1..*]): Variables[1] { + ^Variables(inner=$inner); +} + +function meta::rel::metamodel::vars(inner: String[1..*]): Variables[1] { + vars($inner->map(v | var($v))->toOneMany()); +} + +function meta::rel::metamodel::atom(identifier: String[1], args: Expr[*]): NamedAtom[1] { + ^NamedAtom(head=^RelationName(identifier=$identifier), arguments=$args); +} + +function meta::rel::metamodel::atom(identifier: String[1], args: String[*]): NamedAtom[1] { + atom($identifier, $args->map(v | var($v))); +} + +function meta::rel::metamodel::atom(identifier: String[1]): NamedAtom[1] { + atom($identifier, []->cast(@Expr)); +} + +function meta::rel::metamodel::atom(expr: Expr[1], args: Expr[*]): Atom[1] { + ^Atom(head=$expr, arguments=$args); +} + +function meta::rel::metamodel::headAtom(expr: HeadExpr[1], args: Expr[*]): NamedAtom[1] { + ^NamedAtom(head=$expr, arguments=$args); +} + +function meta::rel::metamodel::rel(identifier: String[1]): RelationName[1] { + ^RelationName(identifier=$identifier); +} + +function meta::rel::metamodel::appl(head: HeadExpr[1], args: Expr[*]): NamedApplication[1] { + ^NamedApplication(head=$head, arguments=$args); +} + +function meta::rel::metamodel::appl(identifier: String[1], args: Expr[*]): NamedApplication[1] { + appl(rel($identifier), $args); +} + +function meta::rel::metamodel::appl(expr: Expr[1], args: Expr[*]): Application[1] { + ^Application(head=$expr, arguments=$args); +} + +function meta::rel::metamodel::in(variable: Variable[1], expr: Expr[1]): InBinding[1] { + ^InBinding(variable=$variable, in=$expr); +} + +function meta::rel::metamodel::where(parents: Binding[1..*], where: Expr[1]): WhereBinding[1] { + ^WhereBinding(parents=$parents, where=$where); +} + +function meta::rel::metamodel::abstract(body: Expr[1], bindings: Binding[1..*]): Abstraction[1] { + ^Abstraction(body=$body, bindings=$bindings); +} + +function meta::rel::metamodel::abstract(body: Expr[1], variables: String[1..*]): Abstraction[1] { + abstract($body, $variables->map(v | var($v))); +} + +function meta::rel::metamodel::and(left: Expr[1], right: Expr[1]): And[1] { + ^And(conjuncts=[$left, $right]); +} + +function meta::rel::metamodel::and(exprs: Expr[*]): Expr[1] { + if ($exprs->size() == 0, | reltrue(), {| + $exprs->slice(1, $exprs->size()) + ->fold({e, accum | + $accum->and($e); + }, $exprs->at(0)) + }); +} + +function meta::rel::metamodel::or(left: Expr[1], right: Expr[1]): Or[1] { + ^Or(disjuncts=[$left, $right]); +} + +function meta::rel::metamodel::not(inner: Expr[1]): Not[1] { + ^Not(inner=$inner); +} + +function meta::rel::metamodel::implies(antecedence: Expr[1], consequence: Expr[1]): Implies[1] { + ^Implies(antecedence=$antecedence, consequence=$consequence); +} + +function meta::rel::metamodel::comma(left: Expr[1..*], right: Expr[*]): Expr[1..*] { + $left->concatenate($right)->toOneMany(); +} + +function meta::rel::metamodel::exists(expr: Expr[1]): Exists[1] { + ^Exists(inner=$expr); +} + +function meta::rel::metamodel::forAll(bindings: Binding[1..*], expr: Expr[1]): ForAll[1] { + ^ForAll(bindings=$bindings, inner=$expr); +} + +function meta::rel::metamodel::equals(left: Expr[1], right: Expr[1]): Equals[1] { + ^Equals(left=$left, right=$right); +} + +function meta::rel::metamodel::compose(from: Expr[1], to: Expr[1]): Composition[1] { + ^Composition(from=$from, to=$to); +} + +function meta::rel::metamodel::from(expr: Expr[1], bindings: Binding[1..*]): From[1] { + ^From(bindings=$bindings, expr=$expr); +} + +function meta::rel::metamodel::from(expr: Expr[1], variables: String[1..*]): From[1] { + from($expr, $variables->map(v | var($v))); +} + +function meta::rel::metamodel::for(expr: Expr[1], bindings: Binding[1..*]): For[1] { + ^For(bindings=$bindings, expr=$expr); +} + +function meta::rel::metamodel::for(expr: Expr[1], variables: String[1..*]): For[1] { + for($expr, $variables->map(v | var($v))); +} + +function meta::rel::metamodel::ifThenElse(condition: Expr[1], then: Expr[1], else: Expr[1]): IfThenElse[1] { + ^IfThenElse(condition=$condition, then=$then, else=$else); +} + +function meta::rel::metamodel::product(exprs: Expr[1..*]): Product[1] { + ^Product(exprs=$exprs); +} + +function meta::rel::metamodel::union(exprs: Expr[1..*]): Union[1] { + ^Union(exprs=$exprs); +} + +function meta::rel::metamodel::group(parent: Expr[1]): ExprGroup[1] { + ^ExprGroup(parent=$parent); +} + +function meta::rel::metamodel::fragment(code: String[1]): Fragment[1] { + ^Fragment(code=$code); +} + +function meta::rel::metamodel::def(head: HeadExpr[1], body: Expr[1..*], inline: Boolean[1]): Rule[1] { + ^Rule(head=$head, body=$body, inline=$inline); +} + +function meta::rel::metamodel::def(head: HeadExpr[1], body: Expr[1..*]): Rule[1] { + def($head, $body, false); +} + +function meta::rel::metamodel::def(head: String[1], body: Expr[1..*], inline: Boolean[1]): Rule[1] { + def(rel($head), $body, $inline); +} + +function meta::rel::metamodel::def(head: String[1], body: Expr[1..*]): Rule[1] { + def($head, $body, false); +} + +function meta::rel::metamodel::rule(code: String[1]): RawRule[1] { + ^RawRule(code=$code); +} + +function meta::rel::metamodel::ic(head: HeadExpr[1], body: Expr[1..*], inline: Boolean[1]): IC[1] { + ^IC(head=$head, body=$body, inline=$inline); +} + +function meta::rel::metamodel::ic(head: HeadExpr[1], body: Expr[1..*]): IC[1] { + ic($head, $body, false); +} + +function meta::rel::metamodel::ic(head: String[1], body: Expr[1..*], inline: Boolean[1]): IC[1] { + ic(rel($head), $body, $inline); +} + +function meta::rel::metamodel::ic(head: String[1], body: Expr[1..*]): IC[1] { + ic($head, $body, false); +} + +function meta::rel::metamodel::defEntity(name: String[1], head: HeadExpr[1], body: Expr[1..*], inline: Boolean[1]): EntityDef[1] { + ^EntityDef(name=^RelationName(identifier=$name), head=$head, body=$body, inline=$inline); +} + +function meta::rel::metamodel::defEntity(name: String[1], head: HeadExpr[1], body: Expr[1..*]): EntityDef[1] { + defEntity($name, $head, $body, false); +} + +function meta::rel::metamodel::defEntity(name: String[1], head: String[1], body: Expr[1..*], inline: Boolean[1]): EntityDef[1] { + defEntity($name, rel($head), $body, $inline); +} + +function meta::rel::metamodel::defEntity(name: String[1], head: String[1], body: Expr[1..*]): EntityDef[1] { + defEntity($name, rel($head), $body, false); +} + +function meta::rel::metamodel::lineComment(text: String[1]): LineComment[1] { + ^LineComment(text=$text); +} + +function meta::rel::metamodel::program(identifier: String[0..1], elements: ProgramElement[*]): Program[1] { + ^Program(identifier=$identifier, elements=$elements); +} + +function meta::rel::metamodel::program(elements: ProgramElement[*]): Program[1] { + program([], $elements); +} + +function meta::rel::metamodel::program(identifier: String[0..1]): Program[1] { + program($identifier, []); +} + +function meta::rel::metamodel::program(): Program[1] { + program([], []); +} + +function meta::rel::metamodel::annotate(thing: Annotated[1], annotation: Any[*]): Annotated[1] { + ^$thing(annotation=$annotation); +} + +function meta::rel::metamodel::annotate(var: Variable[1], annotation: Any[*]): Variable[1] { + ^$var(annotation=$annotation); +} + +function meta::rel::metamodel::annotate(expr: Expr[1], annotation: Any[*]): Expr[1] { + ^$expr(annotation=$annotation); +} + +function meta::rel::metamodel::annotate(exprs: Product[1], annotation: Any[*]): Product[1] { + ^$exprs(annotation=$annotation); +} + + +///////////////////////// +/// Helper functions +///////////////////////// + +function meta::rel::metamodel::identifier(expr: HeadExpr[1]): String[1] { + $expr->match([ + rel: RelationName[1] | $rel.identifier, + expr: NamedApplication[1] | $expr.head->identifier() + ]); +} + +///////////////////////// +/// Misc methods +///////////////////////// + +function meta::rel::metamodel::toString(type: IntegerType[1]): String[1] { + 'integer'; +} + +function meta::rel::metamodel::toString(type: StringType[1]): String[1] { + 'string'; +} + +function meta::rel::metamodel::toString(type: FloatType[1]): String[1] { + 'float'; +} + +function meta::rel::metamodel::toString(type: LabelsType[1]): String[1] { + 'labels'; +} + +function meta::rel::metamodel::toString(type: HashValueType[1]): String[1] { + $type->match([ + e: EntityType[1] | $e.class.name->toOne(), + other: HashValueType[1] | '#' + ]); +} + +function meta::rel::metamodel::toString(type: ConstType[1]): String[1] { + $type->match([ + t: IntegerType[1] | $t->toString(), + t: StringType[1] | $t->toString(), + t: FloatType[1] | $t->toString(), + t: LabelsType[1] | $t->toString(), + t: HashValueType[1] | $t->toString(), + t: Label[1] | $t->render() + ]); +} + +function meta::rel::metamodel::toString(type: RelationType[1]): String[1] { + let accum = range(0, $type.positions->size()) + ->fold({i, accum | + $accum->concatenate( + $type.names + ->get($i) + ->map(value: String[1] | $type.positions->at($i)->toString() + ': ' + $value) + ->else(| $type.positions->at($i)->toString()) + ); + }, []->cast(@String)); + + $accum->stringify(e | $e, ', '); +} + +function meta::rel::metamodel::toString(types: ConstType[*]): String[1] { + $types->stringify(e | $e->toString(), ', '); +} \ No newline at end of file diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/rel/metamodel/render.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/rel/metamodel/render.pure new file mode 100644 index 00000000000..aa050d2caa2 --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/rel/metamodel/render.pure @@ -0,0 +1,344 @@ +import meta::rel::metamodel::*; +import meta::rel::metamodel::render::*; +import meta::pure::functions::collection::*; +import meta::rel::utils::*; + + +function meta::rel::metamodel::render::render(constant: RelString[1]): String[1] { + format('"%s"', $constant.value); +} + +function meta::rel::metamodel::render::render(constant: RelInteger[1]): String[1] { + $constant.value->toString(); +} + +function meta::rel::metamodel::render::render(constant: RelFloat[1]): String[1] { + $constant.value->toString(); +} + +function meta::rel::metamodel::render::render(constant: RelDate[1]): String[1] { + $constant.value->toString(); +} + +function meta::rel::metamodel::render::render(constant: RelDateTime[1]): String[1] { + format( + '%d-%02d-%02dT%02d:%02d:%02dZ', + [ + $constant.value->year(), + $constant.value->monthNumber(), + $constant.value->dayOfMonth()->toOne(), + $constant.value->hour(), + $constant.value->minute(), + $constant.value->second() + ] + ); +} + +function meta::rel::metamodel::render::render(dontCare: DontCare[1]): String[1] { + '_'; +} + +function meta::rel::metamodel::render::render(constant: Constant[1]): String[1] { + $constant->match([ + c: RelString[1] | $c->render(), + c: RelInteger[1] | $c->render(), + c: RelFloat[1] | $c->render(), + c: RelDate[1] | $c->render(), + c: RelDateTime[1] | $c->render(), + {c: Label[1] | + if ($c.identifier->isAlphaNumeric() && ($c.identifier->size() > 0) && !$c.identifier->substring(0, 1)->isDigit(), + | format(':%s', $c.identifier), + | format(':"%s"', $c.identifier) + ); + } + ]); +} + +function meta::rel::metamodel::render::render(constants: Constant[*]): String[1] { + $constants->stringify(c | $c->render(), ', '); +} + +function meta::rel::metamodel::render::render(tuple: Tuple[1]): String[1] { + format('(%s)', $tuple.arguments->render()); +} + +function meta::rel::metamodel::render::render(tuples: Tuple[*]): String[1] { + $tuples->stringify(t | $t->render(), '; '); +} + +function meta::rel::metamodel::render::render(cons: RelationCons[1]): String[1] { + if ($cons.arguments->isEmpty(), + | 'false', + | if ($cons.arguments->size() == 1 && + $cons.arguments->at(0).arguments->isEmpty(), + | 'true', + | format('{%s}', $cons.arguments->render()); + ) + ); +} + +function meta::rel::metamodel::render::render(rel: RelationName[1]): String[1] { + $rel.identifier; +} + +function meta::rel::metamodel::render::render(var: Variable[1]): String[1] { + $var.identifier; +} + +function meta::rel::metamodel::render::render(vars: Variable[*]): String[1] { + $vars->stringify(v | $v->render(), ', '); +} + +function meta::rel::metamodel::render::render(vars: Variables[1]): String[1] { + $vars.inner->render(); +} + +function meta::rel::metamodel::render::render(binding: InBinding[1]): String[1] { + format('%s in %s', [$binding.variable->render(), $binding.in->render()]); +} + +function meta::rel::metamodel::render::render(binding: WhereBinding[1]): String[1] { + format('%s where %s', [$binding.parents->render(), $binding.where->render()]); +} + +function meta::rel::metamodel::render::render(binding: Binding[1]): String[1] { + $binding->match([ + b: InBinding[1] | $b->render(), + v: Variable[1] | $v->render(), + vs: Variables[1] | $vs->render(), + b: WhereBinding[1] | $b->render() + ]); +} + +function meta::rel::metamodel::render::render(bindings: Binding[*]): String[1] { + $bindings->stringify(b | $b->render(), ', '); +} + +function meta::rel::metamodel::render::render(expr: HeadExpr[1]): String[1] { + $expr->match([ + rel: RelationName[1] | $rel->render(), + app: NamedApplication[1] | $app->render() + ]); +} + +function meta::rel::metamodel::render::render(app: NamedApplication[1]): String[1] { + $app->match([ + atom: NamedAtom[1] | $atom->render(), + a: NamedApplication[1] | + $a.head->render() + + if (!$a.arguments->isEmpty(), | + format('[%s]', $a.arguments->render()), + | + '' + ) + ]); +} + +function meta::rel::metamodel::render::render(atom: NamedAtom[1]): String[1] { + $atom.head->render() + + if (!$atom.arguments->isEmpty(), | + format('(%s)', $atom.arguments->render()), + | + '' + ); +} + +function meta::rel::metamodel::render::render(atom: Atom[1]): String[1] { + $atom.head->render() + + if (!$atom.arguments->isEmpty(), | + format('(%s)', $atom.arguments->render()), + | + '' + ); +} + +function meta::rel::metamodel::render::render(and: And[1]): String[1] { + $and.conjuncts->render(' and '); +} + +function meta::rel::metamodel::render::render(or: Or[1]): String[1] { + $or.disjuncts->render(' or '); +} + +function meta::rel::metamodel::render::render(not: Not[1]): String[1] { + format('not %s', $not.inner->render()); +} + +function meta::rel::metamodel::render::render(implies: Implies[1]): String[1] { + format('%s implies %s', [$implies.antecedence->render(), $implies.consequence->render()]); +} + +function meta::rel::metamodel::render::render(exists: Exists[1]): String[1] { + format('exists%s', $exists.inner->render()); +} + +function meta::rel::metamodel::render::render(forAll: ForAll[1]): String[1] { + format('forall(%s: %s)', [$forAll.bindings->render(), $forAll.inner->render()]); +} + +function meta::rel::metamodel::render::render(equals: Equals[1]): String[1] { + format('%s = %s', [$equals.left->render(), $equals.right->render()]); +} + +function meta::rel::metamodel::render::render(app: Application[1]): String[1] { + $app->match([ + a: Atom[1] | $a->render(), + a: Application[1] | + $app.head + ->render() + ->maybeParentheses(!$app.head->canUnambigouslyApply()) + + if (!$app.arguments->isEmpty(), | + format('[%s]', $app.arguments->render()), + | + '' + ) + ]); +} + +function meta::rel::metamodel::render::render(abstraction: Abstraction[1]): String[1] { + format('(%s: %s)', [$abstraction.bindings->render(), $abstraction.body->render()]); +} + +function meta::rel::metamodel::render::render(composition: Composition[1]): String[1] { + format('%s.%s', [$composition.from->render(), $composition.to->render()]); +} + +function meta::rel::metamodel::render::render(from: From[1]): String[1] { + format('%s from %s', [$from.expr->render(), $from.bindings->render()]); +} + +function meta::rel::metamodel::render::render(for: For[1]): String[1] { + format('%s for %s', [$for.expr->render(), $for.bindings->render()]); +} + +function meta::rel::metamodel::render::render(exprs: Expr[*], separator: String[1]): String[1] { + $exprs->stringify(e | $e->render(), $separator); +} + +function meta::rel::metamodel::render::render(exprs: Expr[*]): String[1] { + $exprs->render(', '); +} + +function meta::rel::metamodel::render::render(product: Product[1]): String[1] { + format('%s', $product.exprs->render()); +} + +function meta::rel::metamodel::render::render(group: ExprGroup[1]): String[1] { + format('(%s)', $group.parent->render()); +} + +function meta::rel::metamodel::render::render(union: Union[1]): String[1] { + format('%s', $union.exprs->stringify(e | $e->render(), '; ')); +} + +function meta::rel::metamodel::render::render(ifThenElse: IfThenElse[1]): String[1] { + format('if %s then %s else %s end', [ + $ifThenElse.condition->render(), + $ifThenElse.then->render(), + $ifThenElse.else->render() + ]); +} + +function meta::rel::metamodel::render::render(expr: Expr[1]): String[1] { + $expr->match([ + group: ExprGroup[1] | $group->render(), + fragment: Fragment[1] | $fragment.code, + dontCare: DontCare[1] | $dontCare->render(), + head: HeadExpr[1] | $head->render(), + product: Product[1] | $product->render(), + union: Union[1] | $union->render(), + not: Not[1] | $not->render(), + variable: Variable[1] | $variable->render(), + variables: Variables[1] | $variables->render(), + constant: Constant[1] | $constant->render(), + tuple: Tuple[1] | $tuple->render(), + cons: RelationCons[1] | $cons->render(), + application: Application[1] | $application->render(), + composition: Composition[1] | $composition->render(), + named: NamedApplication[1] | $named->render(), + from: From[1] | $from->render(), + for: For[1] | $for->render(), + abstraction: Abstraction[1] | $abstraction->render(), + and: And[1] | $and->render(), + or: Or[1] | $or->render(), + implies: Implies[1] | $implies->render(), + exists: Exists[1] | $exists->render(), + forAll: ForAll[1] | $forAll->render(), + equals: Equals[1] | $equals->render(), + atom: NamedAtom[1] | $atom->render(), + atom: Atom[1] | $atom->render(), + ifThenElse: IfThenElse[1] | $ifThenElse->render() + ]); +} + +function meta::rel::metamodel::render::render(entityDef: EntityDef[1]): String[1] { + if($entityDef.inline, | '@inline\n', | '') + + format('entity %s %s = %s', [$entityDef.name->render(), $entityDef.head->render(), $entityDef.body->render()]); +} + +function meta::rel::metamodel::render::render(rule: Rule[1]): String[1] { + $rule->match([ + entityDef: EntityDef[1] | $entityDef->render(), + ic: IC[1] | $ic->render(), + r: Rule[1] | + if($r.inline, | '@inline\n', | '') + format('def %s = %s', [$r.head->render(), $r.body->render()]); + ]) +} + +function meta::rel::metamodel::render::render(ic: IC[1]): String[1] { + format('ic %s {\n%s\n}', [$ic.head->render(), $ic.body->render()]); +} + +function meta::rel::metamodel::render::render(comment: Comment[1]): String[1] { + $comment->match([ + lc: LineComment[1] | $lc->render() + ]); +} + +function meta::rel::metamodel::render::render(comment: LineComment[1]): String[1] { + format('// %s', $comment.text); +} + +function meta::rel::metamodel::render::render(element: ProgramElement[1]): String[1] { + $element->match([ + r: Rule[1] | $r->render(), + r: RawRule[1] | $r.code, + c: Comment[1] | $c->render() + ]); +} + +function meta::rel::metamodel::render::render(elements: ProgramElement[*]): String[1] { + $elements->fold({e, accum | + $accum + $e->render() + '\n' + }, ''); +} + +function meta::rel::metamodel::render::render(program: Program[1]): String[1] { + $program.elements->render(); +} + +function <> meta::rel::metamodel::render::maybeParentheses(str: String[1], do: Boolean[1]): String[1] { + if ($do, | format('(%s)', $str), | $str); +} + +function <> meta::rel::metamodel::render::canUnambigouslyApply(expr: Expr[1]): Boolean[1] { + $expr->match([ + dontCare: DontCare[1] | true, + head: HeadExpr[1] | true, + product: Product[1] | true, + union: Union[1] | true, + not: Not[1] | false, + variable: Variable[1] | true, + variables: Variables[1] | true, + constant: Constant[1] | true, + tuple: Tuple[1] | true, + cons: RelationCons[1] | true, + application: Application[1] | true, + composition: Composition[1] | true, + named: NamedApplication[1] | true, + from: From[1] | false, + for: For[1] | false, + abstraction: Abstraction[1] | true, + group: ExprGroup[1] | true + ]) +} \ No newline at end of file diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/rel/metamodel/store.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/rel/metamodel/store.pure new file mode 100644 index 00000000000..4528c1ff095 --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/rel/metamodel/store.pure @@ -0,0 +1,89 @@ +import meta::rel::metamodel::store::*; +import meta::rel::metamodel::*; +import meta::rel::utils::*; + +Class meta::rel::metamodel::store::RAIDatabase extends meta::pure::store::Store { + // In the case of relational databases, we find schema definitions here (tables, joins). + // In the case of RAI, we specify schemas of relations. Those relations are assumed to + // be installed. + declarations: RelationDeclaration[*]; + + program: Program[0..1]; + + // TODO: This is just a hack, as calls in the router component call `elementToPath`. Since our + // manually instantiated object of this type do _not_ have a package path, calls to + // `elementToPath` error out without this attribute. + // Reported via https://github.com/finos/legend-pure/issues/424 + name: String[0..1]; +} + +/** + * Abstract type representing the declaration of a relation. + */ +Class <> meta::rel::metamodel::store::RelationDeclaration { } + +Class meta::rel::metamodel::store::NamedRelationDeclaration extends RelationDeclaration { + name: String[1]; + type: RelationType[1]; +} + +Class meta::rel::metamodel::store::NestedRelationDeclaration extends RelationDeclaration { + parent: RelationDeclaration[1]; + this: RelationDeclaration[1]; +} + + +///////////////////////// +/// Constructor methods +///////////////////////// + +function meta::rel::metamodel::store::RAIDatabase(declarations: RelationDeclaration[*], program: Program[0..1], name: String[0..1]): RAIDatabase[1] { + ^RAIDatabase(declarations=$declarations, program=$program, name=$name); +} + +function meta::rel::metamodel::store::RAIDatabase(declarations: RelationDeclaration[*], name: String[0..1]): RAIDatabase[1] { + RAIDatabase($declarations, [], $name); +} + +function meta::rel::metamodel::store::RAIDatabase(declarations: RelationDeclaration[*]): RAIDatabase[1] { + RAIDatabase($declarations, []); +} + +function meta::rel::metamodel::store::relation(name: String[1], type: RelationType[1]): NamedRelationDeclaration[1] { + ^NamedRelationDeclaration(name=$name, type=$type); +} + +function meta::rel::metamodel::store::relation(name: String[1], arguments: ConstType[1..*]): NamedRelationDeclaration[1] { + relation($name, relationType($arguments)); +} + +function meta::rel::metamodel::store::nestedRelation(parent: RelationDeclaration[1], this: RelationDeclaration[1]): NestedRelationDeclaration[1] { + ^NestedRelationDeclaration(parent=$parent, this=$this); +} + +function meta::rel::metamodel::store::with(database: RAIDatabase[1], declarations: RelationDeclaration[*]): RAIDatabase[1] { + $database->mutateAdd('declarations', $declarations); +} + +///////////////////////// +/// API methods +///////////////////////// + +function meta::rel::metamodel::store::name(decl: RelationDeclaration[1]): String[1] { + $decl->match([ + {named: NamedRelationDeclaration[1] | $named.name}, + {nested: NestedRelationDeclaration[1] | format('%s:%s', [$nested.parent->name(), $nested.this->name()])} + ]); +} + +///////////////////////// +/// Misc methods +///////////////////////// + +function meta::rel::metamodel::store::toString(rel: NamedRelationDeclaration[1]): String[1] { + $rel.name + '(' + $rel.type->toString() + ')'; +} + +function meta::rel::metamodel::store::toString(db: RAIDatabase[1]): String[1] { + $db.declarations->stringify(e | $e->toString(), '\n'); +} \ No newline at end of file diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/rel/metamodel/utils.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/rel/metamodel/utils.pure new file mode 100644 index 00000000000..17a87bd876d --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/rel/metamodel/utils.pure @@ -0,0 +1,18 @@ +import meta::rel::metamodel::*; +import meta::pure::functions::collection::*; + +function meta::rel::metamodel::with(program: Program[1], elements: ProgramElement[*]): Program[1] { + //TODO: In general, room for improvement by adding some indexed structure to programs. + let concat = + $elements->fold({e, acc | + if (!$e->in($acc), | $acc->concatenate($e), | $acc); + }, $program.elements); + + ^Program(identifier=$program.identifier, elements=$concat); +} + +function meta::rel::metamodel::combine(programs: Program[*]): Program[1] { + $programs->fold({p, acc | + $acc->with($p.elements); + }, program()); +} \ No newline at end of file diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/runtime/connection.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/runtime/connection.pure new file mode 100644 index 00000000000..a002fd8c047 --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/runtime/connection.pure @@ -0,0 +1,31 @@ +import meta::rel::runtime::*; + +Class meta::rel::runtime::TestConnection extends meta::pure::runtime::Connection { + onExecute: Function<{String[1]->Any[*]}>[0..1]; +} + +function meta::rel::runtime::TestConnection( + element: Any[1], + onExecute: Function<{String[1]->Any[*]}>[0..1] +): TestConnection[1] { + ^TestConnection(onExecute=$onExecute, element=$element); +} + +function meta::rel::runtime::TestConnection(element: Any[1]): TestConnection[1] { + TestConnection($element, []); +} + +function meta::rel::runtime::query(connection: TestConnection[1], query: FunctionDefinition<{->Any[*]}>[1]): Any[*] { + let schema = $connection.element->cast(@meta::rel::mapping::frontend::RAISchema); + + let runtime = ^meta::pure::runtime::Runtime(connections=$connection); + + let result = execute( + $query, + $schema.mapping, + $runtime, + meta::rel::extension::defaultRAIExtension() + ); + + $result.values; +} diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/query/basic.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/query/basic.pure new file mode 100644 index 00000000000..5d196b3998a --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/query/basic.pure @@ -0,0 +1,87 @@ +import meta::rel::test::testutils::*; +import meta::rel::test::query::models::basicmodel::*; +import meta::rel::mapping::*; +import meta::rel::utils::assert::*; + +function <> meta::rel::test::query::basic::testQueryAllPersons(): Any[*] { + let rai = testConnection(schema()); + + assertEqualRel( + [ + 'def output[:query](x) = Person(x)', + 'def output[:firstName] = Person:firstName[x] for x where output[:query](x)', + 'def output[:lastName] = Person:lastName[x] for x where output[:query](x)' + ], + $rai + ->doQuery(| Person.all()) + ->rel() + ); +} + +function <> meta::rel::test::query::basic::testFilterByFirstName(): Any[*] { + let rai = testConnection(schema()); + + assertEqualRel( + [ + 'def output[:query](x) = (x1 in Person: Person:firstName[x1] = "John")(x)', + 'def output[:firstName] = Person:firstName[x] for x where output[:query](x)', + 'def output[:lastName] = Person:lastName[x] for x where output[:query](x)' + ], + $rai + ->doQuery(| + Person.all() + ->filter(p | $p.firstName == 'John') + ) + ->rel() + ); +} + +function <> meta::rel::test::query::basic::testCombinedFilter(): Any[*] { + let rai = testConnection(schema()); + + assertEqualRel( + [ + 'def output[:query](x) = (x1 in Person: Person:firstName[x1] = "John" and Person:lastName[x1] = "Doe")(x)', + 'def output[:firstName] = Person:firstName[x] for x where output[:query](x)', + 'def output[:lastName] = Person:lastName[x] for x where output[:query](x)' + ], + $rai + ->doQuery(| + Person.all() + ->filter(p | $p.firstName == 'John' && $p.lastName == 'Doe') + ) + ->rel() + ); +} + +function <> meta::rel::test::query::basic::testExists(): Any[*] { + let rai = testConnection(schema()); + + assertEqualRel( + [ + 'def output = exists(x1 in Person: boolean_true)' + ], + $rai + ->doQuery(| + Person.all() + ->exists(p | true) + ) + ->rel() + ); +} + +function <> meta::rel::test::query::basic::testMap(): Any[*] { + let rai = testConnection(schema()); + + assertEqualRel( + [ + 'def output = ("foo" from x1 in Person)' + ], + $rai + ->doQuery(| + Person.all() + ->map(p | 'foo') + ) + ->rel() + ); +} diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/query/models/basicmodel.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/query/models/basicmodel.pure new file mode 100644 index 00000000000..c290c9a3a5c --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/query/models/basicmodel.pure @@ -0,0 +1,27 @@ +import meta::rel::test::query::models::basicmodel::*; +import meta::rel::mapping::frontend::*; + +Class meta::rel::test::query::models::basicmodel::Person { + firstName: String[1]; + lastName: String[1]; +} + +Class meta::rel::test::query::models::basicmodel::Employee extends Person { + salary: Integer[1]; +} + +Class meta::rel::test::query::models::basicmodel::Firm { + legalName: String[1]; +} + +Association meta::rel::test::query::models::basicmodel::Employment { + firm: Firm[1]; + employee: Employee[*]; +} + +function meta::rel::test::query::models::basicmodel::schema(): RAISchema[1] { + RAISchema('meta::rel::test::query::models::basicmodel') + ->includeClass(Person) + ->includeClass(Employee) + ->includeClass(Firm); +} \ No newline at end of file diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/rel/metamodel.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/rel/metamodel.pure new file mode 100644 index 00000000000..eaecd70cd44 --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/rel/metamodel.pure @@ -0,0 +1,23 @@ +import meta::rel::metamodel::*; + +function <> meta::rel::test::metamodel::testIdentifier(): Any[*] { + assertEquals( + 'output', + rel('output')->identifier() + ); + + assertEquals( + 'output', + rel('output') + ->appl([var('x'), var('y')]) + ->identifier() + ); + + assertEquals( + 'output', + rel('output') + ->appl([var('x'), var('y')]) + ->appl([label('test')]) + ->identifier() + ); +} \ No newline at end of file diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/rel/render.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/rel/render.pure new file mode 100644 index 00000000000..3736eaeeef7 --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/rel/render.pure @@ -0,0 +1,145 @@ +import meta::rel::metamodel::*; +import meta::rel::metamodel::render::*; + + +function <> meta::rel::test::metamodel::render::testSimpleRendering(): Any[*] { + assertEquals( + '1', + const(1)->render() + ); + + assertEquals( + '"test"', + const('test')->render() + ); + + assertEquals( + ':label', + label('label')->render() + ); + + assertEquals( + 'x', + var('x')->render() + ); + + assertEquals( + '// Test', + lineComment('Test')->render() + ); + + assertEquals( + 'true', + reltrue()->render() + ); + + assertEquals( + '(x)', + var('x')->group()->render() + ); +} + +function <> meta::rel::test::metamodel::render::testExprRendering(): Any[*] { + assertEquals( + 'edge', + rel('edge')->render() + ); + + assertEquals( + 'edge(x, y)', + atom('edge', ['x', 'y'])->render() + ); + + assertEquals( + 'edge(x, y) from x, y', + atom('edge', ['x', 'y']) + ->from(['x', 'y']) + ->render() + ); + + assertEquals( + 'edge.path', + rel('edge') + ->compose(rel('path')) + ->render() + ); + + assertEquals( + 'exists(z: edge(x, z) and path(z, y))', + atom('edge', ['x', 'z'])->and( + atom('path', ['z', 'y']) + ) + ->abstract('z') + ->exists() + ->render() + ); + + assertEquals( + 'a[:label1][:label2]', + rel('a') + ->appl([label('label1')]) + ->appl([label('label2')]) + ->render() + ); + + assertEquals( + 'x = y', + var('x') + ->equals(var('y')) + ->render() + ); +} + + +function <> meta::rel::test::metamodel::render::testDefRendering(): Any[*] { + assertEquals( + 'def edge = {(1, 2); (2, 3)}', + def(rel('edge'), relation([ + tuple([const(1), const(2)]), + tuple([const(2), const(3)]) + ])) + ->render() + ); + + assertEquals( + 'def path(x, y) = edge(x, y)', + def(atom('path', ['x', 'y']), [ + atom('edge', ['x', 'y']) + ]) + ->render() + ); + + assertEquals( + 'def path(x, y) = edge(x, z) and path(z, y) from z', + def(atom('path', ['x', 'y']), [ + atom('edge', ['x', 'z'])->and( + atom('path', ['z', 'y']) + )->from('z') + ]) + ->render() + ); + + assertEquals( + 'entity Employee employees_by_name = {("John"); ("Jane")}', + defEntity('Employee', 'employees_by_name', [ + relation([ + tuple([const('John')]), + tuple([const('Jane')]) + ]) + ]) + ->render() + ); +} + +function <> meta::rel::test::metamodel::render::testICRendering(): Any[*] { + assertEquals( + 'ic test_ic {\n' + + 'employee(_, name) implies String(name)\n' + + '}', + ic('test_ic', [ + atom('employee', [dontCare(), var('name')]) + ->implies(atom('String', ['name'])) + ]) + ->render() + ); +} \ No newline at end of file diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/testutils/testutils.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/testutils/testutils.pure new file mode 100644 index 00000000000..3bca21ddca6 --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/testutils/testutils.pure @@ -0,0 +1,18 @@ +import meta::rel::runtime::*; +import meta::rel::mapping::frontend::*; +import meta::pure::mapping::*; + +function meta::rel::test::testutils::testConnection(schema: RAISchema[1]): TestConnection[1] { + $schema->TestConnection(); +} + +function meta::rel::test::testutils::doQuery(connection: meta::pure::runtime::Connection[1], query: FunctionDefinition<{->Any[*]}>[1]): Result[1] { + let schema = $connection.element->cast(@RAISchema); + + execute( + $query, + $schema.mapping, + ^meta::pure::runtime::Runtime(connections=$connection), + meta::rel::extension::defaultRAIExtension()//, debug() + ); +} diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/utils/lang.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/utils/lang.pure new file mode 100644 index 00000000000..2e3d53b03b6 --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/utils/lang.pure @@ -0,0 +1,29 @@ +import meta::rel::utils::lang::*; + +function <> meta::rel::test::utils::lang::testSwitch(): Any[*] { + let x = 3; + + assertEquals( + '3', + switch([ + case($x == 1, | '1'), + case($x == 2, | '2') + ], | '3') + ); + + assertEquals( + '1', + switch([ + case($x == 3, | '1'), + case($x == 2, | '2') + ], | '3') + ); + + assertEquals( + '2', + switch([ + case($x == 1, | '1'), + case($x == 3, | '2') + ], | '3') + ); +} \ No newline at end of file diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/utils/utils.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/utils/utils.pure new file mode 100644 index 00000000000..1b799e9bbe8 --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/utils/utils.pure @@ -0,0 +1,74 @@ +import meta::rel::utils::*; +import meta::rel::utils::collection::*; + +function <> meta::rel::test::utils::testResult(): Any[*] { + assertEquals(ok(1), ok(1)); + + assertEquals(1, ok(1)->unwrap()); + + assertEquals( + 2, + ok(1)->then(v | $v + 1)->unwrap() + ); + + assertEquals( + ok(2), + ok(1)->then(v | $v + 1) + ); + + assertEquals( + ok(2), + // I do not know why I have to specify a type parameter here. + ok(1)->andThen(v: Integer[1] | ok($v + 1)) + ); + + assertEquals( + 2, + ok(1)->andThen(v: Integer[1] | ok($v + 1))->unwrap() + ); + + assertEquals( + okm([1, 2]), + [ok(1), ok(2)]->collect() + ); + + assertEquals( + ^Result(errors=['2']), + [ok(1), ^Result(errors=['2']), ok(3)]->collect() + ); + + assertEquals( + okm([]), + []->cast(@Result)->collect() + ); + + assertEquals( + okm([1, 2]), + ok(1)->then({v: Integer[1] | let next = $v + 1; [$v, $next];}) + ); + + assertEquals( + ok(1), + okm([1, 2])->them(vs: Integer[*] | $vs->at(0)) + ); +} + +function <> meta::rel::test::utils::testHelpers(): Any[*] { + assertEquals( + '1 | 2 | 3', + [1, 2, 3]->stringify(e | $e->toString(), ' | ') + ); +} + +function <> meta::rel::test::utils::testMaybe(): Any[*] { + assertEquals( + [1, 2, 3], + [1, 2, 3]->unlessEmpty(xs | $xs, []) + ); + + assertEquals( + [1, 2, 3], + []->unlessEmpty(xs | $xs, [1, 2, 3]) + ); +} + diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/assert.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/assert.pure new file mode 100644 index 00000000000..6dc193e16dd --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/assert.pure @@ -0,0 +1,25 @@ +function meta::rel::utils::assert::assertEqualElements(expected: T[*], actual: T[*]): Boolean[1] { + let diff1 = + $expected + ->filter(e | !$e->in($actual)) + ->map(e | $e->toRepresentation()); + + let diff2 = + $actual + ->filter(e | !$e->in($expected)) + ->map(e | $e->toRepresentation()); + + assertEmpty( + $diff1->concatenate($diff2), + format( + 'Expected not contained in actual: %s\nActual not contained in expected: %s', + [$diff1->joinStrings('[', ', ', ']'), $diff2->joinStrings('[', ', ', ']')] + ) + ); +} + +function meta::rel::utils::assert::assertEqualRel(expected: String[*], actual: String[1]): Boolean[1] { + let source = $expected->joinStrings('\n'); + + assertEquals($source + '\n', $actual); +} \ No newline at end of file diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/collection.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/collection.pure new file mode 100644 index 00000000000..fae64f8e9ad --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/collection.pure @@ -0,0 +1,58 @@ +import meta::rel::utils::collection::*; +import meta::rel::utils::*; + +Class meta::rel::utils::collection::BiMap { + to: Map[1]; + from: Map[1]; +} + +function meta::rel::utils::collection::BiMap(key: K[1], value: V[1]): BiMap[1] { + let to = ^Map(); + let from = ^Map(); + ^BiMap(to=$to, from=$from); +} + +function meta::rel::utils::collection::put(map: BiMap[1], key: K[1], value: V[1]): BiMap[1] { + ^BiMap(to=$map.to->put($key, $value), from=$map.from->put($value, $key)); +} + +function meta::rel::utils::collection::putAll(map: BiMap[1], keyValues: Pair[*]): BiMap[1] { + $keyValues->fold({pair, accum | + $accum->put($pair.first, $pair.second); + }, + $map); +} + +function meta::rel::utils::collection::getValue(map: BiMap[1], key: K[1]): V[0..1] { + $map.to->get($key); +} + +function meta::rel::utils::collection::getKey(map: BiMap[1], value: V[1]): K[0..1] { + $map.from->get($value); +} + +function meta::rel::utils::collection::keyValues(map: BiMap[1]): Pair[*] { + $map.to->keyValues(); +} + +function meta::rel::utils::collection::keys(map: BiMap[1]): K[*] { + $map.to->keys(); +} + +function meta::rel::utils::collection::values(map: BiMap[1]): V[*] { + $map.to->values(); +} + +function meta::rel::utils::collection::valueKeys(map: BiMap[1]): Pair[*] { + $map.from->keyValues(); +} + +Class meta::rel::utils::collection::Triple { + first: S[n]; + second: T[m]; + third: U[p]; +} + +function meta::rel::utils::collection::triple(first: S[n], second: T[m], third: U[p]): Triple[1] { + ^Triple(first=$first, second=$second, third=$third); +} diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/lang.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/lang.pure new file mode 100644 index 00000000000..0f00b6b73e9 --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/lang.pure @@ -0,0 +1,34 @@ +import meta::rel::utils::lang::*; +import meta::rel::utils::*; + +Class meta::rel::utils::lang::CaseExpr { + cond: Boolean[1]; + logic: FunctionDefinition<{->T[m]}>[1]; +} + +function meta::rel::utils::lang::case( + cond: Boolean[1], logic: FunctionDefinition<{->T[m]}>[1] +): CaseExpr[1] { + ^CaseExpr(cond=$cond, logic=$logic); +} + +function <> meta::rel::utils::lang::switch( + from: Integer[1], + cases: CaseExpr[*], + default: FunctionDefinition<{->T[m]}>[1] +): T[m] { + if ($from >= $cases->size(), + | $default->eval(), + {| + let eval = + $cases + ->at($from) + ->map(case | if($case.cond, | $case.logic->eval(), | [])); + if ($eval->isEmpty(), | switch($from + 1, $cases, $default), | $eval); + } + ); +} + +function meta::rel::utils::lang::switch(cases: CaseExpr[*], default: FunctionDefinition<{->T[m]}>[1]): T[m] { + switch(0, $cases, $default); +} diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/maybe.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/maybe.pure new file mode 100644 index 00000000000..a40b6a56126 --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/maybe.pure @@ -0,0 +1,18 @@ +import meta::rel::utils::*; + +function meta::rel::utils::unlessEmpty(values: T[*], logic: FunctionDefinition<{T[1..*]->S[n]}>[1], else: S[n]): S[n] { + if ($values->size() == 0, | $else, | $logic->eval($values->toOneMany())); +} + +function meta::rel::utils::else(value: T[0..1], or: FunctionDefinition<{->T[1]}>[1]): T[1] { + if ($value->isEmpty(), | $or->eval(), | $value->toOne()); +} + +function meta::rel::utils::else(value: T[*], or: FunctionDefinition<{->T[1..*]}>[1]): T[1..*] { + if ($value->isEmpty(), | $or->eval(), | $value->toOneMany()); +} + +function meta::rel::utils::maybeAt(collection: T[*], index: Integer[1]): T[0..1] { + if (($index >= 0) && ($index < $collection->size()), | $collection->at($index), | []); +} + diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/meta.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/meta.pure new file mode 100644 index 00000000000..ae29bd9b397 --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/meta.pure @@ -0,0 +1,16 @@ +import meta::rel::utils::meta::*; + +function meta::rel::utils::meta::primitiveProperties(class: Class[1]): Property[*] { + $class + .properties + ->filter(property | $property->isPrimitiveValueProperty();) +} + +function meta::rel::utils::meta::complexProperties(class: Class[1]): Property[*] { + $class + .propertiesFromAssociations + ->concatenate( + $class.properties + ->filter(property | !$property->isPrimitiveValueProperty();) + ); +} \ No newline at end of file diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/misc.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/misc.pure new file mode 100644 index 00000000000..00ea06a2c33 --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/misc.pure @@ -0,0 +1,74 @@ +import meta::rel::utils::*; +import meta::rel::utils::lang::*; +import meta::rel::utils::collection::*; + +function meta::rel::utils::stringify( + list: T[*], + elem: FunctionDefinition<{T[1]->String[1]}>[1], + separator: String[1] +): String[1] { + if ($list->size() == 0, | '', | + $list->init()->fold({e, accum | + $accum + $elem->eval($e) + $separator + }, '') + $elem->eval($list->last()->toOne()) + ); +} + +function meta::rel::utils::type(spec: ValueSpecification[1]): Type[1] { + $spec.genericType.rawType->toOne(); +} + +function meta::rel::utils::inspect(any: T[m]): T[m] { + println($any); + $any; +} + +function meta::rel::utils::inspect(any: T[m], label: String[1]): T[m] { + print($label + ': '); + println($any); + $any; +} + +function meta::rel::utils::inspect(any: T[m], fun: FunctionDefinition<{T[m]->Any[*]}>[1]): T[m] { + println($fun->eval($any)); + $any; +} + +function meta::rel::utils::inspect(any: T[m], fun: FunctionDefinition<{T[m]->Any[*]}>[1], label: String[1]): T[m] { + print($label + ': '); + println($fun->eval($any)); + $any; +} + +function meta::rel::utils::debugInspect(any: T[m], ctx: DebugContext[1]): T[m] { + $ctx->debug($any, 'DEBUG: '); + $any; +} + +function meta::rel::utils::debug(ctx: DebugContext[1], message: Any[*], label: String[1]): Any[*] { + $ctx->debug(| $message, $label); +} + +function meta::rel::utils::debug(ctx: DebugContext[1], message: Any[*]): Any[*] { + $ctx->debug($message, ''); +} + +function meta::rel::utils::debug(ctx: DebugContext[1], message: FunctionDefinition<{->Any[*]}>[1]): Any[*] { + $ctx->debug($message, ''); +} + +function meta::rel::utils::debug(ctx: DebugContext[1], message: FunctionDefinition<{->Any[*]}>[1], label: String[1]): Any[*] { + if($ctx.debug, | print($label); $message->eval()->println(); $message;, | ''); +} + +function meta::rel::utils::quote(str: String[1]): String[1] { + '`' + $str + '`'; +} + +function meta::rel::utils::escapeString(string: String[1], character: String[1]): String[1] { + $string->replace($character, format('\\%s', $character)); +} + +function meta::rel::utils::indent(amount: Integer[1]): String[1] { + range($amount)->map(_n | ' ')->joinStrings(''); +} diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/result.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/result.pure new file mode 100644 index 00000000000..c275549606e --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/result.pure @@ -0,0 +1,187 @@ +import meta::rel::utils::*; + + +Class meta::rel::utils::Result { + <> values: T[n]; + <> errors: Any[*]; +} + +function meta::rel::utils::okOrElse(value: T[m], else: FunctionDefinition<{->Result[1]}>[1]): Result[1] { + if ($value->isEmpty(), + | $else->eval(), + {| + ^Result( + values=if($value->size() > 1, | $value->toOneMany(), | $value->toOne()) + ); + } + ); +} + +function meta::rel::utils::okOr(value: T[m], message: FunctionDefinition<{->String[1]}>[1]): Result[1] { + $value->okOrElse(| ^Result(errors=[error($message)])); +} + +function meta::rel::utils::ok(value: T[1]): Result[1] { + ^Result(values=$value); +} + +function meta::rel::utils::okm(values: T[*]): Result[1] { + ^Result(values=$values); +} + +function meta::rel::utils::error(errors: Any[*]): Result[1] { + ^Result(errors=$errors); +} + +function meta::rel::utils::andThen(result: Result[1], fn: FunctionDefinition<{S[1]->Result[1]}>[1]): Result[1] { + if($result.errors->isEmpty(), + | $fn->eval($result.values->evaluateAndDeactivate()), + | ^Result(errors=$result.errors) + ); +} + +function meta::rel::utils::andMany(result: Result[1], fn: FunctionDefinition<{S[1]->Result[*]}>[1]): Result[*] { + if($result.errors->isEmpty(), + | $fn->eval($result.values->evaluateAndDeactivate()), + | ^Result(errors=$result.errors) + ); +} + +function meta::rel::utils::andThem(result: Result[1], fn: FunctionDefinition<{S[*]->Result[1]}>[1]): Result[1] { + if($result.errors->isEmpty(), + | $fn->eval($result.values->evaluateAndDeactivate()), + | ^Result(errors=$result.errors) + ); +} + +function meta::rel::utils::then(result: Result[1], fn: FunctionDefinition<{S[1]->T[n]}>[1]): Result[1] { + if($result.errors->isEmpty(), + | ^Result(values=$fn->eval($result.values->evaluateAndDeactivate()->toOne())), + | ^Result(errors=$result.errors) + ); +} + +function meta::rel::utils::them(result: Result[1], fn: FunctionDefinition<{S[*]->T[n]}>[1]): Result[1] { + if($result.errors->isEmpty(), + | ^Result(values=$fn->eval($result.values->evaluateAndDeactivate())), + | ^Result(errors=$result.errors) + ); +} + +function meta::rel::utils::inspect(result: Result[1], fn: FunctionDefinition<{T[m]->Any[*]}>[1]): Result[1] { + if($result.errors->isEmpty(), + {| $fn->eval($result.values->evaluateAndDeactivate()); $result;}, + | $result + ); +} + +function meta::rel::utils::else(result: Result[1], else: FunctionDefinition<{Any[*]->Result[1]}>[1]): Result[1] { + if($result.errors->isEmpty(), | $result, | $else->eval($result.errors)); +} + +function meta::rel::utils::unwrap(result: Result[1]): T[1] { + if($result.errors->isEmpty(), + | $result.values->toOne(), + | fail( + $result + .errors + ->map(e | $e->toString()) + ->joinStrings() + ) + ); +} + +function meta::rel::utils::unwrapm(result: Result[1]): T[*] { + if($result.errors->isEmpty(), + | $result.values, + | fail( + $result + .errors + ->map(e | $e->toString()) + ->joinStrings() + ) + ); +} + +function meta::rel::utils::isOk(result: Result[1]): Boolean[1] { + $result.errors->isEmpty(); +} + +function meta::rel::utils::isErr(result: Result[1]): Boolean[1] { + !$result->isOk(); +} + +function meta::rel::utils::collect(results: Result[*]): Result[1] { + $results->fold({r: Result[1], accum: Result[1] | + if($r->isOk(), | + ^Result( + values=if ($accum.errors->isEmpty(), | $accum.values->concatenate($r.values), | []), + errors=$accum.errors + ), + | + ^Result(errors=$accum.errors->concatenate($r.errors), values=[]) + ) + }, okm([])->cast(@Result)); +} + +function meta::rel::utils::expand(result: Result[1]): Result[*] { + if ($result.errors->isEmpty(), + | $result.values->map(v | ok($v)), + | $result.errors->map(e | error($e)) + ); +} + +function meta::rel::utils::tryCast(source: Any[1], object: T[1]): Result[1] { + if ($source->instanceOf($object->type()), + | ^Result(values=$source->cast($object)), + {| + let error = 'Cannot cast object of type ' + + $source->type().name->orElse('<>') + + ' into class ' + + $object->type().name->orElse('<>'); + ^Result(errors=[$error]); + } + ); +} + +function meta::rel::utils::tryCastm(source: Any[*], object: T[1]): Result[1] { + $source + ->map(o | $o->tryCast($object)) + ->collect(); +} + +function meta::rel::utils::tryCast(result: Result[1], object: T[1]): Result[1] { + $result->andThen(inner: Any[1] | $inner->tryCast($object)); +} + +function meta::rel::utils::tryCastm(result: Result[1], object: T[1]): Result[1] { + $result->andThem(inner: Any[*] | $inner->tryCastm($object)); +} + +function meta::rel::utils::test( + result: Result[1], + check: FunctionDefinition<{T[1]->Boolean[1]}>[1], + else: FunctionDefinition<{T[1]->Result[1]}>[1] +): Result[1] { + $result->andThen({inner: T[1] | + if ($check->eval($inner), | $result, | $else->eval($inner)); + }); +} + +function meta::rel::utils::test( + object: T[1], + check: FunctionDefinition<{T[1]->Boolean[1]}>[1], + else: FunctionDefinition<{T[1]->Result[1]}>[1] +): Result[1] { + $object->ok()->test($check, $else); +} + +function meta::rel::utils::testm( + result: Result[1], + check: FunctionDefinition<{T[*]->Boolean[1]}>[1], + else: FunctionDefinition<{->Result[1]}>[1] +): Result[1] { + $result->andThem({inner: T[*] | + if ($check->eval($inner), | $result, | $else->eval()); + }); +} diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/visitor.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/visitor.pure new file mode 100644 index 00000000000..e7a108d9ced --- /dev/null +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/utils/visitor.pure @@ -0,0 +1,26 @@ +import meta::rel::utils::visitor::*; + +Class meta::rel::utils::visitor::Visited { + values: T[*]; + explored: Map[1]; +} + +function meta::rel::utils::visitor::report(visited: Visited[1], object: Any[1]): Visited[1] { + ^$visited(explored=$visited.explored->put($object, $object)); +} + +function meta::rel::utils::visitor::report(visited: Visited[1], other: Visited[1]): Visited[1] { + ^$visited(explored=$visited.explored->putAll($other.explored)); +} + +function meta::rel::utils::visitor::with(visited: Visited[1], values: T[*]): Visited[1] { + ^$visited(values=$visited.values->concatenate($values)); +} + +function meta::rel::utils::visitor::update(visited: Visited[1], other: Visited[1]): Visited[1] { + ^$visited(values=$visited.values->concatenate($other.values), explored=$visited.explored->putAll($other.explored)); +} + +function meta::rel::utils::visitor::hasVisited(visited: Visited[1], object: T[1]): Boolean[1] { + !$visited.explored->get($object)->isEmpty(); +} diff --git a/legend-engine-xts-relationalai/pom.xml b/legend-engine-xts-relationalai/pom.xml new file mode 100644 index 00000000000..3b5cf5128cb --- /dev/null +++ b/legend-engine-xts-relationalai/pom.xml @@ -0,0 +1,34 @@ + + + + + org.finos.legend.engine + legend-engine + 4.30.3-SNAPSHOT + + 4.0.0 + + legend-engine-xts-relationalai + pom + Legend Engine - XTS - RelationalAI + + + + + legend-engine-xt-relationalai-pure + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index f0a5691cc30..eabe0d5ae12 100644 --- a/pom.xml +++ b/pom.xml @@ -47,6 +47,9 @@ legend-engine-xts-mongodb legend-engine-xts-elasticsearch + + legend-engine-xts-relationalai + legend-engine-xts-xml legend-engine-xts-protobuf @@ -982,6 +985,11 @@ legend-engine-xt-relationalStore-presto-pure ${project.version} + + org.finos.legend.engine + legend-engine-xt-relationalai-pure + ${project.version} + org.finos.legend.engine From ac6e88d93165a15900f8b27a166dc19b6d6edebc Mon Sep 17 00:00:00 2001 From: AFine-gs <69924417+AFine-gs@users.noreply.github.com> Date: Fri, 13 Oct 2023 08:55:38 -0400 Subject: [PATCH 09/80] update function signature for json transformer (#2365) --- .../RelationalResultToJsonDefaultSerializer.java | 4 ++-- .../relational/serialization/ValueTransformer.java | 2 +- .../relational/serialization/TestValueTransformer.java | 9 +++++---- 3 files changed, 8 insertions(+), 7 deletions(-) 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/serialization/RelationalResultToJsonDefaultSerializer.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/serialization/RelationalResultToJsonDefaultSerializer.java index 39817fb7ac1..0eee32bbfb3 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/serialization/RelationalResultToJsonDefaultSerializer.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/serialization/RelationalResultToJsonDefaultSerializer.java @@ -131,10 +131,10 @@ private void processRow(OutputStream outputStream) throws IOException, SQLExcept { Object value = relationalResult.getValue(i); - outputStream.write(((String) transformer.transformWrappedRelationalValue(value, relationalResult.getTransformers().get(i - 1).andThen(purePrimitiveToJsonConverter))).getBytes()); + outputStream.write((transformer.transformWrappedRelationalValueForJSON(value, relationalResult.getTransformers().get(i - 1).andThen(purePrimitiveToJsonConverter))).getBytes()); outputStream.write(b_comma); } - outputStream.write(((String) transformer.transformWrappedRelationalValue(relationalResult.getValue(relationalResult.columnCount), relationalResult.getTransformers().get(relationalResult.columnCount - 1).andThen(purePrimitiveToJsonConverter))).getBytes()); + outputStream.write((transformer.transformWrappedRelationalValueForJSON(relationalResult.getValue(relationalResult.columnCount), relationalResult.getTransformers().get(relationalResult.columnCount - 1).andThen(purePrimitiveToJsonConverter))).getBytes()); outputStream.write(b_end); } 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/serialization/ValueTransformer.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/serialization/ValueTransformer.java index a50697014e1..dd3ab09a61e 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/serialization/ValueTransformer.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/serialization/ValueTransformer.java @@ -30,7 +30,7 @@ protected ValueTransformer() } - protected Object transformWrappedRelationalValue(Object relationalValue, Function transformer) + protected String transformWrappedRelationalValueForJSON(Object relationalValue, Function transformer) { if (relationalValue instanceof Timestamp) { diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/serialization/TestValueTransformer.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/serialization/TestValueTransformer.java index b138b0f206f..524c2c3029a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/serialization/TestValueTransformer.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/serialization/TestValueTransformer.java @@ -14,6 +14,7 @@ package org.finos.legend.engine.plan.execution.stores.relational.serialization; +import java.util.function.Function; import org.junit.Assert; import org.junit.Test; @@ -30,14 +31,14 @@ public void testValueTransformer() Date date = new Date(1696532242123L); - org.eclipse.collections.api.block.function.Function transform = value -> value + "Transformed"; + Function transform = value -> value + "Transformed"; Assert.assertEquals("2023-10-05T18:57:22.123000000+0000", valueTransformer.transformRelationalValue(time, transform)); Assert.assertEquals("2023-10-05", valueTransformer.transformRelationalValue(date, transform)); Assert.assertEquals("otherTransformed", valueTransformer.transformRelationalValue("other", transform)); - Assert.assertEquals("\"2023-10-05T18:57:22.123000000+0000\"", valueTransformer.transformWrappedRelationalValue(time, transform)); - Assert.assertEquals("\"2023-10-05\"", valueTransformer.transformWrappedRelationalValue(date, transform)); - Assert.assertEquals("otherTransformed", valueTransformer.transformWrappedRelationalValue("other", transform)); + Assert.assertEquals("\"2023-10-05T18:57:22.123000000+0000\"", valueTransformer.transformWrappedRelationalValueForJSON(time, transform)); + Assert.assertEquals("\"2023-10-05\"", valueTransformer.transformWrappedRelationalValueForJSON(date, transform)); + Assert.assertEquals("otherTransformed", valueTransformer.transformWrappedRelationalValueForJSON("other", transform)); } From 0850f1509f8c2f905ca63b028b4fece5184592d6 Mon Sep 17 00:00:00 2001 From: Abhishoya Lunavat <87463332+abhishoya-gs@users.noreply.github.com> Date: Fri, 13 Oct 2023 19:03:19 +0530 Subject: [PATCH 10/80] Handle single quotes in values in result set temp table strategy (#2353) --- .../RelationalExecutionNodeExecutor.java | 23 +++++++++++----- .../stores/relational/plugin/TestHelpers.java | 27 +++++++++++++++++++ ...sultSetAsValueTuplesTempTableStrategy.java | 1 + .../graphFetch/relationalGraphFetch.pure | 15 +++++++++-- .../extension/extension_relational.pure | 3 ++- .../models/executionPlan_relational.pure | 1 + 6 files changed, 61 insertions(+), 9 deletions(-) create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/plugin/TestHelpers.java 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/plugin/RelationalExecutionNodeExecutor.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/plugin/RelationalExecutionNodeExecutor.java index 228c41da0a6..876c712bc1b 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/plugin/RelationalExecutionNodeExecutor.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/plugin/RelationalExecutionNodeExecutor.java @@ -66,7 +66,6 @@ import org.finos.legend.engine.plan.execution.result.serialization.CsvSerializer; import org.finos.legend.engine.plan.execution.result.serialization.RequestIdGenerator; import org.finos.legend.engine.plan.execution.result.serialization.TemporaryFile; -import org.finos.legend.engine.plan.execution.stores.StoreExecutor; import org.finos.legend.engine.plan.execution.stores.StoreType; import org.finos.legend.engine.plan.execution.stores.relational.RelationalDatabaseCommandsVisitorBuilder; import org.finos.legend.engine.plan.execution.stores.relational.RelationalExecutor; @@ -130,7 +129,6 @@ import org.finos.legend.engine.protocol.pure.v1.model.executionPlan.nodes.graphFetch.store.inMemory.InMemoryRootGraphFetchExecutionNode; import org.finos.legend.engine.protocol.pure.v1.model.executionPlan.nodes.graphFetch.store.inMemory.StoreStreamReadingExecutionNode; import org.finos.legend.engine.protocol.pure.v1.model.executionPlan.result.ClassResultType; -import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.Store; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.DatabaseConnection; import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.raw.classInstance.graph.GraphFetchTree; import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.raw.classInstance.graph.PropertyGraphFetchTree; @@ -894,7 +892,7 @@ private static void createTempTableFromRealizedRelationalResultUsingTempTableStr } else if (node.tempTableStrategy instanceof LoadFromResultSetAsValueTuplesTempTableStrategy) { - loadValuesIntoTempTablesFromRelationalResult(node.tempTableStrategy.loadTempTableNode, realizedRelationalResult, ((LoadFromResultSetAsValueTuplesTempTableStrategy) node.tempTableStrategy).tupleBatchSize, databaseTimeZone, threadExecutionState, profiles); + loadValuesIntoTempTablesFromRelationalResult(node.tempTableStrategy.loadTempTableNode, realizedRelationalResult, ((LoadFromResultSetAsValueTuplesTempTableStrategy) node.tempTableStrategy).tupleBatchSize, ((LoadFromResultSetAsValueTuplesTempTableStrategy) node.tempTableStrategy).quoteCharacterReplacement, databaseTimeZone, threadExecutionState, profiles); } else if (node.tempTableStrategy instanceof LoadFromTempFileTempTableStrategy) { @@ -930,9 +928,9 @@ else if (node.tempTableStrategy instanceof LoadFromTempFileTempTableStrategy) } } - private static void loadValuesIntoTempTablesFromRelationalResult(ExecutionNode node, RealizedRelationalResult realizedRelationalResult, int batchSize, String databaseTimeZone, ExecutionState threadExecutionState, MutableList profiles) + static Function getNormalizer(String quoteCharacterReplacement, String databaseTimeZone) { - final Function normalizer = v -> + return v -> { if (v == null) { @@ -942,8 +940,21 @@ private static void loadValuesIntoTempTablesFromRelationalResult(ExecutionNode n { return (String) ResultNormalizer.normalizeToSql(v, databaseTimeZone); } + if (v instanceof String) + { + if (quoteCharacterReplacement != null) + { + return "'" + ((String)ResultNormalizer.normalizeToSql(v, databaseTimeZone)).replace("'", quoteCharacterReplacement) + "'"; + } + return "'" + ResultNormalizer.normalizeToSql(v, databaseTimeZone) + "'"; + } return "'" + ResultNormalizer.normalizeToSql(v, databaseTimeZone) + "'"; }; + } + + private static void loadValuesIntoTempTablesFromRelationalResult(ExecutionNode node, RealizedRelationalResult realizedRelationalResult, int batchSize, String quoteCharacterReplacement, String databaseTimeZone, ExecutionState threadExecutionState, MutableList profiles) + { + final Function normalizer = getNormalizer(quoteCharacterReplacement, databaseTimeZone); Iterator>> rowBatchIterator = Iterators.partition(realizedRelationalResult.resultSetRows.iterator(), batchSize); while (rowBatchIterator.hasNext()) @@ -1898,7 +1909,7 @@ private Result executeRelationalCrossRootQueryTempTableGraphFetchExecutionNode(R { } node.parentTempTableStrategy.createTempTableNode.accept(new ExecutionNodeExecutor(this.profiles, this.executionState)); - loadValuesIntoTempTablesFromRelationalResult(node.parentTempTableStrategy.loadTempTableNode, parentRealizedRelationalResult, ((LoadFromResultSetAsValueTuplesTempTableStrategy) node.parentTempTableStrategy).tupleBatchSize, databaseTimeZone, this.executionState, this.profiles); + loadValuesIntoTempTablesFromRelationalResult(node.parentTempTableStrategy.loadTempTableNode, parentRealizedRelationalResult, ((LoadFromResultSetAsValueTuplesTempTableStrategy) node.parentTempTableStrategy).tupleBatchSize, ((LoadFromResultSetAsValueTuplesTempTableStrategy) node.tempTableStrategy).quoteCharacterReplacement, databaseTimeZone, this.executionState, this.profiles); } else if (node.parentTempTableStrategy instanceof LoadFromTempFileTempTableStrategy) { diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/plugin/TestHelpers.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/plugin/TestHelpers.java new file mode 100644 index 00000000000..eae2ee0d720 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/plugin/TestHelpers.java @@ -0,0 +1,27 @@ +// 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.plan.execution.stores.relational.plugin; + +import org.junit.Assert; +import org.junit.Test; + +public class TestHelpers +{ + @Test + public void testNormalizerWithSingleQuotes() + { + Assert.assertEquals("'There''s a quote'", RelationalExecutionNodeExecutor.getNormalizer("''", "GMT").apply("There's a quote")); + } +} 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/model/executionPlan/nodes/graphFetch/LoadFromResultSetAsValueTuplesTempTableStrategy.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/executionPlan/nodes/graphFetch/LoadFromResultSetAsValueTuplesTempTableStrategy.java index a1f67409d16..d17afb7c61d 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/model/executionPlan/nodes/graphFetch/LoadFromResultSetAsValueTuplesTempTableStrategy.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/executionPlan/nodes/graphFetch/LoadFromResultSetAsValueTuplesTempTableStrategy.java @@ -17,4 +17,5 @@ public class LoadFromResultSetAsValueTuplesTempTableStrategy extends TempTableStrategy { public Integer tupleBatchSize; + public String quoteCharacterReplacement; } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/relationalGraphFetch.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/relationalGraphFetch.pure index c6ecdf2ccf4..542f20bd99d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/relationalGraphFetch.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/relationalGraphFetch.pure @@ -101,6 +101,7 @@ Class meta::relational::graphFetch::executionPlan::LoadFromSubQueryTempTableStra Class meta::relational::graphFetch::executionPlan::LoadFromResultSetAsValueTuplesTempTableStrategy extends meta::relational::graphFetch::executionPlan::TempTableStrategy { tupleBatchSize : Integer[0..1]; + quoteCharacterReplacement: String[0..1]; } function meta::relational::graphFetch::executionPlan::useTempTableStrategy(dbType: DatabaseType[1]):Boolean[1] @@ -127,6 +128,14 @@ function <> meta::relational::graphFetch::executionPlan::getTupl ); } +function <> meta::relational::graphFetch::executionPlan::getQuoteCharacterReplacement(dbType: DatabaseType[1]):String[1] +{ + if($dbType->in([DatabaseType.Snowflake, DatabaseType.H2]), + | '\'\'', + | '\'' + ); +} + function <> meta::relational::graphFetch::executionPlan::dbsUsingLoadFromTempFileTempTableStrategyForRoot():DatabaseType[*] { [DatabaseType.H2,DatabaseType.MemSQL,DatabaseType.SybaseIQ] @@ -318,7 +327,8 @@ function meta::relational::graphFetch::executionPlan::getTempTableStrategyForRoo createTempTableNode = $createTempTableNode, loadTempTableNode = $loadTempTableNode, dropTempTableNode = $dropTempTableNode, - tupleBatchSize = getTupleBatchSize($dbType) + tupleBatchSize = getTupleBatchSize($dbType), + quoteCharacterReplacement = getQuoteCharacterReplacement($dbType) ); ); } @@ -330,7 +340,8 @@ function meta::relational::graphFetch::executionPlan::getTempTableStrategyForNon createTempTableNode = $createTempTableNode, loadTempTableNode = $loadTempTableNode, dropTempTableNode = $dropTempTableNode, - tupleBatchSize = getTupleBatchSize($dbType) + tupleBatchSize = getTupleBatchSize($dbType), + quoteCharacterReplacement = getQuoteCharacterReplacement($dbType) ), | if($dbType->in(dbsUsingLoadFromSubQueryTempTableStrategyForComplexProperty()), | ^LoadFromSubQueryTempTableStrategy( 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/extension/extension_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/extension/extension_relational.pure index defa2b1569b..4c6b6b77565 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/extension/extension_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/extension/extension_relational.pure @@ -59,7 +59,8 @@ function meta::protocols::pure::vX_X_X::extension::transformTempTableStrategy(te createTempTableNode = if($t.createTempTableNode->isNotEmpty(),|$t.createTempTableNode->toOne()->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::executionPlan::transformNode($mapping, $extensions),|[]), loadTempTableNode = if($t.loadTempTableNode->isNotEmpty(),|$t.loadTempTableNode->toOne()->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::executionPlan::transformNode($mapping, $extensions),|[]), dropTempTableNode = if($t.dropTempTableNode->isNotEmpty(),|$t.dropTempTableNode->toOne()->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::executionPlan::transformNode($mapping, $extensions),|[]), - tupleBatchSize = $t.tupleBatchSize + tupleBatchSize = $t.tupleBatchSize, + quoteCharacterReplacement = $t.quoteCharacterReplacement ); ]) } 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/executionPlan_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/models/executionPlan_relational.pure index 03b12f9836b..cb6b23eba0e 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/executionPlan_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/models/executionPlan_relational.pure @@ -117,6 +117,7 @@ Class meta::protocols::pure::vX_X_X::metamodel::executionPlan::LoadFromSubQueryT Class meta::protocols::pure::vX_X_X::metamodel::executionPlan::LoadFromResultSetAsValueTuplesTempTableStrategy extends meta::protocols::pure::vX_X_X::metamodel::executionPlan::TempTableStrategy { tupleBatchSize : Integer[0..1]; + quoteCharacterReplacement: String[0..1]; } Class meta::protocols::pure::vX_X_X::metamodel::executionPlan::RelationalBlockExecutionNode extends SequenceExecutionNode From bf4eb75ea6b9a19a21b81dde41f694a121688bc9 Mon Sep 17 00:00:00 2001 From: mrudula-gs <89876341+mrudula-gs@users.noreply.github.com> Date: Fri, 13 Oct 2023 16:27:13 -0400 Subject: [PATCH 11/80] Compare JSON Values for Integral vs Non-Integral (#2360) --- .../test/runner/shared/JsonNodeComparator.java | 4 ++-- .../assertion/TestTestAssertionEvaluator.java | 13 +++++++++++++ 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/src/main/java/org/finos/legend/engine/test/runner/shared/JsonNodeComparator.java b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/src/main/java/org/finos/legend/engine/test/runner/shared/JsonNodeComparator.java index 655ac1e94b8..118039f4f1e 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/src/main/java/org/finos/legend/engine/test/runner/shared/JsonNodeComparator.java +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/src/main/java/org/finos/legend/engine/test/runner/shared/JsonNodeComparator.java @@ -150,7 +150,7 @@ private int compareNumbers(JsonNode node1, JsonNode node2) { if (node1.isIntegralNumber()) { - if (!node2.isIntegralNumber()) + if (!node2.isIntegralNumber() && !(node1.asText().equals(node2.asText()))) { return -1; } @@ -166,7 +166,7 @@ private int compareNumbers(JsonNode node1, JsonNode node2) } if (node1.isFloatingPointNumber()) { - if (!node2.isFloatingPointNumber()) + if (!node2.isFloatingPointNumber() && !(node1.asText().equals(node2.asText()))) { return -1; } diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-testable/src/test/java/org/finos/legend/engine/testable/assertion/TestTestAssertionEvaluator.java b/legend-engine-core/legend-engine-core-test/legend-engine-testable/src/test/java/org/finos/legend/engine/testable/assertion/TestTestAssertionEvaluator.java index 9c0296f7364..db4744effa4 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-testable/src/test/java/org/finos/legend/engine/testable/assertion/TestTestAssertionEvaluator.java +++ b/legend-engine-core/legend-engine-core-test/legend-engine-testable/src/test/java/org/finos/legend/engine/testable/assertion/TestTestAssertionEvaluator.java @@ -215,4 +215,17 @@ public void testEqualToAssertionWithFloatPrecision() Assert.assertTrue(assertionStatus instanceof AssertPass); Assert.assertEquals("assert1", assertionStatus.id); } + + @Test + public void testEqualToJsonAssertionWithExponentNotation() + { + ConstantResult constantResult = new ConstantResult("{\"negExp\":[6.2292853E-8, 6.2292853E-7, 6.2292853E-6, 6.2292853E-1], \"posExp\":[6.2292853E0, 6.2292853E1, 62.529285E6, 6.2292853E7, 6.22928534E8], \"noExp\":[0.62, 62, 6.2]}"); + ExternalFormatData data = new ExternalFormatData(); + data.contentType = "application/json"; + EqualToJson equalToJson = new EqualToJson(); + equalToJson.expected = data; + data.data = "{\"negExp\":[6.2292853E-8, 6.2292853E-7, 0.0000062292853, 0.62292853], \"posExp\":[6.2292853, 62.292853, 62529285, 62292853, 622928534], \"noExp\":[0.62, 62, 6.2]}"; + AssertionStatus assertionStatus = equalToJson.accept(new TestAssertionEvaluator(constantResult)); + Assert.assertTrue(assertionStatus instanceof AssertPass); + } } From 274385d2c5ed114ab7f6f75a0b55bea12f799ced Mon Sep 17 00:00:00 2001 From: pbt-santos <60274019+pbt-santos@users.noreply.github.com> Date: Sun, 15 Oct 2023 11:40:15 -0400 Subject: [PATCH 12/80] Make H2 more backward compatible (#2277) * Make H2 more backward compatible Makes dates and timestamps more explicit. Uses transformers to make values conform to model specifications. Wraps checks to boolean strings as a boolean value to avoid varchar to boolean comparisons. Adds assertion function to verify expected values depending on H2 value to preserve compatibility with prior version. * Make more h2 tests compatible --- .../transformer/SetImplTransformers.java | 32 +- .../functions/in/TestPlanExecutionForIn.java | 24 +- .../executionPlanTest.pure | 376 +++++++++++++- .../test/rewrite/NOP/nonAggregationAware.pure | 32 +- .../test/rewrite/NOP/nonGroupBy.pure | 20 +- .../test/rewrite/objectGroupBy.pure | 10 +- .../tests/testCalendarFunctions.pure | 156 ++++-- .../tests/executionPlanTest.pure | 388 ++++++++++++-- .../tests/projection/testAggregation.pure | 7 +- .../tests/projection/testDateFilters.pure | 55 +- .../projection/testGroupWithWindowSubset.pure | 13 +- .../functions/tests/projection/testIn.pure | 7 +- .../tests/testCalculatingDistance.pure | 50 +- .../functions/tests/testFilters.pure | 13 +- .../relational/functions/tests/testMap.pure | 13 +- .../functions/tests/testModelGroupBy.pure | 43 +- .../tests/testGraphFetchMilestoning.pure | 4 +- .../tests/testBiTemporalDateMilestoning.pure | 140 ++++- .../tests/testBusinessDateMilestoning.pure | 477 +++++++++++++++--- .../testBusinessSnapshotMilestoning.pure | 105 +++- .../tests/testGetAllForEachDate.pure | 8 +- ...InheritanceMappingWithMilestonedTypes.pure | 31 +- .../testMilestoningContextPropagation.pure | 213 ++++++-- .../tests/testMilestoningWithDistinct.pure | 8 +- .../tests/testMilestoningWithInclusive.pure | 61 ++- .../milestoning/tests/testOtherwise.pure | 14 +- .../tests/testProcessingDateMilestoning.pure | 19 +- .../milestoning/tests/testTemporalDate.pure | 14 +- .../testTemporalMilestoningPostProcessor.pure | 7 +- .../tests/testTemporalRangeQuery.pure | 62 ++- ...tionWithHybridMilestoningAcrossTables.pure | 19 +- .../m2m2rShowcase.pure | 13 +- .../pureToSQLQuery/tests/testMergeRules.pure | 13 +- .../dbSpecific/h2/h2Extension.pure | 27 +- .../dbSpecific/h2/h2Extension2_1_214.pure | 265 +++++++++- .../relational/tds/tests/testGroupBy.pure | 9 +- .../relational/tds/tests/testTDSExtend.pure | 10 +- .../relational/tds/tests/testTDSProject.pure | 15 +- .../tds/tests/testTDSWindowColumn.pure | 6 +- .../tests/testDataGeneration.pure | 158 +++++- .../advanced/testContractMoneyScenario.pure | 13 +- .../tests/advanced/testForcedMilestoning.pure | 25 +- .../testClassMappingFilterWithInnerJoin.pure | 25 +- .../mapping/embedded/testEmbeddedMapping.pure | 7 +- .../testEmbeddedOtherwiseMapping.pure | 21 +- .../embedded/testInlineEmbeddedMapping.pure | 15 +- .../embedded/testInlineEmbeddedNested.pure | 15 +- .../embedded/testInlineEmbeddedTargetIds.pure | 15 +- .../testSqlFunctionsInMapping.pure | 25 +- .../testUnionWithMultipleChainedJoins.pure | 68 ++- .../relational/tests/query/datePeriods.pure | 214 ++++++-- .../relational/tests/query/testQualifier.pure | 7 +- .../relational/tests/query/testView.pure | 7 +- .../tests/query/testWithFunction.pure | 49 +- .../fromPure/tests/testToSQLString.pure | 19 +- .../tests/testValidationWithMilestoning.pure | 80 ++- 56 files changed, 3010 insertions(+), 532 deletions(-) diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/src/main/java/org/finos/legend/engine/plan/execution/result/transformer/SetImplTransformers.java b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/src/main/java/org/finos/legend/engine/plan/execution/result/transformer/SetImplTransformers.java index 5353321f219..56b63e79d73 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/src/main/java/org/finos/legend/engine/plan/execution/result/transformer/SetImplTransformers.java +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/src/main/java/org/finos/legend/engine/plan/execution/result/transformer/SetImplTransformers.java @@ -16,6 +16,7 @@ import org.eclipse.collections.api.block.function.Function; import org.eclipse.collections.api.list.MutableList; +import org.eclipse.collections.impl.block.factory.Functions; import org.eclipse.collections.impl.factory.Lists; import org.eclipse.collections.impl.utility.ListIterate; import org.finos.legend.engine.plan.dependencies.domain.date.PureDate; @@ -84,22 +85,25 @@ else if (o instanceof Number) private Function buildTransformer(TransformerInput transformerInput) { - if (transformerInput.type != null && transformerInput.test.valueOf(transformerInput.identifier)) + if (transformerInput.type != null) { - return transformerInput.transformer.valueOf(transformerInput.identifier); - } - else if (transformerInput.type != null && transformerInput.type.equals("Boolean")) - { - return o -> toBoolean(o); - } - else if (transformerInput.type != null && (transformerInput.type.equals("StrictDate") || transformerInput.type.equals("DateTime") || transformerInput.type.equals("Date"))) - { - return o -> o instanceof Date ? DateFunctions.fromDate((Date) o) : o; - } - else - { - return o -> o; + if (transformerInput.test.valueOf(transformerInput.identifier)) + { + return transformerInput.transformer.valueOf(transformerInput.identifier); + } + + switch (transformerInput.type) + { + case "Boolean": + return this::toBoolean; + case "StrictDate": + case "DateTime": + case "Date": + return o -> o instanceof Date ? DateFunctions.fromDate((Date) o) : o; + } } + + return Functions.identity(); } } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/full/functions/in/TestPlanExecutionForIn.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/full/functions/in/TestPlanExecutionForIn.java index ff74c07607e..64687f9b2dc 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/full/functions/in/TestPlanExecutionForIn.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/full/functions/in/TestPlanExecutionForIn.java @@ -19,6 +19,7 @@ import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.factory.Maps; import org.finos.legend.engine.plan.execution.stores.relational.connection.AlloyTestServer; +import org.finos.legend.engine.plan.execution.stores.relational.connection.driver.vendors.h2.H2Manager; import org.finos.legend.engine.protocol.pure.v1.model.executionPlan.SingleExecutionPlan; import org.finos.legend.engine.plan.execution.stores.relational.serialization.RelationalResultToJsonDefaultSerializer; import org.junit.Assert; @@ -33,6 +34,7 @@ public class TestPlanExecutionForIn extends AlloyTestServer { + private static final int LEGACY_H2_VERSION = 1; public static final String LOGICAL_MODEL = "###Pure\n" + "Class test::Person\n" + @@ -276,8 +278,15 @@ public void testInExecutionWithDateTimeList() throws JsonProcessingException Map paramWithMultipleValues = Maps.mutable.with("birthTime", Lists.mutable.with("2020-12-12 20:00:00", "2020-12-13 20:00:00")); String expectedResWithEmptyList = "{\"builder\":{\"_type\":\"tdsBuilder\",\"columns\":[{\"name\":\"fullName\",\"type\":\"String\",\"relationalType\":\"VARCHAR(100)\"}]},\"activities\":[{\"_type\":\"relational\",\"sql\":\"select \\\"root\\\".fullName as \\\"fullName\\\" from PERSON as \\\"root\\\" where \\\"root\\\".birthTime in (null)\"}],\"result\":{\"columns\":[\"fullName\"],\"rows\":[]}}"; - String expectedResWithSingleValue = "{\"builder\":{\"_type\":\"tdsBuilder\",\"columns\":[{\"name\":\"fullName\",\"type\":\"String\",\"relationalType\":\"VARCHAR(100)\"}]},\"activities\":[{\"_type\":\"relational\",\"sql\":\"select \\\"root\\\".fullName as \\\"fullName\\\" from PERSON as \\\"root\\\" where \\\"root\\\".birthTime in ('2020-12-12 20:00:00')\"}],\"result\":{\"columns\":[\"fullName\"],\"rows\":[{\"values\":[\"P1\"]}]}}"; - String expectedResWithMultipleValues = "{\"builder\":{\"_type\":\"tdsBuilder\",\"columns\":[{\"name\":\"fullName\",\"type\":\"String\",\"relationalType\":\"VARCHAR(100)\"}]},\"activities\":[{\"_type\":\"relational\",\"sql\":\"select \\\"root\\\".fullName as \\\"fullName\\\" from PERSON as \\\"root\\\" where \\\"root\\\".birthTime in ('2020-12-12 20:00:00','2020-12-13 20:00:00')\"}],\"result\":{\"columns\":[\"fullName\"],\"rows\":[{\"values\":[\"P1\"]},{\"values\":[\"P2\"]},{\"values\":[\"SpecialName'1\"]},{\"values\":[\"SpecialName'2\"]}]}}"; + String expectedResWithSingleValue = "{\"builder\":{\"_type\":\"tdsBuilder\",\"columns\":[{\"name\":\"fullName\",\"type\":\"String\",\"relationalType\":\"VARCHAR(100)\"}]},\"activities\":[{\"_type\":\"relational\",\"sql\":\"select \\\"root\\\".fullName as \\\"fullName\\\" from PERSON as \\\"root\\\" where \\\"root\\\".birthTime in (TIMESTAMP'2020-12-12 20:00:00')\"}],\"result\":{\"columns\":[\"fullName\"],\"rows\":[{\"values\":[\"P1\"]}]}}"; + String expectedResWithMultipleValues = "{\"builder\":{\"_type\":\"tdsBuilder\",\"columns\":[{\"name\":\"fullName\",\"type\":\"String\",\"relationalType\":\"VARCHAR(100)\"}]},\"activities\":[{\"_type\":\"relational\",\"sql\":\"select \\\"root\\\".fullName as \\\"fullName\\\" from PERSON as \\\"root\\\" where \\\"root\\\".birthTime in (TIMESTAMP'2020-12-12 20:00:00',TIMESTAMP'2020-12-13 20:00:00')\"}],\"result\":{\"columns\":[\"fullName\"],\"rows\":[{\"values\":[\"P1\"]},{\"values\":[\"P2\"]},{\"values\":[\"SpecialName'1\"]},{\"values\":[\"SpecialName'2\"]}]}}"; + + int h2MajorVersion = H2Manager.getMajorVersion(); + if (h2MajorVersion == LEGACY_H2_VERSION) + { + expectedResWithSingleValue = "{\"builder\":{\"_type\":\"tdsBuilder\",\"columns\":[{\"name\":\"fullName\",\"type\":\"String\",\"relationalType\":\"VARCHAR(100)\"}]},\"activities\":[{\"_type\":\"relational\",\"sql\":\"select \\\"root\\\".fullName as \\\"fullName\\\" from PERSON as \\\"root\\\" where \\\"root\\\".birthTime in ('2020-12-12 20:00:00')\"}],\"result\":{\"columns\":[\"fullName\"],\"rows\":[{\"values\":[\"P1\"]}]}}"; + expectedResWithMultipleValues = "{\"builder\":{\"_type\":\"tdsBuilder\",\"columns\":[{\"name\":\"fullName\",\"type\":\"String\",\"relationalType\":\"VARCHAR(100)\"}]},\"activities\":[{\"_type\":\"relational\",\"sql\":\"select \\\"root\\\".fullName as \\\"fullName\\\" from PERSON as \\\"root\\\" where \\\"root\\\".birthTime in ('2020-12-12 20:00:00','2020-12-13 20:00:00')\"}],\"result\":{\"columns\":[\"fullName\"],\"rows\":[{\"values\":[\"P1\"]},{\"values\":[\"P2\"]},{\"values\":[\"SpecialName'1\"]},{\"values\":[\"SpecialName'2\"]}]}}"; + } Assert.assertEquals(expectedResWithEmptyList, RelationalResultToJsonDefaultSerializer.removeComment(executePlan(plan, paramWithEmptyList))); Assert.assertEquals(expectedResWithSingleValue, RelationalResultToJsonDefaultSerializer.removeComment(executePlan(plan, paramWithSingleValue))); @@ -301,8 +310,15 @@ public void testInExecutionWithDateTimeListAndTimeZone() throws JsonProcessingEx Map paramWithMultipleValues = Maps.mutable.with("birthTime", Lists.mutable.with("2020-12-13 03:00:00", "2020-12-14 03:00:00")); String expectedResWithEmptyList = "{\"builder\":{\"_type\":\"tdsBuilder\",\"columns\":[{\"name\":\"fullName\",\"type\":\"String\",\"relationalType\":\"VARCHAR(100)\"}]},\"activities\":[{\"_type\":\"relational\",\"sql\":\"select \\\"root\\\".fullName as \\\"fullName\\\" from PERSON as \\\"root\\\" where \\\"root\\\".birthTime in (null)\"}],\"result\":{\"columns\":[\"fullName\"],\"rows\":[]}}"; - String expectedResWithSingleValue = "{\"builder\":{\"_type\":\"tdsBuilder\",\"columns\":[{\"name\":\"fullName\",\"type\":\"String\",\"relationalType\":\"VARCHAR(100)\"}]},\"activities\":[{\"_type\":\"relational\",\"sql\":\"select \\\"root\\\".fullName as \\\"fullName\\\" from PERSON as \\\"root\\\" where \\\"root\\\".birthTime in ('2020-12-12 20:00:00')\"}],\"result\":{\"columns\":[\"fullName\"],\"rows\":[{\"values\":[\"P1\"]}]}}"; - String expectedResWithMultipleValues = "{\"builder\":{\"_type\":\"tdsBuilder\",\"columns\":[{\"name\":\"fullName\",\"type\":\"String\",\"relationalType\":\"VARCHAR(100)\"}]},\"activities\":[{\"_type\":\"relational\",\"sql\":\"select \\\"root\\\".fullName as \\\"fullName\\\" from PERSON as \\\"root\\\" where \\\"root\\\".birthTime in ('2020-12-12 20:00:00','2020-12-13 20:00:00')\"}],\"result\":{\"columns\":[\"fullName\"],\"rows\":[{\"values\":[\"P1\"]},{\"values\":[\"P2\"]},{\"values\":[\"SpecialName'1\"]},{\"values\":[\"SpecialName'2\"]}]}}"; + String expectedResWithSingleValue = "{\"builder\":{\"_type\":\"tdsBuilder\",\"columns\":[{\"name\":\"fullName\",\"type\":\"String\",\"relationalType\":\"VARCHAR(100)\"}]},\"activities\":[{\"_type\":\"relational\",\"sql\":\"select \\\"root\\\".fullName as \\\"fullName\\\" from PERSON as \\\"root\\\" where \\\"root\\\".birthTime in (TIMESTAMP'2020-12-12 20:00:00')\"}],\"result\":{\"columns\":[\"fullName\"],\"rows\":[{\"values\":[\"P1\"]}]}}"; + String expectedResWithMultipleValues = "{\"builder\":{\"_type\":\"tdsBuilder\",\"columns\":[{\"name\":\"fullName\",\"type\":\"String\",\"relationalType\":\"VARCHAR(100)\"}]},\"activities\":[{\"_type\":\"relational\",\"sql\":\"select \\\"root\\\".fullName as \\\"fullName\\\" from PERSON as \\\"root\\\" where \\\"root\\\".birthTime in (TIMESTAMP'2020-12-12 20:00:00',TIMESTAMP'2020-12-13 20:00:00')\"}],\"result\":{\"columns\":[\"fullName\"],\"rows\":[{\"values\":[\"P1\"]},{\"values\":[\"P2\"]},{\"values\":[\"SpecialName'1\"]},{\"values\":[\"SpecialName'2\"]}]}}"; + + int h2MajorVersion = H2Manager.getMajorVersion(); + if (h2MajorVersion == LEGACY_H2_VERSION) + { + expectedResWithSingleValue = "{\"builder\":{\"_type\":\"tdsBuilder\",\"columns\":[{\"name\":\"fullName\",\"type\":\"String\",\"relationalType\":\"VARCHAR(100)\"}]},\"activities\":[{\"_type\":\"relational\",\"sql\":\"select \\\"root\\\".fullName as \\\"fullName\\\" from PERSON as \\\"root\\\" where \\\"root\\\".birthTime in ('2020-12-12 20:00:00')\"}],\"result\":{\"columns\":[\"fullName\"],\"rows\":[{\"values\":[\"P1\"]}]}}"; + expectedResWithMultipleValues = "{\"builder\":{\"_type\":\"tdsBuilder\",\"columns\":[{\"name\":\"fullName\",\"type\":\"String\",\"relationalType\":\"VARCHAR(100)\"}]},\"activities\":[{\"_type\":\"relational\",\"sql\":\"select \\\"root\\\".fullName as \\\"fullName\\\" from PERSON as \\\"root\\\" where \\\"root\\\".birthTime in ('2020-12-12 20:00:00','2020-12-13 20:00:00')\"}],\"result\":{\"columns\":[\"fullName\"],\"rows\":[{\"values\":[\"P1\"]},{\"values\":[\"P2\"]},{\"values\":[\"SpecialName'1\"]},{\"values\":[\"SpecialName'2\"]}]}}"; + } Assert.assertEquals(expectedResWithEmptyList, RelationalResultToJsonDefaultSerializer.removeComment(executePlan(plan, paramWithEmptyList))); Assert.assertEquals(expectedResWithSingleValue, RelationalResultToJsonDefaultSerializer.removeComment(executePlan(plan, paramWithSingleValue))); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/src/main/resources/core_relational_java_platform_binding/legendJavaPlatformBinding/executionPlanTest.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/src/main/resources/core_relational_java_platform_binding/legendJavaPlatformBinding/executionPlanTest.pure index 7fd95d60899..40b2a12800e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/src/main/resources/core_relational_java_platform_binding/legendJavaPlatformBinding/executionPlanTest.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/src/main/resources/core_relational_java_platform_binding/legendJavaPlatformBinding/executionPlanTest.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::pure::mapping::modelToModel::test::createInstances::*; import meta::relational::postProcessor::*; import meta::pure::extension::*; @@ -55,7 +56,7 @@ function <> meta::relational::executionPlan::platformBinding::legendJ let res = meta::pure::executionPlan::executionPlan($lambda,simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); - let expected = + let expectedLegacyH2 = 'Sequence\n'+ '(\n'+ ' type = TDS[(firstName, String, VARCHAR(200), "")]\n'+ @@ -85,11 +86,45 @@ function <> meta::relational::executionPlan::platformBinding::legendJ ' )\n'+ ')\n'; - assertEquals($expected, $res->planToString(meta::relational::extension::relationalExtensions())); + let expectedNewH2 = + 'Sequence\n'+ + '(\n'+ + ' type = TDS[(firstName, String, VARCHAR(200), "")]\n'+ + ' (\n'+ + ' Allocation\n'+ + ' (\n'+ + ' type = DateTime\n'+ + ' resultSizeRange = 1\n'+ + ' name = x\n'+ + ' value = \n'+ + ' (\n'+ + ' PureExp\n'+ + ' (\n'+ + ' type = DateTime\n'+ + ' resultSizeRange = 1\n'+ + ' expression = now()\n'+ + ' )\n'+ + ' )\n'+ + ' )\n'+ + ' Relational\n'+ + ' (\n'+ + ' type = TDS[(firstName, String, VARCHAR(200), "")]\n'+ + ' resultColumns = [("firstName", VARCHAR(200))]\n' + + ' sql = select "root".FIRSTNAME as "firstName" from personTable as "root" where TIMESTAMP\'${x}\' > dateadd(DAY, -1, current_timestamp())\n'+ + ' connection = TestDatabaseConnection(type = "H2")\n'+ + ' )\n'+ + ' )\n'+ + ')\n'; + + assertEqualsH2Compatible( + $expectedLegacyH2, + $expectedNewH2, + $res->planToString(meta::relational::extension::relationalExtensions()) + ); let withJava = $res->generatePlatformCode(meta::pure::executionPlan::platformBinding::legendJava::legendJavaPlatformBindingId(), ^meta::pure::executionPlan::platformBinding::legendJava::LegendJavaPlatformBindingConfig(), relationalExtensionsWithLegendJavaPlatformBinding()); - let expectedJava = + let expectedJavaLegacyH2 = 'Sequence\n' + '(\n' + ' type = TDS[(firstName, String, VARCHAR(200), "")]\n' + @@ -123,7 +158,45 @@ function <> meta::relational::executionPlan::platformBinding::legendJ ' )\n' + ')\n'; - assertEquals($expectedJava, $withJava->planToString(meta::relational::extension::relationalExtensions())); + let expectedJavaNewH2 = + 'Sequence\n' + + '(\n' + + ' type = TDS[(firstName, String, VARCHAR(200), "")]\n' + + ' (\n' + + ' Allocation\n' + + ' (\n' + + ' type = DateTime\n' + + ' resultSizeRange = 1\n'+ + ' name = x\n' + + ' value = \n' + + ' (\n' + + ' PureExp\n' + + ' (\n' + + ' type = DateTime\n' + + ' resultSizeRange = 1\n'+ + ' expression = now()\n' + + ' implementation\n' + + ' (\n' + + ' calls = org.finos.legend.engine.plan.dependencies.store.platform.PredefinedExpressions.now\n' + + ' )\n' + + ' )\n' + + ' )\n' + + ' )\n' + + ' Relational\n' + + ' (\n' + + ' type = TDS[(firstName, String, VARCHAR(200), "")]\n' + + ' resultColumns = [("firstName", VARCHAR(200))]\n' + + ' sql = select "root".FIRSTNAME as "firstName" from personTable as "root" where TIMESTAMP\'${x}\' > dateadd(DAY, -1, current_timestamp())\n' + + ' connection = TestDatabaseConnection(type = "H2")\n' + + ' )\n' + + ' )\n' + + ')\n'; + + assertEqualsH2Compatible( + $expectedJavaLegacyH2, + $expectedJavaNewH2, + $withJava->planToString(meta::relational::extension::relationalExtensions()) + ); } function <> meta::relational::executionPlan::platformBinding::legendJava::tests::withNestedSequenceNode() : Boolean[1] @@ -268,7 +341,7 @@ function <> meta::relational::executionPlan::platformBinding::legendJ ->filter(p|$x>now()->adjust(-1, DurationUnit.DAYS)) ->project([col({p:meta::relational::tests::model::simple::Person[1]|$p.firstName}, 'firstName')]);}; let res = meta::pure::executionPlan::executionPlan($lambda,simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); - let expected = + let expectedLegacyH2 = 'Sequence\n'+ '(\n'+ ' type = TDS[(firstName, String, VARCHAR(200), "")]\n'+ @@ -298,11 +371,45 @@ function <> meta::relational::executionPlan::platformBinding::legendJ ' )\n'+ ')\n'; - assertEquals($expected, $res->planToString(meta::relational::extension::relationalExtensions())); + let expectedNewH2 = + 'Sequence\n'+ + '(\n'+ + ' type = TDS[(firstName, String, VARCHAR(200), "")]\n'+ + ' (\n'+ + ' Allocation\n'+ + ' (\n'+ + ' type = Date\n'+ + ' resultSizeRange = 1\n'+ + ' name = x\n'+ + ' value = \n'+ + ' (\n'+ + ' PureExp\n'+ + ' (\n'+ + ' type = Date\n'+ + ' resultSizeRange = 1\n'+ + ' expression = now() -> adjust(1, Enumeration DurationUnit -> extractEnumValue(\'DAYS\'))\n'+ + ' )\n'+ + ' )\n'+ + ' )\n'+ + ' Relational\n'+ + ' (\n'+ + ' type = TDS[(firstName, String, VARCHAR(200), "")]\n'+ + ' resultColumns = [("firstName", VARCHAR(200))]\n' + + ' sql = select "root".FIRSTNAME as "firstName" from personTable as "root" where TIMESTAMP\'${x}\' > dateadd(DAY, -1, current_timestamp())\n'+ + ' connection = TestDatabaseConnection(type = "H2")\n'+ + ' )\n'+ + ' )\n'+ + ')\n'; + + assertEqualsH2Compatible( + $expectedLegacyH2, + $expectedNewH2, + $res->planToString(meta::relational::extension::relationalExtensions()) + ); let withJava = $res->generatePlatformCode(meta::pure::executionPlan::platformBinding::legendJava::legendJavaPlatformBindingId(), ^meta::pure::executionPlan::platformBinding::legendJava::LegendJavaPlatformBindingConfig(), relationalExtensionsWithLegendJavaPlatformBinding()); - let expectedJava = + let expectedJavaLegacyH2 = 'Sequence\n' + '(\n' + ' type = TDS[(firstName, String, VARCHAR(200), "")]\n' + @@ -364,7 +471,74 @@ function <> meta::relational::executionPlan::platformBinding::legendJ ' 0023 }\n' + ' 0024 }\n' + ')\n'; - assertEquals($expectedJava, $withJava->planToString(true, meta::relational::extension::relationalExtensions())); + + let expectedJavaNewH2 = + 'Sequence\n' + + '(\n' + + ' type = TDS[(firstName, String, VARCHAR(200), "")]\n' + + ' (\n' + + ' Allocation\n' + + ' (\n' + + ' type = Date\n' + + ' resultSizeRange = 1\n'+ + ' name = x\n' + + ' value = \n' + + ' (\n' + + ' PureExp\n' + + ' (\n' + + ' type = Date\n' + + ' resultSizeRange = 1\n'+ + ' expression = now() -> adjust(1, Enumeration DurationUnit -> extractEnumValue(\'DAYS\'))\n' + + ' implementation\n' + + ' (\n' + + ' calls = _pure.plan.root.n1.n1.Execute.execute\n' + + ' )\n' + + ' )\n' + + ' )\n' + + ' )\n' + + ' Relational\n' + + ' (\n' + + ' type = TDS[(firstName, String, VARCHAR(200), "")]\n' + + ' resultColumns = [("firstName", VARCHAR(200))]\n' + + ' sql = select "root".FIRSTNAME as "firstName" from personTable as "root" where TIMESTAMP\'${x}\' > dateadd(DAY, -1, current_timestamp())\n' + + ' connection = TestDatabaseConnection(type = "H2")\n' + + ' )\n' + + ' )\n' + + ')\n' + + 'globalImplementationSupport\n' + + '(\n' + + ' classes =\n' + + ' _pure.plan.root.n1.n1.Execute\n' + + ' 0001 package _pure.plan.root.n1.n1;\n' + + ' 0002 \n' + + ' 0003 import java.util.Date;\n' + + ' 0004 import org.finos.legend.engine.plan.dependencies.domain.date.DurationUnit;\n' + + ' 0005 import org.finos.legend.engine.plan.dependencies.domain.date.PureDate;\n' + + ' 0006 import org.finos.legend.engine.plan.dependencies.store.shared.IExecutionNodeContext;\n' + + ' 0007 import org.finos.legend.engine.plan.dependencies.util.Library;\n' + + ' 0008 \n' + + ' 0009 public class Execute\n' + + ' 0010 {\n' + + ' 0011 public static PureDate execute(IExecutionNodeContext context)\n' + + ' 0012 {\n' + + ' 0013 try\n' + + ' 0014 {\n' + + ' 0015 return Library.adjustDate(PureDate.fromDate(new Date()),\n' + + ' 0016 1L,\n' + + ' 0017 DurationUnit.getEnumFromPureName("DAYS"));\n' + + ' 0018 }\n' + + ' 0019 catch (Exception e)\n' + + ' 0020 {\n' + + ' 0021 throw new RuntimeException("Failed in node: root.n1.n1", e);\n' + + ' 0022 }\n' + + ' 0023 }\n' + + ' 0024 }\n' + + ')\n'; + assertEqualsH2Compatible( + $expectedJavaLegacyH2, + $expectedJavaNewH2, + $withJava->planToString(true, meta::relational::extension::relationalExtensions()) + ); } function <> meta::relational::executionPlan::platformBinding::legendJava::tests::letVariableFunctionAdjustDateLiteral() : Boolean[1] @@ -375,7 +549,7 @@ function <> meta::relational::executionPlan::platformBinding::legendJ ->project([col({p:meta::relational::tests::model::simple::Person[1]|$p.firstName}, 'firstName')]);}; let res = meta::pure::executionPlan::executionPlan($lambda,simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); - let expected = + let expectedLegacyH2 = 'Sequence\n'+ '(\n'+ ' type = TDS[(firstName, String, VARCHAR(200), "")]\n'+ @@ -404,12 +578,45 @@ function <> meta::relational::executionPlan::platformBinding::legendJ ' )\n'+ ' )\n'+ ')\n'; + let expectedNewH2 = + 'Sequence\n'+ + '(\n'+ + ' type = TDS[(firstName, String, VARCHAR(200), "")]\n'+ + ' (\n'+ + ' Allocation\n'+ + ' (\n'+ + ' type = Date\n'+ + ' resultSizeRange = 1\n'+ + ' name = x\n'+ + ' value = \n'+ + ' (\n'+ + ' PureExp\n'+ + ' (\n'+ + ' type = Date\n'+ + ' resultSizeRange = 1\n'+ + ' expression = 2005-10-10 -> adjust(1, Enumeration DurationUnit -> extractEnumValue(\'DAYS\'))\n'+ + ' )\n'+ + ' )\n'+ + ' )\n'+ + ' Relational\n'+ + ' (\n'+ + ' type = TDS[(firstName, String, VARCHAR(200), "")]\n'+ + ' resultColumns = [("firstName", VARCHAR(200))]\n' + + ' sql = select "root".FIRSTNAME as "firstName" from personTable as "root" where TIMESTAMP\'${x}\' > dateadd(DAY, -1, DATE\'2005-10-10\')\n'+ + ' connection = TestDatabaseConnection(type = "H2")\n'+ + ' )\n'+ + ' )\n'+ + ')\n'; - assertEquals($expected, $res->planToString(meta::relational::extension::relationalExtensions())); + assertEqualsH2Compatible( + $expectedLegacyH2, + $expectedNewH2, + $res->planToString(meta::relational::extension::relationalExtensions()) + ); let withJava = $res->generatePlatformCode(meta::pure::executionPlan::platformBinding::legendJava::legendJavaPlatformBindingId(), ^meta::pure::executionPlan::platformBinding::legendJava::LegendJavaPlatformBindingConfig(), relationalExtensionsWithLegendJavaPlatformBinding()); - let expectedJava = + let expectedJavaLegacyH2 = 'Sequence\n' + '(\n' + ' type = TDS[(firstName, String, VARCHAR(200), "")]\n' + @@ -470,7 +677,73 @@ function <> meta::relational::executionPlan::platformBinding::legendJ ' 0022 }\n' + ' 0023 }\n' + ')\n'; - assertEquals($expectedJava, $withJava->planToString(true, meta::relational::extension::relationalExtensions())); + + let expectedJavaNewH2 = + 'Sequence\n' + + '(\n' + + ' type = TDS[(firstName, String, VARCHAR(200), "")]\n' + + ' (\n' + + ' Allocation\n' + + ' (\n' + + ' type = Date\n' + + ' resultSizeRange = 1\n'+ + ' name = x\n' + + ' value = \n' + + ' (\n' + + ' PureExp\n' + + ' (\n' + + ' type = Date\n' + + ' resultSizeRange = 1\n'+ + ' expression = 2005-10-10 -> adjust(1, Enumeration DurationUnit -> extractEnumValue(\'DAYS\'))\n' + + ' implementation\n' + + ' (\n' + + ' calls = _pure.plan.root.n1.n1.Execute.execute\n' + + ' )\n' + + ' )\n' + + ' )\n' + + ' )\n' + + ' Relational\n' + + ' (\n' + + ' type = TDS[(firstName, String, VARCHAR(200), "")]\n' + + ' resultColumns = [("firstName", VARCHAR(200))]\n' + + ' sql = select "root".FIRSTNAME as "firstName" from personTable as "root" where TIMESTAMP\'${x}\' > dateadd(DAY, -1, DATE\'2005-10-10\')\n' + + ' connection = TestDatabaseConnection(type = "H2")\n' + + ' )\n' + + ' )\n' + + ')\n' + + 'globalImplementationSupport\n' + + '(\n' + + ' classes =\n' + + ' _pure.plan.root.n1.n1.Execute\n' + + ' 0001 package _pure.plan.root.n1.n1;\n' + + ' 0002 \n' + + ' 0003 import org.finos.legend.engine.plan.dependencies.domain.date.DurationUnit;\n' + + ' 0004 import org.finos.legend.engine.plan.dependencies.domain.date.PureDate;\n' + + ' 0005 import org.finos.legend.engine.plan.dependencies.store.shared.IExecutionNodeContext;\n' + + ' 0006 import org.finos.legend.engine.plan.dependencies.util.Library;\n' + + ' 0007 \n' + + ' 0008 public class Execute\n' + + ' 0009 {\n' + + ' 0010 public static PureDate execute(IExecutionNodeContext context)\n' + + ' 0011 {\n' + + ' 0012 try\n' + + ' 0013 {\n' + + ' 0014 return Library.adjustDate(PureDate.parsePureDate("2005-10-10"),\n' + + ' 0015 1L,\n' + + ' 0016 DurationUnit.getEnumFromPureName("DAYS"));\n' + + ' 0017 }\n' + + ' 0018 catch (Exception e)\n' + + ' 0019 {\n' + + ' 0020 throw new RuntimeException("Failed in node: root.n1.n1", e);\n' + + ' 0021 }\n' + + ' 0022 }\n' + + ' 0023 }\n' + + ')\n'; + assertEqualsH2Compatible( + $expectedJavaLegacyH2, + $expectedJavaNewH2, + $withJava->planToString(true, meta::relational::extension::relationalExtensions()) + ); } function <> meta::relational::executionPlan::platformBinding::legendJava::tests::javaGenerationLetVariablePureExpression() : Boolean[1] @@ -483,7 +756,76 @@ function <> meta::relational::executionPlan::platformBinding::legendJ let res = meta::pure::executionPlan::executionPlan($lambda,meta::relational::tests::milestoning::milestoningmap, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let withJava = $res->generatePlatformCode(meta::pure::executionPlan::platformBinding::legendJava::legendJavaPlatformBindingId(), ^meta::pure::executionPlan::platformBinding::legendJava::LegendJavaPlatformBindingConfig(), relationalExtensionsWithLegendJavaPlatformBinding()); - let expectedJava = + let expectedJavaLegacyH2 = + 'Sequence\n'+ + '(\n' + + ' type = TDS[(classificationType, String, VARCHAR(200), \"\")]\n' + + ' (\n' + + ' FunctionParametersValidationNode\n' + + ' (\n' + + ' functionParameters = [businessDate:StrictDate[0..1], CLSFtype:String[1]]\n' + + ' )\n' + + ' Allocation\n' + + ' (\n' + + ' type = Date\n' + + ' resultSizeRange = 1\n'+ + ' name = asOf\n' + + ' value = \n' + + ' (\n' + + ' PureExp\n' + + ' (\n' + + ' type = Date\n' + + ' resultSizeRange = 1\n'+ + ' requires = [businessDate(StrictDate[0..1])]\n' + + ' expression = $businessDate -> isNotEmpty() -> if([Routed Func: | $businessDate -> toOne();], [Routed Func: | now();])\n' + + ' implementation\n' + + ' (\n' + + ' calls = _pure.plan.root.n2.n1.Execute.execute\n'+ + ' )\n' + + ' )\n' + + ' )\n' + + ' )\n' + + ' Relational\n' + + ' (\n' + + ' type = TDS[(classificationType, String, VARCHAR(200), \"\")]\n' + + ' resultColumns = [(\"classificationType\", VARCHAR(200))]\n' + + ' sql = select distinct "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'${asOf}\' and "productclassificationtable_0".thru_z > \'${asOf}\') where "productclassificationtable_0".type = \'${CLSFtype?replace("\'", "\'\'")}\' and "root".from_z <= \'${asOf}\' and "root".thru_z > \'${asOf}\'\n' + + ' connection = TestDatabaseConnection(type = \"H2\")\n' + + ' )\n' + + ' )\n' + + ')\n' + + 'globalImplementationSupport\n' + + '(\n' + + ' classes =\n' + + ' _pure.plan.root.n2.n1.Execute\n' + + ' 0001 package _pure.plan.root.n2.n1;\n' + + ' 0002 \n' + + ' 0003 import java.util.Date;\n' + + ' 0004 import java.util.function.Supplier;\n' + + ' 0005 import org.finos.legend.engine.plan.dependencies.domain.date.PureDate;\n' + + ' 0006 import org.finos.legend.engine.plan.dependencies.store.shared.IExecutionNodeContext;\n' + + ' 0007 import org.finos.legend.engine.plan.dependencies.util.Library;\n' + + ' 0008 \n' + + ' 0009 public class Execute\n' + + ' 0010 {\n' + + ' 0011 public static PureDate execute(IExecutionNodeContext context)\n' + + ' 0012 {\n' + + ' 0013 try\n' + + ' 0014 {\n' + + ' 0015 PureDate businessDate = context.getResult(\"businessDate\", PureDate.class);\n' + + ' 0016 return businessDate != null ? ((Supplier) () -> Library.toOne(businessDate))\n' + + ' 0017 .get()\n' + + ' 0018 : ((Supplier) () -> PureDate.fromDate(new Date()))\n' + + ' 0019 .get();\n' + + ' 0020 }\n' + + ' 0021 catch (Exception e)\n' + + ' 0022 {\n' + + ' 0023 throw new RuntimeException(\"Failed in node: root.n2.n1\", e);\n' + + ' 0024 }\n' + + ' 0025 }\n' + + ' 0026 }\n' + + ')\n'; + let expectedJavaNewH2 = 'Sequence\n'+ '(\n' + ' type = TDS[(classificationType, String, VARCHAR(200), \"\")]\n' + @@ -516,7 +858,7 @@ function <> meta::relational::executionPlan::platformBinding::legendJ ' (\n' + ' type = TDS[(classificationType, String, VARCHAR(200), \"\")]\n' + ' resultColumns = [(\"classificationType\", VARCHAR(200))]\n' + - ' sql = select distinct \"productclassificationtable_0\".type as \"classificationType\" from ProductTable as \"root\" left outer join ProductClassificationTable as \"productclassificationtable_0\" on (\"root\".type = \"productclassificationtable_0\".type and \"productclassificationtable_0\".from_z <= \'${asOf}\' and \"productclassificationtable_0\".thru_z > \'${asOf}\') where \"productclassificationtable_0\".type = \'${CLSFtype?replace("\'", "\'\'")}\' and \"root\".from_z <= \'${asOf}\' and \"root\".thru_z > \'${asOf}\'\n' + + ' sql = select distinct "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= TIMESTAMP\'${asOf}\' and "productclassificationtable_0".thru_z > TIMESTAMP\'${asOf}\') where "productclassificationtable_0".type = \'${CLSFtype?replace("\'", "\'\'")}\' and "root".from_z <= TIMESTAMP\'${asOf}\' and "root".thru_z > TIMESTAMP\'${asOf}\'\n' + ' connection = TestDatabaseConnection(type = \"H2\")\n' + ' )\n' + ' )\n' + @@ -552,7 +894,11 @@ function <> meta::relational::executionPlan::platformBinding::legendJ ' 0025 }\n' + ' 0026 }\n' + ')\n'; - assertEquals($expectedJava, $withJava->planToString(true, meta::relational::extension::relationalExtensions())); + assertEqualsH2Compatible( + $expectedJavaLegacyH2, + $expectedJavaNewH2, + $withJava->planToString(true, meta::relational::extension::relationalExtensions()) + ); } function <> meta::relational::executionPlan::platformBinding::legendJava::tests::javaGenerationWithMatchInMapping() : Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/rewrite/NOP/nonAggregationAware.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/rewrite/NOP/nonAggregationAware.pure index 242f9291fac..af5304e524d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/rewrite/NOP/nonAggregationAware.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/rewrite/NOP/nonAggregationAware.pure @@ -1,3 +1,5 @@ +import meta::relational::functions::sqlQueryToString::h2::*; +import meta::relational::mapping::*; import meta::relational::functions::asserts::*; import meta::pure::router::printer::*; import meta::pure::extension::*; @@ -16,7 +18,11 @@ function <> meta::relational::tests::aggregationAware::testRewriteAsN let result = execute($query, $mapping, $runtime, relationalExtensions()); assertEmpty($result.activities->filter(s|$s->instanceOf(meta::pure::mapping::aggregationAware::AggregationAwareActivity))); - assertSameSQL('select "root".id as "pk_0", "root".sales_date as "pk_1", "root".is_cancelled_flag as "pk_2", "root".product_id as "pk_3", "root".revenue as "pk_4", "root".emp_id as "pk_5", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "isCancelled", "root".discount as "discount" from base_view.SalesTable as "root"', $result); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".sales_date as "pk_1", "root".is_cancelled_flag as "pk_2", "root".product_id as "pk_3", "root".revenue as "pk_4", "root".emp_id as "pk_5", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "isCancelled", "root".discount as "discount" from base_view.SalesTable as "root"', + 'select "root".id as "pk_0", "root".sales_date as "pk_1", "root".is_cancelled_flag as "pk_2", "root".product_id as "pk_3", "root".revenue as "pk_4", "root".emp_id as "pk_5", cast(case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as boolean) as "isCancelled", "root".discount as "discount" from base_view.SalesTable as "root"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::aggregationAware::testRewriteAsNOP::nonAggregationAware::testRewriteFilter():Boolean[1] @@ -64,7 +70,11 @@ function <> meta::relational::tests::aggregationAware::testRewriteAsN let result = execute($query, $mapping, $runtime, relationalExtensions()); assertEmpty($result.activities->filter(s|$s->instanceOf(meta::pure::mapping::aggregationAware::AggregationAwareActivity))); - assertSameSQL('select "product_0".prod_id as "Product ID", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', $result); + assertEqualsH2Compatible( + 'select "product_0".prod_id as "Product ID", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', + 'select "product_0".prod_id as "Product ID", cast(case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as boolean) as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::aggregationAware::testRewriteAsNOP::nonAggregationAware::testRewriteProjectColMulti():Boolean[1] @@ -76,7 +86,11 @@ function <> meta::relational::tests::aggregationAware::testRewriteAsN let result = execute($query, $mapping, $runtime, relationalExtensions()); assertEmpty($result.activities->filter(s|$s->instanceOf(meta::pure::mapping::aggregationAware::AggregationAwareActivity))); - assertSameSQL('select "product_0".prod_id as "Product ID", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', $result); + assertEqualsH2Compatible( + 'select "product_0".prod_id as "Product ID", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', + 'select "product_0".prod_id as "Product ID", cast(case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as boolean) as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::aggregationAware::testRewriteAsNOP::nonAggregationAware::testRewriteTDSOperation():Boolean[1] @@ -92,7 +106,11 @@ function <> meta::relational::tests::aggregationAware::testRewriteAsN let result = execute($query, $mapping, $runtime, relationalExtensions()); assertEmpty($result.activities->filter(s|$s->instanceOf(meta::pure::mapping::aggregationAware::AggregationAwareActivity))); - assertSameSQL('select "product_0".prod_id as "Product ID", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "Is Cancelled", ("product_0".prod_id + 2) as "Product ID Added 2" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', $result); + assertEqualsH2Compatible( + 'select "product_0".prod_id as "Product ID", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "Is Cancelled", ("product_0".prod_id + 2) as "Product ID Added 2" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', + 'select "product_0".prod_id as "Product ID", cast(case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as boolean) as "Is Cancelled", ("product_0".prod_id + 2) as "Product ID Added 2" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::aggregationAware::testRewriteAsNOP::nonAggregationAware::testRewriteTDSGroupBy():Boolean[1] @@ -108,5 +126,9 @@ function <> meta::relational::tests::aggregationAware::testRewriteAsN let result = execute($query, $mapping, $runtime, relationalExtensions()); assertEmpty($result.activities->filter(s|$s->instanceOf(meta::pure::mapping::aggregationAware::AggregationAwareActivity))); - assertSameSQL('select case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "Is Cancelled", max("product_0".prod_id) as "Max Product ID" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id) group by "Is Cancelled"', $result); + assertEqualsH2Compatible( + 'select case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "Is Cancelled", max("product_0".prod_id) as "Max Product ID" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id) group by "Is Cancelled"', + 'select cast(case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as boolean) as "Is Cancelled", max("product_0".prod_id) as "Max Product ID" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id) group by "Is Cancelled"', + $result->sqlRemoveFormatting() + ); } \ No newline at end of file diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/rewrite/NOP/nonGroupBy.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/rewrite/NOP/nonGroupBy.pure index f49e8cba919..a35b4fd6d97 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/rewrite/NOP/nonGroupBy.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/rewrite/NOP/nonGroupBy.pure @@ -1,3 +1,5 @@ +import meta::relational::functions::sqlQueryToString::h2::*; +import meta::relational::mapping::*; import meta::pure::router::printer::*; import meta::pure::extension::*; import meta::relational::extension::*; @@ -17,7 +19,11 @@ function <> meta::relational::tests::aggregationAware::testRewriteAsN let result = execute($query, $mapping, $runtime, relationalExtensions()); assertEquals(' | [SCT_Main Class Wholesales].all();', $result.activities->filter(s|$s->instanceOf(meta::pure::mapping::aggregationAware::AggregationAwareActivity))->at(0)->cast(@meta::pure::mapping::aggregationAware::AggregationAwareActivity).rewrittenQuery); - assertSameSQL('select "root".id as "pk_0", "root".sales_date as "pk_1", "root".is_cancelled_flag as "pk_2", "root".product_id as "pk_3", "root".revenue as "pk_4", "root".emp_id as "pk_5", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "isCancelled", "root".discount as "discount" from base_view.SalesTable as "root"', $result); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".sales_date as "pk_1", "root".is_cancelled_flag as "pk_2", "root".product_id as "pk_3", "root".revenue as "pk_4", "root".emp_id as "pk_5", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "isCancelled", "root".discount as "discount" from base_view.SalesTable as "root"', + 'select "root".id as "pk_0", "root".sales_date as "pk_1", "root".is_cancelled_flag as "pk_2", "root".product_id as "pk_3", "root".revenue as "pk_4", "root".emp_id as "pk_5", cast(case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as boolean) as "isCancelled", "root".discount as "discount" from base_view.SalesTable as "root"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::aggregationAware::testRewriteAsNOP::nonGroupBy::testRewriteFilter():Boolean[1] @@ -64,7 +70,11 @@ function <> meta::relational::tests::aggregationAware::testRewriteAsN let result = execute($query, $mapping, $runtime, relationalExtensions()); assertEquals(' | [SCT_Main Class Wholesales].all() -> project([x:meta::relational::tests::aggregationAware::domain::Wholesales[1] | $x.product -> map(v_automap:meta::relational::tests::aggregationAware::domain::Product[1] | $v_automap.productId;);, x:meta::relational::tests::aggregationAware::domain::Wholesales[1] | $x.isCancelled;], [\'Product ID\', \'Is Cancelled\']);', $result.activities->filter(s|$s->instanceOf(meta::pure::mapping::aggregationAware::AggregationAwareActivity))->at(0)->cast(@meta::pure::mapping::aggregationAware::AggregationAwareActivity).rewrittenQuery); - assertSameSQL('select "product_0".prod_id as "Product ID", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', $result); + assertEqualsH2Compatible( + 'select "product_0".prod_id as "Product ID", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', + 'select "product_0".prod_id as "Product ID", cast(case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as boolean) as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::aggregationAware::testRewriteAsNOP::nonGroupBy::testRewriteProjectColMulti():Boolean[1] @@ -75,7 +85,11 @@ function <> meta::relational::tests::aggregationAware::testRewriteAsN let result = execute($query, $mapping, $runtime, relationalExtensions()); - assertSameSQL('select "product_0".prod_id as "Product ID", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', $result); + assertEqualsH2Compatible( + 'select "product_0".prod_id as "Product ID", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', + 'select "product_0".prod_id as "Product ID", cast(case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as boolean) as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::aggregationAware::testRewriteAsNOP::nonGroupBy::testRewriteTDSOperation():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/rewrite/objectGroupBy.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/rewrite/objectGroupBy.pure index 664f1406b06..0ea9663460e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/rewrite/objectGroupBy.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/rewrite/objectGroupBy.pure @@ -1,3 +1,5 @@ +import meta::relational::functions::sqlQueryToString::h2::*; +import meta::relational::mapping::*; import meta::relational::functions::asserts::*; import meta::pure::router::printer::*; import meta::pure::extension::*; @@ -108,7 +110,7 @@ function <> meta::relational::tests::aggregationAware::testRewrite::o let result = execute($query, $mapping, $runtime, relationalExtensions()); - assertSameSQL('select "salestable_month_0"."Product ID" as "Product ID", "salestable_month_0"."Total Price 1" as "Total Price 1", "salestable_month_0"."Total Price 2" as "Total Price 2" from (select "salestable_month_1"."Product ID" as "Product ID", "salestable_month_1"."Is Cancelled" as "Is Cancelled", "salestable_month_1"."Total Price 1" as "Total Price 1", "salestable_month_3"."Total Price 2" as "Total Price 2" from (select "product_0".prod_id as "Product ID", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "Is Cancelled", sum("root".revenue) as "Total Price 1" from user_view_agg.SalesTable_Month as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id) where (case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end = \'N\' and "product_0".prod_id = 2238011724) group by "Product ID","Is Cancelled") as "salestable_month_1" inner join (select "product_0".prod_id as "Product ID", sum("root".revenue) as "Total Price 2" from user_view_agg.SalesTable_Month as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id) where "product_0".prod_id = 2238011724 group by "Product ID") as "salestable_month_3" on ("salestable_month_1"."Product ID" = "salestable_month_3"."Product ID")) as "salestable_month_0" where abs(("salestable_month_0"."Total Price 1" - "salestable_month_0"."Total Price 2")) > 1', $result); + assertSameSQL('select "salestable_month_0"."Product ID" as "Product ID", "salestable_month_0"."Total Price 1" as "Total Price 1", "salestable_month_0"."Total Price 2" as "Total Price 2" from (select "salestable_month_1"."Product ID" as "Product ID", "salestable_month_1"."Is Cancelled" as "Is Cancelled", "salestable_month_1"."Total Price 1" as "Total Price 1", "salestable_month_3"."Total Price 2" as "Total Price 2" from (select "product_0".prod_id as "Product ID", cast(case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as boolean) as "Is Cancelled", sum("root".revenue) as "Total Price 1" from user_view_agg.SalesTable_Month as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id) where (case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end = \'N\' and "product_0".prod_id = 2238011724) group by "Product ID","Is Cancelled") as "salestable_month_1" inner join (select "product_0".prod_id as "Product ID", sum("root".revenue) as "Total Price 2" from user_view_agg.SalesTable_Month as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id) where "product_0".prod_id = 2238011724 group by "Product ID") as "salestable_month_3" on ("salestable_month_1"."Product ID" = "salestable_month_3"."Product ID")) as "salestable_month_0" where abs(("salestable_month_0"."Total Price 1" - "salestable_month_0"."Total Price 2")) > 1', $result); } function <> meta::relational::tests::aggregationAware::testRewrite::objectGroupBy::testRewriteSwitchToProductMonthTable():Boolean[1] @@ -238,5 +240,9 @@ function <> meta::relational::tests::aggregationAware::testRewrite::o let runtime = runtime(); let result = execute($query, $mapping, $runtime, relationalExtensions()); - assertSameSQL('select "product_0".prod_id as "Product ID", concat("productdescription_0".prod_description, \':\', \'abc\') as "Product Description", sum("root".revenue) as "Revenue/Total Price Sum" from user_view_multi_agg.SalesTable_Product_Month as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id) left outer join (select "productdescription_1".prod_description as prod_description, "productdescription_1".prod_id as prod_id from base_view.ProductDescription as "productdescription_1" where "productdescription_1".from_z <= \'2021-01-01\' and "productdescription_1".thru_z > \'2021-01-01\') as "productdescription_0" on ("product_0".prod_id = "productdescription_0".prod_id) group by "Product ID","Product Description"', $result); + assertEqualsH2Compatible( + 'select "product_0".prod_id as "Product ID", concat("productdescription_0".prod_description, \':\', \'abc\') as "Product Description", sum("root".revenue) as "Revenue/Total Price Sum" from user_view_multi_agg.SalesTable_Product_Month as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id) left outer join (select "productdescription_1".prod_description as prod_description, "productdescription_1".prod_id as prod_id from base_view.ProductDescription as "productdescription_1" where "productdescription_1".from_z <= \'2021-01-01\' and "productdescription_1".thru_z > \'2021-01-01\') as "productdescription_0" on ("product_0".prod_id = "productdescription_0".prod_id) group by "Product ID","Product Description"', + 'select "product_0".prod_id as "Product ID", concat("productdescription_0".prod_description, \':\', \'abc\') as "Product Description", sum("root".revenue) as "Revenue/Total Price Sum" from user_view_multi_agg.SalesTable_Product_Month as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id) left outer join (select "productdescription_1".prod_description as prod_description, "productdescription_1".prod_id as prod_id from base_view.ProductDescription as "productdescription_1" where "productdescription_1".from_z <= DATE\'2021-01-01\' and "productdescription_1".thru_z > DATE\'2021-01-01\') as "productdescription_0" on ("product_0".prod_id = "productdescription_0".prod_id) group by "Product ID","Product Description"', + $result->sqlRemoveFormatting() + ); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/calendarAggregation/tests/testCalendarFunctions.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/calendarAggregation/tests/testCalendarFunctions.pure index 987833b37ff..f061f522b48 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/calendarAggregation/tests/testCalendarFunctions.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/calendarAggregation/tests/testCalendarFunctions.pure @@ -33,6 +33,8 @@ Mapping meta::relational::tests::functions::pureToSqlQuery::calendarAggregations ) ###Pure +import meta::relational::functions::sqlQueryToString::h2::*; +import meta::relational::mapping::*; import meta::pure::functions::date::calendar::*; import meta::relational::extension::*; import meta::relational::functions::asserts::*; @@ -785,7 +787,7 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | annualized($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','annualized']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".currentYear then ((1.0 * "root".fteFactor) / ((1.0 * "ny_calendar_1".fiscalDay) / "ny_calendar_1".numberOfFiscalDaysInYear)) else null end) as "annualized" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".currentYear then ((1.0 * "root".fteFactor) / ((1.0 * "ny_calendar_1".fiscalDay) / "ny_calendar_1".numberOfFiscalDaysInYear)) else null end) as "annualized" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); assertEquals(['hireType,annualized,Campus,9.812850678733032,Lateral,9.267692307692307,'], toCSV($result.values)->replace('\n', ',')); } @@ -798,7 +800,7 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | cme($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','cme']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".currentYear and "ny_calendar_0".currentMonthNum = "ny_calendar_1".currentMonthNum then ((1.0 * "root".fteFactor) / ((1.0 * "ny_calendar_1".fiscalDay) / "ny_calendar_1".numberOfFiscalDaysInMonth)) else null end) as "cme" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".currentYear and "ny_calendar_0".currentMonthNum = "ny_calendar_1".currentMonthNum then ((1.0 * "root".fteFactor) / ((1.0 * "ny_calendar_1".fiscalDay) / "ny_calendar_1".numberOfFiscalDaysInMonth)) else null end) as "cme" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); assertEquals(['hireType,cme,Campus,0.5131221719457013,Lateral,0.5644343891402714,'], toCSV($result.values)->replace('\n', ',')); } @@ -811,7 +813,11 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | cw($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','cw']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".fiscalWeekOffset = ("ny_calendar_1".fiscalWeekOffset - case when "ny_calendar_1".shortNameWeekDay in (\'Sat\', \'Sun\') then 1 else 0 end) then "root".fteFactor else null end) as "cw" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertEqualsH2Compatible( + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".fiscalWeekOffset = ("ny_calendar_1".fiscalWeekOffset - case when "ny_calendar_1".shortNameWeekDay in (\'Sat\', \'Sun\') then 1 else 0 end) then "root".fteFactor else null end) as "cw" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".fiscalWeekOffset = ("ny_calendar_1".fiscalWeekOffset - case when "ny_calendar_1".shortNameWeekDay in (\'Sat\', \'Sun\') then 1 else 0 end) then "root".fteFactor else null end) as "cw" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + $result->sqlRemoveFormatting() + ); assertEquals(['hireType,cw,Campus,1.65,Lateral,2.2,'], toCSV($result.values)->replace('\n', ',')); } @@ -824,7 +830,11 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | cw_fm($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','cw_fm']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".fiscalWeekOffset = "ny_calendar_1".fiscalWeekOffset then "root".fteFactor else null end) as "cw_fm" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertEqualsH2Compatible( + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".fiscalWeekOffset = "ny_calendar_1".fiscalWeekOffset then "root".fteFactor else null end) as "cw_fm" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".fiscalWeekOffset = "ny_calendar_1".fiscalWeekOffset then "root".fteFactor else null end) as "cw_fm" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + $result->sqlRemoveFormatting() + ); assertEquals(['hireType,cw_fm,Campus,1.65,Lateral,2.2,'], toCSV($result.values)->replace('\n', ',')); } @@ -837,7 +847,11 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | CYMinus2($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','CYMinus2']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = ("ny_calendar_1".previousFiscalYear - 1) then "root".fteFactor else null end) as "CYMinus2" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertEqualsH2Compatible( + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = ("ny_calendar_1".previousFiscalYear - 1) then "root".fteFactor else null end) as "CYMinus2" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = ("ny_calendar_1".previousFiscalYear - 1) then "root".fteFactor else null end) as "CYMinus2" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + $result->sqlRemoveFormatting() + ); assertEquals(['hireType,CYMinus2,Campus,0.17,Lateral,0.16,'], toCSV($result.values)->replace('\n', ',')); } @@ -850,7 +864,11 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | CYMinus3($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','CYMinus3']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = ("ny_calendar_1".previousFiscalYear - 2) then "root".fteFactor else null end) as "CYMinus3" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertEqualsH2Compatible( + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = ("ny_calendar_1".previousFiscalYear - 2) then "root".fteFactor else null end) as "CYMinus3" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = ("ny_calendar_1".previousFiscalYear - 2) then "root".fteFactor else null end) as "CYMinus3" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + $result->sqlRemoveFormatting() + ); assertEquals(['hireType,CYMinus3,Campus,0.15,Lateral,0.14,'], toCSV($result.values)->replace('\n', ',')); } @@ -863,7 +881,11 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | mtd($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','mtd']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".currentYear and "ny_calendar_0".currentMonthNum = "ny_calendar_1".currentMonthNum and "ny_calendar_0".fiscalDay <= "ny_calendar_1".fiscalDay then "root".fteFactor else null end) as "mtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertEqualsH2Compatible( + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".currentYear and "ny_calendar_0".currentMonthNum = "ny_calendar_1".currentMonthNum and "ny_calendar_0".fiscalDay <= "ny_calendar_1".fiscalDay then "root".fteFactor else null end) as "mtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".currentYear and "ny_calendar_0".currentMonthNum = "ny_calendar_1".currentMonthNum and "ny_calendar_0".fiscalDay <= "ny_calendar_1".fiscalDay then "root".fteFactor else null end) as "mtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + $result->sqlRemoveFormatting() + ); assertEquals(['hireType,mtd,Campus,3.0,Lateral,3.5,'], toCSV($result.values)->replace('\n', ',')); } @@ -876,7 +898,7 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | p12wa($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','p12wa']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".date >= "ny_calendar_1".prior12WeekDate and "ny_calendar_0".date <= case when "ny_calendar_1".date = "ny_calendar_1".adjustedDate then "ny_calendar_1".adjustedDate else "ny_calendar_1".previousBusinessDay end then ((1.0 * "root".fteFactor) / 12) else null end) as "p12wa" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".date >= "ny_calendar_1".prior12WeekDate and "ny_calendar_0".date <= case when "ny_calendar_1".date = "ny_calendar_1".adjustedDate then "ny_calendar_1".adjustedDate else "ny_calendar_1".previousBusinessDay end then ((1.0 * "root".fteFactor) / 12) else null end) as "p12wa" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); assertEquals(['hireType,p12wa,Campus,0.383333333333,Lateral,0.391666666667,'], toCSV($result.values)->replace('\n', ',')); } @@ -889,7 +911,7 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | p12wtd($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','p12wtd']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".date >= "ny_calendar_1".prior12WeekDate and "ny_calendar_0".date <= case when "ny_calendar_1".date = "ny_calendar_1".adjustedDate then "ny_calendar_1".adjustedDate else "ny_calendar_1".previousBusinessDay end then "root".fteFactor else null end) as "p12wtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".date >= "ny_calendar_1".prior12WeekDate and "ny_calendar_0".date <= case when "ny_calendar_1".date = "ny_calendar_1".adjustedDate then "ny_calendar_1".adjustedDate else "ny_calendar_1".previousBusinessDay end then "root".fteFactor else null end) as "p12wtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); assertEquals(['hireType,p12wtd,Campus,4.6,Lateral,4.7,'], toCSV($result.values)->replace('\n', ',')); } @@ -902,7 +924,7 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | p4wa($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','p4wa']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".date >= "ny_calendar_1".prior4WeekDate and "ny_calendar_0".date <= case when "ny_calendar_1".date = "ny_calendar_1".adjustedDate then "ny_calendar_1".adjustedDate else "ny_calendar_1".previousBusinessDay end then ((1.0 * "root".fteFactor) / 4) else null end) as "p4wa" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".date >= "ny_calendar_1".prior4WeekDate and "ny_calendar_0".date <= case when "ny_calendar_1".date = "ny_calendar_1".adjustedDate then "ny_calendar_1".adjustedDate else "ny_calendar_1".previousBusinessDay end then ((1.0 * "root".fteFactor) / 4) else null end) as "p4wa" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); assertEquals(['hireType,p4wa,Campus,0.8575,Lateral,0.98,'], toCSV($result.values)->replace('\n', ',')); } @@ -915,7 +937,7 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | p4wtd($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','p4wtd']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".date >= "ny_calendar_1".prior4WeekDate and "ny_calendar_0".date <= case when "ny_calendar_1".date = "ny_calendar_1".adjustedDate then "ny_calendar_1".adjustedDate else "ny_calendar_1".previousBusinessDay end then "root".fteFactor else null end) as "p4wtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".date >= "ny_calendar_1".prior4WeekDate and "ny_calendar_0".date <= case when "ny_calendar_1".date = "ny_calendar_1".adjustedDate then "ny_calendar_1".adjustedDate else "ny_calendar_1".previousBusinessDay end then "root".fteFactor else null end) as "p4wtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); assertEquals(['hireType,p4wtd,Campus,3.43,Lateral,3.92,'], toCSV($result.values)->replace('\n', ',')); } @@ -928,7 +950,7 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | p52wtd($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','p52wtd']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".date >= "ny_calendar_1".prior52WeekDate and "ny_calendar_0".date <= case when "ny_calendar_1".date = "ny_calendar_1".adjustedDate then "ny_calendar_1".adjustedDate else "ny_calendar_1".previousBusinessDay end then "root".fteFactor else null end) as "p52wtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".date >= "ny_calendar_1".prior52WeekDate and "ny_calendar_0".date <= case when "ny_calendar_1".date = "ny_calendar_1".adjustedDate then "ny_calendar_1".adjustedDate else "ny_calendar_1".previousBusinessDay end then "root".fteFactor else null end) as "p52wtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); assertEquals(['hireType,p52wtd,Campus,6.84,Lateral,6.98,'], toCSV($result.values)->replace('\n', ',')); } @@ -941,7 +963,7 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | p52wa($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','p52wa']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".date >= "ny_calendar_1".prior52WeekDate and "ny_calendar_0".date <= case when "ny_calendar_1".date = "ny_calendar_1".adjustedDate then "ny_calendar_1".adjustedDate else "ny_calendar_1".previousBusinessDay end then ((1.0 * "root".fteFactor) / 52) else null end) as "p52wa" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".date >= "ny_calendar_1".prior52WeekDate and "ny_calendar_0".date <= case when "ny_calendar_1".date = "ny_calendar_1".adjustedDate then "ny_calendar_1".adjustedDate else "ny_calendar_1".previousBusinessDay end then ((1.0 * "root".fteFactor) / 52) else null end) as "p52wa" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); assertEquals(['hireType,p52wa,Campus,0.131538461538,Lateral,0.134230769231,'], toCSV($result.values)->replace('\n', ',')); } @@ -954,7 +976,7 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | p12mtd($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','p12mtd']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".date > dateadd(YEAR, -1, "ny_calendar_1".date) and "ny_calendar_0".date <= "ny_calendar_1".date then "root".fteFactor else null end) as "p12mtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".date > dateadd(YEAR, -1, "ny_calendar_1".date) and "ny_calendar_0".date <= "ny_calendar_1".date then "root".fteFactor else null end) as "p12mtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); assertEquals(['hireType,p12mtd,Campus,6.84,Lateral,7.24,'], toCSV($result.values)->replace('\n', ',')); } @@ -968,7 +990,7 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | pma($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','pma']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_1".currentMonthNum = 1 and "ny_calendar_0".currentYear = "ny_calendar_1".previousFiscalYear then ((1.0 * "root".fteFactor) / 12) else case when "ny_calendar_1".currentMonthNum > 1 and "ny_calendar_0".currentYear = "ny_calendar_1".currentYear and "ny_calendar_0".currentMonthNum <= "ny_calendar_1".previousFiscalMonth then ((1.0 * "root".fteFactor) / "ny_calendar_1".previousFiscalMonth) else null end end) as "pma" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_1".currentMonthNum = 1 and "ny_calendar_0".currentYear = "ny_calendar_1".previousFiscalYear then ((1.0 * "root".fteFactor) / 12) else case when "ny_calendar_1".currentMonthNum > 1 and "ny_calendar_0".currentYear = "ny_calendar_1".currentYear and "ny_calendar_0".currentMonthNum <= "ny_calendar_1".previousFiscalMonth then ((1.0 * "root".fteFactor) / "ny_calendar_1".previousFiscalMonth) else null end end) as "pma" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); assertEquals(['hireType,pma,Campus,0.259,Lateral,0.222,'], toCSV($result.values)->replace('\n', ',')); } @@ -981,7 +1003,11 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | pmtd($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','pmtd']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = case when "ny_calendar_1".currentMonthNum = 1 then "ny_calendar_1".previousFiscalYear else "ny_calendar_1".currentYear end and "ny_calendar_0".currentMonthNum = "ny_calendar_1".previousFiscalMonth and "ny_calendar_0".fiscalDayOfMonth <= "ny_calendar_1".fiscalDayOfMonth then "root".fteFactor else null end) as "pmtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertEqualsH2Compatible( + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = case when "ny_calendar_1".currentMonthNum = 1 then "ny_calendar_1".previousFiscalYear else "ny_calendar_1".currentYear end and "ny_calendar_0".currentMonthNum = "ny_calendar_1".previousFiscalMonth and "ny_calendar_0".fiscalDayOfMonth <= "ny_calendar_1".fiscalDayOfMonth then "root".fteFactor else null end) as "pmtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = case when "ny_calendar_1".currentMonthNum = 1 then "ny_calendar_1".previousFiscalYear else "ny_calendar_1".currentYear end and "ny_calendar_0".currentMonthNum = "ny_calendar_1".previousFiscalMonth and "ny_calendar_0".fiscalDayOfMonth <= "ny_calendar_1".fiscalDayOfMonth then "root".fteFactor else null end) as "pmtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + $result->sqlRemoveFormatting() + ); assertEquals(['hireType,pmtd,Campus,0.39,Lateral,0.4,'], toCSV($result.values)->replace('\n', ',')); } @@ -994,7 +1020,11 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | pqtd($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','pqtd']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = case when "ny_calendar_1".currentQuarterNum = 1 then "ny_calendar_1".previousFiscalYear else "ny_calendar_1".currentYear end and "ny_calendar_0".currentQuarterNum = "ny_calendar_1".previousFiscalQuarter and "ny_calendar_0".fiscalDayOfQuarter <= "ny_calendar_1".fiscalDayOfQuarter then "root".fteFactor else null end) as "pqtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertEqualsH2Compatible( + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = case when "ny_calendar_1".currentQuarterNum = 1 then "ny_calendar_1".previousFiscalYear else "ny_calendar_1".currentYear end and "ny_calendar_0".currentQuarterNum = "ny_calendar_1".previousFiscalQuarter and "ny_calendar_0".fiscalDayOfQuarter <= "ny_calendar_1".fiscalDayOfQuarter then "root".fteFactor else null end) as "pqtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = case when "ny_calendar_1".currentQuarterNum = 1 then "ny_calendar_1".previousFiscalYear else "ny_calendar_1".currentYear end and "ny_calendar_0".currentQuarterNum = "ny_calendar_1".previousFiscalQuarter and "ny_calendar_0".fiscalDayOfQuarter <= "ny_calendar_1".fiscalDayOfQuarter then "root".fteFactor else null end) as "pqtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + $result->sqlRemoveFormatting() + ); assertEquals(['hireType,pqtd,Campus,0.33,Lateral,0.34,'], toCSV($result.values)->replace('\n', ',')); } @@ -1007,7 +1037,11 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | priorDay($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','priorDay']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".date = "ny_calendar_1".previousBusinessDay then "root".fteFactor else null end) as "priorDay" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertEqualsH2Compatible( + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".date = "ny_calendar_1".previousBusinessDay then "root".fteFactor else null end) as "priorDay" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".date = "ny_calendar_1".previousBusinessDay then "root".fteFactor else null end) as "priorDay" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + $result->sqlRemoveFormatting() + ); assertEquals(['hireType,priorDay,Campus,0.55,Lateral,,'], toCSV($result.values)->replace('\n', ',')); } @@ -1020,7 +1054,7 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | priorYear($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','priorYear']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".previousFiscalYear then "root".fteFactor else null end) as "priorYear" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".previousFiscalYear then "root".fteFactor else null end) as "priorYear" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); assertEquals(['hireType,priorYear,Campus,2.84,Lateral,3.06,'], toCSV($result.values)->replace('\n', ',')); } @@ -1033,7 +1067,11 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | pw($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','pw']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".fiscalWeekOffset = ("ny_calendar_1".fiscalWeekOffset - case when "ny_calendar_1".shortNameWeekDay in (\'Sat\', \'Sun\') then 2 else 1 end) then "root".fteFactor else null end) as "pw" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertEqualsH2Compatible( + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".fiscalWeekOffset = ("ny_calendar_1".fiscalWeekOffset - case when "ny_calendar_1".shortNameWeekDay in (\'Sat\', \'Sun\') then 2 else 1 end) then "root".fteFactor else null end) as "pw" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".fiscalWeekOffset = ("ny_calendar_1".fiscalWeekOffset - case when "ny_calendar_1".shortNameWeekDay in (\'Sat\', \'Sun\') then 2 else 1 end) then "root".fteFactor else null end) as "pw" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + $result->sqlRemoveFormatting() + ); assertEquals(['hireType,pw,Campus,1.47,Lateral,1.44,'], toCSV($result.values)->replace('\n', ',')); } @@ -1046,7 +1084,11 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | pw_fm($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','pw_fm']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".fiscalWeekOffset = ("ny_calendar_1".fiscalWeekOffset - 1) then "root".fteFactor else null end) as "pw_fm" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertEqualsH2Compatible( + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".fiscalWeekOffset = ("ny_calendar_1".fiscalWeekOffset - 1) then "root".fteFactor else null end) as "pw_fm" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".fiscalWeekOffset = ("ny_calendar_1".fiscalWeekOffset - 1) then "root".fteFactor else null end) as "pw_fm" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + $result->sqlRemoveFormatting() + ); assertEquals(['hireType,pw_fm,Campus,1.47,Lateral,1.44,'], toCSV($result.values)->replace('\n', ',')); } @@ -1059,7 +1101,7 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | pwa($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','pwa']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_1".currentWeek <= 5 and "ny_calendar_0".currentYear = "ny_calendar_1".previousFiscalYear then (((1.0 * "root".fteFactor) / "ny_calendar_1".numberOfFiscalDaysInYear) * 5) else case when "ny_calendar_1".currentWeek > 5 and "ny_calendar_0".currentYear = "ny_calendar_1".currentYear and "ny_calendar_0".fiscalDay <= ("ny_calendar_1".fiscalDay - "ny_calendar_1".fiscalDayOfWeek) then (((1.0 * "root".fteFactor) / ("ny_calendar_1".fiscalDay - "ny_calendar_1".fiscalDayOfWeek)) * 5) else null end end) as "pwa" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_1".currentWeek <= 5 and "ny_calendar_0".currentYear = "ny_calendar_1".previousFiscalYear then (((1.0 * "root".fteFactor) / "ny_calendar_1".numberOfFiscalDaysInYear) * 5) else case when "ny_calendar_1".currentWeek > 5 and "ny_calendar_0".currentYear = "ny_calendar_1".currentYear and "ny_calendar_0".fiscalDay <= ("ny_calendar_1".fiscalDay - "ny_calendar_1".fiscalDayOfWeek) then (((1.0 * "root".fteFactor) / ("ny_calendar_1".fiscalDay - "ny_calendar_1".fiscalDayOfWeek)) * 5) else null end end) as "pwa" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); assertEquals(['hireType,pwa,Campus,0.103440366973,Lateral,0.0940366972485,'], toCSV($result.values)->replace('\n', ',')); } @@ -1072,7 +1114,11 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | pwtd($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','pwtd']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".fiscalWeekOffset = ("ny_calendar_1".fiscalWeekOffset - 1) and "ny_calendar_0".fiscalDayOfWeek <= "ny_calendar_1".fiscalDayOfWeek then "root".fteFactor else null end) as "pwtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertEqualsH2Compatible( + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".fiscalWeekOffset = ("ny_calendar_1".fiscalWeekOffset - 1) and "ny_calendar_0".fiscalDayOfWeek <= "ny_calendar_1".fiscalDayOfWeek then "root".fteFactor else null end) as "pwtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".fiscalWeekOffset = ("ny_calendar_1".fiscalWeekOffset - 1) and "ny_calendar_0".fiscalDayOfWeek <= "ny_calendar_1".fiscalDayOfWeek then "root".fteFactor else null end) as "pwtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + $result->sqlRemoveFormatting() + ); assertEquals(['hireType,pwtd,Campus,0.96,Lateral,0.94,'], toCSV($result.values)->replace('\n', ',')); } @@ -1085,7 +1131,7 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | pymtd($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','pymtd']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".previousFiscalYear and "ny_calendar_0".currentMonthNum = "ny_calendar_1".currentMonthNum and "ny_calendar_0".fiscalDayOfMonth <= "ny_calendar_1".fiscalDayOfMonth then "root".fteFactor else null end) as "pymtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".previousFiscalYear and "ny_calendar_0".currentMonthNum = "ny_calendar_1".currentMonthNum and "ny_calendar_0".fiscalDayOfMonth <= "ny_calendar_1".fiscalDayOfMonth then "root".fteFactor else null end) as "pymtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); assertEquals(['hireType,pymtd,Campus,0.69,Lateral,0.46,'], toCSV($result.values)->replace('\n', ',')); } @@ -1098,7 +1144,7 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | pyqtd($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','pyqtd']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".previousFiscalYear and "ny_calendar_0".currentQuarterNum = "ny_calendar_1".currentQuarterNum and "ny_calendar_0".fiscalDayOfQuarter <= "ny_calendar_1".fiscalDayOfQuarter then "root".fteFactor else null end) as "pyqtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".previousFiscalYear and "ny_calendar_0".currentQuarterNum = "ny_calendar_1".currentQuarterNum and "ny_calendar_0".fiscalDayOfQuarter <= "ny_calendar_1".fiscalDayOfQuarter then "root".fteFactor else null end) as "pyqtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); assertEquals(['hireType,pyqtd,Campus,1.4,Lateral,1.36,'], toCSV($result.values)->replace('\n', ',')); } @@ -1111,7 +1157,7 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | pytd($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','pytd']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".previousFiscalYear and "ny_calendar_0".fiscalDay <= "ny_calendar_1".fiscalDay then "root".fteFactor else null end) as "pytd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".previousFiscalYear and "ny_calendar_0".fiscalDay <= "ny_calendar_1".fiscalDay then "root".fteFactor else null end) as "pytd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); assertEquals(['hireType,pytd,Campus,1.59,Lateral,1.54,'], toCSV($result.values)->replace('\n', ',')); } @@ -1124,7 +1170,11 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | pywa($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','pywa']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_1".currentWeek <= 5 and "ny_calendar_0".currentYear = "ny_calendar_1".previousFiscalYear then (((1.0 * "root".fteFactor) / "ny_calendar_1".numberOfFiscalDaysInYear) * 5) else null end) as "pywa" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertEqualsH2Compatible( + 'select "root".hireType as "hireType", sum(case when "ny_calendar_1".currentWeek <= 5 and "ny_calendar_0".currentYear = "ny_calendar_1".previousFiscalYear then (((1.0 * "root".fteFactor) / "ny_calendar_1".numberOfFiscalDaysInYear) * 5) else null end) as "pywa" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + 'select "root".hireType as "hireType", sum(case when "ny_calendar_1".currentWeek <= 5 and "ny_calendar_0".currentYear = "ny_calendar_1".previousFiscalYear then (((1.0 * "root".fteFactor) / "ny_calendar_1".numberOfFiscalDaysInYear) * 5) else null end) as "pywa" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + $result->sqlRemoveFormatting() + ); assertEquals(['hireType,pywa,Campus,,Lateral,,'], toCSV($result.values)->replace('\n', ',')); } @@ -1137,7 +1187,11 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | pywtd($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','pywtd']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".previousFiscalYear and "ny_calendar_0".currentWeek = "ny_calendar_1".currentWeek and "ny_calendar_0".fiscalDayOfWeek <= "ny_calendar_1".fiscalDayOfWeek then "root".fteFactor else null end) as "pywtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertEqualsH2Compatible( + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".previousFiscalYear and "ny_calendar_0".currentWeek = "ny_calendar_1".currentWeek and "ny_calendar_0".fiscalDayOfWeek <= "ny_calendar_1".fiscalDayOfWeek then "root".fteFactor else null end) as "pywtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".previousFiscalYear and "ny_calendar_0".currentWeek = "ny_calendar_1".currentWeek and "ny_calendar_0".fiscalDayOfWeek <= "ny_calendar_1".fiscalDayOfWeek then "root".fteFactor else null end) as "pywtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + $result->sqlRemoveFormatting() + ); assertEquals(['hireType,pywtd,Campus,0.25,Lateral,0.5,'], toCSV($result.values)->replace('\n', ',')); } @@ -1150,7 +1204,7 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | qtd($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','qtd']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".currentYear and "ny_calendar_0".currentQuarterNum = "ny_calendar_1".currentQuarterNum and "ny_calendar_0".fiscalDay <= "ny_calendar_1".fiscalDay then "root".fteFactor else null end) as "qtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".currentYear and "ny_calendar_0".currentQuarterNum = "ny_calendar_1".currentQuarterNum and "ny_calendar_0".fiscalDay <= "ny_calendar_1".fiscalDay then "root".fteFactor else null end) as "qtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); assertEquals(['hireType,qtd,Campus,4.23,Lateral,4.32,'], toCSV($result.values)->replace('\n', ',')); } @@ -1163,7 +1217,11 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | reportEndDay($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','reportEndDay']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".date = "ny_calendar_1".date then "root".fteFactor else null end) as "reportEndDay" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertEqualsH2Compatible( + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".date = "ny_calendar_1".date then "root".fteFactor else null end) as "reportEndDay" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".date = "ny_calendar_1".date then "root".fteFactor else null end) as "reportEndDay" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + $result->sqlRemoveFormatting() + ); assertEquals(['hireType,reportEndDay,Campus,,Lateral,0.56,'], toCSV($result.values)->replace('\n', ',')); } @@ -1176,7 +1234,11 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | wtd($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','wtd']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".currentYear and "ny_calendar_0".currentWeek = "ny_calendar_1".currentWeek and "ny_calendar_0".dayOfCalendarYear <= "ny_calendar_1".dayOfCalendarYear then "root".fteFactor else null end) as "wtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertEqualsH2Compatible( + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".currentYear and "ny_calendar_0".currentWeek = "ny_calendar_1".currentWeek and "ny_calendar_0".dayOfCalendarYear <= "ny_calendar_1".dayOfCalendarYear then "root".fteFactor else null end) as "wtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + 'select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".currentYear and "ny_calendar_0".currentWeek = "ny_calendar_1".currentWeek and "ny_calendar_0".dayOfCalendarYear <= "ny_calendar_1".dayOfCalendarYear then "root".fteFactor else null end) as "wtd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', + $result->sqlRemoveFormatting() + ); assertEquals(['hireType,wtd,Campus,1.08,Lateral,1.62,'], toCSV($result.values)->replace('\n', ',')); } @@ -1189,7 +1251,7 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | ytd($p.hireDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','ytd']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".currentYear and "ny_calendar_0".fiscalDay <= "ny_calendar_1".fiscalDay then "root".fteFactor else null end) as "ytd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); + assertSameSQL('select "root".hireType as "hireType", sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".currentYear and "ny_calendar_0".fiscalDay <= "ny_calendar_1".fiscalDay then "root".fteFactor else null end) as "ytd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) group by "hireType"', $result); assertEquals(['hireType,ytd,Campus,5.59,Lateral,5.72,'], toCSV($result.values)->replace('\n', ',')); } @@ -1550,7 +1612,11 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | ytd($p.hireDate, 'London', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['hireType','ytd']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "london_calendar_0".currentYear = "london_calendar_1".currentYear and "london_calendar_0".fiscalDay <= "london_calendar_1".fiscalDay then "root".fteFactor else null end) as "ytd" from EmployeeTable as "root" left outer join LegendCalendarSchema.London_Calendar as "london_calendar_0" on ("root".hireDate = "london_calendar_0".date) left outer join LegendCalendarSchema.London_Calendar as "london_calendar_1" on (\'2022-11-16\' = "london_calendar_1".date) group by "hireType"', $result); + assertEqualsH2Compatible( + 'select "root".hireType as "hireType", sum(case when "london_calendar_0".currentYear = "london_calendar_1".currentYear and "london_calendar_0".fiscalDay <= "london_calendar_1".fiscalDay then "root".fteFactor else null end) as "ytd" from EmployeeTable as "root" left outer join LegendCalendarSchema.London_Calendar as "london_calendar_0" on ("root".hireDate = "london_calendar_0".date) left outer join LegendCalendarSchema.London_Calendar as "london_calendar_1" on (\'2022-11-16\' = "london_calendar_1".date) group by "hireType"', + 'select "root".hireType as "hireType", sum(case when "london_calendar_0".currentYear = "london_calendar_1".currentYear and "london_calendar_0".fiscalDay <= "london_calendar_1".fiscalDay then "root".fteFactor else null end) as "ytd" from EmployeeTable as "root" left outer join LegendCalendarSchema.London_Calendar as "london_calendar_0" on ("root".hireDate = "london_calendar_0".date) left outer join LegendCalendarSchema.London_Calendar as "london_calendar_1" on (DATE\'2022-11-16\' = "london_calendar_1".date) group by "hireType"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::functions::pureToSqlQuery::calendarAggregations::testDifferentEndDates():Boolean[1] @@ -1563,7 +1629,11 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen agg(p | ytd($p.hireDate, 'London', %2022-11-17, $p.fteFactor), y | $y->sum()) ], ['hireType','ytd16', 'ytd17']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select "root".hireType as "hireType", sum(case when "london_calendar_1".currentYear = "london_calendar_0".currentYear and "london_calendar_1".fiscalDay <= "london_calendar_0".fiscalDay then "root".fteFactor else null end) as "ytd16", sum(case when "london_calendar_1".currentYear = "london_calendar_2".currentYear and "london_calendar_1".fiscalDay <= "london_calendar_2".fiscalDay then "root".fteFactor else null end) as "ytd17" from EmployeeTable as "root" left outer join LegendCalendarSchema.London_Calendar as "london_calendar_0" on (\'2022-11-16\' = "london_calendar_0".date) left outer join LegendCalendarSchema.London_Calendar as "london_calendar_1" on ("root".hireDate = "london_calendar_1".date) left outer join LegendCalendarSchema.London_Calendar as "london_calendar_2" on (\'2022-11-17\' = "london_calendar_2".date) group by "hireType"', $result); + assertEqualsH2Compatible( + 'select "root".hireType as "hireType", sum(case when "london_calendar_1".currentYear = "london_calendar_0".currentYear and "london_calendar_1".fiscalDay <= "london_calendar_0".fiscalDay then "root".fteFactor else null end) as "ytd16", sum(case when "london_calendar_1".currentYear = "london_calendar_2".currentYear and "london_calendar_1".fiscalDay <= "london_calendar_2".fiscalDay then "root".fteFactor else null end) as "ytd17" from EmployeeTable as "root" left outer join LegendCalendarSchema.London_Calendar as "london_calendar_0" on (\'2022-11-16\' = "london_calendar_0".date) left outer join LegendCalendarSchema.London_Calendar as "london_calendar_1" on ("root".hireDate = "london_calendar_1".date) left outer join LegendCalendarSchema.London_Calendar as "london_calendar_2" on (\'2022-11-17\' = "london_calendar_2".date) group by "hireType"', + 'select "root".hireType as "hireType", sum(case when "london_calendar_1".currentYear = "london_calendar_0".currentYear and "london_calendar_1".fiscalDay <= "london_calendar_0".fiscalDay then "root".fteFactor else null end) as "ytd16", sum(case when "london_calendar_1".currentYear = "london_calendar_2".currentYear and "london_calendar_1".fiscalDay <= "london_calendar_2".fiscalDay then "root".fteFactor else null end) as "ytd17" from EmployeeTable as "root" left outer join LegendCalendarSchema.London_Calendar as "london_calendar_0" on (DATE\'2022-11-16\' = "london_calendar_0".date) left outer join LegendCalendarSchema.London_Calendar as "london_calendar_1" on ("root".hireDate = "london_calendar_1".date) left outer join LegendCalendarSchema.London_Calendar as "london_calendar_2" on (DATE\'2022-11-17\' = "london_calendar_2".date) group by "hireType"', + $result->sqlRemoveFormatting() + ); } @@ -1576,7 +1646,11 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | ytd($p.employeeDetails.birthDate, 'NY', %2022-11-16, $p.fteFactor), y | $y->sum()) ], ['ytd']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".currentYear and "ny_calendar_0".fiscalDay <= "ny_calendar_1".fiscalDay then "root".fteFactor else null end) as "ytd" from EmployeeTable as "root" left outer join EmployeeDetailsTable as "employeedetailstable_0" on ("root".id = "employeedetailstable_0".id) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("employeedetailstable_0".birthDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date)', $result); + assertEqualsH2Compatible( + 'select sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".currentYear and "ny_calendar_0".fiscalDay <= "ny_calendar_1".fiscalDay then "root".fteFactor else null end) as "ytd" from EmployeeTable as "root" left outer join EmployeeDetailsTable as "employeedetailstable_0" on ("root".id = "employeedetailstable_0".id) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("employeedetailstable_0".birthDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date)', + 'select sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".currentYear and "ny_calendar_0".fiscalDay <= "ny_calendar_1".fiscalDay then "root".fteFactor else null end) as "ytd" from EmployeeTable as "root" left outer join EmployeeDetailsTable as "employeedetailstable_0" on ("root".id = "employeedetailstable_0".id) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("employeedetailstable_0".birthDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date)', + $result->sqlRemoveFormatting() + ); assertEquals(['ytd,0.13,'], toCSV($result.values)->replace('\n', ',')); } @@ -1589,7 +1663,11 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | ytd($p.hireDate, 'NY', %2022-11-16, $p.employeeDetails.yearsOfExperience), y | $y->sum()) ], ['ytd']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".currentYear and "ny_calendar_0".fiscalDay <= "ny_calendar_1".fiscalDay then "employeedetailstable_0".yearsOfExperience else null end) as "ytd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) left outer join EmployeeDetailsTable as "employeedetailstable_0" on ("root".id = "employeedetailstable_0".id)', $result); + assertEqualsH2Compatible( + 'select sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".currentYear and "ny_calendar_0".fiscalDay <= "ny_calendar_1".fiscalDay then "employeedetailstable_0".yearsOfExperience else null end) as "ytd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date) left outer join EmployeeDetailsTable as "employeedetailstable_0" on ("root".id = "employeedetailstable_0".id)', + 'select sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".currentYear and "ny_calendar_0".fiscalDay <= "ny_calendar_1".fiscalDay then "employeedetailstable_0".yearsOfExperience else null end) as "ytd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date) left outer join EmployeeDetailsTable as "employeedetailstable_0" on ("root".id = "employeedetailstable_0".id)', + $result->sqlRemoveFormatting() + ); assertEquals(['ytd,10.0,'], toCSV($result.values)->replace('\n', ',')); } @@ -1614,5 +1692,9 @@ function <> meta::relational::tests::functions::pureToSqlQuery::calen [ agg(p | ytd($p.hireDate, 'NY', %2022-11-16, $p.fteFactorDyna()), y | $y->sum()) ], ['ytd']) ,EmployeeMapping, testRuntime(), relationalExtensions(), noDebug()); - assertSameSQL('select sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".currentYear and "ny_calendar_0".fiscalDay <= "ny_calendar_1".fiscalDay then ((1.0 * "root".fteFactor) / 2) else null end) as "ytd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date)', $result); + assertEqualsH2Compatible( + 'select sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".currentYear and "ny_calendar_0".fiscalDay <= "ny_calendar_1".fiscalDay then ((1.0 * "root".fteFactor) / 2) else null end) as "ytd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (\'2022-11-16\' = "ny_calendar_1".date)', + 'select sum(case when "ny_calendar_0".currentYear = "ny_calendar_1".currentYear and "ny_calendar_0".fiscalDay <= "ny_calendar_1".fiscalDay then ((1.0 * "root".fteFactor) / 2) else null end) as "ytd" from EmployeeTable as "root" left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_0" on ("root".hireDate = "ny_calendar_0".date) left outer join LegendCalendarSchema.NY_Calendar as "ny_calendar_1" on (DATE\'2022-11-16\' = "ny_calendar_1".date)', + $result->sqlRemoveFormatting() + ); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/executionPlan/tests/executionPlanTest.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/executionPlan/tests/executionPlanTest.pure index 2348187db3d..1c90f7d05bc 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/executionPlan/tests/executionPlanTest.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/executionPlan/tests/executionPlanTest.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::pure::alloy::connections::alloy::authentication::*; import meta::pure::alloy::connections::alloy::specification::*; import meta::pure::alloy::connections::*; @@ -176,7 +177,7 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithOpt { let generatedPlan = executionPlan({optionalPnl: Float[0..1]|Order.all()->filter(x|$x.pnl==$optionalPnl)}, simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let result = $generatedPlan->planToString(meta::relational::extension::relationalExtensions()); - let expected = 'Sequence\n'+ + let expectedLegacyH2 = 'Sequence\n'+ '(\n'+ ' type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)]\n'+ ' resultSizeRange = *\n'+ @@ -195,7 +196,26 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithOpt ' )\n'+ ' )\n'+ ')\n'; - assertEquals($expected, $result); + let expectedNewH2 = 'Sequence\n'+ + '(\n'+ + ' type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)]\n'+ + ' resultSizeRange = *\n'+ + ' (\n'+ + ' FunctionParametersValidationNode\n'+ + ' (\n'+ + ' functionParameters = [optionalPnl:Float[0..1]]\n'+ + ' )\n'+ + ' Relational\n'+ + ' (\n'+ + ' type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)]\n'+ + ' resultSizeRange = *\n'+ + ' resultColumns = [("pk_0", INT), ("id", INT), ("quantity", INT), ("date", DATE), ("settlementDateTime", TIMESTAMP), ("pnl", FLOAT), ("zeroPnl", "")]\n'+ + ' sql = select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".orderDate as "date", "root".settlementDateTime as "settlementDateTime", "orderpnlview_0".pnl as "pnl", cast(case when "orderpnlview_0".pnl = 0 then \'true\' else \'false\' end as boolean) as "zeroPnl" from orderTable as "root" left outer join (select distinct "root".ORDER_ID as ORDER_ID, "root".pnl as pnl, "accounttable_0".ID as accountId, "salespersontable_0".NAME as supportContact, "salespersontable_0".PERSON_ID as supportContactId from orderPnlTable as "root" left outer join orderTable as "ordertable_1" on ("root".ORDER_ID = "ordertable_1".ID) left outer join accountTable as "accounttable_0" on ("ordertable_1".accountID = "accounttable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("ordertable_1".accountID = "salespersontable_0".ACCOUNT_ID) where "root".pnl > 0) as "orderpnlview_0" on ("orderpnlview_0".ORDER_ID = "root".ID) where (${optionalVarPlaceHolderOperationSelector(optionalPnl![], \'"orderpnlview_0".pnl = ${varPlaceHolderToString(optionalPnl![] "CAST(" " AS FLOAT)" {} "null")}\', \'"orderpnlview_0".pnl is null\')})\n'+ + ' connection = TestDatabaseConnection(type = "H2")\n'+ + ' )\n'+ + ' )\n'+ + ')\n'; + assertEqualsH2Compatible($expectedLegacyH2, $expectedNewH2, $result); assertSameElements(templateFunctionsList(),$generatedPlan.processingTemplateFunctions); } @@ -230,7 +250,7 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithOpt { let generatedPlan = executionPlan({optionalCensusDate: Date[0..1]|Location.all()->filter(t|$t.censusdate==$optionalCensusDate)}, simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let result = $generatedPlan->planToString(meta::relational::extension::relationalExtensions()); - let expected = 'Sequence\n'+ + let expectedLegacyH2 = 'Sequence\n'+ '(\n'+ ' type = Class[impls=(meta::relational::tests::model::simple::Location | simpleRelationalMappingInc.meta_relational_tests_model_simple_Location)]\n'+ ' resultSizeRange = *\n'+ @@ -249,7 +269,26 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithOpt ' )\n'+ ' )\n'+ ')\n'; - assertEquals($expected, $result); + let expectedNewH2 = 'Sequence\n'+ + '(\n'+ + ' type = Class[impls=(meta::relational::tests::model::simple::Location | simpleRelationalMappingInc.meta_relational_tests_model_simple_Location)]\n'+ + ' resultSizeRange = *\n'+ + ' (\n'+ + ' FunctionParametersValidationNode\n'+ + ' (\n'+ + ' functionParameters = [optionalCensusDate:Date[0..1]]\n'+ + ' )\n'+ + ' Relational\n'+ + ' (\n'+ + ' type = Class[impls=(meta::relational::tests::model::simple::Location | simpleRelationalMappingInc.meta_relational_tests_model_simple_Location)]\n'+ + ' resultSizeRange = *\n'+ + ' resultColumns = [("pk_0", INT), ("place", VARCHAR(200)), ("censusdate", DATE)]\n'+ + ' sql = select "root".ID as "pk_0", "root".PLACE as "place", "root".date as "censusdate" from locationTable as "root" where (${optionalVarPlaceHolderOperationSelector(optionalCensusDate![], \'"root".date = ${varPlaceHolderToString(optionalCensusDate![] "TIMESTAMP\\\'" "\\\'" {} "null")}\', \'"root".date is null\')})\n'+ + ' connection = TestDatabaseConnection(type = "H2")\n'+ + ' )\n'+ + ' )\n'+ + ')\n'; + assertEqualsH2Compatible($expectedLegacyH2, $expectedNewH2, $result); assertSameElements(templateFunctionsList(),$generatedPlan.processingTemplateFunctions); } @@ -257,7 +296,7 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithOpt { let generatedPlan = executionPlan({optionalSettlementDateTime:DateTime[0..1]|Order.all()->filter(o|$o.settlementDateTime == $optionalSettlementDateTime)}, simpleRelationalMapping, ^Runtime(connections=^DatabaseConnection(element = relationalDB, type=DatabaseType.H2)), meta::relational::extension::relationalExtensions()); let result = $generatedPlan->planToString(meta::relational::extension::relationalExtensions()); - let expected = 'Sequence\n'+ + let expectedLegacyH2 = 'Sequence\n'+ '(\n'+ ' type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)]\n'+ ' resultSizeRange = *\n'+ @@ -276,7 +315,26 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithOpt ' )\n'+ ' )\n'+ ')\n'; - assertEquals($expected, $result); + let expectedNewH2 = 'Sequence\n'+ + '(\n'+ + ' type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)]\n'+ + ' resultSizeRange = *\n'+ + ' (\n'+ + ' FunctionParametersValidationNode\n'+ + ' (\n'+ + ' functionParameters = [optionalSettlementDateTime:DateTime[0..1]]\n'+ + ' )\n'+ + ' Relational\n'+ + ' (\n'+ + ' type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)]\n'+ + ' resultSizeRange = *\n'+ + ' resultColumns = [("pk_0", INT), ("id", INT), ("quantity", INT), ("date", DATE), ("settlementDateTime", TIMESTAMP), ("pnl", FLOAT), ("zeroPnl", "")]\n'+ + ' sql = select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".orderDate as "date", "root".settlementDateTime as "settlementDateTime", "orderpnlview_0".pnl as "pnl", cast(case when "orderpnlview_0".pnl = 0 then \'true\' else \'false\' end as boolean) as "zeroPnl" from orderTable as "root" left outer join (select distinct "root".ORDER_ID as ORDER_ID, "root".pnl as pnl, "accounttable_0".ID as accountId, "salespersontable_0".NAME as supportContact, "salespersontable_0".PERSON_ID as supportContactId from orderPnlTable as "root" left outer join orderTable as "ordertable_1" on ("root".ORDER_ID = "ordertable_1".ID) left outer join accountTable as "accounttable_0" on ("ordertable_1".accountID = "accounttable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("ordertable_1".accountID = "salespersontable_0".ACCOUNT_ID) where "root".pnl > 0) as "orderpnlview_0" on ("orderpnlview_0".ORDER_ID = "root".ID) where (${optionalVarPlaceHolderOperationSelector(optionalSettlementDateTime![], \'"root".settlementDateTime = ${varPlaceHolderToString(optionalSettlementDateTime![] "TIMESTAMP\\\'" "\\\'" {} "null")}\', \'"root".settlementDateTime is null\')})\n'+ + ' connection = DatabaseConnection(type = "H2")\n'+ + ' )\n'+ + ' )\n'+ + ')\n'; + assertEqualsH2Compatible($expectedLegacyH2, $expectedNewH2, $result); assertSameElements(templateFunctionsList(),$generatedPlan.processingTemplateFunctions); } @@ -284,7 +342,7 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithOpt { let generatedPlan = executionPlan({optionalSettlementDateTime:DateTime[0..1]|Order.all()->filter(o|$o.settlementDateTime == $optionalSettlementDateTime)}, simpleRelationalMapping, ^Runtime(connections=^DatabaseConnection(element = relationalDB, type=DatabaseType.H2, timeZone='US/Arizona')), meta::relational::extension::relationalExtensions()); let result = $generatedPlan->planToString(meta::relational::extension::relationalExtensions()); - let expected = 'Sequence\n'+ + let expectedLegacyH2 = 'Sequence\n'+ '(\n'+ ' type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)]\n'+ ' resultSizeRange = *\n'+ @@ -303,7 +361,26 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithOpt ' )\n'+ ' )\n'+ ')\n'; - assertEquals($expected, $result); + let expectedNewH2 = 'Sequence\n'+ + '(\n'+ + ' type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)]\n'+ + ' resultSizeRange = *\n'+ + ' (\n'+ + ' FunctionParametersValidationNode\n'+ + ' (\n'+ + ' functionParameters = [optionalSettlementDateTime:DateTime[0..1]]\n'+ + ' )\n'+ + ' Relational\n'+ + ' (\n'+ + ' type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)]\n'+ + ' resultSizeRange = *\n'+ + ' resultColumns = [("pk_0", INT), ("id", INT), ("quantity", INT), ("date", DATE), ("settlementDateTime", TIMESTAMP), ("pnl", FLOAT), ("zeroPnl", "")]\n'+ + ' sql = select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".orderDate as "date", "root".settlementDateTime as "settlementDateTime", "orderpnlview_0".pnl as "pnl", cast(case when "orderpnlview_0".pnl = 0 then \'true\' else \'false\' end as boolean) as "zeroPnl" from orderTable as "root" left outer join (select distinct "root".ORDER_ID as ORDER_ID, "root".pnl as pnl, "accounttable_0".ID as accountId, "salespersontable_0".NAME as supportContact, "salespersontable_0".PERSON_ID as supportContactId from orderPnlTable as "root" left outer join orderTable as "ordertable_1" on ("root".ORDER_ID = "ordertable_1".ID) left outer join accountTable as "accounttable_0" on ("ordertable_1".accountID = "accounttable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("ordertable_1".accountID = "salespersontable_0".ACCOUNT_ID) where "root".pnl > 0) as "orderpnlview_0" on ("orderpnlview_0".ORDER_ID = "root".ID) where (${optionalVarPlaceHolderOperationSelector(optionalSettlementDateTime![], \'"root".settlementDateTime = ${varPlaceHolderToString(GMTtoTZ( "[US/Arizona]" optionalSettlementDateTime![]) "TIMESTAMP\\\'" "\\\'" {} "null")}\', \'"root".settlementDateTime is null\')})\n'+ + ' connection = DatabaseConnection(type = "H2")\n'+ + ' )\n'+ + ' )\n'+ + ')\n'; + assertEqualsH2Compatible($expectedLegacyH2, $expectedNewH2, $result); } function <> meta::pure::executionPlan::tests::testFilterEqualsWithTwoOptionalParametersString():Boolean[1] @@ -364,7 +441,7 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithTwo { let generatedPlan = executionPlan({optionalFloatLeft: Float[0..1], optionalFloatRight :Float[0..1]|Address.all()->filter(a|$optionalFloatLeft==$optionalFloatRight)}, simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let result = $generatedPlan->planToString(meta::relational::extension::relationalExtensions()); - let expected = 'Sequence\n'+ + let expectedLegacyH2 = 'Sequence\n'+ '(\n'+ ' type = Class[impls=(meta::relational::tests::model::simple::Address | simpleRelationalMappingInc.meta_relational_tests_model_simple_Address)]\n'+ ' resultSizeRange = *\n'+ @@ -383,7 +460,26 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithTwo ' )\n'+ ' )\n'+ ')\n'; - assertEquals($expected, $result); + let expectedNewH2 = 'Sequence\n'+ + '(\n'+ + ' type = Class[impls=(meta::relational::tests::model::simple::Address | simpleRelationalMappingInc.meta_relational_tests_model_simple_Address)]\n'+ + ' resultSizeRange = *\n'+ + ' (\n'+ + ' FunctionParametersValidationNode\n'+ + ' (\n'+ + ' functionParameters = [optionalFloatLeft:Float[0..1], optionalFloatRight:Float[0..1]]\n'+ + ' )\n'+ + ' Relational\n'+ + ' (\n'+ + ' type = Class[impls=(meta::relational::tests::model::simple::Address | simpleRelationalMappingInc.meta_relational_tests_model_simple_Address)]\n'+ + ' resultSizeRange = *\n'+ + ' resultColumns = [("pk_0", INT), ("name", VARCHAR(200)), ("street", VARCHAR(100)), ("type", INT), ("comments", VARCHAR(100))]\n'+ + ' sql = select "root".ID as "pk_0", "root".NAME as "name", "root".STREET as "street", "root".TYPE as "type", "root".COMMENTS as "comments" from addressTable as "root" where (${optionalVarPlaceHolderOperationSelector(optionalFloatLeft![], optionalVarPlaceHolderOperationSelector(optionalFloatRight![], \'${varPlaceHolderToString(optionalFloatLeft![] "CAST(" " AS FLOAT)" {} "null")} = ${varPlaceHolderToString(optionalFloatRight![] "CAST(" " AS FLOAT)" {} "null")}\', \'1 = 0\'), optionalVarPlaceHolderOperationSelector(optionalFloatRight![], \'1 = 0\', \'1 = 1\'))})\n'+ + ' connection = TestDatabaseConnection(type = "H2")\n'+ + ' )\n'+ + ' )\n'+ + ')\n'; + assertEqualsH2Compatible($expectedLegacyH2, $expectedNewH2, $result); assertSameElements(templateFunctionsList(),$generatedPlan.processingTemplateFunctions); } @@ -391,7 +487,7 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithTwo { let generatedPlan = executionPlan({optionalDateLeft: Date[0..1], optionalDateRight :Date[0..1]|Address.all()->filter(a|$optionalDateLeft==$optionalDateRight)}, simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let result = $generatedPlan->planToString(meta::relational::extension::relationalExtensions()); - let expected = 'Sequence\n'+ + let expectedLegacyH2 = 'Sequence\n'+ '(\n'+ ' type = Class[impls=(meta::relational::tests::model::simple::Address | simpleRelationalMappingInc.meta_relational_tests_model_simple_Address)]\n'+ ' resultSizeRange = *\n'+ @@ -410,7 +506,26 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithTwo ' )\n'+ ' )\n'+ ')\n'; - assertEquals($expected, $result); + let expectedNewH2 = 'Sequence\n'+ + '(\n'+ + ' type = Class[impls=(meta::relational::tests::model::simple::Address | simpleRelationalMappingInc.meta_relational_tests_model_simple_Address)]\n'+ + ' resultSizeRange = *\n'+ + ' (\n'+ + ' FunctionParametersValidationNode\n'+ + ' (\n'+ + ' functionParameters = [optionalDateLeft:Date[0..1], optionalDateRight:Date[0..1]]\n'+ + ' )\n'+ + ' Relational\n'+ + ' (\n'+ + ' type = Class[impls=(meta::relational::tests::model::simple::Address | simpleRelationalMappingInc.meta_relational_tests_model_simple_Address)]\n'+ + ' resultSizeRange = *\n'+ + ' resultColumns = [("pk_0", INT), ("name", VARCHAR(200)), ("street", VARCHAR(100)), ("type", INT), ("comments", VARCHAR(100))]\n'+ + ' sql = select "root".ID as "pk_0", "root".NAME as "name", "root".STREET as "street", "root".TYPE as "type", "root".COMMENTS as "comments" from addressTable as "root" where (${optionalVarPlaceHolderOperationSelector(optionalDateLeft![], optionalVarPlaceHolderOperationSelector(optionalDateRight![], \'${varPlaceHolderToString(optionalDateLeft![] "TIMESTAMP\\\'" "\\\'" {} "null")} = ${varPlaceHolderToString(optionalDateRight![] "TIMESTAMP\\\'" "\\\'" {} "null")}\', \'1 = 0\'), optionalVarPlaceHolderOperationSelector(optionalDateRight![], \'1 = 0\', \'1 = 1\'))})\n'+ + ' connection = TestDatabaseConnection(type = "H2")\n'+ + ' )\n'+ + ' )\n'+ + ')\n'; + assertEqualsH2Compatible($expectedLegacyH2, $expectedNewH2, $result); assertSameElements(templateFunctionsList(),$generatedPlan.processingTemplateFunctions); } @@ -418,7 +533,7 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithTwo { let generatedPlan = executionPlan({optionalLeft: DateTime[0..1], optionalRight :DateTime[0..1]|Address.all()->filter(a|$optionalLeft==$optionalRight)}, simpleRelationalMapping, ^Runtime(connections=^DatabaseConnection(element = relationalDB, type=DatabaseType.H2)), meta::relational::extension::relationalExtensions()); let result = $generatedPlan->planToString(meta::relational::extension::relationalExtensions()); - let expected = 'Sequence\n'+ + let expectedLegacyH2 = 'Sequence\n'+ '(\n'+ ' type = Class[impls=(meta::relational::tests::model::simple::Address | simpleRelationalMappingInc.meta_relational_tests_model_simple_Address)]\n'+ ' resultSizeRange = *\n'+ @@ -437,7 +552,26 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithTwo ' )\n'+ ' )\n'+ ')\n'; - assertEquals($expected, $result); + let expectedNewH2 = 'Sequence\n'+ + '(\n'+ + ' type = Class[impls=(meta::relational::tests::model::simple::Address | simpleRelationalMappingInc.meta_relational_tests_model_simple_Address)]\n'+ + ' resultSizeRange = *\n'+ + ' (\n'+ + ' FunctionParametersValidationNode\n'+ + ' (\n'+ + ' functionParameters = [optionalLeft:DateTime[0..1], optionalRight:DateTime[0..1]]\n'+ + ' )\n'+ + ' Relational\n'+ + ' (\n'+ + ' type = Class[impls=(meta::relational::tests::model::simple::Address | simpleRelationalMappingInc.meta_relational_tests_model_simple_Address)]\n'+ + ' resultSizeRange = *\n'+ + ' resultColumns = [("pk_0", INT), ("name", VARCHAR(200)), ("street", VARCHAR(100)), ("type", INT), ("comments", VARCHAR(100))]\n'+ + ' sql = select "root".ID as "pk_0", "root".NAME as "name", "root".STREET as "street", "root".TYPE as "type", "root".COMMENTS as "comments" from addressTable as "root" where (${optionalVarPlaceHolderOperationSelector(optionalLeft![], optionalVarPlaceHolderOperationSelector(optionalRight![], \'${varPlaceHolderToString(optionalLeft![] "TIMESTAMP\\\'" "\\\'" {} "null")} = ${varPlaceHolderToString(optionalRight![] "TIMESTAMP\\\'" "\\\'" {} "null")}\', \'1 = 0\'), optionalVarPlaceHolderOperationSelector(optionalRight![], \'1 = 0\', \'1 = 1\'))})\n'+ + ' connection = DatabaseConnection(type = "H2")\n'+ + ' )\n'+ + ' )\n'+ + ')\n'; + assertEqualsH2Compatible($expectedLegacyH2, $expectedNewH2, $result); assertSameElements(templateFunctionsList(),$generatedPlan.processingTemplateFunctions); } @@ -445,7 +579,7 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithTwo { let generatedPlan = executionPlan({optionalLeft: DateTime[0..1], optionalRight :DateTime[0..1]|Address.all()->filter(a|$optionalLeft==$optionalRight)}, simpleRelationalMapping, ^Runtime(connections=^DatabaseConnection(element = relationalDB, type=DatabaseType.H2, timeZone='US/Arizona')), meta::relational::extension::relationalExtensions()); let result = $generatedPlan->planToString(meta::relational::extension::relationalExtensions()); - let expected = 'Sequence\n'+ + let expectedLegacyH2 = 'Sequence\n'+ '(\n'+ ' type = Class[impls=(meta::relational::tests::model::simple::Address | simpleRelationalMappingInc.meta_relational_tests_model_simple_Address)]\n'+ ' resultSizeRange = *\n'+ @@ -464,7 +598,26 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithTwo ' )\n'+ ' )\n'+ ')\n'; - assertEquals($expected, $result); + let expectedNewH2 = 'Sequence\n'+ + '(\n'+ + ' type = Class[impls=(meta::relational::tests::model::simple::Address | simpleRelationalMappingInc.meta_relational_tests_model_simple_Address)]\n'+ + ' resultSizeRange = *\n'+ + ' (\n'+ + ' FunctionParametersValidationNode\n'+ + ' (\n'+ + ' functionParameters = [optionalLeft:DateTime[0..1], optionalRight:DateTime[0..1]]\n'+ + ' )\n'+ + ' Relational\n'+ + ' (\n'+ + ' type = Class[impls=(meta::relational::tests::model::simple::Address | simpleRelationalMappingInc.meta_relational_tests_model_simple_Address)]\n'+ + ' resultSizeRange = *\n'+ + ' resultColumns = [("pk_0", INT), ("name", VARCHAR(200)), ("street", VARCHAR(100)), ("type", INT), ("comments", VARCHAR(100))]\n'+ + ' sql = select "root".ID as "pk_0", "root".NAME as "name", "root".STREET as "street", "root".TYPE as "type", "root".COMMENTS as "comments" from addressTable as "root" where (${optionalVarPlaceHolderOperationSelector(optionalLeft![], optionalVarPlaceHolderOperationSelector(optionalRight![], \'${varPlaceHolderToString(GMTtoTZ( "[US/Arizona]" optionalLeft![]) "TIMESTAMP\\\'" "\\\'" {} "null")} = ${varPlaceHolderToString(GMTtoTZ( "[US/Arizona]" optionalRight![]) "TIMESTAMP\\\'" "\\\'" {} "null")}\', \'1 = 0\'), optionalVarPlaceHolderOperationSelector(optionalRight![], \'1 = 0\', \'1 = 1\'))})\n'+ + ' connection = DatabaseConnection(type = "H2")\n'+ + ' )\n'+ + ' )\n'+ + ')\n'; + assertEqualsH2Compatible($expectedLegacyH2, $expectedNewH2, $result); } function <> meta::pure::executionPlan::tests::testGreaterThanLessThanEqualsWithOptionalParameter_H2():Boolean[1] @@ -766,9 +919,10 @@ function <> meta::pure::executionPlan::tests::datetime::testPlanForDa { let planWithString = executionPlanForQueryWithDateTimeConstantForDatabaseConnectionTimeZone(%2019-4-8T18:00:00, []); let planAsString = $planWithString.second; - let expected = 'Relational ( type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)] resultSizeRange = * resultColumns = [("pk_0", INT), ("id", INT), ("quantity", INT), ("date", DATE), ("settlementDateTime", TIMESTAMP), ("pnl", FLOAT), ("zeroPnl", "")] sql = select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".orderDate as "date", "root".settlementDateTime as "settlementDateTime", "orderpnlview_0".pnl as "pnl", case when "orderpnlview_0".pnl = 0 then \'true\' else \'false\' end as "zeroPnl" from orderTable as "root" left outer join (select distinct "root".ORDER_ID as ORDER_ID, "root".pnl as pnl, "accounttable_0".ID as accountId, "salespersontable_0".NAME as supportContact, "salespersontable_0".PERSON_ID as supportContactId from orderPnlTable as "root" left outer join orderTable as "ordertable_1" on ("root".ORDER_ID = "ordertable_1".ID) left outer join accountTable as "accounttable_0" on ("ordertable_1".accountID = "accounttable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("ordertable_1".accountID = "salespersontable_0".ACCOUNT_ID) where "root".pnl > 0) as "orderpnlview_0" on ("orderpnlview_0".ORDER_ID = "root".ID) where "root".settlementDateTime = \'2019-04-08 18:00:00\' connection = TestDatabaseConnection(type = "H2") ) '; - assertEquals($expected, $planAsString); - assert($planAsString->indexOf('settlementDateTime = \'2019-04-08 18:00:00\'') != -1); + let expectedLegacyH2 = 'Relational ( type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)] resultSizeRange = * resultColumns = [("pk_0", INT), ("id", INT), ("quantity", INT), ("date", DATE), ("settlementDateTime", TIMESTAMP), ("pnl", FLOAT), ("zeroPnl", "")] sql = select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".orderDate as "date", "root".settlementDateTime as "settlementDateTime", "orderpnlview_0".pnl as "pnl", case when "orderpnlview_0".pnl = 0 then \'true\' else \'false\' end as "zeroPnl" from orderTable as "root" left outer join (select distinct "root".ORDER_ID as ORDER_ID, "root".pnl as pnl, "accounttable_0".ID as accountId, "salespersontable_0".NAME as supportContact, "salespersontable_0".PERSON_ID as supportContactId from orderPnlTable as "root" left outer join orderTable as "ordertable_1" on ("root".ORDER_ID = "ordertable_1".ID) left outer join accountTable as "accounttable_0" on ("ordertable_1".accountID = "accounttable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("ordertable_1".accountID = "salespersontable_0".ACCOUNT_ID) where "root".pnl > 0) as "orderpnlview_0" on ("orderpnlview_0".ORDER_ID = "root".ID) where "root".settlementDateTime = \'2019-04-08 18:00:00\' connection = TestDatabaseConnection(type = "H2") ) '; + let expectedNewH2 = 'Relational ( type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)] resultSizeRange = * resultColumns = [("pk_0", INT), ("id", INT), ("quantity", INT), ("date", DATE), ("settlementDateTime", TIMESTAMP), ("pnl", FLOAT), ("zeroPnl", "")] sql = select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".orderDate as "date", "root".settlementDateTime as "settlementDateTime", "orderpnlview_0".pnl as "pnl", cast(case when "orderpnlview_0".pnl = 0 then \'true\' else \'false\' end as boolean) as "zeroPnl" from orderTable as "root" left outer join (select distinct "root".ORDER_ID as ORDER_ID, "root".pnl as pnl, "accounttable_0".ID as accountId, "salespersontable_0".NAME as supportContact, "salespersontable_0".PERSON_ID as supportContactId from orderPnlTable as "root" left outer join orderTable as "ordertable_1" on ("root".ORDER_ID = "ordertable_1".ID) left outer join accountTable as "accounttable_0" on ("ordertable_1".accountID = "accounttable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("ordertable_1".accountID = "salespersontable_0".ACCOUNT_ID) where "root".pnl > 0) as "orderpnlview_0" on ("orderpnlview_0".ORDER_ID = "root".ID) where "root".settlementDateTime = TIMESTAMP\'2019-04-08 18:00:00\' connection = TestDatabaseConnection(type = "H2") ) '; + assertEqualsH2Compatible($expectedLegacyH2, $expectedNewH2, $planAsString); + assert($planAsString->indexOf('settlementDateTime = \'2019-04-08 18:00:00\'') != -1 || $planAsString->indexOf('settlementDateTime = TIMESTAMP\'2019-04-08 18:00:00\'') != -1); assertSameElements(templateFunctionsList(),$planWithString.first.processingTemplateFunctions); } @@ -776,9 +930,10 @@ function <> meta::pure::executionPlan::tests::datetime::testPlanForDa { let planWithString = executionPlanForQueryWithDateTimeConstantForDatabaseConnectionTimeZone(%2019-4-8T18:00:00, 'GMT'); let planAsString = $planWithString.second; - let expected = 'Relational ( type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)] resultSizeRange = * resultColumns = [("pk_0", INT), ("id", INT), ("quantity", INT), ("date", DATE), ("settlementDateTime", TIMESTAMP), ("pnl", FLOAT), ("zeroPnl", "")] sql = select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".orderDate as "date", "root".settlementDateTime as "settlementDateTime", "orderpnlview_0".pnl as "pnl", case when "orderpnlview_0".pnl = 0 then \'true\' else \'false\' end as "zeroPnl" from orderTable as "root" left outer join (select distinct "root".ORDER_ID as ORDER_ID, "root".pnl as pnl, "accounttable_0".ID as accountId, "salespersontable_0".NAME as supportContact, "salespersontable_0".PERSON_ID as supportContactId from orderPnlTable as "root" left outer join orderTable as "ordertable_1" on ("root".ORDER_ID = "ordertable_1".ID) left outer join accountTable as "accounttable_0" on ("ordertable_1".accountID = "accounttable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("ordertable_1".accountID = "salespersontable_0".ACCOUNT_ID) where "root".pnl > 0) as "orderpnlview_0" on ("orderpnlview_0".ORDER_ID = "root".ID) where "root".settlementDateTime = \'2019-04-08 18:00:00\' connection = TestDatabaseConnection(type = "H2") ) '; - assertEquals($expected, $planAsString); - assert($planAsString->indexOf('settlementDateTime = \'2019-04-08 18:00:00\'') != -1); + let expectedLegacyH2 = 'Relational ( type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)] resultSizeRange = * resultColumns = [("pk_0", INT), ("id", INT), ("quantity", INT), ("date", DATE), ("settlementDateTime", TIMESTAMP), ("pnl", FLOAT), ("zeroPnl", "")] sql = select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".orderDate as "date", "root".settlementDateTime as "settlementDateTime", "orderpnlview_0".pnl as "pnl", case when "orderpnlview_0".pnl = 0 then \'true\' else \'false\' end as "zeroPnl" from orderTable as "root" left outer join (select distinct "root".ORDER_ID as ORDER_ID, "root".pnl as pnl, "accounttable_0".ID as accountId, "salespersontable_0".NAME as supportContact, "salespersontable_0".PERSON_ID as supportContactId from orderPnlTable as "root" left outer join orderTable as "ordertable_1" on ("root".ORDER_ID = "ordertable_1".ID) left outer join accountTable as "accounttable_0" on ("ordertable_1".accountID = "accounttable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("ordertable_1".accountID = "salespersontable_0".ACCOUNT_ID) where "root".pnl > 0) as "orderpnlview_0" on ("orderpnlview_0".ORDER_ID = "root".ID) where "root".settlementDateTime = \'2019-04-08 18:00:00\' connection = TestDatabaseConnection(type = "H2") ) '; + let expectedNewH2 = 'Relational ( type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)] resultSizeRange = * resultColumns = [("pk_0", INT), ("id", INT), ("quantity", INT), ("date", DATE), ("settlementDateTime", TIMESTAMP), ("pnl", FLOAT), ("zeroPnl", "")] sql = select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".orderDate as "date", "root".settlementDateTime as "settlementDateTime", "orderpnlview_0".pnl as "pnl", cast(case when "orderpnlview_0".pnl = 0 then \'true\' else \'false\' end as boolean) as "zeroPnl" from orderTable as "root" left outer join (select distinct "root".ORDER_ID as ORDER_ID, "root".pnl as pnl, "accounttable_0".ID as accountId, "salespersontable_0".NAME as supportContact, "salespersontable_0".PERSON_ID as supportContactId from orderPnlTable as "root" left outer join orderTable as "ordertable_1" on ("root".ORDER_ID = "ordertable_1".ID) left outer join accountTable as "accounttable_0" on ("ordertable_1".accountID = "accounttable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("ordertable_1".accountID = "salespersontable_0".ACCOUNT_ID) where "root".pnl > 0) as "orderpnlview_0" on ("orderpnlview_0".ORDER_ID = "root".ID) where "root".settlementDateTime = TIMESTAMP\'2019-04-08 18:00:00\' connection = TestDatabaseConnection(type = "H2") ) '; + assertEqualsH2Compatible($expectedLegacyH2, $expectedNewH2, $planAsString); + assert($planAsString->indexOf('settlementDateTime = \'2019-04-08 18:00:00\'') != -1 || $planAsString->indexOf('settlementDateTime = TIMESTAMP\'2019-04-08 18:00:00\'') != -1); assertSameElements(templateFunctionsList(),$planWithString.first.processingTemplateFunctions); } @@ -786,9 +941,10 @@ function <> meta::pure::executionPlan::tests::datetime::testPlanForDa { let planWithString = executionPlanForQueryWithDateTimeConstantForDatabaseConnectionTimeZone(%2019-4-8T18:00:00, 'EST'); let planAsString = $planWithString.second; - let expected = 'Relational ( type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)] resultSizeRange = * resultColumns = [("pk_0", INT), ("id", INT), ("quantity", INT), ("date", DATE), ("settlementDateTime", TIMESTAMP), ("pnl", FLOAT), ("zeroPnl", "")] sql = select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".orderDate as "date", "root".settlementDateTime as "settlementDateTime", "orderpnlview_0".pnl as "pnl", case when "orderpnlview_0".pnl = 0 then \'true\' else \'false\' end as "zeroPnl" from orderTable as "root" left outer join (select distinct "root".ORDER_ID as ORDER_ID, "root".pnl as pnl, "accounttable_0".ID as accountId, "salespersontable_0".NAME as supportContact, "salespersontable_0".PERSON_ID as supportContactId from orderPnlTable as "root" left outer join orderTable as "ordertable_1" on ("root".ORDER_ID = "ordertable_1".ID) left outer join accountTable as "accounttable_0" on ("ordertable_1".accountID = "accounttable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("ordertable_1".accountID = "salespersontable_0".ACCOUNT_ID) where "root".pnl > 0) as "orderpnlview_0" on ("orderpnlview_0".ORDER_ID = "root".ID) where "root".settlementDateTime = \'2019-04-08 13:00:00\' connection = TestDatabaseConnection(type = "H2") ) '; - assertEquals($expected, $planAsString); - assert($planAsString->indexOf('settlementDateTime = \'2019-04-08 13:00:00\'') != -1); + let expectedLegacyH2 = 'Relational ( type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)] resultSizeRange = * resultColumns = [("pk_0", INT), ("id", INT), ("quantity", INT), ("date", DATE), ("settlementDateTime", TIMESTAMP), ("pnl", FLOAT), ("zeroPnl", "")] sql = select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".orderDate as "date", "root".settlementDateTime as "settlementDateTime", "orderpnlview_0".pnl as "pnl", case when "orderpnlview_0".pnl = 0 then \'true\' else \'false\' end as "zeroPnl" from orderTable as "root" left outer join (select distinct "root".ORDER_ID as ORDER_ID, "root".pnl as pnl, "accounttable_0".ID as accountId, "salespersontable_0".NAME as supportContact, "salespersontable_0".PERSON_ID as supportContactId from orderPnlTable as "root" left outer join orderTable as "ordertable_1" on ("root".ORDER_ID = "ordertable_1".ID) left outer join accountTable as "accounttable_0" on ("ordertable_1".accountID = "accounttable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("ordertable_1".accountID = "salespersontable_0".ACCOUNT_ID) where "root".pnl > 0) as "orderpnlview_0" on ("orderpnlview_0".ORDER_ID = "root".ID) where "root".settlementDateTime = \'2019-04-08 13:00:00\' connection = TestDatabaseConnection(type = "H2") ) '; + let expectedNewH2 = 'Relational ( type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)] resultSizeRange = * resultColumns = [("pk_0", INT), ("id", INT), ("quantity", INT), ("date", DATE), ("settlementDateTime", TIMESTAMP), ("pnl", FLOAT), ("zeroPnl", "")] sql = select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".orderDate as "date", "root".settlementDateTime as "settlementDateTime", "orderpnlview_0".pnl as "pnl", cast(case when "orderpnlview_0".pnl = 0 then \'true\' else \'false\' end as boolean) as "zeroPnl" from orderTable as "root" left outer join (select distinct "root".ORDER_ID as ORDER_ID, "root".pnl as pnl, "accounttable_0".ID as accountId, "salespersontable_0".NAME as supportContact, "salespersontable_0".PERSON_ID as supportContactId from orderPnlTable as "root" left outer join orderTable as "ordertable_1" on ("root".ORDER_ID = "ordertable_1".ID) left outer join accountTable as "accounttable_0" on ("ordertable_1".accountID = "accounttable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("ordertable_1".accountID = "salespersontable_0".ACCOUNT_ID) where "root".pnl > 0) as "orderpnlview_0" on ("orderpnlview_0".ORDER_ID = "root".ID) where "root".settlementDateTime = TIMESTAMP\'2019-04-08 13:00:00\' connection = TestDatabaseConnection(type = "H2") ) '; + assertEqualsH2Compatible($expectedLegacyH2, $expectedNewH2, $planAsString); + assert($planAsString->indexOf('settlementDateTime = \'2019-04-08 13:00:00\'') != -1 || $planAsString->indexOf('settlementDateTime = TIMESTAMP\'2019-04-08 13:00:00\'') != -1); assertSameElements(['<#function GMTtoTZ tz paramDate><#if paramDate?is_enumerable && !paramDate?has_content><#return paramDate><#else><#return (tz+" "+paramDate)?date.@alloyDate><#function renderCollectionWithTz collection timeZone separator prefix suffix defaultValue><#assign result = [] /><#list collection as c><#assign result = [prefix + (timeZone+" "+c)?date.@alloyDate + suffix] + result><#return result?reverse?join(separator, defaultValue)>', '<#function collectionSize collection> <#return collection?size?c> ', '<#function equalEnumOperationSelector enumVal inDyna equalDyna><#assign enumList = enumVal?split(",")><#if enumList?size = 1><#return equalDyna><#else><#return inDyna>', @@ -802,9 +958,10 @@ function <> meta::pure::executionPlan::tests::datetime::testPlanForDa { let planWithString = executionPlanForQueryWithDateTimeVariableForDatabaseConnectionTimeZone([]); let planAsString = $planWithString.second; - let expected = 'Sequence ( type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)] resultSizeRange = * ( FunctionParametersValidationNode ( functionParameters = [dt:DateTime[1]] ) Relational ( type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)] resultSizeRange = * resultColumns = [("pk_0", INT), ("id", INT), ("quantity", INT), ("date", DATE), ("settlementDateTime", TIMESTAMP), ("pnl", FLOAT), ("zeroPnl", "")] sql = select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".orderDate as "date", "root".settlementDateTime as "settlementDateTime", "orderpnlview_0".pnl as "pnl", case when "orderpnlview_0".pnl = 0 then \'true\' else \'false\' end as "zeroPnl" from orderTable as "root" left outer join (select distinct "root".ORDER_ID as ORDER_ID, "root".pnl as pnl, "accounttable_0".ID as accountId, "salespersontable_0".NAME as supportContact, "salespersontable_0".PERSON_ID as supportContactId from orderPnlTable as "root" left outer join orderTable as "ordertable_1" on ("root".ORDER_ID = "ordertable_1".ID) left outer join accountTable as "accounttable_0" on ("ordertable_1".accountID = "accounttable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("ordertable_1".accountID = "salespersontable_0".ACCOUNT_ID) where "root".pnl > 0) as "orderpnlview_0" on ("orderpnlview_0".ORDER_ID = "root".ID) where "root".settlementDateTime = \'${dt}\' connection = TestDatabaseConnection(type = "H2") ) ) ) '; - assertEquals($expected, $planAsString); - assert($planAsString->indexOf('settlementDateTime = \'${dt}\'') != -1); + let expectedLegacyH2 = 'Sequence ( type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)] resultSizeRange = * ( FunctionParametersValidationNode ( functionParameters = [dt:DateTime[1]] ) Relational ( type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)] resultSizeRange = * resultColumns = [("pk_0", INT), ("id", INT), ("quantity", INT), ("date", DATE), ("settlementDateTime", TIMESTAMP), ("pnl", FLOAT), ("zeroPnl", "")] sql = select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".orderDate as "date", "root".settlementDateTime as "settlementDateTime", "orderpnlview_0".pnl as "pnl", case when "orderpnlview_0".pnl = 0 then \'true\' else \'false\' end as "zeroPnl" from orderTable as "root" left outer join (select distinct "root".ORDER_ID as ORDER_ID, "root".pnl as pnl, "accounttable_0".ID as accountId, "salespersontable_0".NAME as supportContact, "salespersontable_0".PERSON_ID as supportContactId from orderPnlTable as "root" left outer join orderTable as "ordertable_1" on ("root".ORDER_ID = "ordertable_1".ID) left outer join accountTable as "accounttable_0" on ("ordertable_1".accountID = "accounttable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("ordertable_1".accountID = "salespersontable_0".ACCOUNT_ID) where "root".pnl > 0) as "orderpnlview_0" on ("orderpnlview_0".ORDER_ID = "root".ID) where "root".settlementDateTime = \'${dt}\' connection = TestDatabaseConnection(type = "H2") ) ) ) '; + let expectedNewH2 = 'Sequence ( type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)] resultSizeRange = * ( FunctionParametersValidationNode ( functionParameters = [dt:DateTime[1]] ) Relational ( type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)] resultSizeRange = * resultColumns = [("pk_0", INT), ("id", INT), ("quantity", INT), ("date", DATE), ("settlementDateTime", TIMESTAMP), ("pnl", FLOAT), ("zeroPnl", "")] sql = select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".orderDate as "date", "root".settlementDateTime as "settlementDateTime", "orderpnlview_0".pnl as "pnl", cast(case when "orderpnlview_0".pnl = 0 then \'true\' else \'false\' end as boolean) as "zeroPnl" from orderTable as "root" left outer join (select distinct "root".ORDER_ID as ORDER_ID, "root".pnl as pnl, "accounttable_0".ID as accountId, "salespersontable_0".NAME as supportContact, "salespersontable_0".PERSON_ID as supportContactId from orderPnlTable as "root" left outer join orderTable as "ordertable_1" on ("root".ORDER_ID = "ordertable_1".ID) left outer join accountTable as "accounttable_0" on ("ordertable_1".accountID = "accounttable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("ordertable_1".accountID = "salespersontable_0".ACCOUNT_ID) where "root".pnl > 0) as "orderpnlview_0" on ("orderpnlview_0".ORDER_ID = "root".ID) where "root".settlementDateTime = TIMESTAMP\'${dt}\' connection = TestDatabaseConnection(type = "H2") ) ) ) '; + assertEqualsH2Compatible($expectedLegacyH2, $expectedNewH2, $planAsString); + assert($planAsString->indexOf('settlementDateTime = \'${dt}\'') != -1|| $planAsString->indexOf('settlementDateTime = TIMESTAMP\'${dt}\'') != -1); assertSameElements(templateFunctionsList(),$planWithString.first.processingTemplateFunctions); } @@ -812,9 +969,10 @@ function <> meta::pure::executionPlan::tests::datetime::testPlanForDa { let planWithString = executionPlanForQueryWithDateTimeVariableForDatabaseConnectionTimeZone('US/Arizona'); let planAsString = $planWithString.second; - let expected = 'Sequence ( type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)] resultSizeRange = * ( FunctionParametersValidationNode ( functionParameters = [dt:DateTime[1]] ) Relational ( type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)] resultSizeRange = * resultColumns = [("pk_0", INT), ("id", INT), ("quantity", INT), ("date", DATE), ("settlementDateTime", TIMESTAMP), ("pnl", FLOAT), ("zeroPnl", "")] sql = select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".orderDate as "date", "root".settlementDateTime as "settlementDateTime", "orderpnlview_0".pnl as "pnl", case when "orderpnlview_0".pnl = 0 then \'true\' else \'false\' end as "zeroPnl" from orderTable as "root" left outer join (select distinct "root".ORDER_ID as ORDER_ID, "root".pnl as pnl, "accounttable_0".ID as accountId, "salespersontable_0".NAME as supportContact, "salespersontable_0".PERSON_ID as supportContactId from orderPnlTable as "root" left outer join orderTable as "ordertable_1" on ("root".ORDER_ID = "ordertable_1".ID) left outer join accountTable as "accounttable_0" on ("ordertable_1".accountID = "accounttable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("ordertable_1".accountID = "salespersontable_0".ACCOUNT_ID) where "root".pnl > 0) as "orderpnlview_0" on ("orderpnlview_0".ORDER_ID = "root".ID) where "root".settlementDateTime = \'${GMTtoTZ( "[US/Arizona]" dt)}\' connection = TestDatabaseConnection(type = "H2") ) ) ) '; - assertEquals($expected, $planAsString); - assert($planAsString->indexOf('settlementDateTime = \'${GMTtoTZ( "[US/Arizona]" dt)}\'') != -1); + let expectedLegacyH2 = 'Sequence ( type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)] resultSizeRange = * ( FunctionParametersValidationNode ( functionParameters = [dt:DateTime[1]] ) Relational ( type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)] resultSizeRange = * resultColumns = [("pk_0", INT), ("id", INT), ("quantity", INT), ("date", DATE), ("settlementDateTime", TIMESTAMP), ("pnl", FLOAT), ("zeroPnl", "")] sql = select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".orderDate as "date", "root".settlementDateTime as "settlementDateTime", "orderpnlview_0".pnl as "pnl", case when "orderpnlview_0".pnl = 0 then \'true\' else \'false\' end as "zeroPnl" from orderTable as "root" left outer join (select distinct "root".ORDER_ID as ORDER_ID, "root".pnl as pnl, "accounttable_0".ID as accountId, "salespersontable_0".NAME as supportContact, "salespersontable_0".PERSON_ID as supportContactId from orderPnlTable as "root" left outer join orderTable as "ordertable_1" on ("root".ORDER_ID = "ordertable_1".ID) left outer join accountTable as "accounttable_0" on ("ordertable_1".accountID = "accounttable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("ordertable_1".accountID = "salespersontable_0".ACCOUNT_ID) where "root".pnl > 0) as "orderpnlview_0" on ("orderpnlview_0".ORDER_ID = "root".ID) where "root".settlementDateTime = \'${GMTtoTZ( "[US/Arizona]" dt)}\' connection = TestDatabaseConnection(type = "H2") ) ) ) '; + let expectedNewH2 = 'Sequence ( type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)] resultSizeRange = * ( FunctionParametersValidationNode ( functionParameters = [dt:DateTime[1]] ) Relational ( type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)] resultSizeRange = * resultColumns = [("pk_0", INT), ("id", INT), ("quantity", INT), ("date", DATE), ("settlementDateTime", TIMESTAMP), ("pnl", FLOAT), ("zeroPnl", "")] sql = select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".orderDate as "date", "root".settlementDateTime as "settlementDateTime", "orderpnlview_0".pnl as "pnl", cast(case when "orderpnlview_0".pnl = 0 then \'true\' else \'false\' end as boolean) as "zeroPnl" from orderTable as "root" left outer join (select distinct "root".ORDER_ID as ORDER_ID, "root".pnl as pnl, "accounttable_0".ID as accountId, "salespersontable_0".NAME as supportContact, "salespersontable_0".PERSON_ID as supportContactId from orderPnlTable as "root" left outer join orderTable as "ordertable_1" on ("root".ORDER_ID = "ordertable_1".ID) left outer join accountTable as "accounttable_0" on ("ordertable_1".accountID = "accounttable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("ordertable_1".accountID = "salespersontable_0".ACCOUNT_ID) where "root".pnl > 0) as "orderpnlview_0" on ("orderpnlview_0".ORDER_ID = "root".ID) where "root".settlementDateTime = TIMESTAMP\'${GMTtoTZ( "[US/Arizona]" dt)}\' connection = TestDatabaseConnection(type = "H2") ) ) ) '; + assertEqualsH2Compatible($expectedLegacyH2, $expectedNewH2, $planAsString); + assert($planAsString->indexOf('settlementDateTime = \'${GMTtoTZ( "[US/Arizona]" dt)}\'') != -1 || 'settlementDateTime = TIMESTAMP\'${GMTtoTZ( "[US/Arizona]" dt)}\'' != -1); assertSameElements(['<#function GMTtoTZ tz paramDate><#if paramDate?is_enumerable && !paramDate?has_content><#return paramDate><#else><#return (tz+" "+paramDate)?date.@alloyDate><#function renderCollectionWithTz collection timeZone separator prefix suffix defaultValue><#assign result = [] /><#list collection as c><#assign result = [prefix + (timeZone+" "+c)?date.@alloyDate + suffix] + result><#return result?reverse?join(separator, defaultValue)>', '<#function collectionSize collection> <#return collection?size?c> ', '<#function equalEnumOperationSelector enumVal inDyna equalDyna><#assign enumList = enumVal?split(",")><#if enumList?size = 1><#return equalDyna><#else><#return inDyna>', @@ -924,7 +1082,38 @@ function <> meta::pure::executionPlan::tests::testClassPropertyOpenVa let reportEndDate = FiscalCalendarDate.all()->filter(d|$d.date == %2005-10-10)->toOne(); SalesCredit.all()->filter(s|$s.tradeDate.date<$reportEndDate.date);}, myMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals( + assertEqualsH2Compatible( + 'Sequence\n(\n' + + ' type = Class[impls=(meta::relational::tests::groupBy::datePeriods::domain::SalesCredit | myMapping.meta_relational_tests_groupBy_datePeriods_domain_SalesCredit)]\n' + + ' resultSizeRange = *\n'+ + ' (\n' + + ' Allocation\n' + + ' (\n' + + ' type = Class[impls=(meta::relational::tests::groupBy::datePeriods::domain::FiscalCalendarDate | myMapping.meta_relational_tests_groupBy_datePeriods_domain_FiscalCalendarDate)]\n' + + ' resultSizeRange = 1\n'+ + ' name = reportEndDate\n' + + ' value = \n' + + ' (\n' + + ' Relational\n' + + ' (\n' + + ' type = Class[impls=(meta::relational::tests::groupBy::datePeriods::domain::FiscalCalendarDate | myMapping.meta_relational_tests_groupBy_datePeriods_domain_FiscalCalendarDate)]\n' + + ' resultSizeRange = 1\n'+ + ' resultColumns = [("pk_0", DATE), ("pk_1", VARCHAR(15)), ("date", DATE), ("weekStart", DATE), ("weekEnd", DATE), ("day", INT), ("week", INT), ("dayOfWeekNumber", INT), ("yearEnd", DATE), ("yearStart", DATE)]\n'+ + ' sql = select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2005-10-10\'\n' + + ' connection = TestDatabaseConnection(type = \"H2\")\n' + + ' )\n' + + ' )\n' + + ' )\n' + + ' Relational\n' + + ' (\n' + + ' type = Class[impls=(meta::relational::tests::groupBy::datePeriods::domain::SalesCredit | myMapping.meta_relational_tests_groupBy_datePeriods_domain_SalesCredit)]\n' + + ' resultSizeRange = *\n'+ + ' resultColumns = [("pk_0", INT), ("grossValue", DOUBLE)]\n'+ + ' sql = select "root".key as "pk_0", "root".credits as "grossValue" from SALES_GCS as "root" left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where "calendar_0"."date" < \'${reportEndDate.date}\'\n' + + ' connection = TestDatabaseConnection(type = \"H2\")\n' + + ' )\n' + + ' )\n' + + ')\n', 'Sequence\n(\n' + ' type = Class[impls=(meta::relational::tests::groupBy::datePeriods::domain::SalesCredit | myMapping.meta_relational_tests_groupBy_datePeriods_domain_SalesCredit)]\n' + ' resultSizeRange = *\n'+ @@ -941,7 +1130,7 @@ function <> meta::pure::executionPlan::tests::testClassPropertyOpenVa ' type = Class[impls=(meta::relational::tests::groupBy::datePeriods::domain::FiscalCalendarDate | myMapping.meta_relational_tests_groupBy_datePeriods_domain_FiscalCalendarDate)]\n' + ' resultSizeRange = 1\n'+ ' resultColumns = [("pk_0", DATE), ("pk_1", VARCHAR(15)), ("date", DATE), ("weekStart", DATE), ("weekEnd", DATE), ("day", INT), ("week", INT), ("dayOfWeekNumber", INT), ("yearEnd", DATE), ("yearStart", DATE)]\n'+ - ' sql = select \"root\".\"date\" as \"pk_0\", \"root\".\"calendar name\" as \"pk_1\", \"root\".\"date\" as \"date\", \"root\".\"fiscal week start\" as \"weekStart\", \"root\".\"fiscal week end\" as \"weekEnd\", \"root\".\"fiscal day\" as \"day\", \"root\".\"fiscal week\" as \"week\", \"root\".\"fiscal day of week\" as \"dayOfWeekNumber\", \"root\".\"fiscal year end\" as \"yearEnd\", \"root\".\"fiscal year start\" as \"yearStart\" from calendar as \"root\" where \"root\".\"date\" = \'2005-10-10\'\n' + + ' sql = select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2005-10-10\'\n' + ' connection = TestDatabaseConnection(type = \"H2\")\n' + ' )\n' + ' )\n' + @@ -951,7 +1140,7 @@ function <> meta::pure::executionPlan::tests::testClassPropertyOpenVa ' type = Class[impls=(meta::relational::tests::groupBy::datePeriods::domain::SalesCredit | myMapping.meta_relational_tests_groupBy_datePeriods_domain_SalesCredit)]\n' + ' resultSizeRange = *\n'+ ' resultColumns = [("pk_0", INT), ("grossValue", DOUBLE)]\n'+ - ' sql = select \"root\".key as \"pk_0\", \"root\".credits as \"grossValue\" from SALES_GCS as \"root\" left outer join calendar as \"calendar_0\" on (\"root\".tradeDate = \"calendar_0\".\"date\") where \"calendar_0\".\"date\" < \'${reportEndDate.date}\'\n' + + ' sql = select "root".key as "pk_0", "root".credits as "grossValue" from SALES_GCS as "root" left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where "calendar_0"."date" < TIMESTAMP\'${reportEndDate.date}\'\n' + ' connection = TestDatabaseConnection(type = \"H2\")\n' + ' )\n' + ' )\n' + @@ -973,7 +1162,7 @@ function <> meta::pure::executionPlan::tests::testGroupByWithOpenVari ['Sales Division', 'Income Function']); }, myMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals( + assertEqualsH2Compatible( 'Sequence\n'+ '(\n'+ ' type = TDS[(Sales Division, String, VARCHAR(30), ""), (Income Function, Number, FLOAT, "")]\n'+ @@ -1003,7 +1192,38 @@ function <> meta::pure::executionPlan::tests::testGroupByWithOpenVari ' connection = TestDatabaseConnection(type = "H2")\n'+ ' )\n'+ ' )\n'+ - ')\n',$result->planToString(meta::relational::extension::relationalExtensions()));} + ')\n', + 'Sequence\n'+ + '(\n'+ + ' type = TDS[(Sales Division, String, VARCHAR(30), ""), (Income Function, Number, FLOAT, "")]\n'+ + ' (\n'+ + ' Allocation\n'+ + ' (\n'+ + ' type = Class[impls=(meta::relational::tests::groupBy::datePeriods::domain::FiscalCalendarDate | myMapping.meta_relational_tests_groupBy_datePeriods_domain_FiscalCalendarDate)]\n'+ + ' resultSizeRange = 1\n'+ + ' name = reportEndDate\n'+ + ' value = \n'+ + ' (\n'+ + ' Relational\n'+ + ' (\n'+ + ' type = Class[impls=(meta::relational::tests::groupBy::datePeriods::domain::FiscalCalendarDate | myMapping.meta_relational_tests_groupBy_datePeriods_domain_FiscalCalendarDate)]\n'+ + ' resultSizeRange = 1\n'+ + ' resultColumns = [("pk_0", DATE), ("pk_1", VARCHAR(15)), ("date", DATE), ("weekStart", DATE), ("weekEnd", DATE), ("day", INT), ("week", INT), ("dayOfWeekNumber", INT), ("yearEnd", DATE), ("yearStart", DATE)]\n'+ + ' sql = select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2005-10-10\'\n'+ + ' connection = TestDatabaseConnection(type = "H2")\n'+ + ' )\n'+ + ' )\n'+ + ' )\n'+ + ' Relational\n'+ + ' (\n'+ + ' type = TDS[(Sales Division, String, VARCHAR(30), ""), (Income Function, Number, FLOAT, "")]\n'+ + ' resultColumns = [("Sales Division", VARCHAR(30)), ("Income Function", "")]\n'+ + ' sql = select "org_chart_entity_0".name as "Sales Division", sum(case when "calendar_0"."fiscal day" <= ${reportEndDate.day} then "root".credits else CAST(0.0 AS FLOAT) end) as "Income Function" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") group by "Sales Division"\n'+ + ' connection = TestDatabaseConnection(type = "H2")\n'+ + ' )\n'+ + ' )\n'+ + ')\n', + $result->planToString(meta::relational::extension::relationalExtensions()));} function <> meta::pure::executionPlan::tests::testGroupByWithTwoOpenVariablesInAggAndFilter():Boolean[1] @@ -1023,7 +1243,7 @@ function <> meta::pure::executionPlan::tests::testGroupByWithTwoOpenV ['Sales Division', 'Income Function']); }, myMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals( + assertEqualsH2Compatible( 'Sequence\n'+ '(\n'+ ' type = TDS[(Sales Division, String, VARCHAR(30), ""), (Income Function, Number, FLOAT, "")]\n'+ @@ -1068,7 +1288,53 @@ function <> meta::pure::executionPlan::tests::testGroupByWithTwoOpenV ' connection = TestDatabaseConnection(type = "H2")\n'+ ' )\n'+ ' )\n'+ - ')\n',$result->planToString(meta::relational::extension::relationalExtensions())); + ')\n', + 'Sequence\n'+ + '(\n'+ + ' type = TDS[(Sales Division, String, VARCHAR(30), ""), (Income Function, Number, FLOAT, "")]\n'+ + ' (\n'+ + ' Allocation\n'+ + ' (\n'+ + ' type = StrictDate\n'+ + ' resultSizeRange = 1\n'+ + ' name = startDate\n'+ + ' value = \n'+ + ' (\n'+ + ' Constant\n'+ + ' (\n'+ + ' type = StrictDate\n'+ + ' resultSizeRange = 1\n'+ + ' values=[2015-02-25]\n'+ + ' )\n'+ + ' )\n'+ + ' )\n'+ + ' Allocation\n'+ + ' (\n'+ + ' type = Class[impls=(meta::relational::tests::groupBy::datePeriods::domain::FiscalCalendarDate | myMapping.meta_relational_tests_groupBy_datePeriods_domain_FiscalCalendarDate)]\n'+ + ' resultSizeRange = 1\n'+ + ' name = reportEndDate\n'+ + ' value = \n'+ + ' (\n'+ + ' Relational\n'+ + ' (\n'+ + ' type = Class[impls=(meta::relational::tests::groupBy::datePeriods::domain::FiscalCalendarDate | myMapping.meta_relational_tests_groupBy_datePeriods_domain_FiscalCalendarDate)]\n'+ + ' resultSizeRange = 1\n'+ + ' resultColumns = [("pk_0", DATE), ("pk_1", VARCHAR(15)), ("date", DATE), ("weekStart", DATE), ("weekEnd", DATE), ("day", INT), ("week", INT), ("dayOfWeekNumber", INT), ("yearEnd", DATE), ("yearStart", DATE)]\n'+ + ' sql = select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2005-10-10\'\n'+ + ' connection = TestDatabaseConnection(type = "H2")\n'+ + ' )\n'+ + ' )\n'+ + ' )\n'+ + ' Relational\n'+ + ' (\n'+ + ' type = TDS[(Sales Division, String, VARCHAR(30), ""), (Income Function, Number, FLOAT, "")]\n'+ + ' resultColumns = [("Sales Division", VARCHAR(30)), ("Income Function", "")]\n'+ + ' sql = select "org_chart_entity_0".name as "Sales Division", sum(case when "calendar_0"."fiscal day" <= ${reportEndDate.day} then "root".credits else CAST(0.0 AS FLOAT) end) as "Income Function" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > DATE\'${startDate}\' and "calendar_0"."date" <= TIMESTAMP\'${reportEndDate.date}\') group by "Sales Division"\n'+ + ' connection = TestDatabaseConnection(type = "H2")\n'+ + ' )\n'+ + ' )\n'+ + ')\n', + $result->planToString(meta::relational::extension::relationalExtensions())); } function <> meta::pure::executionPlan::tests::testMapWithOpenVariable():Boolean[1] @@ -1651,13 +1917,18 @@ function <> meta::pure::executionPlan::tests::testCrossDbPlanGenerati ')\n' , $result->planToString(meta::relational::extension::relationalExtensions())); } + function <> meta::pure::executionPlan::tests::testTemporalDateVariableAtRoot():Boolean[1] { let l = {bd:Date[1]|meta::relational::tests::milestoning::Product.all($bd)->project(col(t|$t.id, 'id'))}; let result = executionPlan($l, meta::relational::tests::milestoning::milestoningmap, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let rlnNode = $result.rootExecutionNode.executionNodes->filter(n|$n->instanceOf(RelationalInstantiationExecutionNode))->at(0).executionNodes->at(0)->cast(@SQLExecutionNode); let rlnNodeSQL = $rlnNode.sqlQuery; - assertEquals('select "root".id as "id" from ProductTable as "root" where "root".from_z <= \'${bd}\' and "root".thru_z > \'${bd}\'', $rlnNodeSQL); + assertEqualsH2Compatible( + 'select "root".id as "id" from ProductTable as "root" where "root".from_z <= \'${bd}\' and "root".thru_z > \'${bd}\'', + 'select "root".id as "id" from ProductTable as "root" where "root".from_z <= TIMESTAMP\'${bd}\' and "root".thru_z > TIMESTAMP\'${bd}\'', + $rlnNodeSQL + ); } function <> meta::pure::executionPlan::tests::testTemporalDateVariableInPropertySequence():Boolean[1] @@ -1666,7 +1937,11 @@ function <> meta::pure::executionPlan::tests::testTemporalDateVariabl let result = executionPlan($l, meta::relational::tests::milestoning::milestoningmap, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let rlnNode = $result.rootExecutionNode.executionNodes->filter(n|$n->instanceOf(RelationalInstantiationExecutionNode))->at(0).executionNodes->at(0)->cast(@SQLExecutionNode); let rlnNodeSQL = $rlnNode.sqlQuery; - assertEquals('select "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'${bd}\' and "productclassificationtable_0".thru_z > \'${bd}\') where "root".from_z <= \'${bd}\' and "root".thru_z > \'${bd}\'', $rlnNodeSQL); + assertEqualsH2Compatible( + 'select "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'${bd}\' and "productclassificationtable_0".thru_z > \'${bd}\') where "root".from_z <= \'${bd}\' and "root".thru_z > \'${bd}\'', + 'select "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= TIMESTAMP\'${bd}\' and "productclassificationtable_0".thru_z > TIMESTAMP\'${bd}\') where "root".from_z <= TIMESTAMP\'${bd}\' and "root".thru_z > TIMESTAMP\'${bd}\'', + $rlnNodeSQL + ); } function <> meta::pure::executionPlan::tests::testTemporalDateVariableInFunctionExpression():Boolean[1] @@ -1675,7 +1950,11 @@ function <> meta::pure::executionPlan::tests::testTemporalDateVariabl let result = executionPlan($l, meta::relational::tests::milestoning::milestoningmap, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let rlnNode = $result.rootExecutionNode.executionNodes->filter(n|$n->instanceOf(RelationalInstantiationExecutionNode))->at(0).executionNodes->at(0)->cast(@SQLExecutionNode); let rlnNodeSQL = $rlnNode.sqlQuery; - assertEquals('select "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, \'${bd}\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, \'${bd}\')) where "root".from_z <= \'${bd}\' and "root".thru_z > \'${bd}\'', $rlnNodeSQL); + assertEqualsH2Compatible( + 'select "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, \'${bd}\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, \'${bd}\')) where "root".from_z <= \'${bd}\' and "root".thru_z > \'${bd}\'', + 'select "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, TIMESTAMP\'${bd}\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, TIMESTAMP\'${bd}\')) where "root".from_z <= TIMESTAMP\'${bd}\' and "root".thru_z > TIMESTAMP\'${bd}\'', + $rlnNodeSQL + ); } function <> meta::pure::executionPlan::tests::testTemporalDateVariableInFunctionExpressionWithPropagation():Boolean[1] @@ -1684,7 +1963,11 @@ function <> meta::pure::executionPlan::tests::testTemporalDateVariabl let result = executionPlan($l, meta::relational::tests::milestoning::milestoningmap, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let rlnNode = $result.rootExecutionNode.executionNodes->filter(n|$n->instanceOf(RelationalInstantiationExecutionNode))->at(0).executionNodes->at(0)->cast(@SQLExecutionNode); let rlnNodeSQL = $rlnNode.sqlQuery; - assertEquals('select "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, \'${bd}\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, \'${bd}\')) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= dateadd(DAY, 1, \'${bd}\') and "productexchangetable_1".thru_z > dateadd(DAY, 1, \'${bd}\')) as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= \'${bd}\' and "root".thru_z > \'${bd}\'', $rlnNodeSQL); + assertEqualsH2Compatible( + 'select "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, \'${bd}\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, \'${bd}\')) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= dateadd(DAY, 1, \'${bd}\') and "productexchangetable_1".thru_z > dateadd(DAY, 1, \'${bd}\')) as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= \'${bd}\' and "root".thru_z > \'${bd}\'', + 'select "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, TIMESTAMP\'${bd}\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, TIMESTAMP\'${bd}\')) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= dateadd(DAY, 1, TIMESTAMP\'${bd}\') and "productexchangetable_1".thru_z > dateadd(DAY, 1, TIMESTAMP\'${bd}\')) as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= TIMESTAMP\'${bd}\' and "root".thru_z > TIMESTAMP\'${bd}\'', + $rlnNodeSQL + ); } function <> meta::pure::executionPlan::tests::testModelConnectionSimple() : Boolean[1] @@ -1917,7 +2200,7 @@ function <> meta::pure::executionPlan::tests::testPlanGenerationForIn { let generatedPlan = executionPlan({optionalDateTime:DateTime[*] |Trade.all()->filter(t|$t.settlementDateTime->in($optionalDateTime))->project([x | $x.id], ['TradeId'])}, simpleRelationalMapping, ^Runtime(connections=^DatabaseConnection(element = relationalDB, type=DatabaseType.H2, timeZone='US/Arizona')), meta::relational::extension::relationalExtensions()); let result = $generatedPlan->planToString(meta::relational::extension::relationalExtensions()); - let expectedPlan ='Sequence\n'+ + let expectedPlanLegacyH2 ='Sequence\n'+ '(\n'+ ' type = TDS[(TradeId, Integer, INT, "")]\n'+ ' (\n'+ @@ -1934,7 +2217,24 @@ function <> meta::pure::executionPlan::tests::testPlanGenerationForIn ' )\n'+ ' )\n'+ ')\n'; - assertEquals($expectedPlan, $result); + let expectedPlanNewH2 ='Sequence\n'+ + '(\n'+ + ' type = TDS[(TradeId, Integer, INT, "")]\n'+ + ' (\n'+ + ' FunctionParametersValidationNode\n'+ + ' (\n'+ + ' functionParameters = [optionalDateTime:DateTime[*]]\n'+ + ' )\n'+ + ' Relational\n'+ + ' (\n'+ + ' type = TDS[(TradeId, Integer, INT, "")]\n'+ + ' resultColumns = [("TradeId", INT)]\n'+ + ' sql = select "root".ID as "TradeId" from tradeTable as "root" where "root".settlementDateTime in (${renderCollectionWithTz(optionalDateTime![] "[US/Arizona]" "," "TIMESTAMP\'" "\'" "null")})\n'+ + ' connection = DatabaseConnection(type = "H2")\n'+ + ' )\n'+ + ' )\n'+ + ')\n'; + assertEqualsH2Compatible($expectedPlanLegacyH2, $expectedPlanNewH2, $result); } function <> meta::pure::executionPlan::tests::relationalTDSTypeForColumnsAndQuoting():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testAggregation.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testAggregation.pure index 2caeb93ef27..fc088ad27fa 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testAggregation.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testAggregation.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::mapping::*; import meta::relational::tests::*; import meta::relational::tests::model::simple::*; @@ -84,7 +85,11 @@ function <> meta::relational::tests::projection::aggregation::testSub let result = execute(|Firm.all()->project([f|$f.legalName, f|$f.employees->map(e|if($e.lastName == 'Hill',|$e.age->toOne()/2,|1.0))->average()], ['a', 'b']), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values.rows, 4); assertSameElements(['Firm A 1.0', 'Firm B 16.0', 'Firm C 1.0', 'Firm X 2.25'], $result.values.rows->map(r|$r.getString('a')+' '+$r.getFloat('b')->toString())); - assertEquals('select "root".LEGALNAME as "a", "firmtable_1".aggCol as "b" from firmTable as "root" left outer join (select "firmtable_2".ID as ID, avg(1.0 * case when "persontable_0".LASTNAME = \'Hill\' then ((1.0 * "persontable_0".AGE) / 2) else 1.0 end) as aggCol from firmTable as "firmtable_2" left outer join personTable as "persontable_0" on ("firmtable_2".ID = "persontable_0".FIRMID) group by "firmtable_2".ID) as "firmtable_1" on ("root".ID = "firmtable_1".ID)', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".LEGALNAME as "a", "firmtable_1".aggCol as "b" from firmTable as "root" left outer join (select "firmtable_2".ID as ID, avg(1.0 * case when "persontable_0".LASTNAME = \'Hill\' then ((1.0 * "persontable_0".AGE) / 2) else 1.0 end) as aggCol from firmTable as "firmtable_2" left outer join personTable as "persontable_0" on ("firmtable_2".ID = "persontable_0".FIRMID) group by "firmtable_2".ID) as "firmtable_1" on ("root".ID = "firmtable_1".ID)', + 'select "root".LEGALNAME as "a", "firmtable_1".aggCol as "b" from firmTable as "root" left outer join (select "firmtable_2".ID as ID, avg(1.0 * case when "persontable_0".LASTNAME = \'Hill\' then ((1.0 * "persontable_0".AGE) / 2) else CAST(1.0 AS FLOAT) end) as aggCol from firmTable as "firmtable_2" left outer join personTable as "persontable_0" on ("firmtable_2".ID = "persontable_0".FIRMID) group by "firmtable_2".ID) as "firmtable_1" on ("root".ID = "firmtable_1".ID)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::projection::aggregation::testSubAggregationWithJoinStrings():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testDateFilters.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testDateFilters.pure index e0e72a70cf1..54c536b7268 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testDateFilters.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testDateFilters.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::tests::model::simple::*; import meta::relational::mapping::*; import meta::relational::tests::*; @@ -36,7 +37,11 @@ function <> meta::relational::tests::projection::filter::dates::now:: function <> meta::relational::tests::projection::filter::dates::adjust::testAdjust():Boolean[1] { let result = execute(|Trade.all()->filter(d | $d.date == %2014-11-30->adjust(1, DurationUnit.DAYS))->project(x | $x.date, 'date'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = dateadd(DAY, 1, \'2014-11-30\')', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = dateadd(DAY, 1, \'2014-11-30\')', + 'select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = dateadd(DAY, 1, DATE\'2014-11-30\')', + $result->sqlRemoveFormatting() + ); assertSize($result.values.rows, 3); assertSameElements([%2014-12-01,%2014-12-01,%2014-12-01], $result.values.rows.values); } @@ -44,7 +49,11 @@ function <> meta::relational::tests::projection::filter::dates::adjus function <> meta::relational::tests::projection::filter::dates::adjust::testAdjustWithMicroseconds():Boolean[1] { let result = execute(|Trade.all()->filter(d | ($d.settlementDateTime > %2014-12-04T15:22:23->adjust(123456, DurationUnit.MICROSECONDS)) && ($d.settlementDateTime < %2014-12-04T15:22:23->adjust(123457, DurationUnit.MICROSECONDS)))->project(x | $x.settlementDateTime, 'settlementDateTime'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "root".settlementDateTime as "settlementDateTime" from tradeTable as "root" where (("root".settlementDateTime is not null and "root".settlementDateTime > dateadd(MICROSECOND, 123456, \'2014-12-04 15:22:23\')) and ("root".settlementDateTime is not null and "root".settlementDateTime < dateadd(MICROSECOND, 123457, \'2014-12-04 15:22:23\')))', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".settlementDateTime as "settlementDateTime" from tradeTable as "root" where (("root".settlementDateTime is not null and "root".settlementDateTime > dateadd(MICROSECOND, 123456, \'2014-12-04 15:22:23\')) and ("root".settlementDateTime is not null and "root".settlementDateTime < dateadd(MICROSECOND, 123457, \'2014-12-04 15:22:23\')))', + 'select "root".settlementDateTime as "settlementDateTime" from tradeTable as "root" where (("root".settlementDateTime is not null and "root".settlementDateTime > dateadd(MICROSECOND, 123456, TIMESTAMP\'2014-12-04 15:22:23\')) and ("root".settlementDateTime is not null and "root".settlementDateTime < dateadd(MICROSECOND, 123457, TIMESTAMP\'2014-12-04 15:22:23\')))', + $result->sqlRemoveFormatting() + ); assertSize($result.values.rows, 1); assertSameElements([%2014-12-04T15:22:23.123456789], $result.values.rows.values); } @@ -52,7 +61,11 @@ function <> meta::relational::tests::projection::filter::dates::adjus function <> meta::relational::tests::projection::filter::dates::firstDay::testFirstDayOfWeek():Boolean[1] { let result = execute(|Trade.all()->filter(d | $d.date->firstDayOfWeek() == %2017-09-18)->project(x | $x.date, 'date'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "root".tradeDate as "date" from tradeTable as "root" where dateadd(DAY, -(mod(dayofweek("root".tradeDate)+5, 7)), "root".tradeDate) = \'2017-09-18\'', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".tradeDate as "date" from tradeTable as "root" where dateadd(DAY, -(mod(dayofweek("root".tradeDate)+5, 7)), "root".tradeDate) = \'2017-09-18\'', + 'select "root".tradeDate as "date" from tradeTable as "root" where dateadd(DAY, -(mod(dayofweek("root".tradeDate)+5, 7)), "root".tradeDate) = DATE\'2017-09-18\'', + $result->sqlRemoveFormatting() + ); } @@ -65,7 +78,11 @@ function <> meta::relational::tests::projection::filter::dates::first function <> meta::relational::tests::projection::filter::dates::firstDay::testFirstDayOfMonth():Boolean[1] { let result = execute(|Trade.all()->filter(d | $d.date->firstDayOfMonth() == %2017-02-01)->project(x | $x.date, 'date'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "root".tradeDate as "date" from tradeTable as "root" where dateadd(DAY, -(dayofmonth("root".tradeDate) - 1), "root".tradeDate) = \'2017-02-01\'', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".tradeDate as "date" from tradeTable as "root" where dateadd(DAY, -(dayofmonth("root".tradeDate) - 1), "root".tradeDate) = \'2017-02-01\'', + 'select "root".tradeDate as "date" from tradeTable as "root" where dateadd(DAY, -(dayofmonth("root".tradeDate) - 1), "root".tradeDate) = DATE\'2017-02-01\'', + $result->sqlRemoveFormatting() + ); } @@ -78,7 +95,11 @@ function <> meta::relational::tests::projection::filter::dates::first function <> meta::relational::tests::projection::filter::dates::firstDay::testFirstDayOfQuarter():Boolean[1] { let result = execute(|Trade.all()->filter(d | $d.date->firstDayOfQuarter() == %2017-04-01)->project(x | $x.date, 'date'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "root".tradeDate as "date" from tradeTable as "root" where dateadd(MONTH, 3 * quarter("root".tradeDate) - 3, dateadd(DAY, -(dayofyear("root".tradeDate) - 1), "root".tradeDate)) = \'2017-04-01\'', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".tradeDate as "date" from tradeTable as "root" where dateadd(MONTH, 3 * quarter("root".tradeDate) - 3, dateadd(DAY, -(dayofyear("root".tradeDate) - 1), "root".tradeDate)) = \'2017-04-01\'', + 'select "root".tradeDate as "date" from tradeTable as "root" where dateadd(MONTH, 3 * quarter("root".tradeDate) - 3, dateadd(DAY, -(dayofyear("root".tradeDate) - 1), "root".tradeDate)) = DATE\'2017-04-01\'', + $result->sqlRemoveFormatting() + ); } @@ -91,7 +112,11 @@ function <> meta::relational::tests::projection::filter::dates::first function <> meta::relational::tests::projection::filter::dates::firstDay::testFirstDayOfYear():Boolean[1] { let result = execute(|Trade.all()->filter(d | $d.date->firstDayOfYear() == %2017-01-01)->project(x | $x.date, 'date'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "root".tradeDate as "date" from tradeTable as "root" where dateadd(DAY, -(dayofyear("root".tradeDate) - 1), "root".tradeDate) = \'2017-01-01\'', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".tradeDate as "date" from tradeTable as "root" where dateadd(DAY, -(dayofyear("root".tradeDate) - 1), "root".tradeDate) = \'2017-01-01\'', + 'select "root".tradeDate as "date" from tradeTable as "root" where dateadd(DAY, -(dayofyear("root".tradeDate) - 1), "root".tradeDate) = DATE\'2017-01-01\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::projection::filter::dates::recent::testMostRecentDayOfWeek():Boolean[1] @@ -113,7 +138,11 @@ function <> meta::relational::tests::projection::filter::dates::recen let result = execute(|Trade.all()->filter(d | $d.date == mostRecentDayOfWeek(%2014-12-04, DayOfWeek.Monday))->project(x | $x.date, 'date'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values.rows, 3); assertSameElements([%2014-12-01,%2014-12-01,%2014-12-01], $result.values.rows.values); - assertEquals('select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = dateadd(DAY, case when 2 - DAY_OF_WEEK(\'2014-12-04\') > 0 then 2 - DAY_OF_WEEK(\'2014-12-04\') - 7 else 2 - DAY_OF_WEEK(\'2014-12-04\') end, \'2014-12-04\')', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = dateadd(DAY, case when 2 - DAY_OF_WEEK(\'2014-12-04\') > 0 then 2 - DAY_OF_WEEK(\'2014-12-04\') - 7 else 2 - DAY_OF_WEEK(\'2014-12-04\') end, \'2014-12-04\')', + 'select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = dateadd(DAY, case when 2 - DAY_OF_WEEK(DATE\'2014-12-04\') > 0 then 2 - DAY_OF_WEEK(DATE\'2014-12-04\') - 7 else 2 - DAY_OF_WEEK(DATE\'2014-12-04\') end, DATE\'2014-12-04\')', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::projection::filter::dates::recent::testPreviousDayOfWeekWithDate():Boolean[1] @@ -121,7 +150,11 @@ function <> meta::relational::tests::projection::filter::dates::recen let result = execute(|Trade.all()->filter(d | $d.date == previousDayOfWeek(%2014-12-08, DayOfWeek.Monday))->project(x | $x.date, 'date'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values.rows, 3); assertSameElements([%2014-12-01,%2014-12-01,%2014-12-01], $result.values.rows.values); - assertEquals('select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = dateadd(DAY, case when 2 - DAY_OF_WEEK(\'2014-12-08\') >= 0 then 2 - DAY_OF_WEEK(\'2014-12-08\') - 7 else 2 - DAY_OF_WEEK(\'2014-12-08\') end, \'2014-12-08\')', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = dateadd(DAY, case when 2 - DAY_OF_WEEK(\'2014-12-08\') >= 0 then 2 - DAY_OF_WEEK(\'2014-12-08\') - 7 else 2 - DAY_OF_WEEK(\'2014-12-08\') end, \'2014-12-08\')', + 'select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = dateadd(DAY, case when 2 - DAY_OF_WEEK(DATE\'2014-12-08\') >= 0 then 2 - DAY_OF_WEEK(DATE\'2014-12-08\') - 7 else 2 - DAY_OF_WEEK(DATE\'2014-12-08\') end, DATE\'2014-12-08\')', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::projection::filter::dates::testDateWithSeconds():Boolean[1] @@ -129,5 +162,9 @@ function <> meta::relational::tests::projection::filter::dates::testD let result = execute(|Trade.all()->filter(d | $d.settlementDateTime > %2014-12-04T15:22:24)->project(x | $x.settlementDateTime, 'date'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values.rows, 3); assertSameElements([%2014-12-04T21:00:00.000000000+0000, %2014-12-05T21:00:00.000000000+0000, %2014-12-05T21:00:00.000000000+0000], $result.values.rows.values); - assertEquals('select "root".settlementDateTime as "date" from tradeTable as "root" where ("root".settlementDateTime is not null and "root".settlementDateTime > \'2014-12-04 15:22:24\')', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".settlementDateTime as "date" from tradeTable as "root" where ("root".settlementDateTime is not null and "root".settlementDateTime > \'2014-12-04 15:22:24\')', + 'select "root".settlementDateTime as "date" from tradeTable as "root" where ("root".settlementDateTime is not null and "root".settlementDateTime > TIMESTAMP\'2014-12-04 15:22:24\')', + $result->sqlRemoveFormatting() + ); } \ No newline at end of file diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testGroupWithWindowSubset.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testGroupWithWindowSubset.pure index a6fa74e9c02..ff31e7706a8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testGroupWithWindowSubset.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testGroupWithWindowSubset.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::tests::csv::*; import meta::relational::mapping::*; import meta::relational::tests::advanced::contractmoneyscenario::*; @@ -60,7 +61,11 @@ function <> meta::relational::tests::projection::testGroupByWithWindo ) , ContractMoney, testRuntime(), meta::relational::extension::relationalExtensions()); //check for base table attributes are being selected only - assertEquals( 'select "root".price as "Amount", "fx_0".rate as "Rate", sum("root".price) as "Amount-Sum", avg(1.0 * case when "currency_0".value = \'USD\' then "root".price else ("root".price * "fx_0".rate) end) as "Rate-Average" from Contract as "root" left outer join Currency as "currency_0" on ("root".id = "currency_0".contractId) left outer join FX as "fx_0" on ("root".currency = "fx_0".currency and ("fx_0".date = \'2003-10-10\' and "fx_0".tenor = 1)) group by "Amount","Rate"', $results2->sqlRemoveFormatting() ); + assertEqualsH2Compatible( + 'select "root".price as "Amount", "fx_0".rate as "Rate", sum("root".price) as "Amount-Sum", avg(1.0 * case when "currency_0".value = \'USD\' then "root".price else ("root".price * "fx_0".rate) end) as "Rate-Average" from Contract as "root" left outer join Currency as "currency_0" on ("root".id = "currency_0".contractId) left outer join FX as "fx_0" on ("root".currency = "fx_0".currency and ("fx_0".date = \'2003-10-10\' and "fx_0".tenor = 1)) group by "Amount","Rate"', + 'select "root".price as "Amount", "fx_0".rate as "Rate", sum("root".price) as "Amount-Sum", avg(1.0 * case when "currency_0".value = \'USD\' then "root".price else ("root".price * "fx_0".rate) end) as "Rate-Average" from Contract as "root" left outer join Currency as "currency_0" on ("root".id = "currency_0".contractId) left outer join FX as "fx_0" on ("root".currency = "fx_0".currency and ("fx_0".date = DATE\'2003-10-10\' and "fx_0".tenor = 1)) group by "Amount","Rate"', + $results2->sqlRemoveFormatting() + ); assertEquals( 'Amount | Rate | Amount-Sum | Rate-Average',$results2.values.columns->map(r|$r.name->makeString(','))->makeString(' | ')->cast(@String) ); @@ -82,7 +87,11 @@ function <> meta::relational::tests::projection::testGroupByWithWindo ) , ContractMoney, testRuntime(), meta::relational::extension::relationalExtensions()); //check for attributes that are in different order than the input parmeters - assertEquals( 'select "fx_0".rate as "Rate", "root".price as "Amount", avg(1.0 * case when "currency_0".value = \'USD\' then "root".price else ("root".price * "fx_0".rate) end) as "Rate-Average", sum("root".price) as "Amount-Sum" from Contract as "root" left outer join Currency as "currency_0" on ("root".id = "currency_0".contractId) left outer join FX as "fx_0" on ("root".currency = "fx_0".currency and ("fx_0".date = \'2003-10-10\' and "fx_0".tenor = 1)) group by "Rate","Amount"', $results3->sqlRemoveFormatting() ); + assertEqualsH2Compatible( + 'select "fx_0".rate as "Rate", "root".price as "Amount", avg(1.0 * case when "currency_0".value = \'USD\' then "root".price else ("root".price * "fx_0".rate) end) as "Rate-Average", sum("root".price) as "Amount-Sum" from Contract as "root" left outer join Currency as "currency_0" on ("root".id = "currency_0".contractId) left outer join FX as "fx_0" on ("root".currency = "fx_0".currency and ("fx_0".date = \'2003-10-10\' and "fx_0".tenor = 1)) group by "Rate","Amount"', + 'select "fx_0".rate as "Rate", "root".price as "Amount", avg(1.0 * case when "currency_0".value = \'USD\' then "root".price else ("root".price * "fx_0".rate) end) as "Rate-Average", sum("root".price) as "Amount-Sum" from Contract as "root" left outer join Currency as "currency_0" on ("root".id = "currency_0".contractId) left outer join FX as "fx_0" on ("root".currency = "fx_0".currency and ("fx_0".date = DATE\'2003-10-10\' and "fx_0".tenor = 1)) group by "Rate","Amount"', + $results3->sqlRemoveFormatting() + ); assertEquals( $results.values.rows->filter ( x| $x.getFloat('Amount-Sum') == 10.0 && $x.getFloat('Amount') == 5.0 )->size() , 1 ); assertEquals( $results.values.rows->filter ( x| $x.getFloat('Amount-Sum') == 5.75 && $x.getFloat('Amount')== 5.75 )->size() , 1 ); assertEquals( 'Rate | Amount | Rate-Average | Amount-Sum',$results3.values.columns->map(r|$r.name->makeString(','))->makeString(' | ')->cast(@String) ); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testIn.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testIn.pure index f8b0bd493fb..19c91859b82 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testIn.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testIn.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::tests::model::simple::*; import meta::relational::mapping::*; import meta::relational::tests::*; @@ -186,7 +187,11 @@ function <> meta::relational::tests::projection::filter::in::testInWi assertSize($result.values.rows, 1); println($result.values.rows.values); assertSameElements([false, '4'], $result.values.rows.values); - assertEquals('select "root".ID as "id", case when "root".active = \'Y\' then \'true\' else \'false\' end as "active" from interactionTable as "root" where (case when "root".active = \'Y\' then \'true\' else \'false\' end in (\'false\', \'something\') and "root".ID = 4)', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".ID as "id", case when "root".active = \'Y\' then \'true\' else \'false\' end as "active" from interactionTable as "root" where (case when "root".active = \'Y\' then \'true\' else \'false\' end in (\'false\', \'something\') and "root".ID = 4)', + 'select "root".ID as "id", cast(case when "root".active = \'Y\' then \'true\' else \'false\' end as boolean) as "active" from interactionTable as "root" where (case when "root".active = \'Y\' then \'true\' else \'false\' end in (\'false\', \'something\') and "root".ID = 4)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::projection::filter::in::testQualifierWithInThroughJoin():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testCalculatingDistance.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testCalculatingDistance.pure index 45b05d27f7f..91237ca7e9a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testCalculatingDistance.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testCalculatingDistance.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::mapping::*; import meta::pure::runtime::*; import meta::relational::runtime::*; @@ -31,7 +32,11 @@ function <> meta::relational::tests::functions::di let result = execute(| PointOfInterest.all()->filter(f| distance($f.location, $london.location) < 350), testDistanceMapping, testDistanceRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 2); assertSameElements(['Eiffel Tower', 'Royal Observatory Greenwich'], $result.values.name); - assertEquals('select "root".ID as "pk_0", "root".name as "name" from coordinatesTable as "root" where (6371.0 * (2.0 * atan2(sqrt((power(sin(((1.0 * (((1.0 * (51.507356 * 3.141592653589793)) / 180) - ((1.0 * ("root".latitude * 3.141592653589793)) / 180))) / 2)), 2) + (cos(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * cos(((1.0 * (51.507356 * 3.141592653589793)) / 180)) * power(sin(((1.0 * (((1.0 * (-0.127706 * 3.141592653589793)) / 180) - ((1.0 * ("root".longitude * 3.141592653589793)) / 180))) / 2)), 2)))),sqrt((1 - (power(sin(((1.0 * (((1.0 * (51.507356 * 3.141592653589793)) / 180) - ((1.0 * ("root".latitude * 3.141592653589793)) / 180))) / 2)), 2) + (cos(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * cos(((1.0 * (51.507356 * 3.141592653589793)) / 180)) * power(sin(((1.0 * (((1.0 * (-0.127706 * 3.141592653589793)) / 180) - ((1.0 * ("root".longitude * 3.141592653589793)) / 180))) / 2)), 2)))))))) < 350', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".ID as "pk_0", "root".name as "name" from coordinatesTable as "root" where (6371.0 * (2.0 * atan2(sqrt((power(sin(((1.0 * (((1.0 * (51.507356 * 3.141592653589793)) / 180) - ((1.0 * ("root".latitude * 3.141592653589793)) / 180))) / 2)), 2) + (cos(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * cos(((1.0 * (51.507356 * 3.141592653589793)) / 180)) * power(sin(((1.0 * (((1.0 * (-0.127706 * 3.141592653589793)) / 180) - ((1.0 * ("root".longitude * 3.141592653589793)) / 180))) / 2)), 2)))),sqrt((1 - (power(sin(((1.0 * (((1.0 * (51.507356 * 3.141592653589793)) / 180) - ((1.0 * ("root".latitude * 3.141592653589793)) / 180))) / 2)), 2) + (cos(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * cos(((1.0 * (51.507356 * 3.141592653589793)) / 180)) * power(sin(((1.0 * (((1.0 * (-0.127706 * 3.141592653589793)) / 180) - ((1.0 * ("root".longitude * 3.141592653589793)) / 180))) / 2)), 2)))))))) < 350', + 'select "root".ID as "pk_0", "root".name as "name" from coordinatesTable as "root" where (CAST(6371.0 AS FLOAT) * (CAST(2.0 AS FLOAT) * atan2(sqrt((power(sin(((1.0 * (((1.0 * (CAST(51.507356 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180) - ((1.0 * ("root".latitude * CAST(3.141592653589793 AS FLOAT))) / 180))) / 2)), 2) + (cos(((1.0 * ("root".latitude * CAST(3.141592653589793 AS FLOAT))) / 180)) * cos(((1.0 * (CAST(51.507356 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180)) * power(sin(((1.0 * (((1.0 * (CAST(-0.127706 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180) - ((1.0 * ("root".longitude * CAST(3.141592653589793 AS FLOAT))) / 180))) / 2)), 2)))),sqrt((1 - (power(sin(((1.0 * (((1.0 * (CAST(51.507356 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180) - ((1.0 * ("root".latitude * CAST(3.141592653589793 AS FLOAT))) / 180))) / 2)), 2) + (cos(((1.0 * ("root".latitude * CAST(3.141592653589793 AS FLOAT))) / 180)) * cos(((1.0 * (CAST(51.507356 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180)) * power(sin(((1.0 * (((1.0 * (CAST(-0.127706 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180) - ((1.0 * ("root".longitude * CAST(3.141592653589793 AS FLOAT))) / 180))) / 2)), 2)))))))) < 350', + $result->sqlRemoveFormatting() + ); } // Alloy exclusion reason: 10. Tricky usage of variables @@ -41,7 +46,11 @@ function <> meta::relational::tests::functions::di let result = execute(| PointOfInterest.all()->filter(f| distance($f.location, $london.location) > 15000), testDistanceMapping, testDistanceRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 1); assertSameElements(['Sydney Opera House'], $result.values.name); - assertEquals('select "root".ID as "pk_0", "root".name as "name" from coordinatesTable as "root" where (6371.0 * (2.0 * atan2(sqrt((power(sin(((1.0 * (((1.0 * (51.507356 * 3.141592653589793)) / 180) - ((1.0 * ("root".latitude * 3.141592653589793)) / 180))) / 2)), 2) + (cos(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * cos(((1.0 * (51.507356 * 3.141592653589793)) / 180)) * power(sin(((1.0 * (((1.0 * (-0.127706 * 3.141592653589793)) / 180) - ((1.0 * ("root".longitude * 3.141592653589793)) / 180))) / 2)), 2)))),sqrt((1 - (power(sin(((1.0 * (((1.0 * (51.507356 * 3.141592653589793)) / 180) - ((1.0 * ("root".latitude * 3.141592653589793)) / 180))) / 2)), 2) + (cos(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * cos(((1.0 * (51.507356 * 3.141592653589793)) / 180)) * power(sin(((1.0 * (((1.0 * (-0.127706 * 3.141592653589793)) / 180) - ((1.0 * ("root".longitude * 3.141592653589793)) / 180))) / 2)), 2)))))))) > 15000', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".ID as "pk_0", "root".name as "name" from coordinatesTable as "root" where (6371.0 * (2.0 * atan2(sqrt((power(sin(((1.0 * (((1.0 * (51.507356 * 3.141592653589793)) / 180) - ((1.0 * ("root".latitude * 3.141592653589793)) / 180))) / 2)), 2) + (cos(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * cos(((1.0 * (51.507356 * 3.141592653589793)) / 180)) * power(sin(((1.0 * (((1.0 * (-0.127706 * 3.141592653589793)) / 180) - ((1.0 * ("root".longitude * 3.141592653589793)) / 180))) / 2)), 2)))),sqrt((1 - (power(sin(((1.0 * (((1.0 * (51.507356 * 3.141592653589793)) / 180) - ((1.0 * ("root".latitude * 3.141592653589793)) / 180))) / 2)), 2) + (cos(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * cos(((1.0 * (51.507356 * 3.141592653589793)) / 180)) * power(sin(((1.0 * (((1.0 * (-0.127706 * 3.141592653589793)) / 180) - ((1.0 * ("root".longitude * 3.141592653589793)) / 180))) / 2)), 2)))))))) > 15000', + 'select "root".ID as "pk_0", "root".name as "name" from coordinatesTable as "root" where (CAST(6371.0 AS FLOAT) * (CAST(2.0 AS FLOAT) * atan2(sqrt((power(sin(((1.0 * (((1.0 * (CAST(51.507356 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180) - ((1.0 * ("root".latitude * CAST(3.141592653589793 AS FLOAT))) / 180))) / 2)), 2) + (cos(((1.0 * ("root".latitude * CAST(3.141592653589793 AS FLOAT))) / 180)) * cos(((1.0 * (CAST(51.507356 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180)) * power(sin(((1.0 * (((1.0 * (CAST(-0.127706 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180) - ((1.0 * ("root".longitude * CAST(3.141592653589793 AS FLOAT))) / 180))) / 2)), 2)))),sqrt((1 - (power(sin(((1.0 * (((1.0 * (CAST(51.507356 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180) - ((1.0 * ("root".latitude * CAST(3.141592653589793 AS FLOAT))) / 180))) / 2)), 2) + (cos(((1.0 * ("root".latitude * CAST(3.141592653589793 AS FLOAT))) / 180)) * cos(((1.0 * (CAST(51.507356 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180)) * power(sin(((1.0 * (((1.0 * (CAST(-0.127706 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180) - ((1.0 * ("root".longitude * CAST(3.141592653589793 AS FLOAT))) / 180))) / 2)), 2)))))))) > 15000', + $result->sqlRemoveFormatting() + ); } // Alloy exclusion reason: 10. Tricky usage of variables @@ -51,7 +60,11 @@ function <> meta::relational::tests::functions::di let result = execute(| PointOfInterest.all()->filter(f| distance($f.location, $london.location) < 9.5), testDistanceMapping, testDistanceRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 1); assertSameElements(['Royal Observatory Greenwich'], $result.values.name); - assertEquals('select "root".ID as "pk_0", "root".name as "name" from coordinatesTable as "root" where (6371.0 * (2.0 * atan2(sqrt((power(sin(((1.0 * (((1.0 * (51.507356 * 3.141592653589793)) / 180) - ((1.0 * ("root".latitude * 3.141592653589793)) / 180))) / 2)), 2) + (cos(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * cos(((1.0 * (51.507356 * 3.141592653589793)) / 180)) * power(sin(((1.0 * (((1.0 * (-0.127706 * 3.141592653589793)) / 180) - ((1.0 * ("root".longitude * 3.141592653589793)) / 180))) / 2)), 2)))),sqrt((1 - (power(sin(((1.0 * (((1.0 * (51.507356 * 3.141592653589793)) / 180) - ((1.0 * ("root".latitude * 3.141592653589793)) / 180))) / 2)), 2) + (cos(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * cos(((1.0 * (51.507356 * 3.141592653589793)) / 180)) * power(sin(((1.0 * (((1.0 * (-0.127706 * 3.141592653589793)) / 180) - ((1.0 * ("root".longitude * 3.141592653589793)) / 180))) / 2)), 2)))))))) < 9.5', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".ID as "pk_0", "root".name as "name" from coordinatesTable as "root" where (6371.0 * (2.0 * atan2(sqrt((power(sin(((1.0 * (((1.0 * (51.507356 * 3.141592653589793)) / 180) - ((1.0 * ("root".latitude * 3.141592653589793)) / 180))) / 2)), 2) + (cos(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * cos(((1.0 * (51.507356 * 3.141592653589793)) / 180)) * power(sin(((1.0 * (((1.0 * (-0.127706 * 3.141592653589793)) / 180) - ((1.0 * ("root".longitude * 3.141592653589793)) / 180))) / 2)), 2)))),sqrt((1 - (power(sin(((1.0 * (((1.0 * (51.507356 * 3.141592653589793)) / 180) - ((1.0 * ("root".latitude * 3.141592653589793)) / 180))) / 2)), 2) + (cos(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * cos(((1.0 * (51.507356 * 3.141592653589793)) / 180)) * power(sin(((1.0 * (((1.0 * (-0.127706 * 3.141592653589793)) / 180) - ((1.0 * ("root".longitude * 3.141592653589793)) / 180))) / 2)), 2)))))))) < 9.5', + 'select "root".ID as "pk_0", "root".name as "name" from coordinatesTable as "root" where (CAST(6371.0 AS FLOAT) * (CAST(2.0 AS FLOAT) * atan2(sqrt((power(sin(((1.0 * (((1.0 * (CAST(51.507356 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180) - ((1.0 * ("root".latitude * CAST(3.141592653589793 AS FLOAT))) / 180))) / 2)), 2) + (cos(((1.0 * ("root".latitude * CAST(3.141592653589793 AS FLOAT))) / 180)) * cos(((1.0 * (CAST(51.507356 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180)) * power(sin(((1.0 * (((1.0 * (CAST(-0.127706 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180) - ((1.0 * ("root".longitude * CAST(3.141592653589793 AS FLOAT))) / 180))) / 2)), 2)))),sqrt((1 - (power(sin(((1.0 * (((1.0 * (CAST(51.507356 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180) - ((1.0 * ("root".latitude * CAST(3.141592653589793 AS FLOAT))) / 180))) / 2)), 2) + (cos(((1.0 * ("root".latitude * CAST(3.141592653589793 AS FLOAT))) / 180)) * cos(((1.0 * (CAST(51.507356 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180)) * power(sin(((1.0 * (((1.0 * (CAST(-0.127706 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180) - ((1.0 * ("root".longitude * CAST(3.141592653589793 AS FLOAT))) / 180))) / 2)), 2)))))))) < CAST(9.5 AS FLOAT)', + $result->sqlRemoveFormatting() + ); } // Alloy exclusion reason: 10. Tricky usage of variables @@ -81,7 +94,11 @@ function <> meta::relational::tests::functions::di assertEquals('Royal Observatory Greenwich', $distanceResult->at(5).values->at(0)); assertEqWithinTolerance(9.473395, $distanceResult->at(5).values->at(1)->cast(@Number), 0.000001); - assertEquals('select "root".name as "name", (6371.0 * (2.0 * atan2(sqrt((power(sin(((1.0 * (((1.0 * (51.507356 * 3.141592653589793)) / 180) - ((1.0 * ("root".latitude * 3.141592653589793)) / 180))) / 2)), 2) + (cos(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * cos(((1.0 * (51.507356 * 3.141592653589793)) / 180)) * power(sin(((1.0 * (((1.0 * (-0.127706 * 3.141592653589793)) / 180) - ((1.0 * ("root".longitude * 3.141592653589793)) / 180))) / 2)), 2)))),sqrt((1 - (power(sin(((1.0 * (((1.0 * (51.507356 * 3.141592653589793)) / 180) - ((1.0 * ("root".latitude * 3.141592653589793)) / 180))) / 2)), 2) + (cos(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * cos(((1.0 * (51.507356 * 3.141592653589793)) / 180)) * power(sin(((1.0 * (((1.0 * (-0.127706 * 3.141592653589793)) / 180) - ((1.0 * ("root".longitude * 3.141592653589793)) / 180))) / 2)), 2)))))))) as "distance" from coordinatesTable as "root"', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".name as "name", (6371.0 * (2.0 * atan2(sqrt((power(sin(((1.0 * (((1.0 * (51.507356 * 3.141592653589793)) / 180) - ((1.0 * ("root".latitude * 3.141592653589793)) / 180))) / 2)), 2) + (cos(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * cos(((1.0 * (51.507356 * 3.141592653589793)) / 180)) * power(sin(((1.0 * (((1.0 * (-0.127706 * 3.141592653589793)) / 180) - ((1.0 * ("root".longitude * 3.141592653589793)) / 180))) / 2)), 2)))),sqrt((1 - (power(sin(((1.0 * (((1.0 * (51.507356 * 3.141592653589793)) / 180) - ((1.0 * ("root".latitude * 3.141592653589793)) / 180))) / 2)), 2) + (cos(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * cos(((1.0 * (51.507356 * 3.141592653589793)) / 180)) * power(sin(((1.0 * (((1.0 * (-0.127706 * 3.141592653589793)) / 180) - ((1.0 * ("root".longitude * 3.141592653589793)) / 180))) / 2)), 2)))))))) as "distance" from coordinatesTable as "root"', + 'select "root".name as "name", (CAST(6371.0 AS FLOAT) * (CAST(2.0 AS FLOAT) * atan2(sqrt((power(sin(((1.0 * (((1.0 * (CAST(51.507356 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180) - ((1.0 * ("root".latitude * CAST(3.141592653589793 AS FLOAT))) / 180))) / 2)), 2) + (cos(((1.0 * ("root".latitude * CAST(3.141592653589793 AS FLOAT))) / 180)) * cos(((1.0 * (CAST(51.507356 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180)) * power(sin(((1.0 * (((1.0 * (CAST(-0.127706 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180) - ((1.0 * ("root".longitude * CAST(3.141592653589793 AS FLOAT))) / 180))) / 2)), 2)))),sqrt((1 - (power(sin(((1.0 * (((1.0 * (CAST(51.507356 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180) - ((1.0 * ("root".latitude * CAST(3.141592653589793 AS FLOAT))) / 180))) / 2)), 2) + (cos(((1.0 * ("root".latitude * CAST(3.141592653589793 AS FLOAT))) / 180)) * cos(((1.0 * (CAST(51.507356 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180)) * power(sin(((1.0 * (((1.0 * (CAST(-0.127706 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180) - ((1.0 * ("root".longitude * CAST(3.141592653589793 AS FLOAT))) / 180))) / 2)), 2)))))))) as "distance" from coordinatesTable as "root"', + $result->sqlRemoveFormatting() + ); } // Alloy exclusion reason: 10. Tricky usage of variables @@ -91,7 +108,11 @@ function <> meta::relational::tests::functions::di let result = execute(| PointOfInterest.all()->filter(f| distanceSphericalLawOfCosines($f.location, $london.location) < 350), testDistanceMapping, testDistanceRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 2); assertSameElements(['Eiffel Tower', 'Royal Observatory Greenwich'], $result.values.name); - assertEquals('select "root".ID as "pk_0", "root".name as "name" from coordinatesTable as "root" where (6371.0 * acos(((sin(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * sin(((1.0 * (51.507356 * 3.141592653589793)) / 180))) + (cos(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * cos(((1.0 * (51.507356 * 3.141592653589793)) / 180)) * cos((((1.0 * (-0.127706 * 3.141592653589793)) / 180) - ((1.0 * ("root".longitude * 3.141592653589793)) / 180))))))) < 350', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".ID as "pk_0", "root".name as "name" from coordinatesTable as "root" where (6371.0 * acos(((sin(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * sin(((1.0 * (51.507356 * 3.141592653589793)) / 180))) + (cos(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * cos(((1.0 * (51.507356 * 3.141592653589793)) / 180)) * cos((((1.0 * (-0.127706 * 3.141592653589793)) / 180) - ((1.0 * ("root".longitude * 3.141592653589793)) / 180))))))) < 350', + 'select "root".ID as "pk_0", "root".name as "name" from coordinatesTable as "root" where (CAST(6371.0 AS FLOAT) * acos(((sin(((1.0 * ("root".latitude * CAST(3.141592653589793 AS FLOAT))) / 180)) * sin(((1.0 * (CAST(51.507356 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180))) + (cos(((1.0 * ("root".latitude * CAST(3.141592653589793 AS FLOAT))) / 180)) * cos(((1.0 * (CAST(51.507356 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180)) * cos((((1.0 * (CAST(-0.127706 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180) - ((1.0 * ("root".longitude * CAST(3.141592653589793 AS FLOAT))) / 180))))))) < 350', + $result->sqlRemoveFormatting() + ); } // Alloy exclusion reason: 10. Tricky usage of variables @@ -101,7 +122,11 @@ function <> meta::relational::tests::functions::di let result = execute(| PointOfInterest.all()->filter(f| distanceSphericalLawOfCosines($f.location, $london.location) > 15000), testDistanceMapping, testDistanceRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 1); assertSameElements(['Sydney Opera House'], $result.values.name); - assertEquals('select "root".ID as "pk_0", "root".name as "name" from coordinatesTable as "root" where (6371.0 * acos(((sin(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * sin(((1.0 * (51.507356 * 3.141592653589793)) / 180))) + (cos(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * cos(((1.0 * (51.507356 * 3.141592653589793)) / 180)) * cos((((1.0 * (-0.127706 * 3.141592653589793)) / 180) - ((1.0 * ("root".longitude * 3.141592653589793)) / 180))))))) > 15000', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".ID as "pk_0", "root".name as "name" from coordinatesTable as "root" where (6371.0 * acos(((sin(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * sin(((1.0 * (51.507356 * 3.141592653589793)) / 180))) + (cos(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * cos(((1.0 * (51.507356 * 3.141592653589793)) / 180)) * cos((((1.0 * (-0.127706 * 3.141592653589793)) / 180) - ((1.0 * ("root".longitude * 3.141592653589793)) / 180))))))) > 15000', + 'select "root".ID as "pk_0", "root".name as "name" from coordinatesTable as "root" where (CAST(6371.0 AS FLOAT) * acos(((sin(((1.0 * ("root".latitude * CAST(3.141592653589793 AS FLOAT))) / 180)) * sin(((1.0 * (CAST(51.507356 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180))) + (cos(((1.0 * ("root".latitude * CAST(3.141592653589793 AS FLOAT))) / 180)) * cos(((1.0 * (CAST(51.507356 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180)) * cos((((1.0 * (CAST(-0.127706 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180) - ((1.0 * ("root".longitude * CAST(3.141592653589793 AS FLOAT))) / 180))))))) > 15000', + $result->sqlRemoveFormatting() + ); } // Alloy exclusion reason: 10. Tricky usage of variables @@ -111,7 +136,11 @@ function <> meta::relational::tests::functions::di let result = execute(| PointOfInterest.all()->filter(f| distanceSphericalLawOfCosines($f.location, $london.location) < 9.5), testDistanceMapping, testDistanceRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 1); assertSameElements(['Royal Observatory Greenwich'], $result.values.name); - assertEquals('select "root".ID as "pk_0", "root".name as "name" from coordinatesTable as "root" where (6371.0 * acos(((sin(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * sin(((1.0 * (51.507356 * 3.141592653589793)) / 180))) + (cos(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * cos(((1.0 * (51.507356 * 3.141592653589793)) / 180)) * cos((((1.0 * (-0.127706 * 3.141592653589793)) / 180) - ((1.0 * ("root".longitude * 3.141592653589793)) / 180))))))) < 9.5', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".ID as "pk_0", "root".name as "name" from coordinatesTable as "root" where (6371.0 * acos(((sin(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * sin(((1.0 * (51.507356 * 3.141592653589793)) / 180))) + (cos(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * cos(((1.0 * (51.507356 * 3.141592653589793)) / 180)) * cos((((1.0 * (-0.127706 * 3.141592653589793)) / 180) - ((1.0 * ("root".longitude * 3.141592653589793)) / 180))))))) < 9.5', + 'select "root".ID as "pk_0", "root".name as "name" from coordinatesTable as "root" where (CAST(6371.0 AS FLOAT) * acos(((sin(((1.0 * ("root".latitude * CAST(3.141592653589793 AS FLOAT))) / 180)) * sin(((1.0 * (CAST(51.507356 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180))) + (cos(((1.0 * ("root".latitude * CAST(3.141592653589793 AS FLOAT))) / 180)) * cos(((1.0 * (CAST(51.507356 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180)) * cos((((1.0 * (CAST(-0.127706 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180) - ((1.0 * ("root".longitude * CAST(3.141592653589793 AS FLOAT))) / 180))))))) < CAST(9.5 AS FLOAT)', + $result->sqlRemoveFormatting() + ); } // Alloy exclusion reason: 10. Tricky usage of variables @@ -141,8 +170,11 @@ function <> meta::relational::tests::functions::di assertEquals('Royal Observatory Greenwich', $distanceResult->at(5).values->at(0)); assertEqWithinTolerance(9.473395, $distanceResult->at(5).values->at(1)->cast(@Number), 0.000001); - assertEquals('select "root".name as "name", (6371.0 * acos(((sin(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * sin(((1.0 * (51.507356 * 3.141592653589793)) / 180))) + (cos(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * cos(((1.0 * (51.507356 * 3.141592653589793)) / 180)) * cos((((1.0 * (-0.127706 * 3.141592653589793)) / 180) - ((1.0 * ("root".longitude * 3.141592653589793)) / 180))))))) as "distance" from coordinatesTable as "root"', $result->sqlRemoveFormatting()); - + assertEqualsH2Compatible( + 'select "root".name as "name", (6371.0 * acos(((sin(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * sin(((1.0 * (51.507356 * 3.141592653589793)) / 180))) + (cos(((1.0 * ("root".latitude * 3.141592653589793)) / 180)) * cos(((1.0 * (51.507356 * 3.141592653589793)) / 180)) * cos((((1.0 * (-0.127706 * 3.141592653589793)) / 180) - ((1.0 * ("root".longitude * 3.141592653589793)) / 180))))))) as "distance" from coordinatesTable as "root"', + 'select "root".name as "name", (CAST(6371.0 AS FLOAT) * acos(((sin(((1.0 * ("root".latitude * CAST(3.141592653589793 AS FLOAT))) / 180)) * sin(((1.0 * (CAST(51.507356 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180))) + (cos(((1.0 * ("root".latitude * CAST(3.141592653589793 AS FLOAT))) / 180)) * cos(((1.0 * (CAST(51.507356 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180)) * cos((((1.0 * (CAST(-0.127706 AS FLOAT) * CAST(3.141592653589793 AS FLOAT))) / 180) - ((1.0 * ("root".longitude * CAST(3.141592653589793 AS FLOAT))) / 180))))))) as "distance" from coordinatesTable as "root"', + $result->sqlRemoveFormatting() + ); } function meta::relational::tests::functions::distance::testDisplayMapFromDB():GeographicCoordinate[*] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testFilters.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testFilters.pure index 602e373d4d8..8782d7b1a16 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testFilters.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testFilters.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::tests::query::filter::equal::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; @@ -142,7 +143,11 @@ function <> meta::relational::tests::query::filter::greaterThan::test let result = execute(|Account.all()->filter(a|$a.createDate > %2013-12-01), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 1); assertSameElements(%2013-12-02, $result.values->at(0).createDate); - assertEquals('select "root".ID as "pk_0", "root".name as "name", "root".createDate as "createDate" from accountTable as "root" where "root".createDate > \'2013-12-01\'', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".ID as "pk_0", "root".name as "name", "root".createDate as "createDate" from accountTable as "root" where "root".createDate > \'2013-12-01\'', + 'select "root".ID as "pk_0", "root".name as "name", "root".createDate as "createDate" from accountTable as "root" where "root".createDate > DATE\'2013-12-01\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::query::filter::greaterThanEqual::testGreaterThanEqual():Boolean[1] @@ -174,7 +179,11 @@ function <> meta::relational::tests::query::filter::lessThan::testLes let result = execute(|Trade.all()->filter(t|(((($t.quantity - 5) * -3.0) + 4) / 2) > -45), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 7); assertEquals([25.0, 11.0, 23.0, 32.0, 27.0, 22.0, 5.0], $result.values->map(t|$t.quantity)); - assertEquals('select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where ((1.0 * ((("root".quantity - 5) * -3.0) + 4)) / 2) > -45', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where ((1.0 * ((("root".quantity - 5) * -3.0) + 4)) / 2) > -45', + 'select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where ((1.0 * ((("root".quantity - 5) * -CAST(3.0 AS FLOAT)) + 4)) / 2) > -45', + $result->sqlRemoveFormatting() + ); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testMap.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testMap.pure index 5f16c9702ac..a3ddba8f1e6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testMap.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testMap.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::tests::mapping::filter::model::domain::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; @@ -279,7 +280,11 @@ function <> meta::relational::tests::map::testSubAggregationUsingIf() let result = execute(|Firm.all()->map(f|$f.employees->map(e|if($e.lastName == 'Hill',|$e.age->toOne()/2,|1.0))->average()), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 4); assertSameElements([1.0, 1.0, 2.25, 16.0], $result.values); - assertEquals('select "firmtable_1".aggCol from firmTable as "root" left outer join (select "firmtable_1".ID as ID, avg(1.0 * case when "persontable_0".LASTNAME = \'Hill\' then ((1.0 * "persontable_0".AGE) / 2) else 1.0 end) as aggCol from firmTable as "firmtable_1" left outer join personTable as "persontable_0" on ("firmtable_1".ID = "persontable_0".FIRMID) group by "firmtable_1".ID) as "firmtable_1" on ("root".ID = "firmtable_1".ID)', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "firmtable_1".aggCol from firmTable as "root" left outer join (select "firmtable_1".ID as ID, avg(1.0 * case when "persontable_0".LASTNAME = \'Hill\' then ((1.0 * "persontable_0".AGE) / 2) else 1.0 end) as aggCol from firmTable as "firmtable_1" left outer join personTable as "persontable_0" on ("firmtable_1".ID = "persontable_0".FIRMID) group by "firmtable_1".ID) as "firmtable_1" on ("root".ID = "firmtable_1".ID)', + 'select "firmtable_1".aggCol from firmTable as "root" left outer join (select "firmtable_1".ID as ID, avg(1.0 * case when "persontable_0".LASTNAME = \'Hill\' then ((1.0 * "persontable_0".AGE) / 2) else CAST(1.0 AS FLOAT) end) as aggCol from firmTable as "firmtable_1" left outer join personTable as "persontable_0" on ("firmtable_1".ID = "persontable_0".FIRMID) group by "firmtable_1".ID) as "firmtable_1" on ("root".ID = "firmtable_1".ID)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::map::testSubAggregationAverageInQualifier():Boolean[1] @@ -287,7 +292,11 @@ function <> meta::relational::tests::map::testSubAggregationAverageIn let result = execute(|Firm.all()->map(f|$f.averageEmployeesAge()), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 4); assertSameElements([39.5, 64.0, 68.0, 70.0], $result.values); - assertEquals('select ("firmtable_1".aggCol * 2.0) from firmTable as "root" left outer join (select "firmtable_1".ID as ID, avg(1.0 * "persontable_0".AGE) as aggCol from firmTable as "firmtable_1" left outer join personTable as "persontable_0" on ("firmtable_1".ID = "persontable_0".FIRMID) group by "firmtable_1".ID) as "firmtable_1" on ("root".ID = "firmtable_1".ID)', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select ("firmtable_1".aggCol * 2.0) from firmTable as "root" left outer join (select "firmtable_1".ID as ID, avg(1.0 * "persontable_0".AGE) as aggCol from firmTable as "firmtable_1" left outer join personTable as "persontable_0" on ("firmtable_1".ID = "persontable_0".FIRMID) group by "firmtable_1".ID) as "firmtable_1" on ("root".ID = "firmtable_1".ID)', + 'select ("firmtable_1".aggCol * CAST(2.0 AS FLOAT)) from firmTable as "root" left outer join (select "firmtable_1".ID as ID, avg(1.0 * "persontable_0".AGE) as aggCol from firmTable as "firmtable_1" left outer join personTable as "persontable_0" on ("firmtable_1".ID = "persontable_0".FIRMID) group by "firmtable_1".ID) as "firmtable_1" on ("root".ID = "firmtable_1".ID)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::map::testSubAggregationMaxInQualifier():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testModelGroupBy.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testModelGroupBy.pure index 3bc43a75489..076be67d4ab 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testModelGroupBy.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testModelGroupBy.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::mapping::*; import meta::relational::runtime::*; import meta::relational::functions::asserts::*; @@ -237,7 +238,11 @@ function <> meta::relational::tests::groupBy::testUsingAFunctionInThe assertEquals(['Firm X', 690.0, 'Firm C', 352.0, 'Firm A', 0.0, ^TDSNull(), 0.0], $result.values.rows.values); - assertSameSQL('select "producttable_0".NAME as "prodName", (sum(case when (("producttable_0".NAME is not null and "producttable_0".NAME like \'%X\') or ("producttable_0".NAME is not null and "producttable_0".NAME like \'%C\')) then "root".quantity else 0.0 end) * 2) as "cnt" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) group by "prodName" order by "prodName" desc', $result); + assertEqualsH2Compatible( + 'select "producttable_0".NAME as "prodName", (sum(case when (("producttable_0".NAME is not null and "producttable_0".NAME like \'%X\') or ("producttable_0".NAME is not null and "producttable_0".NAME like \'%C\')) then "root".quantity else 0.0 end) * 2) as "cnt" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) group by "prodName" order by "prodName" desc', + 'select "producttable_0".NAME as "prodName", (sum(case when (("producttable_0".NAME is not null and "producttable_0".NAME like \'%X\') or ("producttable_0".NAME is not null and "producttable_0".NAME like \'%C\')) then "root".quantity else CAST(0.0 AS FLOAT) end) * 2) as "cnt" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) group by "prodName" order by "prodName" desc', + $result->sqlRemoveFormatting() + ); } @@ -264,7 +269,11 @@ function <> meta::relational::tests::groupBy::testUsingAnAssociationI assertEquals(['Firm X', 50.0, 'Firm C', 142.0, 'Firm A', 86.0, ^TDSNull(), 0.0], $result.values.rows.values); - assertSameSQL('select "producttable_0".NAME as "prodName", (sum(case when ("accounttable_0".name is not null and "accounttable_0".name like \'Account 1%\') then "root".quantity else 0.0 end) * 2) as "cnt" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) left outer join accountTable as "accounttable_0" on ("root".accountID = "accounttable_0".ID) group by "prodName" order by "prodName" desc', $result); + assertEqualsH2Compatible( + 'select "producttable_0".NAME as "prodName", (sum(case when ("accounttable_0".name is not null and "accounttable_0".name like \'Account 1%\') then "root".quantity else 0.0 end) * 2) as "cnt" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) left outer join accountTable as "accounttable_0" on ("root".accountID = "accounttable_0".ID) group by "prodName" order by "prodName" desc', + 'select "producttable_0".NAME as "prodName", (sum(case when ("accounttable_0".name is not null and "accounttable_0".name like \'Account 1%\') then "root".quantity else CAST(0.0 AS FLOAT) end) * 2) as "cnt" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) left outer join accountTable as "accounttable_0" on ("root".accountID = "accounttable_0".ID) group by "prodName" order by "prodName" desc', + $result->sqlRemoveFormatting() + ); } @@ -509,7 +518,11 @@ function <> meta::relational::tests::groupBy::testGroupByOnRootLevelP assertSize($result.values, 1); assertEquals([%2014-12-01, 356.0], $result.values.rows.values); - assertSameSQL('select "root".tradeDate as "Date", sum("root".quantity) as "Total Quantity" from tradeTable as "root" where "root".tradeDate = \'2014-12-01\' group by "Date"', $result); + assertEqualsH2Compatible( + 'select "root".tradeDate as "Date", sum("root".quantity) as "Total Quantity" from tradeTable as "root" where "root".tradeDate = \'2014-12-01\' group by "Date"', + 'select "root".tradeDate as "Date", sum("root".quantity) as "Total Quantity" from tradeTable as "root" where "root".tradeDate = DATE\'2014-12-01\' group by "Date"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::groupBy::testSimpleJoinStrings():Boolean[1] @@ -994,11 +1007,11 @@ function <> meta::relational::tests::groupBy::testObjectLevelGroupByW , x|$x.getString('LastName'), y| $y->joinStrings(',')) ) , simpleRelationalMapping, meta::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); - - - assertEquals( 'select "persontable_0"."FirstName" as "FirstName", "persontable_0"."Case Column" as "Case Column", group_concat("LastName" separator \',\') as "Joined Last Name" from (select "root".FIRSTNAME as "FirstName", "root".LASTNAME as "LastName", "firmtable_0".LEGALNAME as "FirmName", avg(1.0 * "root".AGE) as "Average Age 1", case when avg(1.0 * "root".AGE) < 10 then 10 else (avg(1.0 * "root".AGE) * 0.9) end as "Case Column" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) group by "FirstName","LastName","FirmName" having "firmtable_0".LEGALNAME = \'Firm X\') as "persontable_0" group by "FirstName","Case Column"', $result->sqlRemoveFormatting() ); - - + assertEqualsH2Compatible( + 'select "persontable_0"."FirstName" as "FirstName", "persontable_0"."Case Column" as "Case Column", group_concat("LastName" separator \',\') as "Joined Last Name" from (select "root".FIRSTNAME as "FirstName", "root".LASTNAME as "LastName", "firmtable_0".LEGALNAME as "FirmName", avg(1.0 * "root".AGE) as "Average Age 1", case when avg(1.0 * "root".AGE) < 10 then 10 else (avg(1.0 * "root".AGE) * 0.9) end as "Case Column" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) group by "FirstName","LastName","FirmName" having "firmtable_0".LEGALNAME = \'Firm X\') as "persontable_0" group by "FirstName","Case Column"', + 'select "persontable_0"."FirstName" as "FirstName", "persontable_0"."Case Column" as "Case Column", group_concat("LastName" separator \',\') as "Joined Last Name" from (select "root".FIRSTNAME as "FirstName", "root".LASTNAME as "LastName", "firmtable_0".LEGALNAME as "FirmName", avg(1.0 * "root".AGE) as "Average Age 1", case when avg(1.0 * "root".AGE) < 10 then 10 else (avg(1.0 * "root".AGE) * CAST(0.9 AS FLOAT)) end as "Case Column" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) group by "FirstName","LastName","FirmName" having "firmtable_0".LEGALNAME = \'Firm X\') as "persontable_0" group by "FirstName","Case Column"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::groupBy::testReprocessGroupByAlias():Boolean[1] @@ -1032,7 +1045,11 @@ function <> meta::relational::tests::groupBy::testUniqueValueOnly1(): assertEquals(['Firm C', 1, 45.0], $result.values.rows.values); - assertSameSQL('select "producttable_0".NAME as "prodName", count(distinct("root".quantity)) as "count", case when count(distinct("root".quantity)) = 1 then max("root".quantity) else null end as "uniqueValue" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) where ("producttable_0".NAME = \'Firm C\' and "root".quantity = 45.0) group by "prodName"', $result); + assertEqualsH2Compatible( + 'select "producttable_0".NAME as "prodName", count(distinct("root".quantity)) as "count", case when count(distinct("root".quantity)) = 1 then max("root".quantity) else null end as "uniqueValue" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) where ("producttable_0".NAME = \'Firm C\' and "root".quantity = 45.0) group by "prodName"', + 'select "producttable_0".NAME as "prodName", count(distinct("root".quantity)) as "count", case when count(distinct("root".quantity)) = 1 then max("root".quantity) else null end as "uniqueValue" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) where ("producttable_0".NAME = \'Firm C\' and "root".quantity = CAST(45.0 AS FLOAT)) group by "prodName"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::groupBy::testUniqueValueOnly2():Boolean[1] @@ -1058,7 +1075,11 @@ function <> meta::relational::tests::groupBy::testUniqueValueOnly2(): assertEquals(['Firm C', 1, 45.0], $result.values.rows.values); - assertSameSQL('select "producttable_0".NAME as "prodName", count(distinct("root".quantity)) as "count", case when count(distinct("root".quantity)) = 1 then max("root".quantity) else -1 end as "uniqueValue" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) where ("producttable_0".NAME = \'Firm C\' and "root".quantity = 45.0) group by "prodName"', $result); + assertEqualsH2Compatible( + 'select "producttable_0".NAME as "prodName", count(distinct("root".quantity)) as "count", case when count(distinct("root".quantity)) = 1 then max("root".quantity) else -1 end as "uniqueValue" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) where ("producttable_0".NAME = \'Firm C\' and "root".quantity = 45.0) group by "prodName"', + 'select "producttable_0".NAME as "prodName", count(distinct("root".quantity)) as "count", case when count(distinct("root".quantity)) = 1 then max("root".quantity) else -1 end as "uniqueValue" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) where ("producttable_0".NAME = \'Firm C\' and "root".quantity = CAST(45.0 AS FLOAT)) group by "prodName"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::groupBy::testUniqueValueOnly3():Boolean[1] @@ -1167,7 +1188,7 @@ function <> meta::relational::tests::groupBy::testGro meta::relational::extension::relationalExtensions()); assertEquals(['Firm X|290.5|320.0|246.25', 'Firm C|44.6|38.0|44.0', 'Firm A|30.2|23.0|27.5', 'TDSNull|5.0|5.0|5.0'], $result.values.rows->map(r|$r.values->makeString('|'))); - assertSameSQL('select "producttable_0".NAME as "prodName", percentile_cont(0.9) within group (order by "root".quantity asc) as "p1", percentile_disc(0.5) within group (order by "root".quantity desc) as "p2", percentile_cont(0.75) within group (order by "root".quantity asc) as "p3" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) group by "prodName" order by "prodName" desc', $result); + assertSameSQL('select "producttable_0".NAME as "prodName", percentile_cont(CAST(0.9 AS FLOAT)) within group (order by "root".quantity asc) as "p1", percentile_disc(CAST(0.5 AS FLOAT)) within group (order by "root".quantity desc) as "p2", percentile_cont(CAST(0.75 AS FLOAT)) within group (order by "root".quantity asc) as "p3" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) group by "prodName" order by "prodName" desc', $result); } function <> meta::relational::tests::groupBy::testGroupByIsDistinct():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchMilestoning.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchMilestoning.pure index b9b0a1d93a3..80d55159d86 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchMilestoning.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchMilestoning.pure @@ -127,7 +127,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel ' (\n' + ' type = meta::pure::metamodel::type::Any\n' + ' resultColumns = [("parent_key_gen_0", INT), ("pk_0", INT), ("pk_1", VARCHAR(200)), ("name", VARCHAR(200)), ("type", VARCHAR(200)), ("k_businessDate", VARCHAR(10))]\n' + - ' sql = select distinct "temp_table_node_0_0".pk_0 as "parent_key_gen_0", "producttable_0".id as "pk_0", "producttable_0".name as "pk_1", "producttable_0".name as "name", "producttable_0".type as "type", \'2015-10-16\' as "k_businessDate" from (select * from (${temp_table_node_0}) as "root") as "temp_table_node_0_0" inner join OrderTable as "root" on ("temp_table_node_0_0".pk_0 = "root".id) left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') where "producttable_0".name is not null and "producttable_0".id is not null and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\'\n' + + ' sql = select distinct "temp_table_node_0_0".pk_0 as "parent_key_gen_0", "producttable_0".id as "pk_0", "producttable_0".name as "pk_1", "producttable_0".name as "name", "producttable_0".type as "type", \'2015-10-16\' as "k_businessDate" from (select * from (${temp_table_node_0}) as "root") as "temp_table_node_0_0" inner join OrderTable as "root" on ("temp_table_node_0_0".pk_0 = "root".id) left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-10-16\' and "producttable_0".thru_z > DATE\'2015-10-16\') where "producttable_0".name is not null and "producttable_0".id is not null and "producttable_0".from_z <= DATE\'2015-10-16\' and "producttable_0".thru_z > DATE\'2015-10-16\'\n' + ' connection = TestDatabaseConnection(type = "H2")\n' + ' )\n' + ' children = [\n' + @@ -140,7 +140,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel ' (\n' + ' type = meta::pure::metamodel::type::Any\n' + ' resultColumns = [("parent_key_gen_0", INT), ("parent_key_gen_1", VARCHAR(200)), ("node_5_result", VARCHAR(200))]\n' + - ' sql = select distinct "temp_table_node_2_0".pk_0 as "parent_key_gen_0", "temp_table_node_2_0".pk_1 as "parent_key_gen_1", "productclassificationtable_0".type as "node_5_result" from (select * from (${temp_table_node_2}) as "root") as "temp_table_node_2_0" inner join ProductTable as "root" on ("temp_table_node_2_0".pk_1 = "root".name and "temp_table_node_2_0".pk_0 = "root".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) where "productclassificationtable_0".type is not null and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\'\n' + + ' sql = select distinct "temp_table_node_2_0".pk_0 as "parent_key_gen_0", "temp_table_node_2_0".pk_1 as "parent_key_gen_1", "productclassificationtable_0".type as "node_5_result" from (select * from (${temp_table_node_2}) as "root") as "temp_table_node_2_0" inner join ProductTable as "root" on ("temp_table_node_2_0".pk_1 = "root".name and "temp_table_node_2_0".pk_0 = "root".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) where "productclassificationtable_0".type is not null and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\'\n' + ' connection = TestDatabaseConnection(type = "H2")\n' + ' )\n' + ' children = [\n' + diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testBiTemporalDateMilestoning.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testBiTemporalDateMilestoning.pure index a0037d9abc3..3ee67402503 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testBiTemporalDateMilestoning.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testBiTemporalDateMilestoning.pure @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; +import meta::relational::mapping::*; import meta::relational::functions::asserts::*; import meta::relational::tests::*; import meta::relational::tests::milestoning::*; @@ -28,7 +30,11 @@ function <> meta::relational::tests::milestoning::bitemporal::testBiT assertEquals(1, $products->size()); assertEquals(%2017-6-10, $products->at(0).processingDate); assertEquals(%2017-6-9, $products->at(0).businessDate); - assertSameSQL('select "root".id as "pk_0", "root".id as "id", \'2017-06-10\' as "k_processingDate", \'2017-06-09\' as "k_businessDate" from BiTemporalProductTable as "root" where "root".in_z <= \'2017-06-10\' and "root".out_z > \'2017-06-10\' and "root".from_z <= \'2017-06-09\' and "root".thru_z > \'2017-06-09\'',$result); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".id as "id", \'2017-06-10\' as "k_processingDate", \'2017-06-09\' as "k_businessDate" from BiTemporalProductTable as "root" where "root".in_z <= \'2017-06-10\' and "root".out_z > \'2017-06-10\' and "root".from_z <= \'2017-06-09\' and "root".thru_z > \'2017-06-09\'', + 'select "root".id as "pk_0", "root".id as "id", \'2017-06-10\' as "k_processingDate", \'2017-06-09\' as "k_businessDate" from BiTemporalProductTable as "root" where "root".in_z <= DATE\'2017-06-10\' and "root".out_z > DATE\'2017-06-10\' and "root".from_z <= DATE\'2017-06-09\' and "root".thru_z > DATE\'2017-06-09\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::bitemporal::testBiTemporalPropertyUsageInProject():Boolean[1] @@ -36,7 +42,11 @@ function <> meta::relational::tests::milestoning::bitemporal::testBiT let result = execute(|Order.all()->project(o|$o.biTemporalProduct(%2017-6-10, %2017-6-9).id, 'prodId'), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->toOne(); assertEquals( ['1', 'TDSNull'], $tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "bitemporalproducttable_0".id as "prodId" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= \'2017-06-10\' and "bitemporalproducttable_0".out_z > \'2017-06-10\' and "bitemporalproducttable_0".from_z <= \'2017-06-09\' and "bitemporalproducttable_0".thru_z > \'2017-06-09\'))', $result); + assertEqualsH2Compatible( + 'select "bitemporalproducttable_0".id as "prodId" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= \'2017-06-10\' and "bitemporalproducttable_0".out_z > \'2017-06-10\' and "bitemporalproducttable_0".from_z <= \'2017-06-09\' and "bitemporalproducttable_0".thru_z > \'2017-06-09\'))', + 'select "bitemporalproducttable_0".id as "prodId" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= DATE\'2017-06-10\' and "bitemporalproducttable_0".out_z > DATE\'2017-06-10\' and "bitemporalproducttable_0".from_z <= DATE\'2017-06-09\' and "bitemporalproducttable_0".thru_z > DATE\'2017-06-09\'))', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::bitemporal::testBiTemporalPropertyUsageInProjectPath():Boolean[1] @@ -44,7 +54,11 @@ function <> meta::relational::tests::milestoning::bitemporal::testBiT let result = execute(|Order.all()->project(#/Order/biTemporalProduct(%2017-6-10, %2017-6-9)/id#), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->toOne(); assertEquals( ['1', 'TDSNull'], $tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "bitemporalproducttable_0".id as "id" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= \'2017-06-10\' and "bitemporalproducttable_0".out_z > \'2017-06-10\' and "bitemporalproducttable_0".from_z <= \'2017-06-09\' and "bitemporalproducttable_0".thru_z > \'2017-06-09\'))', $result); + assertEqualsH2Compatible( + 'select "bitemporalproducttable_0".id as "id" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= \'2017-06-10\' and "bitemporalproducttable_0".out_z > \'2017-06-10\' and "bitemporalproducttable_0".from_z <= \'2017-06-09\' and "bitemporalproducttable_0".thru_z > \'2017-06-09\'))', + 'select "bitemporalproducttable_0".id as "id" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= DATE\'2017-06-10\' and "bitemporalproducttable_0".out_z > DATE\'2017-06-10\' and "bitemporalproducttable_0".from_z <= DATE\'2017-06-09\' and "bitemporalproducttable_0".thru_z > DATE\'2017-06-09\'))', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::bitemporal::testMultipleBiTemporalPropertyUsageInProject():Boolean[1] @@ -52,7 +66,11 @@ function <> meta::relational::tests::milestoning::bitemporal::testMul let result = execute(|Order.all()->project(o|$o.biTemporalProduct(%2017-6-10, %2017-6-9).biTemporalClassification(%2017-6-11, %2017-6-10).type, 'type'), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->toOne(); assertEquals(['STOCK', 'TDSNull'], $tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= \'2017-06-10\' and "bitemporalproducttable_0".out_z > \'2017-06-10\' and "bitemporalproducttable_0".from_z <= \'2017-06-09\' and "bitemporalproducttable_0".thru_z > \'2017-06-09\')) left outer join (select "bitemporalproductclassificationtable_1".type as type from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1" where ("bitemporalproductclassificationtable_1".in_z <= \'2017-06-11\' and "bitemporalproductclassificationtable_1".out_z > \'2017-06-11\' and "bitemporalproductclassificationtable_1".from_z <= \'2017-06-10\' and "bitemporalproductclassificationtable_1".thru_z > \'2017-06-10\')) as "bitemporalproductclassificationtable_0" on ("bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)', $result); + assertEqualsH2Compatible( + 'select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= \'2017-06-10\' and "bitemporalproducttable_0".out_z > \'2017-06-10\' and "bitemporalproducttable_0".from_z <= \'2017-06-09\' and "bitemporalproducttable_0".thru_z > \'2017-06-09\')) left outer join (select "bitemporalproductclassificationtable_1".type as type from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1" where ("bitemporalproductclassificationtable_1".in_z <= \'2017-06-11\' and "bitemporalproductclassificationtable_1".out_z > \'2017-06-11\' and "bitemporalproductclassificationtable_1".from_z <= \'2017-06-10\' and "bitemporalproductclassificationtable_1".thru_z > \'2017-06-10\')) as "bitemporalproductclassificationtable_0" on ("bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)', + 'select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= DATE\'2017-06-10\' and "bitemporalproducttable_0".out_z > DATE\'2017-06-10\' and "bitemporalproducttable_0".from_z <= DATE\'2017-06-09\' and "bitemporalproducttable_0".thru_z > DATE\'2017-06-09\')) left outer join (select "bitemporalproductclassificationtable_1".type as type from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1" where ("bitemporalproductclassificationtable_1".in_z <= DATE\'2017-06-11\' and "bitemporalproductclassificationtable_1".out_z > DATE\'2017-06-11\' and "bitemporalproductclassificationtable_1".from_z <= DATE\'2017-06-10\' and "bitemporalproductclassificationtable_1".thru_z > DATE\'2017-06-10\')) as "bitemporalproductclassificationtable_0" on ("bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::bitemporal::testMultipleBiTemporalPropertyUsageInProjectWithMilestoningInfinityNotSpecifiedInDB():Boolean[1] @@ -66,19 +84,31 @@ function <> meta::relational::tests::milestoning::bitemporal::testMul function <> meta::relational::tests::milestoning::bitemporal::testMultipleBiTemporalPropertyUsageInProjectWithMilestoningInfinitySpecifiedInDB():Boolean[1] { let result = execute(|Order.all()->project(o|$o.biTemporalProduct(%latest, %latest).biTemporalClassification(%latest, %latest).type, 'type'), latestbitemporalmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = \'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = \'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', $result); + assertEqualsH2Compatible( + 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = \'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = \'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', + 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = DATE\'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::bitemporal::testMultipleBiTemporalPropertyUsageInProjectPathWithMilestoningInfinitySpecifiedInDBPlusLatestPropagation():Boolean[1] { let result = execute(|Order.all()->project(#/Order/biTemporalProduct(%latest, %latest)/biTemporalClassification(%latest, %latest)/type#), latestbitemporalmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = \'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = \'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', $result); + assertEqualsH2Compatible( + 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = \'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = \'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', + 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = DATE\'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::bitemporal::testMultipleBiTemporalPropertyUsageInProjectWithMilestoningInfinitySpecifiedInDBPlusLatestPropagation():Boolean[1] { let result = execute(|Order.all()->project(o|$o.biTemporalProduct(%latest, %latest).biTemporalClassification.type, 'type'), latestbitemporalmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = \'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = \'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', $result); + assertEqualsH2Compatible( + 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = \'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = \'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', + 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = DATE\'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::bitemporal::testPopulationOfMilestonedThisBiTemporalDatesInProject():Boolean[1] @@ -86,10 +116,18 @@ function <> meta::relational::tests::milestoning::bitemporal::testPop let processingDate = %9999-12-31; let businessDate = %2015-10-16; let result = execute(|BiTemporalProduct.all($processingDate, $businessDate)->project([p|$p.id, p|$p.biTemporalClassificationType],['id','classificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "root".id as "id", "bitemporalproductclassificationtable_0".type as "classificationType" from BiTemporalProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= \'9999-12-31\' and "bitemporalproductclassificationtable_0".out_z > \'9999-12-31\' and "bitemporalproductclassificationtable_0".from_z <= \'2015-10-16\' and "bitemporalproductclassificationtable_0".thru_z > \'2015-10-16\')) where "root".in_z <= \'9999-12-31\' and "root".out_z > \'9999-12-31\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".id as "id", "bitemporalproductclassificationtable_0".type as "classificationType" from BiTemporalProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= \'9999-12-31\' and "bitemporalproductclassificationtable_0".out_z > \'9999-12-31\' and "bitemporalproductclassificationtable_0".from_z <= \'2015-10-16\' and "bitemporalproductclassificationtable_0".thru_z > \'2015-10-16\')) where "root".in_z <= \'9999-12-31\' and "root".out_z > \'9999-12-31\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "id", "bitemporalproductclassificationtable_0".type as "classificationType" from BiTemporalProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= DATE\'9999-12-31\' and "bitemporalproductclassificationtable_0".out_z > DATE\'9999-12-31\' and "bitemporalproductclassificationtable_0".from_z <= DATE\'2015-10-16\' and "bitemporalproductclassificationtable_0".thru_z > DATE\'2015-10-16\')) where "root".in_z <= DATE\'9999-12-31\' and "root".out_z > DATE\'9999-12-31\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); let result2 = execute(|BiTemporalProduct.all($processingDate, $businessDate)->project([p|$p.id, p|$p.biTemporalClassificationTypeWithIndirect],['id','classificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "root".id as "id", "bitemporalproductclassificationtable_0".type as "classificationType" from BiTemporalProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= \'9999-12-31\' and "bitemporalproductclassificationtable_0".out_z > \'9999-12-31\' and "bitemporalproductclassificationtable_0".from_z <= \'2015-10-16\' and "bitemporalproductclassificationtable_0".thru_z > \'2015-10-16\')) where "root".in_z <= \'9999-12-31\' and "root".out_z > \'9999-12-31\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'',$result2); + assertEqualsH2Compatible( + 'select "root".id as "id", "bitemporalproductclassificationtable_0".type as "classificationType" from BiTemporalProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= \'9999-12-31\' and "bitemporalproductclassificationtable_0".out_z > \'9999-12-31\' and "bitemporalproductclassificationtable_0".from_z <= \'2015-10-16\' and "bitemporalproductclassificationtable_0".thru_z > \'2015-10-16\')) where "root".in_z <= \'9999-12-31\' and "root".out_z > \'9999-12-31\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "id", "bitemporalproductclassificationtable_0".type as "classificationType" from BiTemporalProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= DATE\'9999-12-31\' and "bitemporalproductclassificationtable_0".out_z > DATE\'9999-12-31\' and "bitemporalproductclassificationtable_0".from_z <= DATE\'2015-10-16\' and "bitemporalproductclassificationtable_0".thru_z > DATE\'2015-10-16\')) where "root".in_z <= DATE\'9999-12-31\' and "root".out_z > DATE\'9999-12-31\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result2->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::bitemporal::testPopulationOfMilestonedThisBiTemporalDatesInProjectAgainstNonMilestonedStore():Boolean[1] @@ -106,7 +144,11 @@ function <> meta::relational::tests::milestoning::bitemporal::propaga let result = execute(|BiTemporalProduct.all(%2017-6-11, %2017-6-10)->project([p|$p.name, p|$p.biTemporalClassification.type], ['productName', 'classificationType']), singleTemporalMappingForBiTemporalTypes, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->toOne(); assertEquals(['ProductName2,STOCK', 'ProductName3,TDSNull'], $tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".name as "productName", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and ("productclassificationtable_0".from_z <= \'2017-06-10\' and "productclassificationtable_0".thru_z > \'2017-06-10\')) where "root".from_z <= \'2017-06-10\' and "root".thru_z > \'2017-06-10\'', $result); + assertEqualsH2Compatible( + 'select "root".name as "productName", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and ("productclassificationtable_0".from_z <= \'2017-06-10\' and "productclassificationtable_0".thru_z > \'2017-06-10\')) where "root".from_z <= \'2017-06-10\' and "root".thru_z > \'2017-06-10\'', + 'select "root".name as "productName", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and ("productclassificationtable_0".from_z <= DATE\'2017-06-10\' and "productclassificationtable_0".thru_z > DATE\'2017-06-10\')) where "root".from_z <= DATE\'2017-06-10\' and "root".thru_z > DATE\'2017-06-10\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::bitemporal::propagation::testBiTemporalToBiTemporalDatePropagation():Boolean[1] @@ -114,7 +156,11 @@ function <> meta::relational::tests::milestoning::bitemporal::propaga let result = execute(|Order.all()->project(o|$o.biTemporalProduct(%2017-6-11, %2017-6-10).biTemporalClassification.type, 'type'), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->toOne(); assertEquals(['STOCK', 'TDSNull'], $tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= \'2017-06-11\' and "bitemporalproducttable_0".out_z > \'2017-06-11\' and "bitemporalproducttable_0".from_z <= \'2017-06-10\' and "bitemporalproducttable_0".thru_z > \'2017-06-10\')) left outer join (select "bitemporalproductclassificationtable_1".type as type from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1" where ("bitemporalproductclassificationtable_1".in_z <= \'2017-06-11\' and "bitemporalproductclassificationtable_1".out_z > \'2017-06-11\' and "bitemporalproductclassificationtable_1".from_z <= \'2017-06-10\' and "bitemporalproductclassificationtable_1".thru_z > \'2017-06-10\')) as "bitemporalproductclassificationtable_0" on ("bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)', $result); + assertEqualsH2Compatible( + 'select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= \'2017-06-11\' and "bitemporalproducttable_0".out_z > \'2017-06-11\' and "bitemporalproducttable_0".from_z <= \'2017-06-10\' and "bitemporalproducttable_0".thru_z > \'2017-06-10\')) left outer join (select "bitemporalproductclassificationtable_1".type as type from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1" where ("bitemporalproductclassificationtable_1".in_z <= \'2017-06-11\' and "bitemporalproductclassificationtable_1".out_z > \'2017-06-11\' and "bitemporalproductclassificationtable_1".from_z <= \'2017-06-10\' and "bitemporalproductclassificationtable_1".thru_z > \'2017-06-10\')) as "bitemporalproductclassificationtable_0" on ("bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)', + 'select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= DATE\'2017-06-11\' and "bitemporalproducttable_0".out_z > DATE\'2017-06-11\' and "bitemporalproducttable_0".from_z <= DATE\'2017-06-10\' and "bitemporalproducttable_0".thru_z > DATE\'2017-06-10\')) left outer join (select "bitemporalproductclassificationtable_1".type as type from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1" where ("bitemporalproductclassificationtable_1".in_z <= DATE\'2017-06-11\' and "bitemporalproductclassificationtable_1".out_z > DATE\'2017-06-11\' and "bitemporalproductclassificationtable_1".from_z <= DATE\'2017-06-10\' and "bitemporalproductclassificationtable_1".thru_z > DATE\'2017-06-10\')) as "bitemporalproductclassificationtable_0" on ("bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::bitemporal::propagation::testBiTemporalToBiTemporalDatePropagationForAll():Boolean[1] @@ -122,7 +168,11 @@ function <> meta::relational::tests::milestoning::bitemporal::propaga let result = execute(|BiTemporalProduct.all(%2017-6-11, %2017-6-10)->project(o|$o.biTemporalClassification.type, 'type'), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->toOne(); assertEquals(['STOCK'], $tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "bitemporalproductclassificationtable_0".type as "type" from BiTemporalProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= \'2017-06-11\' and "bitemporalproductclassificationtable_0".out_z > \'2017-06-11\' and "bitemporalproductclassificationtable_0".from_z <= \'2017-06-10\' and "bitemporalproductclassificationtable_0".thru_z > \'2017-06-10\')) where "root".in_z <= \'2017-06-11\' and "root".out_z > \'2017-06-11\' and "root".from_z <= \'2017-06-10\' and "root".thru_z > \'2017-06-10\'', $result); + assertEqualsH2Compatible( + 'select "bitemporalproductclassificationtable_0".type as "type" from BiTemporalProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= \'2017-06-11\' and "bitemporalproductclassificationtable_0".out_z > \'2017-06-11\' and "bitemporalproductclassificationtable_0".from_z <= \'2017-06-10\' and "bitemporalproductclassificationtable_0".thru_z > \'2017-06-10\')) where "root".in_z <= \'2017-06-11\' and "root".out_z > \'2017-06-11\' and "root".from_z <= \'2017-06-10\' and "root".thru_z > \'2017-06-10\'', + 'select "bitemporalproductclassificationtable_0".type as "type" from BiTemporalProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= DATE\'2017-06-11\' and "bitemporalproductclassificationtable_0".out_z > DATE\'2017-06-11\' and "bitemporalproductclassificationtable_0".from_z <= DATE\'2017-06-10\' and "bitemporalproductclassificationtable_0".thru_z > DATE\'2017-06-10\')) where "root".in_z <= DATE\'2017-06-11\' and "root".out_z > DATE\'2017-06-11\' and "root".from_z <= DATE\'2017-06-10\' and "root".thru_z > DATE\'2017-06-10\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::bitemporal::propagation::testBiTemporalToBiTemporalSingleDatePropagationForAll():Boolean[1] @@ -130,7 +180,11 @@ function <> meta::relational::tests::milestoning::bitemporal::propaga let result = execute(|BiTemporalProduct.all(%2017-6-11, %2017-6-10)->project(o|$o.biTemporalClassification(%2017-6-12).type, 'type'), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->toOne(); assertEquals(['STOCK'], $tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "bitemporalproductclassificationtable_0".type as "type" from BiTemporalProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= \'2017-06-11\' and "bitemporalproductclassificationtable_0".out_z > \'2017-06-11\' and "bitemporalproductclassificationtable_0".from_z <= \'2017-06-12\' and "bitemporalproductclassificationtable_0".thru_z > \'2017-06-12\')) where "root".in_z <= \'2017-06-11\' and "root".out_z > \'2017-06-11\' and "root".from_z <= \'2017-06-10\' and "root".thru_z > \'2017-06-10\'', $result); + assertEqualsH2Compatible( + 'select "bitemporalproductclassificationtable_0".type as "type" from BiTemporalProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= \'2017-06-11\' and "bitemporalproductclassificationtable_0".out_z > \'2017-06-11\' and "bitemporalproductclassificationtable_0".from_z <= \'2017-06-12\' and "bitemporalproductclassificationtable_0".thru_z > \'2017-06-12\')) where "root".in_z <= \'2017-06-11\' and "root".out_z > \'2017-06-11\' and "root".from_z <= \'2017-06-10\' and "root".thru_z > \'2017-06-10\'', + 'select "bitemporalproductclassificationtable_0".type as "type" from BiTemporalProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= DATE\'2017-06-11\' and "bitemporalproductclassificationtable_0".out_z > DATE\'2017-06-11\' and "bitemporalproductclassificationtable_0".from_z <= DATE\'2017-06-12\' and "bitemporalproductclassificationtable_0".thru_z > DATE\'2017-06-12\')) where "root".in_z <= DATE\'2017-06-11\' and "root".out_z > DATE\'2017-06-11\' and "root".from_z <= DATE\'2017-06-10\' and "root".thru_z > DATE\'2017-06-10\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::bitemporal::propagation::testBiTemporalToSingleSingleTemporalDatePropagation():Boolean[1] @@ -138,7 +192,11 @@ function <> meta::relational::tests::milestoning::bitemporal::propaga let result = execute(|BiTemporalProduct.all(%2017-6-11, %2017-6-10)->project(p|$p.classification.type, 'type'), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->toOne(); assertEquals(['STOCK'], $tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "productclassificationtable_0".type as "type" from BiTemporalProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2017-06-10\' and "productclassificationtable_0".thru_z > \'2017-06-10\') where "root".in_z <= \'2017-06-11\' and "root".out_z > \'2017-06-11\' and "root".from_z <= \'2017-06-10\' and "root".thru_z > \'2017-06-10\'', $result); + assertEqualsH2Compatible( + 'select "productclassificationtable_0".type as "type" from BiTemporalProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2017-06-10\' and "productclassificationtable_0".thru_z > \'2017-06-10\') where "root".in_z <= \'2017-06-11\' and "root".out_z > \'2017-06-11\' and "root".from_z <= \'2017-06-10\' and "root".thru_z > \'2017-06-10\'', + 'select "productclassificationtable_0".type as "type" from BiTemporalProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2017-06-10\' and "productclassificationtable_0".thru_z > DATE\'2017-06-10\') where "root".in_z <= DATE\'2017-06-11\' and "root".out_z > DATE\'2017-06-11\' and "root".from_z <= DATE\'2017-06-10\' and "root".thru_z > DATE\'2017-06-10\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::bitemporal::propagation::testBusinessToBiTemporalDatePropagation():Boolean[1] @@ -146,7 +204,11 @@ function <> meta::relational::tests::milestoning::bitemporal::propaga let result = execute(|Product.all(%9999-12-29)->project([p|$p.name, p|$p.biTemporalClassification(%9999-12-30).type], ['name', 'type']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->toOne(); assertEquals(['ProductName2,STOCK', 'ProductName3,TDSNull'], $tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".name as "name", "bitemporalproductclassificationtable_0".type as "type" from ProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= \'9999-12-30\' and "bitemporalproductclassificationtable_0".out_z > \'9999-12-30\' and "bitemporalproductclassificationtable_0".from_z <= \'9999-12-29\' and "bitemporalproductclassificationtable_0".thru_z > \'9999-12-29\')) where "root".from_z <= \'9999-12-29\' and "root".thru_z > \'9999-12-29\'', $result); + assertEqualsH2Compatible( + 'select "root".name as "name", "bitemporalproductclassificationtable_0".type as "type" from ProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= \'9999-12-30\' and "bitemporalproductclassificationtable_0".out_z > \'9999-12-30\' and "bitemporalproductclassificationtable_0".from_z <= \'9999-12-29\' and "bitemporalproductclassificationtable_0".thru_z > \'9999-12-29\')) where "root".from_z <= \'9999-12-29\' and "root".thru_z > \'9999-12-29\'', + 'select "root".name as "name", "bitemporalproductclassificationtable_0".type as "type" from ProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= DATE\'9999-12-30\' and "bitemporalproductclassificationtable_0".out_z > DATE\'9999-12-30\' and "bitemporalproductclassificationtable_0".from_z <= DATE\'9999-12-29\' and "bitemporalproductclassificationtable_0".thru_z > DATE\'9999-12-29\')) where "root".from_z <= DATE\'9999-12-29\' and "root".thru_z > DATE\'9999-12-29\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::bitemporal::propagation::testProcessingToBiTemporalDatePropagation():Boolean[1] @@ -154,19 +216,31 @@ function <> meta::relational::tests::milestoning::bitemporal::propaga let result = execute(|Trader.all(%2015-10-16)->project([t|$t.kerberos, t|$t.location(%9999-12-28).place], ['traderName', 'traderLocation']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->toOne(); assertEquals(['ggekko,miami', 'bfox,TDSNull'], $tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".kerberos as "traderName", "bitemporallocationtable_0".PLACE as "traderLocation" from TraderTable as "root" left outer join BiTemporalLocationTable as "bitemporallocationtable_0" on ("root".kerberos = "bitemporallocationtable_0".kerberos and ("bitemporallocationtable_0".in_z <= \'2015-10-16\' and "bitemporallocationtable_0".out_z > \'2015-10-16\' and "bitemporallocationtable_0".from_z <= \'9999-12-28\' and "bitemporallocationtable_0".thru_z > \'9999-12-28\')) where "root".in_z <= \'2015-10-16\' and "root".out_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".kerberos as "traderName", "bitemporallocationtable_0".PLACE as "traderLocation" from TraderTable as "root" left outer join BiTemporalLocationTable as "bitemporallocationtable_0" on ("root".kerberos = "bitemporallocationtable_0".kerberos and ("bitemporallocationtable_0".in_z <= \'2015-10-16\' and "bitemporallocationtable_0".out_z > \'2015-10-16\' and "bitemporallocationtable_0".from_z <= \'9999-12-28\' and "bitemporallocationtable_0".thru_z > \'9999-12-28\')) where "root".in_z <= \'2015-10-16\' and "root".out_z > \'2015-10-16\'', + 'select "root".kerberos as "traderName", "bitemporallocationtable_0".PLACE as "traderLocation" from TraderTable as "root" left outer join BiTemporalLocationTable as "bitemporallocationtable_0" on ("root".kerberos = "bitemporallocationtable_0".kerberos and ("bitemporallocationtable_0".in_z <= DATE\'2015-10-16\' and "bitemporallocationtable_0".out_z > DATE\'2015-10-16\' and "bitemporallocationtable_0".from_z <= DATE\'9999-12-28\' and "bitemporallocationtable_0".thru_z > DATE\'9999-12-28\')) where "root".in_z <= DATE\'2015-10-16\' and "root".out_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::bitemporal::testBiTemporalToBiTemporalProjectWithMilestoningInfinitySpecifiedInDB():Boolean[1] { let result = execute(|Order.all()->project(o|$o.biTemporalProduct(%latest, %latest).biTemporalClassification.type, 'type'), latestbitemporalmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = \'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = \'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', $result); + assertEqualsH2Compatible( + 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = \'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = \'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', + 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = DATE\'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::bitemporal::testBiTemporalToBiTemporalProcessingDateProjectWithMilestoningInfinitySpecifiedInDB():Boolean[1] { let result = execute(|Order.all()->project(o|$o.biTemporalProduct(%latest, %latest).biTemporalClassification(%2017-6-10).type, 'type'), latestbitemporalmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = \'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".from_z <= \'2017-06-10\' and "bitemporalproductclassificationtablewithlatest_1".thru_z > \'2017-06-10\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', $result); + assertEqualsH2Compatible( + 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = \'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".from_z <= \'2017-06-10\' and "bitemporalproductclassificationtablewithlatest_1".thru_z > \'2017-06-10\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', + 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = DATE\'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".from_z <= DATE\'2017-06-10\' and "bitemporalproductclassificationtablewithlatest_1".thru_z > DATE\'2017-06-10\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::bitemporal::testBiTemporalPropertyUsageAfterExecute():Boolean[1] @@ -186,7 +260,11 @@ function <> {meta::pure::executionPlan::profiles::serverVersion.start ['type','count']), meta::relational::tests::milestoning::latestbitemporalmap, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); // let tds = $result.values->toOne(); - assertSameSQL('select "root".id as "type", count("bitemporalproductclassificationtablewithlatest_0".type) as "count" from BiTemporalProductTableWithLatest as "root" left outer join BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_0" on ("root".type = "bitemporalproductclassificationtablewithlatest_0".type and ("bitemporalproductclassificationtablewithlatest_0".in_z <= \'2020-06-03 20:40:14.761\' and "bitemporalproductclassificationtablewithlatest_0".out_z > \'2020-06-03 20:40:14.761\' and "bitemporalproductclassificationtablewithlatest_0".from_z <= \'2020-06-03 20:40:14.761\' and "bitemporalproductclassificationtablewithlatest_0".thru_z > \'2020-06-03 20:40:14.761\')) where "root".in_z <= \'2020-08-08\' and "root".out_z > \'2020-08-08\' and "root".from_z <= \'2020-08-08\' and "root".thru_z > \'2020-08-08\' group by "type"', $result); + assertEqualsH2Compatible( + 'select "root".id as "type", count("bitemporalproductclassificationtablewithlatest_0".type) as "count" from BiTemporalProductTableWithLatest as "root" left outer join BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_0" on ("root".type = "bitemporalproductclassificationtablewithlatest_0".type and ("bitemporalproductclassificationtablewithlatest_0".in_z <= \'2020-06-03 20:40:14.761\' and "bitemporalproductclassificationtablewithlatest_0".out_z > \'2020-06-03 20:40:14.761\' and "bitemporalproductclassificationtablewithlatest_0".from_z <= \'2020-06-03 20:40:14.761\' and "bitemporalproductclassificationtablewithlatest_0".thru_z > \'2020-06-03 20:40:14.761\')) where "root".in_z <= \'2020-08-08\' and "root".out_z > \'2020-08-08\' and "root".from_z <= \'2020-08-08\' and "root".thru_z > \'2020-08-08\' group by "type"', + 'select "root".id as "type", count("bitemporalproductclassificationtablewithlatest_0".type) as "count" from BiTemporalProductTableWithLatest as "root" left outer join BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_0" on ("root".type = "bitemporalproductclassificationtablewithlatest_0".type and ("bitemporalproductclassificationtablewithlatest_0".in_z <= TIMESTAMP\'2020-06-03 20:40:14.761\' and "bitemporalproductclassificationtablewithlatest_0".out_z > TIMESTAMP\'2020-06-03 20:40:14.761\' and "bitemporalproductclassificationtablewithlatest_0".from_z <= TIMESTAMP\'2020-06-03 20:40:14.761\' and "bitemporalproductclassificationtablewithlatest_0".thru_z > TIMESTAMP\'2020-06-03 20:40:14.761\')) where "root".in_z <= DATE\'2020-08-08\' and "root".out_z > DATE\'2020-08-08\' and "root".from_z <= DATE\'2020-08-08\' and "root".thru_z > DATE\'2020-08-08\' group by "type"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::bitemporal::testBiTemporalDateInjectionFromVarReference():Boolean[1] @@ -198,8 +276,24 @@ function <> meta::relational::tests::milestoning::bitemporal::testBiT let result5 = execute(|Order.all()->project(o|$o.biTemporalProduct($o.orderDate->toOne(), %2017-6-10).biTemporalClassification.type, 'type'), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); assertSameSQL('select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= "root".orderDate and "bitemporalproducttable_0".out_z > "root".orderDate and "bitemporalproducttable_0".from_z <= "root".orderDate and "bitemporalproducttable_0".thru_z > "root".orderDate)) left outer join (select "bitemporalproductclassificationtable_1".type as type, "bitemporalproductclassificationtable_1".in_z as in_z, "bitemporalproductclassificationtable_1".out_z as out_z, "bitemporalproductclassificationtable_1".from_z as from_z, "bitemporalproductclassificationtable_1".thru_z as thru_z from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1") as "bitemporalproductclassificationtable_0" on (("bitemporalproductclassificationtable_0".in_z <= "root".orderDate and "bitemporalproductclassificationtable_0".out_z > "root".orderDate and "bitemporalproductclassificationtable_0".from_z <= "root".orderDate and "bitemporalproductclassificationtable_0".thru_z > "root".orderDate) and "bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)',$result1); - assertSameSQL('select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= "root".orderDate and "bitemporalproducttable_0".out_z > "root".orderDate and "bitemporalproducttable_0".from_z <= "root".orderDate and "bitemporalproducttable_0".thru_z > "root".orderDate)) left outer join (select "bitemporalproductclassificationtable_1".type as type, "bitemporalproductclassificationtable_1".in_z as in_z, "bitemporalproductclassificationtable_1".out_z as out_z, "bitemporalproductclassificationtable_1".from_z as from_z, "bitemporalproductclassificationtable_1".thru_z as thru_z from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1") as "bitemporalproductclassificationtable_0" on (("bitemporalproductclassificationtable_0".in_z <= "root".orderDate and "bitemporalproductclassificationtable_0".out_z > "root".orderDate and "bitemporalproductclassificationtable_0".from_z <= \'2017-06-10\' and "bitemporalproductclassificationtable_0".thru_z > \'2017-06-10\') and "bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)',$result2); - assertSameSQL('select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= "root".orderDate and "bitemporalproducttable_0".out_z > "root".orderDate and "bitemporalproducttable_0".from_z <= "root".orderDate and "bitemporalproducttable_0".thru_z > "root".orderDate)) left outer join (select "bitemporalproductclassificationtable_1".type as type from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1" where ("bitemporalproductclassificationtable_1".in_z <= \'2017-06-10\' and "bitemporalproductclassificationtable_1".out_z > \'2017-06-10\' and "bitemporalproductclassificationtable_1".from_z <= \'2017-06-11\' and "bitemporalproductclassificationtable_1".thru_z > \'2017-06-11\')) as "bitemporalproductclassificationtable_0" on ("bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)',$result3); - assertSameSQL('select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= \'2017-06-10\' and "bitemporalproducttable_0".out_z > \'2017-06-10\' and "bitemporalproducttable_0".from_z <= "root".orderDate and "bitemporalproducttable_0".thru_z > "root".orderDate)) left outer join (select "bitemporalproductclassificationtable_1".type as type, "bitemporalproductclassificationtable_1".in_z as in_z, "bitemporalproductclassificationtable_1".out_z as out_z, "bitemporalproductclassificationtable_1".from_z as from_z, "bitemporalproductclassificationtable_1".thru_z as thru_z from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1") as "bitemporalproductclassificationtable_0" on (("bitemporalproductclassificationtable_0".in_z <= \'2017-06-10\' and "bitemporalproductclassificationtable_0".out_z > \'2017-06-10\' and "bitemporalproductclassificationtable_0".from_z <= "root".orderDate and "bitemporalproductclassificationtable_0".thru_z > "root".orderDate) and "bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)',$result4); - assertSameSQL('select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= "root".orderDate and "bitemporalproducttable_0".out_z > "root".orderDate and "bitemporalproducttable_0".from_z <= \'2017-06-10\' and "bitemporalproducttable_0".thru_z > \'2017-06-10\')) left outer join (select "bitemporalproductclassificationtable_1".type as type, "bitemporalproductclassificationtable_1".in_z as in_z, "bitemporalproductclassificationtable_1".out_z as out_z, "bitemporalproductclassificationtable_1".from_z as from_z, "bitemporalproductclassificationtable_1".thru_z as thru_z from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1") as "bitemporalproductclassificationtable_0" on (("bitemporalproductclassificationtable_0".in_z <= "root".orderDate and "bitemporalproductclassificationtable_0".out_z > "root".orderDate and "bitemporalproductclassificationtable_0".from_z <= \'2017-06-10\' and "bitemporalproductclassificationtable_0".thru_z > \'2017-06-10\') and "bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)',$result5); + assertEqualsH2Compatible( + 'select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= "root".orderDate and "bitemporalproducttable_0".out_z > "root".orderDate and "bitemporalproducttable_0".from_z <= "root".orderDate and "bitemporalproducttable_0".thru_z > "root".orderDate)) left outer join (select "bitemporalproductclassificationtable_1".type as type, "bitemporalproductclassificationtable_1".in_z as in_z, "bitemporalproductclassificationtable_1".out_z as out_z, "bitemporalproductclassificationtable_1".from_z as from_z, "bitemporalproductclassificationtable_1".thru_z as thru_z from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1") as "bitemporalproductclassificationtable_0" on (("bitemporalproductclassificationtable_0".in_z <= "root".orderDate and "bitemporalproductclassificationtable_0".out_z > "root".orderDate and "bitemporalproductclassificationtable_0".from_z <= \'2017-06-10\' and "bitemporalproductclassificationtable_0".thru_z > \'2017-06-10\') and "bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)', + 'select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= "root".orderDate and "bitemporalproducttable_0".out_z > "root".orderDate and "bitemporalproducttable_0".from_z <= "root".orderDate and "bitemporalproducttable_0".thru_z > "root".orderDate)) left outer join (select "bitemporalproductclassificationtable_1".type as type, "bitemporalproductclassificationtable_1".in_z as in_z, "bitemporalproductclassificationtable_1".out_z as out_z, "bitemporalproductclassificationtable_1".from_z as from_z, "bitemporalproductclassificationtable_1".thru_z as thru_z from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1") as "bitemporalproductclassificationtable_0" on (("bitemporalproductclassificationtable_0".in_z <= "root".orderDate and "bitemporalproductclassificationtable_0".out_z > "root".orderDate and "bitemporalproductclassificationtable_0".from_z <= DATE\'2017-06-10\' and "bitemporalproductclassificationtable_0".thru_z > DATE\'2017-06-10\') and "bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)', + $result2->sqlRemoveFormatting() + ); + assertEqualsH2Compatible( + 'select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= "root".orderDate and "bitemporalproducttable_0".out_z > "root".orderDate and "bitemporalproducttable_0".from_z <= "root".orderDate and "bitemporalproducttable_0".thru_z > "root".orderDate)) left outer join (select "bitemporalproductclassificationtable_1".type as type from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1" where ("bitemporalproductclassificationtable_1".in_z <= \'2017-06-10\' and "bitemporalproductclassificationtable_1".out_z > \'2017-06-10\' and "bitemporalproductclassificationtable_1".from_z <= \'2017-06-11\' and "bitemporalproductclassificationtable_1".thru_z > \'2017-06-11\')) as "bitemporalproductclassificationtable_0" on ("bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)', + 'select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= "root".orderDate and "bitemporalproducttable_0".out_z > "root".orderDate and "bitemporalproducttable_0".from_z <= "root".orderDate and "bitemporalproducttable_0".thru_z > "root".orderDate)) left outer join (select "bitemporalproductclassificationtable_1".type as type from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1" where ("bitemporalproductclassificationtable_1".in_z <= DATE\'2017-06-10\' and "bitemporalproductclassificationtable_1".out_z > DATE\'2017-06-10\' and "bitemporalproductclassificationtable_1".from_z <= DATE\'2017-06-11\' and "bitemporalproductclassificationtable_1".thru_z > DATE\'2017-06-11\')) as "bitemporalproductclassificationtable_0" on ("bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)', + $result3->sqlRemoveFormatting() + ); + assertEqualsH2Compatible( + 'select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= \'2017-06-10\' and "bitemporalproducttable_0".out_z > \'2017-06-10\' and "bitemporalproducttable_0".from_z <= "root".orderDate and "bitemporalproducttable_0".thru_z > "root".orderDate)) left outer join (select "bitemporalproductclassificationtable_1".type as type, "bitemporalproductclassificationtable_1".in_z as in_z, "bitemporalproductclassificationtable_1".out_z as out_z, "bitemporalproductclassificationtable_1".from_z as from_z, "bitemporalproductclassificationtable_1".thru_z as thru_z from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1") as "bitemporalproductclassificationtable_0" on (("bitemporalproductclassificationtable_0".in_z <= \'2017-06-10\' and "bitemporalproductclassificationtable_0".out_z > \'2017-06-10\' and "bitemporalproductclassificationtable_0".from_z <= "root".orderDate and "bitemporalproductclassificationtable_0".thru_z > "root".orderDate) and "bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)', + 'select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= DATE\'2017-06-10\' and "bitemporalproducttable_0".out_z > DATE\'2017-06-10\' and "bitemporalproducttable_0".from_z <= "root".orderDate and "bitemporalproducttable_0".thru_z > "root".orderDate)) left outer join (select "bitemporalproductclassificationtable_1".type as type, "bitemporalproductclassificationtable_1".in_z as in_z, "bitemporalproductclassificationtable_1".out_z as out_z, "bitemporalproductclassificationtable_1".from_z as from_z, "bitemporalproductclassificationtable_1".thru_z as thru_z from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1") as "bitemporalproductclassificationtable_0" on (("bitemporalproductclassificationtable_0".in_z <= DATE\'2017-06-10\' and "bitemporalproductclassificationtable_0".out_z > DATE\'2017-06-10\' and "bitemporalproductclassificationtable_0".from_z <= "root".orderDate and "bitemporalproductclassificationtable_0".thru_z > "root".orderDate) and "bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)', + $result4->sqlRemoveFormatting() + ); + assertEqualsH2Compatible( + 'select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= "root".orderDate and "bitemporalproducttable_0".out_z > "root".orderDate and "bitemporalproducttable_0".from_z <= \'2017-06-10\' and "bitemporalproducttable_0".thru_z > \'2017-06-10\')) left outer join (select "bitemporalproductclassificationtable_1".type as type, "bitemporalproductclassificationtable_1".in_z as in_z, "bitemporalproductclassificationtable_1".out_z as out_z, "bitemporalproductclassificationtable_1".from_z as from_z, "bitemporalproductclassificationtable_1".thru_z as thru_z from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1") as "bitemporalproductclassificationtable_0" on (("bitemporalproductclassificationtable_0".in_z <= "root".orderDate and "bitemporalproductclassificationtable_0".out_z > "root".orderDate and "bitemporalproductclassificationtable_0".from_z <= \'2017-06-10\' and "bitemporalproductclassificationtable_0".thru_z > \'2017-06-10\') and "bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)', + 'select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= "root".orderDate and "bitemporalproducttable_0".out_z > "root".orderDate and "bitemporalproducttable_0".from_z <= DATE\'2017-06-10\' and "bitemporalproducttable_0".thru_z > DATE\'2017-06-10\')) left outer join (select "bitemporalproductclassificationtable_1".type as type, "bitemporalproductclassificationtable_1".in_z as in_z, "bitemporalproductclassificationtable_1".out_z as out_z, "bitemporalproductclassificationtable_1".from_z as from_z, "bitemporalproductclassificationtable_1".thru_z as thru_z from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1") as "bitemporalproductclassificationtable_0" on (("bitemporalproductclassificationtable_0".in_z <= "root".orderDate and "bitemporalproductclassificationtable_0".out_z > "root".orderDate and "bitemporalproductclassificationtable_0".from_z <= DATE\'2017-06-10\' and "bitemporalproductclassificationtable_0".thru_z > DATE\'2017-06-10\') and "bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)', + $result5->sqlRemoveFormatting() + ); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testBusinessDateMilestoning.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testBusinessDateMilestoning.pure index 092a722f989..b8b6fd3aa06 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testBusinessDateMilestoning.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testBusinessDateMilestoning.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::pure::executionPlan::*; import meta::relational::validation::*; import meta::pure::executionPlan::toString::*; @@ -37,28 +38,44 @@ function <> meta::relational::tests::milestoning::businessdate::testC { let busDate = %2015-10-16; let result = validate(|ProductWithConstraint1.all($busDate),meta::relational::tests::milestoning::milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure property: systemDescription is processed with the correct milestoning date, note that there are no milestoning properties on its left through which a date could be propagated\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName and "systemdescriptiontable_0".from_z <= \'2015-10-16\' and "systemdescriptiontable_0".thru_z > \'2015-10-16\') where not char_length("systemdescriptiontable_0".description) < 10 and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure property: systemDescription is processed with the correct milestoning date, note that there are no milestoning properties on its left through which a date could be propagated\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName and "systemdescriptiontable_0".from_z <= \'2015-10-16\' and "systemdescriptiontable_0".thru_z > \'2015-10-16\') where not char_length("systemdescriptiontable_0".description) < 10 and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure property: systemDescription is processed with the correct milestoning date, note that there are no milestoning properties on its left through which a date could be propagated\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName and "systemdescriptiontable_0".from_z <= DATE\'2015-10-16\' and "systemdescriptiontable_0".thru_z > DATE\'2015-10-16\') where not char_length("systemdescriptiontable_0".description) < 10 and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testConstraintUsageOfThisMilestoningContext1b():Boolean[1] { let busDate = %2015-10-16;//parent milestoning context not propagated through map let result = validate(|ProductWithConstraint1b.all($busDate),meta::relational::tests::milestoning::milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure Ensure parent (this) milestoning context propagated through (auto) map\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName and "systemdescriptiontable_0".from_z <= \'2015-10-16\' and "systemdescriptiontable_0".thru_z > \'2015-10-16\') where not char_length("systemdescriptiontable_0".description) < 10 and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure Ensure parent (this) milestoning context propagated through (auto) map\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName and "systemdescriptiontable_0".from_z <= \'2015-10-16\' and "systemdescriptiontable_0".thru_z > \'2015-10-16\') where not char_length("systemdescriptiontable_0".description) < 10 and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure Ensure parent (this) milestoning context propagated through (auto) map\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName and "systemdescriptiontable_0".from_z <= DATE\'2015-10-16\' and "systemdescriptiontable_0".thru_z > DATE\'2015-10-16\') where not char_length("systemdescriptiontable_0".description) < 10 and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testConstraintUsageOfThisMilestoningContext1c():Boolean[1] { let busDate = %2015-10-16; let result = validate(|ProductWithConstraint1c.all($busDate),meta::relational::tests::milestoning::milestoningmapwithconstraints, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure parent (this) milestoning context propagated through project\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" where not (not (not exists(select 1 from SystemTable as "systemtable_0" left outer join (select "systemdescriptiontable_1".systemName as systemName, "systemdescriptiontable_1".description as description from SystemDescriptionTable as "systemdescriptiontable_1" where "systemdescriptiontable_1".from_z <= \'2015-10-16\' and "systemdescriptiontable_1".thru_z > \'2015-10-16\') as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName) where "root".referenceSystemName = "systemtable_0".name))) and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure parent (this) milestoning context propagated through project\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" where not (not (not exists(select 1 from SystemTable as "systemtable_0" left outer join (select "systemdescriptiontable_1".systemName as systemName, "systemdescriptiontable_1".description as description from SystemDescriptionTable as "systemdescriptiontable_1" where "systemdescriptiontable_1".from_z <= \'2015-10-16\' and "systemdescriptiontable_1".thru_z > \'2015-10-16\') as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName) where "root".referenceSystemName = "systemtable_0".name))) and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure parent (this) milestoning context propagated through project\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" where not (not (not exists(select 1 from SystemTable as "systemtable_0" left outer join (select "systemdescriptiontable_1".systemName as systemName, "systemdescriptiontable_1".description as description from SystemDescriptionTable as "systemdescriptiontable_1" where "systemdescriptiontable_1".from_z <= DATE\'2015-10-16\' and "systemdescriptiontable_1".thru_z > DATE\'2015-10-16\') as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName) where "root".referenceSystemName = "systemtable_0".name))) and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testConstraintUsageOfThisMilestoningContext2():Boolean[1] { let busDate = %2015-10-16; let result = validate(|ProductWithConstraint2.all($busDate),meta::relational::tests::milestoning::milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure property: exchange is processed with the correct milestoning date, and that the milestoning property on the left (classification) is not propagagted\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2019-01-01\' and "productclassificationtable_0".thru_z > \'2019-01-01\') left outer join ProductExchangeTable as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where not char_length("productexchangetable_0".name) is null and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure property: exchange is processed with the correct milestoning date, and that the milestoning property on the left (classification) is not propagagted\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2019-01-01\' and "productclassificationtable_0".thru_z > \'2019-01-01\') left outer join ProductExchangeTable as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where not char_length("productexchangetable_0".name) is null and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure property: exchange is processed with the correct milestoning date, and that the milestoning property on the left (classification) is not propagagted\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2019-01-01\' and "productclassificationtable_0".thru_z > DATE\'2019-01-01\') left outer join ProductExchangeTable as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-16\' and "productexchangetable_0".thru_z > DATE\'2015-10-16\') where not char_length("productexchangetable_0".name) is null and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testConstraintUsageOfThisMilestoningContext2WithNonTemporalStore():Boolean[1] @@ -72,7 +89,11 @@ function <> meta::relational::tests::milestoning::businessdate::testC { let busDate = %2015-10-16; let result = validate(|ProductWithConstraint3.all($busDate),meta::relational::tests::milestoning::milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure that milestoning qualified properties passed function arguments which reference $this.temporalDate are processed correctly\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, \'2015-10-16\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, \'2015-10-16\')) left outer join ProductExchangeTable as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where ("productexchangetable_0".name <> \'exchangeName\' OR "productexchangetable_0".name is null) and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure that milestoning qualified properties passed function arguments which reference $this.temporalDate are processed correctly\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, \'2015-10-16\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, \'2015-10-16\')) left outer join ProductExchangeTable as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where ("productexchangetable_0".name <> \'exchangeName\' OR "productexchangetable_0".name is null) and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure that milestoning qualified properties passed function arguments which reference $this.temporalDate are processed correctly\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, DATE\'2015-10-16\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, DATE\'2015-10-16\')) left outer join ProductExchangeTable as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-16\' and "productexchangetable_0".thru_z > DATE\'2015-10-16\') where ("productexchangetable_0".name <> \'exchangeName\' OR "productexchangetable_0".name is null) and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testConstraintUsageOfVarReferenceWithThisMilestoningContext():Boolean[1] @@ -88,12 +109,20 @@ function <> meta::relational::tests::milestoning::businessdate::testP let result = execute(|Product.all($busDate)->project([p|$p.name, p|$p.classificationTypeStr],['name','classificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(['ProductName2,STOCK', 'ProductName3,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); let result2 = execute(|Order.all()->project([o|$o.id, o|$o.product($busDate).name, o|$o.product($busDate).classificationType],['orderId','productName','classificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds2 = $result2.values->at(0); assertEquals(['1,TDSNull,TDSNull', '2,ProductName2,STOCK'],$tds2.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".id as "orderId", "producttable_0".name as "productName", "productclassificationtable_0".type as "classificationType" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') left outer join (select "productclassificationtable_1".type as type from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type)',$result2); + assertEqualsH2Compatible( + 'select "root".id as "orderId", "producttable_0".name as "productName", "productclassificationtable_0".type as "classificationType" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') left outer join (select "productclassificationtable_1".type as type from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type)', + 'select "root".id as "orderId", "producttable_0".name as "productName", "productclassificationtable_0".type as "classificationType" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-10-16\' and "producttable_0".thru_z > DATE\'2015-10-16\') left outer join (select "productclassificationtable_1".type as type from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type)', + $result2->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testMilestonedThisBusinessDateInPosition1InQualfiedPropertySequence():Boolean[1] @@ -101,7 +130,11 @@ function <> meta::relational::tests::milestoning::businessdate::testM let busDate = %2015-10-16; let result = execute(|Product.all($busDate)->project([p|$p.name, p|$p.classificationExchangeName1],['name','classificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); - assertSameSQL('select "root".name as "name", "productexchangetable_0".name as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= \'2019-01-01\' and "productexchangetable_1".thru_z > \'2019-01-01\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".name as "name", "productexchangetable_0".name as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= \'2019-01-01\' and "productexchangetable_1".thru_z > \'2019-01-01\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name", "productexchangetable_0".name as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= DATE\'2019-01-01\' and "productexchangetable_1".thru_z > DATE\'2019-01-01\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testMilestonedThisBusinessDateInPosition2InQualfiedPropertySequence():Boolean[1] @@ -109,7 +142,11 @@ function <> meta::relational::tests::milestoning::businessdate::testM let busDate = %2015-10-16; let result = execute(|Product.all($busDate)->project([p|$p.name, p|$p.classificationExchangeName2],['name','classificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); - assertSameSQL('select "root".name as "name", "productexchangetable_0".name as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2019-01-01\' and "productclassificationtable_0".thru_z > \'2019-01-01\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= \'2015-10-16\' and "productexchangetable_1".thru_z > \'2015-10-16\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".name as "name", "productexchangetable_0".name as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2019-01-01\' and "productclassificationtable_0".thru_z > \'2019-01-01\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= \'2015-10-16\' and "productexchangetable_1".thru_z > \'2015-10-16\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name", "productexchangetable_0".name as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2019-01-01\' and "productclassificationtable_0".thru_z > DATE\'2019-01-01\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= DATE\'2015-10-16\' and "productexchangetable_1".thru_z > DATE\'2015-10-16\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testMilestonedThisBusinessDateUsedAsParameterToFunctionParametersOfMilestonedQualifiedProperty():Boolean[1] @@ -117,7 +154,11 @@ function <> meta::relational::tests::milestoning::businessdate::testM let busDate = %2015-10-16; let result = execute(|Product.all($busDate)->project([p|$p.name, p|$p.classificationExchangeName3],['name','classificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); - assertSameSQL('select "root".name as "name", "productexchangetable_0".name as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, \'2015-10-16\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, \'2015-10-16\')) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= dateadd(DAY, 1, \'2015-10-16\') and "productexchangetable_1".thru_z > dateadd(DAY, 1, \'2015-10-16\')) as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".name as "name", "productexchangetable_0".name as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, \'2015-10-16\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, \'2015-10-16\')) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= dateadd(DAY, 1, \'2015-10-16\') and "productexchangetable_1".thru_z > dateadd(DAY, 1, \'2015-10-16\')) as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name", "productexchangetable_0".name as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, DATE\'2015-10-16\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, DATE\'2015-10-16\')) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= dateadd(DAY, 1, DATE\'2015-10-16\') and "productexchangetable_1".thru_z > dateadd(DAY, 1, DATE\'2015-10-16\')) as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testMilestonedThisBusinessDateUsedAsParameterToFunctionInMilestoningQualifiedPropertyMappedToView():Boolean[1] @@ -125,7 +166,11 @@ function <> meta::relational::tests::milestoning::businessdate::testM let connection = testRuntime().connections->filter(c|$c->instanceOf(DatabaseConnection))->first()->toOne()->cast(@TestDatabaseConnection); let busDate = %2015-10-16; let result = validate(|OrderPnlWithConstraint.all($busDate),meta::relational::tests::milestoning::ViewChainMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Constraint to ensure that $this.businessDate milestoning property is processed correctly when mapped to a View\' as "MESSAGE", "root".ID as "ID" from orderPNL as "root" left outer join (select "intermediate_1".joinId as joinId, "producttableview_0".link as link from intermediate as "intermediate_1" inner join (select "root".joinId as j, "root".linkToProduct as l, "root".type as n, dateadd(DAY, -1, \'2015-10-16\') as "k_businessDate" from intermediateTwo as "root") as "intertwoview_0" on ("intermediate_1".joinId = "intertwoview_0".j) left outer join (select "root".name as name, "root".type as type, "root".ID as link, dateadd(DAY, -1, \'2015-10-16\') as "k_businessDate" from ProductTable as "root") as "producttableview_0" on ("intertwoview_0".l = "producttableview_0".link)) as "intermediate_0" on ("root".ID = "intermediate_0".joinId) left outer join (select "intermediate_3".joinId as joinId, "intertwoview_1".l as l from intermediate as "intermediate_3" inner join (select "root".joinId as j, "root".linkToProduct as l, "root".type as n, dateadd(DAY, -1, \'2015-10-16\') as "k_businessDate" from intermediateTwo as "root") as "intertwoview_1" on ("intermediate_3".joinId = "intertwoview_1".j)) as "intermediate_2" on ("root".ID = "intermediate_2".joinId) left outer join (select "root".name as name, "root".type as type, "root".ID as link, dateadd(DAY, -1, \'2015-10-16\') as "k_businessDate" from ProductTable as "root") as "producttableview_1" on ("intermediate_2".l = "producttableview_1".link) where not ("intermediate_0".link is not null and "producttableview_1".link > 0)',$result); + assertEqualsH2Compatible( + 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Constraint to ensure that $this.businessDate milestoning property is processed correctly when mapped to a View\' as "MESSAGE", "root".ID as "ID" from orderPNL as "root" left outer join (select "intermediate_1".joinId as joinId, "producttableview_0".link as link from intermediate as "intermediate_1" inner join (select "root".joinId as j, "root".linkToProduct as l, "root".type as n, dateadd(DAY, -1, \'2015-10-16\') as "k_businessDate" from intermediateTwo as "root") as "intertwoview_0" on ("intermediate_1".joinId = "intertwoview_0".j) left outer join (select "root".name as name, "root".type as type, "root".ID as link, dateadd(DAY, -1, \'2015-10-16\') as "k_businessDate" from ProductTable as "root") as "producttableview_0" on ("intertwoview_0".l = "producttableview_0".link)) as "intermediate_0" on ("root".ID = "intermediate_0".joinId) left outer join (select "intermediate_3".joinId as joinId, "intertwoview_1".l as l from intermediate as "intermediate_3" inner join (select "root".joinId as j, "root".linkToProduct as l, "root".type as n, dateadd(DAY, -1, \'2015-10-16\') as "k_businessDate" from intermediateTwo as "root") as "intertwoview_1" on ("intermediate_3".joinId = "intertwoview_1".j)) as "intermediate_2" on ("root".ID = "intermediate_2".joinId) left outer join (select "root".name as name, "root".type as type, "root".ID as link, dateadd(DAY, -1, \'2015-10-16\') as "k_businessDate" from ProductTable as "root") as "producttableview_1" on ("intermediate_2".l = "producttableview_1".link) where not ("intermediate_0".link is not null and "producttableview_1".link > 0)', + 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Constraint to ensure that $this.businessDate milestoning property is processed correctly when mapped to a View\' as "MESSAGE", "root".ID as "ID" from orderPNL as "root" left outer join (select "intermediate_1".joinId as joinId, "producttableview_0".link as link from intermediate as "intermediate_1" inner join (select "root".joinId as j, "root".linkToProduct as l, "root".type as n, dateadd(DAY, -1, DATE\'2015-10-16\') as "k_businessDate" from intermediateTwo as "root") as "intertwoview_0" on ("intermediate_1".joinId = "intertwoview_0".j) left outer join (select "root".name as name, "root".type as type, "root".ID as link, dateadd(DAY, -1, DATE\'2015-10-16\') as "k_businessDate" from ProductTable as "root") as "producttableview_0" on ("intertwoview_0".l = "producttableview_0".link)) as "intermediate_0" on ("root".ID = "intermediate_0".joinId) left outer join (select "intermediate_3".joinId as joinId, "intertwoview_1".l as l from intermediate as "intermediate_3" inner join (select "root".joinId as j, "root".linkToProduct as l, "root".type as n, dateadd(DAY, -1, DATE\'2015-10-16\') as "k_businessDate" from intermediateTwo as "root") as "intertwoview_1" on ("intermediate_3".joinId = "intertwoview_1".j)) as "intermediate_2" on ("root".ID = "intermediate_2".joinId) left outer join (select "root".name as name, "root".type as type, "root".ID as link, dateadd(DAY, -1, DATE\'2015-10-16\') as "k_businessDate" from ProductTable as "root") as "producttableview_1" on ("intermediate_2".l = "producttableview_1".link) where not ("intermediate_0".link is not null and "producttableview_1".link > 0)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testMilestonedQualifiedPropertyWithDateProvidedByFunction():Boolean[1] @@ -133,7 +178,11 @@ function <> meta::relational::tests::milestoning::businessdate::testM let busDate = %2015-10-16; let result = execute(|Product.all($busDate)->project([p|$p.name, p|$p.classification(constantDate()).type],['name','classificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); - assertSameSQL('select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-01-01\' and "productclassificationtable_0".thru_z > \'2015-01-01\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-01-01\' and "productclassificationtable_0".thru_z > \'2015-01-01\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-01-01\' and "productclassificationtable_0".thru_z > DATE\'2015-01-01\') where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testViewChainsWithBusinessDate():Boolean[1] @@ -159,7 +208,11 @@ function <> meta::relational::tests::milestoning::latestDate::testPop let products = $result.values; assertEquals([2,3], $products.id); assertEquals([%9999-12-31T00:00:00.0000+0000, %9999-12-31T00:00:00.0000+0000], $products.businessDate); - assertSameSQL('select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'9999-12-31T00:00:00.0000+0000\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".thru_z = \'9999-12-31 00:00:00.0000\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = \'9999-12-31 00:00:00.0000\') where "root".thru_z = \'9999-12-31 00:00:00.0000\'', $result); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'9999-12-31T00:00:00.0000+0000\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".thru_z = \'9999-12-31 00:00:00.0000\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = \'9999-12-31 00:00:00.0000\') where "root".thru_z = \'9999-12-31 00:00:00.0000\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'9999-12-31T00:00:00.0000+0000\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') where "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testPopulationOfMilestonedBusinessDateWithTimeComponentInQuery():Boolean[1] @@ -184,13 +237,21 @@ function <> meta::relational::tests::milestoning::businessdate::testQ let products = $result.values; assertEquals(1, $products->size()); assertEquals([2], $products->map(p|$p.id)); - assertSameSQL('select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" where "root".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'',$result); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" where "root".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" where "root".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::latestDate::testQueryOfMilestonedTypeUsingLatestWithFilterInMapping():Boolean[1] { let result = execute(|StockProduct.all(%latest), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", \'9999-12-31T00:00:00.0000+0000\' as "k_businessDate" from ProductTable as "root" where "root".type = \'STOCK\' and "root".thru_z = \'9999-12-31 00:00:00.0000\'',$result); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", \'9999-12-31T00:00:00.0000+0000\' as "k_businessDate" from ProductTable as "root" where "root".type = \'STOCK\' and "root".thru_z = \'9999-12-31 00:00:00.0000\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", \'9999-12-31T00:00:00.0000+0000\' as "k_businessDate" from ProductTable as "root" where "root".type = \'STOCK\' and "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testMilestoningQueryWithMilestoneFilterANdDifferentDatesOnTypeAndProperty():Boolean[1] @@ -200,14 +261,22 @@ function <> meta::relational::tests::milestoning::businessdate::testM let products = $result.values; assertEquals(1, $products->size()); assertEquals('ProductName2', $products->at(0).name); - assertSameSQL('select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-17\' and "productexchangetable_0".thru_z > \'2015-10-17\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-17\' and "productexchangetable_0".thru_z > \'2015-10-17\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-17\' and "productexchangetable_0".thru_z > DATE\'2015-10-17\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::latestDate::testMilestoningQueryWithMilestoneFilterAndDifferentDatesOnTypeWithLatestDateOnProperty():Boolean[1] { let date = %2015-10-15; let result = execute(|Product.all($date)->filter(p|$p.classification(%2015-10-16).type=='STOCK' && $p.exchange(%latest).name=='LNSE'), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-15\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-15\' and "stockproducttable_0".thru_z > \'2015-10-15\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-15\' and "productclassificationtable_0".thru_z > \'2015-10-15\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".thru_z = \'9999-12-31 00:00:00.0000\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-15\' and "root".thru_z > \'2015-10-15\'', $result); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-15\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-15\' and "stockproducttable_0".thru_z > \'2015-10-15\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-15\' and "productclassificationtable_0".thru_z > \'2015-10-15\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".thru_z = \'9999-12-31 00:00:00.0000\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-15\' and "root".thru_z > \'2015-10-15\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-15\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-15\' and "stockproducttable_0".thru_z > DATE\'2015-10-15\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-15\' and "productclassificationtable_0".thru_z > DATE\'2015-10-15\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= DATE\'2015-10-15\' and "root".thru_z > DATE\'2015-10-15\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testMilestoningQueryWithMultipleChildrenFromParentAsSourceForMilestoningFilter():Boolean[1] @@ -226,7 +295,11 @@ function <> meta::relational::tests::milestoning::businessdate::testM let products = $result.values; assertEquals(1, $products->size()); assertEquals('ProductName', $products->at(0).name); - assertSameSQL('select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-08-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-08-16\' and "stockproducttable_0".thru_z > \'2015-08-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-08-16\' and "productclassificationtable_0".thru_z > \'2015-08-16\') left outer join (select distinct "ordertable_1".prodFk from OrderTable as "ordertable_1" where "ordertable_1".id = 1) as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk is not null and "root".from_z <= \'2015-08-16\' and "root".thru_z > \'2015-08-16\'', $result); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-08-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-08-16\' and "stockproducttable_0".thru_z > \'2015-08-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-08-16\' and "productclassificationtable_0".thru_z > \'2015-08-16\') left outer join (select distinct "ordertable_1".prodFk from OrderTable as "ordertable_1" where "ordertable_1".id = 1) as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk is not null and "root".from_z <= \'2015-08-16\' and "root".thru_z > \'2015-08-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-08-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-08-16\' and "stockproducttable_0".thru_z > DATE\'2015-08-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-08-16\' and "productclassificationtable_0".thru_z > DATE\'2015-08-16\') left outer join (select distinct "ordertable_1".prodFk from OrderTable as "ordertable_1" where "ordertable_1".id = 1) as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk is not null and "root".from_z <= DATE\'2015-08-16\' and "root".thru_z > DATE\'2015-08-16\'', + $result->sqlRemoveFormatting() + ); } @@ -246,13 +319,21 @@ function <> meta::relational::tests::milestoning::businessdate::testN let orders = $result.values; assertEquals(1,$orders->size()); assertEquals(2, $orders->at(0).id); - assertSameSQL('select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-10-15\' and "producttable_1".thru_z > \'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', $result); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-10-15\' and "producttable_1".thru_z > \'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', + 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= DATE\'2015-10-15\' and "producttable_1".thru_z > DATE\'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::latestDate::testNonMilestoningQueryWithLatestMilestoneFilterSimple():Boolean[1] { let result = execute(|Order.all()->filter(o|$o.product(%latest)->exists(p|$p.id==2)), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".thru_z = \'9999-12-31 00:00:00.0000\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', $result); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".thru_z = \'9999-12-31 00:00:00.0000\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', + 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testNonMilestoningQueryWithMilestoneFilterOnAssociation():Boolean[1] @@ -261,7 +342,11 @@ function <> meta::relational::tests::milestoning::businessdate::testN let orders = $result.values; assertEquals(1,$orders->size()); assertEquals(2, $orders->at(0).id); - assertSameSQL('select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-15\' and "producttable_0".thru_z > \'2015-10-15\') where "producttable_0".id = 2', $result); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-15\' and "producttable_0".thru_z > \'2015-10-15\') where "producttable_0".id = 2', + 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-10-15\' and "producttable_0".thru_z > DATE\'2015-10-15\') where "producttable_0".id = 2', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testNonMilestoningQueryWithMilestoneFilterNoResults():Boolean[1] @@ -269,7 +354,11 @@ function <> meta::relational::tests::milestoning::businessdate::testN let result = execute(|Order.all()->filter(o|$o.product(%2015-8-25)->exists(p|$p.id==2)), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let orders = $result.values; assertEquals(0,$orders->size()); - assertSameSQL('select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-08-25\' and "producttable_1".thru_z > \'2015-08-25\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', $result); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-08-25\' and "producttable_1".thru_z > \'2015-08-25\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', + 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= DATE\'2015-08-25\' and "producttable_1".thru_z > DATE\'2015-08-25\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testNonMilestoningQueryWithMilestoneFilterProject():Boolean[1] @@ -278,7 +367,11 @@ function <> meta::relational::tests::milestoning::businessdate::testN ->project([o|$o.id,o|$o.product(%2015-10-15).name],['orderId','productName']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(['2,ProductName1'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".id as "orderId", "producttable_2".name as "productName" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-10-15\' and "producttable_1".thru_z > \'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) left outer join ProductTable as "producttable_2" on ("root".prodFk = "producttable_2".id and "producttable_2".from_z <= \'2015-10-15\' and "producttable_2".thru_z > \'2015-10-15\') where "producttable_0".id is not null', $result); + assertEqualsH2Compatible( + 'select "root".id as "orderId", "producttable_2".name as "productName" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-10-15\' and "producttable_1".thru_z > \'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) left outer join ProductTable as "producttable_2" on ("root".prodFk = "producttable_2".id and "producttable_2".from_z <= \'2015-10-15\' and "producttable_2".thru_z > \'2015-10-15\') where "producttable_0".id is not null', + 'select "root".id as "orderId", "producttable_2".name as "productName" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= DATE\'2015-10-15\' and "producttable_1".thru_z > DATE\'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) left outer join ProductTable as "producttable_2" on ("root".prodFk = "producttable_2".id and "producttable_2".from_z <= DATE\'2015-10-15\' and "producttable_2".thru_z > DATE\'2015-10-15\') where "producttable_0".id is not null', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testNonMilestoningQueryWithMilestoneFilterProjectUsingSamePropertyWithDifferentDates():Boolean[1] @@ -287,7 +380,11 @@ function <> meta::relational::tests::milestoning::businessdate::testN ->project([o|$o.id,o|$o.product(%2015-10-16).name],['orderId','productName']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(['2,ProductName2'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".id as "orderId", "producttable_2".name as "productName" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-10-15\' and "producttable_1".thru_z > \'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) left outer join ProductTable as "producttable_2" on ("root".prodFk = "producttable_2".id and "producttable_2".from_z <= \'2015-10-16\' and "producttable_2".thru_z > \'2015-10-16\') where "producttable_0".id is not null', $result); + assertEqualsH2Compatible( + 'select "root".id as "orderId", "producttable_2".name as "productName" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-10-15\' and "producttable_1".thru_z > \'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) left outer join ProductTable as "producttable_2" on ("root".prodFk = "producttable_2".id and "producttable_2".from_z <= \'2015-10-16\' and "producttable_2".thru_z > \'2015-10-16\') where "producttable_0".id is not null', + 'select "root".id as "orderId", "producttable_2".name as "productName" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= DATE\'2015-10-15\' and "producttable_1".thru_z > DATE\'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) left outer join ProductTable as "producttable_2" on ("root".prodFk = "producttable_2".id and "producttable_2".from_z <= DATE\'2015-10-16\' and "producttable_2".thru_z > DATE\'2015-10-16\') where "producttable_0".id is not null', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testMilestoningQueryWithSimpleProjectWithMilestoneFilter():Boolean[1] @@ -296,7 +393,11 @@ function <> meta::relational::tests::milestoning::businessdate::testM ->project([p|$p.name, p|$p.classification(%2015-10-16).description],['name','classificationDescription']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(['ProductName2,STOCK DESC-V3'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".name as "name", "productclassificationtable_0".type_description as "classificationDescription" from ProductTable as "root" left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-17\' and "productexchangetable_0".thru_z > \'2015-10-17\') left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".name as "name", "productclassificationtable_0".type_description as "classificationDescription" from ProductTable as "root" left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-17\' and "productexchangetable_0".thru_z > \'2015-10-17\') left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type_description as "classificationDescription" from ProductTable as "root" left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-17\' and "productexchangetable_0".thru_z > DATE\'2015-10-17\') left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testMilestoningQueryWithAggProjectWithMilestoneFilter():Boolean[1] @@ -314,7 +415,11 @@ function <> meta::relational::tests::milestoning::businessdate::testM let tds = $result.values->at(0); assertEquals(['ProductName2,GS-Mod-S1*GS-Mod-S2'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".name as "prodName", "producttable_1".aggCol as "synonyms" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-17\' and "productexchangetable_0".thru_z > \'2015-10-17\') left outer join (select "producttable_2".name as name, "producttable_2".id as id, group_concat("productsynonymtable_0".synonym separator \'*\' ) as aggCol from ProductTable as "producttable_2" left outer join ProductSynonymTable as "productsynonymtable_0" on ("producttable_2".name = "productsynonymtable_0".name and "productsynonymtable_0".from_z <= \'2015-10-16\' and "productsynonymtable_0".thru_z > \'2015-10-16\') group by "producttable_2".id,"producttable_2".name) as "producttable_1" on ("root".name = "producttable_1".name and "root".id = "producttable_1".id) where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".name as "prodName", "producttable_1".aggCol as "synonyms" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-17\' and "productexchangetable_0".thru_z > \'2015-10-17\') left outer join (select "producttable_2".name as name, "producttable_2".id as id, group_concat("productsynonymtable_0".synonym separator \'*\' ) as aggCol from ProductTable as "producttable_2" left outer join ProductSynonymTable as "productsynonymtable_0" on ("producttable_2".name = "productsynonymtable_0".name and "productsynonymtable_0".from_z <= \'2015-10-16\' and "productsynonymtable_0".thru_z > \'2015-10-16\') group by "producttable_2".id,"producttable_2".name) as "producttable_1" on ("root".name = "producttable_1".name and "root".id = "producttable_1".id) where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "prodName", "producttable_1".aggCol as "synonyms" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-17\' and "productexchangetable_0".thru_z > DATE\'2015-10-17\') left outer join (select "producttable_2".name as name, "producttable_2".id as id, group_concat("productsynonymtable_0".synonym separator \'*\' ) as aggCol from ProductTable as "producttable_2" left outer join ProductSynonymTable as "productsynonymtable_0" on ("producttable_2".name = "productsynonymtable_0".name and "productsynonymtable_0".from_z <= DATE\'2015-10-16\' and "productsynonymtable_0".thru_z > DATE\'2015-10-16\') group by "producttable_2".id,"producttable_2".name) as "producttable_1" on ("root".name = "producttable_1".name and "root".id = "producttable_1".id) where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testMilestoningQueryWithGroupByFilterWithMilestoning():Boolean[1] @@ -333,7 +438,11 @@ function <> meta::relational::tests::milestoning::businessdate::testM let tds = $result.values->at(0); assertEquals(['ProductName2,GS-Mod-S1*GS-Mod-S2'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".name as "prodName", group_concat("productsynonymtable_0".synonym separator \'*\') as "synonyms" from ProductTable as "root" left outer join ProductSynonymTable as "productsynonymtable_0" on ("root".name = "productsynonymtable_0".name and "productsynonymtable_0".from_z <= \'2015-10-16\' and "productsynonymtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-17\' and "productexchangetable_0".thru_z > \'2015-10-17\') where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\' group by "prodName"', $result); + assertEqualsH2Compatible( + 'select "root".name as "prodName", group_concat("productsynonymtable_0".synonym separator \'*\') as "synonyms" from ProductTable as "root" left outer join ProductSynonymTable as "productsynonymtable_0" on ("root".name = "productsynonymtable_0".name and "productsynonymtable_0".from_z <= \'2015-10-16\' and "productsynonymtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-17\' and "productexchangetable_0".thru_z > \'2015-10-17\') where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\' group by "prodName"', + 'select "root".name as "prodName", group_concat("productsynonymtable_0".synonym separator \'*\') as "synonyms" from ProductTable as "root" left outer join ProductSynonymTable as "productsynonymtable_0" on ("root".name = "productsynonymtable_0".name and "productsynonymtable_0".from_z <= DATE\'2015-10-16\' and "productsynonymtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-17\' and "productexchangetable_0".thru_z > DATE\'2015-10-17\') where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\' group by "prodName"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testSimpleQueryWithParallelPathsDifferedByBusinessDate():Boolean[1] @@ -386,14 +495,18 @@ function <> meta::relational::tests::milestoning::businessdate::testB let result = execute(|Order.all()->project([col([o|$o.description.description],'orderDesc'),col([o|$o.product($productBusDate).name],'prodName')]), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(['order description 1,TDSNull', 'order description 2,ProductName2'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "orderdescriptiontable_0".description as "orderDesc", "producttable_0".name as "prodName" from OrderTable as "root" left outer join OrderDescriptionTable as "orderdescriptiontable_0" on ("root".id = "orderdescriptiontable_0".id) left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2016-01-01\' and "producttable_0".thru_z > \'2016-01-01\')', $result); + assertEqualsH2Compatible( + 'select "orderdescriptiontable_0".description as "orderDesc", "producttable_0".name as "prodName" from OrderTable as "root" left outer join OrderDescriptionTable as "orderdescriptiontable_0" on ("root".id = "orderdescriptiontable_0".id) left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2016-01-01\' and "producttable_0".thru_z > \'2016-01-01\')', + 'select "orderdescriptiontable_0".description as "orderDesc", "producttable_0".name as "prodName" from OrderTable as "root" left outer join OrderDescriptionTable as "orderdescriptiontable_0" on ("root".id = "orderdescriptiontable_0".id) left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2016-01-01\' and "producttable_0".thru_z > DATE\'2016-01-01\')', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testBusinessDatePropagationInColFunction_asQueryParam():Boolean[1] { let f= {productBusDate:Date[1] | Order.all()->project([col([o|$o.description.description],'orderDesc'),col([o|$o.product($productBusDate).name],'prodName')])}->cast(@FunctionDefinition); // queryParam is not resolved inside col lambda ( as its just a placeholder here) let plan = executionPlan($f, milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); //cant test via execute as params are not supplied - assertEquals( + assertEqualsH2Compatible( 'Sequence\n' + '(\n' + ' type = TDS[(orderDesc, String, VARCHAR(200), \"\"), (prodName, String, VARCHAR(200), \"\")]\n' + @@ -406,7 +519,24 @@ function <> meta::relational::tests::milestoning::businessdate::testB ' (\n' + ' type = TDS[(orderDesc, String, VARCHAR(200), \"\"), (prodName, String, VARCHAR(200), \"\")]\n' + ' resultColumns = [(\"orderDesc\", VARCHAR(200)), (\"prodName\", VARCHAR(200))]\n' + - ' sql = select \"orderdescriptiontable_0\".description as \"orderDesc\", \"producttable_0\".name as \"prodName\" from OrderTable as \"root\" left outer join OrderDescriptionTable as \"orderdescriptiontable_0\" on (\"root\".id = \"orderdescriptiontable_0\".id) left outer join ProductTable as \"producttable_0\" on (\"root\".prodFk = \"producttable_0\".id and \"producttable_0\".from_z <= \'${productBusDate}\' and \"producttable_0\".thru_z > \'${productBusDate}\')\n' + + ' sql = select "orderdescriptiontable_0".description as "orderDesc", "producttable_0".name as "prodName" from OrderTable as "root" left outer join OrderDescriptionTable as "orderdescriptiontable_0" on ("root".id = "orderdescriptiontable_0".id) left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'${productBusDate}\' and "producttable_0".thru_z > \'${productBusDate}\')\n' + + ' connection = TestDatabaseConnection(type = \"H2\")\n' + + ' )\n' + + ' )\n' + + ')\n', + 'Sequence\n' + + '(\n' + + ' type = TDS[(orderDesc, String, VARCHAR(200), \"\"), (prodName, String, VARCHAR(200), \"\")]\n' + + ' (\n' + + ' FunctionParametersValidationNode\n' + + ' (\n' + + ' functionParameters = [productBusDate:Date[1]]\n' + + ' )\n' + + ' Relational\n' + + ' (\n' + + ' type = TDS[(orderDesc, String, VARCHAR(200), \"\"), (prodName, String, VARCHAR(200), \"\")]\n' + + ' resultColumns = [(\"orderDesc\", VARCHAR(200)), (\"prodName\", VARCHAR(200))]\n' + + ' sql = select "orderdescriptiontable_0".description as "orderDesc", "producttable_0".name as "prodName" from OrderTable as "root" left outer join OrderDescriptionTable as "orderdescriptiontable_0" on ("root".id = "orderdescriptiontable_0".id) left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= TIMESTAMP\'${productBusDate}\' and "producttable_0".thru_z > TIMESTAMP\'${productBusDate}\')\n' + ' connection = TestDatabaseConnection(type = \"H2\")\n' + ' )\n' + ' )\n' + @@ -420,7 +550,11 @@ function <> meta::relational::tests::milestoning::businessdate::testB let result = execute(|Order.all()->project([col([o|$o.description.description],'orderDesc','Spec1'),col([o|$o.product($productBusDate).name],'prodName','Spec2')]), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(['order description 1,TDSNull', 'order description 2,ProductName2'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "orderdescriptiontable_0".description as "orderDesc", "producttable_0".name as "prodName" from OrderTable as "root" left outer join OrderDescriptionTable as "orderdescriptiontable_0" on ("root".id = "orderdescriptiontable_0".id) left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2016-01-01\' and "producttable_0".thru_z > \'2016-01-01\')', $result); + assertEqualsH2Compatible( + 'select "orderdescriptiontable_0".description as "orderDesc", "producttable_0".name as "prodName" from OrderTable as "root" left outer join OrderDescriptionTable as "orderdescriptiontable_0" on ("root".id = "orderdescriptiontable_0".id) left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2016-01-01\' and "producttable_0".thru_z > \'2016-01-01\')', + 'select "orderdescriptiontable_0".description as "orderDesc", "producttable_0".name as "prodName" from OrderTable as "root" left outer join OrderDescriptionTable as "orderdescriptiontable_0" on ("root".id = "orderdescriptiontable_0".id) left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2016-01-01\' and "producttable_0".thru_z > DATE\'2016-01-01\')', + $result->sqlRemoveFormatting() + ); } function meta::relational::tests::milestoning::businessdate::productType(order :Order[1], productBusDate:Date[1]):String[0..1] @@ -433,7 +567,8 @@ function meta::relational::tests::milestoning::businessdate::filterOrders(order $order->filter(o|$o.product($o.orderDate->toOne()).type=='STOCK')->map(x|$x.id); } -function <> meta::relational::tests::milestoning::businessdate::testQueryWithVariableRundateWithinLambda():Boolean[1] +// Duplicated tests: Inflow execution does not add DATE specification to the return value of select but plan generation does +function <> meta::relational::tests::milestoning::businessdate::testInFlowQueryWithVariableRundateWithinLambda():Boolean[1] { let result = execute({| let date = %2015-10-16; @@ -442,9 +577,28 @@ function <> meta::relational::tests::milestoning::businessdate::testQ let products = $result.values; assertEquals(1, $products->size()); assertEquals('ProductName2', $products->at(0).name); - assertSameSQL('select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-16\' and "productexchangetable_0".thru_z > DATE\'2015-10-16\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } +function <> meta::relational::tests::milestoning::businessdate::testPlanQueryWithVariableRundateWithinLambda():Boolean[1] +{ + let result = execute({| + let date = %2015-10-16; + Product.all($date)->filter(p|$p.classification($date).type=='STOCK' && $p.exchange($date).name=='LNSE'); + }, milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); + let products = $result.values; + assertEquals(1, $products->size()); + assertEquals('ProductName2', $products->at(0).name); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", DATE\'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-16\' and "productexchangetable_0".thru_z > DATE\'2015-10-16\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); +} function <> meta::relational::tests::milestoning::businessdate::testExecutionPlanForQueryWithVariableRundateWithinLambda():Boolean[1] { @@ -452,7 +606,7 @@ function <> meta::relational::tests::milestoning::businessdate::testE let date = %2015-10-16; Product.all($date)->filter(p|$p.classification($date).type=='STOCK' && $p.exchange($date).name=='LNSE'); }, milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals( + assertEqualsH2Compatible( 'Sequence\n'+ '(\n'+ ' type = Class[impls=(meta::relational::tests::milestoning::Product | milestoningmap.meta_relational_tests_milestoning_Product)]\n'+ @@ -478,11 +632,43 @@ function <> meta::relational::tests::milestoning::businessdate::testE ' type = Class[impls=(meta::relational::tests::milestoning::Product | milestoningmap.meta_relational_tests_milestoning_Product)]\n'+ ' resultSizeRange = *\n'+ ' resultColumns = [("pk_0", INT), ("pk_1", VARCHAR(200)), ("id", INT), ("name", VARCHAR(200)), ("type", VARCHAR(200)), ("stockProductName", VARCHAR(200)), ("classificationType", VARCHAR(200)), ("k_businessDate", "")]\n'+ - ' sql = select \"root\".id as \"pk_0\", \"root\".name as \"pk_1\", \"root\".id as \"id\", \"root\".name as \"name\", \"root\".type as \"type\", \"productdescriptiontable_0\".description as \"stockProductName\", \"productclassificationtable_0\".type as \"classificationType\", \'${date}\' as \"k_businessDate\" from ProductTable as \"root\" left outer join StockProductTable as \"stockproducttable_0\" on (\"root\".id = \"stockproducttable_0\".id and \"stockproducttable_0\".from_z <= \'${date}\' and \"stockproducttable_0\".thru_z > \'${date}\') left outer join ProductDescriptionTable as \"productdescriptiontable_0\" on (\"stockproducttable_0\".id = \"productdescriptiontable_0\".id) left outer join ProductClassificationTable as \"productclassificationtable_0\" on (\"root\".type = \"productclassificationtable_0\".type and \"productclassificationtable_0\".from_z <= \'${date}\' and \"productclassificationtable_0\".thru_z > \'${date}\') left outer join ProductClassificationTable as \"productclassificationtable_1\" on (\"root\".type = \"productclassificationtable_1\".type and \"productclassificationtable_1\".from_z <= \'${date}\' and \"productclassificationtable_1\".thru_z > \'${date}\') left outer join ProductExchangeTable as \"productexchangetable_0\" on (\"root\".exchange = \"productexchangetable_0\".name and \"productexchangetable_0\".from_z <= \'${date}\' and \"productexchangetable_0\".thru_z > \'${date}\') where (\"productclassificationtable_1\".type = \'STOCK\' and \"productexchangetable_0\".name = \'LNSE\') and \"root\".from_z <= \'${date}\' and \"root\".thru_z > \'${date}\'\n'+ + ' sql = select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'${date}\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'${date}\' and "stockproducttable_0".thru_z > \'${date}\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'${date}\' and "productclassificationtable_0".thru_z > \'${date}\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'${date}\' and "productclassificationtable_1".thru_z > \'${date}\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'${date}\' and "productexchangetable_0".thru_z > \'${date}\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'${date}\' and "root".thru_z > \'${date}\'\n'+ ' connection = TestDatabaseConnection(type = "H2")\n'+ ' )\n'+ ' )\n'+ - ')\n',$result->planToString(meta::relational::extension::relationalExtensions())); + ')\n', + 'Sequence\n'+ + '(\n'+ + ' type = Class[impls=(meta::relational::tests::milestoning::Product | milestoningmap.meta_relational_tests_milestoning_Product)]\n'+ + ' resultSizeRange = *\n'+ + ' (\n'+ + ' Allocation\n'+ + ' (\n'+ + ' type = StrictDate\n'+ + ' resultSizeRange = 1\n'+ + ' name = date\n'+ + ' value = \n'+ + ' (\n'+ + ' Constant\n'+ + ' (\n'+ + ' type = StrictDate\n'+ + ' resultSizeRange = 1\n'+ + ' values=[2015-10-16]\n'+ + ' )\n'+ + ' )\n'+ + ' )\n'+ + ' Relational\n'+ + ' (\n'+ + ' type = Class[impls=(meta::relational::tests::milestoning::Product | milestoningmap.meta_relational_tests_milestoning_Product)]\n'+ + ' resultSizeRange = *\n'+ + ' resultColumns = [("pk_0", INT), ("pk_1", VARCHAR(200)), ("id", INT), ("name", VARCHAR(200)), ("type", VARCHAR(200)), ("stockProductName", VARCHAR(200)), ("classificationType", VARCHAR(200)), ("k_businessDate", "")]\n'+ + ' sql = select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", DATE\'${date}\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'${date}\' and "stockproducttable_0".thru_z > DATE\'${date}\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'${date}\' and "productclassificationtable_0".thru_z > DATE\'${date}\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'${date}\' and "productclassificationtable_1".thru_z > DATE\'${date}\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'${date}\' and "productexchangetable_0".thru_z > DATE\'${date}\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= DATE\'${date}\' and "root".thru_z > DATE\'${date}\'\n'+ + ' connection = TestDatabaseConnection(type = "H2")\n'+ + ' )\n'+ + ' )\n'+ + ')\n', + $result->planToString(meta::relational::extension::relationalExtensions()) + ); } function <> meta::relational::tests::milestoning::businessdate::testNonMilestoningQueryWithMilestoneFilterVariableRundateWithinLambda():Boolean[1] @@ -493,7 +679,11 @@ function <> meta::relational::tests::milestoning::businessdate::testN let orders = $result.values; assertEquals(1,$orders->size()); assertEquals(2, $orders->at(0).id); - assertSameSQL('select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-10-15\' and "producttable_1".thru_z > \'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', $result); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-10-15\' and "producttable_1".thru_z > \'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', + 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= DATE\'2015-10-15\' and "producttable_1".thru_z > DATE\'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testMilestoningCriteriaAppliedToSimplePropertyJoinFromTemporalClass():Boolean[1] @@ -505,7 +695,11 @@ function <> meta::relational::tests::milestoning::businessdate::testM let tds = $result.values->at(0); assertEquals(['1,TDSNull', '2,ProductName2'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".id as "id", "productdescriptiontable_0".description as "stockProductName" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= \'2015-10-16\' and "stockproducttable_1".thru_z > \'2015-10-16\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id)', $result); + assertEqualsH2Compatible( + 'select "root".id as "id", "productdescriptiontable_0".description as "stockProductName" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= \'2015-10-16\' and "stockproducttable_1".thru_z > \'2015-10-16\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id)', + 'select "root".id as "id", "productdescriptiontable_0".description as "stockProductName" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-10-16\' and "producttable_0".thru_z > DATE\'2015-10-16\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= DATE\'2015-10-16\' and "stockproducttable_1".thru_z > DATE\'2015-10-16\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id)', + $result->sqlRemoveFormatting() + ); assertSameSQL('select "root".id as "id", "productclassificationtable_0".type as "productClassificationType" from OrderTable as "root" left outer join (select "ordertable_2".id as id, "orderdetailstable_0".settlementDate as settlementDate, "producttable_0".type as type from OrderTable as "ordertable_2" left outer join ProductTable as "producttable_0" on ("ordertable_2".prodFk = "producttable_0".id) left outer join OrderDetailsTable as "orderdetailstable_0" on ("ordertable_2".id = "orderdetailstable_0".id) where "producttable_0".from_z <= "orderdetailstable_0".settlementDate and "producttable_0".thru_z > "orderdetailstable_0".settlementDate) as "ordertable_1" on ("root".id = "ordertable_1".id) left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".from_z as from_z, "productclassificationtable_1".thru_z as thru_z from ProductClassificationTable as "productclassificationtable_1") as "productclassificationtable_0" on ("productclassificationtable_0".from_z <= "ordertable_1".settlementDate and "productclassificationtable_0".thru_z > "ordertable_1".settlementDate and "ordertable_1".type = "productclassificationtable_0".type)', $result2); assertSameSQL('select "root".id as "id", "productclassificationtable_0".type as "productClassificationType" from OrderTable as "root" left outer join (select "ordertable_2".id as id, "orderdetailstable_0".settlementDate as settlementDate, "producttable_0".type as type from OrderTable as "ordertable_2" left outer join OrderDetailsTable as "orderdetailstable_0" on ("ordertable_2".id = "orderdetailstable_0".id) left outer join ProductTable as "producttable_0" on ("ordertable_2".prodFk = "producttable_0".id) where "producttable_0".from_z <= dateadd(DAY, -1, "orderdetailstable_0".settlementDate) and "producttable_0".thru_z > dateadd(DAY, -1, "orderdetailstable_0".settlementDate)) as "ordertable_1" on ("root".id = "ordertable_1".id) left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".from_z as from_z, "productclassificationtable_1".thru_z as thru_z from ProductClassificationTable as "productclassificationtable_1") as "productclassificationtable_0" on ("productclassificationtable_0".from_z <= dateadd(DAY, -1, "ordertable_1".settlementDate) and "productclassificationtable_0".thru_z > dateadd(DAY, -1, "ordertable_1".settlementDate) and "ordertable_1".type = "productclassificationtable_0".type)', $result3); } @@ -516,14 +710,22 @@ function <> meta::relational::tests::milestoning::businessdate::testM let result = execute(|Order.all()->project([o|$o.id, o|$o.productQp($businessDate).stockProductName],['id','stockProductName']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(['1,TDSNull', '2,ProductName2'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".id as "id", "productdescriptiontable_0".description as "stockProductName" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= \'2015-10-16\' and "stockproducttable_1".thru_z > \'2015-10-16\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id)', $result); + assertEqualsH2Compatible( + 'select "root".id as "id", "productdescriptiontable_0".description as "stockProductName" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= \'2015-10-16\' and "stockproducttable_1".thru_z > \'2015-10-16\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id)', + 'select "root".id as "id", "productdescriptiontable_0".description as "stockProductName" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-10-16\' and "producttable_0".thru_z > DATE\'2015-10-16\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= DATE\'2015-10-16\' and "stockproducttable_1".thru_z > DATE\'2015-10-16\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testMilestoningCriteriaOriginatingFromQualifiedPropertyAppliedToSimplePropertyJoinFromTemporalClass():Boolean[1] { let businessDate = %2015-10-16; let result = execute(|Order.all()->project([o|$o.id, o|$o.product($businessDate).classificationWithDateConstant().exchangeName],['id','productExchangeNameUsingDateConstantPropagatedFromQP']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "root".id as "id", "productexchangetable_0".name as "productExchangeNameUsingDateConstantPropagatedFromQP" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".exchange from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= \'9999-12-31\' and "productclassificationtable_1".thru_z > \'9999-12-31\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= \'9999-12-31\' and "productexchangetable_1".thru_z > \'9999-12-31\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name)', $result); + assertEqualsH2Compatible( + 'select "root".id as "id", "productexchangetable_0".name as "productExchangeNameUsingDateConstantPropagatedFromQP" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".exchange from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= \'9999-12-31\' and "productclassificationtable_1".thru_z > \'9999-12-31\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= \'9999-12-31\' and "productexchangetable_1".thru_z > \'9999-12-31\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name)', + 'select "root".id as "id", "productexchangetable_0".name as "productExchangeNameUsingDateConstantPropagatedFromQP" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-10-16\' and "producttable_0".thru_z > DATE\'2015-10-16\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".exchange from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= DATE\'9999-12-31\' and "productclassificationtable_1".thru_z > DATE\'9999-12-31\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= DATE\'9999-12-31\' and "productexchangetable_1".thru_z > DATE\'9999-12-31\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name)', + $result->sqlRemoveFormatting() + ); } @@ -533,7 +735,11 @@ function <> meta::relational::tests::milestoning::businessdate::testM let result = execute(|Order.all()->project([o|$o.id, o|$o.stockProduct($businessDate).name],['orderId','stockProductName']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(['1,TDSNull', '2,ProductName2'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".id as "orderId", "producttable_0".name as "stockProductName" from OrderTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".prodFk = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join (select "producttable_1".id as id, "producttable_1".name as name from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-10-16\' and "producttable_1".thru_z > \'2015-10-16\') as "producttable_0" on ("producttable_0".id = "stockproducttable_0".id)', $result); + assertEqualsH2Compatible( + 'select "root".id as "orderId", "producttable_0".name as "stockProductName" from OrderTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".prodFk = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join (select "producttable_1".id as id, "producttable_1".name as name from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-10-16\' and "producttable_1".thru_z > \'2015-10-16\') as "producttable_0" on ("producttable_0".id = "stockproducttable_0".id)', + 'select "root".id as "orderId", "producttable_0".name as "stockProductName" from OrderTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".prodFk = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join (select "producttable_1".id as id, "producttable_1".name as name from ProductTable as "producttable_1" where "producttable_1".from_z <= DATE\'2015-10-16\' and "producttable_1".thru_z > DATE\'2015-10-16\') as "producttable_0" on ("producttable_0".id = "stockproducttable_0".id)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testMilestonedQualifiedPropertyUsedOnSuperTypeInEmbedded():Boolean[1] @@ -544,7 +750,11 @@ function <> meta::relational::tests::milestoning::businessdate::testM let tds = $result.values->at(0); assertEquals(['STOCK', 'OPTION'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".type as "classificationType" from ProductTable as "root" where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'',$result); + assertEqualsH2Compatible( + 'select "root".type as "classificationType" from ProductTable as "root" where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".type as "classificationType" from ProductTable as "root" where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testMilestoneFiltersAreNotAppliedToEmbeddedPropertiesInQualifiersTriggeringIsolationSelfJoin():Boolean[1] @@ -555,7 +765,11 @@ function <> meta::relational::tests::milestoning::businessdate::testM let tds = $result.values->at(0); assertEquals(['LNSE'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "productexchangetable_0".name as "1" from ProductTable as "root" left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where "root".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "productexchangetable_0".name as "1" from ProductTable as "root" left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where "root".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "productexchangetable_0".name as "1" from ProductTable as "root" left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-16\' and "productexchangetable_0".thru_z > DATE\'2015-10-16\') where "root".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testIsolationOfIntermediateJoinsInMultiLevelPropertyJoin():Boolean[1] @@ -566,8 +780,11 @@ function <> meta::relational::tests::milestoning::businessdate::testI let tds = $result.values->at(0); assertEquals(['SYS1'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "systemtable_0".name as "name" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= \'2015-10-17\' and "productclassificationsystemtable_0".thru_z > \'2015-10-17\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "root".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); - + assertEqualsH2Compatible( + 'select "systemtable_0".name as "name" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= \'2015-10-17\' and "productclassificationsystemtable_0".thru_z > \'2015-10-17\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "root".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "systemtable_0".name as "name" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= DATE\'2015-10-17\' and "productclassificationsystemtable_0".thru_z > DATE\'2015-10-17\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "root".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testIsolationWhereLeftSideOfFilterIsEmbedded():Boolean[1] @@ -578,7 +795,11 @@ function <> meta::relational::tests::milestoning::businessdate::testI let tds = $result.values->at(0); assertEquals(['ProductName2', 'ProductName3'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".name as "name" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= \'2015-10-16\' and "productclassificationsystemtable_0".thru_z > \'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "systemtable_0".name = \'SYS1\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".name as "name" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= \'2015-10-16\' and "productclassificationsystemtable_0".thru_z > \'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "systemtable_0".name = \'SYS1\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationsystemtable_0".thru_z > DATE\'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "systemtable_0".name = \'SYS1\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function meta::relational::tests::milestoning::businessdate::constantDate():Date[1] @@ -591,7 +812,11 @@ function <> meta::relational::tests::milestoning::businessdate::testD let query = {|Order.all()->project([o|$o.id, o|$o.stockProduct(constantDate()).name],['orderId','stockProductName'])}; let sql = toSQLString($query, milestoningmap, meta::relational::runtime::DatabaseType.H2, meta::relational::extension::relationalExtensions()); - assertSameSQL('select "root".id as "orderId", "ProductTable_d#7_l_d_m2_r".name as "stockProductName" from OrderTable as "root" left outer join StockProductTable as "StockProductTable_d#7_d_m2" on ("root".prodFk = "StockProductTable_d#7_d_m2".id and "StockProductTable_d#7_d_m2".from_z <= \'2015-01-01\' and "StockProductTable_d#7_d_m2".thru_z > \'2015-01-01\') left outer join (select "ProductTable_d#7_l".id as id, "ProductTable_d#7_l".name as name from ProductTable as "ProductTable_d#7_l" where "ProductTable_d#7_l".from_z <= \'2015-01-01\' and "ProductTable_d#7_l".thru_z > \'2015-01-01\') as "ProductTable_d#7_l_d_m2_r" on ("ProductTable_d#7_l_d_m2_r".id = "StockProductTable_d#7_d_m2".id)',$sql); + assertEqualsH2Compatible( + 'select "root".id as "orderId", "ProductTable_d#7_l_d_m2_r".name as "stockProductName" from OrderTable as "root" left outer join StockProductTable as "StockProductTable_d#7_d_m2" on ("root".prodFk = "StockProductTable_d#7_d_m2".id and "StockProductTable_d#7_d_m2".from_z <= \'2015-01-01\' and "StockProductTable_d#7_d_m2".thru_z > \'2015-01-01\') left outer join (select "ProductTable_d#7_l".id as id, "ProductTable_d#7_l".name as name from ProductTable as "ProductTable_d#7_l" where "ProductTable_d#7_l".from_z <= \'2015-01-01\' and "ProductTable_d#7_l".thru_z > \'2015-01-01\') as "ProductTable_d#7_l_d_m2_r" on ("ProductTable_d#7_l_d_m2_r".id = "StockProductTable_d#7_d_m2".id)', + 'select "root".id as "orderId", "ProductTable_d#7_l_d_m2_r".name as "stockProductName" from OrderTable as "root" left outer join StockProductTable as "StockProductTable_d#7_d_m2" on ("root".prodFk = "StockProductTable_d#7_d_m2".id and "StockProductTable_d#7_d_m2".from_z <= DATE\'2015-01-01\' and "StockProductTable_d#7_d_m2".thru_z > DATE\'2015-01-01\') left outer join (select "ProductTable_d#7_l".id as id, "ProductTable_d#7_l".name as name from ProductTable as "ProductTable_d#7_l" where "ProductTable_d#7_l".from_z <= DATE\'2015-01-01\' and "ProductTable_d#7_l".thru_z > DATE\'2015-01-01\') as "ProductTable_d#7_l_d_m2_r" on ("ProductTable_d#7_l_d_m2_r".id = "StockProductTable_d#7_d_m2".id)', + $sql->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testDateFunctionInMilestonedPropertyWithMilestonedEntity():Boolean[1] @@ -600,7 +825,11 @@ function <> meta::relational::tests::milestoning::businessdate::testD let query = {|Product.all($businessDate)->filter(p|$p.classification(constantDate()).system.name=='SYS1')->project([p|$p.name],['name'])}; let sql = toSQLString($query, milestoningMapWithEmbeddedSimple, meta::relational::runtime::DatabaseType.H2, meta::relational::extension::relationalExtensions()); - assertSameSQL('select "root".name as "name" from ProductTable as "root" left outer join ProductClassificationSystemTable as "ProductClassificationSystemTable_d#5_d#2_m1" on ("root".classificationSystemId = "ProductClassificationSystemTable_d#5_d#2_m1".id and "ProductClassificationSystemTable_d#5_d#2_m1".from_z <= \'2015-01-01\' and "ProductClassificationSystemTable_d#5_d#2_m1".thru_z > \'2015-01-01\') left outer join SystemTable as "SystemTable_d#5_l_d#2_m1_r" on ("ProductClassificationSystemTable_d#5_d#2_m1".name = "SystemTable_d#5_l_d#2_m1_r".name) where "SystemTable_d#5_l_d#2_m1_r".name = \'SYS1\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $sql); + assertEqualsH2Compatible( + 'select "root".name as "name" from ProductTable as "root" left outer join ProductClassificationSystemTable as "ProductClassificationSystemTable_d#5_d#2_m1" on ("root".classificationSystemId = "ProductClassificationSystemTable_d#5_d#2_m1".id and "ProductClassificationSystemTable_d#5_d#2_m1".from_z <= \'2015-01-01\' and "ProductClassificationSystemTable_d#5_d#2_m1".thru_z > \'2015-01-01\') left outer join SystemTable as "SystemTable_d#5_l_d#2_m1_r" on ("ProductClassificationSystemTable_d#5_d#2_m1".name = "SystemTable_d#5_l_d#2_m1_r".name) where "SystemTable_d#5_l_d#2_m1_r".name = \'SYS1\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name" from ProductTable as "root" left outer join ProductClassificationSystemTable as "ProductClassificationSystemTable_d#5_d#2_m1" on ("root".classificationSystemId = "ProductClassificationSystemTable_d#5_d#2_m1".id and "ProductClassificationSystemTable_d#5_d#2_m1".from_z <= DATE\'2015-01-01\' and "ProductClassificationSystemTable_d#5_d#2_m1".thru_z > DATE\'2015-01-01\') left outer join SystemTable as "SystemTable_d#5_l_d#2_m1_r" on ("ProductClassificationSystemTable_d#5_d#2_m1".name = "SystemTable_d#5_l_d#2_m1_r".name) where "SystemTable_d#5_l_d#2_m1_r".name = \'SYS1\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $sql->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testAllVersionsQueryWithMilestonedProperty():Boolean[1] @@ -622,7 +851,11 @@ function <> meta::relational::tests::milestoning::businessdate::testM assertEquals(2, $pnls->size()); assertSameElements([200.0, 101.0], $pnls->map(p|$p.pnl)); assertEquals([$businessDate,$businessDate], $pnls->map(p|$p.businessDate)); - assertSameSQL('select "root".TRADE_ID as "pk_0", "root".pnl as "pnl", "root".supportContact as "supportContactName", \'2016-07-22\' as "k_businessDate" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersontable_0".NAME as supportContact, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" left outer join tradeTable as "tradetable_0" on ("root".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= \'2016-07-22\' and "salespersontable_0".thru_z > \'2016-07-22\') where "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\') as "root"', $result); + assertEqualsH2Compatible( + 'select "root".TRADE_ID as "pk_0", "root".pnl as "pnl", "root".supportContact as "supportContactName", \'2016-07-22\' as "k_businessDate" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersontable_0".NAME as supportContact, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" left outer join tradeTable as "tradetable_0" on ("root".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= \'2016-07-22\' and "salespersontable_0".thru_z > \'2016-07-22\') where "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\') as "root"', + 'select "root".TRADE_ID as "pk_0", "root".pnl as "pnl", "root".supportContact as "supportContactName", \'2016-07-22\' as "k_businessDate" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersontable_0".NAME as supportContact, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" left outer join tradeTable as "tradetable_0" on ("root".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= DATE\'2016-07-22\' and "salespersontable_0".thru_z > DATE\'2016-07-22\') where "root".from_z <= DATE\'2016-07-22\' and "root".thru_z > DATE\'2016-07-22\') as "root"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testMilestoningContextPropagatedFromParentViewToViewsReferencedInItsColumns():Boolean[1] @@ -633,7 +866,11 @@ function <> meta::relational::tests::milestoning::businessdate::testM assertEquals(2, $pnls->size()); assertSameElements([200.0, 101.0], $pnls->map(p|$p.pnl)); assertEquals([$businessDate,$businessDate], $pnls->map(p|$p.businessDate)); - assertSameSQL('select "root".TRADE_ID as "pk_0", "root".pnl as "pnl", "root".supportContactViaView as "supportContactName", \'2016-07-22\' as "k_businessDate" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersonview_0".SALES_PERSON_NAME as supportContactViaView, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" left outer join tradeTable as "tradetable_0" on ("root".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= \'2016-07-22\' and "salespersontable_0".thru_z > \'2016-07-22\') left outer join (select "root".ACCOUNT_ID as ACCOUNT_ID, "root".NAME as SALES_PERSON_NAME from salesPersonTable as "root" where "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\') as "salespersonview_0" on ("salespersontable_0".ACCOUNT_ID = "salespersonview_0".ACCOUNT_ID) where "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\') as "root"', $result); + assertEqualsH2Compatible( + 'select "root".TRADE_ID as "pk_0", "root".pnl as "pnl", "root".supportContactViaView as "supportContactName", \'2016-07-22\' as "k_businessDate" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersonview_0".SALES_PERSON_NAME as supportContactViaView, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" left outer join tradeTable as "tradetable_0" on ("root".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= \'2016-07-22\' and "salespersontable_0".thru_z > \'2016-07-22\') left outer join (select "root".ACCOUNT_ID as ACCOUNT_ID, "root".NAME as SALES_PERSON_NAME from salesPersonTable as "root" where "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\') as "salespersonview_0" on ("salespersontable_0".ACCOUNT_ID = "salespersonview_0".ACCOUNT_ID) where "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\') as "root"', + 'select "root".TRADE_ID as "pk_0", "root".pnl as "pnl", "root".supportContactViaView as "supportContactName", \'2016-07-22\' as "k_businessDate" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersonview_0".SALES_PERSON_NAME as supportContactViaView, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" left outer join tradeTable as "tradetable_0" on ("root".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= DATE\'2016-07-22\' and "salespersontable_0".thru_z > DATE\'2016-07-22\') left outer join (select "root".ACCOUNT_ID as ACCOUNT_ID, "root".NAME as SALES_PERSON_NAME from salesPersonTable as "root" where "root".from_z <= DATE\'2016-07-22\' and "root".thru_z > DATE\'2016-07-22\') as "salespersonview_0" on ("salespersontable_0".ACCOUNT_ID = "salespersonview_0".ACCOUNT_ID) where "root".from_z <= DATE\'2016-07-22\' and "root".thru_z > DATE\'2016-07-22\') as "root"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testMilestoningContextPropagatedWithViewAsMainRelationOfView():Boolean[1] @@ -644,7 +881,11 @@ function <> meta::relational::tests::milestoning::businessdate::testM assertEquals(2, $pnls->size()); assertSameElements([200.0, 101.0], $pnls->map(p|$p.pnl)); assertEquals([$businessDate,$businessDate], $pnls->map(p|$p.businessDate)); - assertSameSQL('select "root".TRADE_ID as "pk_0", "root".pnl as "pnl", "root".supportContactViaView as "supportContactName", \'2016-07-22\' as "k_businessDate" from (select "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersonview_0".SALES_PERSON_NAME as supportContactViaView, \'2016-07-22\' as "k_businessDate" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" where "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\') as "root" left outer join tradePnlTable as "tradepnltable_1" on ("root".TRADE_ID = "tradepnltable_1".TRADE_ID and "tradepnltable_1".from_z <= \'2016-07-22\' and "tradepnltable_1".thru_z > \'2016-07-22\') left outer join tradeTable as "tradetable_0" on ("tradepnltable_1".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= \'2016-07-22\' and "salespersontable_0".thru_z > \'2016-07-22\') left outer join (select "root".ACCOUNT_ID as ACCOUNT_ID, "root".NAME as SALES_PERSON_NAME from salesPersonTable as "root" where "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\') as "salespersonview_0" on ("salespersontable_0".ACCOUNT_ID = "salespersonview_0".ACCOUNT_ID)) as "root"', $result); + assertEqualsH2Compatible( + 'select "root".TRADE_ID as "pk_0", "root".pnl as "pnl", "root".supportContactViaView as "supportContactName", \'2016-07-22\' as "k_businessDate" from (select "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersonview_0".SALES_PERSON_NAME as supportContactViaView, \'2016-07-22\' as "k_businessDate" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" where "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\') as "root" left outer join tradePnlTable as "tradepnltable_1" on ("root".TRADE_ID = "tradepnltable_1".TRADE_ID and "tradepnltable_1".from_z <= \'2016-07-22\' and "tradepnltable_1".thru_z > \'2016-07-22\') left outer join tradeTable as "tradetable_0" on ("tradepnltable_1".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= \'2016-07-22\' and "salespersontable_0".thru_z > \'2016-07-22\') left outer join (select "root".ACCOUNT_ID as ACCOUNT_ID, "root".NAME as SALES_PERSON_NAME from salesPersonTable as "root" where "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\') as "salespersonview_0" on ("salespersontable_0".ACCOUNT_ID = "salespersonview_0".ACCOUNT_ID)) as "root"', + 'select "root".TRADE_ID as "pk_0", "root".pnl as "pnl", "root".supportContactViaView as "supportContactName", \'2016-07-22\' as "k_businessDate" from (select "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersonview_0".SALES_PERSON_NAME as supportContactViaView, \'2016-07-22\' as "k_businessDate" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" where "root".from_z <= DATE\'2016-07-22\' and "root".thru_z > DATE\'2016-07-22\') as "root" left outer join tradePnlTable as "tradepnltable_1" on ("root".TRADE_ID = "tradepnltable_1".TRADE_ID and "tradepnltable_1".from_z <= DATE\'2016-07-22\' and "tradepnltable_1".thru_z > DATE\'2016-07-22\') left outer join tradeTable as "tradetable_0" on ("tradepnltable_1".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= DATE\'2016-07-22\' and "salespersontable_0".thru_z > DATE\'2016-07-22\') left outer join (select "root".ACCOUNT_ID as ACCOUNT_ID, "root".NAME as SALES_PERSON_NAME from salesPersonTable as "root" where "root".from_z <= DATE\'2016-07-22\' and "root".thru_z > DATE\'2016-07-22\') as "salespersonview_0" on ("salespersontable_0".ACCOUNT_ID = "salespersonview_0".ACCOUNT_ID)) as "root"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testMilestoningCriteriaAppliedToJoinFromViewRoot():Boolean[1] @@ -653,7 +894,11 @@ function <> meta::relational::tests::milestoning::businessdate::testM let result = execute(|TradePnl.all($businessDate)->project([p|$p.pnl,p|$p.supportContactName],['pnl','supportContact']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(['101.0,Joe Martinez', '200.0,John Martinez'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".pnl as "pnl", "root".supportContact as "supportContact" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersontable_0".NAME as supportContact, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" left outer join tradeTable as "tradetable_0" on ("root".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= \'2016-07-22\' and "salespersontable_0".thru_z > \'2016-07-22\') where "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\') as "root"', $result); + assertEqualsH2Compatible( + 'select "root".pnl as "pnl", "root".supportContact as "supportContact" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersontable_0".NAME as supportContact, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" left outer join tradeTable as "tradetable_0" on ("root".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= \'2016-07-22\' and "salespersontable_0".thru_z > \'2016-07-22\') where "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\') as "root"', + 'select "root".pnl as "pnl", "root".supportContact as "supportContact" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersontable_0".NAME as supportContact, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" left outer join tradeTable as "tradetable_0" on ("root".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= DATE\'2016-07-22\' and "salespersontable_0".thru_z > DATE\'2016-07-22\') where "root".from_z <= DATE\'2016-07-22\' and "root".thru_z > DATE\'2016-07-22\') as "root"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testIsolationOfCaseStmtTrueFalseFilters():Boolean[1] @@ -662,7 +907,11 @@ function <> meta::relational::tests::milestoning::businessdate::testI let products = $result.values; assertEquals(1, $products->size()); assertEquals('ProductName2', $products->at(0).name); - assertSameSQL('select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2016-07-22\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2016-07-22\' and "stockproducttable_0".thru_z > \'2016-07-22\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2016-07-22\' and "productclassificationtable_0".thru_z > \'2016-07-22\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2016-07-23\' and "productclassificationtable_1".thru_z > \'2016-07-23\') left outer join ProductTable as "producttable_1" on ("producttable_1".type = "productclassificationtable_1".type and "producttable_1".from_z <= \'2016-07-23\' and "producttable_1".thru_z > \'2016-07-23\') left outer join ProductClassificationTable as "productclassificationtable_2" on ("root".type = "productclassificationtable_2".type and "productclassificationtable_2".from_z <= \'2016-07-24\' and "productclassificationtable_2".thru_z > \'2016-07-24\') left outer join ProductTable as "producttable_2" on ("producttable_2".type = "productclassificationtable_2".type and "producttable_2".from_z <= \'2016-07-24\' and "producttable_2".thru_z > \'2016-07-24\') where "root".name = case when "root".id = 1 then "producttable_1".name else "producttable_2".name end and "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\'', $result); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2016-07-22\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2016-07-22\' and "stockproducttable_0".thru_z > \'2016-07-22\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2016-07-22\' and "productclassificationtable_0".thru_z > \'2016-07-22\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2016-07-23\' and "productclassificationtable_1".thru_z > \'2016-07-23\') left outer join ProductTable as "producttable_1" on ("producttable_1".type = "productclassificationtable_1".type and "producttable_1".from_z <= \'2016-07-23\' and "producttable_1".thru_z > \'2016-07-23\') left outer join ProductClassificationTable as "productclassificationtable_2" on ("root".type = "productclassificationtable_2".type and "productclassificationtable_2".from_z <= \'2016-07-24\' and "productclassificationtable_2".thru_z > \'2016-07-24\') left outer join ProductTable as "producttable_2" on ("producttable_2".type = "productclassificationtable_2".type and "producttable_2".from_z <= \'2016-07-24\' and "producttable_2".thru_z > \'2016-07-24\') where "root".name = case when "root".id = 1 then "producttable_1".name else "producttable_2".name end and "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2016-07-22\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2016-07-22\' and "stockproducttable_0".thru_z > DATE\'2016-07-22\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2016-07-22\' and "productclassificationtable_0".thru_z > DATE\'2016-07-22\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2016-07-23\' and "productclassificationtable_1".thru_z > DATE\'2016-07-23\') left outer join ProductTable as "producttable_1" on ("producttable_1".type = "productclassificationtable_1".type and "producttable_1".from_z <= DATE\'2016-07-23\' and "producttable_1".thru_z > DATE\'2016-07-23\') left outer join ProductClassificationTable as "productclassificationtable_2" on ("root".type = "productclassificationtable_2".type and "productclassificationtable_2".from_z <= DATE\'2016-07-24\' and "productclassificationtable_2".thru_z > DATE\'2016-07-24\') left outer join ProductTable as "producttable_2" on ("producttable_2".type = "productclassificationtable_2".type and "producttable_2".from_z <= DATE\'2016-07-24\' and "producttable_2".thru_z > DATE\'2016-07-24\') where "root".name = case when "root".id = 1 then "producttable_1".name else "producttable_2".name end and "root".from_z <= DATE\'2016-07-22\' and "root".thru_z > DATE\'2016-07-22\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::qualifier::setUp():Any[0..1] @@ -670,7 +919,8 @@ function <> meta::relational::tests::milestoning::qualifier: initDatabase(); } -function <> meta::relational::tests::milestoning::qualifier::testFilterWithMilestoning():Boolean[1] +// Duplicated tests: InFlow does not add DATE specifier to return value while plan generation does. Probable milestoning type inference +function <> meta::relational::tests::milestoning::qualifier::testInFlowFilterWithMilestoning():Boolean[1] { let result = execute({| let date = %2015-10-16; @@ -679,7 +929,27 @@ function <> meta::relational::tests::milestoning::qualifier::testFilt let products = $result.values; assertEquals(1, $products->size()); assertEquals('ProductName2', $products->at(0).name); - assertSameSQL('select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); +} + +function <> meta::relational::tests::milestoning::qualifier::testPlanFilterWithMilestoning():Boolean[1] +{ + let result = execute({| + let date = %2015-10-16; + Product.all($date)->filter(p|$p.classification($date).type=='STOCK'); + }, milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); + let products = $result.values; + assertEquals(1, $products->size()); + assertEquals('ProductName2', $products->at(0).name); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", DATE\'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } @@ -691,7 +961,11 @@ function <> meta::relational::tests::milestoning::qualifier::testProj }, milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let products = $result.values->at(0); assertEquals(1, $products->size()); - assertSameSQL('select "productclassificationtable_0".type = \'STOCK\' as "c1" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "productclassificationtable_0".type = \'STOCK\' as "c1" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "productclassificationtable_0".type = \'STOCK\' as "c1" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } @@ -699,7 +973,11 @@ function <> meta::relational::tests::milestoning::businessdate::testM { let businessDate = %2015-10-16; let result = execute(|Order.all()->project([o|$o.id, o|$o.product($businessDate).classificationWithDateConstant().exchangeName],['id','productExchangeNameUsingDateConstantPropagatedFromQP']), milestoningmapMultipleJoinOperations, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "root".id as "id", "productexchangetable_0".name as "productExchangeNameUsingDateConstantPropagatedFromQP" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".exchange from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= \'9999-12-31\' and "productclassificationtable_1".thru_z > \'9999-12-31\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= \'9999-12-31\' and "productexchangetable_1".thru_z > \'9999-12-31\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name or ("productclassificationtable_0".exchange is null and "productexchangetable_0".name is null))', $result); + assertEqualsH2Compatible( + 'select "root".id as "id", "productexchangetable_0".name as "productExchangeNameUsingDateConstantPropagatedFromQP" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".exchange from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= \'9999-12-31\' and "productclassificationtable_1".thru_z > \'9999-12-31\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= \'9999-12-31\' and "productexchangetable_1".thru_z > \'9999-12-31\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name or ("productclassificationtable_0".exchange is null and "productexchangetable_0".name is null))', + 'select "root".id as "id", "productexchangetable_0".name as "productExchangeNameUsingDateConstantPropagatedFromQP" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-10-16\' and "producttable_0".thru_z > DATE\'2015-10-16\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".exchange from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= DATE\'9999-12-31\' and "productclassificationtable_1".thru_z > DATE\'9999-12-31\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= DATE\'9999-12-31\' and "productexchangetable_1".thru_z > DATE\'9999-12-31\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name or ("productclassificationtable_0".exchange is null and "productexchangetable_0".name is null))', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testConcatenationOfTemporalTdsQueries():Boolean[1] @@ -714,7 +992,11 @@ function <> meta::relational::tests::milestoning::businessdate::testC let tds = $result.values->at(0); assertEquals(['2015-08-16,ProductName,TDSNull', '2015-08-27,ProductName1,LNSE', '2015-08-27,ProductName3,TDSNull', '2015-10-16,ProductName2,LNSE', '2015-10-16,ProductName3,TDSNull', '2015-10-17,ProductName2,LNSE', '2015-10-17,ProductName3,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "unionalias_0"."businessDate" as "businessDate", "unionalias_0"."productName" as "productName", "unionalias_0"."exchangeName" as "exchangeName" from (select \'2015-08-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-08-16\' and "productexchangetable_0".thru_z > \'2015-08-16\') where (("productclassificationtable_0".from_z <= \'2015-08-16\' and "productclassificationtable_0".thru_z > \'2015-08-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-08-16\' and "root".thru_z > \'2015-08-16\' UNION ALL select \'2015-08-27\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-08-27\' and "productexchangetable_0".thru_z > \'2015-08-27\') where (("productclassificationtable_0".from_z <= \'2015-08-27\' and "productclassificationtable_0".thru_z > \'2015-08-27\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-08-27\' and "root".thru_z > \'2015-08-27\' UNION ALL select \'2015-10-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where (("productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\' UNION ALL select \'2015-10-17\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-17\' and "productexchangetable_0".thru_z > \'2015-10-17\') where (("productclassificationtable_0".from_z <= \'2015-10-17\' and "productclassificationtable_0".thru_z > \'2015-10-17\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-10-17\' and "root".thru_z > \'2015-10-17\') as "unionalias_0"', $result); + assertEqualsH2Compatible( + 'select "unionalias_0"."businessDate" as "businessDate", "unionalias_0"."productName" as "productName", "unionalias_0"."exchangeName" as "exchangeName" from (select \'2015-08-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-08-16\' and "productexchangetable_0".thru_z > \'2015-08-16\') where (("productclassificationtable_0".from_z <= \'2015-08-16\' and "productclassificationtable_0".thru_z > \'2015-08-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-08-16\' and "root".thru_z > \'2015-08-16\' UNION ALL select \'2015-08-27\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-08-27\' and "productexchangetable_0".thru_z > \'2015-08-27\') where (("productclassificationtable_0".from_z <= \'2015-08-27\' and "productclassificationtable_0".thru_z > \'2015-08-27\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-08-27\' and "root".thru_z > \'2015-08-27\' UNION ALL select \'2015-10-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where (("productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\' UNION ALL select \'2015-10-17\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-17\' and "productexchangetable_0".thru_z > \'2015-10-17\') where (("productclassificationtable_0".from_z <= \'2015-10-17\' and "productclassificationtable_0".thru_z > \'2015-10-17\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-10-17\' and "root".thru_z > \'2015-10-17\') as "unionalias_0"', + 'select "unionalias_0"."businessDate" as "businessDate", "unionalias_0"."productName" as "productName", "unionalias_0"."exchangeName" as "exchangeName" from (select DATE\'2015-08-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-08-16\' and "productexchangetable_0".thru_z > DATE\'2015-08-16\') where (("productclassificationtable_0".from_z <= DATE\'2015-08-16\' and "productclassificationtable_0".thru_z > DATE\'2015-08-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= DATE\'2015-08-16\' and "root".thru_z > DATE\'2015-08-16\' UNION ALL select DATE\'2015-08-27\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-08-27\' and "productexchangetable_0".thru_z > DATE\'2015-08-27\') where (("productclassificationtable_0".from_z <= DATE\'2015-08-27\' and "productclassificationtable_0".thru_z > DATE\'2015-08-27\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= DATE\'2015-08-27\' and "root".thru_z > DATE\'2015-08-27\' UNION ALL select DATE\'2015-10-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-16\' and "productexchangetable_0".thru_z > DATE\'2015-10-16\') where (("productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\' UNION ALL select DATE\'2015-10-17\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-17\' and "productexchangetable_0".thru_z > DATE\'2015-10-17\') where (("productclassificationtable_0".from_z <= DATE\'2015-10-17\' and "productclassificationtable_0".thru_z > DATE\'2015-10-17\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= DATE\'2015-10-17\' and "root".thru_z > DATE\'2015-10-17\') as "unionalias_0"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testConcatenationOfTemporalTdsQueriesWithGroupBy():Boolean[1] @@ -729,7 +1011,11 @@ function <> meta::relational::tests::milestoning::businessdate::testC let tds = $result.values->at(0); assertEquals(['2015-08-16,ProductName,TDSNull,1', '2015-08-27,ProductName1,LNSE,1', '2015-08-27,ProductName3,TDSNull,1', '2015-10-16,ProductName2,LNSE,1', '2015-10-16,ProductName3,TDSNull,1', '2015-10-17,ProductName2,LNSE,1', '2015-10-17,ProductName3,TDSNull,1'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "unionalias_0"."businessDate" as "businessDate", "unionalias_0"."productName" as "productName", "unionalias_0"."exchangeName" as "exchangeName", "unionalias_0"."count" as "count" from (select \'2015-08-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-08-16\' and "productexchangetable_0".thru_z > \'2015-08-16\') where (("productclassificationtable_0".from_z <= \'2015-08-16\' and "productclassificationtable_0".thru_z > \'2015-08-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-08-16\' and "root".thru_z > \'2015-08-16\' group by "businessDate","productName","exchangeName" UNION ALL select \'2015-08-27\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-08-27\' and "productexchangetable_0".thru_z > \'2015-08-27\') where (("productclassificationtable_0".from_z <= \'2015-08-27\' and "productclassificationtable_0".thru_z > \'2015-08-27\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-08-27\' and "root".thru_z > \'2015-08-27\' group by "businessDate","productName","exchangeName" UNION ALL select \'2015-10-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where (("productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\' group by "businessDate","productName","exchangeName" UNION ALL select \'2015-10-17\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-17\' and "productexchangetable_0".thru_z > \'2015-10-17\') where (("productclassificationtable_0".from_z <= \'2015-10-17\' and "productclassificationtable_0".thru_z > \'2015-10-17\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-10-17\' and "root".thru_z > \'2015-10-17\' group by "businessDate","productName","exchangeName") as "unionalias_0"', $result); + assertEqualsH2Compatible( + 'select "unionalias_0"."businessDate" as "businessDate", "unionalias_0"."productName" as "productName", "unionalias_0"."exchangeName" as "exchangeName", "unionalias_0"."count" as "count" from (select \'2015-08-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-08-16\' and "productexchangetable_0".thru_z > \'2015-08-16\') where (("productclassificationtable_0".from_z <= \'2015-08-16\' and "productclassificationtable_0".thru_z > \'2015-08-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-08-16\' and "root".thru_z > \'2015-08-16\' group by "businessDate","productName","exchangeName" UNION ALL select \'2015-08-27\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-08-27\' and "productexchangetable_0".thru_z > \'2015-08-27\') where (("productclassificationtable_0".from_z <= \'2015-08-27\' and "productclassificationtable_0".thru_z > \'2015-08-27\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-08-27\' and "root".thru_z > \'2015-08-27\' group by "businessDate","productName","exchangeName" UNION ALL select \'2015-10-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where (("productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\' group by "businessDate","productName","exchangeName" UNION ALL select \'2015-10-17\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-17\' and "productexchangetable_0".thru_z > \'2015-10-17\') where (("productclassificationtable_0".from_z <= \'2015-10-17\' and "productclassificationtable_0".thru_z > \'2015-10-17\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-10-17\' and "root".thru_z > \'2015-10-17\' group by "businessDate","productName","exchangeName") as "unionalias_0"', + 'select "unionalias_0"."businessDate" as "businessDate", "unionalias_0"."productName" as "productName", "unionalias_0"."exchangeName" as "exchangeName", "unionalias_0"."count" as "count" from (select DATE\'2015-08-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-08-16\' and "productexchangetable_0".thru_z > DATE\'2015-08-16\') where (("productclassificationtable_0".from_z <= DATE\'2015-08-16\' and "productclassificationtable_0".thru_z > DATE\'2015-08-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= DATE\'2015-08-16\' and "root".thru_z > DATE\'2015-08-16\' group by "businessDate","productName","exchangeName" UNION ALL select DATE\'2015-08-27\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-08-27\' and "productexchangetable_0".thru_z > DATE\'2015-08-27\') where (("productclassificationtable_0".from_z <= DATE\'2015-08-27\' and "productclassificationtable_0".thru_z > DATE\'2015-08-27\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= DATE\'2015-08-27\' and "root".thru_z > DATE\'2015-08-27\' group by "businessDate","productName","exchangeName" UNION ALL select DATE\'2015-10-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-16\' and "productexchangetable_0".thru_z > DATE\'2015-10-16\') where (("productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\' group by "businessDate","productName","exchangeName" UNION ALL select DATE\'2015-10-17\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-17\' and "productexchangetable_0".thru_z > DATE\'2015-10-17\') where (("productclassificationtable_0".from_z <= DATE\'2015-10-17\' and "productclassificationtable_0".thru_z > DATE\'2015-10-17\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= DATE\'2015-10-17\' and "root".thru_z > DATE\'2015-10-17\' group by "businessDate","productName","exchangeName") as "unionalias_0"', + $result->sqlRemoveFormatting() + ); } @@ -738,7 +1024,11 @@ function <> meta::relational::tests::milestoning::businessdate::testP let result = execute(|Order.all()->filter(o| $o.product(%2015-9-1).name == 'ProductName1'), partiallyMilestoningUnionMap, testRuntime(), meta::relational::extension::relationalExtensions()); let order = $result.values; assertEquals([2, 2], $order.id); - assertEquals('select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".id as id, "root".name as "ProductTablename_ProductTableNoMilestoningname" from ProductTable as "root" where "root".from_z <= \'2015-09-01\' and "root".thru_z > \'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".id as id, "root".name as "ProductTablename_ProductTableNoMilestoningname" from ProductTableNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (("unionalias_1"."from_z_0" <= \'2015-09-01\' and "unionalias_1"."thru_z_0" > \'2015-09-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null)) where "unionalias_1"."ProductTablename_ProductTableNoMilestoningname" = \'ProductName1\'', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".id as id, "root".name as "ProductTablename_ProductTableNoMilestoningname" from ProductTable as "root" where "root".from_z <= \'2015-09-01\' and "root".thru_z > \'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".id as id, "root".name as "ProductTablename_ProductTableNoMilestoningname" from ProductTableNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (("unionalias_1"."from_z_0" <= \'2015-09-01\' and "unionalias_1"."thru_z_0" > \'2015-09-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null)) where "unionalias_1"."ProductTablename_ProductTableNoMilestoningname" = \'ProductName1\'', + 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".id as id, "root".name as "ProductTablename_ProductTableNoMilestoningname" from ProductTable as "root" where "root".from_z <= DATE\'2015-09-01\' and "root".thru_z > DATE\'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".id as id, "root".name as "ProductTablename_ProductTableNoMilestoningname" from ProductTableNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (("unionalias_1"."from_z_0" <= DATE\'2015-09-01\' and "unionalias_1"."thru_z_0" > DATE\'2015-09-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null)) where "unionalias_1"."ProductTablename_ProductTableNoMilestoningname" = \'ProductName1\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testPartiallyMilestoningUnionOperationWithNonTemporalRootWithPropagation():Boolean[1] @@ -746,7 +1036,11 @@ function <> meta::relational::tests::milestoning::businessdate::testP let result = execute(|Order.all()->filter(o| $o.product(%2015-9-1).classification.description == 'STOCK DESC-V2'), partiallyMilestoningUnionMap, testRuntime(), meta::relational::extension::relationalExtensions()); let order = $result.values; assertEquals([1, 1, 2, 2, 1, 1, 2, 2], $order.id); - assertEquals('select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".id as id, "root".type as type_0, null as type_1 from ProductTable as "root" where "root".from_z <= \'2015-09-01\' and "root".thru_z > \'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".id as id, null as type_0, "root".type as type_1 from ProductTableNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (("unionalias_1"."from_z_0" <= \'2015-09-01\' and "unionalias_1"."thru_z_0" > \'2015-09-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null)) left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTable as "root" where "root".from_z <= \'2015-09-01\' and "root".thru_z > \'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTableNoMilestoning as "root") as "unionalias_2" on (("unionalias_1".type_0 = "unionalias_2".type or "unionalias_1".type_1 = "unionalias_2".type) and (("unionalias_2"."from_z_0" <= \'2015-09-01\' and "unionalias_2"."thru_z_0" > \'2015-09-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."thru_z_0") is null)) where "unionalias_2"."ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" = \'STOCK DESC-V2\'', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".id as id, "root".type as type_0, null as type_1 from ProductTable as "root" where "root".from_z <= \'2015-09-01\' and "root".thru_z > \'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".id as id, null as type_0, "root".type as type_1 from ProductTableNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (("unionalias_1"."from_z_0" <= \'2015-09-01\' and "unionalias_1"."thru_z_0" > \'2015-09-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null)) left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTable as "root" where "root".from_z <= \'2015-09-01\' and "root".thru_z > \'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTableNoMilestoning as "root") as "unionalias_2" on (("unionalias_1".type_0 = "unionalias_2".type or "unionalias_1".type_1 = "unionalias_2".type) and (("unionalias_2"."from_z_0" <= \'2015-09-01\' and "unionalias_2"."thru_z_0" > \'2015-09-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."thru_z_0") is null)) where "unionalias_2"."ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" = \'STOCK DESC-V2\'', + 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".id as id, "root".type as type_0, null as type_1 from ProductTable as "root" where "root".from_z <= DATE\'2015-09-01\' and "root".thru_z > DATE\'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".id as id, null as type_0, "root".type as type_1 from ProductTableNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (("unionalias_1"."from_z_0" <= DATE\'2015-09-01\' and "unionalias_1"."thru_z_0" > DATE\'2015-09-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null)) left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTable as "root" where "root".from_z <= DATE\'2015-09-01\' and "root".thru_z > DATE\'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTableNoMilestoning as "root") as "unionalias_2" on (("unionalias_1".type_0 = "unionalias_2".type or "unionalias_1".type_1 = "unionalias_2".type) and (("unionalias_2"."from_z_0" <= DATE\'2015-09-01\' and "unionalias_2"."thru_z_0" > DATE\'2015-09-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."thru_z_0") is null)) where "unionalias_2"."ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" = \'STOCK DESC-V2\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testPartiallyMilestoningUnionOperationWithTemporalRootWithPropagation():Boolean[1] @@ -754,7 +1048,11 @@ function <> meta::relational::tests::milestoning::businessdate::testP let result = execute(|Product.all(%2015-9-1)->filter(p| $p.classification.description == 'STOCK DESC-V2'), partiallyMilestoningUnionMap, testRuntime(), meta::relational::extension::relationalExtensions()); let product = $result.values; assertEquals([2, 2, 1, 1], $product.id); - assertEquals('select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_1_0" as "pk_1_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_1_1" as "pk_1_1", "unionBase"."id" as "id", "unionBase"."name" as "name", "unionBase"."k_businessDate" as "k_businessDate", "unionBase"."from_z_0" as "from_z_0", "unionBase"."thru_z_0" as "thru_z_0" from (select \'0\' as u_type, "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".id as "id", "root".name as "name", \'2015-09-01\' as "k_businessDate", "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".type as type_0, null as type_1 from ProductTable as "root" where "root".from_z <= \'2015-09-01\' and "root".thru_z > \'2015-09-01\' UNION ALL select \'1\' as u_type, null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".id as "id", "root".name as "name", \'2015-09-01\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as type_0, "root".type as type_1 from ProductTableNoMilestoning as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTable as "root" where "root".from_z <= \'2015-09-01\' and "root".thru_z > \'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTableNoMilestoning as "root") as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (("unionalias_1"."from_z_0" <= \'2015-09-01\' and "unionalias_1"."thru_z_0" > \'2015-09-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null)) where "unionalias_1"."ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" = \'STOCK DESC-V2\'', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_1_0" as "pk_1_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_1_1" as "pk_1_1", "unionBase"."id" as "id", "unionBase"."name" as "name", "unionBase"."k_businessDate" as "k_businessDate", "unionBase"."from_z_0" as "from_z_0", "unionBase"."thru_z_0" as "thru_z_0" from (select \'0\' as u_type, "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".id as "id", "root".name as "name", \'2015-09-01\' as "k_businessDate", "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".type as type_0, null as type_1 from ProductTable as "root" where "root".from_z <= \'2015-09-01\' and "root".thru_z > \'2015-09-01\' UNION ALL select \'1\' as u_type, null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".id as "id", "root".name as "name", \'2015-09-01\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as type_0, "root".type as type_1 from ProductTableNoMilestoning as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTable as "root" where "root".from_z <= \'2015-09-01\' and "root".thru_z > \'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTableNoMilestoning as "root") as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (("unionalias_1"."from_z_0" <= \'2015-09-01\' and "unionalias_1"."thru_z_0" > \'2015-09-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null)) where "unionalias_1"."ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" = \'STOCK DESC-V2\'', + 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_1_0" as "pk_1_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_1_1" as "pk_1_1", "unionBase"."id" as "id", "unionBase"."name" as "name", "unionBase"."k_businessDate" as "k_businessDate", "unionBase"."from_z_0" as "from_z_0", "unionBase"."thru_z_0" as "thru_z_0" from (select \'0\' as u_type, "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".id as "id", "root".name as "name", \'2015-09-01\' as "k_businessDate", "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".type as type_0, null as type_1 from ProductTable as "root" where "root".from_z <= DATE\'2015-09-01\' and "root".thru_z > DATE\'2015-09-01\' UNION ALL select \'1\' as u_type, null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".id as "id", "root".name as "name", \'2015-09-01\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as type_0, "root".type as type_1 from ProductTableNoMilestoning as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTable as "root" where "root".from_z <= DATE\'2015-09-01\' and "root".thru_z > DATE\'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTableNoMilestoning as "root") as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (("unionalias_1"."from_z_0" <= DATE\'2015-09-01\' and "unionalias_1"."thru_z_0" > DATE\'2015-09-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null)) where "unionalias_1"."ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" = \'STOCK DESC-V2\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testMilestoningContextPropagationForSimplePropertyReferenceWithMultipleJoinsViaProject():Boolean[1] @@ -762,7 +1060,11 @@ function <> meta::relational::tests::milestoning::businessdate::testM let businessDate = %2015-9-1; let result = execute(| meta::relational::tests::milestoning::Order.all()->project([o|$o.product($businessDate)->filter(p|$p.name=='ProductName1').name],['productName']) , TestMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals(['TDSNull','ProductName1'], $result.values.rows->map(r|$r.values->makeString(','))); - assertEquals('select "producttable_0".name as "productName" from OrderTable as "root" left outer join (select "producttable_1".id as id, "producttable_1".from_z as from_z, "producttable_1".thru_z as thru_z, "producttable3_2".name as name from ProductTable as "producttable_1" left outer join (select "producttable2_1".identifier as identifier from ProductTable2 as "producttable2_1" where "producttable2_1".from_z <= \'2015-09-01\' and "producttable2_1".thru_z > \'2015-09-01\') as "producttable2_0" on ("producttable_1".id = "producttable2_0".identifier) left outer join (select "producttable3_1".name as name, "producttable3_1".id as id from ProductTable3 as "producttable3_1" where "producttable3_1".from_z <= \'2015-09-01\' and "producttable3_1".thru_z > \'2015-09-01\') as "producttable3_0" on ("producttable2_0".identifier = "producttable3_0".id) left outer join ProductTable2 as "producttable2_2" on ("producttable_1".id = "producttable2_2".identifier and "producttable2_2".from_z <= \'2015-09-01\' and "producttable2_2".thru_z > \'2015-09-01\') left outer join (select "producttable3_2".name as name, "producttable3_2".id as id from ProductTable3 as "producttable3_2" where "producttable3_2".from_z <= \'2015-09-01\' and "producttable3_2".thru_z > \'2015-09-01\') as "producttable3_2" on ("producttable2_2".identifier = "producttable3_2".id) where "producttable3_0".name = \'ProductName1\') as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-09-01\' and "producttable_0".thru_z > \'2015-09-01\')', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "producttable_0".name as "productName" from OrderTable as "root" left outer join (select "producttable_1".id as id, "producttable_1".from_z as from_z, "producttable_1".thru_z as thru_z, "producttable3_2".name as name from ProductTable as "producttable_1" left outer join (select "producttable2_1".identifier as identifier from ProductTable2 as "producttable2_1" where "producttable2_1".from_z <= \'2015-09-01\' and "producttable2_1".thru_z > \'2015-09-01\') as "producttable2_0" on ("producttable_1".id = "producttable2_0".identifier) left outer join (select "producttable3_1".name as name, "producttable3_1".id as id from ProductTable3 as "producttable3_1" where "producttable3_1".from_z <= \'2015-09-01\' and "producttable3_1".thru_z > \'2015-09-01\') as "producttable3_0" on ("producttable2_0".identifier = "producttable3_0".id) left outer join ProductTable2 as "producttable2_2" on ("producttable_1".id = "producttable2_2".identifier and "producttable2_2".from_z <= \'2015-09-01\' and "producttable2_2".thru_z > \'2015-09-01\') left outer join (select "producttable3_2".name as name, "producttable3_2".id as id from ProductTable3 as "producttable3_2" where "producttable3_2".from_z <= \'2015-09-01\' and "producttable3_2".thru_z > \'2015-09-01\') as "producttable3_2" on ("producttable2_2".identifier = "producttable3_2".id) where "producttable3_0".name = \'ProductName1\') as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-09-01\' and "producttable_0".thru_z > \'2015-09-01\')', + 'select "producttable_0".name as "productName" from OrderTable as "root" left outer join (select "producttable_1".id as id, "producttable_1".from_z as from_z, "producttable_1".thru_z as thru_z, "producttable3_2".name as name from ProductTable as "producttable_1" left outer join (select "producttable2_1".identifier as identifier from ProductTable2 as "producttable2_1" where "producttable2_1".from_z <= DATE\'2015-09-01\' and "producttable2_1".thru_z > DATE\'2015-09-01\') as "producttable2_0" on ("producttable_1".id = "producttable2_0".identifier) left outer join (select "producttable3_1".name as name, "producttable3_1".id as id from ProductTable3 as "producttable3_1" where "producttable3_1".from_z <= DATE\'2015-09-01\' and "producttable3_1".thru_z > DATE\'2015-09-01\') as "producttable3_0" on ("producttable2_0".identifier = "producttable3_0".id) left outer join ProductTable2 as "producttable2_2" on ("producttable_1".id = "producttable2_2".identifier and "producttable2_2".from_z <= DATE\'2015-09-01\' and "producttable2_2".thru_z > DATE\'2015-09-01\') left outer join (select "producttable3_2".name as name, "producttable3_2".id as id from ProductTable3 as "producttable3_2" where "producttable3_2".from_z <= DATE\'2015-09-01\' and "producttable3_2".thru_z > DATE\'2015-09-01\') as "producttable3_2" on ("producttable2_2".identifier = "producttable3_2".id) where "producttable3_0".name = \'ProductName1\') as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-09-01\' and "producttable_0".thru_z > DATE\'2015-09-01\')', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testFilterOnMilestonedClassInProjectWithTDSFilter():Boolean[1] @@ -770,8 +1072,11 @@ function <> meta::relational::tests::milestoning::businessdate::testF let businessDate = %2015-9-1; let result = execute(| meta::relational::tests::milestoning::Order.all()->project([o|$o.product($businessDate)->filter(p|$p.name=='ProductName1').name],['productName'])->filter(x|$x.getString('productName')=='ProductName1') , TestMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals(['ProductName1'], $result.values.rows->map(r|$r.values->makeString(','))); - assertEquals('select "producttable_0".name as "productName" from OrderTable as "root" left outer join (select "producttable_1".id as id, "producttable_1".from_z as from_z, "producttable_1".thru_z as thru_z, "producttable3_2".name as name from ProductTable as "producttable_1" left outer join (select "producttable2_1".identifier as identifier from ProductTable2 as "producttable2_1" where "producttable2_1".from_z <= \'2015-09-01\' and "producttable2_1".thru_z > \'2015-09-01\') as "producttable2_0" on ("producttable_1".id = "producttable2_0".identifier) left outer join (select "producttable3_1".name as name, "producttable3_1".id as id from ProductTable3 as "producttable3_1" where "producttable3_1".from_z <= \'2015-09-01\' and "producttable3_1".thru_z > \'2015-09-01\') as "producttable3_0" on ("producttable2_0".identifier = "producttable3_0".id) left outer join ProductTable2 as "producttable2_2" on ("producttable_1".id = "producttable2_2".identifier and "producttable2_2".from_z <= \'2015-09-01\' and "producttable2_2".thru_z > \'2015-09-01\') left outer join (select "producttable3_2".name as name, "producttable3_2".id as id from ProductTable3 as "producttable3_2" where "producttable3_2".from_z <= \'2015-09-01\' and "producttable3_2".thru_z > \'2015-09-01\') as "producttable3_2" on ("producttable2_2".identifier = "producttable3_2".id) where "producttable3_0".name = \'ProductName1\') as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-09-01\' and "producttable_0".thru_z > \'2015-09-01\') where "producttable_0".name = \'ProductName1\'', $result->sqlRemoveFormatting()); - + assertEqualsH2Compatible( + 'select "producttable_0".name as "productName" from OrderTable as "root" left outer join (select "producttable_1".id as id, "producttable_1".from_z as from_z, "producttable_1".thru_z as thru_z, "producttable3_2".name as name from ProductTable as "producttable_1" left outer join (select "producttable2_1".identifier as identifier from ProductTable2 as "producttable2_1" where "producttable2_1".from_z <= \'2015-09-01\' and "producttable2_1".thru_z > \'2015-09-01\') as "producttable2_0" on ("producttable_1".id = "producttable2_0".identifier) left outer join (select "producttable3_1".name as name, "producttable3_1".id as id from ProductTable3 as "producttable3_1" where "producttable3_1".from_z <= \'2015-09-01\' and "producttable3_1".thru_z > \'2015-09-01\') as "producttable3_0" on ("producttable2_0".identifier = "producttable3_0".id) left outer join ProductTable2 as "producttable2_2" on ("producttable_1".id = "producttable2_2".identifier and "producttable2_2".from_z <= \'2015-09-01\' and "producttable2_2".thru_z > \'2015-09-01\') left outer join (select "producttable3_2".name as name, "producttable3_2".id as id from ProductTable3 as "producttable3_2" where "producttable3_2".from_z <= \'2015-09-01\' and "producttable3_2".thru_z > \'2015-09-01\') as "producttable3_2" on ("producttable2_2".identifier = "producttable3_2".id) where "producttable3_0".name = \'ProductName1\') as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-09-01\' and "producttable_0".thru_z > \'2015-09-01\') where "producttable_0".name = \'ProductName1\'', + 'select "producttable_0".name as "productName" from OrderTable as "root" left outer join (select "producttable_1".id as id, "producttable_1".from_z as from_z, "producttable_1".thru_z as thru_z, "producttable3_2".name as name from ProductTable as "producttable_1" left outer join (select "producttable2_1".identifier as identifier from ProductTable2 as "producttable2_1" where "producttable2_1".from_z <= DATE\'2015-09-01\' and "producttable2_1".thru_z > DATE\'2015-09-01\') as "producttable2_0" on ("producttable_1".id = "producttable2_0".identifier) left outer join (select "producttable3_1".name as name, "producttable3_1".id as id from ProductTable3 as "producttable3_1" where "producttable3_1".from_z <= DATE\'2015-09-01\' and "producttable3_1".thru_z > DATE\'2015-09-01\') as "producttable3_0" on ("producttable2_0".identifier = "producttable3_0".id) left outer join ProductTable2 as "producttable2_2" on ("producttable_1".id = "producttable2_2".identifier and "producttable2_2".from_z <= DATE\'2015-09-01\' and "producttable2_2".thru_z > DATE\'2015-09-01\') left outer join (select "producttable3_2".name as name, "producttable3_2".id as id from ProductTable3 as "producttable3_2" where "producttable3_2".from_z <= DATE\'2015-09-01\' and "producttable3_2".thru_z > DATE\'2015-09-01\') as "producttable3_2" on ("producttable2_2".identifier = "producttable3_2".id) where "producttable3_0".name = \'ProductName1\') as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-09-01\' and "producttable_0".thru_z > DATE\'2015-09-01\') where "producttable_0".name = \'ProductName1\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testIsolationOfMilestoningFiltersReferencedInAllPartsOfIfStmt():Boolean[1] @@ -779,7 +1084,11 @@ function <> meta::relational::tests::milestoning::businessdate::testI let result = execute(|Order.all()->filter(o| $o.productName(%2015-8-15) == 'ProductName' ), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let orders = $result.values; assertEquals([1], $orders.id); - assertEquals('select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-08-15\' and "producttable_0".thru_z > \'2015-08-15\') where case when "producttable_0".name is null then \'empty\' else "producttable_0".name end = \'ProductName\'', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-08-15\' and "producttable_0".thru_z > \'2015-08-15\') where case when "producttable_0".name is null then \'empty\' else "producttable_0".name end = \'ProductName\'', + 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-08-15\' and "producttable_0".thru_z > DATE\'2015-08-15\') where case when "producttable_0".name is null then \'empty\' else "producttable_0".name end = \'ProductName\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testMultiLevelIsolatedToSubSelectHasCorrectExtraColumns():Boolean[1] @@ -789,7 +1098,11 @@ function <> meta::relational::tests::milestoning::businessdate::testM meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->toOne(); assertEquals(['2, true', '3, false'], $tds.rows->map(r|$r.values->makeString(', '))); - assertEquals('select "root".id as "id", case when "productexchangetable_0".city = \'London\' then \'true\' else \'false\' end as "isBrexitClassificationTypeExchange" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = \'9999-12-31 00:00:00.0000\') left outer join (select "productexchangetable_1".city as city, "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".thru_z = \'9999-12-31 00:00:00.0000\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".thru_z = \'9999-12-31 00:00:00.0000\'', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".id as "id", case when "productexchangetable_0".city = \'London\' then \'true\' else \'false\' end as "isBrexitClassificationTypeExchange" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = \'9999-12-31 00:00:00.0000\') left outer join (select "productexchangetable_1".city as city, "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".thru_z = \'9999-12-31 00:00:00.0000\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".thru_z = \'9999-12-31 00:00:00.0000\'', + 'select "root".id as "id", cast(case when "productexchangetable_0".city = \'London\' then \'true\' else \'false\' end as boolean) as "isBrexitClassificationTypeExchange" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') left outer join (select "productexchangetable_1".city as city, "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\'', + $result->sqlRemoveFormatting() + ); } @@ -805,7 +1118,11 @@ function <> meta::relational::tests::milestoning::businessdate::testM let tds = $result.values->at(0); assertEquals(['ProductName'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".name as "name" from ProductTable as "root" where not (not exists(select 1 from OrderTable as "ordertable_0" where "ordertable_0".id = 1 and "root".from_z <= \'2015-08-15\' and "root".thru_z > \'2015-08-15\' and "ordertable_0".prodFk = "root".id)) and "root".from_z <= \'2015-08-15\' and "root".thru_z > \'2015-08-15\'', $result); + assertEqualsH2Compatible( + 'select "root".name as "name" from ProductTable as "root" where not (not exists(select 1 from OrderTable as "ordertable_0" where "ordertable_0".id = 1 and "root".from_z <= \'2015-08-15\' and "root".thru_z > \'2015-08-15\' and "ordertable_0".prodFk = "root".id)) and "root".from_z <= \'2015-08-15\' and "root".thru_z > \'2015-08-15\'', + 'select "root".name as "name" from ProductTable as "root" where not (not exists(select 1 from OrderTable as "ordertable_0" where "ordertable_0".id = 1 and "root".from_z <= DATE\'2015-08-15\' and "root".thru_z > DATE\'2015-08-15\' and "ordertable_0".prodFk = "root".id)) and "root".from_z <= DATE\'2015-08-15\' and "root".thru_z > DATE\'2015-08-15\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testMilestoningFilterPropagationThroughNestedFilter():Boolean[1] @@ -814,21 +1131,33 @@ function <> meta::relational::tests::milestoning::businessdate::testM let tds = $result.values->at(0); assertEquals(['ProductName'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".name as "name" from ProductTable as "root" left outer join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) left outer join (select distinct "orderdescriptiontable_0".id from ProductTable as "root" left outer join OrderTable as "ordertable_1" on ("ordertable_1".prodFk = "root".id) left outer join OrderDescriptionTable as "orderdescriptiontable_0" on ("ordertable_1".id = "orderdescriptiontable_0".id and "orderdescriptiontable_0".id = 1) where "ordertable_1".id = 1 and "root".from_z <= \'2015-08-15\' and "root".thru_z > \'2015-08-15\') as "producttable_1" on ("ordertable_0".id = "producttable_1".id and "producttable_1".id = 1) where ("ordertable_0".id = 1 and "root".from_z <= \'2015-08-15\' and "root".thru_z > \'2015-08-15\' and not "producttable_1".id is null) and "root".from_z <= \'2015-08-15\' and "root".thru_z > \'2015-08-15\'', $result); + assertEqualsH2Compatible( + 'select "root".name as "name" from ProductTable as "root" left outer join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) left outer join (select distinct "orderdescriptiontable_0".id from ProductTable as "root" left outer join OrderTable as "ordertable_1" on ("ordertable_1".prodFk = "root".id) left outer join OrderDescriptionTable as "orderdescriptiontable_0" on ("ordertable_1".id = "orderdescriptiontable_0".id and "orderdescriptiontable_0".id = 1) where "ordertable_1".id = 1 and "root".from_z <= \'2015-08-15\' and "root".thru_z > \'2015-08-15\') as "producttable_1" on ("ordertable_0".id = "producttable_1".id and "producttable_1".id = 1) where ("ordertable_0".id = 1 and "root".from_z <= \'2015-08-15\' and "root".thru_z > \'2015-08-15\' and not "producttable_1".id is null) and "root".from_z <= \'2015-08-15\' and "root".thru_z > \'2015-08-15\'', + 'select "root".name as "name" from ProductTable as "root" left outer join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) left outer join (select distinct "orderdescriptiontable_0".id from ProductTable as "root" left outer join OrderTable as "ordertable_1" on ("ordertable_1".prodFk = "root".id) left outer join OrderDescriptionTable as "orderdescriptiontable_0" on ("ordertable_1".id = "orderdescriptiontable_0".id and "orderdescriptiontable_0".id = 1) where "ordertable_1".id = 1 and "root".from_z <= DATE\'2015-08-15\' and "root".thru_z > DATE\'2015-08-15\') as "producttable_1" on ("ordertable_0".id = "producttable_1".id and "producttable_1".id = 1) where ("ordertable_0".id = 1 and "root".from_z <= DATE\'2015-08-15\' and "root".thru_z > DATE\'2015-08-15\' and not "producttable_1".id is null) and "root".from_z <= DATE\'2015-08-15\' and "root".thru_z > DATE\'2015-08-15\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testMilestoningFilterPropagationWithNowInFilter():Boolean[1] { // Note: Using now in test deliberately to safegaurd change in sql gen flow. Since change depends on variable date hence not asserting on values but sql let result = execute(|Product.all(%2015-8-15)->filter(p|$p.orders.orderDate->toOne() < now())->project([p|$p.name],['name']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions(), noDebug()); - assertSameSQL('select "root".name as "name" from ProductTable as "root" left outer join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".orderDate < current_timestamp() and "root".from_z <= \'2015-08-15\' and "root".thru_z > \'2015-08-15\'', $result); + assertEqualsH2Compatible( + 'select "root".name as "name" from ProductTable as "root" left outer join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".orderDate < current_timestamp() and "root".from_z <= \'2015-08-15\' and "root".thru_z > \'2015-08-15\'', + 'select "root".name as "name" from ProductTable as "root" left outer join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".orderDate < current_timestamp() and "root".from_z <= DATE\'2015-08-15\' and "root".thru_z > DATE\'2015-08-15\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testFilterOnView():Boolean[1] { let query = {|meta::relational::tests::milestoning::Product.all(%2017-6-10)->filter(x|!($x.id->isEmpty()))->project([x|$x.id],['Id'])->distinct()}; let result = meta::pure::router::execute($query,meta::relational::tests::milestoning::viewFilter::MilestoningWithFiltersOnView,meta::relational::tests::testRuntime(),meta::relational::extension::relationalExtensions()); - assertEquals('select distinct "stockproductview_0".id as "Id" from ProductTable as "root" left outer join (select "root".id as id, \'2017-06-10\' as "k_businessDate" from StockProductTable as "root" where ("root".id > 152 or "root".id < 123) and "root".from_z <= \'2017-06-10\' and "root".thru_z > \'2017-06-10\') as "stockproductview_0" on ("stockproductview_0".id = "root".id) where not "stockproductview_0".id is null and "root".from_z <= \'2017-06-10\' and "root".thru_z > \'2017-06-10\'', $result->meta::relational::mapping::sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select distinct "stockproductview_0".id as "Id" from ProductTable as "root" left outer join (select "root".id as id, \'2017-06-10\' as "k_businessDate" from StockProductTable as "root" where ("root".id > 152 or "root".id < 123) and "root".from_z <= \'2017-06-10\' and "root".thru_z > \'2017-06-10\') as "stockproductview_0" on ("stockproductview_0".id = "root".id) where not "stockproductview_0".id is null and "root".from_z <= \'2017-06-10\' and "root".thru_z > \'2017-06-10\'', + 'select distinct "stockproductview_0".id as "Id" from ProductTable as "root" left outer join (select "root".id as id, \'2017-06-10\' as "k_businessDate" from StockProductTable as "root" where ("root".id > 152 or "root".id < 123) and "root".from_z <= DATE\'2017-06-10\' and "root".thru_z > DATE\'2017-06-10\') as "stockproductview_0" on ("stockproductview_0".id = "root".id) where not "stockproductview_0".id is null and "root".from_z <= DATE\'2017-06-10\' and "root".thru_z > DATE\'2017-06-10\'', + $result->meta::relational::mapping::sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::businessdate::testMilestoningFilterPropagationThroughProject():Boolean[1] @@ -879,7 +1208,11 @@ function <> meta::relational::tests::milestoning::businessdate::testC let tds = $result.values->at(0); assertEquals([%2015-10-15,'ProductName1', %2015-10-15,'ProductName3', %2015-10-16,'ProductName2', %2015-10-16,'ProductName3'],$tds.rows.values); - assertSameSQL('select "unionalias_0"."businessDate" as "businessDate", "unionalias_0"."name" as "name" from (select "root".name as "name", cast(truncate(\'2015-10-16\') as date) as "businessDate" from ProductTable as "root" where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\' UNION ALL select "root".name as "name", cast(truncate(dateadd(DAY, -1, \'2015-10-16\')) as date) as "businessDate" from ProductTable as "root" where "root".from_z <= dateadd(DAY, -1, \'2015-10-16\') and "root".thru_z > dateadd(DAY, -1, \'2015-10-16\')) as "unionalias_0" order by "businessDate","name"', $result); + assertEqualsH2Compatible( + 'select "unionalias_0"."businessDate" as "businessDate", "unionalias_0"."name" as "name" from (select "root".name as "name", cast(truncate(\'2015-10-16\') as date) as "businessDate" from ProductTable as "root" where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\' UNION ALL select "root".name as "name", cast(truncate(dateadd(DAY, -1, \'2015-10-16\')) as date) as "businessDate" from ProductTable as "root" where "root".from_z <= dateadd(DAY, -1, \'2015-10-16\') and "root".thru_z > dateadd(DAY, -1, \'2015-10-16\')) as "unionalias_0" order by "businessDate","name"', + 'select "unionalias_0"."businessDate" as "businessDate", "unionalias_0"."name" as "name" from (select "root".name as "name", cast(truncate(DATE\'2015-10-16\') as date) as "businessDate" from ProductTable as "root" where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\' UNION ALL select "root".name as "name", cast(truncate(dateadd(DAY, -1, DATE\'2015-10-16\')) as date) as "businessDate" from ProductTable as "root" where "root".from_z <= dateadd(DAY, -1, DATE\'2015-10-16\') and "root".thru_z > dateadd(DAY, -1, DATE\'2015-10-16\')) as "unionalias_0" order by "businessDate","name"', + $result->sqlRemoveFormatting() + ); } // workaround for https://github.com/finos/legend-pure/issues/686 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testBusinessSnapshotMilestoning.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testBusinessSnapshotMilestoning.pure index b2e8b0ee46c..eb1aa91a997 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testBusinessSnapshotMilestoning.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testBusinessSnapshotMilestoning.pure @@ -13,6 +13,7 @@ // limitations under the License. ###Pure +import meta::relational::functions::sqlQueryToString::h2::*; import meta::pure::runtime::*; import meta::relational::mapping::*; import meta::relational::tests::*; @@ -22,123 +23,191 @@ import meta::relational::functions::asserts::*; function <> meta::relational::tests::milestoning::snapshot::testQueryOnTemporalRoot():Boolean[1] { let result = execute(|Product.all(%2015-08-26)->filter(p|$p.name == 'ProductName1')->project([p|$p.id],['id']), businessSnapshotMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate = \'2015-08-26\'', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate = \'2015-08-26\'', + 'select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate = DATE\'2015-08-26\'', + $result->sqlRemoveFormatting() + ); assertEquals(2, $result.values.rows.get('id')); } function <> meta::relational::tests::milestoning::snapshot::testQueryOnNonTemporalRootWithTemporalProperty():Boolean[1] { let result = execute(|Order.all()->filter(o|$o.product(%2015-08-26).name == 'ProductName1')->project([o|$o.product(%2015-08-26).id],['id']), businessSnapshotMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "producttablewithbusinesssnapshotmilestoning_0".id as "id" from OrderTable as "root" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("root".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2015-08-26\') where "producttablewithbusinesssnapshotmilestoning_0".name = \'ProductName1\'', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "producttablewithbusinesssnapshotmilestoning_0".id as "id" from OrderTable as "root" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("root".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2015-08-26\') where "producttablewithbusinesssnapshotmilestoning_0".name = \'ProductName1\'', + 'select "producttablewithbusinesssnapshotmilestoning_0".id as "id" from OrderTable as "root" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("root".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2015-08-26\') where "producttablewithbusinesssnapshotmilestoning_0".name = \'ProductName1\'', + $result->sqlRemoveFormatting() + ); assertEquals(2, $result.values.rows.get('id')); } function <> meta::relational::tests::milestoning::snapshot::testQueryWithPropagationOnTemporalRoot():Boolean[1] { let result = execute(|Product.all(%2015-08-26)->filter(p|$p.classification.description == 'STOCK DESC-V2')->project([p|$p.classification.type],['type']), businessSnapshotMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2015-08-26\') where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\' and "root".snapshotDate = \'2015-08-26\'', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2015-08-26\') where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\' and "root".snapshotDate = \'2015-08-26\'', + 'select "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2015-08-26\') where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\' and "root".snapshotDate = DATE\'2015-08-26\'', + $result->sqlRemoveFormatting() + ); assertEquals('STOCK', $result.values.rows.get('type')); } function <> meta::relational::tests::milestoning::snapshot::testQueryWithPropagationOnNonTemporalRootWithTemporalProperty():Boolean[1] { let result = execute(|Order.all()->filter(o|$o.product(%2015-08-26).classification.description == 'STOCK DESC-V2')->project([o|$o.product(%2015-08-26).classification.type],['type']), businessSnapshotMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "productclassificationtablewithbusinesssnapshotmilestoning_1".type as "type" from OrderTable as "root" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("root".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2015-08-26\') left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("producttablewithbusinesssnapshotmilestoning_0".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2015-08-26\') left outer join (select "productclassificationtablewithbusinesssnapshotmilestoning_2".type as type from ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_2" where "productclassificationtablewithbusinesssnapshotmilestoning_2".snapshotDate = \'2015-08-26\') as "productclassificationtablewithbusinesssnapshotmilestoning_1" on ("producttablewithbusinesssnapshotmilestoning_0".type = "productclassificationtablewithbusinesssnapshotmilestoning_1".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\'', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "productclassificationtablewithbusinesssnapshotmilestoning_1".type as "type" from OrderTable as "root" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("root".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2015-08-26\') left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("producttablewithbusinesssnapshotmilestoning_0".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2015-08-26\') left outer join (select "productclassificationtablewithbusinesssnapshotmilestoning_2".type as type from ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_2" where "productclassificationtablewithbusinesssnapshotmilestoning_2".snapshotDate = \'2015-08-26\') as "productclassificationtablewithbusinesssnapshotmilestoning_1" on ("producttablewithbusinesssnapshotmilestoning_0".type = "productclassificationtablewithbusinesssnapshotmilestoning_1".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\'', + 'select "productclassificationtablewithbusinesssnapshotmilestoning_1".type as "type" from OrderTable as "root" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("root".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2015-08-26\') left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("producttablewithbusinesssnapshotmilestoning_0".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2015-08-26\') left outer join (select "productclassificationtablewithbusinesssnapshotmilestoning_2".type as type from ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_2" where "productclassificationtablewithbusinesssnapshotmilestoning_2".snapshotDate = DATE\'2015-08-26\') as "productclassificationtablewithbusinesssnapshotmilestoning_1" on ("producttablewithbusinesssnapshotmilestoning_0".type = "productclassificationtablewithbusinesssnapshotmilestoning_1".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\'', + $result->sqlRemoveFormatting() + ); assertEquals('STOCK', $result.values.rows.get('type')); } function <> meta::relational::tests::milestoning::snapshot::testUnionQueryOnTemporalRoot():Boolean[1] { let result = execute(|Product.all(%2015-08-26)->filter(p|$p.name == 'ProductName1')->project([p|$p.id],['id']), businessSnapshotMilestoningUnionMap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "unionBase"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" as "id" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", "root".id as "pk_0_0", null as "pk_0_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", null as "pk_0_0", "root".id as "pk_0_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionBase" where "unionBase"."ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname" = \'ProductName1\'', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "unionBase"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" as "id" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", "root".id as "pk_0_0", null as "pk_0_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", null as "pk_0_0", "root".id as "pk_0_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionBase" where "unionBase"."ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname" = \'ProductName1\'', + 'select "unionBase"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" as "id" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", "root".id as "pk_0_0", null as "pk_0_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", null as "pk_0_0", "root".id as "pk_0_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\') as "unionBase" where "unionBase"."ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname" = \'ProductName1\'', + $result->sqlRemoveFormatting() + ); assertEquals([2, 2], $result.values.rows.get('id')); } function <> meta::relational::tests::milestoning::snapshot::testUnionQueryOnNonTemporalRootWithTemporalProperty():Boolean[1] { let result = execute(|Order.all()->filter(o|$o.product(%2015-08-26).name == 'ProductName1')->project([o|$o.product(%2015-08-26).id],['id']), businessSnapshotMilestoningUnionMap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "unionalias_1"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" as "id" from (select "root".prodFk as prodFk_0, null as prodFk_1, "root".id as "pk_0_0", null as "pk_0_1" from OrderTable as "root" UNION ALL select null as prodFk_0, "root".prodFk as prodFk_1, null as "pk_0_0", "root".id as "pk_0_1" from OrderTable as "root") as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".id as id, "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".id as id, "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = \'2015-08-26\' or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname" = \'ProductName1\'', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "unionalias_1"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" as "id" from (select "root".prodFk as prodFk_0, null as prodFk_1, "root".id as "pk_0_0", null as "pk_0_1" from OrderTable as "root" UNION ALL select null as prodFk_0, "root".prodFk as prodFk_1, null as "pk_0_0", "root".id as "pk_0_1" from OrderTable as "root") as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".id as id, "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".id as id, "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = \'2015-08-26\' or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname" = \'ProductName1\'', + 'select "unionalias_1"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" as "id" from (select "root".prodFk as prodFk_0, null as prodFk_1, "root".id as "pk_0_0", null as "pk_0_1" from OrderTable as "root" UNION ALL select null as prodFk_0, "root".prodFk as prodFk_1, null as "pk_0_0", "root".id as "pk_0_1" from OrderTable as "root") as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".id as id, "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".id as id, "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\') as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = DATE\'2015-08-26\' or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname" = \'ProductName1\'', + $result->sqlRemoveFormatting() + ); assertEquals([2, 2, 2, 2], $result.values.rows.get('id')); } function <> meta::relational::tests::milestoning::snapshot::testUnionQueryWithPropagationOnTemporalRoot():Boolean[1] { let result = execute(|Product.all(%2015-08-26)->filter(p|$p.classification.description == 'STOCK DESC-V2')->project([p|$p.classification.type],['type']), businessSnapshotMilestoningUnionMap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type_0, null as type_1, "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", null as type_0, "root".type as type_1, null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = \'2015-08-26\' or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type_0, null as type_1, "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", null as type_0, "root".type as type_1, null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = \'2015-08-26\' or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', + 'select "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type_0, null as type_1, "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", null as type_0, "root".type as type_1, null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\') as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\') as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = DATE\'2015-08-26\' or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', + $result->sqlRemoveFormatting() + ); assertEquals(['STOCK', 'STOCK', 'STOCK', 'STOCK'], $result.values.rows.get('type')); } function <> meta::relational::tests::milestoning::snapshot::testUnionQueryWithPropagationOnNonTemporalRootWithTemporalProperty():Boolean[1] { let result = execute(|Order.all()->filter(o|$o.product(%2015-08-26).classification.description == 'STOCK DESC-V2')->project([o|$o.product(%2015-08-26).classification.type],['type']), businessSnapshotMilestoningUnionMap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "unionalias_3"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".prodFk as prodFk_0, null as prodFk_1, "root".id as "pk_0_0", null as "pk_0_1" from OrderTable as "root" UNION ALL select null as prodFk_0, "root".prodFk as prodFk_1, null as "pk_0_0", "root".id as "pk_0_1" from OrderTable as "root") as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".id as id, "root".type as type_0, null as type_1 from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".id as id, null as type_0, "root".type as type_1 from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = \'2015-08-26\' or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionalias_2" on (("unionalias_1".type_0 = "unionalias_2".type or "unionalias_1".type_1 = "unionalias_2".type) and (coalesce("unionalias_2"."snapshotDate_0", "unionalias_2"."snapshotDate_1") = \'2015-08-26\' or coalesce("unionalias_2"."snapshotDate_0", "unionalias_2"."snapshotDate_1") is null)) left outer join (select "unionalias_4".type as type, "unionalias_4"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionalias_4" where coalesce("unionalias_4"."snapshotDate_0", "unionalias_4"."snapshotDate_1") = \'2015-08-26\' or coalesce("unionalias_4"."snapshotDate_0", "unionalias_4"."snapshotDate_1") is null) as "unionalias_3" on ("unionalias_1".type_0 = "unionalias_3".type or "unionalias_1".type_1 = "unionalias_3".type) where "unionalias_2"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "unionalias_3"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".prodFk as prodFk_0, null as prodFk_1, "root".id as "pk_0_0", null as "pk_0_1" from OrderTable as "root" UNION ALL select null as prodFk_0, "root".prodFk as prodFk_1, null as "pk_0_0", "root".id as "pk_0_1" from OrderTable as "root") as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".id as id, "root".type as type_0, null as type_1 from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".id as id, null as type_0, "root".type as type_1 from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = \'2015-08-26\' or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionalias_2" on (("unionalias_1".type_0 = "unionalias_2".type or "unionalias_1".type_1 = "unionalias_2".type) and (coalesce("unionalias_2"."snapshotDate_0", "unionalias_2"."snapshotDate_1") = \'2015-08-26\' or coalesce("unionalias_2"."snapshotDate_0", "unionalias_2"."snapshotDate_1") is null)) left outer join (select "unionalias_4".type as type, "unionalias_4"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionalias_4" where coalesce("unionalias_4"."snapshotDate_0", "unionalias_4"."snapshotDate_1") = \'2015-08-26\' or coalesce("unionalias_4"."snapshotDate_0", "unionalias_4"."snapshotDate_1") is null) as "unionalias_3" on ("unionalias_1".type_0 = "unionalias_3".type or "unionalias_1".type_1 = "unionalias_3".type) where "unionalias_2"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', + 'select "unionalias_3"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".prodFk as prodFk_0, null as prodFk_1, "root".id as "pk_0_0", null as "pk_0_1" from OrderTable as "root" UNION ALL select null as prodFk_0, "root".prodFk as prodFk_1, null as "pk_0_0", "root".id as "pk_0_1" from OrderTable as "root") as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".id as id, "root".type as type_0, null as type_1 from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".id as id, null as type_0, "root".type as type_1 from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\') as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = DATE\'2015-08-26\' or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\') as "unionalias_2" on (("unionalias_1".type_0 = "unionalias_2".type or "unionalias_1".type_1 = "unionalias_2".type) and (coalesce("unionalias_2"."snapshotDate_0", "unionalias_2"."snapshotDate_1") = DATE\'2015-08-26\' or coalesce("unionalias_2"."snapshotDate_0", "unionalias_2"."snapshotDate_1") is null)) left outer join (select "unionalias_4".type as type, "unionalias_4"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\') as "unionalias_4" where coalesce("unionalias_4"."snapshotDate_0", "unionalias_4"."snapshotDate_1") = DATE\'2015-08-26\' or coalesce("unionalias_4"."snapshotDate_0", "unionalias_4"."snapshotDate_1") is null) as "unionalias_3" on ("unionalias_1".type_0 = "unionalias_3".type or "unionalias_1".type_1 = "unionalias_3".type) where "unionalias_2"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', + $result->sqlRemoveFormatting() + ); assertEquals(['STOCK', 'STOCK', 'STOCK', 'STOCK', 'STOCK', 'STOCK', 'STOCK', 'STOCK', 'STOCK', 'STOCK', 'STOCK', 'STOCK', 'STOCK', 'STOCK', 'STOCK', 'STOCK'], $result.values.rows.get('type')); } function <> meta::relational::tests::milestoning::snapshot::testAllVersionInRangeForBuisnessSnapshotMilestoning():Boolean[1] { let result = execute(|Product.allVersionsInRange(%2012-1-1, %2016-1-1)->filter(p|$p.name == 'ProductName1')->project([p|$p.id],['id']), businessSnapshotMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate >= \'2012-01-01\' and "root".snapshotDate <= \'2016-01-01\'', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate >= \'2012-01-01\' and "root".snapshotDate <= \'2016-01-01\'', + 'select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate >= DATE\'2012-01-01\' and "root".snapshotDate <= DATE\'2016-01-01\'', + $result->sqlRemoveFormatting() + ); assertEquals(2, $result.values.rows.get('id')); } function <> meta::relational::tests::milestoning::snapshot::testBuisnessSnapshotRangeQueryOnProperty():Boolean[1] { let result = execute(|Product.allVersions()->filter(x|$x.classificationAllVersionsInRange(%2015-1-1, %2015-9-1).type == 'STOCK')->project([x|$x.classificationAllVersionsInRange(%2015-1-1, %2015-9-1).type], ['type'])->distinct(), businessSnapshotMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select distinct "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate >= \'2015-01-01\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate <= \'2015-09-01\') where "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'STOCK\'', $result); + assertEqualsH2Compatible( + 'select distinct "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate >= \'2015-01-01\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate <= \'2015-09-01\') where "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'STOCK\'', + 'select distinct "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate >= DATE\'2015-01-01\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate <= DATE\'2015-09-01\') where "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'STOCK\'', + $result->sqlRemoveFormatting() + ); assertSameElements(['STOCK'], $result.values.rows.getString('type')); } function <> meta::relational::tests::milestoning::rangeQuery::testBuisnessSnapshotRangeQueryOnRootAndProperty():Boolean[1] { let result = execute(|Product.allVersionsInRange(%2015-1-1, %2015-9-1)->filter(x|$x.classificationAllVersionsInRange(%2015-1-1, %2015-9-1).type == 'STOCK')->project([x|$x.classificationAllVersionsInRange(%2015-1-1, %2015-9-1).type], ['type'])->distinct(), businessSnapshotMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select distinct "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate >= \'2015-01-01\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate <= \'2015-09-01\') where "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'STOCK\' and "root".snapshotDate >= \'2015-01-01\' and "root".snapshotDate <= \'2015-09-01\'', $result); + assertEqualsH2Compatible( + 'select distinct "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate >= \'2015-01-01\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate <= \'2015-09-01\') where "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'STOCK\' and "root".snapshotDate >= \'2015-01-01\' and "root".snapshotDate <= \'2015-09-01\'', + 'select distinct "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate >= DATE\'2015-01-01\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate <= DATE\'2015-09-01\') where "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'STOCK\' and "root".snapshotDate >= DATE\'2015-01-01\' and "root".snapshotDate <= DATE\'2015-09-01\'', + $result->sqlRemoveFormatting() + ); assertSameElements(['STOCK'], $result.values.rows.getString('type')); } function <> meta::relational::tests::milestoning::snapshot::testDateTimeMilestoningParam():Boolean[1] { let result = execute(|Product.all(%2015-08-26T02:00:00)->filter(p|$p.name == 'ProductName1')->project([p|$p.id],['id']), businessSnapshotMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)', + 'select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)', + $result->sqlRemoveFormatting() + ); assertEquals(2, $result.values.rows.get('id')); } function <> meta::relational::tests::milestoning::snapshot::testDateTimeVariableMilestoningParam():Boolean[1] { let result = execute({|let dt = '2015-08-26T02:00:00'->parseDate(); Product.all($dt)->filter(p|$p.name == 'ProductName1')->project([p|$p.id],['id']);}, businessSnapshotMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)', + 'select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)', + $result->sqlRemoveFormatting() + ); assertEquals(2, $result.values.rows.get('id')); } function <> meta::relational::tests::milestoning::snapshot::testDateTimeMilestoningParamPropagation():Boolean[1] { let result = execute(|Product.all(%2015-08-26T02:00:00)->filter(p|$p.classification.description == 'STOCK DESC-V2')->project([p|$p.classification.type],['type']), businessSnapshotMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)) where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\' and "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)) where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\' and "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)', + 'select "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)) where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\' and "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)', + $result->sqlRemoveFormatting() + ); assertEquals('STOCK', $result.values.rows.get('type')); } function <> meta::relational::tests::milestoning::snapshot::testDateTimeVariableMilestoningParamPropagation():Boolean[1] { let result = execute({|let dt = '2015-08-26T02:00:00'->parseDate(); Product.all($dt)->filter(p|$p.classification.description == 'STOCK DESC-V2')->project([p|$p.classification.type],['type']);}, businessSnapshotMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)) where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\' and "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)) where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\' and "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)', + 'select "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)) where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\' and "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)', + $result->sqlRemoveFormatting() + ); assertEquals('STOCK', $result.values.rows.get('type')); } function <> meta::relational::tests::milestoning::snapshot::testDateTimeMilestoningParamUnion():Boolean[1] { let result = execute(|Product.all(%2015-08-26T02:00:00)->filter(p|$p.classification.description == 'STOCK DESC-V2')->project([p|$p.classification.type],['type']), businessSnapshotMilestoningUnionMap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type_0, null as type_1, "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", null as type_0, "root".type as type_1, null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)) as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)) as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = cast(truncate(\'2015-08-26 02:00:00\') as date) or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type_0, null as type_1, "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", null as type_0, "root".type as type_1, null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)) as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)) as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = cast(truncate(\'2015-08-26 02:00:00\') as date) or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', + 'select "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type_0, null as type_1, "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", null as type_0, "root".type as type_1, null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)) as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)) as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date) or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', + $result->sqlRemoveFormatting() + ); assertEquals(['STOCK', 'STOCK', 'STOCK', 'STOCK'], $result.values.rows.get('type')); } function <> meta::relational::tests::milestoning::snapshot::testDateTimeVariableMilestoningParamUnion():Boolean[1] { let result = execute({|let dt = '2015-08-26T02:00:00'->parseDate(); Product.all($dt)->filter(p|$p.classification.description == 'STOCK DESC-V2')->project([p|$p.classification.type],['type']);}, businessSnapshotMilestoningUnionMap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type_0, null as type_1, "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", null as type_0, "root".type as type_1, null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)) as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)) as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = cast(truncate(\'2015-08-26 02:00:00\') as date) or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type_0, null as type_1, "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", null as type_0, "root".type as type_1, null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)) as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)) as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = cast(truncate(\'2015-08-26 02:00:00\') as date) or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', + 'select "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type_0, null as type_1, "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", null as type_0, "root".type as type_1, null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)) as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)) as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date) or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', + $result->sqlRemoveFormatting() + ); assertEquals(['STOCK', 'STOCK', 'STOCK', 'STOCK'], $result.values.rows.get('type')); } function <> meta::relational::tests::milestoning::snapshot::setUp():Runtime[1] { initDatabase(); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testGetAllForEachDate.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testGetAllForEachDate.pure index 74032a694da..9809e77d8d8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testGetAllForEachDate.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testGetAllForEachDate.pure @@ -13,6 +13,8 @@ // limitations under the License. ###Pure +import meta::relational::functions::sqlQueryToString::h2::*; +import meta::relational::mapping::*; import meta::relational::functions::asserts::*; import meta::relational::tests::csv::*; import meta::pure::runtime::*; @@ -77,7 +79,11 @@ function <> meta::relational::tests::milestoning:: 'ProductName3,2020-01-11\n'; let actualValue = $result.values->toCSV(); assertSameElements($expectedValue, $actualValue); - assertSameSQL('select "root".name as "name", "calendartable_0".calendar_date as "date" from (select "root".calendar_date from CalendarTable as "root" where ("root".calendar_date > \'2020-01-02\' and "root".calendar_date < \'2020-01-15\')) as "calendartable_0" left outer join ProductTable as "root" on ("root".from_z <= "calendartable_0".calendar_date and "root".thru_z > "calendartable_0".calendar_date) where "root".name = \'ProductName3\'',$result); + assertEqualsH2Compatible( + 'select "root".name as "name", "calendartable_0".calendar_date as "date" from (select "root".calendar_date from CalendarTable as "root" where ("root".calendar_date > \'2020-01-02\' and "root".calendar_date < \'2020-01-15\')) as "calendartable_0" left outer join ProductTable as "root" on ("root".from_z <= "calendartable_0".calendar_date and "root".thru_z > "calendartable_0".calendar_date) where "root".name = \'ProductName3\'', + 'select "root".name as "name", "calendartable_0".calendar_date as "date" from (select "root".calendar_date from CalendarTable as "root" where ("root".calendar_date > DATE\'2020-01-02\' and "root".calendar_date < DATE\'2020-01-15\')) as "calendartable_0" left outer join ProductTable as "root" on ("root".from_z <= "calendartable_0".calendar_date and "root".thru_z > "calendartable_0".calendar_date) where "root".name = \'ProductName3\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::temporalDateProjectionQuery::testProcessingTemporalQueryWithInnerQueryWithQualifiedProperty():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testInheritanceMappingWithMilestonedTypes.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testInheritanceMappingWithMilestonedTypes.pure index e74b09d5386..c157c6012cb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testInheritanceMappingWithMilestonedTypes.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testInheritanceMappingWithMilestonedTypes.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::metamodel::execute::*; @@ -26,7 +27,11 @@ function <> meta::relational::tests::milestoning: { let result = execute(|Order.all()->project([o|$o.id, o|$o.product(%2016-9-23).synonymsByType('CUSIP').createActivity.createdBy], ['orderId','productSynonymCreator']), inheritanceUnionMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals(['1,TDSNull', '2,smith', '2,smith', '2,smith', '2,smith'], $result.values->at(0).rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".id as "orderId", "productsynonymintermediate_0"."ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" as "productSynonymCreator" from OrderTable as "root" left outer join (select "orderproductintermediate_1".orderId as orderId, "producttable_0".id as id from orderProductIntermediate as "orderproductintermediate_1" inner join ProductTable as "producttable_0" on ("orderproductintermediate_1".prodId = "producttable_0".id) where "producttable_0".from_z <= \'2016-09-23\' and "producttable_0".thru_z > \'2016-09-23\') as "orderproductintermediate_0" on ("root".id = "orderproductintermediate_0".orderId) left outer join (select "productsynonymintermediate_1".prodId as prodId, "unionalias_0"."ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" as "ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" from productSynonymIntermediate as "productsynonymintermediate_1" inner join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".prodId as prodId_0, null as prodId_1, \'CUSIP\' as "CUSIP_ISIN", "root".createdBy as "ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" from ProductSynonymTable as "root" UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as prodId_0, "root".prodId as prodId_1, \'ISIN\' as "CUSIP_ISIN", "root".createdBy as "ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" from ProductSynonymTable as "root") as "unionalias_0" on ("productsynonymintermediate_1".synProdId = "unionalias_0".prodId_0 or "productsynonymintermediate_1".synProdId = "unionalias_0".prodId_1) where "unionalias_0"."CUSIP_ISIN" = \'CUSIP\') as "productsynonymintermediate_0" on ("orderproductintermediate_0".id = "productsynonymintermediate_0".prodId)', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".id as "orderId", "productsynonymintermediate_0"."ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" as "productSynonymCreator" from OrderTable as "root" left outer join (select "orderproductintermediate_1".orderId as orderId, "producttable_0".id as id from orderProductIntermediate as "orderproductintermediate_1" inner join ProductTable as "producttable_0" on ("orderproductintermediate_1".prodId = "producttable_0".id) where "producttable_0".from_z <= \'2016-09-23\' and "producttable_0".thru_z > \'2016-09-23\') as "orderproductintermediate_0" on ("root".id = "orderproductintermediate_0".orderId) left outer join (select "productsynonymintermediate_1".prodId as prodId, "unionalias_0"."ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" as "ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" from productSynonymIntermediate as "productsynonymintermediate_1" inner join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".prodId as prodId_0, null as prodId_1, \'CUSIP\' as "CUSIP_ISIN", "root".createdBy as "ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" from ProductSynonymTable as "root" UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as prodId_0, "root".prodId as prodId_1, \'ISIN\' as "CUSIP_ISIN", "root".createdBy as "ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" from ProductSynonymTable as "root") as "unionalias_0" on ("productsynonymintermediate_1".synProdId = "unionalias_0".prodId_0 or "productsynonymintermediate_1".synProdId = "unionalias_0".prodId_1) where "unionalias_0"."CUSIP_ISIN" = \'CUSIP\') as "productsynonymintermediate_0" on ("orderproductintermediate_0".id = "productsynonymintermediate_0".prodId)', + 'select "root".id as "orderId", "productsynonymintermediate_0"."ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" as "productSynonymCreator" from OrderTable as "root" left outer join (select "orderproductintermediate_1".orderId as orderId, "producttable_0".id as id from orderProductIntermediate as "orderproductintermediate_1" inner join ProductTable as "producttable_0" on ("orderproductintermediate_1".prodId = "producttable_0".id) where "producttable_0".from_z <= DATE\'2016-09-23\' and "producttable_0".thru_z > DATE\'2016-09-23\') as "orderproductintermediate_0" on ("root".id = "orderproductintermediate_0".orderId) left outer join (select "productsynonymintermediate_1".prodId as prodId, "unionalias_0"."ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" as "ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" from productSynonymIntermediate as "productsynonymintermediate_1" inner join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".prodId as prodId_0, null as prodId_1, \'CUSIP\' as "CUSIP_ISIN", "root".createdBy as "ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" from ProductSynonymTable as "root" UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as prodId_0, "root".prodId as prodId_1, \'ISIN\' as "CUSIP_ISIN", "root".createdBy as "ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" from ProductSynonymTable as "root") as "unionalias_0" on ("productsynonymintermediate_1".synProdId = "unionalias_0".prodId_0 or "productsynonymintermediate_1".synProdId = "unionalias_0".prodId_1) where "unionalias_0"."CUSIP_ISIN" = \'CUSIP\') as "productsynonymintermediate_0" on ("orderproductintermediate_0".id = "productsynonymintermediate_0".prodId)', + $result->sqlRemoveFormatting() + ); } //Alloy Exclusion Reason: Store Resolution Wrong (Cant Find Join) @@ -34,7 +39,11 @@ function <> meta::relational::tests::milestoning: { let result = execute(|Order.all()->project([o|$o.id, o|$o.product(%2016-9-23)->filter(p|($p.id==1 || $p.id==2) && $p.referenceSystem.name=='SYS1').id], ['orderId','filteredProductId']), inheritanceUnionMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals(['1,TDSNull', '2,2'], $result.values->at(0).rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".id as "orderId", "orderproductintermediate_0".id as "filteredProductId" from OrderTable as "root" left outer join (select "orderproductintermediate_1".orderId as orderId, "producttable_0".id as id, "producttable_0".referenceSystemName as referenceSystemName from orderProductIntermediate as "orderproductintermediate_1" inner join ProductTable as "producttable_0" on ("orderproductintermediate_1".prodId = "producttable_0".id) left outer join SystemTable as "systemtable_0" on ("producttable_0".referenceSystemName = "systemtable_0".name) where (("producttable_0".id = 1 or "producttable_0".id = 2) and "systemtable_0".name = \'SYS1\') and "producttable_0".from_z <= \'2016-09-23\' and "producttable_0".thru_z > \'2016-09-23\') as "orderproductintermediate_0" on ("root".id = "orderproductintermediate_0".orderId)', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".id as "orderId", "orderproductintermediate_0".id as "filteredProductId" from OrderTable as "root" left outer join (select "orderproductintermediate_1".orderId as orderId, "producttable_0".id as id, "producttable_0".referenceSystemName as referenceSystemName from orderProductIntermediate as "orderproductintermediate_1" inner join ProductTable as "producttable_0" on ("orderproductintermediate_1".prodId = "producttable_0".id) left outer join SystemTable as "systemtable_0" on ("producttable_0".referenceSystemName = "systemtable_0".name) where (("producttable_0".id = 1 or "producttable_0".id = 2) and "systemtable_0".name = \'SYS1\') and "producttable_0".from_z <= \'2016-09-23\' and "producttable_0".thru_z > \'2016-09-23\') as "orderproductintermediate_0" on ("root".id = "orderproductintermediate_0".orderId)', + 'select "root".id as "orderId", "orderproductintermediate_0".id as "filteredProductId" from OrderTable as "root" left outer join (select "orderproductintermediate_1".orderId as orderId, "producttable_0".id as id, "producttable_0".referenceSystemName as referenceSystemName from orderProductIntermediate as "orderproductintermediate_1" inner join ProductTable as "producttable_0" on ("orderproductintermediate_1".prodId = "producttable_0".id) left outer join SystemTable as "systemtable_0" on ("producttable_0".referenceSystemName = "systemtable_0".name) where (("producttable_0".id = 1 or "producttable_0".id = 2) and "systemtable_0".name = \'SYS1\') and "producttable_0".from_z <= DATE\'2016-09-23\' and "producttable_0".thru_z > DATE\'2016-09-23\') as "orderproductintermediate_0" on ("root".id = "orderproductintermediate_0".orderId)', + $result->sqlRemoveFormatting() + ); } //Alloy Exclusion Reason: Store Resolution Wrong (Cant Find Join) @@ -42,7 +51,11 @@ function <> meta::relational::tests::milestoning: { let result = execute(|Order.all()->project([o|$o.id, o|$o.product(%2016-9-23)->filter(p|$p.id==2).id, o|$o.product(%2016-9-23)->filter(p|$p.id==2).name], ['orderId','productId','productName']), inheritanceUnionMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals(['1,TDSNull,TDSNull', '2,2,ProductName2'], $result.values->at(0).rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".id as "orderId", "orderproductintermediate_0".id as "productId", "orderproductintermediate_0".name as "productName" from OrderTable as "root" left outer join (select "orderproductintermediate_1".orderId as orderId, "producttable_0".id as id, "producttable_0".name as name from orderProductIntermediate as "orderproductintermediate_1" inner join ProductTable as "producttable_0" on ("orderproductintermediate_1".prodId = "producttable_0".id) where "producttable_0".from_z <= \'2016-09-23\' and "producttable_0".thru_z > \'2016-09-23\') as "orderproductintermediate_0" on ("root".id = "orderproductintermediate_0".orderId and "orderproductintermediate_0".id = 2)', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".id as "orderId", "orderproductintermediate_0".id as "productId", "orderproductintermediate_0".name as "productName" from OrderTable as "root" left outer join (select "orderproductintermediate_1".orderId as orderId, "producttable_0".id as id, "producttable_0".name as name from orderProductIntermediate as "orderproductintermediate_1" inner join ProductTable as "producttable_0" on ("orderproductintermediate_1".prodId = "producttable_0".id) where "producttable_0".from_z <= \'2016-09-23\' and "producttable_0".thru_z > \'2016-09-23\') as "orderproductintermediate_0" on ("root".id = "orderproductintermediate_0".orderId and "orderproductintermediate_0".id = 2)', + 'select "root".id as "orderId", "orderproductintermediate_0".id as "productId", "orderproductintermediate_0".name as "productName" from OrderTable as "root" left outer join (select "orderproductintermediate_1".orderId as orderId, "producttable_0".id as id, "producttable_0".name as name from orderProductIntermediate as "orderproductintermediate_1" inner join ProductTable as "producttable_0" on ("orderproductintermediate_1".prodId = "producttable_0".id) where "producttable_0".from_z <= DATE\'2016-09-23\' and "producttable_0".thru_z > DATE\'2016-09-23\') as "orderproductintermediate_0" on ("root".id = "orderproductintermediate_0".orderId and "orderproductintermediate_0".id = 2)', + $result->sqlRemoveFormatting() + ); } @@ -51,7 +64,11 @@ function <> meta::relational::tests::milestoning: { let result = execute(|BiTemporalProduct.all(%2018-05-10, %2018-05-09)->project([p|$p.name, p|$p.type],['name', 'type']), inheritanceUnionMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals(['p1s1,STOCK', 'p2s1,STOCK', 'p3s1,STOCK', 'p10s2,notSet', 'p11s2,notSet'], $result.values->at(0).rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "unionBase"."BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename" as "name", "unionBase"."BiTemporalProductTable_Out_From_Inclusive_ClassificationProductClassificationTabletype_notSet" as "type" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".in_z as "in_z_0", "root".out_z as "out_z_0", null as "from_z_1", null as "thru_z_1", null as "in_z_1", null as "out_z_1", "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", "productclassificationtable_0".type as "BiTemporalProductTable_Out_From_Inclusive_ClassificationProductClassificationTabletype_notSet" from BiTemporalProductTable_Out_From_Inclusive as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2018-05-09\' and "productclassificationtable_0".thru_z > \'2018-05-09\') where "root".in_z < \'2018-05-10\' and "root".out_z >= \'2018-05-10\' and "root".from_z <= \'2018-05-09\' and "root".thru_z > \'2018-05-09\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "in_z_0", null as "out_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".in_z as "in_z_1", "root".out_z as "out_z_1", null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", \'notSet\' as "BiTemporalProductTable_Out_From_Inclusive_ClassificationProductClassificationTabletype_notSet" from BiTemporalProductTable_Out_Thru_Inclusive as "root" where "root".in_z < \'2018-05-10\' and "root".out_z >= \'2018-05-10\' and "root".from_z < \'2018-05-09\' and "root".thru_z >= \'2018-05-09\') as "unionBase"', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "unionBase"."BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename" as "name", "unionBase"."BiTemporalProductTable_Out_From_Inclusive_ClassificationProductClassificationTabletype_notSet" as "type" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".in_z as "in_z_0", "root".out_z as "out_z_0", null as "from_z_1", null as "thru_z_1", null as "in_z_1", null as "out_z_1", "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", "productclassificationtable_0".type as "BiTemporalProductTable_Out_From_Inclusive_ClassificationProductClassificationTabletype_notSet" from BiTemporalProductTable_Out_From_Inclusive as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2018-05-09\' and "productclassificationtable_0".thru_z > \'2018-05-09\') where "root".in_z < \'2018-05-10\' and "root".out_z >= \'2018-05-10\' and "root".from_z <= \'2018-05-09\' and "root".thru_z > \'2018-05-09\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "in_z_0", null as "out_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".in_z as "in_z_1", "root".out_z as "out_z_1", null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", \'notSet\' as "BiTemporalProductTable_Out_From_Inclusive_ClassificationProductClassificationTabletype_notSet" from BiTemporalProductTable_Out_Thru_Inclusive as "root" where "root".in_z < \'2018-05-10\' and "root".out_z >= \'2018-05-10\' and "root".from_z < \'2018-05-09\' and "root".thru_z >= \'2018-05-09\') as "unionBase"', + 'select "unionBase"."BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename" as "name", "unionBase"."BiTemporalProductTable_Out_From_Inclusive_ClassificationProductClassificationTabletype_notSet" as "type" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".in_z as "in_z_0", "root".out_z as "out_z_0", null as "from_z_1", null as "thru_z_1", null as "in_z_1", null as "out_z_1", "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", "productclassificationtable_0".type as "BiTemporalProductTable_Out_From_Inclusive_ClassificationProductClassificationTabletype_notSet" from BiTemporalProductTable_Out_From_Inclusive as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2018-05-09\' and "productclassificationtable_0".thru_z > DATE\'2018-05-09\') where "root".in_z < DATE\'2018-05-10\' and "root".out_z >= DATE\'2018-05-10\' and "root".from_z <= DATE\'2018-05-09\' and "root".thru_z > DATE\'2018-05-09\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "in_z_0", null as "out_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".in_z as "in_z_1", "root".out_z as "out_z_1", null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", \'notSet\' as "BiTemporalProductTable_Out_From_Inclusive_ClassificationProductClassificationTabletype_notSet" from BiTemporalProductTable_Out_Thru_Inclusive as "root" where "root".in_z < DATE\'2018-05-10\' and "root".out_z >= DATE\'2018-05-10\' and "root".from_z < DATE\'2018-05-09\' and "root".thru_z >= DATE\'2018-05-09\') as "unionBase"', + $result->sqlRemoveFormatting() + ); } //Alloy Exclusion Reason: Store Resolution Wrong (Cant Find Join) @@ -59,7 +76,11 @@ function <> meta::relational::tests::milestoning: { let result = execute(|BiTemporalProduct.all(%2018-05-10, %2018-05-09)->project([p|$p.name,p|$p.classification.type],['name', 'type']), inheritanceUnionMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals(['p1s1,STOCK', 'p2s1,STOCK', 'p3s1,STOCK', 'p10s2,STOCK', 'p11s2,STOCK'], $result.values->at(0).rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "unionBase"."BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename" as "name", "productclassificationtable_0".type as "type" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".in_z as "in_z_0", "root".out_z as "out_z_0", null as "from_z_1", null as "thru_z_1", null as "in_z_1", null as "out_z_1", "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", "root".type as type_0, null as type_1 from BiTemporalProductTable_Out_From_Inclusive as "root" where "root".in_z < \'2018-05-10\' and "root".out_z >= \'2018-05-10\' and "root".from_z <= \'2018-05-09\' and "root".thru_z > \'2018-05-09\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "in_z_0", null as "out_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".in_z as "in_z_1", "root".out_z as "out_z_1", null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", null as type_0, "root".type as type_1 from BiTemporalProductTable_Out_Thru_Inclusive as "root" where "root".in_z < \'2018-05-10\' and "root".out_z >= \'2018-05-10\' and "root".from_z < \'2018-05-09\' and "root".thru_z >= \'2018-05-09\') as "unionBase" left outer join ProductClassificationTable as "productclassificationtable_0" on (("unionBase".type_0 = "productclassificationtable_0".type or "unionBase".type_1 = "productclassificationtable_0".type) and "productclassificationtable_0".from_z <= \'2018-05-09\' and "productclassificationtable_0".thru_z > \'2018-05-09\')', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "unionBase"."BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename" as "name", "productclassificationtable_0".type as "type" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".in_z as "in_z_0", "root".out_z as "out_z_0", null as "from_z_1", null as "thru_z_1", null as "in_z_1", null as "out_z_1", "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", "root".type as type_0, null as type_1 from BiTemporalProductTable_Out_From_Inclusive as "root" where "root".in_z < \'2018-05-10\' and "root".out_z >= \'2018-05-10\' and "root".from_z <= \'2018-05-09\' and "root".thru_z > \'2018-05-09\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "in_z_0", null as "out_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".in_z as "in_z_1", "root".out_z as "out_z_1", null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", null as type_0, "root".type as type_1 from BiTemporalProductTable_Out_Thru_Inclusive as "root" where "root".in_z < \'2018-05-10\' and "root".out_z >= \'2018-05-10\' and "root".from_z < \'2018-05-09\' and "root".thru_z >= \'2018-05-09\') as "unionBase" left outer join ProductClassificationTable as "productclassificationtable_0" on (("unionBase".type_0 = "productclassificationtable_0".type or "unionBase".type_1 = "productclassificationtable_0".type) and "productclassificationtable_0".from_z <= \'2018-05-09\' and "productclassificationtable_0".thru_z > \'2018-05-09\')', + 'select "unionBase"."BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename" as "name", "productclassificationtable_0".type as "type" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".in_z as "in_z_0", "root".out_z as "out_z_0", null as "from_z_1", null as "thru_z_1", null as "in_z_1", null as "out_z_1", "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", "root".type as type_0, null as type_1 from BiTemporalProductTable_Out_From_Inclusive as "root" where "root".in_z < DATE\'2018-05-10\' and "root".out_z >= DATE\'2018-05-10\' and "root".from_z <= DATE\'2018-05-09\' and "root".thru_z > DATE\'2018-05-09\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "in_z_0", null as "out_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".in_z as "in_z_1", "root".out_z as "out_z_1", null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", null as type_0, "root".type as type_1 from BiTemporalProductTable_Out_Thru_Inclusive as "root" where "root".in_z < DATE\'2018-05-10\' and "root".out_z >= DATE\'2018-05-10\' and "root".from_z < DATE\'2018-05-09\' and "root".thru_z >= DATE\'2018-05-09\') as "unionBase" left outer join ProductClassificationTable as "productclassificationtable_0" on (("unionBase".type_0 = "productclassificationtable_0".type or "unionBase".type_1 = "productclassificationtable_0".type) and "productclassificationtable_0".from_z <= DATE\'2018-05-09\' and "productclassificationtable_0".thru_z > DATE\'2018-05-09\')', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::inheritance::union::createTablesAndFillDb():Any[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/milestoning/tests/testMilestoningContextPropagation.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testMilestoningContextPropagation.pure index 428b3b3133e..542cfcc1e91 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testMilestoningContextPropagation.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testMilestoningContextPropagation.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::functions::asserts::*; import meta::pure::runtime::*; import meta::relational::mapping::*; @@ -33,7 +34,11 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['system A order description 1', 'system A order description 2'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "systemaorderdescriptiontable_0".description as "systemADescription" from OrderTable as "root" left outer join OrderToSystemADescriptions as "ordertosystemadescriptions_0" on ("root".id = "ordertosystemadescriptions_0".orderId and "ordertosystemadescriptions_0".from_z <= \'2015-08-14\' and "ordertosystemadescriptions_0".thru_z > \'2015-08-14\') left outer join SystemAOrderDescriptionTable as "systemaorderdescriptiontable_0" on ("ordertosystemadescriptions_0".systemADescriptionId = "systemaorderdescriptiontable_0".descriptionId)', $result); + assertEqualsH2Compatible( + 'select "systemaorderdescriptiontable_0".description as "systemADescription" from OrderTable as "root" left outer join OrderToSystemADescriptions as "ordertosystemadescriptions_0" on ("root".id = "ordertosystemadescriptions_0".orderId and "ordertosystemadescriptions_0".from_z <= \'2015-08-14\' and "ordertosystemadescriptions_0".thru_z > \'2015-08-14\') left outer join SystemAOrderDescriptionTable as "systemaorderdescriptiontable_0" on ("ordertosystemadescriptions_0".systemADescriptionId = "systemaorderdescriptiontable_0".descriptionId)', + 'select "systemaorderdescriptiontable_0".description as "systemADescription" from OrderTable as "root" left outer join OrderToSystemADescriptions as "ordertosystemadescriptions_0" on ("root".id = "ordertosystemadescriptions_0".orderId and "ordertosystemadescriptions_0".from_z <= DATE\'2015-08-14\' and "ordertosystemadescriptions_0".thru_z > DATE\'2015-08-14\') left outer join SystemAOrderDescriptionTable as "systemaorderdescriptiontable_0" on ("ordertosystemadescriptions_0".systemADescriptionId = "systemaorderdescriptiontable_0".descriptionId)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testExtraColumnsAreNotAppliedToIntermediateMilestonedJoinTables():Boolean[1] @@ -44,7 +49,11 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['ProductName', 'TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "productdescriptiontable_0".description as "stockProductName" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-08-15\' and "producttable_0".thru_z > \'2015-08-15\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= \'2015-08-15\' and "stockproducttable_1".thru_z > \'2015-08-15\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id)', $result); + assertEqualsH2Compatible( + 'select "productdescriptiontable_0".description as "stockProductName" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-08-15\' and "producttable_0".thru_z > \'2015-08-15\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= \'2015-08-15\' and "stockproducttable_1".thru_z > \'2015-08-15\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id)', + 'select "productdescriptiontable_0".description as "stockProductName" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-08-15\' and "producttable_0".thru_z > DATE\'2015-08-15\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= DATE\'2015-08-15\' and "stockproducttable_1".thru_z > DATE\'2015-08-15\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testMilestoningFiltersAppliedToIntermediateMilestonedJoinTablesWhereSourceIsEmbeddedTargetTypeIsNonTemporalAndTargetMainTableIsNotMilestoned():Boolean[1] @@ -55,8 +64,11 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['SYS1', 'SYS1'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "systemtable_0".name as "systemName" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= \'2015-10-16\' and "productclassificationsystemtable_0".thru_z > \'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); - + assertEqualsH2Compatible( + 'select "systemtable_0".name as "systemName" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= \'2015-10-16\' and "productclassificationsystemtable_0".thru_z > \'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "systemtable_0".name as "systemName" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationsystemtable_0".thru_z > DATE\'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testMilestoningFiltersPropogatedToDataTypePropertiesFromAllInProject():Boolean[1] @@ -67,13 +79,21 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['ProductName2,STOCK', 'ProductName3,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testLatestMilestoningFiltersPropogatedToDataTypePropertiesFromAllInProject():Boolean[1] { let result = execute(|Product.all(%latest)->project([p|$p.name, p|$p.classificationType],['name','classificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = \'9999-12-31 00:00:00.0000\') where "root".thru_z = \'9999-12-31 00:00:00.0000\'', $result); + assertEqualsH2Compatible( + 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = \'9999-12-31 00:00:00.0000\') where "root".thru_z = \'9999-12-31 00:00:00.0000\'', + 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') where "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testMilestoningFiltersPropogatedFromAllThroughFilterToDataTypePropertiesInProject():Boolean[1] @@ -84,7 +104,11 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['ProductName2,STOCK', 'ProductName3,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where ("root".name <> \'\' OR "root".name is null) and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where ("root".name <> \'\' OR "root".name is null) and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where ("root".name <> \'\' OR "root".name is null) and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testMilestoningFiltersPropogatedToDataTypePropertiesFromAllInFilter():Boolean[1] @@ -94,7 +118,11 @@ function <> meta::relational::tests::milestoning::contextpropagation: let result = execute(|Product.all($businessDate)->filter(p|$p.classificationType == ProductClassificationType.STOCK), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals([ProductClassificationType.STOCK], $result.values->map(p|$p.classificationType)); - assertSameSQL('select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testMilestoningFiltersNotPropogatedFromAllToNonTemporalClassMappedToTemporalTable():Boolean[1] @@ -105,7 +133,11 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['2,smith', '3,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".id as "name", "newactivityinfotable_0".created_by as "classificationType" from ProductTable as "root" left outer join NewActivityInfoTable as "newactivityinfotable_0" on ("root".id = "newactivityinfotable_0".productId) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".id as "name", "newactivityinfotable_0".created_by as "classificationType" from ProductTable as "root" left outer join NewActivityInfoTable as "newactivityinfotable_0" on ("root".id = "newactivityinfotable_0".productId) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "name", "newactivityinfotable_0".created_by as "classificationType" from ProductTable as "root" left outer join NewActivityInfoTable as "newactivityinfotable_0" on ("root".id = "newactivityinfotable_0".productId) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testMilestoningFiltersUsedOnIntermediateJoinOnlyFromAllToNonTemporalClassMappedToTemporalTable():Boolean[1] @@ -116,7 +148,11 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['2,smith', '3,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".id as "name", "newactivityinfotable_0".created_by as "classificationType" from ProductTable as "root" left outer join CancelActivitiesTable as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId and "cancelactivitiestable_0".from_z <= \'2015-10-16\' and "cancelactivitiestable_0".thru_z > \'2015-10-16\') left outer join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_0".productId = "newactivityinfotable_0".productId) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".id as "name", "newactivityinfotable_0".created_by as "classificationType" from ProductTable as "root" left outer join CancelActivitiesTable as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId and "cancelactivitiestable_0".from_z <= \'2015-10-16\' and "cancelactivitiestable_0".thru_z > \'2015-10-16\') left outer join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_0".productId = "newactivityinfotable_0".productId) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "name", "newactivityinfotable_0".created_by as "classificationType" from ProductTable as "root" left outer join CancelActivitiesTable as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId and "cancelactivitiestable_0".from_z <= DATE\'2015-10-16\' and "cancelactivitiestable_0".thru_z > DATE\'2015-10-16\') left outer join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_0".productId = "newactivityinfotable_0".productId) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testMilestoningFiltersUsedOnIntermediateJoinOnlyFromAllToNonTemporalClassMappedToTemporalTableWithFilter():Boolean[1] @@ -127,14 +163,22 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['2,smith', '3,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".id as "name", "cancelactivitiestable_0".created_by as "classificationType" from ProductTable as "root" left outer join (select "cancelactivitiestable_1".productId as productId, "newactivityinfotable_0".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_1" inner join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_1".productId = "newactivityinfotable_0".productId) where "newactivityinfotable_0".productId > 0 and "cancelactivitiestable_1".from_z <= \'2015-10-16\' and "cancelactivitiestable_1".thru_z > \'2015-10-16\') as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".id as "name", "cancelactivitiestable_0".created_by as "classificationType" from ProductTable as "root" left outer join (select "cancelactivitiestable_1".productId as productId, "newactivityinfotable_0".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_1" inner join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_1".productId = "newactivityinfotable_0".productId) where "newactivityinfotable_0".productId > 0 and "cancelactivitiestable_1".from_z <= \'2015-10-16\' and "cancelactivitiestable_1".thru_z > \'2015-10-16\') as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "name", "cancelactivitiestable_0".created_by as "classificationType" from ProductTable as "root" left outer join (select "cancelactivitiestable_1".productId as productId, "newactivityinfotable_0".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_1" inner join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_1".productId = "newactivityinfotable_0".productId) where "newactivityinfotable_0".productId > 0 and "cancelactivitiestable_1".from_z <= DATE\'2015-10-16\' and "cancelactivitiestable_1".thru_z > DATE\'2015-10-16\') as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testIsolationOfMilestoningFiltersUsedOnIntermediateJoinInOR():Boolean[1] { let businessDate = %2015-10-16; let result = execute(|Product.all($businessDate)->filter(p| $p.cancelProductActivity.createdBy == 'David' || $p.newActivity.createdBy == 'Peter'), propagationMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "cancelactivitiestable_0".created_by as "cancelProductActivityCreatedBy", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join (select "cancelactivitiestable_0".productId as productId, "cancelactivitiestable_0".from_z as from_z, "cancelactivitiestable_0".thru_z as thru_z, "newactivityinfotable_0".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_0" inner join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_0".productId = "newactivityinfotable_0".productId and "newactivityinfotable_0".from_z <= \'2015-10-16\' and "newactivityinfotable_0".thru_z > \'2015-10-16\')) as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId and "cancelactivitiestable_0".from_z <= \'2015-10-16\' and "cancelactivitiestable_0".thru_z > \'2015-10-16\') left outer join (select "cancelactivitiestable_2".productId as productId, "newactivityinfotable_1".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_2" inner join NewActivityInfoTable as "newactivityinfotable_1" on ("cancelactivitiestable_2".productId = "newactivityinfotable_1".productId) where "newactivityinfotable_1".productId > 0 and "cancelactivitiestable_2".from_z <= \'2015-10-16\' and "cancelactivitiestable_2".thru_z > \'2015-10-16\') as "cancelactivitiestable_1" on ("root".id = "cancelactivitiestable_1".productId) left outer join NewActivityInfoTable as "newactivityinfotable_2" on ("root".id = "newactivityinfotable_2".productId) where ("cancelactivitiestable_1".created_by = \'David\' or "newactivityinfotable_2".created_by = \'Peter\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "cancelactivitiestable_0".created_by as "cancelProductActivityCreatedBy", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join (select "cancelactivitiestable_0".productId as productId, "cancelactivitiestable_0".from_z as from_z, "cancelactivitiestable_0".thru_z as thru_z, "newactivityinfotable_0".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_0" inner join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_0".productId = "newactivityinfotable_0".productId and "newactivityinfotable_0".from_z <= \'2015-10-16\' and "newactivityinfotable_0".thru_z > \'2015-10-16\')) as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId and "cancelactivitiestable_0".from_z <= \'2015-10-16\' and "cancelactivitiestable_0".thru_z > \'2015-10-16\') left outer join (select "cancelactivitiestable_2".productId as productId, "newactivityinfotable_1".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_2" inner join NewActivityInfoTable as "newactivityinfotable_1" on ("cancelactivitiestable_2".productId = "newactivityinfotable_1".productId) where "newactivityinfotable_1".productId > 0 and "cancelactivitiestable_2".from_z <= \'2015-10-16\' and "cancelactivitiestable_2".thru_z > \'2015-10-16\') as "cancelactivitiestable_1" on ("root".id = "cancelactivitiestable_1".productId) left outer join NewActivityInfoTable as "newactivityinfotable_2" on ("root".id = "newactivityinfotable_2".productId) where ("cancelactivitiestable_1".created_by = \'David\' or "newactivityinfotable_2".created_by = \'Peter\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "cancelactivitiestable_0".created_by as "cancelProductActivityCreatedBy", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join (select "cancelactivitiestable_0".productId as productId, "cancelactivitiestable_0".from_z as from_z, "cancelactivitiestable_0".thru_z as thru_z, "newactivityinfotable_0".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_0" inner join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_0".productId = "newactivityinfotable_0".productId and "newactivityinfotable_0".from_z <= DATE\'2015-10-16\' and "newactivityinfotable_0".thru_z > DATE\'2015-10-16\')) as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId and "cancelactivitiestable_0".from_z <= DATE\'2015-10-16\' and "cancelactivitiestable_0".thru_z > DATE\'2015-10-16\') left outer join (select "cancelactivitiestable_2".productId as productId, "newactivityinfotable_1".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_2" inner join NewActivityInfoTable as "newactivityinfotable_1" on ("cancelactivitiestable_2".productId = "newactivityinfotable_1".productId) where "newactivityinfotable_1".productId > 0 and "cancelactivitiestable_2".from_z <= DATE\'2015-10-16\' and "cancelactivitiestable_2".thru_z > DATE\'2015-10-16\') as "cancelactivitiestable_1" on ("root".id = "cancelactivitiestable_1".productId) left outer join NewActivityInfoTable as "newactivityinfotable_2" on ("root".id = "newactivityinfotable_2".productId) where ("cancelactivitiestable_1".created_by = \'David\' or "newactivityinfotable_2".created_by = \'Peter\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testMilestoningFiltersOnIntermediateInnerJoins():Boolean[1] @@ -145,7 +189,11 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['2,TDSNull', '3,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".id as "name", "cancelactivitiestable_0".created_by as "cancelProductActivityCreatedBy" from ProductTable as "root" left outer join (select "cancelactivitiestable_1".productId as productId, "newactivityinfotable_0".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_1" inner join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_1".productId = "newactivityinfotable_0".productId) where "newactivityinfotable_0".from_z <= \'2015-10-16\' and "newactivityinfotable_0".thru_z > \'2015-10-16\' and "cancelactivitiestable_1".from_z <= \'2015-10-16\' and "cancelactivitiestable_1".thru_z > \'2015-10-16\') as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".id as "name", "cancelactivitiestable_0".created_by as "cancelProductActivityCreatedBy" from ProductTable as "root" left outer join (select "cancelactivitiestable_1".productId as productId, "newactivityinfotable_0".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_1" inner join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_1".productId = "newactivityinfotable_0".productId) where "newactivityinfotable_0".from_z <= \'2015-10-16\' and "newactivityinfotable_0".thru_z > \'2015-10-16\' and "cancelactivitiestable_1".from_z <= \'2015-10-16\' and "cancelactivitiestable_1".thru_z > \'2015-10-16\') as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "name", "cancelactivitiestable_0".created_by as "cancelProductActivityCreatedBy" from ProductTable as "root" left outer join (select "cancelactivitiestable_1".productId as productId, "newactivityinfotable_0".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_1" inner join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_1".productId = "newactivityinfotable_0".productId) where "newactivityinfotable_0".from_z <= DATE\'2015-10-16\' and "newactivityinfotable_0".thru_z > DATE\'2015-10-16\' and "cancelactivitiestable_1".from_z <= DATE\'2015-10-16\' and "cancelactivitiestable_1".thru_z > DATE\'2015-10-16\') as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testMilestoningContextNotPropogatedThroughNonTemporalPropertiesFromAll():Boolean[1] @@ -156,13 +204,21 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['2,SYS1 description 1-v1', '2,SYS1 description 1-v2', '3,SYS1 description 1-v1', '3,SYS1 description 1-v2'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".id as "name", "systemdescriptiontable_0".description as "sysDescription" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".id as "name", "systemdescriptiontable_0".description as "sysDescription" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "name", "systemdescriptiontable_0".description as "sysDescription" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testMilestoningContextWithLatestDateNotPropogatedThroughNonTemporalPropertiesFromAll():Boolean[1] { let result = execute(|Product.all(%latest)->project([p|$p.id, p|$p.referenceSystem.systemDescriptionAllVersions.description],['name','sysDescription']), propagationMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "root".id as "name", "systemdescriptiontable_0".description as "sysDescription" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName) where "root".thru_z = \'9999-12-31 00:00:00.0000\'', $result); + assertEqualsH2Compatible( + 'select "root".id as "name", "systemdescriptiontable_0".description as "sysDescription" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName) where "root".thru_z = \'9999-12-31 00:00:00.0000\'', + 'select "root".id as "name", "systemdescriptiontable_0".description as "sysDescription" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName) where "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testMilestoningContextNotPropogatedThroughNonTemporalPropertiesFromMilestonedQualifiedProperty():Boolean[1] @@ -173,7 +229,11 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['1,TDSNull', '2,SYS1 description 1-v1', '2,SYS1 description 1-v2'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".id as "name", "systemdescriptiontable_0".description as "sysDescription" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("producttable_0".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName)', $result); + assertEqualsH2Compatible( + 'select "root".id as "name", "systemdescriptiontable_0".description as "sysDescription" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("producttable_0".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName)', + 'select "root".id as "name", "systemdescriptiontable_0".description as "sysDescription" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-10-16\' and "producttable_0".thru_z > DATE\'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("producttable_0".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testMilestoneDatePropogationThruFilterIsIndenpendentOfDateManipulationWithinTheFilter():Boolean[1] @@ -181,7 +241,11 @@ function <> meta::relational::tests::milestoning::contextpropagation: let resultWithDatePropogated = execute(|Product.all(%2015-10-16)->filter(p|$p.classification(%2015-10-15).type=='STOCK')->project([p|$p.id, p|$p.classification.type],['id','classificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $resultWithDatePropogated.values->at(0); assertEquals(['2,STOCK'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL( 'select "root".id as "id", "productclassificationtable_1".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-15\' and "productclassificationtable_0".thru_z > \'2015-10-15\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $resultWithDatePropogated->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".id as "id", "productclassificationtable_1".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-15\' and "productclassificationtable_0".thru_z > \'2015-10-15\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "id", "productclassificationtable_1".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-15\' and "productclassificationtable_0".thru_z > DATE\'2015-10-15\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $resultWithDatePropogated->sqlRemoveFormatting() + ); let resultWithDateSpecified = execute(|Product.all(%2015-10-16)->filter(p|$p.classification(%2015-10-15).type=='STOCK')->project([p|$p.id, p|$p.classification(%2015-10-16).type],['id','classificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals($resultWithDatePropogated->sqlRemoveFormatting(),$resultWithDateSpecified->sqlRemoveFormatting()); } @@ -194,7 +258,11 @@ function <> meta::relational::tests::milestoning::contextpropagation: assertEquals(1, $products->size()); assertEquals(['ProductName2'], $products->map(p|$p.name)); assertEquals([%2015-10-16], $products->map(p|$p.businessDate)); - assertSameSQL( 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testMilestoneDatePropogationFromTypeQueryThroughFilterToNoArgMilestonedQpInProject():Boolean[1] @@ -202,7 +270,11 @@ function <> meta::relational::tests::milestoning::contextpropagation: let result = execute(|Product.all(%2015-10-16)->filter(p|$p.classification.type=='STOCK')->project([p|$p.classification.type],['classificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(['STOCK'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL( 'select "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testMilestoneDatePropogationFromTypeQueryDoesNotOverrideThatSpecifiedAsArgToMilestonedQpInFilter():Boolean[1] @@ -212,19 +284,31 @@ function <> meta::relational::tests::milestoning::contextpropagation: assertEquals(1, $products->size()); assertEquals(['ProductName2'], $products->map(p|$p.name)); assertEquals([%2015-10-16], $products->map(p|$p.businessDate)); - assertSameSQL('select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-17\' and "productclassificationtable_1".thru_z > \'2015-10-17\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-17\' and "productclassificationtable_1".thru_z > \'2015-10-17\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-17\' and "productclassificationtable_1".thru_z > DATE\'2015-10-17\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testLatestMilestoneDatePropogationFromTypeQueryDoesNotOverrideThatSpecifiedAsArgToMilestonedQpInFilter():Boolean[1] { let result = execute(|Product.all(%latest)->filter(p|$p.classification(%2015-10-17).type=='STOCK'), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'9999-12-31T00:00:00.0000+0000\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".thru_z = \'9999-12-31 00:00:00.0000\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = \'9999-12-31 00:00:00.0000\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-17\' and "productclassificationtable_1".thru_z > \'2015-10-17\') where "productclassificationtable_1".type = \'STOCK\' and "root".thru_z = \'9999-12-31 00:00:00.0000\'', $result); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'9999-12-31T00:00:00.0000+0000\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".thru_z = \'9999-12-31 00:00:00.0000\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = \'9999-12-31 00:00:00.0000\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-17\' and "productclassificationtable_1".thru_z > \'2015-10-17\') where "productclassificationtable_1".type = \'STOCK\' and "root".thru_z = \'9999-12-31 00:00:00.0000\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'9999-12-31T00:00:00.0000+0000\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-17\' and "productclassificationtable_1".thru_z > DATE\'2015-10-17\') where "productclassificationtable_1".type = \'STOCK\' and "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testLatestMilestoneDateMappedTableDateDoesNotOverrideLatestDateFromChildPropertyInPropogation():Boolean[1] { let result = execute(|Product.all(%latest)->filter(p|$p.classification.type=='STOCK'), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'9999-12-31T00:00:00.0000+0000\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".thru_z = \'9999-12-31 00:00:00.0000\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = \'9999-12-31 00:00:00.0000\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".thru_z = \'9999-12-31 00:00:00.0000\') where "productclassificationtable_1".type = \'STOCK\' and "root".thru_z = \'9999-12-31 00:00:00.0000\'', $result); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'9999-12-31T00:00:00.0000+0000\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".thru_z = \'9999-12-31 00:00:00.0000\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = \'9999-12-31 00:00:00.0000\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".thru_z = \'9999-12-31 00:00:00.0000\') where "productclassificationtable_1".type = \'STOCK\' and "root".thru_z = \'9999-12-31 00:00:00.0000\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'9999-12-31T00:00:00.0000+0000\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') where "productclassificationtable_1".type = \'STOCK\' and "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testMilestoneDatePropogationFromTypeQueryDoesNotOverrideThatSpecifiedAsArgToMilestonedQpInProject():Boolean[1] @@ -232,7 +316,11 @@ function <> meta::relational::tests::milestoning::contextpropagation: let result = execute(|Product.all(%2015-10-16)->filter(p|$p.classification(%2017-10-16).type=='STOCK')->project([p|$p.classification(%2018-10-16).type],['classificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(['STOCK'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "productclassificationtable_1".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2017-10-16\' and "productclassificationtable_0".thru_z > \'2017-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2018-10-16\' and "productclassificationtable_1".thru_z > \'2018-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "productclassificationtable_1".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2017-10-16\' and "productclassificationtable_0".thru_z > \'2017-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2018-10-16\' and "productclassificationtable_1".thru_z > \'2018-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "productclassificationtable_1".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2017-10-16\' and "productclassificationtable_0".thru_z > DATE\'2017-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2018-10-16\' and "productclassificationtable_1".thru_z > DATE\'2018-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testMilestoneDatePropogationFromTypeQueryToProjectIsNotOverridenBySamePropertyUsedInFilterWithDifferentDateArguments():Boolean[1] @@ -240,7 +328,11 @@ function <> meta::relational::tests::milestoning::contextpropagation: let result = execute(|Product.all(%2015-10-16)->filter(p|$p.classification(%2017-10-16).type=='STOCK')->project([p|$p.classification.type],['classificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(['STOCK'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "productclassificationtable_1".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2017-10-16\' and "productclassificationtable_0".thru_z > \'2017-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "productclassificationtable_1".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2017-10-16\' and "productclassificationtable_0".thru_z > \'2017-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "productclassificationtable_1".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2017-10-16\' and "productclassificationtable_0".thru_z > DATE\'2017-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testMilestoneDateNotPropogatedThroughNonMilestonedType():Boolean[1] @@ -248,7 +340,11 @@ function <> meta::relational::tests::milestoning::contextpropagation: let result = execute(|Product.all(%2015-10-16)->filter(p|$p.referenceSystem->toOne().systemDescription(%2014-10-17).description=='SYS1 description 1-v1')->project([p|$p.id],['id']), propagationMapping, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(['2','3'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".id as "id" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName and "systemdescriptiontable_0".from_z <= \'2014-10-17\' and "systemdescriptiontable_0".thru_z > \'2014-10-17\') where "systemdescriptiontable_0".description = \'SYS1 description 1-v1\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".id as "id" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName and "systemdescriptiontable_0".from_z <= \'2014-10-17\' and "systemdescriptiontable_0".thru_z > \'2014-10-17\') where "systemdescriptiontable_0".description = \'SYS1 description 1-v1\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "id" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName and "systemdescriptiontable_0".from_z <= DATE\'2014-10-17\' and "systemdescriptiontable_0".thru_z > DATE\'2014-10-17\') where "systemdescriptiontable_0".description = \'SYS1 description 1-v1\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } //we don't support this yet in the Compiler @@ -328,7 +424,11 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $resultWithDatePropogated.values->at(0); assertEquals(['2,STOCK'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".id as "id", "productclassificationtable_2".type as "classificationType" from ProductTable as "root" left outer join (select distinct "productclassificationtable_1".type from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= \'2015-10-15\' and "productclassificationtable_1".thru_z > \'2015-10-15\' and "productclassificationtable_1".type = \'STOCK\') as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join ProductClassificationTable as "productclassificationtable_2" on ("root".type = "productclassificationtable_2".type and "productclassificationtable_2".from_z <= \'2015-10-16\' and "productclassificationtable_2".thru_z > \'2015-10-16\') where "productclassificationtable_0".type is not null and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $resultWithDatePropogated); + assertEqualsH2Compatible( + 'select "root".id as "id", "productclassificationtable_2".type as "classificationType" from ProductTable as "root" left outer join (select distinct "productclassificationtable_1".type from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= \'2015-10-15\' and "productclassificationtable_1".thru_z > \'2015-10-15\' and "productclassificationtable_1".type = \'STOCK\') as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join ProductClassificationTable as "productclassificationtable_2" on ("root".type = "productclassificationtable_2".type and "productclassificationtable_2".from_z <= \'2015-10-16\' and "productclassificationtable_2".thru_z > \'2015-10-16\') where "productclassificationtable_0".type is not null and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "id", "productclassificationtable_2".type as "classificationType" from ProductTable as "root" left outer join (select distinct "productclassificationtable_1".type from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= DATE\'2015-10-15\' and "productclassificationtable_1".thru_z > DATE\'2015-10-15\' and "productclassificationtable_1".type = \'STOCK\') as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join ProductClassificationTable as "productclassificationtable_2" on ("root".type = "productclassificationtable_2".type and "productclassificationtable_2".from_z <= DATE\'2015-10-16\' and "productclassificationtable_2".thru_z > DATE\'2015-10-16\') where "productclassificationtable_0".type is not null and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $resultWithDatePropogated->sqlRemoveFormatting() + ); let resultWithDateSpecified = execute(|Product.all(%2015-10-16)->filter(p|$p.classification(%2015-10-15)->exists(c|$c.type=='STOCK'))->project([p|$p.id, p|$p.classification(%2015-10-16).type],['id','classificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals($resultWithDatePropogated->sqlRemoveFormatting(),$resultWithDateSpecified->sqlRemoveFormatting()); } @@ -348,7 +448,11 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['1,STOCK DESC-V1', '2,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".id as "orderId", "productclassificationtable_0".type_description as "classificationDescription" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-08-15\' and "producttable_0".thru_z > \'2015-08-15\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".type_description as type_description from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= \'2015-08-15\' and "productclassificationtable_1".thru_z > \'2015-08-15\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type)', $result); + assertEqualsH2Compatible( + 'select "root".id as "orderId", "productclassificationtable_0".type_description as "classificationDescription" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-08-15\' and "producttable_0".thru_z > \'2015-08-15\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".type_description as type_description from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= \'2015-08-15\' and "productclassificationtable_1".thru_z > \'2015-08-15\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type)', + 'select "root".id as "orderId", "productclassificationtable_0".type_description as "classificationDescription" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-08-15\' and "producttable_0".thru_z > DATE\'2015-08-15\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".type_description as type_description from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= DATE\'2015-08-15\' and "productclassificationtable_1".thru_z > DATE\'2015-08-15\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testMilestoningContextIsPropogatedThroughSubType():Boolean[1] @@ -359,7 +463,11 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['1,STOCK DESC-V1', '2,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".id as "orderId", "productclassificationtable_0".type_description as "classificationDescription" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-08-15\' and "producttable_0".thru_z > \'2015-08-15\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".type_description as type_description from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= \'2015-08-15\' and "productclassificationtable_1".thru_z > \'2015-08-15\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type)', $result); + assertEqualsH2Compatible( + 'select "root".id as "orderId", "productclassificationtable_0".type_description as "classificationDescription" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-08-15\' and "producttable_0".thru_z > \'2015-08-15\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".type_description as type_description from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= \'2015-08-15\' and "productclassificationtable_1".thru_z > \'2015-08-15\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type)', + 'select "root".id as "orderId", "productclassificationtable_0".type_description as "classificationDescription" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-08-15\' and "producttable_0".thru_z > DATE\'2015-08-15\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".type_description as type_description from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= DATE\'2015-08-15\' and "productclassificationtable_1".thru_z > DATE\'2015-08-15\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testMilestoningContextPropagatedThroughFilterToNoArgMilestonedQualifiedPropertyInProjectPath():Boolean[1] @@ -370,7 +478,11 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['ProductName2,STOCK DESC-V3', 'ProductName3,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where ("root".name <> \'\' OR "root".name is null) and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where ("root".name <> \'\' OR "root".name is null) and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where ("root".name <> \'\' OR "root".name is null) and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testMilestoningContextPropagatedThroughToLeftSideOfQualifiedPropertyFilter():Boolean[1] @@ -378,11 +490,12 @@ function <> meta::relational::tests::milestoning::contextpropagation: let result = execute(|ProductClassification.all(%2015-10-16)->project([#/ProductClassification/product/stockProductName#]), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(['ProductName2'],$tds.rows->map(r|$r.values->makeString(','))); - let expectedSQL = 'select "productdescriptiontable_0".description as "stockProductName" from ProductClassificationTable as "root" left outer join ProductTable as "producttable_0" on ("producttable_0".type = "root".type and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= \'2015-10-16\' and "stockproducttable_1".thru_z > \'2015-10-16\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\''; - assertSameSQL($expectedSQL , $result); + let expectedLegacyH2SQL = 'select "productdescriptiontable_0".description as "stockProductName" from ProductClassificationTable as "root" left outer join ProductTable as "producttable_0" on ("producttable_0".type = "root".type and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= \'2015-10-16\' and "stockproducttable_1".thru_z > \'2015-10-16\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\''; + let expectedNewH2SQL = 'select "productdescriptiontable_0".description as "stockProductName" from ProductClassificationTable as "root" left outer join ProductTable as "producttable_0" on ("producttable_0".type = "root".type and "producttable_0".from_z <= DATE\'2015-10-16\' and "producttable_0".thru_z > DATE\'2015-10-16\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= DATE\'2015-10-16\' and "stockproducttable_1".thru_z > DATE\'2015-10-16\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\''; + assertEqualsH2Compatible($expectedLegacyH2SQL, $expectedNewH2SQL, $result->sqlRemoveFormatting()); let businessDate = %2015-8-15; let resultWithVar = execute(|ProductClassification.all(%2015-10-16)->project([#/ProductClassification/product/stockProductName#]), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL($expectedSQL ,$resultWithVar); + assertEqualsH2Compatible($expectedLegacyH2SQL, $expectedNewH2SQL, $resultWithVar->sqlRemoveFormatting()); } function <> meta::relational::tests::milestoning::contextpropagation::testMilestoningContextPropagatedFromMilestoningQualifiedPropertyWithArgToNoArgMilestonedQualifiedPropertyInProjectPath():Boolean[1] @@ -393,7 +506,11 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['ProductName2,LNSE', 'ProductName3,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2016-10-16\' and "productclassificationtable_0".thru_z > \'2016-10-16\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= \'2016-10-16\' and "productexchangetable_1".thru_z > \'2016-10-16\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where ("root".name <> \'\' OR "root".name is null) and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2016-10-16\' and "productclassificationtable_0".thru_z > \'2016-10-16\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= \'2016-10-16\' and "productexchangetable_1".thru_z > \'2016-10-16\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where ("root".name <> \'\' OR "root".name is null) and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2016-10-16\' and "productclassificationtable_0".thru_z > DATE\'2016-10-16\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= DATE\'2016-10-16\' and "productexchangetable_1".thru_z > DATE\'2016-10-16\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where ("root".name <> \'\' OR "root".name is null) and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testMilestoningContextPropagatedUsingVariableInProjectPath():Boolean[1] @@ -404,7 +521,11 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['ProductName2,STOCK DESC-V3', 'ProductName3,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testCurrentMappingPropagationThroughMilestonedQualifiedPropertyWithEmbeddedLeftSideToSubsequentPropertyInProjectPath():Boolean[1] @@ -415,7 +536,11 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['ProductName2,SYS1', 'ProductName3,SYS1'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".name as "productName", "systemtable_0".name as "classificationSystemName" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= \'2015-10-16\' and "productclassificationsystemtable_0".thru_z > \'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".name as "productName", "systemtable_0".name as "classificationSystemName" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= \'2015-10-16\' and "productclassificationsystemtable_0".thru_z > \'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "productName", "systemtable_0".name as "classificationSystemName" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationsystemtable_0".thru_z > DATE\'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testMilestoningContextPropagatedUsingVariableInProject():Boolean[1] @@ -426,7 +551,11 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['ProductName2,STOCK DESC-V3', 'ProductName3,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> {meta::pure::executionPlan::profiles::serverVersion.start='V1_7_0'} meta::relational::tests::milestoning::contextpropagation::testMilestoningContextPropagatedUsingVariableInProjectMoveLetInBlock():Boolean[1] @@ -443,12 +572,20 @@ function <> meta::relational::tests::milestoning::contextpropagation: Product.all($businessDate)->project([p|$p.name, p|$p.classification.description],['name','description']);, milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(['ProductName2,STOCK DESC-V3', 'ProductName3,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::contextpropagation::testDatePropagationWithInheritance():Boolean[1] { let businessDate = %2015-8-14; let result = execute(|OrderWithProductWithConstraints.all($businessDate)->project([o|$o.getClassificationDescription($businessDate)],['classificationDescription']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "ordertable_1".aggCol as "classificationDescription" from OrderTable as "root" left outer join (select "ordertable_2".id as id, group_concat("productclassificationtable_0".type_description ) as aggCol from OrderTable as "ordertable_2" left outer join ProductTable as "producttable_0" on ("ordertable_2".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-08-14\' and "producttable_0".thru_z > \'2015-08-14\') left outer join (select "productclassificationtable_0".type as type, "productclassificationtable_0".type_description as type_description from ProductClassificationTable as "productclassificationtable_0" where "productclassificationtable_0".from_z <= \'2015-08-14\' and "productclassificationtable_0".thru_z > \'2015-08-14\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type) group by "ordertable_2".id) as "ordertable_1" on ("root".id = "ordertable_1".id)',$result); + assertEqualsH2Compatible( + 'select "ordertable_1".aggCol as "classificationDescription" from OrderTable as "root" left outer join (select "ordertable_2".id as id, group_concat("productclassificationtable_0".type_description ) as aggCol from OrderTable as "ordertable_2" left outer join ProductTable as "producttable_0" on ("ordertable_2".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-08-14\' and "producttable_0".thru_z > \'2015-08-14\') left outer join (select "productclassificationtable_0".type as type, "productclassificationtable_0".type_description as type_description from ProductClassificationTable as "productclassificationtable_0" where "productclassificationtable_0".from_z <= \'2015-08-14\' and "productclassificationtable_0".thru_z > \'2015-08-14\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type) group by "ordertable_2".id) as "ordertable_1" on ("root".id = "ordertable_1".id)', + 'select "ordertable_1".aggCol as "classificationDescription" from OrderTable as "root" left outer join (select "ordertable_2".id as id, group_concat("productclassificationtable_0".type_description ) as aggCol from OrderTable as "ordertable_2" left outer join ProductTable as "producttable_0" on ("ordertable_2".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-08-14\' and "producttable_0".thru_z > DATE\'2015-08-14\') left outer join (select "productclassificationtable_0".type as type, "productclassificationtable_0".type_description as type_description from ProductClassificationTable as "productclassificationtable_0" where "productclassificationtable_0".from_z <= DATE\'2015-08-14\' and "productclassificationtable_0".thru_z > DATE\'2015-08-14\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type) group by "ordertable_2".id) as "ordertable_1" on ("root".id = "ordertable_1".id)', + $result->sqlRemoveFormatting() + ); } \ No newline at end of file diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testMilestoningWithDistinct.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testMilestoningWithDistinct.pure index b78b55dcbd3..e219dd61a47 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testMilestoningWithDistinct.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testMilestoningWithDistinct.pure @@ -13,6 +13,8 @@ // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; +import meta::relational::mapping::*; import meta::relational::metamodel::execute::*; import meta::relational::functions::asserts::*; import meta::relational::runtime::*; @@ -38,7 +40,11 @@ function <> meta::relational::tests::milestoning::distinct::testDisti let result = execute(|Product.all(%2015-8-16)->project([p|$p.id, p|$p.name, p|$p.type],['id','name', 'type']), milestoningdistinctmapping, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(['1,ProductName,STOCK', '2,ProductName1,STOCK'], $tds.rows->map(r|$r.values->makeString(','))->sort()); - assertSameSQL('select "root".id as "id", "root".name as "name", "root".type as "type" from (select distinct "producttable_1".id as id, "producttable_1".name as name, "producttable_1".type as type, \'2015-08-16\' as "k_businessDate" from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-08-16\' and "producttable_1".thru_z > \'2015-08-16\') as "root"', $result); + assertEqualsH2Compatible( + 'select "root".id as "id", "root".name as "name", "root".type as "type" from (select distinct "producttable_1".id as id, "producttable_1".name as name, "producttable_1".type as type, \'2015-08-16\' as "k_businessDate" from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-08-16\' and "producttable_1".thru_z > \'2015-08-16\') as "root"', + 'select "root".id as "id", "root".name as "name", "root".type as "type" from (select distinct "producttable_1".id as id, "producttable_1".name as name, "producttable_1".type as type, \'2015-08-16\' as "k_businessDate" from ProductTable as "producttable_1" where "producttable_1".from_z <= DATE\'2015-08-16\' and "producttable_1".thru_z > DATE\'2015-08-16\') as "root"', + $result->sqlRemoveFormatting() + ); } ###Relational diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testMilestoningWithInclusive.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testMilestoningWithInclusive.pure index 3c906a6acec..7223f598d34 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testMilestoningWithInclusive.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testMilestoningWithInclusive.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::pure::runtime::*; import meta::relational::mapping::*; import meta::relational::tests::*; @@ -21,84 +22,96 @@ import meta::relational::tests::milestoning::inclusive::*; function <> meta::relational::tests::milestoning::inclusive::testInFromInclusive():Boolean[1] { let result1 = execute(|BiTemporalProduct.all(%2018-05-05, %2018-05-04)->filter(p | $p.id == 2), InFromInclusiveMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - let expectedSQL1 = 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate" from BiTemporalProductTable_In_From_Inclusive as "root" where "root".id = 2 and "root".in_z <= \'2018-05-05\' and "root".out_z > \'2018-05-05\' and "root".from_z <= \'2018-05-04\' and "root".thru_z > \'2018-05-04\''; - assertEquals($expectedSQL1, $result1->sqlRemoveFormatting()); + let expectedLegacySQL1 = 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate" from BiTemporalProductTable_In_From_Inclusive as "root" where "root".id = 2 and "root".in_z <= \'2018-05-05\' and "root".out_z > \'2018-05-05\' and "root".from_z <= \'2018-05-04\' and "root".thru_z > \'2018-05-04\''; + let expectedNewSQL1 = 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate" from BiTemporalProductTable_In_From_Inclusive as "root" where "root".id = 2 and "root".in_z <= DATE\'2018-05-05\' and "root".out_z > DATE\'2018-05-05\' and "root".from_z <= DATE\'2018-05-04\' and "root".thru_z > DATE\'2018-05-04\''; + assertEqualsH2Compatible($expectedLegacySQL1, $expectedNewSQL1, $result1->sqlRemoveFormatting()); assertSameElements(['def2'], $result1.values.name); let result2 = execute(|Order.all()->filter(o | $o.biTemporalProduct(%2018-05-05, %2018-05-04).name == 'def2'), InFromInclusiveMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - let expectedSQL2 = 'select "root".id as "pk_0", "root".id as "id" from MyOrderTable as "root" left outer join BiTemporalProductTable_In_From_Inclusive as "bitemporalproducttable_in_from_inclusive_0" on ("root".prodFk = "bitemporalproducttable_in_from_inclusive_0".id and ("bitemporalproducttable_in_from_inclusive_0".in_z <= \'2018-05-05\' and "bitemporalproducttable_in_from_inclusive_0".out_z > \'2018-05-05\' and "bitemporalproducttable_in_from_inclusive_0".from_z <= \'2018-05-04\' and "bitemporalproducttable_in_from_inclusive_0".thru_z > \'2018-05-04\')) where "bitemporalproducttable_in_from_inclusive_0".name = \'def2\''; - assertEquals($expectedSQL2, $result2->sqlRemoveFormatting()); + let expectedLegacySQL2 = 'select "root".id as "pk_0", "root".id as "id" from MyOrderTable as "root" left outer join BiTemporalProductTable_In_From_Inclusive as "bitemporalproducttable_in_from_inclusive_0" on ("root".prodFk = "bitemporalproducttable_in_from_inclusive_0".id and ("bitemporalproducttable_in_from_inclusive_0".in_z <= \'2018-05-05\' and "bitemporalproducttable_in_from_inclusive_0".out_z > \'2018-05-05\' and "bitemporalproducttable_in_from_inclusive_0".from_z <= \'2018-05-04\' and "bitemporalproducttable_in_from_inclusive_0".thru_z > \'2018-05-04\')) where "bitemporalproducttable_in_from_inclusive_0".name = \'def2\''; + let expectedNewSQL2 = 'select "root".id as "pk_0", "root".id as "id" from MyOrderTable as "root" left outer join BiTemporalProductTable_In_From_Inclusive as "bitemporalproducttable_in_from_inclusive_0" on ("root".prodFk = "bitemporalproducttable_in_from_inclusive_0".id and ("bitemporalproducttable_in_from_inclusive_0".in_z <= DATE\'2018-05-05\' and "bitemporalproducttable_in_from_inclusive_0".out_z > DATE\'2018-05-05\' and "bitemporalproducttable_in_from_inclusive_0".from_z <= DATE\'2018-05-04\' and "bitemporalproducttable_in_from_inclusive_0".thru_z > DATE\'2018-05-04\')) where "bitemporalproducttable_in_from_inclusive_0".name = \'def2\''; + assertEqualsH2Compatible($expectedLegacySQL2, $expectedNewSQL2, $result2->sqlRemoveFormatting()); assertSameElements([2], $result2.values.id); } function <> meta::relational::tests::milestoning::inclusive::testInThruInclusive():Boolean[1] { let result1 = execute(|BiTemporalProduct.all(%2018-05-05, %2018-05-04)->filter(p | $p.id == 2), InThruInclusiveMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - let expectedSQL1 = 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate" from BiTemporalProductTable_In_Thru_Inclusive as "root" where "root".id = 2 and "root".in_z <= \'2018-05-05\' and "root".out_z > \'2018-05-05\' and "root".from_z < \'2018-05-04\' and "root".thru_z >= \'2018-05-04\''; - assertEquals($expectedSQL1, $result1->sqlRemoveFormatting()); + let expectedLegacySQL1 = 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate" from BiTemporalProductTable_In_Thru_Inclusive as "root" where "root".id = 2 and "root".in_z <= \'2018-05-05\' and "root".out_z > \'2018-05-05\' and "root".from_z < \'2018-05-04\' and "root".thru_z >= \'2018-05-04\''; + let expectedNewSQL1 = 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate" from BiTemporalProductTable_In_Thru_Inclusive as "root" where "root".id = 2 and "root".in_z <= DATE\'2018-05-05\' and "root".out_z > DATE\'2018-05-05\' and "root".from_z < DATE\'2018-05-04\' and "root".thru_z >= DATE\'2018-05-04\''; + assertEqualsH2Compatible($expectedLegacySQL1, $expectedNewSQL1, $result1->sqlRemoveFormatting()); assertSameElements(['def2'], $result1.values.name); let result2 = execute(|Order.all()->filter(o | $o.biTemporalProduct(%2018-05-05, %2018-05-04).name == 'def2'), InThruInclusiveMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - let expectedSQL2 = 'select "root".id as "pk_0", "root".id as "id" from MyOrderTable as "root" left outer join BiTemporalProductTable_In_Thru_Inclusive as "bitemporalproducttable_in_thru_inclusive_0" on ("root".prodFk = "bitemporalproducttable_in_thru_inclusive_0".id and ("bitemporalproducttable_in_thru_inclusive_0".in_z <= \'2018-05-05\' and "bitemporalproducttable_in_thru_inclusive_0".out_z > \'2018-05-05\' and "bitemporalproducttable_in_thru_inclusive_0".from_z < \'2018-05-04\' and "bitemporalproducttable_in_thru_inclusive_0".thru_z >= \'2018-05-04\')) where "bitemporalproducttable_in_thru_inclusive_0".name = \'def2\''; - assertEquals($expectedSQL2, $result2->sqlRemoveFormatting()); + let expectedLegacySQL2 = 'select "root".id as "pk_0", "root".id as "id" from MyOrderTable as "root" left outer join BiTemporalProductTable_In_Thru_Inclusive as "bitemporalproducttable_in_thru_inclusive_0" on ("root".prodFk = "bitemporalproducttable_in_thru_inclusive_0".id and ("bitemporalproducttable_in_thru_inclusive_0".in_z <= \'2018-05-05\' and "bitemporalproducttable_in_thru_inclusive_0".out_z > \'2018-05-05\' and "bitemporalproducttable_in_thru_inclusive_0".from_z < \'2018-05-04\' and "bitemporalproducttable_in_thru_inclusive_0".thru_z >= \'2018-05-04\')) where "bitemporalproducttable_in_thru_inclusive_0".name = \'def2\''; + let expectedNewSQL2 = 'select "root".id as "pk_0", "root".id as "id" from MyOrderTable as "root" left outer join BiTemporalProductTable_In_Thru_Inclusive as "bitemporalproducttable_in_thru_inclusive_0" on ("root".prodFk = "bitemporalproducttable_in_thru_inclusive_0".id and ("bitemporalproducttable_in_thru_inclusive_0".in_z <= DATE\'2018-05-05\' and "bitemporalproducttable_in_thru_inclusive_0".out_z > DATE\'2018-05-05\' and "bitemporalproducttable_in_thru_inclusive_0".from_z < DATE\'2018-05-04\' and "bitemporalproducttable_in_thru_inclusive_0".thru_z >= DATE\'2018-05-04\')) where "bitemporalproducttable_in_thru_inclusive_0".name = \'def2\''; + assertEqualsH2Compatible($expectedLegacySQL2, $expectedNewSQL2, $result2->sqlRemoveFormatting()); assertSameElements([2], $result2.values.id); } function <> meta::relational::tests::milestoning::inclusive::testOutFromInclusive():Boolean[1] { let result1 = execute(|BiTemporalProduct.all(%2018-05-05, %2018-05-04)->filter(p | $p.id == 2), OutFromInclusiveMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - let expectedSQL1 = 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate" from BiTemporalProductTable_Out_From_Inclusive as "root" where "root".id = 2 and "root".in_z < \'2018-05-05\' and "root".out_z >= \'2018-05-05\' and "root".from_z <= \'2018-05-04\' and "root".thru_z > \'2018-05-04\''; - assertEquals($expectedSQL1, $result1->sqlRemoveFormatting()); + let expectedLegacyH2SQL1 = 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate" from BiTemporalProductTable_Out_From_Inclusive as "root" where "root".id = 2 and "root".in_z < \'2018-05-05\' and "root".out_z >= \'2018-05-05\' and "root".from_z <= \'2018-05-04\' and "root".thru_z > \'2018-05-04\''; + let expectedNewH2SQL1 = 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate" from BiTemporalProductTable_Out_From_Inclusive as "root" where "root".id = 2 and "root".in_z < DATE\'2018-05-05\' and "root".out_z >= DATE\'2018-05-05\' and "root".from_z <= DATE\'2018-05-04\' and "root".thru_z > DATE\'2018-05-04\''; + assertEqualsH2Compatible($expectedLegacyH2SQL1, $expectedNewH2SQL1, $result1->sqlRemoveFormatting()); assertSameElements(['def2'], $result1.values.name); let result2 = execute(|Order.all()->filter(o | $o.biTemporalProduct(%2018-05-05, %2018-05-04).name == 'def2'), OutFromInclusiveMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - let expectedSQL2 = 'select "root".id as "pk_0", "root".id as "id" from MyOrderTable as "root" left outer join BiTemporalProductTable_Out_From_Inclusive as "bitemporalproducttable_out_from_inclusive_0" on ("root".prodFk = "bitemporalproducttable_out_from_inclusive_0".id and ("bitemporalproducttable_out_from_inclusive_0".in_z < \'2018-05-05\' and "bitemporalproducttable_out_from_inclusive_0".out_z >= \'2018-05-05\' and "bitemporalproducttable_out_from_inclusive_0".from_z <= \'2018-05-04\' and "bitemporalproducttable_out_from_inclusive_0".thru_z > \'2018-05-04\')) where "bitemporalproducttable_out_from_inclusive_0".name = \'def2\''; - assertEquals($expectedSQL2, $result2->sqlRemoveFormatting()); + let expectedLegacyH2SQL2 = 'select "root".id as "pk_0", "root".id as "id" from MyOrderTable as "root" left outer join BiTemporalProductTable_Out_From_Inclusive as "bitemporalproducttable_out_from_inclusive_0" on ("root".prodFk = "bitemporalproducttable_out_from_inclusive_0".id and ("bitemporalproducttable_out_from_inclusive_0".in_z < \'2018-05-05\' and "bitemporalproducttable_out_from_inclusive_0".out_z >= \'2018-05-05\' and "bitemporalproducttable_out_from_inclusive_0".from_z <= \'2018-05-04\' and "bitemporalproducttable_out_from_inclusive_0".thru_z > \'2018-05-04\')) where "bitemporalproducttable_out_from_inclusive_0".name = \'def2\''; + let expectedNewH2SQL2 = 'select "root".id as "pk_0", "root".id as "id" from MyOrderTable as "root" left outer join BiTemporalProductTable_Out_From_Inclusive as "bitemporalproducttable_out_from_inclusive_0" on ("root".prodFk = "bitemporalproducttable_out_from_inclusive_0".id and ("bitemporalproducttable_out_from_inclusive_0".in_z < DATE\'2018-05-05\' and "bitemporalproducttable_out_from_inclusive_0".out_z >= DATE\'2018-05-05\' and "bitemporalproducttable_out_from_inclusive_0".from_z <= DATE\'2018-05-04\' and "bitemporalproducttable_out_from_inclusive_0".thru_z > DATE\'2018-05-04\')) where "bitemporalproducttable_out_from_inclusive_0".name = \'def2\''; + assertEqualsH2Compatible($expectedLegacyH2SQL2, $expectedNewH2SQL2, $result2->sqlRemoveFormatting()); assertSameElements([2], $result2.values.id); } function <> meta::relational::tests::milestoning::inclusive::testOutThruInclusive():Boolean[1] { let result1 = execute(|BiTemporalProduct.all(%2018-05-05, %2018-05-04)->filter(p | $p.id == 2), OutThruInclusiveMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - let expectedSQL1 = 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate" from BiTemporalProductTable_Out_Thru_Inclusive as "root" where "root".id = 2 and "root".in_z < \'2018-05-05\' and "root".out_z >= \'2018-05-05\' and "root".from_z < \'2018-05-04\' and "root".thru_z >= \'2018-05-04\''; - assertEquals($expectedSQL1, $result1->sqlRemoveFormatting()); + let expectedLegacyH2SQL1 = 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate" from BiTemporalProductTable_Out_Thru_Inclusive as "root" where "root".id = 2 and "root".in_z < \'2018-05-05\' and "root".out_z >= \'2018-05-05\' and "root".from_z < \'2018-05-04\' and "root".thru_z >= \'2018-05-04\''; + let expectedNewH2SQL1 = 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate" from BiTemporalProductTable_Out_Thru_Inclusive as "root" where "root".id = 2 and "root".in_z < DATE\'2018-05-05\' and "root".out_z >= DATE\'2018-05-05\' and "root".from_z < DATE\'2018-05-04\' and "root".thru_z >= DATE\'2018-05-04\''; + assertEqualsH2Compatible($expectedLegacyH2SQL1, $expectedNewH2SQL1, $result1->sqlRemoveFormatting()); assertSameElements(['def2'], $result1.values.name); let result2 = execute(|Order.all()->filter(o | $o.biTemporalProduct(%2018-05-05, %2018-05-04).name == 'def2'), OutThruInclusiveMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - let expectedSQL2 = 'select "root".id as "pk_0", "root".id as "id" from MyOrderTable as "root" left outer join BiTemporalProductTable_Out_Thru_Inclusive as "bitemporalproducttable_out_thru_inclusive_0" on ("root".prodFk = "bitemporalproducttable_out_thru_inclusive_0".id and ("bitemporalproducttable_out_thru_inclusive_0".in_z < \'2018-05-05\' and "bitemporalproducttable_out_thru_inclusive_0".out_z >= \'2018-05-05\' and "bitemporalproducttable_out_thru_inclusive_0".from_z < \'2018-05-04\' and "bitemporalproducttable_out_thru_inclusive_0".thru_z >= \'2018-05-04\')) where "bitemporalproducttable_out_thru_inclusive_0".name = \'def2\''; - assertEquals($expectedSQL2, $result2->sqlRemoveFormatting()); + let expectedLegacyH2SQL2 = 'select "root".id as "pk_0", "root".id as "id" from MyOrderTable as "root" left outer join BiTemporalProductTable_Out_Thru_Inclusive as "bitemporalproducttable_out_thru_inclusive_0" on ("root".prodFk = "bitemporalproducttable_out_thru_inclusive_0".id and ("bitemporalproducttable_out_thru_inclusive_0".in_z < \'2018-05-05\' and "bitemporalproducttable_out_thru_inclusive_0".out_z >= \'2018-05-05\' and "bitemporalproducttable_out_thru_inclusive_0".from_z < \'2018-05-04\' and "bitemporalproducttable_out_thru_inclusive_0".thru_z >= \'2018-05-04\')) where "bitemporalproducttable_out_thru_inclusive_0".name = \'def2\''; + let expectedNewH2SQL2 = 'select "root".id as "pk_0", "root".id as "id" from MyOrderTable as "root" left outer join BiTemporalProductTable_Out_Thru_Inclusive as "bitemporalproducttable_out_thru_inclusive_0" on ("root".prodFk = "bitemporalproducttable_out_thru_inclusive_0".id and ("bitemporalproducttable_out_thru_inclusive_0".in_z < DATE\'2018-05-05\' and "bitemporalproducttable_out_thru_inclusive_0".out_z >= DATE\'2018-05-05\' and "bitemporalproducttable_out_thru_inclusive_0".from_z < DATE\'2018-05-04\' and "bitemporalproducttable_out_thru_inclusive_0".thru_z >= DATE\'2018-05-04\')) where "bitemporalproducttable_out_thru_inclusive_0".name = \'def2\''; + assertEqualsH2Compatible($expectedLegacyH2SQL2, $expectedNewH2SQL2, $result2->sqlRemoveFormatting()); assertSameElements([2], $result2.values.id); } function <> meta::relational::tests::milestoning::inclusive::testInThruInclusiveUnionOutFromInclusive():Boolean[1] { let result = execute(|BiTemporalProduct.all(%2018-05-05, %2018-05-04)->filter(p | $p.id == 2), InThruInclusiveUnionOutFromInclusiveMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - let expectedSQL = 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_1_0" as "pk_1_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_1_1" as "pk_1_1", "unionBase"."id" as "id", "unionBase"."name" as "name", "unionBase"."k_processingDate" as "k_processingDate", "unionBase"."k_businessDate" as "k_businessDate", "unionBase"."from_z_0" as "from_z_0", "unionBase"."thru_z_0" as "thru_z_0", "unionBase"."in_z_0" as "in_z_0", "unionBase"."out_z_0" as "out_z_0", "unionBase"."from_z_1" as "from_z_1", "unionBase"."thru_z_1" as "thru_z_1", "unionBase"."in_z_1" as "in_z_1", "unionBase"."out_z_1" as "out_z_1" from (select \'0\' as u_type, "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate", "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".in_z as "in_z_0", "root".out_z as "out_z_0", null as "from_z_1", null as "thru_z_1", null as "in_z_1", null as "out_z_1", "root".id as "BiTemporalProductTable_In_Thru_Inclusiveid_BiTemporalProductTable_Out_From_Inclusiveid" from BiTemporalProductTable_In_Thru_Inclusive as "root" where "root".in_z <= \'2018-05-05\' and "root".out_z > \'2018-05-05\' and "root".from_z < \'2018-05-04\' and "root".thru_z >= \'2018-05-04\' UNION ALL select \'1\' as u_type, null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as "in_z_0", null as "out_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".in_z as "in_z_1", "root".out_z as "out_z_1", "root".id as "BiTemporalProductTable_In_Thru_Inclusiveid_BiTemporalProductTable_Out_From_Inclusiveid" from BiTemporalProductTable_Out_From_Inclusive as "root" where "root".in_z < \'2018-05-05\' and "root".out_z >= \'2018-05-05\' and "root".from_z <= \'2018-05-04\' and "root".thru_z > \'2018-05-04\') as "unionBase" where "unionBase"."BiTemporalProductTable_In_Thru_Inclusiveid_BiTemporalProductTable_Out_From_Inclusiveid" = 2'; - assertEquals($expectedSQL, $result->sqlRemoveFormatting()); + let expectedLegacyH2SQL = 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_1_0" as "pk_1_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_1_1" as "pk_1_1", "unionBase"."id" as "id", "unionBase"."name" as "name", "unionBase"."k_processingDate" as "k_processingDate", "unionBase"."k_businessDate" as "k_businessDate", "unionBase"."from_z_0" as "from_z_0", "unionBase"."thru_z_0" as "thru_z_0", "unionBase"."in_z_0" as "in_z_0", "unionBase"."out_z_0" as "out_z_0", "unionBase"."from_z_1" as "from_z_1", "unionBase"."thru_z_1" as "thru_z_1", "unionBase"."in_z_1" as "in_z_1", "unionBase"."out_z_1" as "out_z_1" from (select \'0\' as u_type, "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate", "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".in_z as "in_z_0", "root".out_z as "out_z_0", null as "from_z_1", null as "thru_z_1", null as "in_z_1", null as "out_z_1", "root".id as "BiTemporalProductTable_In_Thru_Inclusiveid_BiTemporalProductTable_Out_From_Inclusiveid" from BiTemporalProductTable_In_Thru_Inclusive as "root" where "root".in_z <= \'2018-05-05\' and "root".out_z > \'2018-05-05\' and "root".from_z < \'2018-05-04\' and "root".thru_z >= \'2018-05-04\' UNION ALL select \'1\' as u_type, null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as "in_z_0", null as "out_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".in_z as "in_z_1", "root".out_z as "out_z_1", "root".id as "BiTemporalProductTable_In_Thru_Inclusiveid_BiTemporalProductTable_Out_From_Inclusiveid" from BiTemporalProductTable_Out_From_Inclusive as "root" where "root".in_z < \'2018-05-05\' and "root".out_z >= \'2018-05-05\' and "root".from_z <= \'2018-05-04\' and "root".thru_z > \'2018-05-04\') as "unionBase" where "unionBase"."BiTemporalProductTable_In_Thru_Inclusiveid_BiTemporalProductTable_Out_From_Inclusiveid" = 2'; + let expectedNewH2SQL = 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_1_0" as "pk_1_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_1_1" as "pk_1_1", "unionBase"."id" as "id", "unionBase"."name" as "name", "unionBase"."k_processingDate" as "k_processingDate", "unionBase"."k_businessDate" as "k_businessDate", "unionBase"."from_z_0" as "from_z_0", "unionBase"."thru_z_0" as "thru_z_0", "unionBase"."in_z_0" as "in_z_0", "unionBase"."out_z_0" as "out_z_0", "unionBase"."from_z_1" as "from_z_1", "unionBase"."thru_z_1" as "thru_z_1", "unionBase"."in_z_1" as "in_z_1", "unionBase"."out_z_1" as "out_z_1" from (select \'0\' as u_type, "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate", "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".in_z as "in_z_0", "root".out_z as "out_z_0", null as "from_z_1", null as "thru_z_1", null as "in_z_1", null as "out_z_1", "root".id as "BiTemporalProductTable_In_Thru_Inclusiveid_BiTemporalProductTable_Out_From_Inclusiveid" from BiTemporalProductTable_In_Thru_Inclusive as "root" where "root".in_z <= DATE\'2018-05-05\' and "root".out_z > DATE\'2018-05-05\' and "root".from_z < DATE\'2018-05-04\' and "root".thru_z >= DATE\'2018-05-04\' UNION ALL select \'1\' as u_type, null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as "in_z_0", null as "out_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".in_z as "in_z_1", "root".out_z as "out_z_1", "root".id as "BiTemporalProductTable_In_Thru_Inclusiveid_BiTemporalProductTable_Out_From_Inclusiveid" from BiTemporalProductTable_Out_From_Inclusive as "root" where "root".in_z < DATE\'2018-05-05\' and "root".out_z >= DATE\'2018-05-05\' and "root".from_z <= DATE\'2018-05-04\' and "root".thru_z > DATE\'2018-05-04\') as "unionBase" where "unionBase"."BiTemporalProductTable_In_Thru_Inclusiveid_BiTemporalProductTable_Out_From_Inclusiveid" = 2'; + assertEqualsH2Compatible($expectedLegacyH2SQL, $expectedNewH2SQL, $result->sqlRemoveFormatting()); assertSameElements(['def2', 'def2'], $result.values.name); } function <> meta::relational::tests::milestoning::inclusive::testOutFromInclusiveUnionInThruInclusive():Boolean[1] { let result = execute(|BiTemporalProduct.all(%2018-05-05, %2018-05-04)->filter(p | $p.id == 2), OutFromInclusiveUnionInThruInclusiveMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - let expectedSQL = 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_1_0" as "pk_1_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_1_1" as "pk_1_1", "unionBase"."id" as "id", "unionBase"."name" as "name", "unionBase"."k_processingDate" as "k_processingDate", "unionBase"."k_businessDate" as "k_businessDate", "unionBase"."from_z_0" as "from_z_0", "unionBase"."thru_z_0" as "thru_z_0", "unionBase"."in_z_0" as "in_z_0", "unionBase"."out_z_0" as "out_z_0", "unionBase"."from_z_1" as "from_z_1", "unionBase"."thru_z_1" as "thru_z_1", "unionBase"."in_z_1" as "in_z_1", "unionBase"."out_z_1" as "out_z_1" from (select \'0\' as u_type, "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate", "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".in_z as "in_z_0", "root".out_z as "out_z_0", null as "from_z_1", null as "thru_z_1", null as "in_z_1", null as "out_z_1", "root".id as "BiTemporalProductTable_Out_From_Inclusiveid_BiTemporalProductTable_In_Thru_Inclusiveid" from BiTemporalProductTable_Out_From_Inclusive as "root" where "root".in_z < \'2018-05-05\' and "root".out_z >= \'2018-05-05\' and "root".from_z <= \'2018-05-04\' and "root".thru_z > \'2018-05-04\' UNION ALL select \'1\' as u_type, null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as "in_z_0", null as "out_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".in_z as "in_z_1", "root".out_z as "out_z_1", "root".id as "BiTemporalProductTable_Out_From_Inclusiveid_BiTemporalProductTable_In_Thru_Inclusiveid" from BiTemporalProductTable_In_Thru_Inclusive as "root" where "root".in_z <= \'2018-05-05\' and "root".out_z > \'2018-05-05\' and "root".from_z < \'2018-05-04\' and "root".thru_z >= \'2018-05-04\') as "unionBase" where "unionBase"."BiTemporalProductTable_Out_From_Inclusiveid_BiTemporalProductTable_In_Thru_Inclusiveid" = 2'; - assertEquals($expectedSQL, $result->sqlRemoveFormatting()); + let expectedLegacyH2SQL = 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_1_0" as "pk_1_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_1_1" as "pk_1_1", "unionBase"."id" as "id", "unionBase"."name" as "name", "unionBase"."k_processingDate" as "k_processingDate", "unionBase"."k_businessDate" as "k_businessDate", "unionBase"."from_z_0" as "from_z_0", "unionBase"."thru_z_0" as "thru_z_0", "unionBase"."in_z_0" as "in_z_0", "unionBase"."out_z_0" as "out_z_0", "unionBase"."from_z_1" as "from_z_1", "unionBase"."thru_z_1" as "thru_z_1", "unionBase"."in_z_1" as "in_z_1", "unionBase"."out_z_1" as "out_z_1" from (select \'0\' as u_type, "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate", "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".in_z as "in_z_0", "root".out_z as "out_z_0", null as "from_z_1", null as "thru_z_1", null as "in_z_1", null as "out_z_1", "root".id as "BiTemporalProductTable_Out_From_Inclusiveid_BiTemporalProductTable_In_Thru_Inclusiveid" from BiTemporalProductTable_Out_From_Inclusive as "root" where "root".in_z < \'2018-05-05\' and "root".out_z >= \'2018-05-05\' and "root".from_z <= \'2018-05-04\' and "root".thru_z > \'2018-05-04\' UNION ALL select \'1\' as u_type, null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as "in_z_0", null as "out_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".in_z as "in_z_1", "root".out_z as "out_z_1", "root".id as "BiTemporalProductTable_Out_From_Inclusiveid_BiTemporalProductTable_In_Thru_Inclusiveid" from BiTemporalProductTable_In_Thru_Inclusive as "root" where "root".in_z <= \'2018-05-05\' and "root".out_z > \'2018-05-05\' and "root".from_z < \'2018-05-04\' and "root".thru_z >= \'2018-05-04\') as "unionBase" where "unionBase"."BiTemporalProductTable_Out_From_Inclusiveid_BiTemporalProductTable_In_Thru_Inclusiveid" = 2'; + let expectedNewH2SQL = 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_1_0" as "pk_1_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_1_1" as "pk_1_1", "unionBase"."id" as "id", "unionBase"."name" as "name", "unionBase"."k_processingDate" as "k_processingDate", "unionBase"."k_businessDate" as "k_businessDate", "unionBase"."from_z_0" as "from_z_0", "unionBase"."thru_z_0" as "thru_z_0", "unionBase"."in_z_0" as "in_z_0", "unionBase"."out_z_0" as "out_z_0", "unionBase"."from_z_1" as "from_z_1", "unionBase"."thru_z_1" as "thru_z_1", "unionBase"."in_z_1" as "in_z_1", "unionBase"."out_z_1" as "out_z_1" from (select \'0\' as u_type, "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate", "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".in_z as "in_z_0", "root".out_z as "out_z_0", null as "from_z_1", null as "thru_z_1", null as "in_z_1", null as "out_z_1", "root".id as "BiTemporalProductTable_Out_From_Inclusiveid_BiTemporalProductTable_In_Thru_Inclusiveid" from BiTemporalProductTable_Out_From_Inclusive as "root" where "root".in_z < DATE\'2018-05-05\' and "root".out_z >= DATE\'2018-05-05\' and "root".from_z <= DATE\'2018-05-04\' and "root".thru_z > DATE\'2018-05-04\' UNION ALL select \'1\' as u_type, null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as "in_z_0", null as "out_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".in_z as "in_z_1", "root".out_z as "out_z_1", "root".id as "BiTemporalProductTable_Out_From_Inclusiveid_BiTemporalProductTable_In_Thru_Inclusiveid" from BiTemporalProductTable_In_Thru_Inclusive as "root" where "root".in_z <= DATE\'2018-05-05\' and "root".out_z > DATE\'2018-05-05\' and "root".from_z < DATE\'2018-05-04\' and "root".thru_z >= DATE\'2018-05-04\') as "unionBase" where "unionBase"."BiTemporalProductTable_Out_From_Inclusiveid_BiTemporalProductTable_In_Thru_Inclusiveid" = 2'; + assertEqualsH2Compatible($expectedLegacyH2SQL, $expectedNewH2SQL, $result->sqlRemoveFormatting()); assertSameElements(['def2', 'def2'], $result.values.name); } function <> meta::relational::tests::milestoning::inclusive::testInThruInclusiveUnionInThruInclusive():Boolean[1] { let result = execute(|Order.all()->filter(o | $o.biTemporalProduct(%2018-05-05, %2018-05-04).name == 'def2'), InThruInclusiveUnionInThruInclusiveMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - let expectedSQL = 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", "root".id as "id", null as prodFk_1 from MyOrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", "root".id as "id", "root".prodFk as prodFk_1 from MyOrderTable as "root") as "unionBase" left outer join BiTemporalProductTable_In_Thru_Inclusive as "bitemporalproducttable_in_thru_inclusive_0" on ("unionBase".prodFk_1 = "bitemporalproducttable_in_thru_inclusive_0".id and ("bitemporalproducttable_in_thru_inclusive_0".in_z <= \'2018-05-05\' and "bitemporalproducttable_in_thru_inclusive_0".out_z > \'2018-05-05\' and "bitemporalproducttable_in_thru_inclusive_0".from_z < \'2018-05-04\' and "bitemporalproducttable_in_thru_inclusive_0".thru_z >= \'2018-05-04\')) where "bitemporalproducttable_in_thru_inclusive_0".name = \'def2\''; - assertEquals($expectedSQL, $result->sqlRemoveFormatting()); + let expectedLegacyH2SQL = 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", "root".id as "id", null as prodFk_1 from MyOrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", "root".id as "id", "root".prodFk as prodFk_1 from MyOrderTable as "root") as "unionBase" left outer join BiTemporalProductTable_In_Thru_Inclusive as "bitemporalproducttable_in_thru_inclusive_0" on ("unionBase".prodFk_1 = "bitemporalproducttable_in_thru_inclusive_0".id and ("bitemporalproducttable_in_thru_inclusive_0".in_z <= \'2018-05-05\' and "bitemporalproducttable_in_thru_inclusive_0".out_z > \'2018-05-05\' and "bitemporalproducttable_in_thru_inclusive_0".from_z < \'2018-05-04\' and "bitemporalproducttable_in_thru_inclusive_0".thru_z >= \'2018-05-04\')) where "bitemporalproducttable_in_thru_inclusive_0".name = \'def2\''; + let expectedNewH2SQL = 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", "root".id as "id", null as prodFk_1 from MyOrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", "root".id as "id", "root".prodFk as prodFk_1 from MyOrderTable as "root") as "unionBase" left outer join BiTemporalProductTable_In_Thru_Inclusive as "bitemporalproducttable_in_thru_inclusive_0" on ("unionBase".prodFk_1 = "bitemporalproducttable_in_thru_inclusive_0".id and ("bitemporalproducttable_in_thru_inclusive_0".in_z <= DATE\'2018-05-05\' and "bitemporalproducttable_in_thru_inclusive_0".out_z > DATE\'2018-05-05\' and "bitemporalproducttable_in_thru_inclusive_0".from_z < DATE\'2018-05-04\' and "bitemporalproducttable_in_thru_inclusive_0".thru_z >= DATE\'2018-05-04\')) where "bitemporalproducttable_in_thru_inclusive_0".name = \'def2\''; + assertEqualsH2Compatible($expectedLegacyH2SQL, $expectedNewH2SQL, $result->sqlRemoveFormatting()); assertSameElements([2], $result.values.id); } function <> meta::relational::tests::milestoning::inclusive::testOutFromInclusiveUnionOutFromInclusive():Boolean[1] { let result = execute(|Order.all()->filter(o | $o.biTemporalProduct(%2018-05-05, %2018-05-04).name == 'def2'), OutFromInclusiveUnionOutFromInclusiveMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - let expectedSQL = 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", "root".id as "id", null as prodFk_1 from MyOrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", "root".id as "id", "root".prodFk as prodFk_1 from MyOrderTable as "root") as "unionBase" left outer join BiTemporalProductTable_Out_From_Inclusive as "bitemporalproducttable_out_from_inclusive_0" on ("unionBase".prodFk_1 = "bitemporalproducttable_out_from_inclusive_0".id and ("bitemporalproducttable_out_from_inclusive_0".in_z < \'2018-05-05\' and "bitemporalproducttable_out_from_inclusive_0".out_z >= \'2018-05-05\' and "bitemporalproducttable_out_from_inclusive_0".from_z <= \'2018-05-04\' and "bitemporalproducttable_out_from_inclusive_0".thru_z > \'2018-05-04\')) where "bitemporalproducttable_out_from_inclusive_0".name = \'def2\''; - assertEquals($expectedSQL, $result->sqlRemoveFormatting()); + let expectedLegacyH2SQL = 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", "root".id as "id", null as prodFk_1 from MyOrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", "root".id as "id", "root".prodFk as prodFk_1 from MyOrderTable as "root") as "unionBase" left outer join BiTemporalProductTable_Out_From_Inclusive as "bitemporalproducttable_out_from_inclusive_0" on ("unionBase".prodFk_1 = "bitemporalproducttable_out_from_inclusive_0".id and ("bitemporalproducttable_out_from_inclusive_0".in_z < \'2018-05-05\' and "bitemporalproducttable_out_from_inclusive_0".out_z >= \'2018-05-05\' and "bitemporalproducttable_out_from_inclusive_0".from_z <= \'2018-05-04\' and "bitemporalproducttable_out_from_inclusive_0".thru_z > \'2018-05-04\')) where "bitemporalproducttable_out_from_inclusive_0".name = \'def2\''; + let expectedNewH2SQL = 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", "root".id as "id", null as prodFk_1 from MyOrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", "root".id as "id", "root".prodFk as prodFk_1 from MyOrderTable as "root") as "unionBase" left outer join BiTemporalProductTable_Out_From_Inclusive as "bitemporalproducttable_out_from_inclusive_0" on ("unionBase".prodFk_1 = "bitemporalproducttable_out_from_inclusive_0".id and ("bitemporalproducttable_out_from_inclusive_0".in_z < DATE\'2018-05-05\' and "bitemporalproducttable_out_from_inclusive_0".out_z >= DATE\'2018-05-05\' and "bitemporalproducttable_out_from_inclusive_0".from_z <= DATE\'2018-05-04\' and "bitemporalproducttable_out_from_inclusive_0".thru_z > DATE\'2018-05-04\')) where "bitemporalproducttable_out_from_inclusive_0".name = \'def2\''; + assertEqualsH2Compatible($expectedLegacyH2SQL, $expectedNewH2SQL, $result->sqlRemoveFormatting()); assertSameElements([2], $result.values.id); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testOtherwise.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testOtherwise.pure index 36f09646a3c..6afa11e0a3b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testOtherwise.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testOtherwise.pure @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; +import meta::relational::mapping::*; import meta::relational::functions::asserts::*; function <> meta::relational::tests::milestoning::otherwise::setUp():Any[0..1] { @@ -24,7 +26,11 @@ function <> meta::relational::tests::milestoning::otherwise::testAsso let result = execute(|meta::relational::tests::milestoning::StockProduct.all(%latest)->project(p|$p.classification(%latest).description, 'ok'), meta::relational::tests::milestoning::otherwiseMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions(), noDebug()); - assertSameSQL('select "productclassificationtable_0".type_description as "ok" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".type = \'STOCK\' and "productclassificationtable_0".thru_z = \'9999-12-31 00:00:00.0000\') where "root".type = \'STOCK\' and "root".thru_z = \'9999-12-31 00:00:00.0000\'', $result); + assertEqualsH2Compatible( + 'select "productclassificationtable_0".type_description as "ok" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".type = \'STOCK\' and "productclassificationtable_0".thru_z = \'9999-12-31 00:00:00.0000\') where "root".type = \'STOCK\' and "root".thru_z = \'9999-12-31 00:00:00.0000\'', + 'select "productclassificationtable_0".type_description as "ok" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".type = \'STOCK\' and "productclassificationtable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') where "root".type = \'STOCK\' and "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::otherwise::testAssoWithOtherwiseDeep():Boolean[1] @@ -32,5 +38,9 @@ function <> meta::relational::tests::milestoning::otherwise::testAsso let result = execute(|meta::relational::tests::milestoning::StockProduct.all(%latest)->project(p|$p.classification(%2008-10-10).exchange(%2009-12-10).name, 'ok'), meta::relational::tests::milestoning::otherwiseMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions(), noDebug()); - assertSameSQL('select "productexchangetable_0".name as "ok" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".type = \'STOCK\' and "productclassificationtable_0".from_z <= \'2008-10-10\' and "productclassificationtable_0".thru_z > \'2008-10-10\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= \'2009-12-10\' and "productexchangetable_1".thru_z > \'2009-12-10\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".type = \'STOCK\' and "root".thru_z = \'9999-12-31 00:00:00.0000\'', $result); + assertEqualsH2Compatible( + 'select "productexchangetable_0".name as "ok" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".type = \'STOCK\' and "productclassificationtable_0".from_z <= \'2008-10-10\' and "productclassificationtable_0".thru_z > \'2008-10-10\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= \'2009-12-10\' and "productexchangetable_1".thru_z > \'2009-12-10\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".type = \'STOCK\' and "root".thru_z = \'9999-12-31 00:00:00.0000\'', + 'select "productexchangetable_0".name as "ok" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".type = \'STOCK\' and "productclassificationtable_0".from_z <= DATE\'2008-10-10\' and "productclassificationtable_0".thru_z > DATE\'2008-10-10\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= DATE\'2009-12-10\' and "productexchangetable_1".thru_z > DATE\'2009-12-10\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".type = \'STOCK\' and "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\'', + $result->sqlRemoveFormatting() + ); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testProcessingDateMilestoning.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testProcessingDateMilestoning.pure index c901592dd6f..9d102591ed1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testProcessingDateMilestoning.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testProcessingDateMilestoning.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::milestoning::*; @@ -26,7 +27,11 @@ function <> meta::relational::tests::milestoning::processingDate::tes { let processingDate = %2015-10-16; let result = execute(|Trader.all($processingDate), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "root".kerberos as "pk_0", "root".kerberos as "kerberos", \'2015-10-16\' as "k_processingDate" from TraderTable as "root" where "root".in_z <= \'2015-10-16\' and "root".out_z > \'2015-10-16\'',$result); + assertEqualsH2Compatible( + 'select "root".kerberos as "pk_0", "root".kerberos as "kerberos", \'2015-10-16\' as "k_processingDate" from TraderTable as "root" where "root".in_z <= \'2015-10-16\' and "root".out_z > \'2015-10-16\'', + 'select "root".kerberos as "pk_0", "root".kerberos as "kerberos", \'2015-10-16\' as "k_processingDate" from TraderTable as "root" where "root".in_z <= DATE\'2015-10-16\' and "root".out_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); let traders = $result.values; assertEquals(2, $traders->size()); assertEquals([$processingDate,$processingDate], $traders->map(p|$p.processingDate)); @@ -36,12 +41,20 @@ function <> meta::relational::tests::milestoning::processingDate::tes { let processingDate = %2015-10-16; let result = execute(|Trader.all($processingDate)->filter(t|$t.certifications($processingDate).name->contains(['SRCE'])), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "root".kerberos as "pk_0", "root".kerberos as "kerberos", \'2015-10-16\' as "k_processingDate" from TraderTable as "root" where exists(select 1 from CertificationTable as "certificationtable_0" where "certificationtable_0".name = \'SRCE\' and "root".kerberos = "certificationtable_0".kerberos and "certificationtable_0".in_z <= \'2015-10-16\' and "certificationtable_0".out_z > \'2015-10-16\') and "root".in_z <= \'2015-10-16\' and "root".out_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".kerberos as "pk_0", "root".kerberos as "kerberos", \'2015-10-16\' as "k_processingDate" from TraderTable as "root" where exists(select 1 from CertificationTable as "certificationtable_0" where "certificationtable_0".name = \'SRCE\' and "root".kerberos = "certificationtable_0".kerberos and "certificationtable_0".in_z <= \'2015-10-16\' and "certificationtable_0".out_z > \'2015-10-16\') and "root".in_z <= \'2015-10-16\' and "root".out_z > \'2015-10-16\'', + 'select "root".kerberos as "pk_0", "root".kerberos as "kerberos", \'2015-10-16\' as "k_processingDate" from TraderTable as "root" where exists(select 1 from CertificationTable as "certificationtable_0" where "certificationtable_0".name = \'SRCE\' and "root".kerberos = "certificationtable_0".kerberos and "certificationtable_0".in_z <= DATE\'2015-10-16\' and "certificationtable_0".out_z > DATE\'2015-10-16\') and "root".in_z <= DATE\'2015-10-16\' and "root".out_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::processingDate::testProcessingTemporalPropertyPropagationInQuery():Boolean[1] { let processingDate = %2015-10-16; let result = execute(|Trader.all($processingDate)->filter(t|$t.certifications.name->contains(['SRCE'])), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "root".kerberos as "pk_0", "root".kerberos as "kerberos", \'2015-10-16\' as "k_processingDate" from TraderTable as "root" where exists(select 1 from CertificationTable as "certificationtable_0" where "certificationtable_0".name = \'SRCE\' and "root".kerberos = "certificationtable_0".kerberos and "certificationtable_0".in_z <= \'2015-10-16\' and "certificationtable_0".out_z > \'2015-10-16\') and "root".in_z <= \'2015-10-16\' and "root".out_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".kerberos as "pk_0", "root".kerberos as "kerberos", \'2015-10-16\' as "k_processingDate" from TraderTable as "root" where exists(select 1 from CertificationTable as "certificationtable_0" where "certificationtable_0".name = \'SRCE\' and "root".kerberos = "certificationtable_0".kerberos and "certificationtable_0".in_z <= \'2015-10-16\' and "certificationtable_0".out_z > \'2015-10-16\') and "root".in_z <= \'2015-10-16\' and "root".out_z > \'2015-10-16\'', + 'select "root".kerberos as "pk_0", "root".kerberos as "kerberos", \'2015-10-16\' as "k_processingDate" from TraderTable as "root" where exists(select 1 from CertificationTable as "certificationtable_0" where "certificationtable_0".name = \'SRCE\' and "root".kerberos = "certificationtable_0".kerberos and "certificationtable_0".in_z <= DATE\'2015-10-16\' and "certificationtable_0".out_z > DATE\'2015-10-16\') and "root".in_z <= DATE\'2015-10-16\' and "root".out_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testTemporalDate.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testTemporalDate.pure index fc10a0b942d..d5c1b35c928 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testTemporalDate.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testTemporalDate.pure @@ -13,6 +13,8 @@ // limitations under the License. ###Pure +import meta::relational::functions::sqlQueryToString::h2::*; +import meta::relational::mapping::*; import meta::relational::functions::asserts::*; import meta::relational::tests::milestoning::*; import meta::relational::tests::*; @@ -80,7 +82,11 @@ function <> meta::relational::tests::milestoning::temporalDate::testT function <> meta::relational::tests::milestoning::temporalDate::testBusinessDateForAllVersionsInRange():Boolean[1] { let result = execute(|ProductSynonym.allVersionsInRange(%2012-1-1, %2016-1-1), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "root".name as "pk_0", "root".synonym as "pk_1", "root".type as "pk_2", "root".synonym as "synonym", "root".type as "type", "root".from_z as "k_businessDate" from ProductSynonymTable as "root" where "root".from_z <= \'2016-01-01\' and "root".thru_z > \'2012-01-01\'', $result); + assertEqualsH2Compatible( + 'select "root".name as "pk_0", "root".synonym as "pk_1", "root".type as "pk_2", "root".synonym as "synonym", "root".type as "type", "root".from_z as "k_businessDate" from ProductSynonymTable as "root" where "root".from_z <= \'2016-01-01\' and "root".thru_z > \'2012-01-01\'', + 'select "root".name as "pk_0", "root".synonym as "pk_1", "root".type as "pk_2", "root".synonym as "synonym", "root".type as "type", "root".from_z as "k_businessDate" from ProductSynonymTable as "root" where "root".from_z <= DATE\'2016-01-01\' and "root".thru_z > DATE\'2012-01-01\'', + $result->sqlRemoveFormatting() + ); assertSameElements(['CUSIP', 'CUSIP', 'CUSIP', 'CUSIP', 'STOCK', 'STOCK'], $result.values.type); assertSameElements([%2015-01-01T00:00:00.000000000+0000, %2015-08-15T00:00:00.000000000+0000, %2015-08-15T00:00:00.000000000+0000, %2015-08-26T00:00:00.000000000+0000, %2015-09-26T00:00:00.000000000+0000, %2015-10-17T00:00:00.000000000+0000], $result.values.businessDate); } @@ -88,7 +94,11 @@ function <> meta::relational::tests::milestoning::temporalDate::testB function <> meta::relational::tests::milestoning::temporalDate::testProcessingDateForAllVersionsInRange():Boolean[1] { let result = execute(|Trader.allVersionsInRange(%2012-1-1, %2016-1-1), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "root".kerberos as "pk_0", "root".kerberos as "kerberos", "root".in_z as "k_processingDate" from TraderTable as "root" where "root".in_z <= \'2016-01-01\' and "root".out_z > \'2012-01-01\'', $result); + assertEqualsH2Compatible( + 'select "root".kerberos as "pk_0", "root".kerberos as "kerberos", "root".in_z as "k_processingDate" from TraderTable as "root" where "root".in_z <= \'2016-01-01\' and "root".out_z > \'2012-01-01\'', + 'select "root".kerberos as "pk_0", "root".kerberos as "kerberos", "root".in_z as "k_processingDate" from TraderTable as "root" where "root".in_z <= DATE\'2016-01-01\' and "root".out_z > DATE\'2012-01-01\'', + $result->sqlRemoveFormatting() + ); assertSameElements(['bfox', 'ggekko'], $result.values.kerberos); assertSameElements([%2013-01-01T00:00:00.000000000+0000, %2015-01-01T00:00:00.000000000+0000], $result.values.processingDate); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testTemporalMilestoningPostProcessor.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testTemporalMilestoningPostProcessor.pure index e29b3c7a143..a0a8b616db3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testTemporalMilestoningPostProcessor.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testTemporalMilestoningPostProcessor.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::mapping::*; import meta::pure::extension::*; import meta::relational::extension::*; @@ -51,5 +52,9 @@ function <> meta::relational::tests::milestoning:: let result = execute(|Product.all()->project([p|$p.name, p|$p.synonyms.name],['name','synonym']), simpleRelationalMapping, $updatedRuntime, meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(['Firm A,ISIN1', 'Firm D,ISIN2'],$tds.rows->map(r|$r.values->makeString(','))); - assertSameSQL('select "root".NAME as "name", "synonymtable_0".NAME as "synonym" from productSchema.productTable as "root" left outer join productSchema.synonymTable as "synonymtable_0" on ("synonymtable_0".PRODID = "root".ID and "synonymtable_0".thru_z = \'9999-12-31 00:00:00.000\') where "root".thru_z = \'9999-12-31 00:00:00.000\'', $result); + assertEqualsH2Compatible( + 'select "root".NAME as "name", "synonymtable_0".NAME as "synonym" from productSchema.productTable as "root" left outer join productSchema.synonymTable as "synonymtable_0" on ("synonymtable_0".PRODID = "root".ID and "synonymtable_0".thru_z = \'9999-12-31 00:00:00.000\') where "root".thru_z = \'9999-12-31 00:00:00.000\'', + 'select "root".NAME as "name", "synonymtable_0".NAME as "synonym" from productSchema.productTable as "root" left outer join productSchema.synonymTable as "synonymtable_0" on ("synonymtable_0".PRODID = "root".ID and "synonymtable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.000\') where "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.000\'', + $result->sqlRemoveFormatting() + ); } \ No newline at end of file diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testTemporalRangeQuery.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testTemporalRangeQuery.pure index f1ac28ac49c..a9b10f01c95 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testTemporalRangeQuery.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testTemporalRangeQuery.pure @@ -13,6 +13,8 @@ // limitations under the License. ###Pure +import meta::relational::functions::sqlQueryToString::h2::*; +import meta::relational::mapping::*; import meta::relational::functions::asserts::*; import meta::relational::tests::milestoning::businessdate::*; import meta::relational::tests::milestoning::*; @@ -21,7 +23,11 @@ import meta::relational::tests::*; function <> meta::relational::tests::milestoning::rangeQuery::testBusinessTemporalRangeQueryOnRoot():Boolean[1] { let result = execute(|Product.allVersionsInRange(%2015-1-1, %2015-9-1)->filter(x|$x.type == 'STOCK')->project([x|$x.type, x|$x.milestoning.from, x|$x.milestoning.thru], ['type', 'from', 'thru'])->distinct(), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select distinct "root".type as "type", "root".from_z as "from", "root".thru_z as "thru" from ProductTable as "root" where "root".type = \'STOCK\' and "root".from_z <= \'2015-09-01\' and "root".thru_z > \'2015-01-01\'', $result); + assertEqualsH2Compatible( + 'select distinct "root".type as "type", "root".from_z as "from", "root".thru_z as "thru" from ProductTable as "root" where "root".type = \'STOCK\' and "root".from_z <= \'2015-09-01\' and "root".thru_z > \'2015-01-01\'', + 'select distinct "root".type as "type", "root".from_z as "from", "root".thru_z as "thru" from ProductTable as "root" where "root".type = \'STOCK\' and "root".from_z <= DATE\'2015-09-01\' and "root".thru_z > DATE\'2015-01-01\'', + $result->sqlRemoveFormatting() + ); assertSameElements(['STOCK', 'STOCK'], $result.values.rows.getString('type')); assertSameElements([%2015-8-15T00:00:00.000000000+0000, %2015-8-26T00:00:00.000000000+0000], $result.values.rows.getDate('from')); assertSameElements([%2015-8-26T00:00:00.000000000+0000, %2015-10-16T00:00:00.000000000+0000], $result.values.rows.getDate('thru')); @@ -30,7 +36,11 @@ function <> meta::relational::tests::milestoning::rangeQuery::testBus function <> meta::relational::tests::milestoning::rangeQuery::testBusinessTemporalRangeQueryOnRootAndProperty():Boolean[1] { let result = execute(|Product.allVersionsInRange(%2015-1-1, %2015-9-1)->filter(x|$x.classificationAllVersionsInRange(%2015-1-1, %2015-9-1).type == 'STOCK')->project([x|$x.classificationAllVersionsInRange(%2015-1-1, %2015-9-1).type, x|$x.milestoning.from, x|$x.milestoning.thru], ['type', 'from', 'thru'])->distinct(), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select distinct "productclassificationtable_0".type as "type", "root".from_z as "from", "root".thru_z as "thru" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-09-01\' and "productclassificationtable_0".thru_z > \'2015-01-01\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= \'2015-09-01\' and "root".thru_z > \'2015-01-01\'', $result); + assertEqualsH2Compatible( + 'select distinct "productclassificationtable_0".type as "type", "root".from_z as "from", "root".thru_z as "thru" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-09-01\' and "productclassificationtable_0".thru_z > \'2015-01-01\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= \'2015-09-01\' and "root".thru_z > \'2015-01-01\'', + 'select distinct "productclassificationtable_0".type as "type", "root".from_z as "from", "root".thru_z as "thru" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-09-01\' and "productclassificationtable_0".thru_z > DATE\'2015-01-01\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= DATE\'2015-09-01\' and "root".thru_z > DATE\'2015-01-01\'', + $result->sqlRemoveFormatting() + ); assertSameElements(['STOCK', 'STOCK'], $result.values.rows.getString('type')); assertSameElements([%2015-8-15T00:00:00.000000000+0000, %2015-8-26T00:00:00.000000000+0000], $result.values.rows.getDate('from')); assertSameElements([%2015-8-26T00:00:00.000000000+0000, %2015-10-16T00:00:00.000000000+0000], $result.values.rows.getDate('thru')); @@ -39,7 +49,11 @@ function <> meta::relational::tests::milestoning::rangeQuery::testBus function <> meta::relational::tests::milestoning::rangeQuery::testBusinessTemporalRangeQueryOnRootAndPropertyDeep():Boolean[1] { let result = execute(|Product.allVersionsInRange(%2015-1-1, %2015-9-1)->filter(x|$x.classificationAllVersionsInRange(%2015-1-1, %2015-9-1).exchangeAllVersionsInRange(%2015-1-1, %2015-9-1).name == 'LNSE')->project([x|$x.classificationAllVersionsInRange(%2015-1-1, %2015-9-1).exchangeAllVersionsInRange(%2015-1-1, %2015-9-1).name, x|$x.milestoning.from, x|$x.milestoning.thru], ['name', 'from', 'thru'])->distinct(), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select distinct "productexchangetable_1".name as "name", "root".from_z as "from", "root".thru_z as "thru" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-09-01\' and "productclassificationtable_0".thru_z > \'2015-01-01\') left outer join ProductExchangeTable as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-09-01\' and "productexchangetable_0".thru_z > \'2015-01-01\') left outer join (select "productexchangetable_2".name as name from ProductExchangeTable as "productexchangetable_2" where "productexchangetable_2".from_z <= \'2015-09-01\' and "productexchangetable_2".thru_z > \'2015-01-01\') as "productexchangetable_1" on ("productclassificationtable_0".exchange = "productexchangetable_1".name) where "productexchangetable_0".name = \'LNSE\' and "root".from_z <= \'2015-09-01\' and "root".thru_z > \'2015-01-01\'', $result); + assertEqualsH2Compatible( + 'select distinct "productexchangetable_1".name as "name", "root".from_z as "from", "root".thru_z as "thru" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-09-01\' and "productclassificationtable_0".thru_z > \'2015-01-01\') left outer join ProductExchangeTable as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-09-01\' and "productexchangetable_0".thru_z > \'2015-01-01\') left outer join (select "productexchangetable_2".name as name from ProductExchangeTable as "productexchangetable_2" where "productexchangetable_2".from_z <= \'2015-09-01\' and "productexchangetable_2".thru_z > \'2015-01-01\') as "productexchangetable_1" on ("productclassificationtable_0".exchange = "productexchangetable_1".name) where "productexchangetable_0".name = \'LNSE\' and "root".from_z <= \'2015-09-01\' and "root".thru_z > \'2015-01-01\'', + 'select distinct "productexchangetable_1".name as "name", "root".from_z as "from", "root".thru_z as "thru" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-09-01\' and "productclassificationtable_0".thru_z > DATE\'2015-01-01\') left outer join ProductExchangeTable as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-09-01\' and "productexchangetable_0".thru_z > DATE\'2015-01-01\') left outer join (select "productexchangetable_2".name as name from ProductExchangeTable as "productexchangetable_2" where "productexchangetable_2".from_z <= DATE\'2015-09-01\' and "productexchangetable_2".thru_z > DATE\'2015-01-01\') as "productexchangetable_1" on ("productclassificationtable_0".exchange = "productexchangetable_1".name) where "productexchangetable_0".name = \'LNSE\' and "root".from_z <= DATE\'2015-09-01\' and "root".thru_z > DATE\'2015-01-01\'', + $result->sqlRemoveFormatting() + ); assertSameElements(['LNSE', 'LNSE'], $result.values.rows.getString('name')); assertSameElements([%2015-8-15T00:00:00.000000000+0000, %2015-8-26T00:00:00.000000000+0000], $result.values.rows.getDate('from')); assertSameElements([%2015-8-26T00:00:00.000000000+0000, %2015-10-16T00:00:00.000000000+0000], $result.values.rows.getDate('thru')); @@ -48,7 +62,11 @@ function <> meta::relational::tests::milestoning::rangeQuery::testBus function <> meta::relational::tests::milestoning::rangeQuery::testBusinessTemporalRangeQueryOnProperty():Boolean[1] { let result = execute(|Product.allVersions()->filter(x|$x.classificationAllVersionsInRange(%2015-1-1, %2015-9-1).type == 'STOCK')->project([x|$x.classificationAllVersionsInRange(%2015-1-1, %2015-9-1).type, x|$x.milestoning.from, x|$x.milestoning.thru], ['type', 'from', 'thru'])->distinct(), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select distinct "productclassificationtable_0".type as "type", "root".from_z as "from", "root".thru_z as "thru" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-09-01\' and "productclassificationtable_0".thru_z > \'2015-01-01\') where "productclassificationtable_0".type = \'STOCK\'', $result); + assertEqualsH2Compatible( + 'select distinct "productclassificationtable_0".type as "type", "root".from_z as "from", "root".thru_z as "thru" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-09-01\' and "productclassificationtable_0".thru_z > \'2015-01-01\') where "productclassificationtable_0".type = \'STOCK\'', + 'select distinct "productclassificationtable_0".type as "type", "root".from_z as "from", "root".thru_z as "thru" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-09-01\' and "productclassificationtable_0".thru_z > DATE\'2015-01-01\') where "productclassificationtable_0".type = \'STOCK\'', + $result->sqlRemoveFormatting() + ); assertSameElements(['STOCK', 'STOCK', 'STOCK'], $result.values.rows.getString('type')); assertSameElements([%2015-08-15T00:00:00.000000000+0000, %2015-08-26T00:00:00.000000000+0000, %2015-10-16T00:00:00.000000000+0000], $result.values.rows.getDate('from')); assertSameElements([%2015-08-26T00:00:00.000000000+0000, %2015-10-16T00:00:00.000000000+0000, %9999-12-31T00:00:00.000000000+0000], $result.values.rows.getDate('thru')); @@ -57,7 +75,11 @@ function <> meta::relational::tests::milestoning::rangeQuery::testBus function <> meta::relational::tests::milestoning::rangeQuery::testBusinessTemporalRangeQueryOnPropertyDeep():Boolean[1] { let result = execute(|Product.allVersions()->filter(x|$x.classificationAllVersionsInRange(%2015-1-1, %2015-9-1).exchangeAllVersionsInRange(%2015-1-1, %2015-9-1).name == 'LNSE')->project([x|$x.classificationAllVersionsInRange(%2015-1-1, %2015-9-1).exchangeAllVersionsInRange(%2015-1-1, %2015-9-1).name, x|$x.milestoning.from, x|$x.milestoning.thru], ['name', 'from', 'thru'])->distinct(), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select distinct "productexchangetable_1".name as "name", "root".from_z as "from", "root".thru_z as "thru" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-09-01\' and "productclassificationtable_0".thru_z > \'2015-01-01\') left outer join ProductExchangeTable as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-09-01\' and "productexchangetable_0".thru_z > \'2015-01-01\') left outer join (select "productexchangetable_2".name as name from ProductExchangeTable as "productexchangetable_2" where "productexchangetable_2".from_z <= \'2015-09-01\' and "productexchangetable_2".thru_z > \'2015-01-01\') as "productexchangetable_1" on ("productclassificationtable_0".exchange = "productexchangetable_1".name) where "productexchangetable_0".name = \'LNSE\'', $result); + assertEqualsH2Compatible( + 'select distinct "productexchangetable_1".name as "name", "root".from_z as "from", "root".thru_z as "thru" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-09-01\' and "productclassificationtable_0".thru_z > \'2015-01-01\') left outer join ProductExchangeTable as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-09-01\' and "productexchangetable_0".thru_z > \'2015-01-01\') left outer join (select "productexchangetable_2".name as name from ProductExchangeTable as "productexchangetable_2" where "productexchangetable_2".from_z <= \'2015-09-01\' and "productexchangetable_2".thru_z > \'2015-01-01\') as "productexchangetable_1" on ("productclassificationtable_0".exchange = "productexchangetable_1".name) where "productexchangetable_0".name = \'LNSE\'', + 'select distinct "productexchangetable_1".name as "name", "root".from_z as "from", "root".thru_z as "thru" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-09-01\' and "productclassificationtable_0".thru_z > DATE\'2015-01-01\') left outer join ProductExchangeTable as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-09-01\' and "productexchangetable_0".thru_z > DATE\'2015-01-01\') left outer join (select "productexchangetable_2".name as name from ProductExchangeTable as "productexchangetable_2" where "productexchangetable_2".from_z <= DATE\'2015-09-01\' and "productexchangetable_2".thru_z > DATE\'2015-01-01\') as "productexchangetable_1" on ("productclassificationtable_0".exchange = "productexchangetable_1".name) where "productexchangetable_0".name = \'LNSE\'', + $result->sqlRemoveFormatting() + ); assertSameElements(['LNSE', 'LNSE', 'LNSE'], $result.values.rows.getString('name')); assertSameElements([%2015-08-15T00:00:00.000000000+0000, %2015-08-26T00:00:00.000000000+0000, %2015-10-16T00:00:00.000000000+0000], $result.values.rows.getDate('from')); assertSameElements([%2015-08-26T00:00:00.000000000+0000, %2015-10-16T00:00:00.000000000+0000, %9999-12-31T00:00:00.000000000+0000], $result.values.rows.getDate('thru')); @@ -66,7 +88,11 @@ function <> meta::relational::tests::milestoning::rangeQuery::testBus function <> meta::relational::tests::milestoning::rangeQuery::testProcessingTemporalRangeQueryOnRoot():Boolean[1] { let result = execute(|Certification.allVersionsInRange(%1979-1-1, %1982-1-1)->filter(x|$x.name == 'APCE' || $x.name == 'SRCE')->project([x|$x.name, x|$x.milestoning.in, x|$x.milestoning.out], ['name', 'in', 'out'])->distinct(), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select distinct "root".name as "name", "root".in_z as "in", "root".out_z as "out" from CertificationTable as "root" where ("root".name = \'APCE\' or "root".name = \'SRCE\') and "root".in_z <= \'1982-01-01\' and "root".out_z > \'1979-01-01\'', $result); + assertEqualsH2Compatible( + 'select distinct "root".name as "name", "root".in_z as "in", "root".out_z as "out" from CertificationTable as "root" where ("root".name = \'APCE\' or "root".name = \'SRCE\') and "root".in_z <= \'1982-01-01\' and "root".out_z > \'1979-01-01\'', + 'select distinct "root".name as "name", "root".in_z as "in", "root".out_z as "out" from CertificationTable as "root" where ("root".name = \'APCE\' or "root".name = \'SRCE\') and "root".in_z <= DATE\'1982-01-01\' and "root".out_z > DATE\'1979-01-01\'', + $result->sqlRemoveFormatting() + ); assertSameElements(['APCE', 'SRCE'], $result.values.rows.getString('name')); assertSameElements([%1980-01-01T00:00:00.000000000+0000, %1981-01-01T00:00:00.000000000+0000], $result.values.rows.getDate('in')); assertSameElements([%9999-12-31T00:00:00.000000000+0000, %9999-12-31T00:00:00.000000000+0000], $result.values.rows.getDate('out')); @@ -75,7 +101,11 @@ function <> meta::relational::tests::milestoning::rangeQuery::testPro function <> meta::relational::tests::milestoning::rangeQuery::testProcessingTemporalRangeQueryOnProperty():Boolean[1] { let result = execute(|Certification.allVersions()->filter(x|$x.traderAllVersionsInRange(%2012-1-1, %2014-1-1).kerberos == 'ggekko')->project([x|$x.traderAllVersionsInRange(%2012-1-1, %2014-1-1).kerberos, x|$x.milestoning.in, x|$x.milestoning.out], ['kerberos', 'in', 'out'])->distinct(), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select distinct "tradertable_0".kerberos as "kerberos", "root".in_z as "in", "root".out_z as "out" from CertificationTable as "root" left outer join TraderTable as "tradertable_0" on ("tradertable_0".kerberos = "root".kerberos and "tradertable_0".in_z <= \'2014-01-01\' and "tradertable_0".out_z > \'2012-01-01\') where "tradertable_0".kerberos = \'ggekko\'', $result); + assertEqualsH2Compatible( + 'select distinct "tradertable_0".kerberos as "kerberos", "root".in_z as "in", "root".out_z as "out" from CertificationTable as "root" left outer join TraderTable as "tradertable_0" on ("tradertable_0".kerberos = "root".kerberos and "tradertable_0".in_z <= \'2014-01-01\' and "tradertable_0".out_z > \'2012-01-01\') where "tradertable_0".kerberos = \'ggekko\'', + 'select distinct "tradertable_0".kerberos as "kerberos", "root".in_z as "in", "root".out_z as "out" from CertificationTable as "root" left outer join TraderTable as "tradertable_0" on ("tradertable_0".kerberos = "root".kerberos and "tradertable_0".in_z <= DATE\'2014-01-01\' and "tradertable_0".out_z > DATE\'2012-01-01\') where "tradertable_0".kerberos = \'ggekko\'', + $result->sqlRemoveFormatting() + ); assertSameElements(['ggekko', 'ggekko'], $result.values.rows.getString('kerberos')); assertSameElements([%1980-01-01T00:00:00.000000000+0000, %1981-01-01T00:00:00.000000000+0000], $result.values.rows.getDate('in')); assertSameElements([%9999-12-31T00:00:00.000000000+0000, %9999-12-31T00:00:00.000000000+0000], $result.values.rows.getDate('out')); @@ -84,7 +114,11 @@ function <> meta::relational::tests::milestoning::rangeQuery::testPro function <> meta::relational::tests::milestoning::rangeQuery::testProcessingTemporalRangeQueryOnRootAndProperty():Boolean[1] { let result = execute(|Certification.allVersionsInRange(%1979-1-1, %1982-1-1)->filter(x|$x.traderAllVersionsInRange(%2012-1-1, %2014-1-1).kerberos == 'ggekko')->project([x|$x.traderAllVersionsInRange(%2012-1-1, %2014-1-1).kerberos, x|$x.milestoning.in, x|$x.milestoning.out], ['kerberos', 'in', 'out'])->distinct(), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select distinct "tradertable_0".kerberos as "kerberos", "root".in_z as "in", "root".out_z as "out" from CertificationTable as "root" left outer join TraderTable as "tradertable_0" on ("tradertable_0".kerberos = "root".kerberos and "tradertable_0".in_z <= \'2014-01-01\' and "tradertable_0".out_z > \'2012-01-01\') where "tradertable_0".kerberos = \'ggekko\' and "root".in_z <= \'1982-01-01\' and "root".out_z > \'1979-01-01\'', $result); + assertEqualsH2Compatible( + 'select distinct "tradertable_0".kerberos as "kerberos", "root".in_z as "in", "root".out_z as "out" from CertificationTable as "root" left outer join TraderTable as "tradertable_0" on ("tradertable_0".kerberos = "root".kerberos and "tradertable_0".in_z <= \'2014-01-01\' and "tradertable_0".out_z > \'2012-01-01\') where "tradertable_0".kerberos = \'ggekko\' and "root".in_z <= \'1982-01-01\' and "root".out_z > \'1979-01-01\'', + 'select distinct "tradertable_0".kerberos as "kerberos", "root".in_z as "in", "root".out_z as "out" from CertificationTable as "root" left outer join TraderTable as "tradertable_0" on ("tradertable_0".kerberos = "root".kerberos and "tradertable_0".in_z <= DATE\'2014-01-01\' and "tradertable_0".out_z > DATE\'2012-01-01\') where "tradertable_0".kerberos = \'ggekko\' and "root".in_z <= DATE\'1982-01-01\' and "root".out_z > DATE\'1979-01-01\'', + $result->sqlRemoveFormatting() + ); assertSameElements(['ggekko', 'ggekko'], $result.values.rows.getString('kerberos')); assertSameElements([%1980-01-01T00:00:00.000000000+0000, %1981-01-01T00:00:00.000000000+0000], $result.values.rows.getDate('in')); assertSameElements([%9999-12-31T00:00:00.000000000+0000, %9999-12-31T00:00:00.000000000+0000], $result.values.rows.getDate('out')); @@ -93,13 +127,21 @@ function <> meta::relational::tests::milestoning::rangeQuery::testPro function <> meta::relational::tests::milestoning::rangeQuery::testBusinessTemporalRangeQueryOnRootWithSubsequentCallToMilestonedQualifiedPropertyWithFunction():Boolean[1] { let result = execute(|Certification.allVersionsInRange(%1979-1-1, %1982-1-1)->project(x|$x.trader(constantDate()).kerberos, ['kerberos'])->distinct(), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select distinct "tradertable_0".kerberos as "kerberos" from CertificationTable as "root" left outer join TraderTable as "tradertable_0" on ("tradertable_0".kerberos = "root".kerberos and "tradertable_0".in_z <= \'2015-01-01\' and "tradertable_0".out_z > \'2015-01-01\') where "root".in_z <= \'1982-01-01\' and "root".out_z > \'1979-01-01\'', $result); + assertEqualsH2Compatible( + 'select distinct "tradertable_0".kerberos as "kerberos" from CertificationTable as "root" left outer join TraderTable as "tradertable_0" on ("tradertable_0".kerberos = "root".kerberos and "tradertable_0".in_z <= \'2015-01-01\' and "tradertable_0".out_z > \'2015-01-01\') where "root".in_z <= \'1982-01-01\' and "root".out_z > \'1979-01-01\'', + 'select distinct "tradertable_0".kerberos as "kerberos" from CertificationTable as "root" left outer join TraderTable as "tradertable_0" on ("tradertable_0".kerberos = "root".kerberos and "tradertable_0".in_z <= DATE\'2015-01-01\' and "tradertable_0".out_z > DATE\'2015-01-01\') where "root".in_z <= DATE\'1982-01-01\' and "root".out_z > DATE\'1979-01-01\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::rangeQuery::testBusinessTemporalRangeQueryOnRootWithSubsequentCallToMilestonedQualifiedPropertyWithThisBusinessDate():Boolean[1] { let result = execute(|Product.allVersionsInRange(%1979-1-1, %1982-1-1)->project(x|$x.classificationTypeStr(), ['classificationType'])->distinct(), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select distinct "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= "root".from_z and "productclassificationtable_0".thru_z > "root".from_z) where "root".from_z <= \'1982-01-01\' and "root".thru_z > \'1979-01-01\'', $result); + assertEqualsH2Compatible( + 'select distinct "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= "root".from_z and "productclassificationtable_0".thru_z > "root".from_z) where "root".from_z <= \'1982-01-01\' and "root".thru_z > \'1979-01-01\'', + 'select distinct "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= "root".from_z and "productclassificationtable_0".thru_z > "root".from_z) where "root".from_z <= DATE\'1982-01-01\' and "root".thru_z > DATE\'1979-01-01\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::milestoning::rangeQuery::testBusinessTemporalRangeQueryOnRootWithSubsequentCallToMilestonedQualifiedPropertyWithFunctionCallWithThisBusinessDateParameter():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testUnionOperationWithHybridMilestoningAcrossTables.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testUnionOperationWithHybridMilestoningAcrossTables.pure index e2123e5103f..2620ac5b888 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testUnionOperationWithHybridMilestoningAcrossTables.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testUnionOperationWithHybridMilestoningAcrossTables.pure @@ -13,6 +13,7 @@ // limitations under the License. ###Pure +import meta::relational::functions::sqlQueryToString::h2::*; import meta::pure::runtime::*; import meta::relational::functions::asserts::*; import meta::relational::mapping::*; @@ -23,7 +24,11 @@ import meta::relational::tests::milestoning::union::*; function <> meta::relational::tests::milestoning::union::testHybridMilestoningUnionOperationWithNonTemporalRoot():Boolean[1] { let result = execute(|Order.all()->filter(o|$o.biTemporalProduct(%2015-8-25, %2018-8-26).name == 'ProductName1'), hybridMilestoningUnionMap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_0_2" as "pk_0_2", "unionBase"."pk_0_3" as "pk_0_3", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'2\' as u_type, null as "pk_0_0", null as "pk_0_1", "root".id as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, "root".prodFk as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'3\' as u_type, null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".id as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, null as prodFk_2, "root".prodFk as prodFk_3 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithBusinessMilestoning as "root" where "root".from_z <= \'2018-08-26\' and "root".thru_z > \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithProcessingMilestoning as "root" where "root".in_z <= \'2015-08-25\' and "root".out_z > \'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id or "unionBase".prodFk_2 = "unionalias_1".id or "unionBase".prodFk_3 = "unionalias_1".id) and (("unionalias_1"."in_z_2" <= \'2015-08-25\' and "unionalias_1"."out_z_2" > \'2015-08-25\') or coalesce("unionalias_1"."in_z_2", "unionalias_1"."out_z_2") is null and (("unionalias_1"."from_z_0" <= \'2018-08-26\' and "unionalias_1"."thru_z_0" > \'2018-08-26\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null) and ("unionalias_1"."snapshotDate_1" = \'2018-08-26\' or "unionalias_1"."snapshotDate_1" is null))) where "unionalias_1"."BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" = \'ProductName1\'', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_0_2" as "pk_0_2", "unionBase"."pk_0_3" as "pk_0_3", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'2\' as u_type, null as "pk_0_0", null as "pk_0_1", "root".id as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, "root".prodFk as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'3\' as u_type, null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".id as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, null as prodFk_2, "root".prodFk as prodFk_3 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithBusinessMilestoning as "root" where "root".from_z <= \'2018-08-26\' and "root".thru_z > \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithProcessingMilestoning as "root" where "root".in_z <= \'2015-08-25\' and "root".out_z > \'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id or "unionBase".prodFk_2 = "unionalias_1".id or "unionBase".prodFk_3 = "unionalias_1".id) and (("unionalias_1"."in_z_2" <= \'2015-08-25\' and "unionalias_1"."out_z_2" > \'2015-08-25\') or coalesce("unionalias_1"."in_z_2", "unionalias_1"."out_z_2") is null and (("unionalias_1"."from_z_0" <= \'2018-08-26\' and "unionalias_1"."thru_z_0" > \'2018-08-26\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null) and ("unionalias_1"."snapshotDate_1" = \'2018-08-26\' or "unionalias_1"."snapshotDate_1" is null))) where "unionalias_1"."BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" = \'ProductName1\'', + 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_0_2" as "pk_0_2", "unionBase"."pk_0_3" as "pk_0_3", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'2\' as u_type, null as "pk_0_0", null as "pk_0_1", "root".id as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, "root".prodFk as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'3\' as u_type, null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".id as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, null as prodFk_2, "root".prodFk as prodFk_3 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithBusinessMilestoning as "root" where "root".from_z <= DATE\'2018-08-26\' and "root".thru_z > DATE\'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithProcessingMilestoning as "root" where "root".in_z <= DATE\'2015-08-25\' and "root".out_z > DATE\'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id or "unionBase".prodFk_2 = "unionalias_1".id or "unionBase".prodFk_3 = "unionalias_1".id) and (("unionalias_1"."in_z_2" <= DATE\'2015-08-25\' and "unionalias_1"."out_z_2" > DATE\'2015-08-25\') or coalesce("unionalias_1"."in_z_2", "unionalias_1"."out_z_2") is null and (("unionalias_1"."from_z_0" <= DATE\'2018-08-26\' and "unionalias_1"."thru_z_0" > DATE\'2018-08-26\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null) and ("unionalias_1"."snapshotDate_1" = DATE\'2018-08-26\' or "unionalias_1"."snapshotDate_1" is null))) where "unionalias_1"."BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" = \'ProductName1\'', + $result->sqlRemoveFormatting() + ); assertEquals([1, 1, 1, 1, 1, 1, 1, 1], $result.values.id); } @@ -51,7 +56,11 @@ function <> meta::relational::tests::milestoning::union::testHyb ): Boolean[1] { let result = execute(|Order.all()->filter(o|$o.biTemporalProduct(%2015-8-25, %2018-8-26).biTemporalClassification.description == 'STOCK DESC-V2'), hybridMilestoningUnionMap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_0_2" as "pk_0_2", "unionBase"."pk_0_3" as "pk_0_3", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'2\' as u_type, null as "pk_0_0", null as "pk_0_1", "root".id as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, "root".prodFk as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'3\' as u_type, null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".id as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, null as prodFk_2, "root".prodFk as prodFk_3 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".type as type_0, null as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessMilestoning as "root" where "root".from_z <= \'2018-08-26\' and "root".thru_z > \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, null as type_0, "root".type as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".id as id, null as type_0, null as type_1, "root".type as type_2, null as type_3 from BiTemporalProductTableWithProcessingMilestoning as "root" where "root".in_z <= \'2015-08-25\' and "root".out_z > \'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, null as type_0, null as type_1, null as type_2, "root".type as type_3 from BiTemporalProductTableWithNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id or "unionBase".prodFk_2 = "unionalias_1".id or "unionBase".prodFk_3 = "unionalias_1".id) and (("unionalias_1"."in_z_2" <= \'2015-08-25\' and "unionalias_1"."out_z_2" > \'2015-08-25\') or coalesce("unionalias_1"."in_z_2", "unionalias_1"."out_z_2") is null and (("unionalias_1"."from_z_0" <= \'2018-08-26\' and "unionalias_1"."thru_z_0" > \'2018-08-26\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null) and ("unionalias_1"."snapshotDate_1" = \'2018-08-26\' or "unionalias_1"."snapshotDate_1" is null))) left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessMilestoning as "root" where "root".from_z <= \'2018-08-26\' and "root".thru_z > \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithProcessingMilestoning as "root" where "root".in_z <= \'2015-08-25\' and "root".out_z > \'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithNoMilestoning as "root") as "unionalias_2" on (("unionalias_1".type_0 = "unionalias_2".type or "unionalias_1".type_1 = "unionalias_2".type or "unionalias_1".type_2 = "unionalias_2".type or "unionalias_1".type_3 = "unionalias_2".type) and (("unionalias_2"."in_z_2" <= \'2015-08-25\' and "unionalias_2"."out_z_2" > \'2015-08-25\') or coalesce("unionalias_2"."in_z_2", "unionalias_2"."out_z_2") is null and (("unionalias_2"."from_z_0" <= \'2018-08-26\' and "unionalias_2"."thru_z_0" > \'2018-08-26\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."thru_z_0") is null) and ("unionalias_2"."snapshotDate_1" = \'2018-08-26\' or "unionalias_2"."snapshotDate_1" is null))) where "unionalias_2"."%s" = \'STOCK DESC-V2\''->format($tableNames), $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_0_2" as "pk_0_2", "unionBase"."pk_0_3" as "pk_0_3", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'2\' as u_type, null as "pk_0_0", null as "pk_0_1", "root".id as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, "root".prodFk as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'3\' as u_type, null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".id as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, null as prodFk_2, "root".prodFk as prodFk_3 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".type as type_0, null as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessMilestoning as "root" where "root".from_z <= \'2018-08-26\' and "root".thru_z > \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, null as type_0, "root".type as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".id as id, null as type_0, null as type_1, "root".type as type_2, null as type_3 from BiTemporalProductTableWithProcessingMilestoning as "root" where "root".in_z <= \'2015-08-25\' and "root".out_z > \'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, null as type_0, null as type_1, null as type_2, "root".type as type_3 from BiTemporalProductTableWithNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id or "unionBase".prodFk_2 = "unionalias_1".id or "unionBase".prodFk_3 = "unionalias_1".id) and (("unionalias_1"."in_z_2" <= \'2015-08-25\' and "unionalias_1"."out_z_2" > \'2015-08-25\') or coalesce("unionalias_1"."in_z_2", "unionalias_1"."out_z_2") is null and (("unionalias_1"."from_z_0" <= \'2018-08-26\' and "unionalias_1"."thru_z_0" > \'2018-08-26\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null) and ("unionalias_1"."snapshotDate_1" = \'2018-08-26\' or "unionalias_1"."snapshotDate_1" is null))) left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessMilestoning as "root" where "root".from_z <= \'2018-08-26\' and "root".thru_z > \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithProcessingMilestoning as "root" where "root".in_z <= \'2015-08-25\' and "root".out_z > \'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithNoMilestoning as "root") as "unionalias_2" on (("unionalias_1".type_0 = "unionalias_2".type or "unionalias_1".type_1 = "unionalias_2".type or "unionalias_1".type_2 = "unionalias_2".type or "unionalias_1".type_3 = "unionalias_2".type) and (("unionalias_2"."in_z_2" <= \'2015-08-25\' and "unionalias_2"."out_z_2" > \'2015-08-25\') or coalesce("unionalias_2"."in_z_2", "unionalias_2"."out_z_2") is null and (("unionalias_2"."from_z_0" <= \'2018-08-26\' and "unionalias_2"."thru_z_0" > \'2018-08-26\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."thru_z_0") is null) and ("unionalias_2"."snapshotDate_1" = \'2018-08-26\' or "unionalias_2"."snapshotDate_1" is null))) where "unionalias_2"."%s" = \'STOCK DESC-V2\''->format($tableNames), + 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_0_2" as "pk_0_2", "unionBase"."pk_0_3" as "pk_0_3", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'2\' as u_type, null as "pk_0_0", null as "pk_0_1", "root".id as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, "root".prodFk as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'3\' as u_type, null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".id as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, null as prodFk_2, "root".prodFk as prodFk_3 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".type as type_0, null as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessMilestoning as "root" where "root".from_z <= DATE\'2018-08-26\' and "root".thru_z > DATE\'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, null as type_0, "root".type as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".id as id, null as type_0, null as type_1, "root".type as type_2, null as type_3 from BiTemporalProductTableWithProcessingMilestoning as "root" where "root".in_z <= DATE\'2015-08-25\' and "root".out_z > DATE\'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, null as type_0, null as type_1, null as type_2, "root".type as type_3 from BiTemporalProductTableWithNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id or "unionBase".prodFk_2 = "unionalias_1".id or "unionBase".prodFk_3 = "unionalias_1".id) and (("unionalias_1"."in_z_2" <= DATE\'2015-08-25\' and "unionalias_1"."out_z_2" > DATE\'2015-08-25\') or coalesce("unionalias_1"."in_z_2", "unionalias_1"."out_z_2") is null and (("unionalias_1"."from_z_0" <= DATE\'2018-08-26\' and "unionalias_1"."thru_z_0" > DATE\'2018-08-26\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null) and ("unionalias_1"."snapshotDate_1" = DATE\'2018-08-26\' or "unionalias_1"."snapshotDate_1" is null))) left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessMilestoning as "root" where "root".from_z <= DATE\'2018-08-26\' and "root".thru_z > DATE\'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithProcessingMilestoning as "root" where "root".in_z <= DATE\'2015-08-25\' and "root".out_z > DATE\'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithNoMilestoning as "root") as "unionalias_2" on (("unionalias_1".type_0 = "unionalias_2".type or "unionalias_1".type_1 = "unionalias_2".type or "unionalias_1".type_2 = "unionalias_2".type or "unionalias_1".type_3 = "unionalias_2".type) and (("unionalias_2"."in_z_2" <= DATE\'2015-08-25\' and "unionalias_2"."out_z_2" > DATE\'2015-08-25\') or coalesce("unionalias_2"."in_z_2", "unionalias_2"."out_z_2") is null and (("unionalias_2"."from_z_0" <= DATE\'2018-08-26\' and "unionalias_2"."thru_z_0" > DATE\'2018-08-26\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."thru_z_0") is null) and ("unionalias_2"."snapshotDate_1" = DATE\'2018-08-26\' or "unionalias_2"."snapshotDate_1" is null))) where "unionalias_2"."%s" = \'STOCK DESC-V2\''->format($tableNames), + $result->sqlRemoveFormatting() + ); assertEquals([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], $result.values.id); } @@ -74,7 +83,11 @@ function <> meta::relational::tests::milestoning::union::testHyb ): Boolean[1] { let result = execute(|BiTemporalProduct.all(%2015-8-25, %2018-8-26)->filter(p|$p.biTemporalClassification.description == 'STOCK DESC-V2'), hybridMilestoningUnionMap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_0_2" as "pk_0_2", "unionBase"."pk_0_3" as "pk_0_3", "unionBase"."id" as "id", "unionBase"."name" as "name", "unionBase"."k_processingDate" as "k_processingDate", "unionBase"."k_businessDate" as "k_businessDate", "unionBase"."from_z_0" as "from_z_0", "unionBase"."thru_z_0" as "thru_z_0", "unionBase"."snapshotDate_1" as "snapshotDate_1", "unionBase"."in_z_2" as "in_z_2", "unionBase"."out_z_2" as "out_z_2" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type_0, null as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessMilestoning as "root" where "root".from_z <= \'2018-08-26\' and "root".thru_z > \'2018-08-26\' UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", null as type_0, "root".type as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2018-08-26\' UNION ALL select \'2\' as u_type, null as "pk_0_0", null as "pk_0_1", "root".id as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", null as type_0, null as type_1, "root".type as type_2, null as type_3 from BiTemporalProductTableWithProcessingMilestoning as "root" where "root".in_z <= \'2015-08-25\' and "root".out_z > \'2015-08-25\' UNION ALL select \'3\' as u_type, null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".id as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", null as type_0, null as type_1, null as type_2, "root".type as type_3 from BiTemporalProductTableWithNoMilestoning as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessMilestoning as "root" where "root".from_z <= \'2018-08-26\' and "root".thru_z > \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithProcessingMilestoning as "root" where "root".in_z <= \'2015-08-25\' and "root".out_z > \'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithNoMilestoning as "root") as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type or "unionBase".type_2 = "unionalias_1".type or "unionBase".type_3 = "unionalias_1".type) and (("unionalias_1"."in_z_2" <= \'2015-08-25\' and "unionalias_1"."out_z_2" > \'2015-08-25\') or coalesce("unionalias_1"."in_z_2", "unionalias_1"."out_z_2") is null and (("unionalias_1"."from_z_0" <= \'2018-08-26\' and "unionalias_1"."thru_z_0" > \'2018-08-26\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null) and ("unionalias_1"."snapshotDate_1" = \'2018-08-26\' or "unionalias_1"."snapshotDate_1" is null))) where "unionalias_1"."%s" = \'STOCK DESC-V2\''->format($tableNames), $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_0_2" as "pk_0_2", "unionBase"."pk_0_3" as "pk_0_3", "unionBase"."id" as "id", "unionBase"."name" as "name", "unionBase"."k_processingDate" as "k_processingDate", "unionBase"."k_businessDate" as "k_businessDate", "unionBase"."from_z_0" as "from_z_0", "unionBase"."thru_z_0" as "thru_z_0", "unionBase"."snapshotDate_1" as "snapshotDate_1", "unionBase"."in_z_2" as "in_z_2", "unionBase"."out_z_2" as "out_z_2" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type_0, null as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessMilestoning as "root" where "root".from_z <= \'2018-08-26\' and "root".thru_z > \'2018-08-26\' UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", null as type_0, "root".type as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2018-08-26\' UNION ALL select \'2\' as u_type, null as "pk_0_0", null as "pk_0_1", "root".id as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", null as type_0, null as type_1, "root".type as type_2, null as type_3 from BiTemporalProductTableWithProcessingMilestoning as "root" where "root".in_z <= \'2015-08-25\' and "root".out_z > \'2015-08-25\' UNION ALL select \'3\' as u_type, null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".id as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", null as type_0, null as type_1, null as type_2, "root".type as type_3 from BiTemporalProductTableWithNoMilestoning as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessMilestoning as "root" where "root".from_z <= \'2018-08-26\' and "root".thru_z > \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithProcessingMilestoning as "root" where "root".in_z <= \'2015-08-25\' and "root".out_z > \'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithNoMilestoning as "root") as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type or "unionBase".type_2 = "unionalias_1".type or "unionBase".type_3 = "unionalias_1".type) and (("unionalias_1"."in_z_2" <= \'2015-08-25\' and "unionalias_1"."out_z_2" > \'2015-08-25\') or coalesce("unionalias_1"."in_z_2", "unionalias_1"."out_z_2") is null and (("unionalias_1"."from_z_0" <= \'2018-08-26\' and "unionalias_1"."thru_z_0" > \'2018-08-26\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null) and ("unionalias_1"."snapshotDate_1" = \'2018-08-26\' or "unionalias_1"."snapshotDate_1" is null))) where "unionalias_1"."%s" = \'STOCK DESC-V2\''->format($tableNames), + 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_0_2" as "pk_0_2", "unionBase"."pk_0_3" as "pk_0_3", "unionBase"."id" as "id", "unionBase"."name" as "name", "unionBase"."k_processingDate" as "k_processingDate", "unionBase"."k_businessDate" as "k_businessDate", "unionBase"."from_z_0" as "from_z_0", "unionBase"."thru_z_0" as "thru_z_0", "unionBase"."snapshotDate_1" as "snapshotDate_1", "unionBase"."in_z_2" as "in_z_2", "unionBase"."out_z_2" as "out_z_2" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type_0, null as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessMilestoning as "root" where "root".from_z <= DATE\'2018-08-26\' and "root".thru_z > DATE\'2018-08-26\' UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", null as type_0, "root".type as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2018-08-26\' UNION ALL select \'2\' as u_type, null as "pk_0_0", null as "pk_0_1", "root".id as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", null as type_0, null as type_1, "root".type as type_2, null as type_3 from BiTemporalProductTableWithProcessingMilestoning as "root" where "root".in_z <= DATE\'2015-08-25\' and "root".out_z > DATE\'2015-08-25\' UNION ALL select \'3\' as u_type, null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".id as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", null as type_0, null as type_1, null as type_2, "root".type as type_3 from BiTemporalProductTableWithNoMilestoning as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessMilestoning as "root" where "root".from_z <= DATE\'2018-08-26\' and "root".thru_z > DATE\'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithProcessingMilestoning as "root" where "root".in_z <= DATE\'2015-08-25\' and "root".out_z > DATE\'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithNoMilestoning as "root") as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type or "unionBase".type_2 = "unionalias_1".type or "unionBase".type_3 = "unionalias_1".type) and (("unionalias_1"."in_z_2" <= DATE\'2015-08-25\' and "unionalias_1"."out_z_2" > DATE\'2015-08-25\') or coalesce("unionalias_1"."in_z_2", "unionalias_1"."out_z_2") is null and (("unionalias_1"."from_z_0" <= DATE\'2018-08-26\' and "unionalias_1"."thru_z_0" > DATE\'2018-08-26\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null) and ("unionalias_1"."snapshotDate_1" = DATE\'2018-08-26\' or "unionalias_1"."snapshotDate_1" is null))) where "unionalias_1"."%s" = \'STOCK DESC-V2\''->format($tableNames), + $result->sqlRemoveFormatting() + ); assertEquals([1, 1, 1, 1, 1, 1, 1, 1], $result.values.id); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelToModelToRelational/m2m2rShowcase.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelToModelToRelational/m2m2rShowcase.pure index 2ae6cea13e7..91d7dacdbce 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelToModelToRelational/m2m2rShowcase.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelToModelToRelational/m2m2rShowcase.pure @@ -1,3 +1,4 @@ +import meta::relational::functions::sqlQueryToString::h2::*; import meta::pure::executionPlan::toString::*; import meta::pure::runtime::*; import meta::relational::runtime::*; @@ -52,7 +53,7 @@ function <> meta::relational::tests::m2m2r::tes meta::relational::tests::m2m2r::AxionToModelMapping, meta::relational::tests::m2m2r::runtime(), meta::relational::extension::relationalExtensions(), noDebug())->planToString( meta::relational::extension::relationalExtensions()); - let expected = + let expectedLegacyH2 = 'Relational\n' + '(\n' + ' type = TDS[(name, String, "", ""), (prop3, Number, "", "")]\n' + @@ -60,7 +61,15 @@ function <> meta::relational::tests::m2m2r::tes ' sql = select "root".name as "name", case when "sourceannouncement_0".basis = 0.0 then 0.0 else (((1.0 * "root".entitledQuantity) / "sourceannouncement_0".basis) * "sourceannouncement_0".grossRate) end as "prop3" from S.sourceEntitlement as "root" left outer join S.SourceAnnouncement as "sourceannouncement_0" on ("root".id = "sourceannouncement_0".id)\n' + ' connection = RelationalDatabaseConnection(type = "H2")\n' + ')\n' ; - assertEquals($expected, $result); + let expectedNewH2 = + 'Relational\n' + + '(\n' + + ' type = TDS[(name, String, "", ""), (prop3, Number, "", "")]\n' + + ' resultColumns = [("name", VARCHAR(200)), ("prop3", "")]\n' + + ' sql = select "root".name as "name", case when "sourceannouncement_0".basis = CAST(0.0 AS FLOAT) then CAST(0.0 AS FLOAT) else (((1.0 * "root".entitledQuantity) / "sourceannouncement_0".basis) * "sourceannouncement_0".grossRate) end as "prop3" from S.sourceEntitlement as "root" left outer join S.SourceAnnouncement as "sourceannouncement_0" on ("root".id = "sourceannouncement_0".id)\n' + + ' connection = RelationalDatabaseConnection(type = "H2")\n' + + ')\n' ; + assertEqualsH2Compatible($expectedLegacyH2, $expectedNewH2, $result); } function <> meta::relational::tests::m2m2r::testProp4():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/tests/testMergeRules.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/tests/testMergeRules.pure index 92531d6c9d1..d0e95d6ea90 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/tests/testMergeRules.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/tests/testMergeRules.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; @@ -67,7 +68,11 @@ function <> meta::relational::tests::mergerules::m { let result = execute(|meta::relational::tests::milestoning::Product.all(%2015-10-16)->filter(p|$p.classification(%2015-10-16).type=='STOCK')->project([p|$p.name, p|$p.classification(%2015-10-16).type],['productName','productClassificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals(['ProductName2~STOCK'], $result.values.rows->map(r|$r.getString('productName')+'~'+$r.getString('productClassificationType'))); - assertSameSQL('select "root".name as "productName", "productclassificationtable_0".type as "productClassificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".name as "productName", "productclassificationtable_0".type as "productClassificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "productName", "productclassificationtable_0".type as "productClassificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } // Alloy exclusion reason: 12. Milestoning not supported @@ -75,5 +80,9 @@ function <> meta::relational::tests::mergerules::m { let result = execute(|meta::relational::tests::milestoning::Product.all(%2015-10-16)->filter(p|$p.synonyms(%2015-10-16)->exists(s|$s.synonym=='GS-Mod-S1'))->project([p|$p.name, p|$p.synonyms(%2015-10-16).synonym],['productName','productSynonymsName']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals(['ProductName2~GS-Mod-S1', 'ProductName2~GS-Mod-S2'], $result.values.rows->map(r|$r.getString('productName')+'~'+$r.getString('productSynonymsName'))); - assertSameSQL('select "root".name as "productName", "productsynonymtable_2".synonym as "productSynonymsName" from ProductTable as "root" left outer join (select distinct "productsynonymtable_1".name from ProductSynonymTable as "productsynonymtable_1" where "productsynonymtable_1".from_z <= \'2015-10-16\' and "productsynonymtable_1".thru_z > \'2015-10-16\' and "productsynonymtable_1".synonym = \'GS-Mod-S1\') as "productsynonymtable_0" on ("root".name = "productsynonymtable_0".name) left outer join ProductSynonymTable as "productsynonymtable_2" on ("root".name = "productsynonymtable_2".name and "productsynonymtable_2".from_z <= \'2015-10-16\' and "productsynonymtable_2".thru_z > \'2015-10-16\') where "productsynonymtable_0".name is not null and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result); + assertEqualsH2Compatible( + 'select "root".name as "productName", "productsynonymtable_2".synonym as "productSynonymsName" from ProductTable as "root" left outer join (select distinct "productsynonymtable_1".name from ProductSynonymTable as "productsynonymtable_1" where "productsynonymtable_1".from_z <= \'2015-10-16\' and "productsynonymtable_1".thru_z > \'2015-10-16\' and "productsynonymtable_1".synonym = \'GS-Mod-S1\') as "productsynonymtable_0" on ("root".name = "productsynonymtable_0".name) left outer join ProductSynonymTable as "productsynonymtable_2" on ("root".name = "productsynonymtable_2".name and "productsynonymtable_2".from_z <= \'2015-10-16\' and "productsynonymtable_2".thru_z > \'2015-10-16\') where "productsynonymtable_0".name is not null and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "productName", "productsynonymtable_2".synonym as "productSynonymsName" from ProductTable as "root" left outer join (select distinct "productsynonymtable_1".name from ProductSynonymTable as "productsynonymtable_1" where "productsynonymtable_1".from_z <= DATE\'2015-10-16\' and "productsynonymtable_1".thru_z > DATE\'2015-10-16\' and "productsynonymtable_1".synonym = \'GS-Mod-S1\') as "productsynonymtable_0" on ("root".name = "productsynonymtable_0".name) left outer join ProductSynonymTable as "productsynonymtable_2" on ("root".name = "productsynonymtable_2".name and "productsynonymtable_2".from_z <= DATE\'2015-10-16\' and "productsynonymtable_2".thru_z > DATE\'2015-10-16\') where "productsynonymtable_0".name is not null and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2Extension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2Extension.pure index 78eeb02995a..d3c5f215231 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2Extension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2Extension.pure @@ -11,9 +11,7 @@ function <> meta::relational::functions::sqlQueryToString::h function <> meta::relational::functions::sqlQueryToString::h2::createDbExtensionForH2():DbExtension[1] { - let conn = ^TestDatabaseConnection(element=emptyDb, type=DatabaseType.H2); - let results = executeInDb('SELECT H2VERSION();', $conn); - let h2Versions = $results.rows.values; + let h2Versions = getH2Versions(); assertEquals(1, size($h2Versions), 'More than one H2 version found when loading extension'); if($h2Versions->toOne()->eq('1.4.200'), @@ -22,6 +20,29 @@ function <> meta::relational::functions::sqlQueryToString::h2::c ); } +function meta::relational::functions::sqlQueryToString::h2::assertEqualsH2Compatible( + legacyExpected: Any[1], + upgradedExpected: Any[1], + actual: Any[1] +): Boolean[1] +{ + let h2Versions = getH2Versions(); + assertEquals(1, size($h2Versions), 'More than one H2 version found asserting test outputs'); + + if($h2Versions->toOne()->eq('1.4.200'), + | assertEquals($legacyExpected, $actual), + | assertEquals($upgradedExpected, $actual) + ); +} + +function <> meta::relational::functions::sqlQueryToString::h2::getH2Versions(): Any[*] +{ + let conn = ^TestDatabaseConnection(element=emptyDb, type=DatabaseType.H2); + let results = executeInDb('SELECT H2VERSION();', $conn); + $results.rows.values; +} + + ###Relational // Database needed just to get the H2 connection version Database meta::relational::functions::sqlQueryToString::h2::emptyDb() \ No newline at end of file diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2Extension2_1_214.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2Extension2_1_214.pure index bcef6849dfd..77d572eaee2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2Extension2_1_214.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2Extension2_1_214.pure @@ -47,25 +47,118 @@ function <> meta::relational::functions::sqlQueryToString::h2::v function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::translateCreateTableStatementForH2(c:CreateTableSQL[1], dbConfig: DbConfig[1]): String[1] { - if($c.isTempTable->isTrue(),| 'CREATE LOCAL TEMPORARY TABLE ' + $c.table->tableToString($dbConfig) + '('+ $c.table.columns->map(r|$r->match([c:Column[1]| $c.name->processColumnName($dbConfig) + ' ' + getColumnTypeSqlTextDefault($c.type), - r:RelationalOperationElement[1]| fail('Only \'Column\' types are supported when creating temporary tables, found: '+$r->type()->toOne()->elementToPath());'';]))->joinStrings(',') + ');' - ,| $c->meta::relational::functions::sqlQueryToString::default::translateCreateTableStatementDefault($dbConfig)) + if($c.isTempTable->isTrue(), + | 'CREATE LOCAL TEMPORARY TABLE ' + $c.table->tableToString($dbConfig) + + '(' + + $c.table.columns->map(r| $r->match([ + c: Column[1] | $c.name->processColumnName($dbConfig) + ' ' + getColumnTypeSqlTextH2($c.type), + r: RelationalOperationElement[1] | fail('Only \'Column\' types are supported when creating temporary tables, found: '+$r->type()->toOne()->elementToPath());''; + ]))->joinStrings(',') + + ');', + | $c->translateCreateTableStatementH2($dbConfig) + ) +} +function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::getColumnTypeSqlTextH2(columnType: meta::relational::metamodel::datatype::DataType[1]): String[1] +{ + $columnType->match([ + s : meta::relational::metamodel::datatype::SemiStructured[1] | 'VARCHAR(4000)', + a : Any[*] | dataTypeToSqlTextH2($columnType) + ]) +} + +function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::translateCreateTableStatementH2(createTableSQL:CreateTableSQL[1], dbConfig:DbConfig[1]): String[1] +{ + let t= $createTableSQL.table; + let applyConstraints = $createTableSQL.applyConstraints; + 'Create Table '+if($t.schema.name == 'default',|'',|$t.schema.name+'.')+$t.name+ + + '(' + + $t.columns->cast(@meta::relational::metamodel::Column) + ->map(c | $c.name->processColumnName($dbConfig) + ' ' + getColumnTypeSqlTextH2($c.type) + if($c.nullable->isEmpty() || $applyConstraints == false, | '', | if($c.nullable == true , | ' NULL', | ' NOT NULL'))) + ->joinStrings(',') + + if ($t.primaryKey->isEmpty() || $applyConstraints == false, | '', | ', PRIMARY KEY(' + $t.primaryKey->map(c | $c.name)->joinStrings(',') + ')') + +');'; } function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::loadValuesToDbTableForH2(l:LoadTableSQL[1], dbConfig: DbConfig[1]): String[*] { - if($l.absolutePathToFile->isNotEmpty(),| 'INSERT INTO ' + $l.table->tableToString($dbConfig) + ' SELECT * FROM CSVREAD(\''+$l.absolutePathToFile->toOne()->processOperation($dbConfig.dbType, []) + '\');' - ,| $l->meta::relational::functions::sqlQueryToString::default::loadValuesToDbTableDefault($dbConfig)) + if($l.absolutePathToFile->isNotEmpty(), + | 'INSERT INTO ' + $l.table->tableToString($dbConfig) + ' SELECT * FROM CSVREAD(\''+$l.absolutePathToFile->toOne()->processOperation($dbConfig.dbType, []) + '\');', + | $l->meta::relational::functions::sqlQueryToString::h2::v2_1_214::loadValuesToDbTableH2($dbConfig) + ) +} + +function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::loadValuesToDbTableH2(loadTableSQL: LoadTableSQL[1], dbConfig: DbConfig[1]): String[*] +{ + $loadTableSQL.parsedData.values->map(row| let sql = + 'insert into ' + if($loadTableSQL.table.schema.name == 'default', | '' , | $loadTableSQL.table.schema.name + '.') + $loadTableSQL.table.name + + ' (' + + $loadTableSQL.columnsToLoad.name->map(colName | $colName->processColumnName($dbConfig))->joinStrings(',') + +') ' + + 'values (' + + $row.values->meta::relational::functions::sqlQueryToString::h2::v2_1_214::convertValuesToCsvH2($loadTableSQL.columnsToLoad.type) + + ');'; + ); +} + +function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::convertValuesToCsvH2(str: String[*], types: Any[*]): String[1] +{ + let stringToken = map(range($types->size()), {x| if($str->at($x) == '' || $str->at($x) == '---null---', |'null', |$types->at($x)->match([ + s: meta::relational::metamodel::datatype::Varchar[*] | '\'' + $str->at($x)->replace('\'', '\'\'') + '\'', + s: meta::relational::metamodel::datatype::SemiStructured[*] | '\'' + $str->at($x)->replace('\'', '\'\'') + '\'', + s: meta::relational::metamodel::datatype::Char[*] | '\'' + $str->at($x)->replace('\'', '\'\'') + '\'', + d: meta::relational::metamodel::datatype::Date[*] | '\'' + $str->at($x) + '\'', + t: meta::relational::metamodel::datatype::Timestamp[*] | '\'' + if($str->at($x)->length() > 10, |$str->at($x), |$str->at($x)) + '\'', + b: meta::relational::metamodel::datatype::Bit[1] | bitValueFromString($str->at($x)), + a: Any[*] | $str->at($x) + ]))})->joinStrings(','); +} + +function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::bitValueFromString(s: String[1]): String[1] +{ + let truesList = ['y', '1', 'true']; + let falsesList = ['n', '0', 'false']; + let bitStr = $s->trim()->toLower(); + + println('hello'); + + let bitVal = if($bitStr->in($truesList), + | 'true', + | if($bitStr->in($falsesList), + | 'false', + | $s + ) + ); + + $bitVal; } function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::getLiteralProcessorsForH2():Map[1] { newMap([ - pair(Boolean, ^LiteralProcessor(format = '%s', transform = toString_Any_1__String_1_->literalTransform())) + pair(Boolean, ^LiteralProcessor(format = '%s', transform = toString_Any_1__String_1_->literalTransform())), + pair(Float, ^LiteralProcessor(format = 'CAST(%s AS FLOAT)', transform = toString_Any_1__String_1_->literalTransform())), + pair(StrictDate, ^LiteralProcessor(format = 'DATE\'%s\'', transform = {d:StrictDate[1], dbTimeZone:String[0..1] | $d->convertDateToSqlString($dbTimeZone)})), + pair(DateTime, ^LiteralProcessor(format = 'TIMESTAMP\'%s\'', transform = {d:DateTime[1], dbTimeZone:String[0..1] | $d->convertDateToSqlString($dbTimeZone)})), + pair(Date, ^LiteralProcessor(format = 'TIMESTAMP\'%s\'', transform = {d:Date[1], dbTimeZone:String[0..1] | $d->convertDateToSqlString($dbTimeZone)})) ]); } +function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::dataTypeToSqlTextH2(type: meta::relational::metamodel::datatype::DataType[1]):String[1] +{ + let MAX_CHAR_LENGTH = 1000000000; + let MIN_CHAR_LENGTH = 1; + let MIN_PRECISION = 1; + + $type->match([ + v : meta::relational::metamodel::datatype::Varchar[1] | format('VARCHAR(%d)', max([$MIN_CHAR_LENGTH, min([$v.size, $MAX_CHAR_LENGTH])])), + c : meta::relational::metamodel::datatype::Char[1] | format('CHAR(%d)', max([$MIN_CHAR_LENGTH, min([$c.size, $MAX_CHAR_LENGTH])])), // H2 now pads characters to hit stated size + //b : meta::relational::metamodel::datatype::Bit[1] | 'TINYINT', // allows comparisons to Booleans with new H2 + n : meta::relational::metamodel::datatype::Numeric[1] | format('NUMERIC(%d, %d)', [max([$n.precision, $MIN_PRECISION]), $n.scale]), + d : meta::relational::metamodel::datatype::DataType[1] | getColumnTypeSqlTextDefault($d) + ]); +} + // words found in ParserUtil.KEYWORDS of h2database EXCEPT for anything listed explicitly as NON_KEYWORD for compatibility function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::h2ReservedWords():String[*] { @@ -109,10 +202,10 @@ function <> meta::relational::functions::sqlQueryToString::h2::v dynaFnToSql('firstDayOfThisYear', $allStates, ^ToSql(format='dateadd(DAY, -(dayofyear(current_date()) - 1), current_date())')), dynaFnToSql('firstDayOfWeek', $allStates, ^ToSql(format='dateadd(DAY, -(mod(dayofweek(%s)+5, 7)), %s)', transform={p:String[1] | $p->repeat(2)})), dynaFnToSql('firstDayOfYear', $allStates, ^ToSql(format='dateadd(DAY, -(dayofyear(%s) - 1), %s)', transform={p:String[1] | $p->repeat(2)})), - dynaFnToSql('firstHourOfDay', $allStates, ^ToSql(format='date_trunc(\'day\', timestamp %s)')), - dynaFnToSql('firstMillisecondOfSecond', $allStates, ^ToSql(format='date_trunc(\'second\', timestamp %s)')), - dynaFnToSql('firstMinuteOfHour', $allStates, ^ToSql(format='date_trunc(\'hour\', timestamp %s)')), - dynaFnToSql('firstSecondOfMinute', $allStates, ^ToSql(format='date_trunc(\'minute\', timestamp %s)')), + dynaFnToSql('firstHourOfDay', $allStates, ^ToSql(format='date_trunc(\'day\', %s)')), + dynaFnToSql('firstMillisecondOfSecond', $allStates, ^ToSql(format='date_trunc(\'second\', %s)')), + dynaFnToSql('firstMinuteOfHour', $allStates, ^ToSql(format='date_trunc(\'hour\', %s)')), + dynaFnToSql('firstSecondOfMinute', $allStates, ^ToSql(format='date_trunc(\'minute\', %s)')), dynaFnToSql('hour', $allStates, ^ToSql(format='hour(%s)')), dynaFnToSql('indexOf', $allStates, ^ToSql(format='LOCATE(%s)', transform={p:String[2] | $p->at(1) + ', ' + $p->at(0)})), dynaFnToSql('isNumeric', $allStates, ^ToSql(format='(lower(%s) = upper(%s))')), @@ -377,7 +470,7 @@ function <> meta::relational::functions::sqlQueryToString::h2::v ); $format.separator + 'select ' + processTop($s, $format, $dbConfig, $extensions) + if($s.distinct == true,|'distinct ',|'') + - processSelectColumns($s.columns, $dbConfig, $format->indent(), true, $extensions) + + processSelectColumnsH2($s.columns, $dbConfig, $format->indent(), true, $extensions) + if($s.data == [],|'',| ' ' + $format.separator + 'from ' + $s.data->toOne()->processJoinTreeNodeH2([], $dbConfig, $format->indent(), [], $extensions)) + if (eq($opStr, ''), |'', | ' ' + $format.separator + 'where ' + $opStr) + if ($s.groupBy->isEmpty(),|'',| ' ' + $format.separator + 'group by '+$s.groupBy->processGroupByColumns($dbConfig, $format->indent(), true, $extensions)->makeString(','))+ @@ -386,10 +479,37 @@ function <> meta::relational::functions::sqlQueryToString::h2::v + processLimit($s, $dbConfig, $format, $extensions, [], processSliceOrDropForH2_SelectSQLQuery_1__Format_1__DbConfig_1__Extension_MANY__Any_1__String_1_); } -/* +/* +* ifs in column creation gets translated to cases and so should also be candidates for wrapping +*/ +function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::processSelectColumnsH2( + s: RelationalOperationElement[*], + dbConfig: DbConfig[1], + format: Format[1], + conditionalExprAllowed: Boolean[1], + extensions: Extension[*] +): String[1] +{ + if($s->size() == 0, + |'*', + | $format.separator + $s->map(r| $r->match([ + a: Alias[1] | + let shouldWrapWithCase = $a.relationalElement->isBooleanOperation($extensions) && !$conditionalExprAllowed; + if($shouldWrapWithCase, + | 'case when (' + + $a.relationalElement->wrapH2Boolean($extensions)->processOperation($dbConfig, $format, ^GenerationState(generationSide = GenerationSide.Select, withinWhenClause = true), $extensions) + + ') then \'true\' else \'false\' end as ' + $a.name, + | $r->wrapH2Boolean($extensions)->processOperation($dbConfig, $format, ^GenerationState(generationSide = GenerationSide.Select, withinWhenClause = false), $extensions) + );, + + z: RelationalOperationElement[1] | $z->wrapH2Boolean($extensions)->processOperation($dbConfig, $format, ^GenerationState(generationSide = GenerationSide.Select, withinWhenClause = false), $extensions) + ]))->joinStrings(', ' + $format.separator); + ); +} + +/* TODO: -1. remove the access comment when done testing -2. what to do with freemarker placeholder operations? They are also RelationalOpElements +- what to do with freemarker placeholder operations? They are also RelationalOpElements */ // To be used to wrap filter conditions and their arguments to compare boolean to boolean function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::wrapH2Boolean( @@ -399,9 +519,9 @@ function <> meta::relational::functions::sqlQueryToString::h2::v // Base case: at an equals sign whose children are case and a booleanExpr OR we are a solitary case node // Tail recurse: if we are at oneOf ['and', 'or', 'not', 'group'] or a optional placeholder, then recurse left and right $op->match([ - d: DynaFunction[1] | if(isCaseDyna($d), + d: DynaFunction[1] | if(isCastableDyna($d), | ^DynaFunction(name='castBoolean', parameters=[$d]), - | if(isEqualComparingCaseAndBoolean($d), + | if(isEqualComparingCastableDynaAndBoolean($d), | ^$d(parameters=$d.parameters->map(p| ^DynaFunction(name='castBoolean', parameters=[$p]))), | if(atRecursibleOperation($d), | ^$d(parameters=$d.parameters->map(p| $p->wrapH2Boolean($extensions))), @@ -409,6 +529,8 @@ function <> meta::relational::functions::sqlQueryToString::h2::v ) ) ), + // Casting alias is required for wrapping logic within projections + a: Alias[1] | ^$a(relationalElement = wrapH2Boolean($a.relationalElement, $extensions)), f: FreeMarkerOperationHolder[1] | if($f.name->in(['optionalVarPlaceHolderOpSelector']), | ^$f(parameters=$f.parameters->map(p| $p->wrapH2Boolean($extensions))), | $f @@ -417,19 +539,20 @@ function <> meta::relational::functions::sqlQueryToString::h2::v ]); } -function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::isEqualComparingCaseAndBoolean( +function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::isEqualComparingCastableDynaAndBoolean( d: DynaFunction[1] ): Boolean[1] { - $d.name == 'equal' && $d.parameters->at(0)->isCaseDyna() && $d.parameters->at(1)->isBooleanExpr(); + $d.name == 'equal' && $d.parameters->at(0)->isCastableDyna() && $d.parameters->at(1)->isBooleanExpr(); } -function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::isCaseDyna( +function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::isCastableDyna( op: RelationalOperationElement[1] ): Boolean[1] { - $op->instanceOf(DynaFunction) - && cast($op, @DynaFunction).name == 'case' + // if and case both get converted to case in SQL + $op->instanceOf(DynaFunction) && + (cast($op, @DynaFunction).name->in(['case', 'if'])) && cast($op, @DynaFunction).parameters->slice(1,3)->filter(x| $x->isTrueFalseString())->isNotEmpty() } @@ -437,14 +560,17 @@ function <> meta::relational::functions::sqlQueryToString::h2::v op: RelationalOperationElement[1] ): Boolean[1] { - $op->instanceOf(Literal) && cast($op, @Literal).value->in(['false','true']) + $op->instanceOf(Literal) && cast($op, @Literal).value->match([ + s: String[1] | $s->toLower()->in(['false','true']), + o: Any[1] | false + ]) } function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::atRecursibleOperation( op: DynaFunction[1] ): Boolean[1] { - $op.name->in(['and', 'or', 'not', 'group']) + $op.name->in(['and', 'or', 'not', 'group', 'if']) } function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::isBooleanExpr(op: RelationalOperationElement[1]): Boolean[1] @@ -500,6 +626,99 @@ function <> meta::relational::functions::sqlQueryToString::h2::v } +/* Test: + "root".RG_FUNCTION_ID = 2 + and ((case when "root".MEMBERSHIP_SOURCE = 'CUSTOM' then 'true' else 'false' end = true and + case when "root".IS_CATCH_ALL_GROUP = 1 then 'true' else 'false' end = false) and "root".STATUS = 'A') + and "root".IN_Z <= DATE '8888-01-01' + and "root".OUT_Z > DATE '8888-01-01' +*/ + +function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::testSomeAST_thenIsWrapped(): Boolean[1] +{ + let inner = ^DynaFunction(name='group', parameters=[ + ^DynaFunction(name='and', parameters=[ + ^DynaFunction(name='group', parameters=[ + ^DynaFunction(name='and', parameters=[ + ^DynaFunction(name='equal', parameters=[ + ^DynaFunction(name='if', parameters=[ + ^DynaFunction(name='equal', parameters=[^Literal(value='CUSTOM'), ^Literal(value='CUSTOM')]), + ^Literal(value='true'), + ^Literal(value='false') + ]), + ^Literal(value=true) + ]), + ^DynaFunction(name='equal', parameters=[ + ^DynaFunction(name='if', parameters=[ + ^DynaFunction(name='equal', parameters=[^Literal(value=1), ^Literal(value=2)]), + ^Literal(value='true'), + ^Literal(value='false') + ]), + ^Literal(value=false) + ]) + ]) + ]), + ^DynaFunction(name='equal', parameters=[^Literal(value='A'), ^Literal(value='A')]) + ]) + ]); + + let op = ^DynaFunction(name='and', parameters=[ + ^DynaFunction(name='and', parameters=[ + ^DynaFunction(name='and', parameters=[ + ^DynaFunction(name='equal', parameters=[^Literal(value=2), ^Literal(value=2)]), + $inner + ]), + ^DynaFunction(name='lessThanEqual', parameters=[^Literal(value='8888-01-01'), ^Literal(value='8888-01-01')]) + ]), + ^DynaFunction(name='greaterThan', parameters=[^Literal(value='8888-01-02'), ^Literal(value='8888-01-01')]) + ]); + + let castedInner = ^DynaFunction(name='group', parameters=[ + ^DynaFunction(name='and', parameters=[ + ^DynaFunction(name='group', parameters=[ + ^DynaFunction(name='and', parameters=[ + ^DynaFunction(name='equal', parameters=[ + ^DynaFunction(name='castBoolean', parameters=[ + ^DynaFunction(name='if', parameters=[ + ^DynaFunction(name='equal', parameters=[^Literal(value='CUSTOM'), ^Literal(value='CUSTOM')]), + ^Literal(value='true'), + ^Literal(value='false') + ]) + ]), + ^DynaFunction(name='castBoolean', parameters=[^Literal(value=true)]) + ]), + ^DynaFunction(name='equal', parameters=[ + ^DynaFunction(name='castBoolean', parameters=[ + ^DynaFunction(name='if', parameters=[ + ^DynaFunction(name='equal', parameters=[^Literal(value=1), ^Literal(value=2)]), + ^Literal(value='true'), + ^Literal(value='false') + ]) + ]), + ^DynaFunction(name='castBoolean', parameters=[^Literal(value=false)]) + ]) + ]) + ]), + ^DynaFunction(name='equal', parameters=[^Literal(value='A'), ^Literal(value='A')]) + ]) + ]); + + let expected = ^DynaFunction(name='and', parameters=[ + ^DynaFunction(name='and', parameters=[ + ^DynaFunction(name='and', parameters=[ + ^DynaFunction(name='equal', parameters=[^Literal(value=2), ^Literal(value=2)]), + $castedInner + ]), + ^DynaFunction(name='lessThanEqual', parameters=[^Literal(value='8888-01-01'), ^Literal(value='8888-01-01')]) + ]), + ^DynaFunction(name='greaterThan', parameters=[^Literal(value='8888-01-02'), ^Literal(value='8888-01-01')]) + ]); + + let wrappedOp = wrapH2Boolean($op, []); + print($wrappedOp); + assertEquals($expected, $wrappedOp); +} + function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::testWhenJustCase_thenIsWrapped(): Boolean[1] { let op = ^DynaFunction( diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testGroupBy.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testGroupBy.pure index 2708c52fda4..6d27c153a1b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testGroupBy.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testGroupBy.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::mapping::*; import meta::relational::runtime::*; import meta::relational::validation::*; @@ -291,7 +292,11 @@ function <> meta::relational::tests::tds::groupBy::GroupByWithIfInMap assertEquals(['Firm C', 176.0], $tds.rows->at(1).values); assertEquals(['Firm A', 66.0], $tds.rows->at(2).values); assertEquals([^TDSNull(), 5.0], $tds.rows->at(3).values); - assertEquals('select "producttable_0".NAME as "prodName", sum(case when "root".quantity > 2.0 then "root".quantity else ((1.0 * "root".quantity) / 2) end) as "sum" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) group by "prodName" order by "prodName" desc', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "producttable_0".NAME as "prodName", sum(case when "root".quantity > 2.0 then "root".quantity else ((1.0 * "root".quantity) / 2) end) as "sum" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) group by "prodName" order by "prodName" desc', + 'select "producttable_0".NAME as "prodName", sum(case when "root".quantity > CAST(2.0 AS FLOAT) then "root".quantity else ((1.0 * "root".quantity) / 2) end) as "sum" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) group by "prodName" order by "prodName" desc', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::tds::groupBy::simpleGroupByWithJoinStrings():Boolean[1] @@ -426,7 +431,7 @@ function <> meta::relational::tests::tds::groupBy::te ->groupBy('prodName', [agg('p1', x|$x.getFloat('quantity')+2, y|$y->percentile(0.9)->toOne()), agg('p2', x|$x.getFloat('quantity')+2, y|$y->percentile(0.5, false, false)->toOne()), agg('p3', x|$x.getFloat('quantity')+2, y|$y->percentile(0.75, true, true)->toOne())]) ->sort(desc('prodName')), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals(['Firm X|292.5|322.0|248.25', 'Firm C|46.6|40.0|46.0', 'Firm A|32.2|25.0|29.5', 'TDSNull|7.0|7.0|7.0'], $result.values.rows->map(r|$r.values->makeString('|'))); - meta::relational::functions::asserts::assertSameSQL('select "producttable_0".NAME as "prodName", percentile_cont(0.9) within group (order by ("root".quantity + 2) asc) as "p1", percentile_disc(0.5) within group (order by ("root".quantity + 2) desc) as "p2", percentile_cont(0.75) within group (order by ("root".quantity + 2) asc) as "p3" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) group by "prodName" order by "prodName" desc', $result); + meta::relational::functions::asserts::assertSameSQL('select "producttable_0".NAME as "prodName", percentile_cont(CAST(0.9 AS FLOAT)) within group (order by ("root".quantity + 2) asc) as "p1", percentile_disc(CAST(0.5 AS FLOAT)) within group (order by ("root".quantity + 2) desc) as "p2", percentile_cont(CAST(0.75 AS FLOAT)) within group (order by ("root".quantity + 2) asc) as "p3" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) group by "prodName" order by "prodName" desc', $result); } function <> meta::relational::tests::tds::groupBy::testTDSGroupByIsDistinct():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSExtend.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSExtend.pure index ddce7a88769..f64adfa0864 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSExtend.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSExtend.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::tests::model::simple::*; import meta::pure::executionPlan::toString::*; import meta::pure::executionPlan::*; @@ -207,8 +208,11 @@ function <> meta::relational::tests::tds::tdsExtend::testDateLiteral( assertEquals('Peter|2016-08-10,John|2016-08-10,John|2016-08-10,Anthony|2016-08-10,Fabrice|2016-08-10,Oliver|2016-08-10,David|2016-08-10', $tds.rows->map(r|$r.values->makeString('|'))->makeString(',')); - assertEquals('select "root".FIRSTNAME as "firstName", \'2016-08-10\' as "dateLiteral" from personTable as "root"', - $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".FIRSTNAME as "firstName", \'2016-08-10\' as "dateLiteral" from personTable as "root"', + 'select "root".FIRSTNAME as "firstName", DATE\'2016-08-10\' as "dateLiteral" from personTable as "root"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::tds::tdsExtend::testNoopFunctions():Boolean[1] @@ -444,5 +448,5 @@ function <> meta::relational::tests::tds::tdsExtend::testExtendsWithI simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions(), noDebug()); - assertEquals('select "root".FIRSTNAME as "firstName", "root".AGE as "age", \'2021-01-01\' as "dt", ("root".AGE is not null and "root".AGE > 50) as "ageGreaterThan50", "root".FIRSTNAME in (\'Peter\') as "stringExtends1", "root".FIRSTNAME in (\'Peter\', \'John\') as "stringExtends2", "root".AGE in (22, 23) as "numberExtends", \'2021-01-01\' in (\'2021-01-01\', \'2021-01-02\') as "dateExtends", ("root".AGE is not null and "root".AGE > 50) in (true, false) as "booleanExtends" from personTable as "root"', $result->sqlRemoveFormatting()); + assertEquals('select "root".FIRSTNAME as "firstName", "root".AGE as "age", DATE\'2021-01-01\' as "dt", ("root".AGE is not null and "root".AGE > 50) as "ageGreaterThan50", "root".FIRSTNAME in (\'Peter\') as "stringExtends1", "root".FIRSTNAME in (\'Peter\', \'John\') as "stringExtends2", "root".AGE in (22, 23) as "numberExtends", DATE\'2021-01-01\' in (DATE\'2021-01-01\', DATE\'2021-01-02\') as "dateExtends", ("root".AGE is not null and "root".AGE > 50) in (true, false) as "booleanExtends" from personTable as "root"', $result->sqlRemoveFormatting()); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSProject.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSProject.pure index bc3edd102ee..e6b4c32e21a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSProject.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSProject.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::tests::csv::*; import meta::relational::tests::model::simple::*; import meta::relational::mapping::*; @@ -207,8 +208,11 @@ function <> meta::relational::tests::tds::tdsProject::testDateLiteral assertEquals('Peter|2016-08-10,John|2016-08-10,John|2016-08-10,Anthony|2016-08-10,Fabrice|2016-08-10,Oliver|2016-08-10,David|2016-08-10', $tds.rows->map(r|$r.values->makeString('|'))->makeString(',')); - assertEquals('select "root".FIRSTNAME as "firstName", \'2016-08-10\' as "dateLiteral" from personTable as "root"', - $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".FIRSTNAME as "firstName", \'2016-08-10\' as "dateLiteral" from personTable as "root"', + 'select "root".FIRSTNAME as "firstName", DATE\'2016-08-10\' as "dateLiteral" from personTable as "root"', + $result->sqlRemoveFormatting() + ); } // Alloy exclusion reason: 10. Tricky usage of variables @@ -294,8 +298,11 @@ function <> meta::relational::tests::tds::tdsProject::testHourFunctio assertEquals('Peter|8,John|8,John|8,Anthony|8,Fabrice|8,Oliver|8,David|8', $tds.rows->map(r|$r.values->makeString('|'))->makeString(',')); - assertEquals('select "root".FIRSTNAME as "firstName", hour(\'2016-08-10 08:55:00.0\') as "hour" from personTable as "root"', - $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".FIRSTNAME as "firstName", hour(\'2016-08-10 08:55:00.0\') as "hour" from personTable as "root"', + 'select "root".FIRSTNAME as "firstName", hour(TIMESTAMP\'2016-08-10 08:55:00.0\') as "hour" from personTable as "root"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::tds::tdsProject::testProjectEnumFromOpenVariable():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSWindowColumn.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSWindowColumn.pure index c41e82f9a8e..8bee604814c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSWindowColumn.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSWindowColumn.pure @@ -30,7 +30,7 @@ meta::relational::tests::tds::tdsWindow::testPercentileWindowFunction():Boolean[ simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions() ); assertSize($result1.values.rows, 7); - meta::relational::functions::asserts::assertSameSQL('select "root".FIRSTNAME as "firstName", "root".LASTNAME as "lastName", "root".AGE as "age", percentile_cont(0.9) within group (order by "root".AGE asc) OVER (Partition By "root".FIRSTNAME ) as "testCol1" from personTable as "root"', $result1); + meta::relational::functions::asserts::assertSameSQL('select "root".FIRSTNAME as "firstName", "root".LASTNAME as "lastName", "root".AGE as "age", percentile_cont(CAST(0.9 AS FLOAT)) within group (order by "root".AGE asc) OVER (Partition By "root".FIRSTNAME ) as "testCol1" from personTable as "root"', $result1); assertSameElements(['Anthony|Allen|22|22.0', 'David|Harris|35|35.0', 'Fabrice|Roberts|34|34.0', 'John|Hill|12|21.0', 'John|Johnson|22|21.0', 'Oliver|Hill|32|32.0', 'Peter|Smith|23|23.0'], $result1.values.rows->map(r|$r.values->makeString('|'))); let result2 = execute( @@ -42,7 +42,7 @@ meta::relational::tests::tds::tdsWindow::testPercentileWindowFunction():Boolean[ simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions() ); assertSize($result2.values.rows, 7); - meta::relational::functions::asserts::assertSameSQL('select "root".FIRSTNAME as "firstName", "root".LASTNAME as "lastName", "root".AGE as "age", percentile_cont(0.9) within group (order by "root".AGE desc) OVER (Partition By "root".FIRSTNAME ) as "testCol1" from personTable as "root"', $result2); + meta::relational::functions::asserts::assertSameSQL('select "root".FIRSTNAME as "firstName", "root".LASTNAME as "lastName", "root".AGE as "age", percentile_cont(CAST(0.9 AS FLOAT)) within group (order by "root".AGE desc) OVER (Partition By "root".FIRSTNAME ) as "testCol1" from personTable as "root"', $result2); assertSameElements(['Anthony|Allen|22|22.0', 'David|Harris|35|35.0', 'Fabrice|Roberts|34|34.0', 'John|Hill|12|13.0', 'John|Johnson|22|13.0', 'Oliver|Hill|32|32.0', 'Peter|Smith|23|23.0'], $result2.values.rows->map(r|$r.values->makeString('|'))); @@ -55,6 +55,6 @@ meta::relational::tests::tds::tdsWindow::testPercentileWindowFunction():Boolean[ simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions() ); assertSize($result3.values.rows, 7); - meta::relational::functions::asserts::assertSameSQL('select "root".FIRSTNAME as "firstName", "root".LASTNAME as "lastName", "root".AGE as "age", percentile_disc(0.9) within group (order by "root".AGE desc) OVER (Partition By "root".FIRSTNAME ) as "testCol1" from personTable as "root"', $result3); + meta::relational::functions::asserts::assertSameSQL('select "root".FIRSTNAME as "firstName", "root".LASTNAME as "lastName", "root".AGE as "age", percentile_disc(CAST(0.9 AS FLOAT)) within group (order by "root".AGE desc) OVER (Partition By "root".FIRSTNAME ) as "testCol1" from personTable as "root"', $result3); assertSameElements(['Anthony|Allen|22|22.0', 'David|Harris|35|35.0', 'Fabrice|Roberts|34|34.0', 'John|Hill|12|12.0', 'John|Johnson|22|12.0', 'Oliver|Hill|32|32.0', 'Peter|Smith|23|23.0'], $result3.values.rows->map(r|$r.values->makeString('|'))); } \ No newline at end of file diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/testDataGeneration/tests/testDataGeneration.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/testDataGeneration/tests/testDataGeneration.pure index 78272353768..78d228977b0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/testDataGeneration/tests/testDataGeneration.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/testDataGeneration/tests/testDataGeneration.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::metamodel::execute::*; import meta::pure::functions::lang::tests::cast::*; import meta::relational::metamodel::join::*; @@ -319,11 +320,19 @@ function <> meta::relational::testDataGeneratio let testData = generateTestData($query, $mapping, $runtime, $tableRowIdentifiers, meta::relational::extension::relationalExtensions())->toOne(); assertSize($testData.sqls, 3); - assertSqlEquals('\n' + - 'select top 20 \n' + - ' "root".ID, "root".prodId \n' + - 'from tradeTable as "root" \n' + - 'where "root".tradeDate = \'2014-12-04\' or "root".prodId = 2', $testData.sqls->at(0)); + assertEqualsH2Compatible( + sqlRemoveFormatting('\n' + + 'select top 20 \n' + + ' "root".ID, "root".prodId \n' + + 'from tradeTable as "root" \n' + + 'where "root".tradeDate = \'2014-12-04\' or "root".prodId = 2'), + sqlRemoveFormatting('\n' + + 'select top 20 \n' + + ' "root".ID, "root".prodId \n' + + 'from tradeTable as "root" \n' + + 'where "root".tradeDate = DATE\'2014-12-04\' or "root".prodId = 2'), + $testData.sqls->at(0)->sqlRemoveFormatting() + ); assertSqlEquals('\n' + 'select top 20 \n' + ' "producttable_0".ID, "producttable_0".NAME \n' + @@ -1814,6 +1823,7 @@ function <> meta::relational::testDataGeneration::tests::loadAnd /*** Execution Plan + Alloy Tests ***/ ###Pure +import meta::relational::functions::sqlQueryToString::h2::*; import meta::pure::executionPlan::profiles::*; import meta::relational::metamodel::join::*; import meta::relational::functions::database::*; @@ -2558,7 +2568,7 @@ function <> meta::relational::testDataGeneratio ]; let milestoningDates = createTemporalMilestoningDates(%9999-12-30, [], []); let plan = meta::relational::testDataGeneration::executionPlan::planTestDataGeneration($query, $mapping, $runtime, ^ExecutionContext(), $tableRowIdentifiers, false, $milestoningDates, meta::relational::extension::relationalExtensions()); - assertEquals( + assertEqualsH2Compatible( 'MultiResultSequence\n' + '(\n' + ' type = meta::pure::metamodel::type::Any\n' + @@ -2598,7 +2608,49 @@ function <> meta::relational::testDataGeneratio ' )\n' + ' )\n' + ' )\n' + - ')\n', $plan->meta::pure::executionPlan::toString::planToString(meta::relational::extension::relationalExtensions())); + ')\n', + 'MultiResultSequence\n' + + '(\n' + + ' type = meta::pure::metamodel::type::Any\n' + + ' (\n' + + ' Allocation\n' + + ' (\n' + + ' type = Relation[name=ProductTable, type=TABLE, schema=default, database=meta::relational::tests::milestoning::db, columns=[("from_z",DATE), ("id",INT), ("name",VARCHAR(200)), ("thru_z",DATE), ("type",VARCHAR(200))]]\n' + + ' resultSizeRange = *\n' + + ' name = res_c0\n' + + ' value = \n' + + ' (\n' + + ' Relational\n' + + ' (\n' + + ' type = Relation[name=ProductTable, type=TABLE, schema=default, database=meta::relational::tests::milestoning::db, columns=[("from_z",DATE), ("id",INT), ("name",VARCHAR(200)), ("thru_z",DATE), ("type",VARCHAR(200))]]\n' + + ' resultSizeRange = *\n' + + ' resultColumns = [("from_z", DATE), ("id", INT), ("name", VARCHAR(200)), ("thru_z", DATE), ("type", VARCHAR(200))]\n' + + ' sql = select top 20 "root".from_z as "from_z", "root".id as "id", "root".name as "name", "root".thru_z as "thru_z", "root".type as "type" from ProductTable as "root" where "root".from_z <= DATE\'9999-12-30\' and "root".thru_z > DATE\'9999-12-30\' and ("root".id = 3 or "root".id = 2)\n' + + ' connection = TestDatabaseConnection(type = "H2")\n' + + ' )\n' + + ' )\n' + + ' )\n' + + ' Allocation\n' + + ' (\n' + + ' type = Relation[name=ProductClassificationTable, type=TABLE, schema=default, database=meta::relational::tests::milestoning::db, columns=[("from_z",DATE), ("thru_z",DATE), ("type",VARCHAR(200))]]\n' + + ' resultSizeRange = *\n' + + ' name = res_c0_c0\n' + + ' value = \n' + + ' (\n' + + ' Relational\n' + + ' (\n' + + ' type = Relation[name=ProductClassificationTable, type=TABLE, schema=default, database=meta::relational::tests::milestoning::db, columns=[("from_z",DATE), ("thru_z",DATE), ("type",VARCHAR(200))]]\n' + + ' resultSizeRange = *\n' + + ' resultColumns = [("from_z", DATE), ("thru_z", DATE), ("type", VARCHAR(200))]\n' + + ' sql = select top 20 "productclassificationtable_0".from_z as "from_z", "productclassificationtable_0".thru_z as "thru_z", "productclassificationtable_0".type as "type" from (select * from (${res_c0}) as "root") as "root" inner join ProductClassificationTable as "productclassificationtable_0" on ("root"."type" = "productclassificationtable_0".type) where "productclassificationtable_0".from_z <= DATE\'9999-12-30\' and "productclassificationtable_0".thru_z > DATE\'9999-12-30\'\n' + + ' connection = TestDatabaseConnection(type = "H2")\n' + + ' )\n' + + ' )\n' + + ' )\n' + + ' )\n' + + ')\n', + $plan->meta::pure::executionPlan::toString::planToString(meta::relational::extension::relationalExtensions()) + ); } function <> meta::relational::testDataGeneration::tests::alloy::testDataGenerationWithBiTemporalMilestoning_WithMilestoningDates_Alloy():Boolean[1] @@ -2616,7 +2668,7 @@ function <> meta::relational::testDataGeneratio ]; let milestoningDates = createTemporalMilestoningDates(%9999-12-01, %9999-12-30, []); let plan = meta::relational::testDataGeneration::executionPlan::planTestDataGeneration($query, $mapping, $runtime, ^ExecutionContext(), $tableRowIdentifiers, false, $milestoningDates, meta::relational::extension::relationalExtensions()); - assertEquals( + assertEqualsH2Compatible( 'MultiResultSequence\n' + '(\n' + ' type = meta::pure::metamodel::type::Any\n' + @@ -2656,7 +2708,49 @@ function <> meta::relational::testDataGeneratio ' )\n' + ' )\n' + ' )\n' + - ')\n', $plan->meta::pure::executionPlan::toString::planToString(meta::relational::extension::relationalExtensions())); + ')\n', + 'MultiResultSequence\n' + + '(\n' + + ' type = meta::pure::metamodel::type::Any\n' + + ' (\n' + + ' Allocation\n' + + ' (\n' + + ' type = Relation[name=TraderTable, type=TABLE, schema=default, database=meta::relational::tests::milestoning::db, columns=[("in_z",DATE), ("kerberos",VARCHAR(20)), ("out_z",DATE)]]\n' + + ' resultSizeRange = *\n' + + ' name = res_c0\n' + + ' value = \n' + + ' (\n' + + ' Relational\n' + + ' (\n' + + ' type = Relation[name=TraderTable, type=TABLE, schema=default, database=meta::relational::tests::milestoning::db, columns=[("in_z",DATE), ("kerberos",VARCHAR(20)), ("out_z",DATE)]]\n' + + ' resultSizeRange = *\n' + + ' resultColumns = [("in_z", DATE), ("kerberos", VARCHAR(20)), ("out_z", DATE)]\n' + + ' sql = select top 20 "root".in_z as "in_z", "root".kerberos as "kerberos", "root".out_z as "out_z" from TraderTable as "root" where "root".in_z <= DATE\'9999-12-30\' and "root".out_z > DATE\'9999-12-30\' and "root".kerberos = \'ggekko\'\n' + + ' connection = TestDatabaseConnection(type = "H2")\n' + + ' )\n' + + ' )\n' + + ' )\n' + + ' Allocation\n' + + ' (\n' + + ' type = Relation[name=BiTemporalLocationTable, type=TABLE, schema=default, database=meta::relational::tests::milestoning::db, columns=[("ID",INT), ("PLACE",VARCHAR(200)), ("from_z",DATE), ("in_z",DATE), ("kerberos",VARCHAR(20)), ("out_z",DATE), ("thru_z",DATE)]]\n' + + ' resultSizeRange = *\n' + + ' name = res_c0_c0\n' + + ' value = \n' + + ' (\n' + + ' Relational\n' + + ' (\n' + + ' type = Relation[name=BiTemporalLocationTable, type=TABLE, schema=default, database=meta::relational::tests::milestoning::db, columns=[("ID",INT), ("PLACE",VARCHAR(200)), ("from_z",DATE), ("in_z",DATE), ("kerberos",VARCHAR(20)), ("out_z",DATE), ("thru_z",DATE)]]\n' + + ' resultSizeRange = *\n' + + ' resultColumns = [("ID", INT), ("PLACE", VARCHAR(200)), ("from_z", DATE), ("in_z", DATE), ("kerberos", VARCHAR(20)), ("out_z", DATE), ("thru_z", DATE)]\n' + + ' sql = select top 20 "bitemporallocationtable_0".ID as "ID", "bitemporallocationtable_0".PLACE as "PLACE", "bitemporallocationtable_0".from_z as "from_z", "bitemporallocationtable_0".in_z as "in_z", "bitemporallocationtable_0".kerberos as "kerberos", "bitemporallocationtable_0".out_z as "out_z", "bitemporallocationtable_0".thru_z as "thru_z" from (select * from (${res_c0}) as "root") as "root" inner join BiTemporalLocationTable as "bitemporallocationtable_0" on ("root"."kerberos" = "bitemporallocationtable_0".kerberos) where "bitemporallocationtable_0".in_z <= DATE\'9999-12-30\' and "bitemporallocationtable_0".out_z > DATE\'9999-12-30\' and "bitemporallocationtable_0".from_z <= DATE\'9999-12-01\' and "bitemporallocationtable_0".thru_z > DATE\'9999-12-01\'\n' + + ' connection = TestDatabaseConnection(type = "H2")\n' + + ' )\n' + + ' )\n' + + ' )\n' + + ' )\n' + + ')\n', + $plan->meta::pure::executionPlan::toString::planToString(meta::relational::extension::relationalExtensions()) + ); } function <> meta::relational::testDataGeneration::tests::alloy::testDataGenerationWithSnapshotMilestoning_WithMilestoningDates_Alloy():Boolean[1] @@ -2675,7 +2769,7 @@ function <> meta::relational::testDataGeneratio ]; let milestoningDates = createTemporalMilestoningDates([], [], %2015-8-26); let plan = meta::relational::testDataGeneration::executionPlan::planTestDataGeneration($query, $mapping, $runtime, ^ExecutionContext(), $tableRowIdentifiers, false, $milestoningDates, meta::relational::extension::relationalExtensions()); - assertEquals( + assertEqualsH2Compatible( 'MultiResultSequence\n' + '(\n' + ' type = meta::pure::metamodel::type::Any\n' + @@ -2715,7 +2809,49 @@ function <> meta::relational::testDataGeneratio ' )\n' + ' )\n' + ' )\n' + - ')\n', $plan->meta::pure::executionPlan::toString::planToString(meta::relational::extension::relationalExtensions())); + ')\n', + 'MultiResultSequence\n' + + '(\n' + + ' type = meta::pure::metamodel::type::Any\n' + + ' (\n' + + ' Allocation\n' + + ' (\n' + + ' type = Relation[name=ProductTableWithBusinessSnapshotMilestoning, type=TABLE, schema=default, database=meta::relational::tests::milestoning::db, columns=[("id",INT), ("name",VARCHAR(200)), ("snapshotDate",DATE), ("type",VARCHAR(200))]]\n' + + ' resultSizeRange = *\n' + + ' name = res_c0\n' + + ' value = \n' + + ' (\n' + + ' Relational\n' + + ' (\n' + + ' type = Relation[name=ProductTableWithBusinessSnapshotMilestoning, type=TABLE, schema=default, database=meta::relational::tests::milestoning::db, columns=[("id",INT), ("name",VARCHAR(200)), ("snapshotDate",DATE), ("type",VARCHAR(200))]]\n' + + ' resultSizeRange = *\n' + + ' resultColumns = [("id", INT), ("name", VARCHAR(200)), ("snapshotDate", DATE), ("type", VARCHAR(200))]\n' + + ' sql = select top 20 "root".id as "id", "root".name as "name", "root".snapshotDate as "snapshotDate", "root".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\' and ("root".id = \'3\' or "root".id = \'2\')\n' + + ' connection = TestDatabaseConnection(type = "H2")\n' + + ' )\n' + + ' )\n' + + ' )\n' + + ' Allocation\n' + + ' (\n' + + ' type = Relation[name=ProductClassificationTableWithBusinessSnapshotMilestoning, type=TABLE, schema=default, database=meta::relational::tests::milestoning::db, columns=[("snapshotDate",DATE), ("type",VARCHAR(200))]]\n' + + ' resultSizeRange = *\n' + + ' name = res_c0_c0\n' + + ' value = \n' + + ' (\n' + + ' Relational\n' + + ' (\n' + + ' type = Relation[name=ProductClassificationTableWithBusinessSnapshotMilestoning, type=TABLE, schema=default, database=meta::relational::tests::milestoning::db, columns=[("snapshotDate",DATE), ("type",VARCHAR(200))]]\n' + + ' resultSizeRange = *\n' + + ' resultColumns = [("snapshotDate", DATE), ("type", VARCHAR(200))]\n' + + ' sql = select top 20 "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate as "snapshotDate", "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from (select * from (${res_c0}) as "root") as "root" inner join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root"."type" = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2015-08-26\'\n' + + ' connection = TestDatabaseConnection(type = "H2")\n' + + ' )\n' + + ' )\n' + + ' )\n' + + ' )\n' + + ')\n', + $plan->meta::pure::executionPlan::toString::planToString(meta::relational::extension::relationalExtensions()) + ); } function <> {serverVersion.start='V1_5_0'} meta::relational::testDataGeneration::tests::alloy::testTableToTDSSimple():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testContractMoneyScenario.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testContractMoneyScenario.pure index d6e8b104d63..18a2fe0f01c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testContractMoneyScenario.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testContractMoneyScenario.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::advanced::contractmoneyscenario::*; import meta::relational::runtime::*; @@ -41,7 +42,11 @@ function <> meta::relational::tests::advanced::contractmoneyscenario: ] ), ContractMoney, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "root".id as "id", "root".price as "amount", "fx_0".rate as "rate", case when "currency_0".value = \'USD\' then "root".price else ("root".price * "fx_0".rate) end as "value" from Contract as "root" left outer join Currency as "currency_0" on ("root".id = "currency_0".contractId) left outer join FX as "fx_0" on ("root".currency = "fx_0".currency and ("fx_0".date = \'2003-10-10\' and "fx_0".tenor = 1))', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".id as "id", "root".price as "amount", "fx_0".rate as "rate", case when "currency_0".value = \'USD\' then "root".price else ("root".price * "fx_0".rate) end as "value" from Contract as "root" left outer join Currency as "currency_0" on ("root".id = "currency_0".contractId) left outer join FX as "fx_0" on ("root".currency = "fx_0".currency and ("fx_0".date = \'2003-10-10\' and "fx_0".tenor = 1))', + 'select "root".id as "id", "root".price as "amount", "fx_0".rate as "rate", case when "currency_0".value = \'USD\' then "root".price else ("root".price * "fx_0".rate) end as "value" from Contract as "root" left outer join Currency as "currency_0" on ("root".id = "currency_0".contractId) left outer join FX as "fx_0" on ("root".currency = "fx_0".currency and ("fx_0".date = DATE\'2003-10-10\' and "fx_0".tenor = 1))', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::advanced::contractmoneyscenario::test2():Boolean[1] @@ -61,7 +66,11 @@ function <> meta::relational::tests::advanced::contractmoneyscenario: ] ), ContractMoney, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "root".id as "id", "root".price as "amount", "fx_0".rate as "rate", case when "currency_0".value = \'USD\' then "root".price else ("root".price * "fx_0".rate) end as "value" from Contract as "root" left outer join Currency as "currency_0" on ("root".id = "currency_0".contractId) left outer join FX as "fx_0" on ("root".currency = "fx_0".currency and ("fx_0".date = \'2003-10-10\' and "fx_0".tenor = 1))', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".id as "id", "root".price as "amount", "fx_0".rate as "rate", case when "currency_0".value = \'USD\' then "root".price else ("root".price * "fx_0".rate) end as "value" from Contract as "root" left outer join Currency as "currency_0" on ("root".id = "currency_0".contractId) left outer join FX as "fx_0" on ("root".currency = "fx_0".currency and ("fx_0".date = \'2003-10-10\' and "fx_0".tenor = 1))', + 'select "root".id as "id", "root".price as "amount", "fx_0".rate as "rate", case when "currency_0".value = \'USD\' then "root".price else ("root".price * "fx_0".rate) end as "value" from Contract as "root" left outer join Currency as "currency_0" on ("root".id = "currency_0".contractId) left outer join FX as "fx_0" on ("root".currency = "fx_0".currency and ("fx_0".date = DATE\'2003-10-10\' and "fx_0".tenor = 1))', + $result->sqlRemoveFormatting() + ); } function meta::relational::tests::advanced::contractmoneyscenario::createDatabase():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForcedMilestoning.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForcedMilestoning.pure index d2acfda81c7..b4e158e9b74 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForcedMilestoning.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForcedMilestoning.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::functions::asserts::*; import meta::pure::runtime::*; import meta::relational::mapping::*; @@ -25,13 +26,21 @@ import meta::pure::mapping::*; function <> meta::relational::tests::advanced::forced::milestoning::testMilestoningQueryWithSimpleProjectWithMilestoneFilterForcedCorrelated():Boolean[1] { let result = meta::relational::tests::advanced::forced::milestoning::testMilestoningQueryWithSimpleProjectWithMilestoneFilter(IsolationStrategy.BuildCorrelatedSubQuery); - assertEquals('select "root".name as "name", "productclassificationtable_0".type_description as "classificationDescription" from ProductTable as "root" left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= \'2015-10-17\' and "productexchangetable_1".thru_z > \'2015-10-17\') as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name) left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".type_description as type_description from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".name as "name", "productclassificationtable_0".type_description as "classificationDescription" from ProductTable as "root" left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= \'2015-10-17\' and "productexchangetable_1".thru_z > \'2015-10-17\') as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name) left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".type_description as type_description from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type_description as "classificationDescription" from ProductTable as "root" left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= DATE\'2015-10-17\' and "productexchangetable_1".thru_z > DATE\'2015-10-17\') as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name) left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".type_description as type_description from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::advanced::forced::milestoning::testMilestoningQueryWithSimpleProjectWithMilestoneFilterForcedOnClause():Boolean[1] { let result = meta::relational::tests::advanced::forced::milestoning::testMilestoningQueryWithSimpleProjectWithMilestoneFilter(IsolationStrategy.MoveFilterInOnClause); - assertEquals('select "root".name as "name", "productclassificationtable_0".type_description as "classificationDescription" from ProductTable as "root" left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-17\' and "productexchangetable_0".thru_z > \'2015-10-17\') left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".name as "name", "productclassificationtable_0".type_description as "classificationDescription" from ProductTable as "root" left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-17\' and "productexchangetable_0".thru_z > \'2015-10-17\') left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type_description as "classificationDescription" from ProductTable as "root" left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-17\' and "productexchangetable_0".thru_z > DATE\'2015-10-17\') left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + $result->sqlRemoveFormatting() + ); } function meta::relational::tests::advanced::forced::milestoning::testMilestoningQueryWithSimpleProjectWithMilestoneFilter(isolation:IsolationStrategy[1]):Result[1] @@ -49,13 +58,21 @@ function meta::relational::tests::advanced::forced::milestoning::testMilestoning function <> meta::relational::tests::advanced::forced::milestoning::testNonMilestoningQueryWithMilestoneFilterProjectForcedCorrelated():Boolean[1] { let result = meta::relational::tests::advanced::forced::milestoning::testNonMilestoningQueryWithMilestoneFilterProject(IsolationStrategy.BuildCorrelatedSubQuery); - assertSameSQL('select "root".id as "orderId", "producttable_2".name as "productName" from OrderTable as "root" left outer join (select distinct "producttable_1".id from (select "producttable_1".id as id from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-10-15\' and "producttable_1".thru_z > \'2015-10-15\') as "producttable_1" where "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) left outer join (select "producttable_1".id as id, "producttable_1".name as name from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-10-15\' and "producttable_1".thru_z > \'2015-10-15\') as "producttable_2" on ("root".prodFk = "producttable_2".id) where "producttable_0".id is not null', $result); + assertEqualsH2Compatible( + 'select "root".id as "orderId", "producttable_2".name as "productName" from OrderTable as "root" left outer join (select distinct "producttable_1".id from (select "producttable_1".id as id from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-10-15\' and "producttable_1".thru_z > \'2015-10-15\') as "producttable_1" where "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) left outer join (select "producttable_1".id as id, "producttable_1".name as name from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-10-15\' and "producttable_1".thru_z > \'2015-10-15\') as "producttable_2" on ("root".prodFk = "producttable_2".id) where "producttable_0".id is not null', + 'select "root".id as "orderId", "producttable_2".name as "productName" from OrderTable as "root" left outer join (select distinct "producttable_1".id from (select "producttable_1".id as id from ProductTable as "producttable_1" where "producttable_1".from_z <= DATE\'2015-10-15\' and "producttable_1".thru_z > DATE\'2015-10-15\') as "producttable_1" where "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) left outer join (select "producttable_1".id as id, "producttable_1".name as name from ProductTable as "producttable_1" where "producttable_1".from_z <= DATE\'2015-10-15\' and "producttable_1".thru_z > DATE\'2015-10-15\') as "producttable_2" on ("root".prodFk = "producttable_2".id) where "producttable_0".id is not null', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::advanced::forced::milestoning::testNonMilestoningQueryWithMilestoneFilterProjectForcedOnClause():Boolean[1] { let result = meta::relational::tests::advanced::forced::milestoning::testNonMilestoningQueryWithMilestoneFilterProject(IsolationStrategy.MoveFilterInOnClause); - assertSameSQL('select "root".id as "orderId", "producttable_2".name as "productName" from OrderTable as "root" left outer join (select distinct "producttable_1".id, "producttable_1".from_z, "producttable_1".thru_z from ProductTable as "producttable_1" where "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-15\' and "producttable_0".thru_z > \'2015-10-15\') left outer join ProductTable as "producttable_2" on ("root".prodFk = "producttable_2".id and "producttable_2".from_z <= \'2015-10-15\' and "producttable_2".thru_z > \'2015-10-15\') where "producttable_0".thru_z is not null and "producttable_0".from_z is not null and "producttable_0".id is not null', $result); + assertEqualsH2Compatible( + 'select "root".id as "orderId", "producttable_2".name as "productName" from OrderTable as "root" left outer join (select distinct "producttable_1".id, "producttable_1".from_z, "producttable_1".thru_z from ProductTable as "producttable_1" where "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-15\' and "producttable_0".thru_z > \'2015-10-15\') left outer join ProductTable as "producttable_2" on ("root".prodFk = "producttable_2".id and "producttable_2".from_z <= \'2015-10-15\' and "producttable_2".thru_z > \'2015-10-15\') where "producttable_0".thru_z is not null and "producttable_0".from_z is not null and "producttable_0".id is not null', + 'select "root".id as "orderId", "producttable_2".name as "productName" from OrderTable as "root" left outer join (select distinct "producttable_1".id, "producttable_1".from_z, "producttable_1".thru_z from ProductTable as "producttable_1" where "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-10-15\' and "producttable_0".thru_z > DATE\'2015-10-15\') left outer join ProductTable as "producttable_2" on ("root".prodFk = "producttable_2".id and "producttable_2".from_z <= DATE\'2015-10-15\' and "producttable_2".thru_z > DATE\'2015-10-15\') where "producttable_0".thru_z is not null and "producttable_0".from_z is not null and "producttable_0".id is not null', + $result->sqlRemoveFormatting() + ); } function meta::relational::tests::advanced::forced::milestoning::testNonMilestoningQueryWithMilestoneFilterProject(isolation:IsolationStrategy[1]):Result[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/classMappingFilterWithInnerJoin/testClassMappingFilterWithInnerJoin.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/classMappingFilterWithInnerJoin/testClassMappingFilterWithInnerJoin.pure index 1424381d13b..50c63b8c3d4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/classMappingFilterWithInnerJoin/testClassMappingFilterWithInnerJoin.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/classMappingFilterWithInnerJoin/testClassMappingFilterWithInnerJoin.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::tests::model::simple::*; import meta::relational::mapping::*; import meta::relational::tests::mapping::classMappingFilterWithInnerJoin::mapping::*; @@ -114,14 +115,22 @@ function <> meta::relational::tests::mapping::classMappingFilterWithI { let result = execute(|meta::relational::tests::milestoning::Product.all(%2015-10-26), milestoningmapWithInnerJoin, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals(['ProductName2'], $result.values.name); - assertEquals('select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", \'2015-10-26\' as "k_businessDate" from (select "root".id as id, "root".name as name, "root".type as type, "root".exchange as exchange, "root".classificationSystemId as classificationSystemId, "root".referenceSystemName as referenceSystemName, "root".externalReferenceSystemName as externalReferenceSystemName, "root".from_z as from_z, "root".thru_z as thru_z from ProductTable as "root" inner join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk = \'2\' and "root".from_z <= \'2015-10-26\' and "root".thru_z > \'2015-10-26\') as "root"', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", \'2015-10-26\' as "k_businessDate" from (select "root".id as id, "root".name as name, "root".type as type, "root".exchange as exchange, "root".classificationSystemId as classificationSystemId, "root".referenceSystemName as referenceSystemName, "root".externalReferenceSystemName as externalReferenceSystemName, "root".from_z as from_z, "root".thru_z as thru_z from ProductTable as "root" inner join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk = \'2\' and "root".from_z <= \'2015-10-26\' and "root".thru_z > \'2015-10-26\') as "root"', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", \'2015-10-26\' as "k_businessDate" from (select "root".id as id, "root".name as name, "root".type as type, "root".exchange as exchange, "root".classificationSystemId as classificationSystemId, "root".referenceSystemName as referenceSystemName, "root".externalReferenceSystemName as externalReferenceSystemName, "root".from_z as from_z, "root".thru_z as thru_z from ProductTable as "root" inner join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk = \'2\' and "root".from_z <= DATE\'2015-10-26\' and "root".thru_z > DATE\'2015-10-26\') as "root"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::mapping::classMappingFilterWithInnerJoin::testPropertyQueryWithInnerJoinClassMappingWithMilestoningTableFilter():Boolean[1] { let result = execute(|meta::relational::tests::milestoning::Product.all(%2015-10-26)->project([p|$p.name], ['name']), milestoningmapWithInnerJoin, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals(['ProductName2'], $result.values.rows.values); - assertEquals( 'select "root".name as "name" from (select "root".id as id, "root".name as name, "root".type as type, "root".exchange as exchange, "root".classificationSystemId as classificationSystemId, "root".referenceSystemName as referenceSystemName, "root".externalReferenceSystemName as externalReferenceSystemName, "root".from_z as from_z, "root".thru_z as thru_z from ProductTable as "root" inner join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk = \'2\' and "root".from_z <= \'2015-10-26\' and "root".thru_z > \'2015-10-26\') as "root"', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".name as "name" from (select "root".id as id, "root".name as name, "root".type as type, "root".exchange as exchange, "root".classificationSystemId as classificationSystemId, "root".referenceSystemName as referenceSystemName, "root".externalReferenceSystemName as externalReferenceSystemName, "root".from_z as from_z, "root".thru_z as thru_z from ProductTable as "root" inner join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk = \'2\' and "root".from_z <= \'2015-10-26\' and "root".thru_z > \'2015-10-26\') as "root"', + 'select "root".name as "name" from (select "root".id as id, "root".name as name, "root".type as type, "root".exchange as exchange, "root".classificationSystemId as classificationSystemId, "root".referenceSystemName as referenceSystemName, "root".externalReferenceSystemName as externalReferenceSystemName, "root".from_z as from_z, "root".thru_z as thru_z from ProductTable as "root" inner join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk = \'2\' and "root".from_z <= DATE\'2015-10-26\' and "root".thru_z > DATE\'2015-10-26\') as "root"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::mapping::classMappingFilterWithInnerJoin::testPropertyProjectionQueryWithInnerJoinClassMappingWithMilestoningTableFilter():Boolean[1] @@ -133,7 +142,11 @@ function <> meta::relational::tests::mapping::classMappingFilterWithI let products = $result.values; assertEquals(1, $products->size()); assertEquals('ProductName2', $products->at(0).name); - assertSameSQL('select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", \'2015-10-16\' as "k_businessDate" from (select "root".id as id, "root".name as name, "root".type as type, "root".exchange as exchange, "root".classificationSystemId as classificationSystemId, "root".referenceSystemName as referenceSystemName, "root".externalReferenceSystemName as externalReferenceSystemName, "root".from_z as from_z, "root".thru_z as thru_z from ProductTable as "root" inner join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk = \'2\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\') as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\')', $result); + assertEqualsH2Compatible( + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", \'2015-10-16\' as "k_businessDate" from (select "root".id as id, "root".name as name, "root".type as type, "root".exchange as exchange, "root".classificationSystemId as classificationSystemId, "root".referenceSystemName as referenceSystemName, "root".externalReferenceSystemName as externalReferenceSystemName, "root".from_z as from_z, "root".thru_z as thru_z from ProductTable as "root" inner join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk = \'2\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\') as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\')', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", \'2015-10-16\' as "k_businessDate" from (select "root".id as id, "root".name as name, "root".type as type, "root".exchange as exchange, "root".classificationSystemId as classificationSystemId, "root".referenceSystemName as referenceSystemName, "root".externalReferenceSystemName as externalReferenceSystemName, "root".from_z as from_z, "root".thru_z as thru_z from ProductTable as "root" inner join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk = \'2\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\') as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-16\' and "productexchangetable_0".thru_z > DATE\'2015-10-16\') where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\')', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::mapping::classMappingFilterWithInnerJoin::testSubTypeProjectionQueryWithInnerJoinClassMappingTableFilter():Boolean[1] @@ -297,5 +310,9 @@ function <> meta::relational::tests::mapping::classMappingFilterWithI assertEquals('productName,productClassificationTypes,productClassificationDescriptions\n'+ 'ProductName2,STOCK,STOCK DESC-V4\n'+ 'ProductName3,,\n', $results.values->toCSV()); - assertEquals('select "root".name as "productName", "producttableview_0".type as "productClassificationTypes", "producttableview_0".type_description as "productClassificationDescriptions" from ProductTable as "root" left outer join (select "producttableview_1".id as id, "producttableview_1".name as name, "productclassificationtable_0".type as type, "productclassificationtable_0".type_description as type_description from (select "root".id as id, "root".name as name, "root".type as type, \'2015-10-26\' as "k_businessDate" from ProductTable as "root" where "root".from_z <= \'2015-10-26\' and "root".thru_z > \'2015-10-26\') as "producttableview_1" inner join (select "root".type as type, "root".type_description as type_description, "root".system as system, "root".exchange as exchange, "root".from_z as from_z, "root".thru_z as thru_z from ProductClassificationTable as "root" inner join ProductClassificationFilterTable as "productclassificationfiltertable_0" on ("root".type = "productclassificationfiltertable_0".type) where "productclassificationfiltertable_0".exchange is not null and "root".from_z <= \'2015-10-26\' and "root".thru_z > \'2015-10-26\') as "productclassificationtable_0" on ("producttableview_1".type = "productclassificationtable_0".type)) as "producttableview_0" on ("root".from_z <= \'2015-10-26\' and "root".thru_z > \'2015-10-26\' and "root".id = "producttableview_0".id and "root".name = "producttableview_0".name) where "root".from_z <= \'2015-10-26\' and "root".thru_z > \'2015-10-26\'', $results->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".name as "productName", "producttableview_0".type as "productClassificationTypes", "producttableview_0".type_description as "productClassificationDescriptions" from ProductTable as "root" left outer join (select "producttableview_1".id as id, "producttableview_1".name as name, "productclassificationtable_0".type as type, "productclassificationtable_0".type_description as type_description from (select "root".id as id, "root".name as name, "root".type as type, \'2015-10-26\' as "k_businessDate" from ProductTable as "root" where "root".from_z <= \'2015-10-26\' and "root".thru_z > \'2015-10-26\') as "producttableview_1" inner join (select "root".type as type, "root".type_description as type_description, "root".system as system, "root".exchange as exchange, "root".from_z as from_z, "root".thru_z as thru_z from ProductClassificationTable as "root" inner join ProductClassificationFilterTable as "productclassificationfiltertable_0" on ("root".type = "productclassificationfiltertable_0".type) where "productclassificationfiltertable_0".exchange is not null and "root".from_z <= \'2015-10-26\' and "root".thru_z > \'2015-10-26\') as "productclassificationtable_0" on ("producttableview_1".type = "productclassificationtable_0".type)) as "producttableview_0" on ("root".from_z <= \'2015-10-26\' and "root".thru_z > \'2015-10-26\' and "root".id = "producttableview_0".id and "root".name = "producttableview_0".name) where "root".from_z <= \'2015-10-26\' and "root".thru_z > \'2015-10-26\'', + 'select "root".name as "productName", "producttableview_0".type as "productClassificationTypes", "producttableview_0".type_description as "productClassificationDescriptions" from ProductTable as "root" left outer join (select "producttableview_1".id as id, "producttableview_1".name as name, "productclassificationtable_0".type as type, "productclassificationtable_0".type_description as type_description from (select "root".id as id, "root".name as name, "root".type as type, \'2015-10-26\' as "k_businessDate" from ProductTable as "root" where "root".from_z <= DATE\'2015-10-26\' and "root".thru_z > DATE\'2015-10-26\') as "producttableview_1" inner join (select "root".type as type, "root".type_description as type_description, "root".system as system, "root".exchange as exchange, "root".from_z as from_z, "root".thru_z as thru_z from ProductClassificationTable as "root" inner join ProductClassificationFilterTable as "productclassificationfiltertable_0" on ("root".type = "productclassificationfiltertable_0".type) where "productclassificationfiltertable_0".exchange is not null and "root".from_z <= DATE\'2015-10-26\' and "root".thru_z > DATE\'2015-10-26\') as "productclassificationtable_0" on ("producttableview_1".type = "productclassificationtable_0".type)) as "producttableview_0" on ("root".from_z <= DATE\'2015-10-26\' and "root".thru_z > DATE\'2015-10-26\' and "root".id = "producttableview_0".id and "root".name = "producttableview_0".name) where "root".from_z <= DATE\'2015-10-26\' and "root".thru_z > DATE\'2015-10-26\'', + $results->sqlRemoveFormatting() + ); } \ No newline at end of file diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testEmbeddedMapping.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testEmbeddedMapping.pure index e19766dc618..6aaa94c27d5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testEmbeddedMapping.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testEmbeddedMapping.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::tests::mapping::embedded::*; import meta::relational::functions::asserts::*; import meta::relational::runtime::*; @@ -131,7 +132,11 @@ function <> meta::relational::tests::mapping::embedded::testGroupByEm )->sort('Firm Name'), testMappingEmbedded, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('Firm Name,Count\n' + 'Firm A,0.0\n' + 'Firm X,1.0\n', $result.values->toOne()->toCSV()); - assertEquals('select "root".FIRM_LEGALNAME as "Firm Name", sum(case when ("root".PERSON_ADDRESS_NAME is not null and "root".PERSON_ADDRESS_NAME like \'1%\') then 1.0 else 0.0 end) as "Count" from PERSON_FIRM_DENORM as "root" group by "Firm Name" order by "Firm Name"', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".FIRM_LEGALNAME as "Firm Name", sum(case when ("root".PERSON_ADDRESS_NAME is not null and "root".PERSON_ADDRESS_NAME like \'1%\') then 1.0 else 0.0 end) as "Count" from PERSON_FIRM_DENORM as "root" group by "Firm Name" order by "Firm Name"', + 'select "root".FIRM_LEGALNAME as "Firm Name", sum(case when ("root".PERSON_ADDRESS_NAME is not null and "root".PERSON_ADDRESS_NAME like \'1%\') then CAST(1.0 AS FLOAT) else CAST(0.0 AS FLOAT) end) as "Count" from PERSON_FIRM_DENORM as "root" group by "Firm Name" order by "Firm Name"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::mapping::embedded::testProjectToEmbedded():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testEmbeddedOtherwiseMapping.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testEmbeddedOtherwiseMapping.pure index e32d4657e4b..438f497f8a0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testEmbeddedOtherwiseMapping.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testEmbeddedOtherwiseMapping.pure @@ -13,6 +13,7 @@ // limitations under the License. ###Pure +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::csv::*; @@ -94,8 +95,11 @@ function <> meta::relational::tests::mapping::embedded::advanced::oth ), testMappingEmbeddedOtherwise,testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('Bond Type,Profit\n' + '15 years,10.0\n' + '5 years,1.0\n', $result.values->toOne()->toCSV()); - assertSameSQL('select "bond_detail_0".TYPE as "Bond Type", sum(case when "root".MARKET_NAME = \'LSE\' then 5.0 else 1.0 end) as "Profit" from PRODUCT_DENORM as "root" left outer join BOND_DETAIL as "bond_detail_0" on ("root".PRODUCT_ID = "bond_detail_0".BOND_ID) group by "Bond Type"', $result); - + assertEqualsH2Compatible( + 'select "bond_detail_0".TYPE as "Bond Type", sum(case when "root".MARKET_NAME = \'LSE\' then 5.0 else 1.0 end) as "Profit" from PRODUCT_DENORM as "root" left outer join BOND_DETAIL as "bond_detail_0" on ("root".PRODUCT_ID = "bond_detail_0".BOND_ID) group by "Bond Type"', + 'select "bond_detail_0".TYPE as "Bond Type", sum(case when "root".MARKET_NAME = \'LSE\' then CAST(5.0 AS FLOAT) else CAST(1.0 AS FLOAT) end) as "Profit" from PRODUCT_DENORM as "root" left outer join BOND_DETAIL as "bond_detail_0" on ("root".PRODUCT_ID = "bond_detail_0".BOND_ID) group by "Bond Type"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::mapping::embedded::advanced::otherwiseTestGroupByComplexAgg():Boolean[1] @@ -108,8 +112,11 @@ function <> meta::relational::tests::mapping::embedded::advanced::oth ), testMappingEmbeddedOtherwise, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('Bond Type,sum\n' + '15 years,2.0\n' + '5 years,5.0\n', $result.values->toOne()->toCSV()); - assertSameSQL('select "bond_detail_0".TYPE as "Bond Type", sum(case when "bond_detail_0".TYPE like \'5%\' then 5.0 else 1.0 end) as "sum" from PRODUCT_DENORM as "root" left outer join BOND_DETAIL as "bond_detail_0" on ("root".PRODUCT_ID = "bond_detail_0".BOND_ID) group by "Bond Type"', $result); - + assertEqualsH2Compatible( + 'select "bond_detail_0".TYPE as "Bond Type", sum(case when "bond_detail_0".TYPE like \'5%\' then 5.0 else 1.0 end) as "sum" from PRODUCT_DENORM as "root" left outer join BOND_DETAIL as "bond_detail_0" on ("root".PRODUCT_ID = "bond_detail_0".BOND_ID) group by "Bond Type"', + 'select "bond_detail_0".TYPE as "Bond Type", sum(case when "bond_detail_0".TYPE like \'5%\' then CAST(5.0 AS FLOAT) else CAST(1.0 AS FLOAT) end) as "sum" from PRODUCT_DENORM as "root" left outer join BOND_DETAIL as "bond_detail_0" on ("root".PRODUCT_ID = "bond_detail_0".BOND_ID) group by "Bond Type"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::mapping::embedded::advanced::otherwiseTestGroupByComplexExpressionEmbeddedAndJoin():Boolean[1] @@ -122,7 +129,11 @@ function <> meta::relational::tests::mapping::embedded::advanced::oth ), testMappingEmbeddedOtherwise, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('Bond Type,sum\n' + 'Bond 1,1.0\n' + 'Bond 2,1.0\n'+ 'SuperBond 3 super,5.0\n', $result.values->toOne()->toCSV()); - assertSameSQL( 'select "root".BOND_DETAILS as "Bond Type", sum(case when "bond_detail_0".TYPE like \'5%\' then 5.0 else 1.0 end) as "sum" from PRODUCT_DENORM as "root" left outer join BOND_DETAIL as "bond_detail_0" on ("root".PRODUCT_ID = "bond_detail_0".BOND_ID) group by "Bond Type"', $result); + assertEqualsH2Compatible( + 'select "root".BOND_DETAILS as "Bond Type", sum(case when "bond_detail_0".TYPE like \'5%\' then 5.0 else 1.0 end) as "sum" from PRODUCT_DENORM as "root" left outer join BOND_DETAIL as "bond_detail_0" on ("root".PRODUCT_ID = "bond_detail_0".BOND_ID) group by "Bond Type"', + 'select "root".BOND_DETAILS as "Bond Type", sum(case when "bond_detail_0".TYPE like \'5%\' then CAST(5.0 AS FLOAT) else CAST(1.0 AS FLOAT) end) as "sum" from PRODUCT_DENORM as "root" left outer join BOND_DETAIL as "bond_detail_0" on ("root".PRODUCT_ID = "bond_detail_0".BOND_ID) group by "Bond Type"', + $result->sqlRemoveFormatting() + ); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testInlineEmbeddedMapping.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testInlineEmbeddedMapping.pure index 93270702420..dcd303368f5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testInlineEmbeddedMapping.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testInlineEmbeddedMapping.pure @@ -14,6 +14,7 @@ ###Pure +import meta::relational::functions::sqlQueryToString::h2::*; import meta::pure::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::execute::*; @@ -78,8 +79,11 @@ function meta::relational::tests::mapping::embedded::advanced::testRuntime():Ru ), testMappingEmbedded,testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('Bond Type,Profit\n' + '5 years,10.0\n' + '7 weeks,1.0\n', $result.values->toOne()->toCSV()); - assertEquals( 'select "root".BOND_TYPE as "Bond Type", sum(case when "root".MARKET_NAME = \'LSE\' then 5.0 else 1.0 end) as "Profit" from PRODUCT_DENORM as "root" group by "Bond Type"', $result->sqlRemoveFormatting()); - + assertEqualsH2Compatible( + 'select "root".BOND_TYPE as "Bond Type", sum(case when "root".MARKET_NAME = \'LSE\' then 5.0 else 1.0 end) as "Profit" from PRODUCT_DENORM as "root" group by "Bond Type"', + 'select "root".BOND_TYPE as "Bond Type", sum(case when "root".MARKET_NAME = \'LSE\' then CAST(5.0 AS FLOAT) else CAST(1.0 AS FLOAT) end) as "Profit" from PRODUCT_DENORM as "root" group by "Bond Type"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::mapping::embedded::advanced::testGroupByComplexAgg():Boolean[1] @@ -92,8 +96,11 @@ function meta::relational::tests::mapping::embedded::advanced::testRuntime():Ru ), testMappingEmbedded, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('Bond Type,sum\n' + '5 years,10.0\n' + '7 weeks,1.0\n', $result.values->toOne()->toCSV()); - assertEquals( 'select "root".BOND_TYPE as "Bond Type", sum(case when "root".BOND_TYPE like \'5%\' then 5.0 else 1.0 end) as "sum" from PRODUCT_DENORM as "root" group by "Bond Type"', $result->sqlRemoveFormatting()); - + assertEqualsH2Compatible( + 'select "root".BOND_TYPE as "Bond Type", sum(case when "root".BOND_TYPE like \'5%\' then 5.0 else 1.0 end) as "sum" from PRODUCT_DENORM as "root" group by "Bond Type"', + 'select "root".BOND_TYPE as "Bond Type", sum(case when "root".BOND_TYPE like \'5%\' then CAST(5.0 AS FLOAT) else CAST(1.0 AS FLOAT) end) as "sum" from PRODUCT_DENORM as "root" group by "Bond Type"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::mapping::embedded::advanced::testQualifierProperty():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testInlineEmbeddedNested.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testInlineEmbeddedNested.pure index 766813119f6..036d45fdcb6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testInlineEmbeddedNested.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testInlineEmbeddedNested.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::pure::graphFetch::execution::*; import meta::relational::functions::asserts::*; import meta::relational::mapping::*; @@ -75,8 +76,11 @@ function <> meta::relational::tests::mapping::embedded::advanced::inl ), testMappingEmbeddedTargetIds,testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('c1,c2\n' + 'addressh1,10.0\n' + 'addressh3,1.0\n', $result.values->toOne()->toCSV()); - assertSameSQL( 'select "root".HOLDER_ADDRESS_NAME as "c1", sum(case when "root".BOND_TYPE = \'5 years\' then 5.0 else 1.0 end) as "c2" from PRODUCT_DENORM as "root" group by "c1"', $result); - + assertEqualsH2Compatible( + 'select "root".HOLDER_ADDRESS_NAME as "c1", sum(case when "root".BOND_TYPE = \'5 years\' then 5.0 else 1.0 end) as "c2" from PRODUCT_DENORM as "root" group by "c1"', + 'select "root".HOLDER_ADDRESS_NAME as "c1", sum(case when "root".BOND_TYPE = \'5 years\' then CAST(5.0 AS FLOAT) else CAST(1.0 AS FLOAT) end) as "c2" from PRODUCT_DENORM as "root" group by "c1"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::mapping::embedded::advanced::inline::nested::testGroupByComplexAgg():Boolean[1] @@ -89,8 +93,11 @@ function <> meta::relational::tests::mapping::embedded::advanced::inl ), testMappingEmbeddedTargetIds, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('c1,sum\n' + 'addressh1,10.0\n' + 'addressh3,1.0\n', $result.values->toOne()->toCSV()); - assertSameSQL( 'select "root".HOLDER_ADDRESS_NAME as "c1", sum(case when "root".HOLDER_ADDRESS_NAME like \'addressh1%\' then 5.0 else 1.0 end) as "sum" from PRODUCT_DENORM as "root" group by "c1"', $result); - + assertEqualsH2Compatible( + 'select "root".HOLDER_ADDRESS_NAME as "c1", sum(case when "root".HOLDER_ADDRESS_NAME like \'addressh1%\' then 5.0 else 1.0 end) as "sum" from PRODUCT_DENORM as "root" group by "c1"', + 'select "root".HOLDER_ADDRESS_NAME as "c1", sum(case when "root".HOLDER_ADDRESS_NAME like \'addressh1%\' then CAST(5.0 AS FLOAT) else CAST(1.0 AS FLOAT) end) as "sum" from PRODUCT_DENORM as "root" group by "c1"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::mapping::embedded::advanced::inline::nested::testQualifierProperty():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testInlineEmbeddedTargetIds.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testInlineEmbeddedTargetIds.pure index 84c2e4098c8..259b8b7f9f6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testInlineEmbeddedTargetIds.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testInlineEmbeddedTargetIds.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::csv::*; @@ -95,8 +96,11 @@ function <> meta::relational::tests::mapping::embedded::advanced::inl ), testMappingEmbeddedTargetIds,testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('holder,Profit\n' + 'holder1,10.0\n' + 'holder3,1.0\n', $result.values->toOne()->toCSV()); - assertSameSQL('select "root".HOLDER as "holder", sum(case when "root".BOND_TYPE = \'5 years\' then 5.0 else 1.0 end) as "Profit" from PRODUCT_DENORM as "root" group by "holder"', $result); - + assertEqualsH2Compatible( + 'select "root".HOLDER as "holder", sum(case when "root".BOND_TYPE = \'5 years\' then 5.0 else 1.0 end) as "Profit" from PRODUCT_DENORM as "root" group by "holder"', + 'select "root".HOLDER as "holder", sum(case when "root".BOND_TYPE = \'5 years\' then CAST(5.0 AS FLOAT) else CAST(1.0 AS FLOAT) end) as "Profit" from PRODUCT_DENORM as "root" group by "holder"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::mapping::embedded::advanced::inline::targetid::testGroupByComplexAgg():Boolean[1] @@ -109,8 +113,11 @@ function <> meta::relational::tests::mapping::embedded::advanced::inl ), testMappingEmbeddedTargetIds, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('c1,sum\n' + 'holder1,2.0\n' + 'holder3,5.0\n', $result.values->toOne()->toCSV()); - assertSameSQL( 'select "root".HOLDER as "c1", sum(case when "root".HOLDER like \'holder3%\' then 5.0 else 1.0 end) as "sum" from PRODUCT_DENORM as "root" group by "c1"', $result); - + assertEqualsH2Compatible( + 'select "root".HOLDER as "c1", sum(case when "root".HOLDER like \'holder3%\' then 5.0 else 1.0 end) as "sum" from PRODUCT_DENORM as "root" group by "c1"', + 'select "root".HOLDER as "c1", sum(case when "root".HOLDER like \'holder3%\' then CAST(5.0 AS FLOAT) else CAST(1.0 AS FLOAT) end) as "sum" from PRODUCT_DENORM as "root" group by "c1"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::mapping::embedded::advanced::inline::targetid::testQualifierProperty():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/sqlFunction/testSqlFunctionsInMapping.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/sqlFunction/testSqlFunctionsInMapping.pure index d428a227d37..513074d76fa 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/sqlFunction/testSqlFunctionsInMapping.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/sqlFunction/testSqlFunctionsInMapping.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::functions::sqlstring::*; import meta::pure::executionPlan::profiles::*; import meta::relational::tests::mapping::sqlFunction::model::domain::*; @@ -247,7 +248,11 @@ function <> meta::relational::tests::mapping::sqlFunction::sin::testF { let result = execute(|SqlFunctionDemo.all()->filter(s | $s.floatSinResult > 0.9)->project([s | $s.floatSinResult], ['sin']), testMapping, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); assertEquals([0.9738476308781951], $result.values->at(0).rows.values); - assertEquals('select sin("root".float1) as "sin" from dataTable as "root" where sin("root".float1) > 0.9',$result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select sin("root".float1) as "sin" from dataTable as "root" where sin("root".float1) > 0.9', + 'select sin("root".float1) as "sin" from dataTable as "root" where sin("root".float1) > CAST(0.9 AS FLOAT)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::mapping::sqlFunction::cos::testProject():Boolean[1] @@ -331,7 +336,11 @@ function <> meta::relational::tests::mapping::sqlFunction::atan2::tes { let result = execute(|SqlFunctionDemo.all()->filter(s | $s.floatATan2Result > 0.8)->project([s | $s.floatATan2Result], ['atan2']), testMapping, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); assertEquals([0.8329812666744317], $result.values->at(0).rows.values); - assertEquals('select atan2("root".float1,"root".int1) as "atan2" from dataTable as "root" where atan2("root".float1,"root".int1) > 0.8',$result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select atan2("root".float1,"root".int1) as "atan2" from dataTable as "root" where atan2("root".float1,"root".int1) > 0.8', + 'select atan2("root".float1,"root".int1) as "atan2" from dataTable as "root" where atan2("root".float1,"root".int1) > CAST(0.8 AS FLOAT)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::mapping::sqlFunction::sqrt::testProject():Boolean[1] @@ -535,7 +544,11 @@ function <> meta::relational::tests::mapping::sqlFunction::pow::testF { let result = execute(|SqlFunctionDemo.all()->filter(s | $s.powerResult < 1.4)->project([s | $s.powerResult], ['power']), testMapping, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); assertEquals([1.3310000000000004], $result.values->at(0).rows.values); - assertEquals('select power("root".float1, 3) as "power" from dataTable as "root" where power("root".float1, 3) < 1.4',$result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select power("root".float1, 3) as "power" from dataTable as "root" where power("root".float1, 3) < 1.4', + 'select power("root".float1, 3) as "power" from dataTable as "root" where power("root".float1, 3) < CAST(1.4 AS FLOAT)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::mapping::sqlFunction::exp::testProject():Boolean[1] @@ -563,7 +576,11 @@ function <> meta::relational::tests::mapping::sqlFunction::log::testF { let result = execute(|SqlFunctionDemo.all()->filter(s | $s.logResult < 0.1)->project([s | $s.logResult], ['log']), testMapping, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); assertEquals([0.09531017980432493], $result.values->at(0).rows.values); - assertEquals('select ln("root".float1) as "log" from dataTable as "root" where ln("root".float1) < 0.1',$result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select ln("root".float1) as "log" from dataTable as "root" where ln("root".float1) < 0.1', + 'select ln("root".float1) as "log" from dataTable as "root" where ln("root".float1) < CAST(0.1 AS FLOAT)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::mapping::sqlFunction::indexOf::testProject():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionWithMultipleChainedJoins.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionWithMultipleChainedJoins.pure index 236c20ed440..3cbc6bf26cc 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionWithMultipleChainedJoins.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionWithMultipleChainedJoins.pure @@ -13,6 +13,8 @@ // limitations under the License. ###Pure +import meta::relational::functions::sqlQueryToString::h2::*; +import meta::relational::mapping::*; import meta::relational::functions::asserts::*; import meta::relational::tests::mapping::union::multipleChainedJoins::mapping::*; import meta::relational::tests::mapping::union::multipleChainedJoins::model::*; @@ -21,7 +23,11 @@ import meta::relational::tests::*; function <> meta::relational::tests::mapping::union::multipleChainedJoins::testUnionWithChainedJoinsAcross2SetsV1():Boolean[1] { let result = execute(|X.all(%2018-1-1)->project([x|$x.pk, x|$x.y.pk, x|$x.y.z.pk],['x_pk', 'y_pk', 'z_pk']), multipleChainedJoinsMappingWithUnionAcross2SetsV1, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "unionBase"."X0pk_X1pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk" as "y_pk", "unionalias_3"."Z0pk_Z1pk" as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as "pk_0_0", null as "pk_0_1", "root".pk as "X0pk_X1pk", "root".fk as fk_0, null as fk_1 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "pk_0_0", "root".pk as "pk_0_1", "root".pk as "X0pk_X1pk", null as fk_0, "root".fk as fk_1 from X1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join A as "a_0" on ("unionBase".fk_1 = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') left outer join (select "unionalias_2".fk_1 as fk_1, "unionalias_2".fk_0 as fk_0, "unionalias_2"."Y0pk_Y1pk" as "Y0pk_Y1pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".fk as fk_0, null as fk_1, "root".pk as "Y0pk_Y1pk" from Y0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as fk_0, "root".fk as fk_1, "root".pk as "Y0pk_Y1pk" from Y1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_2" where (coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1") <= \'2018-01-01\' and coalesce("unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") > \'2018-01-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1", "unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") is null) as "unionalias_1" on ("a_0".fk1 = "unionalias_1".fk_1 or "unionBase".fk_0 = "unionalias_1".fk_0) left outer join (select "g_1".fk0 as fk0, "g_1".fk1 from G as "g_1" where "g_1".from_z <= \'2018-01-01\' and "g_1".thru_z > \'2018-01-01\') as "g_0" on ("unionalias_1".fk_1 = "g_0".fk0) left outer join (select "unionalias_4".fk_1 as fk_1, "unionalias_4".fk_0 as fk_0, "unionalias_4"."Z0pk_Z1pk" as "Z0pk_Z1pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".fk as fk_0, null as fk_1, "root".pk as "Z0pk_Z1pk" from Z0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as fk_0, "root".fk as fk_1, "root".pk as "Z0pk_Z1pk" from Z1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_4" where (coalesce("unionalias_4"."from_z_0", "unionalias_4"."from_z_1") <= \'2018-01-01\' and coalesce("unionalias_4"."thru_z_0", "unionalias_4"."thru_z_1") > \'2018-01-01\') or coalesce("unionalias_4"."from_z_0", "unionalias_4"."from_z_1", "unionalias_4"."thru_z_0", "unionalias_4"."thru_z_1") is null) as "unionalias_3" on ("g_0".fk1 = "unionalias_3".fk_1 or "unionalias_1".fk_0 = "unionalias_3".fk_0)', $result); + assertEqualsH2Compatible( + 'select "unionBase"."X0pk_X1pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk" as "y_pk", "unionalias_3"."Z0pk_Z1pk" as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as "pk_0_0", null as "pk_0_1", "root".pk as "X0pk_X1pk", "root".fk as fk_0, null as fk_1 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "pk_0_0", "root".pk as "pk_0_1", "root".pk as "X0pk_X1pk", null as fk_0, "root".fk as fk_1 from X1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join A as "a_0" on ("unionBase".fk_1 = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') left outer join (select "unionalias_2".fk_1 as fk_1, "unionalias_2".fk_0 as fk_0, "unionalias_2"."Y0pk_Y1pk" as "Y0pk_Y1pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".fk as fk_0, null as fk_1, "root".pk as "Y0pk_Y1pk" from Y0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as fk_0, "root".fk as fk_1, "root".pk as "Y0pk_Y1pk" from Y1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_2" where (coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1") <= \'2018-01-01\' and coalesce("unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") > \'2018-01-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1", "unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") is null) as "unionalias_1" on ("a_0".fk1 = "unionalias_1".fk_1 or "unionBase".fk_0 = "unionalias_1".fk_0) left outer join (select "g_1".fk0 as fk0, "g_1".fk1 from G as "g_1" where "g_1".from_z <= \'2018-01-01\' and "g_1".thru_z > \'2018-01-01\') as "g_0" on ("unionalias_1".fk_1 = "g_0".fk0) left outer join (select "unionalias_4".fk_1 as fk_1, "unionalias_4".fk_0 as fk_0, "unionalias_4"."Z0pk_Z1pk" as "Z0pk_Z1pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".fk as fk_0, null as fk_1, "root".pk as "Z0pk_Z1pk" from Z0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as fk_0, "root".fk as fk_1, "root".pk as "Z0pk_Z1pk" from Z1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_4" where (coalesce("unionalias_4"."from_z_0", "unionalias_4"."from_z_1") <= \'2018-01-01\' and coalesce("unionalias_4"."thru_z_0", "unionalias_4"."thru_z_1") > \'2018-01-01\') or coalesce("unionalias_4"."from_z_0", "unionalias_4"."from_z_1", "unionalias_4"."thru_z_0", "unionalias_4"."thru_z_1") is null) as "unionalias_3" on ("g_0".fk1 = "unionalias_3".fk_1 or "unionalias_1".fk_0 = "unionalias_3".fk_0)', + 'select "unionBase"."X0pk_X1pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk" as "y_pk", "unionalias_3"."Z0pk_Z1pk" as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as "pk_0_0", null as "pk_0_1", "root".pk as "X0pk_X1pk", "root".fk as fk_0, null as fk_1 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "pk_0_0", "root".pk as "pk_0_1", "root".pk as "X0pk_X1pk", null as fk_0, "root".fk as fk_1 from X1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join A as "a_0" on ("unionBase".fk_1 = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') left outer join (select "unionalias_2".fk_1 as fk_1, "unionalias_2".fk_0 as fk_0, "unionalias_2"."Y0pk_Y1pk" as "Y0pk_Y1pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".fk as fk_0, null as fk_1, "root".pk as "Y0pk_Y1pk" from Y0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as fk_0, "root".fk as fk_1, "root".pk as "Y0pk_Y1pk" from Y1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_2" where (coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1") <= DATE\'2018-01-01\' and coalesce("unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") > DATE\'2018-01-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1", "unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") is null) as "unionalias_1" on ("a_0".fk1 = "unionalias_1".fk_1 or "unionBase".fk_0 = "unionalias_1".fk_0) left outer join (select "g_1".fk0 as fk0, "g_1".fk1 from G as "g_1" where "g_1".from_z <= DATE\'2018-01-01\' and "g_1".thru_z > DATE\'2018-01-01\') as "g_0" on ("unionalias_1".fk_1 = "g_0".fk0) left outer join (select "unionalias_4".fk_1 as fk_1, "unionalias_4".fk_0 as fk_0, "unionalias_4"."Z0pk_Z1pk" as "Z0pk_Z1pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".fk as fk_0, null as fk_1, "root".pk as "Z0pk_Z1pk" from Z0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as fk_0, "root".fk as fk_1, "root".pk as "Z0pk_Z1pk" from Z1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_4" where (coalesce("unionalias_4"."from_z_0", "unionalias_4"."from_z_1") <= DATE\'2018-01-01\' and coalesce("unionalias_4"."thru_z_0", "unionalias_4"."thru_z_1") > DATE\'2018-01-01\') or coalesce("unionalias_4"."from_z_0", "unionalias_4"."from_z_1", "unionalias_4"."thru_z_0", "unionalias_4"."thru_z_1") is null) as "unionalias_3" on ("g_0".fk1 = "unionalias_3".fk_1 or "unionalias_1".fk_0 = "unionalias_3".fk_0)', + $result->sqlRemoveFormatting() + ); assertEquals([10, 11], $result.values.rows.get('x_pk')); assertEquals([20, 21], $result.values.rows.get('y_pk')); assertEquals([30, 31], $result.values.rows.get('z_pk')); @@ -30,7 +36,11 @@ function <> meta::relational::tests::mapping::union::multipleChainedJ function <> meta::relational::tests::mapping::union::multipleChainedJoins::testUnionWithChainedJoinsAcross3SetsV1():Boolean[1] { let result = execute(|X.all(%2018-1-1)->project([x|$x.pk, x|$x.y.pk, x|$x.y.z.pk],['x_pk', 'y_pk', 'z_pk']), multipleChainedJoinsMappingWithUnionAcross3SetsV1, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "unionBase"."X0pk_X1pk_X2pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk" as "y_pk", "unionalias_2"."Z0pk_Z1pk_Z2pk" as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk1_1, null as fk1_2 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, "root".fk as fk_1, null as fk_2, "a_0".fk1 as fk1_1, null as fk1_2 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk1_1, "c_0".fk1 as fk1_2 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= \'2018-01-01\' and "b_0".thru_z > \'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= \'2018-01-01\' and "c_1".thru_z > \'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".fk as fk_0, null as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, null as fk1_2 from Y0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as fk_0, "root".fk as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", "g_0".fk1 as fk1_1, null as fk1_2 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= \'2018-01-01\' and "g_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as fk_0, null as fk_1, "root".fk as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, "i_0".fk1 as fk1_2 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= \'2018-01-01\' and "h_0".thru_z > \'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= \'2018-01-01\' and "i_1".thru_z > \'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2") <= \'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") > \'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") is null)) left outer join (select "unionalias_3".fk_0 as fk_0, "unionalias_3".fk_1 as fk_1, "unionalias_3".fk_2 as fk_2, "unionalias_3"."Z0pk_Z1pk_Z2pk" as "Z0pk_Z1pk_Z2pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".fk as fk_0, null as fk_1, null as fk_2, "root".pk as "Z0pk_Z1pk_Z2pk" from Z0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as fk_0, "root".fk as fk_1, null as fk_2, "root".pk as "Z0pk_Z1pk_Z2pk" from Z1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as fk_0, null as fk_1, "root".fk as fk_2, "root".pk as "Z0pk_Z1pk_Z2pk" from Z2 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_3" where (coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2") <= \'2018-01-01\' and coalesce("unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2") > \'2018-01-01\') or coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2", "unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2") is null) as "unionalias_2" on ("unionalias_1".fk_0 = "unionalias_2".fk_0 or "unionalias_1".fk1_1 = "unionalias_2".fk_1 or "unionalias_1".fk1_2 = "unionalias_2".fk_2)', $result); + assertEqualsH2Compatible( + 'select "unionBase"."X0pk_X1pk_X2pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk" as "y_pk", "unionalias_2"."Z0pk_Z1pk_Z2pk" as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk1_1, null as fk1_2 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, "root".fk as fk_1, null as fk_2, "a_0".fk1 as fk1_1, null as fk1_2 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk1_1, "c_0".fk1 as fk1_2 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= \'2018-01-01\' and "b_0".thru_z > \'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= \'2018-01-01\' and "c_1".thru_z > \'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".fk as fk_0, null as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, null as fk1_2 from Y0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as fk_0, "root".fk as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", "g_0".fk1 as fk1_1, null as fk1_2 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= \'2018-01-01\' and "g_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as fk_0, null as fk_1, "root".fk as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, "i_0".fk1 as fk1_2 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= \'2018-01-01\' and "h_0".thru_z > \'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= \'2018-01-01\' and "i_1".thru_z > \'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2") <= \'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") > \'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") is null)) left outer join (select "unionalias_3".fk_0 as fk_0, "unionalias_3".fk_1 as fk_1, "unionalias_3".fk_2 as fk_2, "unionalias_3"."Z0pk_Z1pk_Z2pk" as "Z0pk_Z1pk_Z2pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".fk as fk_0, null as fk_1, null as fk_2, "root".pk as "Z0pk_Z1pk_Z2pk" from Z0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as fk_0, "root".fk as fk_1, null as fk_2, "root".pk as "Z0pk_Z1pk_Z2pk" from Z1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as fk_0, null as fk_1, "root".fk as fk_2, "root".pk as "Z0pk_Z1pk_Z2pk" from Z2 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_3" where (coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2") <= \'2018-01-01\' and coalesce("unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2") > \'2018-01-01\') or coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2", "unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2") is null) as "unionalias_2" on ("unionalias_1".fk_0 = "unionalias_2".fk_0 or "unionalias_1".fk1_1 = "unionalias_2".fk_1 or "unionalias_1".fk1_2 = "unionalias_2".fk_2)', + 'select "unionBase"."X0pk_X1pk_X2pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk" as "y_pk", "unionalias_2"."Z0pk_Z1pk_Z2pk" as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk1_1, null as fk1_2 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, "root".fk as fk_1, null as fk_2, "a_0".fk1 as fk1_1, null as fk1_2 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk1_1, "c_0".fk1 as fk1_2 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= DATE\'2018-01-01\' and "b_0".thru_z > DATE\'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= DATE\'2018-01-01\' and "c_1".thru_z > DATE\'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".fk as fk_0, null as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, null as fk1_2 from Y0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as fk_0, "root".fk as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", "g_0".fk1 as fk1_1, null as fk1_2 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= DATE\'2018-01-01\' and "g_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as fk_0, null as fk_1, "root".fk as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, "i_0".fk1 as fk1_2 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= DATE\'2018-01-01\' and "h_0".thru_z > DATE\'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= DATE\'2018-01-01\' and "i_1".thru_z > DATE\'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2") <= DATE\'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") > DATE\'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") is null)) left outer join (select "unionalias_3".fk_0 as fk_0, "unionalias_3".fk_1 as fk_1, "unionalias_3".fk_2 as fk_2, "unionalias_3"."Z0pk_Z1pk_Z2pk" as "Z0pk_Z1pk_Z2pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".fk as fk_0, null as fk_1, null as fk_2, "root".pk as "Z0pk_Z1pk_Z2pk" from Z0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as fk_0, "root".fk as fk_1, null as fk_2, "root".pk as "Z0pk_Z1pk_Z2pk" from Z1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as fk_0, null as fk_1, "root".fk as fk_2, "root".pk as "Z0pk_Z1pk_Z2pk" from Z2 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_3" where (coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2") <= DATE\'2018-01-01\' and coalesce("unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2") > DATE\'2018-01-01\') or coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2", "unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2") is null) as "unionalias_2" on ("unionalias_1".fk_0 = "unionalias_2".fk_0 or "unionalias_1".fk1_1 = "unionalias_2".fk_1 or "unionalias_1".fk1_2 = "unionalias_2".fk_2)', + $result->sqlRemoveFormatting() + ); assertEquals([10, 11, 12], $result.values.rows.get('x_pk')); assertEquals([20, 21, 22], $result.values.rows.get('y_pk')); assertEquals([30, 31, 32], $result.values.rows.get('z_pk')); @@ -39,7 +49,11 @@ function <> meta::relational::tests::mapping::union::multipleChainedJ function <> meta::relational::tests::mapping::union::multipleChainedJoins::testUnionWithChainedJoinsAcross4SetsV1():Boolean[1] { let result = execute(|X.all(%2018-1-1)->project([x|$x.pk, x|$x.y.pk, x|$x.y.z.pk],['x_pk', 'y_pk', 'z_pk']), multipleChainedJoinsMappingWithUnionAcross4SetsV1, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "unionBase"."X0pk_X1pk_X2pk_X3pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk_Y3pk" as "y_pk", "unionalias_2"."Z0pk_Z1pk_Z2pk_Z3pk" as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, null as fk1_1, null as fk1_2, null as fk1_3 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "a_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, null as fk1_1, "c_0".fk1 as fk1_2, null as fk1_3 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= \'2018-01-01\' and "b_0".thru_z > \'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= \'2018-01-01\' and "c_1".thru_z > \'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, null as fk1_1, null as fk1_2, "f_0".fk1 as fk1_3 from X3 as "root" left outer join D as "d_0" on ("root".fk = "d_0".fk0 and "d_0".from_z <= \'2018-01-01\' and "d_0".thru_z > \'2018-01-01\') left outer join (select "e_1".fk0 as fk0, "e_1".fk1 from E as "e_1" where "e_1".from_z <= \'2018-01-01\' and "e_1".thru_z > \'2018-01-01\') as "e_0" on ("d_0".fk1 = "e_0".fk0) left outer join (select "f_1".fk1 as fk1, "f_1".fk0 as fk0 from F as "f_1" where "f_1".from_z <= \'2018-01-01\' and "f_1".thru_z > \'2018-01-01\') as "f_0" on ("e_0".fk1 = "f_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, null as fk1_3 from Y0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", "g_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= \'2018-01-01\' and "g_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, "i_0".fk1 as fk1_2, null as fk1_3 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= \'2018-01-01\' and "h_0".thru_z > \'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= \'2018-01-01\' and "i_1".thru_z > \'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, "l_0".fk1 as fk1_3 from Y3 as "root" left outer join J as "j_0" on ("root".fk = "j_0".fk0 and "j_0".from_z <= \'2018-01-01\' and "j_0".thru_z > \'2018-01-01\') left outer join (select "k_1".fk0 as fk0, "k_1".fk1 from K as "k_1" where "k_1".from_z <= \'2018-01-01\' and "k_1".thru_z > \'2018-01-01\') as "k_0" on ("j_0".fk1 = "k_0".fk0) left outer join (select "l_1".fk1 as fk1, "l_1".fk0 as fk0 from L as "l_1" where "l_1".from_z <= \'2018-01-01\' and "l_1".thru_z > \'2018-01-01\') as "l_0" on ("k_0".fk1 = "l_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2 or "unionBase".fk1_3 = "unionalias_1".fk_3) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3") <= \'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") > \'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") is null)) left outer join (select "unionalias_3".fk_0 as fk_0, "unionalias_3".fk_1 as fk_1, "unionalias_3".fk_2 as fk_2, "unionalias_3".fk_3 as fk_3, "unionalias_3"."Z0pk_Z1pk_Z2pk_Z3pk" as "Z0pk_Z1pk_Z2pk_Z3pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z2 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z3 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_3" where (coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2", "unionalias_3"."from_z_3") <= \'2018-01-01\' and coalesce("unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2", "unionalias_3"."thru_z_3") > \'2018-01-01\') or coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2", "unionalias_3"."from_z_3", "unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2", "unionalias_3"."thru_z_3") is null) as "unionalias_2" on ("unionalias_1".fk_0 = "unionalias_2".fk_0 or "unionalias_1".fk1_1 = "unionalias_2".fk_1 or "unionalias_1".fk1_2 = "unionalias_2".fk_2 or "unionalias_1".fk1_3 = "unionalias_2".fk_3)', $result); + assertEqualsH2Compatible( + 'select "unionBase"."X0pk_X1pk_X2pk_X3pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk_Y3pk" as "y_pk", "unionalias_2"."Z0pk_Z1pk_Z2pk_Z3pk" as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, null as fk1_1, null as fk1_2, null as fk1_3 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "a_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, null as fk1_1, "c_0".fk1 as fk1_2, null as fk1_3 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= \'2018-01-01\' and "b_0".thru_z > \'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= \'2018-01-01\' and "c_1".thru_z > \'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, null as fk1_1, null as fk1_2, "f_0".fk1 as fk1_3 from X3 as "root" left outer join D as "d_0" on ("root".fk = "d_0".fk0 and "d_0".from_z <= \'2018-01-01\' and "d_0".thru_z > \'2018-01-01\') left outer join (select "e_1".fk0 as fk0, "e_1".fk1 from E as "e_1" where "e_1".from_z <= \'2018-01-01\' and "e_1".thru_z > \'2018-01-01\') as "e_0" on ("d_0".fk1 = "e_0".fk0) left outer join (select "f_1".fk1 as fk1, "f_1".fk0 as fk0 from F as "f_1" where "f_1".from_z <= \'2018-01-01\' and "f_1".thru_z > \'2018-01-01\') as "f_0" on ("e_0".fk1 = "f_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, null as fk1_3 from Y0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", "g_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= \'2018-01-01\' and "g_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, "i_0".fk1 as fk1_2, null as fk1_3 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= \'2018-01-01\' and "h_0".thru_z > \'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= \'2018-01-01\' and "i_1".thru_z > \'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, "l_0".fk1 as fk1_3 from Y3 as "root" left outer join J as "j_0" on ("root".fk = "j_0".fk0 and "j_0".from_z <= \'2018-01-01\' and "j_0".thru_z > \'2018-01-01\') left outer join (select "k_1".fk0 as fk0, "k_1".fk1 from K as "k_1" where "k_1".from_z <= \'2018-01-01\' and "k_1".thru_z > \'2018-01-01\') as "k_0" on ("j_0".fk1 = "k_0".fk0) left outer join (select "l_1".fk1 as fk1, "l_1".fk0 as fk0 from L as "l_1" where "l_1".from_z <= \'2018-01-01\' and "l_1".thru_z > \'2018-01-01\') as "l_0" on ("k_0".fk1 = "l_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2 or "unionBase".fk1_3 = "unionalias_1".fk_3) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3") <= \'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") > \'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") is null)) left outer join (select "unionalias_3".fk_0 as fk_0, "unionalias_3".fk_1 as fk_1, "unionalias_3".fk_2 as fk_2, "unionalias_3".fk_3 as fk_3, "unionalias_3"."Z0pk_Z1pk_Z2pk_Z3pk" as "Z0pk_Z1pk_Z2pk_Z3pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z2 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z3 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_3" where (coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2", "unionalias_3"."from_z_3") <= \'2018-01-01\' and coalesce("unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2", "unionalias_3"."thru_z_3") > \'2018-01-01\') or coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2", "unionalias_3"."from_z_3", "unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2", "unionalias_3"."thru_z_3") is null) as "unionalias_2" on ("unionalias_1".fk_0 = "unionalias_2".fk_0 or "unionalias_1".fk1_1 = "unionalias_2".fk_1 or "unionalias_1".fk1_2 = "unionalias_2".fk_2 or "unionalias_1".fk1_3 = "unionalias_2".fk_3)', + 'select "unionBase"."X0pk_X1pk_X2pk_X3pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk_Y3pk" as "y_pk", "unionalias_2"."Z0pk_Z1pk_Z2pk_Z3pk" as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, null as fk1_1, null as fk1_2, null as fk1_3 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "a_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, null as fk1_1, "c_0".fk1 as fk1_2, null as fk1_3 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= DATE\'2018-01-01\' and "b_0".thru_z > DATE\'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= DATE\'2018-01-01\' and "c_1".thru_z > DATE\'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, null as fk1_1, null as fk1_2, "f_0".fk1 as fk1_3 from X3 as "root" left outer join D as "d_0" on ("root".fk = "d_0".fk0 and "d_0".from_z <= DATE\'2018-01-01\' and "d_0".thru_z > DATE\'2018-01-01\') left outer join (select "e_1".fk0 as fk0, "e_1".fk1 from E as "e_1" where "e_1".from_z <= DATE\'2018-01-01\' and "e_1".thru_z > DATE\'2018-01-01\') as "e_0" on ("d_0".fk1 = "e_0".fk0) left outer join (select "f_1".fk1 as fk1, "f_1".fk0 as fk0 from F as "f_1" where "f_1".from_z <= DATE\'2018-01-01\' and "f_1".thru_z > DATE\'2018-01-01\') as "f_0" on ("e_0".fk1 = "f_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, null as fk1_3 from Y0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", "g_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= DATE\'2018-01-01\' and "g_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, "i_0".fk1 as fk1_2, null as fk1_3 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= DATE\'2018-01-01\' and "h_0".thru_z > DATE\'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= DATE\'2018-01-01\' and "i_1".thru_z > DATE\'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, "l_0".fk1 as fk1_3 from Y3 as "root" left outer join J as "j_0" on ("root".fk = "j_0".fk0 and "j_0".from_z <= DATE\'2018-01-01\' and "j_0".thru_z > DATE\'2018-01-01\') left outer join (select "k_1".fk0 as fk0, "k_1".fk1 from K as "k_1" where "k_1".from_z <= DATE\'2018-01-01\' and "k_1".thru_z > DATE\'2018-01-01\') as "k_0" on ("j_0".fk1 = "k_0".fk0) left outer join (select "l_1".fk1 as fk1, "l_1".fk0 as fk0 from L as "l_1" where "l_1".from_z <= DATE\'2018-01-01\' and "l_1".thru_z > DATE\'2018-01-01\') as "l_0" on ("k_0".fk1 = "l_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2 or "unionBase".fk1_3 = "unionalias_1".fk_3) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3") <= DATE\'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") > DATE\'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") is null)) left outer join (select "unionalias_3".fk_0 as fk_0, "unionalias_3".fk_1 as fk_1, "unionalias_3".fk_2 as fk_2, "unionalias_3".fk_3 as fk_3, "unionalias_3"."Z0pk_Z1pk_Z2pk_Z3pk" as "Z0pk_Z1pk_Z2pk_Z3pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z2 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z3 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_3" where (coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2", "unionalias_3"."from_z_3") <= DATE\'2018-01-01\' and coalesce("unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2", "unionalias_3"."thru_z_3") > DATE\'2018-01-01\') or coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2", "unionalias_3"."from_z_3", "unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2", "unionalias_3"."thru_z_3") is null) as "unionalias_2" on ("unionalias_1".fk_0 = "unionalias_2".fk_0 or "unionalias_1".fk1_1 = "unionalias_2".fk_1 or "unionalias_1".fk1_2 = "unionalias_2".fk_2 or "unionalias_1".fk1_3 = "unionalias_2".fk_3)', + $result->sqlRemoveFormatting() + ); assertEquals([10, 11, 12, 13], $result.values.rows.get('x_pk')); assertEquals([20, 21, 22, 23], $result.values.rows.get('y_pk')); assertEquals([30, 31, 32, 33], $result.values.rows.get('z_pk')); @@ -48,7 +62,11 @@ function <> meta::relational::tests::mapping::union::multipleChainedJ function <> meta::relational::tests::mapping::union::multipleChainedJoins::testUnionWithChainedJoinsAcross2SetsV2():Boolean[1] { let result = execute(|X.all(%2018-1-1)->project([x|$x.pk, x|$x.y.pk, x|$x.y.z.pk],['x_pk', 'y_pk', 'z_pk']), multipleChainedJoinsMappingWithUnionAcross2SetsV2, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "unionBase"."X0pk_X1pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk" as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as "pk_0_0", null as "pk_0_1", "root".pk as "X0pk_X1pk", "root".fk as fk_0, null as fk_1 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "pk_0_0", "root".pk as "pk_0_1", "root".pk as "X0pk_X1pk", null as fk_0, "root".fk as fk_1 from X1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join A as "a_0" on ("unionBase".fk_1 = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') left outer join (select "unionalias_2".fk_1 as fk_1, "unionalias_2".fk_0 as fk_0, "unionalias_2"."Y0pk_Y1pk" as "Y0pk_Y1pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".fk as fk_0, null as fk_1, "root".pk as "Y0pk_Y1pk" from Y0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as fk_0, "root".fk as fk_1, "root".pk as "Y0pk_Y1pk" from Y1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_2" where (coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1") <= \'2018-01-01\' and coalesce("unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") > \'2018-01-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1", "unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") is null) as "unionalias_1" on ("a_0".fk1 = "unionalias_1".fk_1 or "unionBase".fk_0 = "unionalias_1".fk_0) left outer join (select "g_1".fk0 as fk0, "g_1".fk1 from G as "g_1" where "g_1".from_z <= \'2018-01-01\' and "g_1".thru_z > \'2018-01-01\') as "g_0" on ("unionalias_1".fk_1 = "g_0".fk0) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= \'2018-01-01\' and "z0_1".thru_z > \'2018-01-01\') as "z0_0" on ("g_0".fk1 = "z0_0".fk or "unionalias_1".fk_0 = "z0_0".fk)', $result); + assertEqualsH2Compatible( + 'select "unionBase"."X0pk_X1pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk" as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as "pk_0_0", null as "pk_0_1", "root".pk as "X0pk_X1pk", "root".fk as fk_0, null as fk_1 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "pk_0_0", "root".pk as "pk_0_1", "root".pk as "X0pk_X1pk", null as fk_0, "root".fk as fk_1 from X1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join A as "a_0" on ("unionBase".fk_1 = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') left outer join (select "unionalias_2".fk_1 as fk_1, "unionalias_2".fk_0 as fk_0, "unionalias_2"."Y0pk_Y1pk" as "Y0pk_Y1pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".fk as fk_0, null as fk_1, "root".pk as "Y0pk_Y1pk" from Y0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as fk_0, "root".fk as fk_1, "root".pk as "Y0pk_Y1pk" from Y1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_2" where (coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1") <= \'2018-01-01\' and coalesce("unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") > \'2018-01-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1", "unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") is null) as "unionalias_1" on ("a_0".fk1 = "unionalias_1".fk_1 or "unionBase".fk_0 = "unionalias_1".fk_0) left outer join (select "g_1".fk0 as fk0, "g_1".fk1 from G as "g_1" where "g_1".from_z <= \'2018-01-01\' and "g_1".thru_z > \'2018-01-01\') as "g_0" on ("unionalias_1".fk_1 = "g_0".fk0) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= \'2018-01-01\' and "z0_1".thru_z > \'2018-01-01\') as "z0_0" on ("g_0".fk1 = "z0_0".fk or "unionalias_1".fk_0 = "z0_0".fk)', + 'select "unionBase"."X0pk_X1pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk" as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as "pk_0_0", null as "pk_0_1", "root".pk as "X0pk_X1pk", "root".fk as fk_0, null as fk_1 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "pk_0_0", "root".pk as "pk_0_1", "root".pk as "X0pk_X1pk", null as fk_0, "root".fk as fk_1 from X1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join A as "a_0" on ("unionBase".fk_1 = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') left outer join (select "unionalias_2".fk_1 as fk_1, "unionalias_2".fk_0 as fk_0, "unionalias_2"."Y0pk_Y1pk" as "Y0pk_Y1pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".fk as fk_0, null as fk_1, "root".pk as "Y0pk_Y1pk" from Y0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as fk_0, "root".fk as fk_1, "root".pk as "Y0pk_Y1pk" from Y1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_2" where (coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1") <= DATE\'2018-01-01\' and coalesce("unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") > DATE\'2018-01-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1", "unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") is null) as "unionalias_1" on ("a_0".fk1 = "unionalias_1".fk_1 or "unionBase".fk_0 = "unionalias_1".fk_0) left outer join (select "g_1".fk0 as fk0, "g_1".fk1 from G as "g_1" where "g_1".from_z <= DATE\'2018-01-01\' and "g_1".thru_z > DATE\'2018-01-01\') as "g_0" on ("unionalias_1".fk_1 = "g_0".fk0) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= DATE\'2018-01-01\' and "z0_1".thru_z > DATE\'2018-01-01\') as "z0_0" on ("g_0".fk1 = "z0_0".fk or "unionalias_1".fk_0 = "z0_0".fk)', + $result->sqlRemoveFormatting() + ); assertEquals([10, 11], $result.values.rows.get('x_pk')); assertEquals([20, 21], $result.values.rows.get('y_pk')); assertEquals([30, 30], $result.values.rows.get('z_pk')); @@ -57,7 +75,11 @@ function <> meta::relational::tests::mapping::union::multipleChainedJ function <> meta::relational::tests::mapping::union::multipleChainedJoins::testUnionWithChainedJoinsAcross3SetsV2():Boolean[1] { let result = execute(|X.all(%2018-1-1)->project([x|$x.pk, x|$x.y.pk, x|$x.y.z.pk],['x_pk', 'y_pk', 'z_pk']), multipleChainedJoinsMappingWithUnionAcross3SetsV2, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "unionBase"."X0pk_X1pk_X2pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk" as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk1_1, null as fk1_2 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, "root".fk as fk_1, null as fk_2, "a_0".fk1 as fk1_1, null as fk1_2 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk1_1, "c_0".fk1 as fk1_2 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= \'2018-01-01\' and "b_0".thru_z > \'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= \'2018-01-01\' and "c_1".thru_z > \'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".fk as fk_0, null as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, null as fk1_2 from Y0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as fk_0, "root".fk as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", "g_0".fk1 as fk1_1, null as fk1_2 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= \'2018-01-01\' and "g_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as fk_0, null as fk_1, "root".fk as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, "i_0".fk1 as fk1_2 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= \'2018-01-01\' and "h_0".thru_z > \'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= \'2018-01-01\' and "i_1".thru_z > \'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2") <= \'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") > \'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") is null)) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= \'2018-01-01\' and "z0_1".thru_z > \'2018-01-01\') as "z0_0" on ("unionalias_1".fk_0 = "z0_0".fk or "unionalias_1".fk1_1 = "z0_0".fk or "unionalias_1".fk1_2 = "z0_0".fk)', $result); + assertEqualsH2Compatible( + 'select "unionBase"."X0pk_X1pk_X2pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk" as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk1_1, null as fk1_2 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, "root".fk as fk_1, null as fk_2, "a_0".fk1 as fk1_1, null as fk1_2 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk1_1, "c_0".fk1 as fk1_2 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= \'2018-01-01\' and "b_0".thru_z > \'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= \'2018-01-01\' and "c_1".thru_z > \'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".fk as fk_0, null as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, null as fk1_2 from Y0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as fk_0, "root".fk as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", "g_0".fk1 as fk1_1, null as fk1_2 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= \'2018-01-01\' and "g_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as fk_0, null as fk_1, "root".fk as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, "i_0".fk1 as fk1_2 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= \'2018-01-01\' and "h_0".thru_z > \'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= \'2018-01-01\' and "i_1".thru_z > \'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2") <= \'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") > \'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") is null)) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= \'2018-01-01\' and "z0_1".thru_z > \'2018-01-01\') as "z0_0" on ("unionalias_1".fk_0 = "z0_0".fk or "unionalias_1".fk1_1 = "z0_0".fk or "unionalias_1".fk1_2 = "z0_0".fk)', + 'select "unionBase"."X0pk_X1pk_X2pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk" as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk1_1, null as fk1_2 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, "root".fk as fk_1, null as fk_2, "a_0".fk1 as fk1_1, null as fk1_2 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk1_1, "c_0".fk1 as fk1_2 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= DATE\'2018-01-01\' and "b_0".thru_z > DATE\'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= DATE\'2018-01-01\' and "c_1".thru_z > DATE\'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".fk as fk_0, null as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, null as fk1_2 from Y0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as fk_0, "root".fk as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", "g_0".fk1 as fk1_1, null as fk1_2 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= DATE\'2018-01-01\' and "g_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as fk_0, null as fk_1, "root".fk as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, "i_0".fk1 as fk1_2 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= DATE\'2018-01-01\' and "h_0".thru_z > DATE\'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= DATE\'2018-01-01\' and "i_1".thru_z > DATE\'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2") <= DATE\'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") > DATE\'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") is null)) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= DATE\'2018-01-01\' and "z0_1".thru_z > DATE\'2018-01-01\') as "z0_0" on ("unionalias_1".fk_0 = "z0_0".fk or "unionalias_1".fk1_1 = "z0_0".fk or "unionalias_1".fk1_2 = "z0_0".fk)', + $result->sqlRemoveFormatting() + ); assertEquals([10, 11, 12], $result.values.rows.get('x_pk')); assertEquals([20, 21, 22], $result.values.rows.get('y_pk')); assertEquals([30, 30, 30], $result.values.rows.get('z_pk')); @@ -66,7 +88,11 @@ function <> meta::relational::tests::mapping::union::multipleChainedJ function <> meta::relational::tests::mapping::union::multipleChainedJoins::testUnionWithChainedJoinsAcross4SetsV2():Boolean[1] { let result = execute(|X.all(%2018-1-1)->project([x|$x.pk, x|$x.y.pk, x|$x.y.z.pk],['x_pk', 'y_pk', 'z_pk']), multipleChainedJoinsMappingWithUnionAcross4SetsV2, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "unionBase"."X0pk_X1pk_X2pk_X3pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk_Y3pk" as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, null as fk1_1, null as fk1_2, null as fk1_3 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "a_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, null as fk1_1, "c_0".fk1 as fk1_2, null as fk1_3 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= \'2018-01-01\' and "b_0".thru_z > \'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= \'2018-01-01\' and "c_1".thru_z > \'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, null as fk1_1, null as fk1_2, "f_0".fk1 as fk1_3 from X3 as "root" left outer join D as "d_0" on ("root".fk = "d_0".fk0 and "d_0".from_z <= \'2018-01-01\' and "d_0".thru_z > \'2018-01-01\') left outer join (select "e_1".fk0 as fk0, "e_1".fk1 from E as "e_1" where "e_1".from_z <= \'2018-01-01\' and "e_1".thru_z > \'2018-01-01\') as "e_0" on ("d_0".fk1 = "e_0".fk0) left outer join (select "f_1".fk1 as fk1, "f_1".fk0 as fk0 from F as "f_1" where "f_1".from_z <= \'2018-01-01\' and "f_1".thru_z > \'2018-01-01\') as "f_0" on ("e_0".fk1 = "f_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, null as fk1_3 from Y0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", "g_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= \'2018-01-01\' and "g_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, "i_0".fk1 as fk1_2, null as fk1_3 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= \'2018-01-01\' and "h_0".thru_z > \'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= \'2018-01-01\' and "i_1".thru_z > \'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, "l_0".fk1 as fk1_3 from Y3 as "root" left outer join J as "j_0" on ("root".fk = "j_0".fk0 and "j_0".from_z <= \'2018-01-01\' and "j_0".thru_z > \'2018-01-01\') left outer join (select "k_1".fk0 as fk0, "k_1".fk1 from K as "k_1" where "k_1".from_z <= \'2018-01-01\' and "k_1".thru_z > \'2018-01-01\') as "k_0" on ("j_0".fk1 = "k_0".fk0) left outer join (select "l_1".fk1 as fk1, "l_1".fk0 as fk0 from L as "l_1" where "l_1".from_z <= \'2018-01-01\' and "l_1".thru_z > \'2018-01-01\') as "l_0" on ("k_0".fk1 = "l_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2 or "unionBase".fk1_3 = "unionalias_1".fk_3) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3") <= \'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") > \'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") is null)) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= \'2018-01-01\' and "z0_1".thru_z > \'2018-01-01\') as "z0_0" on ("unionalias_1".fk_0 = "z0_0".fk or "unionalias_1".fk1_1 = "z0_0".fk or "unionalias_1".fk1_2 = "z0_0".fk or "unionalias_1".fk1_3 = "z0_0".fk)', $result); + assertEqualsH2Compatible( + 'select "unionBase"."X0pk_X1pk_X2pk_X3pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk_Y3pk" as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, null as fk1_1, null as fk1_2, null as fk1_3 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "a_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, null as fk1_1, "c_0".fk1 as fk1_2, null as fk1_3 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= \'2018-01-01\' and "b_0".thru_z > \'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= \'2018-01-01\' and "c_1".thru_z > \'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, null as fk1_1, null as fk1_2, "f_0".fk1 as fk1_3 from X3 as "root" left outer join D as "d_0" on ("root".fk = "d_0".fk0 and "d_0".from_z <= \'2018-01-01\' and "d_0".thru_z > \'2018-01-01\') left outer join (select "e_1".fk0 as fk0, "e_1".fk1 from E as "e_1" where "e_1".from_z <= \'2018-01-01\' and "e_1".thru_z > \'2018-01-01\') as "e_0" on ("d_0".fk1 = "e_0".fk0) left outer join (select "f_1".fk1 as fk1, "f_1".fk0 as fk0 from F as "f_1" where "f_1".from_z <= \'2018-01-01\' and "f_1".thru_z > \'2018-01-01\') as "f_0" on ("e_0".fk1 = "f_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, null as fk1_3 from Y0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", "g_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= \'2018-01-01\' and "g_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, "i_0".fk1 as fk1_2, null as fk1_3 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= \'2018-01-01\' and "h_0".thru_z > \'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= \'2018-01-01\' and "i_1".thru_z > \'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, "l_0".fk1 as fk1_3 from Y3 as "root" left outer join J as "j_0" on ("root".fk = "j_0".fk0 and "j_0".from_z <= \'2018-01-01\' and "j_0".thru_z > \'2018-01-01\') left outer join (select "k_1".fk0 as fk0, "k_1".fk1 from K as "k_1" where "k_1".from_z <= \'2018-01-01\' and "k_1".thru_z > \'2018-01-01\') as "k_0" on ("j_0".fk1 = "k_0".fk0) left outer join (select "l_1".fk1 as fk1, "l_1".fk0 as fk0 from L as "l_1" where "l_1".from_z <= \'2018-01-01\' and "l_1".thru_z > \'2018-01-01\') as "l_0" on ("k_0".fk1 = "l_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2 or "unionBase".fk1_3 = "unionalias_1".fk_3) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3") <= \'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") > \'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") is null)) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= \'2018-01-01\' and "z0_1".thru_z > \'2018-01-01\') as "z0_0" on ("unionalias_1".fk_0 = "z0_0".fk or "unionalias_1".fk1_1 = "z0_0".fk or "unionalias_1".fk1_2 = "z0_0".fk or "unionalias_1".fk1_3 = "z0_0".fk)', + 'select "unionBase"."X0pk_X1pk_X2pk_X3pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk_Y3pk" as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, null as fk1_1, null as fk1_2, null as fk1_3 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "a_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, null as fk1_1, "c_0".fk1 as fk1_2, null as fk1_3 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= DATE\'2018-01-01\' and "b_0".thru_z > DATE\'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= DATE\'2018-01-01\' and "c_1".thru_z > DATE\'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, null as fk1_1, null as fk1_2, "f_0".fk1 as fk1_3 from X3 as "root" left outer join D as "d_0" on ("root".fk = "d_0".fk0 and "d_0".from_z <= DATE\'2018-01-01\' and "d_0".thru_z > DATE\'2018-01-01\') left outer join (select "e_1".fk0 as fk0, "e_1".fk1 from E as "e_1" where "e_1".from_z <= DATE\'2018-01-01\' and "e_1".thru_z > DATE\'2018-01-01\') as "e_0" on ("d_0".fk1 = "e_0".fk0) left outer join (select "f_1".fk1 as fk1, "f_1".fk0 as fk0 from F as "f_1" where "f_1".from_z <= DATE\'2018-01-01\' and "f_1".thru_z > DATE\'2018-01-01\') as "f_0" on ("e_0".fk1 = "f_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, null as fk1_3 from Y0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", "g_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= DATE\'2018-01-01\' and "g_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, "i_0".fk1 as fk1_2, null as fk1_3 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= DATE\'2018-01-01\' and "h_0".thru_z > DATE\'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= DATE\'2018-01-01\' and "i_1".thru_z > DATE\'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, "l_0".fk1 as fk1_3 from Y3 as "root" left outer join J as "j_0" on ("root".fk = "j_0".fk0 and "j_0".from_z <= DATE\'2018-01-01\' and "j_0".thru_z > DATE\'2018-01-01\') left outer join (select "k_1".fk0 as fk0, "k_1".fk1 from K as "k_1" where "k_1".from_z <= DATE\'2018-01-01\' and "k_1".thru_z > DATE\'2018-01-01\') as "k_0" on ("j_0".fk1 = "k_0".fk0) left outer join (select "l_1".fk1 as fk1, "l_1".fk0 as fk0 from L as "l_1" where "l_1".from_z <= DATE\'2018-01-01\' and "l_1".thru_z > DATE\'2018-01-01\') as "l_0" on ("k_0".fk1 = "l_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2 or "unionBase".fk1_3 = "unionalias_1".fk_3) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3") <= DATE\'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") > DATE\'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") is null)) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= DATE\'2018-01-01\' and "z0_1".thru_z > DATE\'2018-01-01\') as "z0_0" on ("unionalias_1".fk_0 = "z0_0".fk or "unionalias_1".fk1_1 = "z0_0".fk or "unionalias_1".fk1_2 = "z0_0".fk or "unionalias_1".fk1_3 = "z0_0".fk)', + $result->sqlRemoveFormatting() + ); assertEquals([10, 11, 12, 13], $result.values.rows.get('x_pk')); assertEquals([20, 21, 22, 23], $result.values.rows.get('y_pk')); assertEquals([30, 30, 30, 30], $result.values.rows.get('z_pk')); @@ -75,7 +101,11 @@ function <> meta::relational::tests::mapping::union::multipleChainedJ function <> meta::relational::tests::mapping::union::multipleChainedJoins::testUnionWithChainedJoinsAcross2SetsV3():Boolean[1] { let result = execute(|X.all(%2018-1-1)->project([x|$x.pk, x|$x.y.pk, x|$x.y.z.pk],['x_pk', 'y_pk', 'z_pk']), multipleChainedJoinsMappingWithUnionAcross2SetsV3, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "unionBase"."X0pk_X1pk" as "x_pk", "y0_0".pk as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as "pk_0_0", null as "pk_0_1", "root".pk as "X0pk_X1pk", "root".fk as fk_0, null as fk_1 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "pk_0_0", "root".pk as "pk_0_1", "root".pk as "X0pk_X1pk", null as fk_0, "root".fk as fk_1 from X1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join A as "a_0" on ("unionBase".fk_1 = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') left outer join (select "y0_1".fk as fk, "y0_1".pk as pk from Y0 as "y0_1" where "y0_1".from_z <= \'2018-01-01\' and "y0_1".thru_z > \'2018-01-01\') as "y0_0" on ("a_0".fk1 = "y0_0".fk or "unionBase".fk_0 = "y0_0".fk) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= \'2018-01-01\' and "z0_1".thru_z > \'2018-01-01\') as "z0_0" on ("y0_0".fk = "z0_0".fk)', $result); + assertEqualsH2Compatible( + 'select "unionBase"."X0pk_X1pk" as "x_pk", "y0_0".pk as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as "pk_0_0", null as "pk_0_1", "root".pk as "X0pk_X1pk", "root".fk as fk_0, null as fk_1 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "pk_0_0", "root".pk as "pk_0_1", "root".pk as "X0pk_X1pk", null as fk_0, "root".fk as fk_1 from X1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join A as "a_0" on ("unionBase".fk_1 = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') left outer join (select "y0_1".fk as fk, "y0_1".pk as pk from Y0 as "y0_1" where "y0_1".from_z <= \'2018-01-01\' and "y0_1".thru_z > \'2018-01-01\') as "y0_0" on ("a_0".fk1 = "y0_0".fk or "unionBase".fk_0 = "y0_0".fk) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= \'2018-01-01\' and "z0_1".thru_z > \'2018-01-01\') as "z0_0" on ("y0_0".fk = "z0_0".fk)', + 'select "unionBase"."X0pk_X1pk" as "x_pk", "y0_0".pk as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as "pk_0_0", null as "pk_0_1", "root".pk as "X0pk_X1pk", "root".fk as fk_0, null as fk_1 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "pk_0_0", "root".pk as "pk_0_1", "root".pk as "X0pk_X1pk", null as fk_0, "root".fk as fk_1 from X1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join A as "a_0" on ("unionBase".fk_1 = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') left outer join (select "y0_1".fk as fk, "y0_1".pk as pk from Y0 as "y0_1" where "y0_1".from_z <= DATE\'2018-01-01\' and "y0_1".thru_z > DATE\'2018-01-01\') as "y0_0" on ("a_0".fk1 = "y0_0".fk or "unionBase".fk_0 = "y0_0".fk) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= DATE\'2018-01-01\' and "z0_1".thru_z > DATE\'2018-01-01\') as "z0_0" on ("y0_0".fk = "z0_0".fk)', + $result->sqlRemoveFormatting() + ); assertEquals([10, 11], $result.values.rows.get('x_pk')); assertEquals([20, 20], $result.values.rows.get('y_pk')); assertEquals([30, 30], $result.values.rows.get('z_pk')); @@ -84,7 +114,11 @@ function <> meta::relational::tests::mapping::union::multipleChainedJ function <> meta::relational::tests::mapping::union::multipleChainedJoins::testUnionWithChainedJoinsAcross3SetsV3():Boolean[1] { let result = execute(|X.all(%2018-1-1)->project([x|$x.pk, x|$x.y.pk, x|$x.y.z.pk],['x_pk', 'y_pk', 'z_pk']), multipleChainedJoinsMappingWithUnionAcross3SetsV3, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "unionBase"."X0pk_X1pk_X2pk" as "x_pk", "y0_0".pk as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk1_1, null as fk1_2 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, "root".fk as fk_1, null as fk_2, "a_0".fk1 as fk1_1, null as fk1_2 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk1_1, "c_0".fk1 as fk1_2 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= \'2018-01-01\' and "b_0".thru_z > \'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= \'2018-01-01\' and "c_1".thru_z > \'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join Y0 as "y0_0" on (("unionBase".fk_0 = "y0_0".fk or "unionBase".fk1_1 = "y0_0".fk or "unionBase".fk1_2 = "y0_0".fk) and "y0_0".from_z <= \'2018-01-01\' and "y0_0".thru_z > \'2018-01-01\') left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= \'2018-01-01\' and "z0_1".thru_z > \'2018-01-01\') as "z0_0" on ("y0_0".fk = "z0_0".fk)', $result); + assertEqualsH2Compatible( + 'select "unionBase"."X0pk_X1pk_X2pk" as "x_pk", "y0_0".pk as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk1_1, null as fk1_2 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, "root".fk as fk_1, null as fk_2, "a_0".fk1 as fk1_1, null as fk1_2 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk1_1, "c_0".fk1 as fk1_2 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= \'2018-01-01\' and "b_0".thru_z > \'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= \'2018-01-01\' and "c_1".thru_z > \'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join Y0 as "y0_0" on (("unionBase".fk_0 = "y0_0".fk or "unionBase".fk1_1 = "y0_0".fk or "unionBase".fk1_2 = "y0_0".fk) and "y0_0".from_z <= \'2018-01-01\' and "y0_0".thru_z > \'2018-01-01\') left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= \'2018-01-01\' and "z0_1".thru_z > \'2018-01-01\') as "z0_0" on ("y0_0".fk = "z0_0".fk)', + 'select "unionBase"."X0pk_X1pk_X2pk" as "x_pk", "y0_0".pk as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk1_1, null as fk1_2 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, "root".fk as fk_1, null as fk_2, "a_0".fk1 as fk1_1, null as fk1_2 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk1_1, "c_0".fk1 as fk1_2 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= DATE\'2018-01-01\' and "b_0".thru_z > DATE\'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= DATE\'2018-01-01\' and "c_1".thru_z > DATE\'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join Y0 as "y0_0" on (("unionBase".fk_0 = "y0_0".fk or "unionBase".fk1_1 = "y0_0".fk or "unionBase".fk1_2 = "y0_0".fk) and "y0_0".from_z <= DATE\'2018-01-01\' and "y0_0".thru_z > DATE\'2018-01-01\') left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= DATE\'2018-01-01\' and "z0_1".thru_z > DATE\'2018-01-01\') as "z0_0" on ("y0_0".fk = "z0_0".fk)', + $result->sqlRemoveFormatting() + ); assertEquals([10, 11, 12], $result.values.rows.get('x_pk')); assertEquals([20, 20, 20], $result.values.rows.get('y_pk')); assertEquals([30, 30, 30], $result.values.rows.get('z_pk')); @@ -93,7 +127,11 @@ function <> meta::relational::tests::mapping::union::multipleChainedJ function <> meta::relational::tests::mapping::union::multipleChainedJoins::testUnionWithChainedJoinsAcross4SetsV3():Boolean[1] { let result = execute(|X.all(%2018-1-1)->project([x|$x.pk, x|$x.y.pk, x|$x.y.z.pk],['x_pk', 'y_pk', 'z_pk']), multipleChainedJoinsMappingWithUnionAcross4SetsV3, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "unionBase"."X0pk_X1pk_X2pk_X3pk" as "x_pk", "y0_0".pk as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, null as fk1_1, null as fk1_2, null as fk1_3 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "a_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, null as fk1_1, "c_0".fk1 as fk1_2, null as fk1_3 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= \'2018-01-01\' and "b_0".thru_z > \'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= \'2018-01-01\' and "c_1".thru_z > \'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, null as fk1_1, null as fk1_2, "f_0".fk1 as fk1_3 from X3 as "root" left outer join D as "d_0" on ("root".fk = "d_0".fk0 and "d_0".from_z <= \'2018-01-01\' and "d_0".thru_z > \'2018-01-01\') left outer join (select "e_1".fk0 as fk0, "e_1".fk1 from E as "e_1" where "e_1".from_z <= \'2018-01-01\' and "e_1".thru_z > \'2018-01-01\') as "e_0" on ("d_0".fk1 = "e_0".fk0) left outer join (select "f_1".fk1 as fk1, "f_1".fk0 as fk0 from F as "f_1" where "f_1".from_z <= \'2018-01-01\' and "f_1".thru_z > \'2018-01-01\') as "f_0" on ("e_0".fk1 = "f_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join Y0 as "y0_0" on (("unionBase".fk_0 = "y0_0".fk or "unionBase".fk1_1 = "y0_0".fk or "unionBase".fk1_2 = "y0_0".fk or "unionBase".fk1_3 = "y0_0".fk) and "y0_0".from_z <= \'2018-01-01\' and "y0_0".thru_z > \'2018-01-01\') left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= \'2018-01-01\' and "z0_1".thru_z > \'2018-01-01\') as "z0_0" on ("y0_0".fk = "z0_0".fk)', $result); + assertEqualsH2Compatible( + 'select "unionBase"."X0pk_X1pk_X2pk_X3pk" as "x_pk", "y0_0".pk as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, null as fk1_1, null as fk1_2, null as fk1_3 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "a_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, null as fk1_1, "c_0".fk1 as fk1_2, null as fk1_3 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= \'2018-01-01\' and "b_0".thru_z > \'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= \'2018-01-01\' and "c_1".thru_z > \'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, null as fk1_1, null as fk1_2, "f_0".fk1 as fk1_3 from X3 as "root" left outer join D as "d_0" on ("root".fk = "d_0".fk0 and "d_0".from_z <= \'2018-01-01\' and "d_0".thru_z > \'2018-01-01\') left outer join (select "e_1".fk0 as fk0, "e_1".fk1 from E as "e_1" where "e_1".from_z <= \'2018-01-01\' and "e_1".thru_z > \'2018-01-01\') as "e_0" on ("d_0".fk1 = "e_0".fk0) left outer join (select "f_1".fk1 as fk1, "f_1".fk0 as fk0 from F as "f_1" where "f_1".from_z <= \'2018-01-01\' and "f_1".thru_z > \'2018-01-01\') as "f_0" on ("e_0".fk1 = "f_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join Y0 as "y0_0" on (("unionBase".fk_0 = "y0_0".fk or "unionBase".fk1_1 = "y0_0".fk or "unionBase".fk1_2 = "y0_0".fk or "unionBase".fk1_3 = "y0_0".fk) and "y0_0".from_z <= \'2018-01-01\' and "y0_0".thru_z > \'2018-01-01\') left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= \'2018-01-01\' and "z0_1".thru_z > \'2018-01-01\') as "z0_0" on ("y0_0".fk = "z0_0".fk)', + 'select "unionBase"."X0pk_X1pk_X2pk_X3pk" as "x_pk", "y0_0".pk as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, null as fk1_1, null as fk1_2, null as fk1_3 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "a_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, null as fk1_1, "c_0".fk1 as fk1_2, null as fk1_3 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= DATE\'2018-01-01\' and "b_0".thru_z > DATE\'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= DATE\'2018-01-01\' and "c_1".thru_z > DATE\'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, null as fk1_1, null as fk1_2, "f_0".fk1 as fk1_3 from X3 as "root" left outer join D as "d_0" on ("root".fk = "d_0".fk0 and "d_0".from_z <= DATE\'2018-01-01\' and "d_0".thru_z > DATE\'2018-01-01\') left outer join (select "e_1".fk0 as fk0, "e_1".fk1 from E as "e_1" where "e_1".from_z <= DATE\'2018-01-01\' and "e_1".thru_z > DATE\'2018-01-01\') as "e_0" on ("d_0".fk1 = "e_0".fk0) left outer join (select "f_1".fk1 as fk1, "f_1".fk0 as fk0 from F as "f_1" where "f_1".from_z <= DATE\'2018-01-01\' and "f_1".thru_z > DATE\'2018-01-01\') as "f_0" on ("e_0".fk1 = "f_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join Y0 as "y0_0" on (("unionBase".fk_0 = "y0_0".fk or "unionBase".fk1_1 = "y0_0".fk or "unionBase".fk1_2 = "y0_0".fk or "unionBase".fk1_3 = "y0_0".fk) and "y0_0".from_z <= DATE\'2018-01-01\' and "y0_0".thru_z > DATE\'2018-01-01\') left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= DATE\'2018-01-01\' and "z0_1".thru_z > DATE\'2018-01-01\') as "z0_0" on ("y0_0".fk = "z0_0".fk)', + $result->sqlRemoveFormatting() + ); assertEquals([10, 11, 12, 13], $result.values.rows.get('x_pk')); assertEquals([20, 20, 20, 20], $result.values.rows.get('y_pk')); assertEquals([30, 30, 30, 30], $result.values.rows.get('z_pk')); @@ -103,13 +141,21 @@ function <> meta::relational::tests::mapping::union::multipleChainedJ function <> meta::relational::tests::mapping::union::multipleChainedJoins::testViewToViewToUnion():Boolean[1] { let result = execute(|Y.all(%2018-1-1)->project(y|$y.z.pk,'z'), viewToViewToUnion, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "unionalias_0"."Z1pk_Z2pk" as "z" from (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "root" left outer join (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "vx2_0" on ("root".fk = "vx2_0".pk) left outer join (select "unionalias_1".pk as pk, "unionalias_1"."Z1pk_Z2pk" as "Z1pk_Z2pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z2 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_1" where (coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1") <= \'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1") > \'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1") is null) as "unionalias_0" on ("vx2_0".fk = "unionalias_0".pk)', $result); + assertEqualsH2Compatible( + 'select "unionalias_0"."Z1pk_Z2pk" as "z" from (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "root" left outer join (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "vx2_0" on ("root".fk = "vx2_0".pk) left outer join (select "unionalias_1".pk as pk, "unionalias_1"."Z1pk_Z2pk" as "Z1pk_Z2pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z2 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_1" where (coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1") <= \'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1") > \'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1") is null) as "unionalias_0" on ("vx2_0".fk = "unionalias_0".pk)', + 'select "unionalias_0"."Z1pk_Z2pk" as "z" from (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "root" left outer join (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "vx2_0" on ("root".fk = "vx2_0".pk) left outer join (select "unionalias_1".pk as pk, "unionalias_1"."Z1pk_Z2pk" as "Z1pk_Z2pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z2 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_1" where (coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1") <= DATE\'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1") > DATE\'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1") is null) as "unionalias_0" on ("vx2_0".fk = "unionalias_0".pk)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::mapping::union::multipleChainedJoins::testUnionedViewsToViewToUnion():Boolean[1] { let result = execute(|Y.all(%2018-1-1)->project(y|$y.z.pk,'z'), unionOfViewsToViewToUnion, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "unionalias_1"."Z1pk_Z2pk" as "z" from (select "root".pk as "pk_0_0", null as "pk_0_1", "root".fk as fk_0, null as fk_1 from (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "root" UNION ALL select null as "pk_0_0", "root".pk as "pk_0_1", null as fk_0, "root".fk as fk_1 from (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "root") as "unionBase" left outer join (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "vx2_0" on ("unionBase".fk_0 = "vx2_0".pk or "unionBase".fk_1 = "vx2_0".pk) left outer join (select "unionalias_2".pk as pk, "unionalias_2"."Z1pk_Z2pk" as "Z1pk_Z2pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z2 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_2" where (coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1") <= \'2018-01-01\' and coalesce("unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") > \'2018-01-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1", "unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") is null) as "unionalias_1" on ("vx2_0".fk = "unionalias_1".pk)', $result); + assertEqualsH2Compatible( + 'select "unionalias_1"."Z1pk_Z2pk" as "z" from (select "root".pk as "pk_0_0", null as "pk_0_1", "root".fk as fk_0, null as fk_1 from (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "root" UNION ALL select null as "pk_0_0", "root".pk as "pk_0_1", null as fk_0, "root".fk as fk_1 from (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "root") as "unionBase" left outer join (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "vx2_0" on ("unionBase".fk_0 = "vx2_0".pk or "unionBase".fk_1 = "vx2_0".pk) left outer join (select "unionalias_2".pk as pk, "unionalias_2"."Z1pk_Z2pk" as "Z1pk_Z2pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z2 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_2" where (coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1") <= \'2018-01-01\' and coalesce("unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") > \'2018-01-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1", "unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") is null) as "unionalias_1" on ("vx2_0".fk = "unionalias_1".pk)', + 'select "unionalias_1"."Z1pk_Z2pk" as "z" from (select "root".pk as "pk_0_0", null as "pk_0_1", "root".fk as fk_0, null as fk_1 from (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "root" UNION ALL select null as "pk_0_0", "root".pk as "pk_0_1", null as fk_0, "root".fk as fk_1 from (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "root") as "unionBase" left outer join (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "vx2_0" on ("unionBase".fk_0 = "vx2_0".pk or "unionBase".fk_1 = "vx2_0".pk) left outer join (select "unionalias_2".pk as pk, "unionalias_2"."Z1pk_Z2pk" as "Z1pk_Z2pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z2 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_2" where (coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1") <= DATE\'2018-01-01\' and coalesce("unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") > DATE\'2018-01-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1", "unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") is null) as "unionalias_1" on ("vx2_0".fk = "unionalias_1".pk)', + $result->sqlRemoveFormatting() + ); } ###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/query/datePeriods.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/datePeriods.pure index ca5c4803d9a..a8680f62cbf 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/datePeriods.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/datePeriods.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::tests::groupBy::datePeriods::domain::*; import meta::relational::tests::groupBy::datePeriods::mapping::*; import meta::relational::tests::groupBy::datePeriods::store::*; @@ -58,18 +59,28 @@ function <> meta::relational::tests::groupBy::date 'OrgName2,1001,300000.0,0.0\n' + 'OrgName1,1002,200000.0,0.0\n', $tds->toCSV()); - assertEquals('select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'', - $result->sqlRemoveFormatting(0)); + assertEqualsH2Compatible( + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'', + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'', + $result->sqlRemoveFormatting(0) + ); - assertEquals('select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else 0.0 end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else 0.0 end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > \'2015-02-01\' and "calendar_0"."date" <= \'2015-02-25\') group by "Sales Division","Income Function" order by "Sales Division" desc,"Income Function" desc',$result->sqlRemoveFormatting(1)); + assertEqualsH2Compatible( + 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else 0.0 end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else 0.0 end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > \'2015-02-01\' and "calendar_0"."date" <= \'2015-02-25\') group by "Sales Division","Income Function" order by "Sales Division" desc,"Income Function" desc', + 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else CAST(0.0 AS FLOAT) end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else CAST(0.0 AS FLOAT) end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > DATE\'2015-02-01\' and "calendar_0"."date" <= DATE\'2015-02-25\') group by "Sales Division","Income Function" order by "Sales Division" desc,"Income Function" desc', + $result->sqlRemoveFormatting(1) + ); - assertEquals('select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', - meta::relational::functions::sqlstring::toSQLString($fn, myMapping, DatabaseType.H2, meta::relational::extension::relationalExtensions())); + assertEqualsH2Compatible( + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', + meta::relational::functions::sqlstring::toSQLString($fn, myMapping, DatabaseType.H2, meta::relational::extension::relationalExtensions()) + ); } -function <> meta::relational::tests::groupBy::datePeriods::testGroupBy_noDatePath():Boolean[1] +// Duplicate tests: plan generation static analysis cannot infer that reportEndDate.date will be a strictdate +function <> meta::relational::tests::groupBy::datePeriods::testInFlowGroupBy_noDatePath():Boolean[1] { - let fn = {| let startDate = getReportingStartDate(); let endDate = getReportingEndDate(); @@ -91,7 +102,6 @@ function <> meta::relational::tests::groupBy::datePeriods::testGroupB ->sort([desc('Sales Division'), desc('Income Function')]); }; - let result = execute($fn,myMapping,testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values; @@ -100,13 +110,74 @@ function <> meta::relational::tests::groupBy::datePeriods::testGroupB 'OrgName2,1001,300000.0,0.0\n' + 'OrgName1,1002,200000.0,0.0\n', $tds->toCSV()); - assertEquals('select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'', - $result->sqlRemoveFormatting(0)); + assertEqualsH2Compatible( + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'', + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'', + $result->sqlRemoveFormatting(0) + ); + + assertEqualsH2Compatible( + 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else 0.0 end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else 0.0 end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > \'2015-02-01\' and "calendar_0"."date" <= \'2015-02-25\') group by "Sales Division","Income Function" order by "Sales Division" desc,"Income Function" desc', + 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else CAST(0.0 AS FLOAT) end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else CAST(0.0 AS FLOAT) end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > DATE\'2015-02-01\' and "calendar_0"."date" <= DATE\'2015-02-25\') group by "Sales Division","Income Function" order by "Sales Division" desc,"Income Function" desc', + $result->sqlRemoveFormatting(1) + ); + + assertEqualsH2Compatible( + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', + meta::relational::functions::sqlstring::toSQLString($fn, myMapping, DatabaseType.H2, meta::relational::extension::relationalExtensions()) + ); +} + +function <> meta::relational::tests::groupBy::datePeriods::testPlanGroupBy_noDatePath():Boolean[1] +{ + let fn = {| + let startDate = getReportingStartDate(); + let endDate = getReportingEndDate(); + let reportEndDate = FiscalCalendarDate.all()->filter(d | $d.date == $endDate)->toOne(); + + SalesCredit.all() + ->filter(gc | $gc.tradeDate.date > $startDate && ($gc.tradeDate.date <= $reportEndDate.date)) + ->groupBy([ + #/SalesCredit/salesDivision/name#, + #/SalesCredit/incomeFunction/code# + ], + [ + agg(s| ytd($s, #/SalesCredit/grossValue#, #/SalesCredit/tradeDate#, $reportEndDate), r|$r->sum()), + agg(s| wtd($s, #/SalesCredit/grossValue#, #/SalesCredit/tradeDate#, $reportEndDate), r|$r->sum()) + ] + , + ['Sales Division', 'Income Function', 'YTD Gross Credits', 'WTD Gross Credits'] + ) + ->sort([desc('Sales Division'), desc('Income Function')]); + }; + + let result = execute($fn,myMapping,testRuntime(), meta::relational::extension::relationalExtensions()); + let tds = $result.values; - assertEquals('select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else 0.0 end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else 0.0 end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > \'2015-02-01\' and "calendar_0"."date" <= \'2015-02-25\') group by "Sales Division","Income Function" order by "Sales Division" desc,"Income Function" desc',$result->sqlRemoveFormatting(1)); + assertEquals('Sales Division,Income Function,YTD Gross Credits,WTD Gross Credits\n' + + 'OrgName2,1002,100000.0,100000.0\n' + + 'OrgName2,1001,300000.0,0.0\n' + + 'OrgName1,1002,200000.0,0.0\n', $tds->toCSV()); - assertEquals('select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', - meta::relational::functions::sqlstring::toSQLString($fn, myMapping, DatabaseType.H2, meta::relational::extension::relationalExtensions()));} + assertEqualsH2Compatible( + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'', + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'', + $result->sqlRemoveFormatting(0) + ); + + assertEqualsH2Compatible( + 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else 0.0 end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else 0.0 end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > \'2015-02-01\' and "calendar_0"."date" <= \'2015-02-25\') group by "Sales Division","Income Function" order by "Sales Division" desc,"Income Function" desc', + 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else CAST(0.0 AS FLOAT) end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else CAST(0.0 AS FLOAT) end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > DATE\'2015-02-01\' and "calendar_0"."date" <= TIMESTAMP\'2015-02-25\') group by "Sales Division","Income Function" order by "Sales Division" desc,"Income Function" desc', + $result->sqlRemoveFormatting(1) + ); + + assertEqualsH2Compatible( + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', + meta::relational::functions::sqlstring::toSQLString($fn, myMapping, DatabaseType.H2, meta::relational::extension::relationalExtensions()) + ); +} function <> meta::relational::tests::groupBy::datePeriods::testGroupByWithFilterFunction_noDatePath():Boolean[1] { @@ -141,14 +212,23 @@ function <> meta::relational::tests::groupBy::datePeriods::testGroupB 'OrgName2,1001,300000.0,0.0\n' + 'OrgName1,1002,200000.0,0.0\n', $tds->toCSV()); - assertEquals('select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'', - $result->sqlRemoveFormatting(0)); + assertEqualsH2Compatible( + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'', + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'', + $result->sqlRemoveFormatting(0) + ); - assertEquals('select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else 0.0 end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else 0.0 end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > \'2015-02-01\' and "calendar_0"."date" <= \'2015-02-25\') group by "Sales Division","Income Function" order by "Sales Division" desc,"Income Function" desc', - $result->sqlRemoveFormatting(1)); + assertEqualsH2Compatible( + 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else 0.0 end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else 0.0 end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > \'2015-02-01\' and "calendar_0"."date" <= \'2015-02-25\') group by "Sales Division","Income Function" order by "Sales Division" desc,"Income Function" desc', + 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else CAST(0.0 AS FLOAT) end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else CAST(0.0 AS FLOAT) end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > DATE\'2015-02-01\' and "calendar_0"."date" <= DATE\'2015-02-25\') group by "Sales Division","Income Function" order by "Sales Division" desc,"Income Function" desc', + $result->sqlRemoveFormatting(1) + ); - assertEquals('select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', - meta::relational::functions::sqlstring::toSQLString($fn, myMapping, DatabaseType.H2, meta::relational::extension::relationalExtensions())); + assertEqualsH2Compatible( + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', + meta::relational::functions::sqlstring::toSQLString($fn, myMapping, DatabaseType.H2, meta::relational::extension::relationalExtensions()) + ); } // Alloy exclusion reason: 15. Variables types should be inferred Encoding doesn't currently support generics (issue if the variable if of type Path for example) @@ -187,14 +267,23 @@ function <> meta::relational::tests::groupBy::date 'OrgName2,1001,300000.0,0.0\n' + 'OrgName1,1002,200000.0,0.0\n', $tds->toCSV()); - assertEquals('select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'', - $result->sqlRemoveFormatting(0)); + assertEqualsH2Compatible( + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'', + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'', + $result->sqlRemoveFormatting(0) + ); - assertEquals('select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else 0.0 end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else 0.0 end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > \'2015-02-01\' and "calendar_0"."date" <= \'2015-02-25\') group by "Sales Division","Income Function" order by "Sales Division" desc,"Income Function" desc', - $result->sqlRemoveFormatting(1)); + assertEqualsH2Compatible( + 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else 0.0 end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else 0.0 end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > \'2015-02-01\' and "calendar_0"."date" <= \'2015-02-25\') group by "Sales Division","Income Function" order by "Sales Division" desc,"Income Function" desc', + 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else CAST(0.0 AS FLOAT) end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else CAST(0.0 AS FLOAT) end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > DATE\'2015-02-01\' and "calendar_0"."date" <= DATE\'2015-02-25\') group by "Sales Division","Income Function" order by "Sales Division" desc,"Income Function" desc', + $result->sqlRemoveFormatting(1) + ); - assertEquals('select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', - meta::relational::functions::sqlstring::toSQLString($fn, myMapping, DatabaseType.H2, meta::relational::extension::relationalExtensions())); + assertEqualsH2Compatible( + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', + meta::relational::functions::sqlstring::toSQLString($fn, myMapping, DatabaseType.H2, meta::relational::extension::relationalExtensions()) + ); } function meta::relational::tests::groupBy::datePeriods::dateFilter(gc:SalesCredit[1], startDate:Date[1], endDate:Date[1]):Boolean[1] @@ -231,13 +320,23 @@ function <> meta::relational::tests::groupBy::date let result = execute($fn,myMapping,testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'', - $result->sqlRemoveFormatting(0)); + assertEqualsH2Compatible( + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'', + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'', + $result->sqlRemoveFormatting(0) + ); - assertEquals('select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else 0.0 end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else 0.0 end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > \'2015-02-01\' and "calendar_0"."date" <= \'2015-02-25\') group by "Sales Division","Income Function"', $result->sqlRemoveFormatting(1)); + assertEqualsH2Compatible( + 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else 0.0 end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else 0.0 end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > \'2015-02-01\' and "calendar_0"."date" <= \'2015-02-25\') group by "Sales Division","Income Function"', + 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else CAST(0.0 AS FLOAT) end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else CAST(0.0 AS FLOAT) end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > DATE\'2015-02-01\' and "calendar_0"."date" <= DATE\'2015-02-25\') group by "Sales Division","Income Function"', + $result->sqlRemoveFormatting(1) + ); - assertEquals('select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', - meta::relational::functions::sqlstring::toSQLString($fn, myMapping, DatabaseType.H2, meta::relational::extension::relationalExtensions())); + assertEqualsH2Compatible( + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', + meta::relational::functions::sqlstring::toSQLString($fn, myMapping, DatabaseType.H2, meta::relational::extension::relationalExtensions()) + ); } // Alloy exclusion reason: 16. Alloy doesn't support platform functions @@ -267,13 +366,23 @@ function <> meta::relational::tests::groupBy::date let result = execute($fn,myMapping,testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'', - $result->sqlRemoveFormatting(0)); + assertEqualsH2Compatible( + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'', + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'', + $result->sqlRemoveFormatting(0) + ); - assertEquals('select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else 0.0 end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else 0.0 end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > \'2015-02-01\' and "calendar_0"."date" <= \'2015-02-25\') group by "Sales Division","Income Function"', $result->sqlRemoveFormatting(1)); + assertEqualsH2Compatible( + 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else 0.0 end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else 0.0 end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > \'2015-02-01\' and "calendar_0"."date" <= \'2015-02-25\') group by "Sales Division","Income Function"', + 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else CAST(0.0 AS FLOAT) end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else CAST(0.0 AS FLOAT) end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > DATE\'2015-02-01\' and "calendar_0"."date" <= DATE\'2015-02-25\') group by "Sales Division","Income Function"', + $result->sqlRemoveFormatting(1) + ); - assertEquals('select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', - meta::relational::functions::sqlstring::toSQLString($fn, myMapping, DatabaseType.H2, meta::relational::extension::relationalExtensions())); + assertEqualsH2Compatible( + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', + meta::relational::functions::sqlstring::toSQLString($fn, myMapping, DatabaseType.H2, meta::relational::extension::relationalExtensions()) + ); } // Alloy exclusion reason: 15. Variables types should be inferred Encoding doesn't currently support generics (issue if the variable if of type Path for example) @@ -306,14 +415,23 @@ function <> meta::relational::tests::groupBy::date let result = execute($fn,myMapping,testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'', - $result->sqlRemoveFormatting(0)); + assertEqualsH2Compatible( + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'', + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'', + $result->sqlRemoveFormatting(0) + ); - - assertEquals('select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else 0.0 end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else 0.0 end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > \'2015-02-01\' and "calendar_0"."date" <= \'2015-02-25\') group by "Sales Division","Income Function"',$result->sqlRemoveFormatting(1)); + assertEqualsH2Compatible( + 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else 0.0 end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else 0.0 end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > \'2015-02-01\' and "calendar_0"."date" <= \'2015-02-25\') group by "Sales Division","Income Function"', + 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else CAST(0.0 AS FLOAT) end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else CAST(0.0 AS FLOAT) end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > DATE\'2015-02-01\' and "calendar_0"."date" <= DATE\'2015-02-25\') group by "Sales Division","Income Function"', + $result->sqlRemoveFormatting(1) + ); - assertEquals('select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', - meta::relational::functions::sqlstring::toSQLString($fn, myMapping, DatabaseType.H2, meta::relational::extension::relationalExtensions())); + assertEqualsH2Compatible( + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', + 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', + meta::relational::functions::sqlstring::toSQLString($fn, myMapping, DatabaseType.H2, meta::relational::extension::relationalExtensions()) + ); } function meta::relational::tests::groupBy::datePeriods::filterReportDates(x:T[1], start:Date[1], end:Date[1], path:Function<{T[1]->Date[0..1]}>[1]):Boolean[1] @@ -358,12 +476,16 @@ function <> meta::relational::tests::groupBy::date 'OrgName2,1001,300000.0,0.0\n' + 'OrgName1,1002,200000.0,0.0\n', $tds->toCSV()); - assertEquals('select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum((case when "calendar_0"."fiscal day" <= 37 then 1.0 else 0.0 end * "root".credits)) as "YTD Gross Credits", sum((case when (week("calendar_0"."date") = week(\'2015-02-25\') and DAY_OF_WEEK("calendar_0"."date") <= DAY_OF_WEEK(\'2015-02-25\')) then 1.0 else 0.0 end * "root".credits)) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > \'2015-02-01\' and "calendar_0"."date" <= \'2015-02-25\') group by "Sales Division","Income Function" order by "Sales Division" desc,"Income Function" desc',$result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum((case when "calendar_0"."fiscal day" <= 37 then 1.0 else 0.0 end * "root".credits)) as "YTD Gross Credits", sum((case when (week("calendar_0"."date") = week(\'2015-02-25\') and DAY_OF_WEEK("calendar_0"."date") <= DAY_OF_WEEK(\'2015-02-25\')) then 1.0 else 0.0 end * "root".credits)) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > \'2015-02-01\' and "calendar_0"."date" <= \'2015-02-25\') group by "Sales Division","Income Function" order by "Sales Division" desc,"Income Function" desc', + 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum((case when "calendar_0"."fiscal day" <= 37 then CAST(1.0 AS FLOAT) else CAST(0.0 AS FLOAT) end * "root".credits)) as "YTD Gross Credits", sum((case when (week("calendar_0"."date") = week(DATE\'2015-02-25\') and DAY_OF_WEEK("calendar_0"."date") <= DAY_OF_WEEK(DATE\'2015-02-25\')) then CAST(1.0 AS FLOAT) else CAST(0.0 AS FLOAT) end * "root".credits)) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > DATE\'2015-02-01\' and "calendar_0"."date" <= DATE\'2015-02-25\') group by "Sales Division","Income Function" order by "Sales Division" desc,"Income Function" desc', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::groupBy::datePeriods::testDayOfWeek(): Boolean[1] { - let result = execute(| let startDate = mostRecentDayOfWeek(%2022-02-25, DayOfWeek.Monday); + let result = execute(| let startDate = mostRecentDayOfWeek(%2022-02-25, DayOfWeek.Monday)->cast(@StrictDate); let endDate = %2022-03-25; let datePath = #/meta::relational::tests::groupBy::datePeriods::domain::SalesCredit/tradeDate/date#; meta::relational::tests::groupBy::datePeriods::domain::SalesCredit.all() @@ -373,7 +495,11 @@ function <> meta::relational::tests::groupBy::datePeriods::testDayOfW testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select "org_chart_entity_0".name as "name" from SALES_GCS as "root" left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) where ("calendar_0"."date" > \'2022-02-21\' and "calendar_0"."date" <= \'2022-03-25\')', $result->sqlRemoveFormatting(0)); + assertEqualsH2Compatible( + 'select "org_chart_entity_0".name as "name" from SALES_GCS as "root" left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) where ("calendar_0"."date" > \'2022-02-21\' and "calendar_0"."date" <= \'2022-03-25\')', + 'select "org_chart_entity_0".name as "name" from SALES_GCS as "root" left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) where ("calendar_0"."date" > DATE\'2022-02-21\' and "calendar_0"."date" <= DATE\'2022-03-25\')', + $result->sqlRemoveFormatting(0) + ); } function meta::relational::tests::groupBy::datePeriods::ytd(value:Float[1], reportEndDate:FiscalCalendarDate[1], elementBusinessDate:FiscalCalendarDate[1]):Float[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testQualifier.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testQualifier.pure index 62a0724285c..ab53c69731d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testQualifier.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testQualifier.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; @@ -63,7 +64,11 @@ function <> meta::relational::tests::query::qualifier::testExistsWith { let result = execute(|Trade.all()->filter(t|$t.eventsByDate(%2014-12-02)->exists(e|$e.eventType == 'New')), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 0); - assertSameSQL('select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) left outer join (select distinct "tradeeventtable_2".trade_id from tradeEventTable as "tradeeventtable_2" where "tradeeventtable_2".eventDate = \'2014-12-02\' and "tradeeventtable_2".eventType = \'New\') as "tradeeventtable_1" on ("root".ID = "tradeeventtable_1".trade_id) where "tradeeventtable_1".trade_id is not null', $result); + assertEqualsH2Compatible( + 'select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) left outer join (select distinct "tradeeventtable_2".trade_id from tradeEventTable as "tradeeventtable_2" where "tradeeventtable_2".eventDate = \'2014-12-02\' and "tradeeventtable_2".eventType = \'New\') as "tradeeventtable_1" on ("root".ID = "tradeeventtable_1".trade_id) where "tradeeventtable_1".trade_id is not null', + 'select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) left outer join (select distinct "tradeeventtable_2".trade_id from tradeEventTable as "tradeeventtable_2" where "tradeeventtable_2".eventDate = DATE\'2014-12-02\' and "tradeeventtable_2".eventType = \'New\') as "tradeeventtable_1" on ("root".ID = "tradeeventtable_1".trade_id) where "tradeeventtable_1".trade_id is not null', + $result->sqlRemoveFormatting() + ); let result2 = execute(|Trade.all()->filter(t|$t.eventsByDate(%2014-12-01)->exists(e|$e.eventType == 'New')), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result2.values, 1); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testView.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testView.pure index 39c413cf630..a54a34a8ddd 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testView.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testView.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::functions::asserts::*; import meta::relational::tests::query::view::*; import meta::relational::metamodel::execute::*; @@ -51,7 +52,11 @@ function <> meta::relational::tests::query::view::testAllWithJoinToVi { let result = execute(|Order.all(), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSameElements(['1,false', '2,false', '3,false','4,false'], $result.values->map(o|[$o.id, $o.zeroPnl]->makeString(','))); - assertEquals('select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".orderDate as "date", "root".settlementDateTime as "settlementDateTime", "orderpnlview_0".pnl as "pnl", case when "orderpnlview_0".pnl = 0 then \'true\' else \'false\' end as "zeroPnl" from orderTable as "root" left outer join (select distinct "root".ORDER_ID as ORDER_ID, "root".pnl as pnl, "accounttable_0".ID as accountId, "salespersontable_0".NAME as supportContact, "salespersontable_0".PERSON_ID as supportContactId from orderPnlTable as "root" left outer join orderTable as "ordertable_1" on ("root".ORDER_ID = "ordertable_1".ID) left outer join accountTable as "accounttable_0" on ("ordertable_1".accountID = "accounttable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("ordertable_1".accountID = "salespersontable_0".ACCOUNT_ID) where "root".pnl > 0) as "orderpnlview_0" on ("orderpnlview_0".ORDER_ID = "root".ID)', $result->sqlRemoveFormatting()); + assertEqualsH2Compatible( + 'select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".orderDate as "date", "root".settlementDateTime as "settlementDateTime", "orderpnlview_0".pnl as "pnl", case when "orderpnlview_0".pnl = 0 then \'true\' else \'false\' end as "zeroPnl" from orderTable as "root" left outer join (select distinct "root".ORDER_ID as ORDER_ID, "root".pnl as pnl, "accounttable_0".ID as accountId, "salespersontable_0".NAME as supportContact, "salespersontable_0".PERSON_ID as supportContactId from orderPnlTable as "root" left outer join orderTable as "ordertable_1" on ("root".ORDER_ID = "ordertable_1".ID) left outer join accountTable as "accounttable_0" on ("ordertable_1".accountID = "accounttable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("ordertable_1".accountID = "salespersontable_0".ACCOUNT_ID) where "root".pnl > 0) as "orderpnlview_0" on ("orderpnlview_0".ORDER_ID = "root".ID)', + 'select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".orderDate as "date", "root".settlementDateTime as "settlementDateTime", "orderpnlview_0".pnl as "pnl", cast(case when "orderpnlview_0".pnl = 0 then \'true\' else \'false\' end as boolean) as "zeroPnl" from orderTable as "root" left outer join (select distinct "root".ORDER_ID as ORDER_ID, "root".pnl as pnl, "accounttable_0".ID as accountId, "salespersontable_0".NAME as supportContact, "salespersontable_0".PERSON_ID as supportContactId from orderPnlTable as "root" left outer join orderTable as "ordertable_1" on ("root".ORDER_ID = "ordertable_1".ID) left outer join accountTable as "accounttable_0" on ("ordertable_1".accountID = "accounttable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("ordertable_1".accountID = "salespersontable_0".ACCOUNT_ID) where "root".pnl > 0) as "orderpnlview_0" on ("orderpnlview_0".ORDER_ID = "root".ID)', + $result->sqlRemoveFormatting() + ); } // Alloy exclusion reason: 4. Use getter relational protocol diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testWithFunction.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testWithFunction.pure index 4ba7b3a2f94..5f5044a308d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testWithFunction.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testWithFunction.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::runtime::*; @@ -296,7 +297,11 @@ function <> meta::relational::tests::query::function::exp::testFilter { let result = execute(|Trade.all()->filter(t | $t.id->exp() < 2.719), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSameElements([1], $result.values.id); - assertSameSQL('select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where exp("root".ID) < 2.719', $result); + assertEqualsH2Compatible( + 'select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where exp("root".ID) < 2.719', + 'select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where exp("root".ID) < CAST(2.719 AS FLOAT)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::query::function::log::testFilterUsingLogFunction():Boolean[1] @@ -317,42 +322,66 @@ function <> meta::relational::tests::query::function::sin::testFilter { let result = execute(|Trade.all()->filter(t | $t.id->sin() < 0.5), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSameElements([3, 4, 5, 6, 9, 10, 11], $result.values.id); - assertSameSQL('select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where sin("root".ID) < 0.5', $result); + assertEqualsH2Compatible( + 'select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where sin("root".ID) < 0.5', + 'select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where sin("root".ID) < CAST(0.5 AS FLOAT)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::query::function::cos::testFilterUsingCosFunction():Boolean[1] { let result = execute(|Trade.all()->filter(t | $t.id->cos() < 0.5), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSameElements([2, 3, 4, 5, 8, 9, 10, 11], $result.values.id); - assertSameSQL('select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where cos("root".ID) < 0.5', $result); + assertEqualsH2Compatible( + 'select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where cos("root".ID) < 0.5', + 'select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where cos("root".ID) < CAST(0.5 AS FLOAT)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::query::function::cos::testFilterUsingCotFunction():Boolean[1] { let result = execute(|Trade.all()->filter(t | $t.id->cot() < 0.5), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSameElements([2, 3, 5, 6, 8, 9, 11], $result.values.id); - assertSameSQL('select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where cot("root".ID) < 0.5', $result); + assertEqualsH2Compatible( + 'select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where cot("root".ID) < 0.5', + 'select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where cot("root".ID) < CAST(0.5 AS FLOAT)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::query::function::tan::testFilterUsingTanFunction():Boolean[1] { let result = execute(|Trade.all()->filter(t | $t.id->tan() < 0.5), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSameElements([2, 3, 5, 6, 8, 9, 11], $result.values.id); - assertSameSQL('select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where tan("root".ID) < 0.5', $result); + assertEqualsH2Compatible( + 'select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where tan("root".ID) < 0.5', + 'select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where tan("root".ID) < CAST(0.5 AS FLOAT)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::query::function::asin::testFilterUsingArcSinFunction():Boolean[1] { let result = execute(|Trade.all()->filter(t | $t.id->divide(10)->asin() < 0.5), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSameElements([1, 2, 3, 4], $result.values.id); - assertSameSQL('select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where asin(((1.0 * "root".ID) / 10)) < 0.5', $result); + assertEqualsH2Compatible( + 'select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where asin(((1.0 * "root".ID) / 10)) < 0.5', + 'select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where asin(((1.0 * "root".ID) / 10)) < CAST(0.5 AS FLOAT)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::query::function::acos::testFilterUsingArcCosFunction():Boolean[1] { let result = execute(|Trade.all()->filter(t | $t.id->divide(10)->acos() < 0.5), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSameElements([9, 10], $result.values.id); - assertSameSQL('select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where acos(((1.0 * "root".ID) / 10)) < 0.5', $result); + assertEqualsH2Compatible( + 'select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where acos(((1.0 * "root".ID) / 10)) < 0.5', + 'select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where acos(((1.0 * "root".ID) / 10)) < CAST(0.5 AS FLOAT)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::query::function::atan::testFilterUsingArcTanFunction():Boolean[1] @@ -366,7 +395,11 @@ function <> meta::relational::tests::query::function::atan2::testFilt { let result = execute(|Trade.all()->filter(t | atan2($t.id, $t.quantity) < 0.2), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSameElements([1, 2, 4, 5, 7, 9], $result.values.id); - assertSameSQL('select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where atan2("root".ID,"root".quantity) < 0.2', $result); + assertEqualsH2Compatible( + 'select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where atan2("root".ID,"root".quantity) < 0.2', + 'select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where atan2("root".ID,"root".quantity) < CAST(0.2 AS FLOAT)', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::query::function::sqrt::testFilterUsingSqrtFunction():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/transform/fromPure/tests/testToSQLString.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/transform/fromPure/tests/testToSQLString.pure index 9561c6f25bb..d34d7f081bb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/transform/fromPure/tests/testToSQLString.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/transform/fromPure/tests/testToSQLString.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; import meta::pure::functions::hash::*; import meta::relational::tests::functions::sqlstring::*; import meta::pure::mapping::*; @@ -163,7 +164,11 @@ function <> meta::relational::tests::functions::sqlstring::testToSQLS ->project([t|$t.account.name, t|$t.quantity], ['accountName', 'quantity']); }; let s = toSQLString($fn, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.H2, meta::relational::extension::relationalExtensions()); - assertEquals('select "accountTable_d#4_d_m1".name as "accountName", "root".quantity as "quantity" from tradeTable as "root" left outer join accountTable as "accountTable_d#4_d_m1" on ("root".accountID = "accountTable_d#4_d_m1".ID) where "root".tradeDate <= \'2015-02-01\'', $s); + assertEqualsH2Compatible( + 'select "accountTable_d#4_d_m1".name as "accountName", "root".quantity as "quantity" from tradeTable as "root" left outer join accountTable as "accountTable_d#4_d_m1" on ("root".accountID = "accountTable_d#4_d_m1".ID) where "root".tradeDate <= \'2015-02-01\'', + 'select "accountTable_d#4_d_m1".name as "accountName", "root".quantity as "quantity" from tradeTable as "root" left outer join accountTable as "accountTable_d#4_d_m1" on ("root".accountID = "accountTable_d#4_d_m1".ID) where "root".tradeDate <= DATE\'2015-02-01\'', + $s->sqlRemoveFormatting() + ); } function meta::relational::tests::functions::sqlstring::filterReportDates(x:T[1], end:Date[1], path:Function<{T[1]->Date[0..1]}>[1]):Boolean[1] @@ -428,7 +433,11 @@ function <> meta::relational::tests::functions::sqlstring::testSqlGen ], ['a']), simpleRelationalMapping, DatabaseType.H2, meta::relational::extension::relationalExtensions()); - assertEquals('select dateadd(SECOND, 86400, \'2011-12-30\') as "a" from personTable as "root"', $result); + assertEqualsH2Compatible( + 'select dateadd(SECOND, 86400, \'2011-12-30\') as "a" from personTable as "root"', + 'select dateadd(SECOND, 86400, DATE\'2011-12-30\') as "a" from personTable as "root"', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::functions::sqlstring::testSqlGenerationForAdjustStrictDateUsageInFiltersForH2():Boolean[1] @@ -438,7 +447,11 @@ function <> meta::relational::tests::functions::sqlstring::testSqlGen ], ['a']), simpleRelationalMapping, DatabaseType.H2, meta::relational::extension::relationalExtensions()); - assertEquals('select \'a\' as "a" from tradeTable as "root" where dateadd(SECOND, 86400, \'2011-12-30\') > \'2011-12-30\'', $result); + assertEqualsH2Compatible( + 'select \'a\' as "a" from tradeTable as "root" where dateadd(SECOND, 86400, \'2011-12-30\') > \'2011-12-30\'', + 'select \'a\' as "a" from tradeTable as "root" where dateadd(SECOND, 86400, DATE\'2011-12-30\') > DATE\'2011-12-30\'', + $result->sqlRemoveFormatting() + ); } function <> meta::relational::tests::functions::sqlstring::testSqlGenerationForDatePartForH2():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/tests/testValidationWithMilestoning.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/tests/testValidationWithMilestoning.pure index b58431c81ff..bf63e11c9d1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/tests/testValidationWithMilestoning.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/tests/testValidationWithMilestoning.pure @@ -12,6 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::functions::sqlQueryToString::h2::*; +import meta::relational::mapping::*; import meta::relational::functions::asserts::*; import meta::pure::runtime::*; import meta::relational::validation::tests::milestoning::*; @@ -51,38 +53,62 @@ function <> meta::relational::validation::tests::milestoning function <> meta::relational::validation::tests::milestoning::testAggregationOnRootClass():Boolean[1] { let validation = validate({|meta::relational::validation::tests::milestoning::ProductClassification.all(%2019-09-09)},MilestoneMappingWithDynaFunction,meta::relational::tests::testRuntime(),['joinStringsConstraint'], meta::relational::extension::relationalExtensions()); - assertSameSQL('select \'joinStringsConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".type as "type" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where not (char_length("root".type) + char_length("root".type_description)) > 10 and "root".snapshotDate = \'2019-09-09\'', $validation); + assertEqualsH2Compatible( + 'select \'joinStringsConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".type as "type" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where not (char_length("root".type) + char_length("root".type_description)) > 10 and "root".snapshotDate = \'2019-09-09\'', + 'select \'joinStringsConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".type as "type" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where not (char_length("root".type) + char_length("root".type_description)) > 10 and "root".snapshotDate = DATE\'2019-09-09\'', + $validation->sqlRemoveFormatting() + ); } function <> meta::relational::validation::tests::milestoning::testValidateQueryWithMilestoningAndAggregationAll():Boolean[1] { let validation = validate({|OrderWithAggregationConstraint.all()}, MilestoneMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'aggConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_2".id as id, sum("producttablewithbusinesssnapshotmilestoning_0".id) as aggCol from OrderTable as "ordertable_2" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("ordertable_2".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_0".id > 100 or "producttablewithbusinesssnapshotmilestoning_0".id = -1)) group by "ordertable_2".id) as "ordertable_1" on ("root".id = "ordertable_1".id) left outer join (select "ordertable_4".id as id, sum("producttablewithbusinesssnapshotmilestoning_1".id) as aggCol from OrderTable as "ordertable_4" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_1" on ("ordertable_4".prodFk = "producttablewithbusinesssnapshotmilestoning_1".id and "producttablewithbusinesssnapshotmilestoning_1".snapshotDate = \'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_1".id < 100 or "producttablewithbusinesssnapshotmilestoning_1".id = -10)) group by "ordertable_4".id) as "ordertable_3" on ("root".id = "ordertable_3".id) where not abs(("ordertable_1".aggCol - "ordertable_3".aggCol)) > 1 UNION ALL select \'aggConstraint2\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_6".id as id, count(*) as aggCol from OrderTable as "ordertable_6" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_2" on ("ordertable_6".prodFk = "producttablewithbusinesssnapshotmilestoning_2".id and "producttablewithbusinesssnapshotmilestoning_2".snapshotDate = \'2018-09-09\') group by "ordertable_6".id) as "ordertable_5" on ("root".id = "ordertable_5".id) where not "ordertable_5".aggCol > 1) as "unionalias_0"', $validation); + assertEqualsH2Compatible( + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'aggConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_2".id as id, sum("producttablewithbusinesssnapshotmilestoning_0".id) as aggCol from OrderTable as "ordertable_2" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("ordertable_2".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_0".id > 100 or "producttablewithbusinesssnapshotmilestoning_0".id = -1)) group by "ordertable_2".id) as "ordertable_1" on ("root".id = "ordertable_1".id) left outer join (select "ordertable_4".id as id, sum("producttablewithbusinesssnapshotmilestoning_1".id) as aggCol from OrderTable as "ordertable_4" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_1" on ("ordertable_4".prodFk = "producttablewithbusinesssnapshotmilestoning_1".id and "producttablewithbusinesssnapshotmilestoning_1".snapshotDate = \'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_1".id < 100 or "producttablewithbusinesssnapshotmilestoning_1".id = -10)) group by "ordertable_4".id) as "ordertable_3" on ("root".id = "ordertable_3".id) where not abs(("ordertable_1".aggCol - "ordertable_3".aggCol)) > 1 UNION ALL select \'aggConstraint2\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_6".id as id, count(*) as aggCol from OrderTable as "ordertable_6" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_2" on ("ordertable_6".prodFk = "producttablewithbusinesssnapshotmilestoning_2".id and "producttablewithbusinesssnapshotmilestoning_2".snapshotDate = \'2018-09-09\') group by "ordertable_6".id) as "ordertable_5" on ("root".id = "ordertable_5".id) where not "ordertable_5".aggCol > 1) as "unionalias_0"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'aggConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_2".id as id, sum("producttablewithbusinesssnapshotmilestoning_0".id) as aggCol from OrderTable as "ordertable_2" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("ordertable_2".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_0".id > 100 or "producttablewithbusinesssnapshotmilestoning_0".id = -1)) group by "ordertable_2".id) as "ordertable_1" on ("root".id = "ordertable_1".id) left outer join (select "ordertable_4".id as id, sum("producttablewithbusinesssnapshotmilestoning_1".id) as aggCol from OrderTable as "ordertable_4" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_1" on ("ordertable_4".prodFk = "producttablewithbusinesssnapshotmilestoning_1".id and "producttablewithbusinesssnapshotmilestoning_1".snapshotDate = DATE\'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_1".id < 100 or "producttablewithbusinesssnapshotmilestoning_1".id = -10)) group by "ordertable_4".id) as "ordertable_3" on ("root".id = "ordertable_3".id) where not abs(("ordertable_1".aggCol - "ordertable_3".aggCol)) > 1 UNION ALL select \'aggConstraint2\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_6".id as id, count(*) as aggCol from OrderTable as "ordertable_6" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_2" on ("ordertable_6".prodFk = "producttablewithbusinesssnapshotmilestoning_2".id and "producttablewithbusinesssnapshotmilestoning_2".snapshotDate = DATE\'2018-09-09\') group by "ordertable_6".id) as "ordertable_5" on ("root".id = "ordertable_5".id) where not "ordertable_5".aggCol > 1) as "unionalias_0"', + $validation->sqlRemoveFormatting() + ); } function <> meta::relational::validation::tests::milestoning::testValidateQueryWithMilestoningAndAggregationSingle():Boolean[1] { let validation = validate({|OrderWithAggregationConstraint.all()}, MilestoneMapping, meta::relational::tests::testRuntime(),['aggConstraint'], meta::relational::extension::relationalExtensions()); - assertSameSQL('select \'aggConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_2".id as id, sum("producttablewithbusinesssnapshotmilestoning_0".id) as aggCol from OrderTable as "ordertable_2" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("ordertable_2".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_0".id > 100 or "producttablewithbusinesssnapshotmilestoning_0".id = -1)) group by "ordertable_2".id) as "ordertable_1" on ("root".id = "ordertable_1".id) left outer join (select "ordertable_4".id as id, sum("producttablewithbusinesssnapshotmilestoning_1".id) as aggCol from OrderTable as "ordertable_4" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_1" on ("ordertable_4".prodFk = "producttablewithbusinesssnapshotmilestoning_1".id and "producttablewithbusinesssnapshotmilestoning_1".snapshotDate = \'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_1".id < 100 or "producttablewithbusinesssnapshotmilestoning_1".id = -10)) group by "ordertable_4".id) as "ordertable_3" on ("root".id = "ordertable_3".id) where not abs(("ordertable_1".aggCol - "ordertable_3".aggCol)) > 1', $validation); + assertEqualsH2Compatible( + 'select \'aggConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_2".id as id, sum("producttablewithbusinesssnapshotmilestoning_0".id) as aggCol from OrderTable as "ordertable_2" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("ordertable_2".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_0".id > 100 or "producttablewithbusinesssnapshotmilestoning_0".id = -1)) group by "ordertable_2".id) as "ordertable_1" on ("root".id = "ordertable_1".id) left outer join (select "ordertable_4".id as id, sum("producttablewithbusinesssnapshotmilestoning_1".id) as aggCol from OrderTable as "ordertable_4" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_1" on ("ordertable_4".prodFk = "producttablewithbusinesssnapshotmilestoning_1".id and "producttablewithbusinesssnapshotmilestoning_1".snapshotDate = \'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_1".id < 100 or "producttablewithbusinesssnapshotmilestoning_1".id = -10)) group by "ordertable_4".id) as "ordertable_3" on ("root".id = "ordertable_3".id) where not abs(("ordertable_1".aggCol - "ordertable_3".aggCol)) > 1', + 'select \'aggConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_2".id as id, sum("producttablewithbusinesssnapshotmilestoning_0".id) as aggCol from OrderTable as "ordertable_2" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("ordertable_2".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_0".id > 100 or "producttablewithbusinesssnapshotmilestoning_0".id = -1)) group by "ordertable_2".id) as "ordertable_1" on ("root".id = "ordertable_1".id) left outer join (select "ordertable_4".id as id, sum("producttablewithbusinesssnapshotmilestoning_1".id) as aggCol from OrderTable as "ordertable_4" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_1" on ("ordertable_4".prodFk = "producttablewithbusinesssnapshotmilestoning_1".id and "producttablewithbusinesssnapshotmilestoning_1".snapshotDate = DATE\'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_1".id < 100 or "producttablewithbusinesssnapshotmilestoning_1".id = -10)) group by "ordertable_4".id) as "ordertable_3" on ("root".id = "ordertable_3".id) where not abs(("ordertable_1".aggCol - "ordertable_3".aggCol)) > 1', + $validation->sqlRemoveFormatting() + ); } function <> meta::relational::validation::tests::milestoning::testValidateQueryWithMilestoningAndAggregationSingleAndNestedDynaFunction():Boolean[1] { let validation = validate({|OrderWithAggregationConstraint.all()}, MilestoneMappingWithDynaFunction, meta::relational::tests::testRuntime(),['aggConstraint'], meta::relational::extension::relationalExtensions()); - assertSameSQL('select \'aggConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_2".id as id, sum(("producttablewithbusinesssnapshotmilestoning_0".id + "producttablewithbusinesssnapshotmilestoning_0".id)) as aggCol from OrderTable as "ordertable_2" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("ordertable_2".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2018-09-09\' and (("producttablewithbusinesssnapshotmilestoning_0".id + "producttablewithbusinesssnapshotmilestoning_0".id) > 100 or ("producttablewithbusinesssnapshotmilestoning_0".id + "producttablewithbusinesssnapshotmilestoning_0".id) = -1)) group by "ordertable_2".id) as "ordertable_1" on ("root".id = "ordertable_1".id) left outer join (select "ordertable_4".id as id, sum(("producttablewithbusinesssnapshotmilestoning_1".id + "producttablewithbusinesssnapshotmilestoning_1".id)) as aggCol from OrderTable as "ordertable_4" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_1" on ("ordertable_4".prodFk = "producttablewithbusinesssnapshotmilestoning_1".id and "producttablewithbusinesssnapshotmilestoning_1".snapshotDate = \'2018-09-09\' and (("producttablewithbusinesssnapshotmilestoning_1".id + "producttablewithbusinesssnapshotmilestoning_1".id) < 100 or ("producttablewithbusinesssnapshotmilestoning_1".id + "producttablewithbusinesssnapshotmilestoning_1".id) = -10)) group by "ordertable_4".id) as "ordertable_3" on ("root".id = "ordertable_3".id) where not abs(("ordertable_1".aggCol - "ordertable_3".aggCol)) > 1', $validation); + assertEqualsH2Compatible( + 'select \'aggConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_2".id as id, sum(("producttablewithbusinesssnapshotmilestoning_0".id + "producttablewithbusinesssnapshotmilestoning_0".id)) as aggCol from OrderTable as "ordertable_2" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("ordertable_2".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2018-09-09\' and (("producttablewithbusinesssnapshotmilestoning_0".id + "producttablewithbusinesssnapshotmilestoning_0".id) > 100 or ("producttablewithbusinesssnapshotmilestoning_0".id + "producttablewithbusinesssnapshotmilestoning_0".id) = -1)) group by "ordertable_2".id) as "ordertable_1" on ("root".id = "ordertable_1".id) left outer join (select "ordertable_4".id as id, sum(("producttablewithbusinesssnapshotmilestoning_1".id + "producttablewithbusinesssnapshotmilestoning_1".id)) as aggCol from OrderTable as "ordertable_4" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_1" on ("ordertable_4".prodFk = "producttablewithbusinesssnapshotmilestoning_1".id and "producttablewithbusinesssnapshotmilestoning_1".snapshotDate = \'2018-09-09\' and (("producttablewithbusinesssnapshotmilestoning_1".id + "producttablewithbusinesssnapshotmilestoning_1".id) < 100 or ("producttablewithbusinesssnapshotmilestoning_1".id + "producttablewithbusinesssnapshotmilestoning_1".id) = -10)) group by "ordertable_4".id) as "ordertable_3" on ("root".id = "ordertable_3".id) where not abs(("ordertable_1".aggCol - "ordertable_3".aggCol)) > 1', + 'select \'aggConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_2".id as id, sum(("producttablewithbusinesssnapshotmilestoning_0".id + "producttablewithbusinesssnapshotmilestoning_0".id)) as aggCol from OrderTable as "ordertable_2" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("ordertable_2".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2018-09-09\' and (("producttablewithbusinesssnapshotmilestoning_0".id + "producttablewithbusinesssnapshotmilestoning_0".id) > 100 or ("producttablewithbusinesssnapshotmilestoning_0".id + "producttablewithbusinesssnapshotmilestoning_0".id) = -1)) group by "ordertable_2".id) as "ordertable_1" on ("root".id = "ordertable_1".id) left outer join (select "ordertable_4".id as id, sum(("producttablewithbusinesssnapshotmilestoning_1".id + "producttablewithbusinesssnapshotmilestoning_1".id)) as aggCol from OrderTable as "ordertable_4" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_1" on ("ordertable_4".prodFk = "producttablewithbusinesssnapshotmilestoning_1".id and "producttablewithbusinesssnapshotmilestoning_1".snapshotDate = DATE\'2018-09-09\' and (("producttablewithbusinesssnapshotmilestoning_1".id + "producttablewithbusinesssnapshotmilestoning_1".id) < 100 or ("producttablewithbusinesssnapshotmilestoning_1".id + "producttablewithbusinesssnapshotmilestoning_1".id) = -10)) group by "ordertable_4".id) as "ordertable_3" on ("root".id = "ordertable_3".id) where not abs(("ordertable_1".aggCol - "ordertable_3".aggCol)) > 1', + $validation->sqlRemoveFormatting() + ); } function <> meta::relational::validation::tests::milestoning::testValidateQueryWithMilestoning():Boolean[1] { let validation = validate({|Product.all(%2010-10-10)}, MilestoneMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0"', $validation); + assertEqualsH2Compatible( + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = DATE\'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = DATE\'2010-10-10\') as "unionalias_0"', + $validation->sqlRemoveFormatting() + ); } function <> meta::relational::validation::tests::milestoning::testValidateQueryWithMilestoningWithVariable():Boolean[1] { let date = %2010-10-10; let validation = validate({|Product.all($date)}, MilestoneMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0"', $validation); + assertEqualsH2Compatible( + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = DATE\'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = DATE\'2010-10-10\') as "unionalias_0"', + $validation->sqlRemoveFormatting() + ); } function <> meta::relational::validation::tests::milestoning::testValidateQueryWithMilestoningWithMultipleVariables():Boolean[1] @@ -90,7 +116,11 @@ function <> meta::relational::validation::tests::milestoning::testVal let date = %2010-10-10; let id = 45; let validation = validate({|Product.all($date)->filter(i | $i.id == $id)}, MilestoneMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".id = 45 and "root".snapshotDate = \'2010-10-10\' and not "root".id > 0 UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "root".id = 45 and "root".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\') as "unionalias_0"', $validation); + assertEqualsH2Compatible( + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".id = 45 and "root".snapshotDate = \'2010-10-10\' and not "root".id > 0 UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "root".id = 45 and "root".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\') as "unionalias_0"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".id = 45 and "root".snapshotDate = DATE\'2010-10-10\' and not "root".id > 0 UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-10\' and "root".id = 45 and "root".snapshotDate = DATE\'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\') as "unionalias_0"', + $validation->sqlRemoveFormatting() + ); } function <> meta::relational::validation::tests::milestoning::testValidateQueryOpenVariableInCol():Boolean[1] @@ -98,7 +128,11 @@ function <> meta::relational::validation::tests::milestoning::testVal let date = %2010-10-10; let batch = 1; let validation = validate({|Product.all($date)}, [col(x|$x.id, 'id')], {t|$t->extend(col(x:TDSRow[1] | $batch->toOne(), 'Batch_ID'))}, MilestoneMapping, meta::relational::tests::testRuntime(), ^meta::relational::runtime::RelationalExecutionContext(), [], [], meta::relational::extension::relationalExtensions()); - assertSameSQL('select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id", 1 as "Batch_ID" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0"', $validation); + assertEqualsH2Compatible( + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id", 1 as "Batch_ID" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id", 1 as "Batch_ID" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = DATE\'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = DATE\'2010-10-10\') as "unionalias_0"', + $validation->sqlRemoveFormatting() + ); } function <> meta::relational::validation::tests::milestoning::testValidateQueryOpenVariableInKeyExpression():Boolean[1] @@ -106,7 +140,11 @@ function <> meta::relational::validation::tests::milestoning::testVal let date = %2010-10-10; let batch = 1; let validation = validate({|Product.all($date)}, [col(x|$x.id, 'id')], {t|$t->extend(^BasicColumnSpecification(func=x:TDSRow[1] | $batch->toOne(), name='Batch_ID'))}, MilestoneMapping, meta::relational::tests::testRuntime(), ^meta::relational::runtime::RelationalExecutionContext(), [], [], meta::relational::extension::relationalExtensions()); - assertSameSQL('select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id", 1 as "Batch_ID" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0"', $validation); + assertEqualsH2Compatible( + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id", 1 as "Batch_ID" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id", 1 as "Batch_ID" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = DATE\'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = DATE\'2010-10-10\') as "unionalias_0"', + $validation->sqlRemoveFormatting() + ); } function <> meta::relational::validation::tests::milestoning::testValidateQueryOpenVariableInAgg():Boolean[1] @@ -114,7 +152,11 @@ function <> meta::relational::validation::tests::milestoning::testVal let date = %2010-10-10; let count = 3; let validation = validate({|Product.all($date)}, [col(x|$x.id, 'id')], {t|$t->groupBy(['CONSTRAINT_ID'], agg('Sum', x|$x.getInteger('id') + $count, y|$y->sum()))}, MilestoneMapping, meta::relational::tests::testRuntime(), ^meta::relational::runtime::RelationalExecutionContext(), [], [], meta::relational::extension::relationalExtensions()); - assertSameSQL('select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", sum(("unionalias_0"."id" + 3)) as "Sum" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0" group by "CONSTRAINT_ID"', $validation); + assertEqualsH2Compatible( + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", sum(("unionalias_0"."id" + 3)) as "Sum" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0" group by "CONSTRAINT_ID"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", sum(("unionalias_0"."id" + 3)) as "Sum" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = DATE\'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = DATE\'2010-10-10\') as "unionalias_0" group by "CONSTRAINT_ID"', + $validation->sqlRemoveFormatting() + ); } function <> meta::relational::validation::tests::milestoning::testValidateQueryOpenVariableInColAndAgg():Boolean[1] @@ -123,7 +165,11 @@ function <> meta::relational::validation::tests::milestoning::testVal let batch = 1; let count = 3; let validation = validate({|Product.all($date)}, [col(x|$x.id, 'id')], {t|$t->extend(col(x:TDSRow[1] | $batch->toOne() + $batch->toOne(), 'Batch_ID'))->groupBy(['CONSTRAINT_ID', 'Batch_ID'], agg('Sum', x|$x.getInteger('id') + $count, y|$y->sum()))}, MilestoneMapping, meta::relational::tests::testRuntime(), ^meta::relational::runtime::RelationalExecutionContext(), [], [], meta::relational::extension::relationalExtensions()); - assertSameSQL('select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", (1 + 1) as "Batch_ID", sum(("unionalias_0"."id" + 3)) as "Sum" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0" group by "CONSTRAINT_ID","Batch_ID"', $validation); + assertEqualsH2Compatible( + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", (1 + 1) as "Batch_ID", sum(("unionalias_0"."id" + 3)) as "Sum" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0" group by "CONSTRAINT_ID","Batch_ID"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", (1 + 1) as "Batch_ID", sum(("unionalias_0"."id" + 3)) as "Sum" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = DATE\'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = DATE\'2010-10-10\') as "unionalias_0" group by "CONSTRAINT_ID","Batch_ID"', + $validation->sqlRemoveFormatting() + ); } @@ -133,7 +179,11 @@ function <> meta::relational::validation::tests::milestoning::testVal let date2 = %2010-10-11; let batch = 1; let validation = validate({|Product.all($date)}, [col(x|$x.id, 'id'), col(x|$x.classification($date2).type, 'class')], {t|$t->extend(col(x:TDSRow[1] | $batch->toOne(), 'Batch_ID'))}, MilestoneMapping, meta::relational::tests::testRuntime(), ^meta::relational::runtime::RelationalExecutionContext(), [], [], meta::relational::extension::relationalExtensions()); - assertSameSQL('select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id", "unionalias_0"."class" as "class", 1 as "Batch_ID" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id", "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "class" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-11\') where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id", "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "class" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_1" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_1".type) left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-11\') where "productclassificationtablewithbusinesssnapshotmilestoning_1".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_1".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0"', $validation); + assertEqualsH2Compatible( + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id", "unionalias_0"."class" as "class", 1 as "Batch_ID" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id", "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "class" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-11\') where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id", "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "class" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_1" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_1".type) left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-11\') where "productclassificationtablewithbusinesssnapshotmilestoning_1".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_1".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id", "unionalias_0"."class" as "class", 1 as "Batch_ID" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id", "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "class" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-11\') where not "root".id > 0 and "root".snapshotDate = DATE\'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id", "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "class" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_1" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_1".type) left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-11\') where "productclassificationtablewithbusinesssnapshotmilestoning_1".snapshotDate = DATE\'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_1".type = \'\' and "root".snapshotDate = DATE\'2010-10-10\') as "unionalias_0"', + $validation->sqlRemoveFormatting() + ); } function <> meta::relational::validation::tests::milestoning::testValidateQueryWithUnion():Boolean[1] @@ -142,7 +192,11 @@ function <> meta::relational::validation::tests::milestoning::testVal let date2 = %2010-10-11; let batch = 1; let validation = validate({|Product.all($date)}, [col(x|$x.id, 'id')], {t|$t->extend(col(x:TDSRow[1] | $batch->toOne(), 'Batch_ID'))}, MilestoneUnionMapping, meta::relational::tests::testRuntime(), ^meta::relational::runtime::RelationalExecutionContext(), ['idNotNegative'], [], meta::relational::extension::relationalExtensions()); - assertSameSQL('select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "unionBase"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" as "id", 1 as "Batch_ID" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid", "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2010-10-10\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid", null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2010-10-10\') as "unionBase" where not "unionBase"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" > 0', $validation); + assertEqualsH2Compatible( + 'select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "unionBase"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" as "id", 1 as "Batch_ID" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid", "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2010-10-10\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid", null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2010-10-10\') as "unionBase" where not "unionBase"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" > 0', + 'select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "unionBase"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" as "id", 1 as "Batch_ID" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid", "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2010-10-10\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid", null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2010-10-10\') as "unionBase" where not "unionBase"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" > 0', + $validation->sqlRemoveFormatting() + ); } ###Mapping From 086365856d3b694e39b3f9f5bbbefbf4796f5a6c Mon Sep 17 00:00:00 2001 From: Aziem Chawdhary <61746398+aziemchawdhary-gs@users.noreply.github.com> Date: Mon, 16 Oct 2023 10:34:49 +0100 Subject: [PATCH 13/80] Update legend-pure to 4.9.0 (#2367) --- pom.xml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pom.xml b/pom.xml index eabe0d5ae12..0f3f1be88d3 100644 --- a/pom.xml +++ b/pom.xml @@ -104,7 +104,7 @@ - 4.8.0 + 4.9.0 0.24.1 From e52be1218e8d10417685f094228cb1ad6da10f55 Mon Sep 17 00:00:00 2001 From: gs-jp1 <80327721+gs-jp1@users.noreply.github.com> Date: Mon, 16 Oct 2023 10:35:38 +0100 Subject: [PATCH 14/80] Legend SQL - add arguments getter to TableSource (#2366) --- .../legend/engine/query/sql/api/sources/TableSource.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/TableSource.java b/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/TableSource.java index 0c631703cb8..80dcc2ff5ea 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/TableSource.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/TableSource.java @@ -59,6 +59,11 @@ public Optional getNamedArgument(String name) return ListIterate.select(this.arguments, a -> name.equals(a.getName())).getFirstOptional(); } + public List getArguments() + { + return this.arguments; + } + @Override public boolean equals(Object o) { @@ -76,4 +81,4 @@ public String toString() { return ToStringBuilder.reflectionToString(this); } -} \ No newline at end of file +} From 0c9b2cdd5d53dcf391b447662357e7abad816594 Mon Sep 17 00:00:00 2001 From: PrateekGarg-gs Date: Mon, 16 Oct 2023 20:58:23 +0530 Subject: [PATCH 15/80] Fix pure date formatting (#2371) * fix pureDate formatting where subsecond precision > milliseconds in format string * fix formatting tests --- .../dependencies/domain/date/PureDate.java | 25 +++++++------------ .../domain/date/test/TestPureDate.java | 6 +++-- 2 files changed, 13 insertions(+), 18 deletions(-) diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/src/main/java/org/finos/legend/engine/plan/dependencies/domain/date/PureDate.java b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/src/main/java/org/finos/legend/engine/plan/dependencies/domain/date/PureDate.java index f25688e77a8..9a65723f75a 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/src/main/java/org/finos/legend/engine/plan/dependencies/domain/date/PureDate.java +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/src/main/java/org/finos/legend/engine/plan/dependencies/domain/date/PureDate.java @@ -326,26 +326,19 @@ else if (!timeZone.equals(calendar.getTimeZone())) throw new IllegalArgumentException("Date has no sub-second: " + this); } int count = getCharCountFrom(character, formatString, i); - if (count < 3) + int maxLen = count + 1; + int len = this.subsecond.length(); + if (len <= maxLen) { - int maxLen = count + 1; - int len = this.subsecond.length(); - if (len <= maxLen) - { - appendable.append(this.subsecond); - } - else - { - int j = 0; - while (j < maxLen) - { - appendable.append(this.subsecond.charAt(j++)); - } - } + appendable.append(this.subsecond); } else { - appendable.append(this.subsecond); + int j = 0; + while (j < maxLen) + { + appendable.append(this.subsecond.charAt(j++)); + } } i += count; break; diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/src/test/java/org/finos/legend/engine/plan/execution/dependencies/domain/date/test/TestPureDate.java b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/src/test/java/org/finos/legend/engine/plan/execution/dependencies/domain/date/test/TestPureDate.java index f434c8c739e..7fffb860a5b 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/src/test/java/org/finos/legend/engine/plan/execution/dependencies/domain/date/test/TestPureDate.java +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/src/test/java/org/finos/legend/engine/plan/execution/dependencies/domain/date/test/TestPureDate.java @@ -48,9 +48,11 @@ public void testFormat() Assert.assertEquals("2014-03-10", date.format("yyyy-MM-d")); Assert.assertEquals("2014-03-10", date.format("yyyy-MM-dd")); Assert.assertEquals("2014-03-10 4:12:35PM", date.format("yyyy-MM-dd h:mm:ssa")); - Assert.assertEquals("2014-03-10 16:12:35.070004235 GMT", date.format("yyyy-MM-dd HH:mm:ss.SSSS z")); - Assert.assertEquals("2014-03-10T16:12:35.070004235+0000", date.format("yyyy-MM-dd\"T\"HH:mm:ss.SSSSZ")); + Assert.assertEquals("2014-03-10 16:12:35.0700 GMT", date.format("yyyy-MM-dd HH:mm:ss.SSSS z")); + Assert.assertEquals("2014-03-10T16:12:35.0700+0000", date.format("yyyy-MM-dd\"T\"HH:mm:ss.SSSSZ")); Assert.assertEquals("2014-03-10 16:12:35.070Z", date.format("yyyy-MM-dd HH:mm:ss.SSSX")); + Assert.assertEquals("2014-03-10 16:12:35.070004", date.format("yyyy-MM-dd HH:mm:ss.SSSSSS")); + Assert.assertEquals("2014-03-10 16:12:35.070004235", date.format("yyyy-MM-dd HH:mm:ss.SSSSSSSSS")); } @Test From 0e51390df468619fa988729a8c1acf3041170137 Mon Sep 17 00:00:00 2001 From: Aziem Chawdhary <61746398+aziemchawdhary-gs@users.noreply.github.com> Date: Mon, 16 Oct 2023 16:42:16 +0100 Subject: [PATCH 16/80] Add 1_33_0 Pure Protocol files (#2370) * Fix protocol generation for Pure core * Add 1_33_0 protocol files --- .../protocol/pure/PureClientVersions.java | 2 +- .../pom.xml | 14 +- .../pure/v1_33_0/extension/extension.pure | 33 + .../pure/v1_33_0/models/executionPlan.pure | 40 + .../pure/v1_33_0/transfers/executionPlan.pure | 54 + .../protocol/v1_33_0/extension/extension.pure | 75 ++ .../v1_33_0/invocations/execution.pure | 269 ++++ .../invocations/testBuildExecutionInput.pure | 32 + .../v1_33_0/invocations/testLoadModels.pure | 38 + .../pure/protocol/v1_33_0/models/diagram.pure | 117 ++ .../v1_33_0/models/executionPlan.pure | 343 ++++++ .../protocol/v1_33_0/models/metamodel.pure | 833 +++++++++++++ .../pure/protocol/v1_33_0/models/results.pure | 107 ++ .../v1_33_0/scan/buildBasePureModel.pure | 400 ++++++ .../v1_33_0/scan/buildPureModelAsText.pure | 206 ++++ .../v1_33_0/scan/testBuildPureModel.pure | 61 + .../v1_33_0/transfers/executionPlan.pure | 368 ++++++ .../protocol/v1_33_0/transfers/mapping.pure | 224 ++++ .../protocol/v1_33_0/transfers/metamodel.pure | 260 ++++ .../protocol/v1_33_0/transfers/store.pure | 91 ++ .../v1_33_0/transfers/valueSpecification.pure | 1088 +++++++++++++++++ .../pure/v1_33_0/extension/extension.pure | 18 + .../pure/v1_33_0/models/metamodel_apikey.pure | 22 + .../pure/v1_33_0/models/metamodel_base.pure | 21 + .../pure/v1_33_0/models/metamodel_demo.pure | 8 + .../models/metamodel_encryptedkeypair.pure | 22 + .../metamodel_gcp_workforce_federation.pure | 37 + .../v1_33_0/models/metamodel_kerberos.pure | 19 + .../v1_33_0/models/metamodel_username.pure | 22 + .../pure/v1_33_0/models/metamodel_vault.pure | 35 + .../v1_33_0/models/metamodel_vault_aws.pure | 46 + .../v1_33_0/transfers/authentication.pure | 110 ++ .../protocol/protocol_v1_33_0.pure | 63 + .../protocol/v1_33_0/serialization.pure | 219 ++++ .../generation/protocol/protocol_v1_33_0.pure | 39 + .../executionPlan/executionPlan_mongodb.pure | 36 + .../pure/v1_33_0/extensions/extension.pure | 23 + .../v1_33_0/extensions/extension_mongodb.pure | 114 ++ .../v1_33_0/metamodel/runtime_mongodb.pure | 43 + .../v1_33_0/transfers/connection_mongodb.pure | 58 + .../protocol/protocol_v1_33_0.pure | 160 +++ .../v1_33_0/extension/extension_athena.pure | 45 + .../v1_33_0/model/metamodel_connection.pure | 20 + .../v1_33_0/extension/extension_bigQuery.pure | 44 + .../v1_33_0/models/metamodel_bigQuery.pure | 21 + .../extension/extension_databricks.pure | 44 + .../extension/metamodel_connection.pure | 21 + .../v1_33_0/extension/extension_redshift.pure | 48 + .../extension/metamodel_conection.pure | 24 + .../extension/extension_snowflake.pure | 80 ++ .../extension/metamodel_conection.pure | 40 + .../v1_33_0/extension/extension_Spanner.pure | 46 + .../v1_33_0/models/metamodel_Spanner.pure | 22 + .../v1_33_0/extension/extension_trino.pure | 73 ++ .../extension/metamodel_connection.pure | 23 + .../pure/v1_33_0/extension/extension.pure | 31 + .../extension/extension_relational.pure | 390 ++++++ ...cution_relation_executeInRelationalDb.pure | 44 + .../execution_relational_execute.pure | 340 ++++++ .../execution_relational_testConnection.pure | 203 +++ .../execution_relational_testData.pure | 299 +++++ .../models/executionPlan_relational.pure | 155 +++ .../v1_33_0/models/metamodel_connection.pure | 126 ++ .../v1_33_0/models/metamodel_relational.pure | 357 ++++++ .../v1_33_0/models/results_relational.pure | 34 + .../v1_33_0/models/testData_relational.pure | 32 + .../transfers/connection_relational.pure | 211 ++++ .../transfers/metamodel_relational.pure | 461 +++++++ .../pure/v1_33_0/extension/extension.pure | 18 + .../extension/extension_serviceStore.pure | 97 ++ .../models/executionPlan_serviceStore.pure | 63 + .../v1_33_0/models/metamodel_connection.pure | 20 + .../models/metamodel_serviceStore.pure | 187 +++ .../transfers/connection_serviceStore.pure | 29 + .../transfers/metamodel_serviceStore.pure | 192 +++ 75 files changed, 9605 insertions(+), 5 deletions(-) create mode 100644 legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/binding/protocols/pure/v1_33_0/extension/extension.pure create mode 100644 legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/binding/protocols/pure/v1_33_0/models/executionPlan.pure create mode 100644 legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/binding/protocols/pure/v1_33_0/transfers/executionPlan.pure create mode 100644 legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/extension/extension.pure create mode 100644 legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/invocations/execution.pure create mode 100644 legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/invocations/testBuildExecutionInput.pure create mode 100644 legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/invocations/testLoadModels.pure create mode 100644 legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/models/diagram.pure create mode 100644 legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/models/executionPlan.pure create mode 100644 legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/models/metamodel.pure create mode 100644 legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/models/results.pure create mode 100644 legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/scan/buildBasePureModel.pure create mode 100644 legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/scan/buildPureModelAsText.pure create mode 100644 legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/scan/testBuildPureModel.pure create mode 100644 legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/executionPlan.pure create mode 100644 legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/mapping.pure create mode 100644 legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/metamodel.pure create mode 100644 legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/store.pure create mode 100644 legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/valueSpecification.pure create mode 100644 legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/extension/extension.pure create mode 100644 legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_apikey.pure create mode 100644 legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_base.pure create mode 100644 legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_demo.pure create mode 100644 legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_encryptedkeypair.pure create mode 100644 legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_gcp_workforce_federation.pure create mode 100644 legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_kerberos.pure create mode 100644 legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_username.pure create mode 100644 legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_vault.pure create mode 100644 legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_vault_aws.pure create mode 100644 legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/transfers/authentication.pure create mode 100644 legend-engine-xts-avro/legend-engine-xt-avro-pure/src/main/resources/core_external_format_avro/protocol/protocol_v1_33_0.pure create mode 100644 legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/protocol/v1_33_0/serialization.pure create mode 100644 legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/src/main/resources/core_generation/generation/protocol/protocol_v1_33_0.pure create mode 100644 legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_33_0/executionPlan/executionPlan_mongodb.pure create mode 100644 legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_33_0/extensions/extension.pure create mode 100644 legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_33_0/extensions/extension_mongodb.pure create mode 100644 legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_33_0/metamodel/runtime_mongodb.pure create mode 100644 legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_33_0/transfers/connection_mongodb.pure create mode 100644 legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/src/main/resources/core_external_format_protobuf/protocol/protocol_v1_33_0.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/protocols/pure/v1_33_0/extension/extension_athena.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/protocols/pure/v1_33_0/model/metamodel_connection.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/protocols/pure/v1_33_0/extension/extension_bigQuery.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/protocols/pure/v1_33_0/models/metamodel_bigQuery.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/protocols/pure/v1_33_0/extension/extension_databricks.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/protocols/pure/v1_33_0/extension/metamodel_connection.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/protocols/pure/v1_33_0/extension/extension_redshift.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/protocols/pure/v1_33_0/extension/metamodel_conection.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/protocols/pure/v1_33_0/extension/extension_snowflake.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/protocols/pure/v1_33_0/extension/metamodel_conection.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner/relational/protocols/pure/v1_33_0/extension/extension_Spanner.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner/relational/protocols/pure/v1_33_0/models/metamodel_Spanner.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/src/main/resources/core_relational_trino/relational/protocols/pure/v1_33_0/extension/extension_trino.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/src/main/resources/core_relational_trino/relational/protocols/pure/v1_33_0/extension/metamodel_connection.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/extension/extension.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/extension/extension_relational.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/invocations/execution_relation_executeInRelationalDb.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/invocations/execution_relational_execute.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/invocations/execution_relational_testConnection.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/invocations/execution_relational_testData.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/models/executionPlan_relational.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/models/metamodel_connection.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/models/metamodel_relational.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/models/results_relational.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/models/testData_relational.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/transfers/connection_relational.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/transfers/metamodel_relational.pure create mode 100644 legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/extension/extension.pure create mode 100644 legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/extension/extension_serviceStore.pure create mode 100644 legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/models/executionPlan_serviceStore.pure create mode 100644 legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/models/metamodel_connection.pure create mode 100644 legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/models/metamodel_serviceStore.pure create mode 100644 legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/transfers/connection_serviceStore.pure create mode 100644 legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/transfers/metamodel_serviceStore.pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/PureClientVersions.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/PureClientVersions.java index dbce96b871c..5cd5f97d1da 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/PureClientVersions.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/PureClientVersions.java @@ -20,7 +20,7 @@ public class PureClientVersions { - public static ImmutableList versions = Lists.immutable.with("v1_0_0", "v1_1_0", "v1_2_0", "v1_3_0", "v1_4_0", "v1_5_0", "v1_6_0", "v1_7_0", "v1_8_0", "v1_9_0", "v1_10_0", "v1_11_0", "v1_12_0", "v1_13_0", "v1_14_0", "v1_15_0", "v1_16_0", "v1_17_0", "v1_18_0", "v1_19_0", "v1_20_0", "v1_21_0", "v1_22_0", "v1_23_0", "v1_24_0", "v1_25_0", "v1_26_0", "v1_27_0", "v1_28_0", "v1_29_0", "v1_30_0", "v1_31_0", "v1_32_0", "vX_X_X"); + public static ImmutableList versions = Lists.immutable.with("v1_0_0", "v1_1_0", "v1_2_0", "v1_3_0", "v1_4_0", "v1_5_0", "v1_6_0", "v1_7_0", "v1_8_0", "v1_9_0", "v1_10_0", "v1_11_0", "v1_12_0", "v1_13_0", "v1_14_0", "v1_15_0", "v1_16_0", "v1_17_0", "v1_18_0", "v1_19_0", "v1_20_0", "v1_21_0", "v1_22_0", "v1_23_0", "v1_24_0", "v1_25_0", "v1_26_0", "v1_27_0", "v1_28_0", "v1_29_0", "v1_30_0", "v1_31_0", "v1_32_0", "v1_33_0", "vX_X_X"); public static ImmutableList versionsSameCase = versions.collect(String::toLowerCase); static diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml index c1878c5dbc9..8b7d129b955 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml @@ -372,7 +372,8 @@ generate-protocol-version - core/pure/binding/protocols/pure + core/pure/binding/protocols/pure + core/pure/binding/protocols/pure @@ -388,10 +389,15 @@ - - + + - + + + + + + diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/binding/protocols/pure/v1_33_0/extension/extension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/binding/protocols/pure/v1_33_0/extension/extension.pure new file mode 100644 index 00000000000..bc3525c674e --- /dev/null +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/binding/protocols/pure/v1_33_0/extension/extension.pure @@ -0,0 +1,33 @@ +// Copyright 2022 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::protocols::pure::v1_33_0::metamodel::executionPlan::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::external::shared::format::*; +import meta::pure::mapping::*; +import meta::pure::extension::*; + +function meta::protocols::pure::v1_33_0::external::shared::format::serializerExtension(type:String[1]): meta::pure::extension::SerializerExtension[1] +{ + ^meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0( + transfers_executionPlan_transformNode = + {mapping:Mapping[1], extensions:Extension[*] | + [ + d:meta::external::format::shared::executionPlan::ExternalFormatExternalizeExecutionNode[1] | transformExternalFormatExternalizeExecutionNode($d, $mapping, $extensions), + s:meta::external::format::shared::executionPlan::ExternalFormatInternalizeExecutionNode[1] | transformExternalFormatInternalizeExecutionNode($s, $mapping, $extensions), + t:meta::external::format::shared::executionPlan::ExternalFormatExternalizeTDSExecutionNode[1] | transformExternalFormatExternalizeTDSExecutionNode($t, $mapping, $extensions) + + ] + } + ); +} \ No newline at end of file diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/binding/protocols/pure/v1_33_0/models/executionPlan.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/binding/protocols/pure/v1_33_0/models/executionPlan.pure new file mode 100644 index 00000000000..21dec321030 --- /dev/null +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/binding/protocols/pure/v1_33_0/models/executionPlan.pure @@ -0,0 +1,40 @@ +// Copyright 2022 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::protocols::pure::v1_33_0::metamodel::executionPlan::*; +import meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::external::shared::format::*; +import meta::pure::mapping::*; +import meta::pure::extension::*; + +Class meta::protocols::pure::v1_33_0::metamodel::external::shared::format::executionPlan::ExternalFormatExternalizeExecutionNode extends ExecutionNode +{ + contentType : String[1]; + checked : Boolean[1]; + binding : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::external::shared::format::executionPlan::ExternalFormatExternalizeTDSExecutionNode extends ExecutionNode +{ + contentType : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::external::shared::format::executionPlan::ExternalFormatInternalizeExecutionNode extends ExecutionNode +{ + contentType : String[1]; + binding : String[1]; + enableConstraints : Boolean[1]; + checked : Boolean[1]; + tree : RootGraphFetchTree[0..1]; +} \ No newline at end of file diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/binding/protocols/pure/v1_33_0/transfers/executionPlan.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/binding/protocols/pure/v1_33_0/transfers/executionPlan.pure new file mode 100644 index 00000000000..a5e0c3ece53 --- /dev/null +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/binding/protocols/pure/v1_33_0/transfers/executionPlan.pure @@ -0,0 +1,54 @@ +// Copyright 2022 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::protocols::pure::v1_33_0::metamodel::executionPlan::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::external::shared::format::*; +import meta::pure::mapping::*; +import meta::pure::extension::*; + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::external::shared::format::transformExternalFormatExternalizeExecutionNode(node:meta::external::format::shared::executionPlan::ExternalFormatExternalizeExecutionNode[1], mapping:meta::pure::mapping::Mapping[1], extensions:Extension[*]): ExecutionNode[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::external::shared::format::executionPlan::ExternalFormatExternalizeExecutionNode( + _type = 'externalFormatExternalize', + resultType = $node.resultType->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), + resultSizeRange = $node.resultSizeRange->map(s| $s->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()), + checked = $node.checked, + binding = $node.binding->elementToPath(), + contentType = $node.binding.contentType + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::external::shared::format::transformExternalFormatExternalizeTDSExecutionNode(node:meta::external::format::shared::executionPlan::ExternalFormatExternalizeTDSExecutionNode[1], mapping:meta::pure::mapping::Mapping[1], extensions:Extension[*]): ExecutionNode[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::external::shared::format::executionPlan::ExternalFormatExternalizeTDSExecutionNode( + _type = 'externalFormatExternalizeTDS', + resultType = $node.resultType->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), + resultSizeRange = $node.resultSizeRange->map(s| $s->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()), + contentType = $node.contentType + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::external::shared::format::transformExternalFormatInternalizeExecutionNode(node:meta::external::format::shared::executionPlan::ExternalFormatInternalizeExecutionNode[1], mapping:meta::pure::mapping::Mapping[1], extensions:Extension[*]): ExecutionNode[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::external::shared::format::executionPlan::ExternalFormatInternalizeExecutionNode( + _type = 'externalFormatInternalize', + resultType = $node.resultType->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), + resultSizeRange = $node.resultSizeRange->map(s| $s->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()), + tree = $node.tree->map(t| $t->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformGraphFetchTree([], ^Map>(), $extensions))->cast(@meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::RootGraphFetchTree), + binding = $node.binding->elementToPath(), + enableConstraints = $node.enableConstraints, + checked = $node.checked, + contentType = $node.binding.contentType + ); +} \ No newline at end of file diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/extension/extension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/extension/extension.pure new file mode 100644 index 00000000000..82d846fbe59 --- /dev/null +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/extension/extension.pure @@ -0,0 +1,75 @@ +// 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. + +import meta::pure::mapping::*; +import meta::pure::store::*; +import meta::pure::runtime::*; +import meta::json::*; + +import meta::protocols::pure::v1_33_0::extension::*; + +Class meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0 extends meta::pure::extension::SerializerExtension +{ + moduleSerializerExtensions : ModuleSerializerExtension[*]; + + moduleSerializerExtension(module:String[1]) + { + $this.moduleSerializerExtensions->filter(f|$f.module == $module)->first() + } : ModuleSerializerExtension[0..1]; + + transfers_execute_transformActivity : Function<{Nil[1] -> meta::pure::mapping::Activity[1]}>[*]; + + transfers_mapping_transformMapping : Function<{SetImplementation[1]->Boolean[1]}>[*]; + transfers_mapping_transformSetImplementation : Function<{Mapping[1]->Function<{Nil[1]->meta::protocols::pure::v1_33_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; + transfers_mapping_transformSetImplementation2 : Function<{Mapping[1], meta::pure::extension::Extension[*] ->Function<{Nil[1]->meta::protocols::pure::v1_33_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; + transfers_mapping_transformAssociationImplementation : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_33_0::metamodel::mapping::AssociationMapping[1]}>[*]}>[0..1]; + + transfers_valueSpecification_transformAny : Function<{String[*],Map>[1], Multiplicity[1], FunctionExpression[0..1], Boolean[1], meta::pure::extension::Extension[*]->Function<{Nil[1]->meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[1]}>[*]}>[0..1]; + + transfers_executionPlan_transformNode : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_33_0::metamodel::executionPlan::ExecutionNode[1]}>[*]}>[0..1]; + transfers_executionPlan_transformNode_GraphFetchM2MExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_33_0::metamodel::store::Store[1]}>[*]; + transfers_executionPlan_transformNode_StoreStreamReadingExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_33_0::metamodel::store::Store[1]}>[*]; + transfers_executionPlan_transformResultType : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_33_0::metamodel::executionPlan::ResultType[1]}>[*]}>[0..1]; + transfers_executionPlan_transformSetImplementation : PairBoolean[1]}>, Function<{PropertyMapping[1]->Map>[1]}>>[0..1]; + + transfers_store_transformStore : Function<{Nil[1]->meta::protocols::pure::v1_33_0::metamodel::store::Store[1]}>[*]; + transfers_store_transformStore2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_33_0::metamodel::store::Store[1]}>[*]}>[0..1]; + transfers_store_transformConnection : Function<{Nil[1]->meta::protocols::pure::v1_33_0::metamodel::runtime::Connection[1]}>[*]; + transfers_store_transformConnection2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_33_0::metamodel::runtime::Connection[1]}>[*]}>[0..1]; + + scan_buildBasePureModel_buildPureModelFromMapping1 : Function<{Nil[1]->Store[*]}>[*]; + scan_buildBasePureModel_buildPureModelFromMapping2 : Store[*]; + + scan_buildBasePureModel_getExtraElementsFromStores : Function<{Store[*], meta::pure::extension::Extension[*]->meta::protocols::pure::v1_33_0::metamodel::PackageableElement[*]}>[0..1]; + + scan_buildPureModelAsText_getAllElementsFromMapping : Function<{Store[*]->Store[*]}>[0..1]; + scan_buildPureModelAsText_getAllElementsFromMapping2 : Function<{Store[*]->PackageableElement[*]}>[0..1]; + scan_buildPureModelAsText_getCorrectedElementSourceInformation : Function<{meta::pure::metamodel::PackageableElement[1] -> SourceInformation[1]}>[0..1]; + + scan_buildBasePureModel_findAllTypesFromMapping : Function<{Nil[1]->Type[*]}>[*]; + scan_buildBasePureModel_extractStores : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; + scan_buildBasePureModel_processProperties : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; + + invocation_execution_execute1 : Function<{ExecutionContext[1]->Boolean[1]}>[*]; + invocation_execution_execute2_pre : PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]; + invocation_execution_execute2_pre2 : Function<{meta::pure::extension::Extension[*] -> PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]}>[0..1]; + invocation_execution_execute2_post : PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]; + invocation_execution_execute2_post2 : Function<{meta::pure::extension::Extension[*] -> PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]}>[0..1]; + invocation_execution_transformContext : Function<{Nil[1]->meta::protocols::pure::v1_33_0::metamodel::ExecutionContext[1]}>[*]; +} + +Class meta::protocols::pure::v1_33_0::extension::ModuleSerializerExtension +{ + module:String[1]; +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/invocations/execution.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/invocations/execution.pure new file mode 100644 index 00000000000..1adb756abeb --- /dev/null +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/invocations/execution.pure @@ -0,0 +1,269 @@ +// Copyright 2020 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::pure::mapping::*; +import meta::alloy::metadataServer::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::runtime::*; +import meta::pure::functions::io::http::*; +import meta::protocols::pure::v1_33_0::invocation::execution::execute::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::context::*; +import meta::pure::runtime::*; +import meta::json::*; + + +Enum meta::protocols::pure::v1_33_0::invocation::execution::execute::ExecutionMode +{ + INTERACTIVE, SEMI_INTERACTIVE, FULL_INTERACTIVE +} + +function meta::protocols::pure::v1_33_0::invocation::execution::execute::processJsonStreamingResult(result:JSONObject[1]) : Pair,List>[1] +{ + let value = $result.keyValuePairs->filter(kv |$kv.key.value == 'values').value; + ^Pair, List>(first=^List(values=$value->toOne()->toCompactJSONString()), second=^List(values=[])); +} + +function meta::protocols::pure::v1_33_0::invocation::execution::execute::processCSV_M2M(resultType:String[1], resultClassType:Class[1], result:JSONObject[1]) : Pair,List>[1] +{ + let extendedJSONDeserializationConfig = ^ExtendedJSONDeserializationConfig(nullReplacementInArray = ^TDSNull(), typeKeyName='', failOnUnknownProperties=true); + let jsonKeyValues = $result.keyValuePairs; + let values = $jsonKeyValues->filter(kv |$kv.key.value == 'values').value->map(v|$v->fromJSON($resultClassType,$extendedJSONDeserializationConfig)); + let activities = $jsonKeyValues->filter(kv |$kv.key.value == ($resultType+'Activities')).value->map(a|$a->fromJSON(Activity))->cast(@Activity); + ^Pair, List>(first=^List(values=$values), second = ^List(values=$activities)); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::context::transformContext(context:ExecutionContext[1], extensions: meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::ExecutionContext[1] +{ + $context->match($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).invocation_execution_transformContext->concatenate([ + a:meta::pure::runtime::ExecutionContext[1]| + ^meta::protocols::pure::v1_33_0::metamodel::ExecutionContext + ( + queryTimeOutInSeconds = $a.queryTimeOutInSeconds, + enableConstraints = $a.enableConstraints, + _type = 'BaseExecutionContext' + ) + ])->toOneMany()); +} + + +function meta::protocols::pure::v1_33_0::invocation::execution::execute::generatePlan(json: String[1], host: String[1], port: Integer[1]):String[1] +{ + let resp = executeHTTPRaw( + ^URL(host = $host , port = $port, path = '/api/pure/v1/execution/generatePlan'), + HTTPMethod.POST, + 'application/json', + $json + ); + assertEq(200, $resp.statusCode, | $resp.statusCode->toString()+' \''+$resp.entity+'\''); + $resp.entity; +} + +function meta::protocols::pure::v1_33_0::invocation::execution::execute::getPlanReturnType(planJSON:String[1]) : meta::protocols::pure::v1_33_0::metamodel::executionPlan::ResultType[1] +{ + let rootExecNode = $planJSON->parseJSON()->cast(@JSONObject).keyValuePairs->filter(kv | $kv.key.value == 'rootExecutionNode').value; + let retType = $rootExecNode->cast(@JSONObject).keyValuePairs->filter(kv | $kv.key.value == 'resultType').value->cast(@JSONObject)->toOne(); + if($retType->getValue('_type')->cast(@JSONString).value == 'partialClass', + | $retType->fromJSON(meta::protocols::pure::v1_33_0::metamodel::executionPlan::PartialClassResultType)->cast(@meta::protocols::pure::v1_33_0::metamodel::executionPlan::PartialClassResultType)->toOne();, + | if($retType->getValue('_type')->cast(@JSONString).value == 'class', + | ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::ClassResultType + ( + _type = 'class', + class = $retType->getValue('class')->cast(@JSONString).value->toOne(), + setImplementations = $retType->getValue('setImplementations')->cast(@JSONArray).values->map(x | $x->fromJSON(meta::protocols::pure::v1_33_0::metamodel::executionPlan::SetImplementationInfo)->cast(@meta::protocols::pure::v1_33_0::metamodel::executionPlan::SetImplementationInfo)) + ), + | $retType->fromJSON(meta::protocols::pure::v1_33_0::metamodel::executionPlan::ResultType)->cast(@meta::protocols::pure::v1_33_0::metamodel::executionPlan::ResultType)->toOne(); + ); + ); +} + +function meta::protocols::pure::v1_33_0::invocation::execution::execute::executePlan(plan:meta::pure::executionPlan::ExecutionPlan[1], context: ExecutionContext[0..1], host: String[1], port: Integer[1], extensions:meta::pure::extension::Extension[*]) : meta::pure::mapping::Result[1] +{ + let planJSON = $plan->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformPlan($extensions) + ->meta::json::toJSON(1000, meta::json::config(false, false, true, true)); + let resultType = $planJSON->meta::protocols::pure::v1_33_0::invocation::execution::execute::getPlanReturnType(); + let resultJSON = executePlan($plan, $host, $port, $extensions); + $resultJSON->legendBuildResultFromJSON($resultType, $plan.mapping, $plan.runtime, $context, $extensions); +} + +function meta::protocols::pure::v1_33_0::invocation::execution::execute::executePlan(plan:meta::pure::executionPlan::ExecutionPlan[1], host: String[1], port: Integer[1], extensions:meta::pure::extension::Extension[*]) : String[1] +{ + let alloyPlan = $plan->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformPlan($extensions); + executePlan($alloyPlan->meta::json::toJSON(1000, meta::json::config(false, false, true, true)), $host, $port); +} + +function meta::protocols::pure::v1_33_0::invocation::execution::execute::executePlan(planJSON:String[1], host: String[1], port: Integer[1]) : String[1] +{ + let resp = meta::pure::functions::io::http::executeHTTPRaw( + ^URL(host = $host , port = $port, path = 'api/pure/v1/execution/executePlan'), + HTTPMethod.POST, + 'application/json', + $planJSON + ); + assertEq(200, $resp.statusCode, | $resp.statusCode->toString()+' \''+$resp.entity->replace('\\n', '\n')->replace('\\t', '')+'\''); + $resp.entity; +} + +function meta::protocols::pure::v1_33_0::invocation::execution::execute::buildExecutionInput(f:FunctionDefinition<{->T[m]}>[1], m:Mapping[1], runtime:Runtime[1], exeCtx:ExecutionContext[0..1], version:String[1], serializationKind:String[1], executionMode:String[1], extensions:meta::pure::extension::Extension[*]):String[1] +{ + meta::protocols::pure::v1_33_0::invocation::execution::execute::buildExecutionInput($f, $m, $runtime, $exeCtx, $version, $serializationKind, $executionMode, [], $extensions) +} + +function meta::protocols::pure::v1_33_0::invocation::execution::execute::buildExecutionInput(f:FunctionDefinition<{->T[m]}>[1], m:Mapping[1], runtime:Runtime[1], exeCtx:ExecutionContext[0..1], version:String[1], serializationKind:String[1], executionMode:String[1], pureMetadataServer:String[0..1], extensions:meta::pure::extension::Extension[*]):String[1] +{ + let transformedContext = if($exeCtx->isNotEmpty(), | $exeCtx->toOne()->transformContext($extensions),| []); + let execMode = ExecutionMode->extractEnumValue($executionMode); + + let fromMappings = findExpressionsForFunctionInFunctionDefinition($f, from_T_m__Mapping_1__Runtime_1__T_m_).parametersValues->filter(p | $p.genericType.rawType->toOne() == Mapping)->cast(@InstanceValue).values->cast(@Mapping); + let mappings = $m->concatenate(getMappingsFromRuntime($runtime)) + ->concatenate($fromMappings) + ->filter(m |$m.name->isNotEmpty()); + + + ^meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::ExecutionInput + ( + clientVersion = 'v1_33_0', + function = transformLambda($f, $extensions), + mapping = if($m.name->isEmpty(), |[], |$m->toOne()->elementToPath()), + runtime = if($runtime.connections->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), + context = $transformedContext, + model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, + |let stores = $runtime.connections.element->cast(@meta::pure::store::Store) + ->map(s|$s->findAllStoreIncludes()) + ->removeDuplicates() + ->filter(s | !$s->instanceOf(meta::pure::mapping::modelToModel::ModelStore)) + ->map(c|^meta::protocols::pure::v1_33_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_33_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); + let transformedMappings = $mappings->map(m|^meta::protocols::pure::v1_33_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_33_0::metamodel::PackageableElementType.MAPPING,path=$m->elementToPath())); + ^meta::protocols::pure::v1_33_0::metamodel::PureModelContextPointer + ( + _type='pointer', + serializer = ^meta::protocols::Protocol + ( + name='pure', + version = 'v1_33_0' + ), + sdlcInfo = ^meta::protocols::pure::v1_33_0::metamodel::PureSDLC + ( + _type = 'pure', + baseVersion = '-1', //meta::vcs::svn::metamodel::getCurrentSvnRevisionNumber('/system')->toString(), + version = 'none', + overrideUrl = $pureMetadataServer, + packageableElementPointers = $stores->concatenate($transformedMappings) + ) + );, + |if ($serializationKind == 'json', + |$mappings->buildBasePureModelFromMapping($extensions).second, + |$mappings->buildPureModelContextTextFromMappingAndQuery($f, $extensions) + ); + ) + )->alloyToJSON(); +} + +function meta::protocols::pure::v1_33_0::invocation::execution::execute::alloyExecute(f:FunctionDefinition<{->T[m]}>[1], m:Mapping[1], pureRuntime:Runtime[1], context:ExecutionContext[0..1], host:String[1], port:Integer[1], version:String[1], executionMode:String[1], extensions:meta::pure::extension::Extension[*]):meta::pure::mapping::Result[1] +{ + legendExecute($f, $m, $pureRuntime, $context, $host, $port, $version, 'json', $executionMode, $extensions); +} + +function meta::protocols::pure::v1_33_0::invocation::execution::execute::legendExecute(f:FunctionDefinition<{->T[m]}>[1], m:Mapping[1], pureRuntime:Runtime[1], context:ExecutionContext[0..1], host:String[1], port:Integer[1], version:String[1], serializationKind:String[1], executionMode:String[1], extensions:meta::pure::extension::Extension[*]):meta::pure::mapping::Result[1] +{ + let transformedContext = if($context->isNotEmpty(), | $context->toOne()->transformContext($extensions),| []); + let execMode = meta::protocols::pure::v1_33_0::invocation::execution::execute::ExecutionMode->extractEnumValue($executionMode); + let mappings = $m->concatenate(getMappingsFromRuntime($pureRuntime)); + + + // This choice is made as ExecutionContext information can affect the results computed by the executionPlan endpoint + // If we have either of the two ExecutionContexts in the conditional - throwing the generated execution plan to the executePlan endpoint does *not* return the same results as hittign execute with function,mapping, and runtime + // hence we default to old behaviour in the case of AuthContext of VectorBatchQueryContext, otherwise we use the two execution plan endpoints + let typeAndresultJSON = if(isOptionSet('ExecPlan') && !($context->isNotEmpty() && $extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).invocation_execution_execute1->fold({a,b|$a->eval($context) || $b}, false)), + | let planGenerated = if(isOptionSet('PlanLocal'), + {| + let basicPlan = if($m.name->isEmpty(), + |meta::pure::executionPlan::executionPlan($f, if($context->isEmpty(), |^ExecutionContext(), |$context->toOne()), $extensions, noDebug());, + |meta::pure::executionPlan::executionPlan($f, $m, $pureRuntime, if($context->isEmpty(), |^ExecutionContext(), |$context->toOne()), $extensions, noDebug());); + let boundPlan = meta::pure::executionPlan::platformBinding::localBinding::bindTestPlanToPlatformLocallyWithClasspathExtensions($basicPlan); + let unused = if(isOptionSet('ShowLocalPlan'), |println($boundPlan->meta::pure::executionPlan::toString::planToString(true, $extensions)), |[]); + $boundPlan->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformPlan($extensions)->meta::json::toJSON(1000, meta::json::config(false, false, true, true)); + }, + {| + generatePlan($f, $m, $pureRuntime, $context, $host, $port, $version, $serializationKind, $executionMode, $extensions); + } + ); + let resultType = $planGenerated->getPlanReturnType(); + let result = $planGenerated->executePlan($host, $port); + ^Pair(first=$resultType,second=$result);, + + | let alloyExecuteResult = alloyExecuteLambda($f,$m,$pureRuntime, $context, $host, $port, $version, $serializationKind, $executionMode, $extensions); + let retGenericType = $f.expressionSequence->evaluateAndDeactivate()->last()->toOne().genericType; + let retType = $retGenericType.rawType->toOne(); + ^Pair(first=$retType,second=$alloyExecuteResult); + + ); + + let resultJSON=$typeAndresultJSON.second->cast(@String); + let resultClassType=$typeAndresultJSON.first; + + let res= legendBuildResultFromJSON($resultJSON, $resultClassType, $m, $pureRuntime, $context, $extensions); + + let values = $res.values->cast(@T); + ^Result(values=$values, activities=$res.activities); +} + +function meta::protocols::pure::v1_33_0::invocation::execution::execute::legendBuildResultFromJSON(resultJSON:String[1],resultClassType:Any[1], m:Mapping[1], pureRuntime:Runtime[1], context:ExecutionContext[0..1], extensions:meta::pure::extension::Extension[*]):meta::pure::mapping::Result[1] +{ + let result = $resultJSON->meta::json::parseJSON()->cast(@JSONObject); + let builder = $result.keyValuePairs->filter(kv |$kv.key.value == 'builder').value->cast(@JSONObject); + + let builderType = if($builder->isNotEmpty(), | $builder.keyValuePairs->filter(kv|$kv.key.value == '_type').value->cast(@JSONString).value->toOne(),| []); + + let extendedJSONDeserializationConfig = ^ExtendedJSONDeserializationConfig(nullReplacementInArray = ^TDSNull(), typeKeyName='', failOnUnknownProperties=true); + + let handlers= $extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).invocation_execution_execute2_pre->concatenate( + $extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).invocation_execution_execute2_pre2->map(f | $f->eval($extensions)))->concatenate([ + pair ( builderType:String[1]|$builderType->isNotEmpty() && $builderType->toOne()=='json', + {resultJSON:String[1], result:JSONObject[1], m:Mapping[1], r:Runtime[1], e:ExtendedJSONDeserializationConfig[1], co:ExecutionContext[0..1]|processJsonStreamingResult($result)}), + + pair ( builderType:String[1]|$builderType->isNotEmpty() && ($builderType->toOne()=='csv' || $builderType->toOne()=='modelToModel'), + {resultJSON:String[1], result:JSONObject[1], m:Mapping[1], r:Runtime[1], e:ExtendedJSONDeserializationConfig[1], co:ExecutionContext[0..1]| let retType = if($resultClassType->instanceOf(meta::protocols::pure::v1_33_0::metamodel::executionPlan::ClassResultType), + | $resultClassType->cast(@meta::protocols::pure::v1_33_0::metamodel::executionPlan::ClassResultType).class->pathToElement()->cast(@Class), // This case is if we hit the generatePlan/executePlan endpoint, in which case we get the type from the exec plan. + | $resultClassType->cast(@Class)); // This case if is we hit the execute end point, in which case the type information is coming from the function + processCSV_M2M($builderType->toOne(), $retType, $result);} + ) + ]->concatenate($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).invocation_execution_execute2_post) + ->concatenate($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).invocation_execution_execute2_post2->map(f | $f->eval($extensions)))); + + let res = $handlers->filter(h|$h.first->eval($builderType))->first()->toOne().second->eval($resultJSON, $result, $m, $pureRuntime, $extendedJSONDeserializationConfig, $context); + + let values = $res.first.values; + + ^Result(values=$values, activities=$res.second.values); +} + +function meta::protocols::pure::v1_33_0::invocation::execution::execute::generatePlan(f: FunctionDefinition<{->T[m]}>[1], m: Mapping[1], runtime: Runtime[1], exeCtx: ExecutionContext[0..1], host: String[1], port: Integer[1], version: String[1], serializationKind:String[1], executionMode: String[1], extensions:meta::pure::extension::Extension[*]):String[1] +{ + let resultJSON = buildExecutionInput($f, $m, $runtime, $exeCtx, $version, $serializationKind, $executionMode, $extensions); + generatePlan($resultJSON, $host, $port); +} + +function meta::protocols::pure::v1_33_0::invocation::execution::execute::alloyExecuteLambda(f:FunctionDefinition<{->T[m]}>[1], m:Mapping[1], pureRuntime:Runtime[1], context:ExecutionContext[0..1], host:String[1], port:Integer[1], version:String[1], serializationKind:String[1], executionMode:String[1], extensions:meta::pure::extension::Extension[*]) : String[1] +{ + let payload = buildExecutionInput($f,$m,$pureRuntime,$context,$version, $serializationKind, $executionMode, $extensions); + + let resp = executeHTTPRaw(^URL(host = $host , port=$port, path = '/api/pure/'+$version+'/execution/execute'), + HTTPMethod.POST, + 'application/json', + $payload + ); + + assertEq(200, $resp.statusCode, | $resp.statusCode->toString()+' \''+$resp.entity+'\''); + $resp.entity; +} \ No newline at end of file diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/invocations/testBuildExecutionInput.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/invocations/testBuildExecutionInput.pure new file mode 100644 index 00000000000..3db8d7526c6 --- /dev/null +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/invocations/testBuildExecutionInput.pure @@ -0,0 +1,32 @@ +// Copyright 2023 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::pure::mapping::*; +import meta::pure::runtime::*; +import meta::pure::extension::*; +import meta::protocols::pure::v1_33_0::invocation::execution::*; + +function <> meta::protocols::pure::v1_33_0::invocation::execution::testbuildExecutionInput():Boolean[1] +{ + let outputString = meta::protocols::pure::v1_33_0::invocation::execution::execute::buildExecutionInput((|[]), ^Mapping(), ^Runtime(), ^ExecutionContext(), 'v1', 'json', 'SEMI_INTERACTIVE', 'http://pure.metadataserver.com', meta::pure::extension::defaultExtensions()); + let expectedString = '{"function":{"_type":"lambda","body":[{"multiplicity":{"upperBound":0,"lowerBound":0},"_type":"collection"}]},"context":{"_type":"BaseExecutionContext"},"model":{"sdlcInfo":{"baseVersion":"-1","_type":"pure","version":"none","overrideUrl":"http:\/\/pure.metadataserver.com"},"_type":"pointer","serializer":{"name":"pure","version":"v1_33_0"}},"clientVersion":"v1_33_0"}'; + meta::pure::functions::boolean::equalJsonStrings($outputString, $expectedString); +} + +function <> meta::protocols::pure::v1_33_0::invocation::execution::testbuildExecutionInputWithoutOverrideUrl():Boolean[1] +{ + let outputString = meta::protocols::pure::v1_33_0::invocation::execution::execute::buildExecutionInput((|[]), ^Mapping(), ^Runtime(), ^ExecutionContext(), 'v1', 'json', 'SEMI_INTERACTIVE', [], meta::pure::extension::defaultExtensions()); + let expectedString = '{"function":{"_type":"lambda","body":[{"multiplicity":{"upperBound":0,"lowerBound":0},"_type":"collection"}]},"context":{"_type":"BaseExecutionContext"},"model":{"sdlcInfo":{"baseVersion":"-1","_type":"pure","version":"none"},"_type":"pointer","serializer":{"name":"pure","version":"v1_33_0"}},"clientVersion":"v1_33_0"}'; + meta::pure::functions::boolean::equalJsonStrings($outputString, $expectedString); +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/invocations/testLoadModels.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/invocations/testLoadModels.pure new file mode 100644 index 00000000000..73ac0d76cb8 --- /dev/null +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/invocations/testLoadModels.pure @@ -0,0 +1,38 @@ +// Copyright 2020 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::pure::mapping::*; +import meta::pure::functions::io::http::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::*; +import meta::protocols::pure::v1_33_0::invocation::testLoadModel::*; +import meta::protocols::pure::v1_33_0::metamodel::*; + +function meta::protocols::pure::v1_33_0::invocation::testLoadModel::legendTestLoadModel(package:Package[1], host:String[1], port:Integer[1], version:String[1]):Boolean[1] +{ + $package->elementToPath()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::buildBasePureModelFromPackageStr([])->legendTestLoadModel($host, $port, $version); +} + +function meta::protocols::pure::v1_33_0::invocation::testLoadModel::legendTestLoadModel(mapping:Mapping[1], host:String[1], port:Integer[1], version:String[1]):Boolean[1] +{ + $mapping->elementToPath()->buildBasePureModelFromMappingStr([])->legendTestLoadModel($host, $port, $version); +} + +function <> meta::protocols::pure::v1_33_0::invocation::testLoadModel::legendTestLoadModel(context:String[1], host:String[1], port:Integer[1], version:String[1]):Boolean[1] +{ + let resp = executeHTTPRaw(^URL(host = $host , port=$port, path = '/api/pure/'+$version+'/compilation/compile'), + HTTPMethod.POST, + 'application/json', + $context); + assertEq(200, $resp.statusCode, | $resp.entity); +} \ No newline at end of file diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/models/diagram.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/models/diagram.pure new file mode 100644 index 00000000000..3009956d8d7 --- /dev/null +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/models/diagram.pure @@ -0,0 +1,117 @@ +// Copyright 2020 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. + +###Pure +import meta::protocols::pure::v1_33_0::metamodel::diagram::view::*; +import meta::protocols::pure::v1_33_0::metamodel::diagram::geometry::*; +import meta::protocols::pure::v1_33_0::metamodel::diagram::visibility::*; +import meta::protocols::pure::v1_33_0::metamodel::diagram::rendering::*; + +// Diagram + +Class meta::protocols::pure::v1_33_0::metamodel::diagram::Diagram extends meta::protocols::pure::v1_33_0::metamodel::PackageableElement +{ + classViews : ClassView[*]; + propertyViews : PropertyView[*]; + generalizationViews : GeneralizationView[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::diagram::view::ClassView +{ + id : String[1]; + + class : String[1]; + + position : Point[0..1]; + rectangle : Rectangle[0..1]; + + hideStereotypes : Boolean[0..1]; + hideTaggedValues : Boolean[0..1]; + hideProperties : Boolean[0..1]; + + <> rendering : Rendering[0..1]; + <> visibility : TypeVisibility[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::diagram::view::RelationshipView +{ + sourceView : String[1]; + targetView : String[1]; + line : Line[0..1]; + <> rendering : Rendering[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::diagram::view::PropertyView extends meta::protocols::pure::v1_33_0::metamodel::diagram::view::RelationshipView +{ + property : meta::protocols::pure::v1_33_0::metamodel::domain::PropertyPtr[1]; + <> visibility : PropertyVisibility[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::diagram::view::GeneralizationView extends meta::protocols::pure::v1_33_0::metamodel::diagram::view::RelationshipView +{ +} + +// Visibility + +Class <> meta::protocols::pure::v1_33_0::metamodel::diagram::visibility::Visibility +{ + stereotypes: Boolean[0..1]; + taggedValues : Boolean[0..1]; +} + +Class <> meta::protocols::pure::v1_33_0::metamodel::diagram::visibility::PropertyVisibility extends Visibility +{ + type: Boolean[0..1]; + multiplicity : Boolean[0..1]; +} + +Class <> meta::protocols::pure::v1_33_0::metamodel::diagram::visibility::TypeVisibility extends Visibility +{ + attributes: Boolean[0..1]; +} + +// Rendering + +Class <> meta::protocols::pure::v1_33_0::metamodel::diagram::rendering::Rendering +{ + color : String[1]; + lineWidth : Float[1]; +} + +// Geometry + +Class meta::protocols::pure::v1_33_0::metamodel::diagram::geometry::Point +{ + x : Float[1]; + y : Float[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::diagram::geometry::Rectangle +{ + width : Float[1]; + height : Float[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::diagram::geometry::Line +{ + <> style : LineType[0..1]; + points : Point[*]; +} + +Enum <> meta::protocols::pure::v1_33_0::metamodel::diagram::geometry::LineType +{ + SIMPLE, + RIGHT_ANGLE +} + diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/models/executionPlan.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/models/executionPlan.pure new file mode 100644 index 00000000000..9364d714900 --- /dev/null +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/models/executionPlan.pure @@ -0,0 +1,343 @@ +// Copyright 2020 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. + +###Pure +import meta::protocols::*; +import meta::protocols::pure::v1_33_0::metamodel::executionPlan::*; + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::ExecutionPlan +{ + serializer : Protocol[1]; + templateFunctions : String[*]; + rootExecutionNode : ExecutionNode[1]; + kerberos: String [0..1]; + globalImplementationSupport : meta::protocols::pure::v1_33_0::metamodel::executionPlan::PlatformImplementation[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::ExecutionNode +{ + _type : String[1]; + resultType : ResultType[1]; + resultSizeRange : meta::protocols::pure::v1_33_0::metamodel::domain::Multiplicity[0..1]; + requiredVariableInputs : meta::protocols::pure::v1_33_0::metamodel::executionPlan::VariableInput[*]; + executionNodes : ExecutionNode[*]; + implementation : meta::protocols::pure::v1_33_0::metamodel::executionPlan::PlatformImplementation[0..1]; + authDependent: Boolean[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::VariableInput +{ + name : String[1]; + type : String[1]; + multiplicity : meta::protocols::pure::v1_33_0::metamodel::domain::Multiplicity[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::AllocationExecutionNode extends ExecutionNode +{ + varName : String[1]; + realizeInMemory : Boolean[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::PureExpressionPlatformExecutionNode extends ExecutionNode +{ + pure : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::PlatformUnionExecutionNode extends ExecutionNode +{ + isChildrenExecutionParallelizable: Boolean[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::PlatformMergeExecutionNode extends ExecutionNode +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::FreeMarkerConditionalExecutionNode extends ExecutionNode +[ + $this.freeMarkerBooleanExpression->startsWith('${(') && $this.freeMarkerBooleanExpression->endsWith(')?c}') +] +{ + freeMarkerBooleanExpression : String[1]; + trueBlock : ExecutionNode[1]; + falseBlock : ExecutionNode[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::VariableResolutionExecutionNode extends ExecutionNode +{ + varName : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::PlatformImplementation +{ + _type : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::JavaPlatformImplementation extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::PlatformImplementation +{ + classes : JavaClass[*]; + executionClassFullName : String[0..1]; + executionMethodName : String[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::JavaClass +{ + package : String[1]; + name : String[1]; + source : String[1]; + byteCode : String[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::CompiledClass +{ + className : String[1]; + byteCode : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::ConstantExecutionNode extends ExecutionNode +{ + values : Any[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::SequenceExecutionNode extends ExecutionNode +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::MultiResultSequenceExecutionNode extends ExecutionNode +{ +} + + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::AggregationAwareExecutionNode extends ExecutionNode +{ + aggregationAwareActivity: String[1]; +} + + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::ModelToModelExecutionNode extends ExecutionNode +{ + func : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[1]; + jsonPropertyPaths : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[*]; + pathToMapping : String[1]; + pathToClasses : String[*]; + connection : meta::protocols::pure::v1_33_0::metamodel::runtime::Connection[1]; + pureModelContextData : meta::protocols::pure::v1_33_0::metamodel::PureModelContextData[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::FunctionParametersValidationNode extends ExecutionNode +{ + functionParameters:meta::protocols::pure::v1_33_0::metamodel::valueSpecification::Variable[*]; + parameterValidationContext : meta::protocols::pure::v1_33_0::metamodel::executionPlan::ParameterValidationContext[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::ParameterValidationContext +{ + _type : String[1]; + varName: String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::EnumValidationContext extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::ParameterValidationContext +{ + validEnumValues: String[*]; +} + +Class <> meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::GlobalGraphFetchExecutionNode extends ExecutionNode +{ + graphFetchTree : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::GraphFetchTree[1]; + children : meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::GlobalGraphFetchExecutionNode[*]; + localGraphFetchExecutionNode : meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::LocalGraphFetchExecutionNode [1]; + parentIndex : Integer[0..1]; + enableConstraints : Boolean[0..1]; + checked : Boolean[0..1]; + localTreeIndices : Integer[*]; + dependencyIndices : Integer[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::StoreMappingGlobalGraphFetchExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::GlobalGraphFetchExecutionNode +{ + store : String[1]; + xStorePropertyMapping : meta::protocols::pure::v1_33_0::metamodel::mapping::xStore::XStorePropertyMapping[0..1]; + xStorePropertyFetchDetails : meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::XStorePropertyFetchDetails[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::XStorePropertyFetchDetails +{ + supportsCaching : Boolean[1]; + propertyPath : String[1]; + sourceMappingId : String[1]; + sourceSetId : String[1]; + targetMappingId : String[1]; + targetSetId : String[1]; + targetPropertiesOrdered : String[*]; + subTree : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::PlatformGlobalGraphFetchExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::GlobalGraphFetchExecutionNode +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::LocalGraphFetchExecutionNode extends ExecutionNode +{ + nodeIndex : Integer[1]; + parentIndex : Integer[0..1]; + graphFetchTree : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::GraphFetchTree[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::PlatformPrimitiveQualifierLocalGraphFetchExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::LocalGraphFetchExecutionNode +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::store::inMemory::StoreStreamReadingExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::ExecutionNode +{ + graphFetchTree : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::RootGraphFetchTree[1]; + store : meta::protocols::pure::v1_33_0::metamodel::store::Store[0..1]; + connection : meta::protocols::pure::v1_33_0::metamodel::runtime::Connection[1]; + enableConstraints : Boolean[1]; + checked : Boolean[1]; +} + +Class <> meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::store::inMemory::InMemoryGraphFetchExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::LocalGraphFetchExecutionNode +{ + children : meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::store::inMemory::InMemoryGraphFetchExecutionNode[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::store::inMemory::InMemoryRootGraphFetchExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::store::inMemory::InMemoryGraphFetchExecutionNode +{ + batchSize : Integer[0..1]; + checked : Boolean[1]; + filter: Boolean[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::store::inMemory::InMemoryCrossStoreGraphFetchExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::store::inMemory::InMemoryRootGraphFetchExecutionNode +{ + supportsBatching : Boolean[1]; + xStorePropertyMapping : meta::protocols::pure::v1_33_0::metamodel::mapping::xStore::XStorePropertyMapping[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::store::inMemory::InMemoryPropertyGraphFetchExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::store::inMemory::InMemoryGraphFetchExecutionNode +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::ErrorExecutionNode extends ExecutionNode +{ + message : String[1]; +} + + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::ResultType +{ + _type : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::DataTypeResultType extends ResultType +{ + dataType : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::VoidResultType extends ResultType +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::ClassResultType extends ResultType +{ + class : String[1]; + setImplementations : SetImplementationInfo[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::PartialClassResultType extends ClassResultType +{ + propertiesWithParameters : meta::protocols::pure::v1_33_0::metamodel::executionPlan::PropertyWithParameters[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::PropertyWithParameters +{ + property : String[1]; + parameters : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::SetImplementationInfo +{ + class : String[1]; + mapping : String[1]; + id : String[1]; + propertyMappings : meta::protocols::pure::v1_33_0::metamodel::executionPlan::PropertyMapping[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::PropertyMapping +{ + property : String[1]; + type : String[1]; + enumMapping : Map>[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::TDSResultType extends ResultType +{ + tdsColumns : meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::TDSColumn[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::PureModelContext +{ + _type : String[1]; + serializer : Protocol[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::PureModelContextPointer extends meta::protocols::pure::v1_33_0::metamodel::PureModelContext +{ + sdlcInfo : meta::protocols::pure::v1_33_0::metamodel::SDLC[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::SDLC +{ + _type : String[1]; + version : String[0..1]; + baseVersion : String[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::PureSDLC extends meta::protocols::pure::v1_33_0::metamodel::SDLC +{ + overrideUrl : String[0..1]; + packageableElementPointers : meta::protocols::pure::v1_33_0::metamodel::PackageableElementPointer[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::AlloySDLC extends meta::protocols::pure::v1_33_0::metamodel::SDLC +{ + project : String[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::PureModelContextData extends meta::protocols::pure::v1_33_0::metamodel::PureModelContext +{ + origin : meta::protocols::pure::v1_33_0::metamodel::PureModelContextPointer[0..1]; + elements : meta::protocols::pure::v1_33_0::metamodel::PackageableElement[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::PureModelContextText extends meta::protocols::pure::v1_33_0::metamodel::PureModelContext +{ + code: String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::PureModelContextComposite extends meta::protocols::pure::v1_33_0::metamodel::PureModelContext +{ + data : meta::protocols::pure::v1_33_0::metamodel::PureModelContextData[0..1]; + pointer : meta::protocols::pure::v1_33_0::metamodel::PureModelContextPointer[0..1]; +} + + +Class meta::protocols::pure::v1_33_0::metamodel::QueryExecutionInfo +{ + clientVersion : String[1]; + function : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[1]; + mapping : String[1]; + runtime : meta::protocols::pure::v1_33_0::metamodel::Runtime[1]; + context : meta::protocols::pure::v1_33_0::metamodel::ExecutionContext[0..1]; + model : meta::protocols::pure::v1_33_0::metamodel::PureModelContext[1]; +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/models/metamodel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/models/metamodel.pure new file mode 100644 index 00000000000..1e4eb7bd7a6 --- /dev/null +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/models/metamodel.pure @@ -0,0 +1,833 @@ +// Copyright 2020 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. + +###Pure +//----------- +// Metamodel +//----------- +import meta::protocols::pure::v1_33_0::metamodel::domain::*; + +Class meta::protocols::pure::v1_33_0::metamodel::SourceInformation +{ + sourceId : String[1]; + mainLine: Integer[1]; + mainColumn: Integer[1]; + startLine: Integer[1]; + startColumn: Integer[1]; + endLine: Integer[1]; + endColumn: Integer[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::domain::Domain +{ + classes : meta::protocols::pure::v1_33_0::metamodel::domain::Class[*]; + associations : meta::protocols::pure::v1_33_0::metamodel::domain::Association[*]; + enums : meta::protocols::pure::v1_33_0::metamodel::domain::Enumeration[*]; + profiles : meta::protocols::pure::v1_33_0::metamodel::domain::Profile[*]; + measures : meta::protocols::pure::v1_33_0::metamodel::domain::Measure[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::PackageableElement +{ + _type : String[1]; + <> name : String[1]; + <> package : String[0..1]; + sourceInformation: SourceInformation[0..1]; +} + + +Class meta::protocols::pure::v1_33_0::metamodel::PackageableElementPointer +{ + type : meta::protocols::pure::v1_33_0::metamodel::PackageableElementType[0..1]; + path : String[1]; +} + +Enum meta::protocols::pure::v1_33_0::metamodel::PackageableElementType +{ + CLASS, + PACKAGE, + STORE, + MAPPING, + SERVICE, + CACHE, + PIPELINE, + FLATTEN, + DIAGRAM, + DATASTORESPEC, + UNIT, + MEASURE +} + +Class meta::protocols::pure::v1_33_0::metamodel::ExecutionContext +{ + queryTimeOutInSeconds: Integer[0..1]; + enableConstraints: Boolean[0..1]; + _type: String[1]; +} + + +Class meta::protocols::pure::v1_33_0::metamodel::AuthenticationContext extends meta::protocols::pure::v1_33_0::metamodel::ExecutionContext +{ + runAs: String[0..1]; +} + + +Class meta::protocols::pure::v1_33_0::metamodel::AnalyticsExecutionContext extends meta::protocols::pure::v1_33_0::metamodel::ExecutionContext +{ + useAnalytics: Boolean[1]; + toFlowSetFunction: meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[1]; +} + +Class <> meta::protocols::pure::v1_33_0::metamodel::Runtime +{ + _type: String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::LegacyRuntime extends meta::protocols::pure::v1_33_0::metamodel::Runtime +{ + connections: meta::protocols::pure::v1_33_0::metamodel::runtime::Connection[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::EngineRuntime extends meta::protocols::pure::v1_33_0::metamodel::Runtime +{ + mappings:meta::protocols::pure::v1_33_0::metamodel::PackageableElementPointer[*]; + connections: meta::protocols::pure::v1_33_0::metamodel::StoreConnections[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::StoreConnections +{ + store: meta::protocols::pure::v1_33_0::metamodel::PackageableElementPointer[1]; + storeConnections: meta::protocols::pure::v1_33_0::metamodel::IdentifiedConnection[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::IdentifiedConnection +{ + id: String[1]; + connection: meta::protocols::pure::v1_33_0::metamodel::runtime::Connection[1]; +} + + +Class meta::protocols::pure::v1_33_0::metamodel::domain::AnnotatedElement +{ + stereotypes : StereotypePtr[*]; + taggedValues : meta::protocols::pure::v1_33_0::metamodel::domain::TaggedValue[*]; + sourceInformation: SourceInformation[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::domain::Profile extends meta::protocols::pure::v1_33_0::metamodel::PackageableElement +{ + stereotypes : String[*]; + tags : String[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::domain::StereotypePtr +{ + profile : String[1]; + value : String[1]; + profileSourceInformation: SourceInformation[0..1]; + sourceInformation: SourceInformation[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::domain::TagPtr +{ + profile : String[1]; + value : String[1]; + profileSourceInformation: SourceInformation[0..1]; + sourceInformation: SourceInformation[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::domain::PropertyPtr +{ + class : String[1]; + property : String[1]; + sourceInformation: SourceInformation[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::domain::TaggedValue +{ + tag : meta::protocols::pure::v1_33_0::metamodel::domain::TagPtr[1]; + value : String[1]; + sourceInformation: SourceInformation[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::domain::Constraint +{ + name : String[1]; + functionDefinition : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[1]; + externalId : String[0..1]; + enforcementLevel : String[0..1]; + sourceInformation : SourceInformation[0..1]; + messageFunction : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::domain::Class extends meta::protocols::pure::v1_33_0::metamodel::PackageableElement, meta::protocols::pure::v1_33_0::metamodel::domain::AnnotatedElement +{ + superTypes : String[*]; + constraints : Constraint[*]; + properties : meta::protocols::pure::v1_33_0::metamodel::domain::Property[*]; + qualifiedProperties : meta::protocols::pure::v1_33_0::metamodel::domain::QualifiedProperty[*]; + originalMilestonedProperties : meta::protocols::pure::v1_33_0::metamodel::domain::Property[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::domain::MappingClass extends meta::protocols::pure::v1_33_0::metamodel::domain::Class +{ + setImplementation : meta::protocols::pure::v1_33_0::metamodel::mapping::ClassMapping[0..1]; + rootClass : meta::protocols::pure::v1_33_0::metamodel::domain::Class[0..1]; + localProperties : meta::protocols::pure::v1_33_0::metamodel::domain::Property[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::domain::Association extends meta::protocols::pure::v1_33_0::metamodel::PackageableElement, meta::protocols::pure::v1_33_0::metamodel::domain::AnnotatedElement +{ + properties : meta::protocols::pure::v1_33_0::metamodel::domain::Property[*]; + qualifiedProperties : meta::protocols::pure::v1_33_0::metamodel::domain::QualifiedProperty[*]; + originalMilestonedProperties : meta::protocols::pure::v1_33_0::metamodel::domain::Property[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::domain::Property extends meta::protocols::pure::v1_33_0::metamodel::domain::AnnotatedElement +{ + defaultValue : meta::protocols::pure::v1_33_0::metamodel::domain::DefaultValue[0..1]; + name : String[1]; + multiplicity : meta::protocols::pure::v1_33_0::metamodel::domain::Multiplicity[1]; + type : String[1]; + propertyTypeSourceInformation: SourceInformation[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::domain::QualifiedProperty extends meta::protocols::pure::v1_33_0::metamodel::domain::AnnotatedElement +{ + name : String[1]; + parameters : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::Variable[*]; + returnType : String[1]; + returnMultiplicity : meta::protocols::pure::v1_33_0::metamodel::domain::Multiplicity[1]; + body : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::domain::Multiplicity +{ + <> lowerBound : Integer[0..1]; + <> upperBound : Integer[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::domain::Enumeration extends meta::protocols::pure::v1_33_0::metamodel::PackageableElement, meta::protocols::pure::v1_33_0::metamodel::domain::AnnotatedElement +{ + values : meta::protocols::pure::v1_33_0::metamodel::domain::EnumValue[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::domain::EnumValue extends meta::protocols::pure::v1_33_0::metamodel::domain::AnnotatedElement +{ + value : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::domain::DefaultValue +{ + value : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[1]; + sourceInformation : SourceInformation[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::domain::Measure extends meta::protocols::pure::v1_33_0::metamodel::PackageableElement +{ + canonicalUnit : meta::protocols::pure::v1_33_0::metamodel::domain::Unit[0..1]; + nonCanonicalUnits : meta::protocols::pure::v1_33_0::metamodel::domain::Unit[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::domain::Unit extends meta::protocols::pure::v1_33_0::metamodel::PackageableElement +{ + measure : String[1]; + conversionFunction : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[0..1]; +} + + + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification +{ + _type : String[1]; + sourceInformation: SourceInformation[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::Variable extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification +{ + name : String[1]; + supportsStream : Boolean[0..1]; + // To Remove + multiplicity : meta::protocols::pure::v1_33_0::metamodel::domain::Multiplicity[0..1]; + class : String[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::application::FunctionApplication extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification +{ + parameters : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::application::AppliedProperty extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::application::FunctionApplication +{ + property : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::application::AppliedFunction extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::application::FunctionApplication +{ + function : String[1]; + fControl : String[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::application::UnknownAppliedFunction extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::application::FunctionApplication +{ + function : String[1]; + returnType : String[1]; + returnMultiplicity: meta::protocols::pure::v1_33_0::metamodel::domain::Multiplicity[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::RawValue extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::MulRawValue extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::RawValue +{ + multiplicity : meta::protocols::pure::v1_33_0::metamodel::domain::Multiplicity[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::KeyExpression extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::RawValue +{ + add : Boolean[0..1]; + key: meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[1]; + expression: meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::GenericTypeInstance extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::PackageableElementPtr +{ + +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::EnumValue extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::RawValue +{ + fullPath : String[1]; + value : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::TDSAggregateValue +{ + name : String[1]; + mapFn : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[1]; + aggregateFn : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::TDSSortInformation +{ + column : String[1]; + direction : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::TDSColumnInformation +{ + name: String[1]; + columnFn: meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::AggregateValue +{ + mapFn : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[1]; + aggregateFn : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::OlapOperation +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::TdsOlapAggregation +{ + function : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[1]; + columnName : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::TdsOlapRank +{ + function : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Whatever extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::MulRawValue +{ + class : String[1]; + values : Any[0..1];//Map[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::List extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::RawValue +{ + values : Any[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::PackageableElementPtr extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::RawValue +{ + fullPath : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::RuntimeInstance +{ + runtime : meta::protocols::pure::v1_33_0::metamodel::Runtime[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::ExecutionContextInstance +{ + executionContext : meta::protocols::pure::v1_33_0::metamodel::ExecutionContext[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Path +{ + name : String[1]; + startType : String[1]; + path : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::PathElement[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Pair +{ + first : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[1]; + second : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::PathElement extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::RawValue +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::PropertyPathElement extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::PathElement +{ + property : String[1]; + parameters : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::RawValue +{ + parameters : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::Variable[*]; + body : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::Collection extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification +{ + multiplicity : meta::protocols::pure::v1_33_0::metamodel::domain::Multiplicity[1]; + values : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ClassInstance extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification +{ + type : String[1]; + value : Any[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::UnitInstance extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification +{ + unitType : String[1]; + unitValue : Number[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::CInteger extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::RawValue +{ + value : Integer[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::CDecimal extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::RawValue +{ + value : Decimal[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::CString extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::RawValue +{ + value : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::CBoolean extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::RawValue +{ + value : Boolean[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::CFloat extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::RawValue +{ + value : Float[1]; +} + +Class <> meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::CDate extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::RawValue +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::CDateTime extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::CDate +{ + value : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::CStrictDate extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::CDate +{ + value : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::CLatestDate extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::CDate +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::GraphFetchTree +{ + _type : String[1]; + subTrees : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::GraphFetchTree[*]; + subTypeTrees : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::SubTypeGraphFetchTree[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::RootGraphFetchTree extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::GraphFetchTree +{ + class : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::PropertyGraphFetchTree extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::GraphFetchTree +{ + property : String[1]; + parameters : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[*]; + alias : String[0..1]; + subType : String[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::SubTypeGraphFetchTree extends meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::GraphFetchTree +{ + subTypeClass : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::AlloySerializationConfig +{ + typeKeyName : String[1]; + includeType: Boolean[0..1]; + includeEnumType: Boolean[0..1]; + dateTimeFormat: String[0..1]; + removePropertiesWithNullValues: Boolean[0..1]; + removePropertiesWithEmptySets: Boolean[0..1]; + fullyQualifiedTypePath: Boolean[0..1]; + includeObjectReference: Boolean[0..1]; +} + +Enum meta::protocols::pure::v1_33_0::metamodel::objectReference::AlloyObjectReferenceType +{ + Relational +} + +Class meta::protocols::pure::v1_33_0::metamodel::objectReference::AlloyObjectReference +{ + type : meta::protocols::pure::v1_33_0::metamodel::objectReference::AlloyObjectReferenceType[1]; + pathToMapping : String[1]; + setId : String[1]; + operationResolvedSetsId : String[*]; +} + + +Class meta::protocols::pure::v1_33_0::metamodel::store::Store extends meta::protocols::pure::v1_33_0::metamodel::PackageableElement +{ + includedStores:String[*]; +} + + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::Mapping extends meta::protocols::pure::v1_33_0::metamodel::PackageableElement +{ + includedMappings: meta::protocols::pure::v1_33_0::metamodel::mapping::MappingInclude[*]; + classMappings : meta::protocols::pure::v1_33_0::metamodel::mapping::ClassMapping[*]; + associationMappings : meta::protocols::pure::v1_33_0::metamodel::mapping::AssociationMapping[*]; + enumerationMappings : meta::protocols::pure::v1_33_0::metamodel::mapping::EnumerationMapping[*]; + tests: meta::protocols::pure::v1_33_0::metamodel::mapping::MappingTest[0..*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::MappingTest +{ + name: String[1]; + query: meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[1]; + inputData: meta::protocols::pure::v1_33_0::metamodel::mapping::InputData[*]; + assert: meta::protocols::pure::v1_33_0::metamodel::mapping::MappingTestAssert[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::InputData +{ + _type: String[1]; + sourceInformation: SourceInformation[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::ObjectInputData extends meta::protocols::pure::v1_33_0::metamodel::mapping::InputData +{ + sourceClass: String[1]; + data: String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::MappingTestAssert +{ + _type: String[1]; + sourceInformation: SourceInformation[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::ExpectedOutputMappingTestAssert extends meta::protocols::pure::v1_33_0::metamodel::mapping::MappingTestAssert +{ + expectedOutput: String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::MappingInclude +{ + includedMapping: String[1]; + sourceDatabasePath: String[0..1]; + targetDatabasePath: String[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::ClassMapping +{ + id : String[1]; + _type : String[1]; + class : String[1]; + root : Boolean[1]; + extendsClassMappingId : String[0..1]; + mappingClass: meta::protocols::pure::v1_33_0::metamodel::domain::MappingClass[0..1]; + sourceInformation: SourceInformation[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::AssociationMapping +{ + id : String[1]; + _type : String[1]; + association : String[1]; + stores : String[*]; +} + +Enum meta::protocols::pure::v1_33_0::metamodel::mapping::MappingOperation +{ + STORE_UNION, ROUTER_UNION, INHERITANCE, MERGE +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::OperationClassMapping extends meta::protocols::pure::v1_33_0::metamodel::mapping::ClassMapping +{ + parameters : String[*]; + operation : meta::protocols::pure::v1_33_0::metamodel::mapping::MappingOperation[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::MergeOperationClassMapping extends meta::protocols::pure::v1_33_0::metamodel::mapping::OperationClassMapping +{ + + validationFunction : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::AggregationAwareClassMapping extends meta::protocols::pure::v1_33_0::metamodel::mapping::ClassMapping +{ + mainSetImplementation:meta::protocols::pure::v1_33_0::metamodel::mapping::ClassMapping[1]; + propertyMappings : meta::protocols::pure::v1_33_0::metamodel::mapping::PropertyMapping[*]; + aggregateSetImplementations: meta::protocols::pure::v1_33_0::metamodel::mapping::AggregateSetImplementationContainer[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::AggregateSetImplementationContainer +{ + index : Integer[1]; + setImplementation: meta::protocols::pure::v1_33_0::metamodel::mapping::ClassMapping[1]; + aggregateSpecification: meta::protocols::pure::v1_33_0::metamodel::mapping::AggregateSpecification[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::AggregateSpecification +{ + canAggregate: Boolean[1]; + groupByFunctions: meta::protocols::pure::v1_33_0::metamodel::mapping::GroupByFunctions[*]; + aggregateValues: meta::protocols::pure::v1_33_0::metamodel::mapping::AggregateFunctions[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::GroupByFunctions +{ + groupByFn: meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::AggregateFunctions +{ + mapFn: meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[1]; + aggregateFn: meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::PropertyMapping +{ + _type : String[1]; + property : PropertyPtr[1]; + source : String[0..1]; + target : String[1]; + localMappingProperty : meta::protocols::pure::v1_33_0::metamodel::mapping::LocalMappingPropertyInfo[0..1]; + sourceInformation: SourceInformation[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::LocalMappingPropertyInfo +{ + type : String[1]; + multiplicity : meta::protocols::pure::v1_33_0::metamodel::domain::Multiplicity[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::InlineEmbeddedPropertyMapping extends meta::protocols::pure::v1_33_0::metamodel::mapping::PropertyMapping +{ + id : String[1]; + setImplementationId : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::EnumerationMapping +{ + id : String[1]; + sourceType: String[0..1]; + enumeration : String[1]; + enumValueMappings : meta::protocols::pure::v1_33_0::metamodel::mapping::EnumValueMapping[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::EnumValueMapping +{ + enumValue : String[1]; + sourceValues: meta::protocols::pure::v1_33_0::metamodel::mapping::EnumValueMappingSourceValue[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::EnumValueMappingSourceValue +{ + _type: String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::EnumValueMappingStringSourceValue extends meta::protocols::pure::v1_33_0::metamodel::mapping::EnumValueMappingSourceValue +{ + value: String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::EnumValueMappingIntegerSourceValue extends meta::protocols::pure::v1_33_0::metamodel::mapping::EnumValueMappingSourceValue +{ + value: Integer[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::EnumValueMappingEnumSourceValue extends meta::protocols::pure::v1_33_0::metamodel::mapping::EnumValueMappingSourceValue +{ + enumeration: String[1]; + value: String[1]; +} + + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::PureInstanceClassMapping extends meta::protocols::pure::v1_33_0::metamodel::mapping::ClassMapping +{ + srcClass : String[0..1]; + propertyMappings : meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::PurePropertyMapping[*]; + filter : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::PurePropertyMapping extends meta::protocols::pure::v1_33_0::metamodel::mapping::PropertyMapping +{ + explodeProperty : Boolean[0..1]; + enumMappingId : String[0..1]; + transform : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::xStore::XStoreAssociationMapping extends meta::protocols::pure::v1_33_0::metamodel::mapping::AssociationMapping +{ + propertyMappings : meta::protocols::pure::v1_33_0::metamodel::mapping::PropertyMapping[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::xStore::XStorePropertyMapping extends meta::protocols::pure::v1_33_0::metamodel::mapping::PropertyMapping +{ + crossExpression : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::AggregationAwarePropertyMapping extends meta::protocols::pure::v1_33_0::metamodel::mapping::PropertyMapping +{ +} + + + +Class meta::protocols::pure::v1_33_0::metamodel::runtime::Connection +{ + _type: String[1]; + element: String[1]; +} + + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::ModelConnection extends meta::protocols::pure::v1_33_0::metamodel::runtime::Connection +{ + input : meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::ModelInput[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::JsonModelConnection extends meta::protocols::pure::v1_33_0::metamodel::runtime::Connection +{ + class : String[1]; + url : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::XmlModelConnection extends meta::protocols::pure::v1_33_0::metamodel::runtime::Connection +{ + class : String[1]; + url : String[1]; +} + + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::ModelChainConnection extends meta::protocols::pure::v1_33_0::metamodel::runtime::Connection +{ + mappings : String[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::ModelInput +{ + _type: String[1]; + class : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::ModelStringInput extends meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::ModelInput +{ + instances : String[*]; +} + +###Pure +import meta::protocols::pure::v1_33_0::metamodel::executableMapping::*; + +Class meta::protocols::pure::v1_33_0::metamodel::executableMapping::ExecutableMapping extends meta::protocols::pure::v1_33_0::metamodel::PackageableElement +{ + tests : Test[1..*]; + mapping : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executableMapping::Test +{ + data : TestData[*]; + asserts : TestAssert[1..*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executableMapping::TestAssert +{ + expected:meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[*]; + inputs : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[*]; + comparisonKey : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[0..1]; + comparisonType : ComparisonType[0..1]; +} + +Enum meta::protocols::pure::v1_33_0::metamodel::executableMapping::ComparisonType +{ + EQUALS, + SET_EQUALS +} + +Class meta::protocols::pure::v1_33_0::metamodel::executableMapping::TestData +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::executableMapping::SetBasedStoreTestData extends TestData +{ + store : String[1]; + data : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executableMapping::ModelTestData extends TestData +{ + classTestData : ModelClassTestData[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executableMapping::ModelClassTestData extends TestData +{ + class : String[1]; + instances : String[*]; +} + +###Pure +Class meta::protocols::pure::v1_33_0::metamodel::domain::Function extends meta::protocols::pure::v1_33_0::metamodel::PackageableElement, meta::protocols::pure::v1_33_0::metamodel::domain::AnnotatedElement +{ + preConstraints:meta::protocols::pure::v1_33_0::metamodel::domain::Constraint[*]; + postConstraints:meta::protocols::pure::v1_33_0::metamodel::domain::Constraint[*]; + returnType:String[1]; + returnMultiplicity:meta::protocols::pure::v1_33_0::metamodel::domain::Multiplicity[1]; + parameters : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::Variable[*]; + body : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[*]; + +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/models/results.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/models/results.pure new file mode 100644 index 00000000000..6d7a0b716a5 --- /dev/null +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/models/results.pure @@ -0,0 +1,107 @@ +// Copyright 2020 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. + +###Pure +//--------- +// Execute +//--------- +Class meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::ExecutionInput +{ + clientVersion:String[1]; + function:meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[1]; + mapping:String[0..1]; + runtime:meta::protocols::pure::v1_33_0::metamodel::Runtime[0..1]; + context:meta::protocols::pure::v1_33_0::metamodel::ExecutionContext[0..1]; + model:meta::protocols::pure::v1_33_0::metamodel::PureModelContext[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::Result +{ + builder : meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::Builder[1]; + activities : meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::ExecutionActivity[*]; + generationInfo : meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::GenerationInfo[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::GenerationInfo +{ + generationId : String[1]; + activatedBy : String[1]; + activatedTimestamp : Integer[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::ExecutionActivity +{ + _type : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::AggregationAwareActivity extends meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::ExecutionActivity +{ + rewrittenQuery : String[1]; +} + + +Class meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::Res +{ + columns : String[*]; + rows : meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::Row[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::Builder +{ + _type : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::TDSBuilder extends meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::Builder +{ + columns : meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::TDSColumn[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::ClassBuilder extends meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::Builder +{ + class : String[1]; + mapping : String[1]; + classMappings : meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::ClassMappingInfo[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::DataTypeBuilder extends meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::Builder +{ + type : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::ClassMappingInfo +{ + class : String[1]; + setImplementationId : String[1]; + properties : meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::PropertyInfo[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::PropertyInfo +{ + property : String[1]; + type : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::TDSColumn +{ + name : String[1]; + doc : String[0..1]; + type : String[0..1]; + relationalType : String[0..1]; + enumMapping : Map>[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::Row +{ + values : Any[*]; +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/scan/buildBasePureModel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/scan/buildBasePureModel.pure new file mode 100644 index 00000000000..045d058decb --- /dev/null +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/scan/buildBasePureModel.pure @@ -0,0 +1,400 @@ +// Copyright 2020 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::protocols::*; +import meta::json::*; +import meta::pure::store::*; +import meta::pure::mapping::modelToModel::*; +import meta::pure::milestoning::*; +import meta::pure::mapping::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::*; + +Class <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::AllTypes +{ + classes : Class[*]; + enumerations : Enumeration[*]; + measures : Measure[*]; +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::buildPureModelContextPointer(pointers:meta::protocols::pure::v1_33_0::metamodel::PackageableElementPointer[*], baseVersion:String[1], protocol:Protocol[1]):meta::protocols::pure::v1_33_0::metamodel::PureModelContextPointer[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::PureModelContextPointer + ( + _type='pointer', + serializer = $protocol, + sdlcInfo= ^meta::protocols::pure::v1_33_0::metamodel::PureSDLC + ( + _type = 'pure', + baseVersion = $baseVersion, + version = 'none', + packageableElementPointers = $pointers + ) + ) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::findInheritedTypes(classes:Class[*]):Type[*] +{ + let inherittedClasses = $classes->map(class| $class->getAllClassGeneralisations())->filter(c|!$c->isWithinPackage(meta::pure::metamodel))->filter(c|!$c->in($classes))->remove(Any); + let typeUsedByInheritted = $inherittedClasses.properties->map(f|$f->functionReturnType().rawType); + $inherittedClasses->concatenate($typeUsedByInheritted)->removeDuplicates()->remove(Any); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::scan(v:ValueSpecification[1]):Type[*] +{ + $v->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::scan([])->distinct() +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::scan(v:Any[1], visited:FunctionDefinition[*]):Type[*] +{ + let matchClass = [c:Class[1]| $c, + e:Enumeration[1]| $e, + a:Any[*]| [] ]; + + $v->match( + [ + {fe:FunctionExpression[1]| + let params = $fe.parametersValues->evaluateAndDeactivate()->map(p|$p->scan($visited)); + let func = $fe.func->scan($visited); + $fe.genericType.rawType->concatenate($params)->concatenate($func); + }, + i:InstanceValue[1] | $i.values->map(v | $v->scan($visited)), + k:meta::pure::functions::lang::KeyExpression[1] | $k.expression->scan($visited);, + lf :LambdaFunction[1] | $lf.expressionSequence->evaluateAndDeactivate()->map(e|$e->scan($visited))->concatenate($lf.classifierGenericType.typeArguments.rawType->cast(@FunctionType).parameters.genericType.rawType)->removeDuplicates(), + v:VariableExpression[1] | [], + {cfd:ConcreteFunctionDefinition[1]| + if ($cfd->in($visited) || ($cfd->elementToPath()->startsWith('meta::') && not($cfd->meta::alloy::isMetaAlloyTestDependency())), + | [], + | let newVisited = $visited->concatenate($cfd); + $cfd.expressionSequence->evaluateAndDeactivate()->map(e|$e->scan($newVisited)); + ); + }, + a: Any[1] | $a + + ] + )->map(a | $a->match($matchClass))->filter(c|$c->meta::alloy::isMetaAlloyTestDependency() || !$c->elementToPath()->startsWith('meta::')); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::excludeTypes(types:Type[*], validPackages:String[*]):Type[*] +{ + $types->remove(Any) + ->removeDuplicates() + ->filter(c|let p = $c->elementToPath(); + !$c->instanceOf(MappingClass) && $validPackages->fold({a,b|$b || $p->startsWith($a)}, false); + ); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::process(path:String[1], area:String[1]):String[*] +{ + let n = $area+'::'; + let l = $n->length(); + let index = $path->indexOf('::', $l); + let dms = if($index == -1, + |$path, + |let name = $path->substring($l, $index); + ['apps','datamarts']->map(c|$c+'::'+$name); + ); + $dms->concatenate(['apps::model', 'model']); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::navigateAssos(subset:Type[*], alreadyProcessed:Type[*], validPackages:String[*]):Type[*] +{ + let classes = $subset->filter(c|$c->instanceOf(Class) && !$c->instanceOf(MappingClass))->cast(@Class); + let res = $classes->map(c|$c.properties->concatenate($c.propertiesFromAssociations)->map(f|$f->functionReturnType().rawType) + ->concatenate( + $c.qualifiedProperties->concatenate($c.qualifiedPropertiesFromAssociations)->evaluateAndDeactivate() + ->filter(p|!$p->hasGeneratedMilestoningPropertyStereotype()) + ->map(q|let fType = $q->functionType(); + let params = $fType.parameters->map(p|$p.genericType.rawType); + $params->concatenate($fType.returnType.rawType)->concatenate($q.expressionSequence->map(x|$x->scan())); + ) + ) + ->concatenate( + $c.constraints->map(c|$c.functionDefinition.expressionSequence->evaluateAndDeactivate()->map(e|$e->scan())) + ) + + ); + + let filteredClasses = $classes->excludeTypes($validPackages)->cast(@Class); + + let newAll = $filteredClasses + ->concatenate($filteredClasses->map(c|$c->getAllClassGeneralisations())) + ->concatenate($filteredClasses->map(c|$c->allSpecializations())) + ->concatenate($res) + ->excludeTypes($validPackages); + + let set = $newAll->removeAllOptimized($alreadyProcessed); + if ($set->isEmpty(), + |$alreadyProcessed, + |$set->navigateAssos($alreadyProcessed->concatenate($set), $validPackages) + ); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::findAllTypes(seedTypes:Type[*], validPackages:String[*]):AllTypes[1] +{ + let directTypes = $seedTypes->navigateAssos($seedTypes, $validPackages)->removeDuplicates()->remove(Any); + let inheritedTypes = $directTypes->filter(t|$t->instanceOf(Class))->cast(@Class)->findInheritedTypes(); + let allTypes = $directTypes->concatenate($inheritedTypes)->removeDuplicates()->remove(Any)->filter(t|!$t->isWithinPackage(meta::pure::metamodel)); + ^AllTypes(classes = $allTypes->filter(t|$t->instanceOf(Class))->cast(@Class), + enumerations = $allTypes->filter(t|$t->instanceOf(Enumeration))->cast(@Enumeration), + measures = $allTypes->filter(t|$t->instanceOf(Measure))->cast(@Measure)); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::findAllAssociations(classes:meta::pure::metamodel::type::Class[*]):Association[*] +{ + $classes->map(c|$c.propertiesFromAssociations).owner->removeDuplicates()->cast(@Association) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::findAllStoreIncludes(store:meta::pure::store::Store[1]):meta::pure::store::Store[*] +{ + $store->concatenate($store.includes->map(s|$s->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::findAllStoreIncludes()))->removeDuplicates(); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::findAllMappingIncludes(mapping:meta::pure::mapping::Mapping[1]):meta::pure::mapping::Mapping[*] +{ + $mapping->concatenate($mapping.includes->map(s|$s.included->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::findAllMappingIncludes()))->removeDuplicates(); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::findValidPathsFromPackage(p:PackageableElement[1]):String[*] +{ + let path = $p->elementToPath(); + let sameArea = if ($path->startsWith('model'), + |['apps::model', 'model'], + |if($path->startsWith('datamarts'), + |process($path,'datamarts'), + |if($path->startsWith('apps'), + |process($path,'apps'), + |[] + ) + ) + ); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::findValidPaths(p:Type[*], extensions:meta::pure::extension::Extension[*]):String[*] +{ + $p->cast(@PackageableElement)->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::findValidPaths($extensions); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::findValidPaths(p:PackageableElement[*], extensions:meta::pure::extension::Extension[*]):String[*] +{ + let validForTests = ['meta::java::generation::tests', 'meta::external', 'meta::pure::tests', 'apps::pure', 'apps::global']->concatenate($extensions.validTestPackages); + $validForTests->concatenate($p->map(op|$op->findValidPathsFromPackage()))->removeDuplicates(); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::enumerationMappings(m:Mapping[1]):EnumerationMapping[*] +{ + $m.enumerationMappings->concatenate($m.includes.included->map(i|$i->enumerationMappings())) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::findTypesFromPureInstanceSetImplementation(p:PureInstanceSetImplementation[1]):Type[*] +{ + let srcClass = $p.srcClass->cast(@Class); + $p.class->concatenate($srcClass) + ->concatenate($srcClass.constraints->map(c|$c.functionDefinition.expressionSequence->evaluateAndDeactivate()->map(e|$e->scan()))) + ->concatenate($srcClass.constraints->map(c|$c.messageFunction.expressionSequence->evaluateAndDeactivate()->map(e|$e->scan()))) + ->concatenate($p.propertyMappings->filter(x | $x->instanceOf(PurePropertyMapping))->cast(@PurePropertyMapping).transform.expressionSequence->evaluateAndDeactivate()->map(e|$e->scan())); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::buildDomain(found:AllTypes[1], associations:Association[*], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::PackageableElement[*] +{ + buildDomain($found, $associations, {p:Profile[1]|!$p->elementToPath()->startsWith('meta')}, $extensions) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::buildDomain(found:AllTypes[1], associations:Association[*], profileFilter:Function<{Profile[1]->Boolean[1]}>[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::PackageableElement[*] +{ + let profiles = $found.classes->map(c | $c.stereotypes.profile->concatenate($c.taggedValues.tag.profile) + ->concatenate($c.properties->map(p|$p.stereotypes.profile->concatenate($p.taggedValues.tag.profile))) + ->concatenate($c.qualifiedProperties->map(p|$p.stereotypes.profile->concatenate($p.taggedValues.tag.profile)))) + ->concatenate($found.enumerations->cast(@AnnotatedElement)->map(e|$e.stereotypes.profile->concatenate($e.taggedValues.tag.profile))) + ->concatenate($associations->map(a|$a.stereotypes.profile->concatenate($a.taggedValues.tag.profile) + ->concatenate($a.properties->map(p|$p.stereotypes.profile->concatenate($p.taggedValues.tag.profile))) + ->concatenate($a.qualifiedProperties->map(p|$p.stereotypes.profile->concatenate($p.taggedValues.tag.profile))) + ) + ) + ->removeDuplicates() + ->filter($profileFilter); + $found.classes->map(c | $c->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformClass($extensions)) + ->concatenate($associations->map(c | $c->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformAssociation($extensions))) + ->concatenate($found.enumerations->map(e | $e->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformEnum())) + ->concatenate($profiles->map(p |$p->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::transformProfile($extensions) + )) + ->concatenate($found.measures->map(m|$m->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMeasure($extensions))); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::findAllTypesFromMapping(m:Mapping[1], extensions:meta::pure::extension::Extension[*]):AllTypes[1] +{ + $m->classMappings()->map(c| $c->match($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).scan_buildBasePureModel_findAllTypesFromMapping->concatenate( + [p:PureInstanceSetImplementation[1]| $p->findTypesFromPureInstanceSetImplementation(), + s:SetImplementation[1] |$s.class + ])->toOneMany() + ) + ) + ->concatenate($m->enumerationMappings().enumeration) + ->concatenate($m->enumerationMappings()->map(e|$e.enumValueMappings.sourceValues->type()->filter(t|$t->instanceOf(Class) || $t->instanceOf(Enumeration))->remove(Nil))) + ->removeDuplicates()->remove(Any) + ->findAllTypes($m->findValidPaths($extensions)); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::extractStores(si:SetImplementation[1], m:Mapping[1], extensions:meta::pure::extension::Extension[*]):meta::pure::store::Store[*] +{ + $si->match($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).scan_buildBasePureModel_extractStores->map(e|$e->eval($m, $extensions))->concatenate([ + ins: OperationSetImplementation[1] | [], + p: PureInstanceSetImplementation[1] | [] + ])->toOneMany() + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::processProperties(pmi:PropertyMappingsImplementation[1], m:Mapping[1], extensions:meta::pure::extension::Extension[*]):meta::pure::store::Store[*] +{ + $pmi.propertyMappings->map(pm|$pm->match($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).scan_buildBasePureModel_processProperties->map(e|$e->eval($m, $extensions))->concatenate( + [ + a:Any[*]|[] + ] + )->toOneMany() + ) + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::findAllTypesFromPackage(ps:Package[*], extensions:meta::pure::extension::Extension[*]):AllTypes[1] +{ + $ps->map(p|$p->getAllPackageElements(true))->removeDuplicates()->filter(c|$c->instanceOf(Type))->cast(@Type)->findAllTypes($ps->findValidPaths($extensions)); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::buildBasePureModelFromMapping(gm:Mapping[*], toOrigin:Function<{Mapping[1], Protocol[1]->meta::protocols::pure::v1_33_0::metamodel::PureModelContextPointer[0..1]}>[1], extensions:meta::pure::extension::Extension[*]):meta::pure::functions::collection::Pair, meta::protocols::pure::v1_33_0::metamodel::PureModelContextData>[1] +{ + let allMappings = $gm->map(x | $x->findAllMappingIncludes())->removeDuplicates(); + + // Stores --------------- + let classMappingStores = $allMappings->map(m|$m.classMappings->map(s|$s->extractStores($m, $extensions))); + + let associationStores = $allMappings->map(m|$m.associationMappings).stores; + + let storesFromInclude = $allMappings->map(m|let i = $m.includes.storeSubstitutions; $i->map(k|[$k.original, $k.substitute]);); + + let stores = $classMappingStores + ->concatenate($associationStores) + ->concatenate($storesFromInclude) + ->map(s|$s->concatenate($s->match( + $extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).scan_buildBasePureModel_buildPureModelFromMapping1->concatenate( + [ + a:Any[1]|[] + ])->toOneMany() + ) + ) + )->map(s|$s->findAllStoreIncludes()) + ->removeDuplicatesBy(a|$a->elementToPath()) + ->concatenate($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).scan_buildBasePureModel_buildPureModelFromMapping2); + + // Domain ---------------- + let foundClasses = $gm->fold({x, y | let alltype = $x->findAllTypesFromMapping($extensions); + ^$y(classes = $y.classes->concatenate($alltype.classes)->removeDuplicates(), + enumerations = $y.enumerations->concatenate($alltype.enumerations)->removeDuplicates());}, ^AllTypes()); + + let associations = $foundClasses.classes->findAllAssociations(); + + let found = ^$foundClasses(classes = $foundClasses.classes->concatenate($associations.properties.genericType.rawType)->removeDuplicates()->cast(@Class)); + + //SecureViews Necessities + + // Result ---------------- + let protocol = ^Protocol(name='pure', version='v1_33_0'); + pair(list($stores), + ^meta::protocols::pure::v1_33_0::metamodel::PureModelContextData + ( + _type = 'data', + serializer = $protocol, + origin = $toOrigin->eval($gm, $protocol), + elements = buildDomain($found, $associations, $extensions) + ->concatenate($allMappings->map(m|$m->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::mapping::transformMapping($extensions))) + ->concatenate($stores->map(store|$store->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::transformStore($extensions))) + ->concatenate($extensions->map(e|$e.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).scan_buildBasePureModel_getExtraElementsFromStores->map(z|$z->eval($stores,$extensions)))) + ) + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::buildBasePureModelFromPackage(ps:Package[*], baseVersion:String[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::PureModelContextData[1] +{ + let found = findAllTypesFromPackage($ps, $extensions); + let associations = $found.classes->findAllAssociations(); + let protocol = ^Protocol(name='pure', version='v1_33_0'); + ^meta::protocols::pure::v1_33_0::metamodel::PureModelContextData + ( + _type = 'data', + serializer = $protocol, + origin = buildPureModelContextPointer($ps->map(p|^meta::protocols::pure::v1_33_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_33_0::metamodel::PackageableElementType.PACKAGE, path=$p->elementToPath())), $baseVersion, $protocol), + elements = buildDomain($found, $associations, $extensions) + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::buildBasePureModelFromStore(store:meta::pure::store::Store[1], baseVersion:String[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::PureModelContextData[1] +{ + let stores = $store->map(s|$s->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::transformStore($extensions)); + let protocol = ^Protocol(name='pure', version='v1_33_0'); + ^meta::protocols::pure::v1_33_0::metamodel::PureModelContextData + ( + _type = 'data', + serializer = $protocol, + origin = buildPureModelContextPointer(^meta::protocols::pure::v1_33_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_33_0::metamodel::PackageableElementType.STORE, path=$store->elementToPath()), $baseVersion, $protocol), + elements = $stores + ); +} + + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::buildBasePureModelFromMapping(gm:Mapping[*], extensions:meta::pure::extension::Extension[*]):meta::pure::functions::collection::Pair, meta::protocols::pure::v1_33_0::metamodel::PureModelContextData>[1] +{ + let toOrigin = {m:Mapping[1], p:Protocol[1] | buildPureModelContextPointer(^meta::protocols::pure::v1_33_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_33_0::metamodel::PackageableElementType.MAPPING, path=$m->elementToPath()), '-1', $p)}; + buildBasePureModelFromMapping($gm, $toOrigin, $extensions); +} + + +//---------------------- +// Access using Strings +//---------------------- +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::buildBasePureModelFromMappingStr(mappingStr:String[1], extensions:meta::pure::extension::Extension[*]):String[1] +{ + let gm = $mappingStr->pathToElement()->cast(@Mapping); + let toOrigin = {m:Mapping[1], p:Protocol[1] | buildPureModelContextPointer(^meta::protocols::pure::v1_33_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_33_0::metamodel::PackageableElementType.MAPPING, path=$gm->elementToPath()), '-1', $p)}; + buildBasePureModelFromMapping($gm, $toOrigin, $extensions).second->toJsonBeta(^JSONSerializationConfig(typeKeyName='__TYPE', includeType=false, fullyQualifiedTypePath=false, serializeQualifiedProperties=false, serializePackageableElementName=false, removePropertiesWithEmptyValues=true)); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::buildBasePureModelFromPackageStr(packageStr:String[1], extensions:meta::pure::extension::Extension[*]):String[1] +{ + let gm = $packageStr->pathToElement()->cast(@Package); + buildBasePureModelFromPackage($gm, '-1', $extensions)->toJsonBeta(^JSONSerializationConfig(typeKeyName='__TYPE', includeType=false, fullyQualifiedTypePath=false, serializeQualifiedProperties=false, serializePackageableElementName=false, removePropertiesWithEmptyValues=true)); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::buildBasePureModelFromStoreStr(packageStr:String[1], extensions:meta::pure::extension::Extension[*]):String[1] +{ + let gm = $packageStr->pathToElement()->cast(@Store); + buildBasePureModelFromStore($gm, '-1', $extensions)->toJsonBeta(^JSONSerializationConfig(typeKeyName='__TYPE', includeType=false, fullyQualifiedTypePath=false, serializeQualifiedProperties=false, serializePackageableElementName=false, removePropertiesWithEmptyValues=true)); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::buildPureModelFromType(type:Type[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::PureModelContextData[1] +{ + let found = $type->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::findAllTypes($type->findValidPaths($extensions)); + let associations = $found.classes->findAllAssociations(); + + let protocol = ^Protocol(name='pure', version='v1_33_0'); + ^meta::protocols::pure::v1_33_0::metamodel::PureModelContextData + ( + _type = 'data', + serializer = $protocol, + origin = buildPureModelContextPointer(^meta::protocols::pure::v1_33_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_33_0::metamodel::PackageableElementType.CLASS, path=$type->elementToPath()), '-1', $protocol), + elements = buildDomain($found, $associations, $extensions) + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::buildPureModelFromPackage(ps:Package[*], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::PureModelContextData[1] +{ + meta::protocols::pure::v1_33_0::transformation::fromPureGraph::buildBasePureModelFromPackage($ps, '-1', $extensions); +} \ No newline at end of file diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/scan/buildPureModelAsText.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/scan/buildPureModelAsText.pure new file mode 100644 index 00000000000..d5824288096 --- /dev/null +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/scan/buildPureModelAsText.pure @@ -0,0 +1,206 @@ +// 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. + +###Pure +import meta::pure::functions::string::*; +import meta::pure::extension::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::*; +import meta::pure::mapping::*; +import meta::pure::functions::io::*; +import meta::protocols::pure::v1_33_0::metamodel::valueSpecification::application::*; + +Class <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::CodeSection { + name: String[1]; + startLine: Integer[1]; + noOfLines: Integer[1]; + imports: String[*]; +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::buildPureModelContextTextFromMapping(mapping: Mapping[*], extensions:meta::pure::extension::Extension[*]): meta::protocols::pure::v1_33_0::metamodel::PureModelContextText[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::PureModelContextText + ( + _type = 'text', + code = $mapping->getAllElementsFromMapping($extensions)->map(e|$e->getCorrectedElementSourceInformation($extensions)->getSourceTextForElement())->makeString('\n'), + serializer = ^meta::protocols::Protocol(name='pure', version='v1_33_0') + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::buildPureModelContextTextFromMappingAndQuery(mapping: Mapping[*], query: FunctionDefinition<{->T[m]}>[1], extensions:meta::pure::extension::Extension[*]): meta::protocols::pure::v1_33_0::metamodel::PureModelContextText[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::PureModelContextText + ( + _type = 'text', + code = $mapping->getAllElementsFromMappingAndQuery($query, $extensions)->map(e|$e->getCorrectedElementSourceInformation($extensions)->getSourceTextForElement())->makeString('\n'), + serializer = ^meta::protocols::Protocol(name='pure', version='v1_33_0') + ); +} + +Class meta::protocols::pure::v1_33_0::transformation::fromPureGraph::SplitCodeResult { + codeLines: String[*]; + index: Integer[1]; +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::splitCodeIntoLines(code: String[1]):String[*] +{ + let result = range(0, $code->length(), 1)->fold({i, c | + if($i < $c.index || ($c.index > $code->length() - 1), | $c, | + let endColumn = if($code->indexOf('\n', $c.index) < 0, | $code->length(), | $code->indexOf('\n', $c.index)); + let line = $code->substring(max($c.index - 1, 0), $endColumn->toOne())->replace('\n', ''); + ^SplitCodeResult(codeLines=$c.codeLines->add($line), index=$endColumn->toOne() + 1);); + }, ^SplitCodeResult(codeLines=[], index=0)); + + $result.codeLines; +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::getSourceTextForElement(sourceInformation: meta::pure::functions::meta::SourceInformation[1]): String[1] +{ + let content = $sourceInformation.source->readFile()->toOne(); + let lines = $content->splitCodeIntoLines(); + let count = 0; + let sections = $lines->size()->range()->zip($lines)->fold({pair, _sections | + if ($pair.second->trim()->startsWith('###'), + |$_sections->concatenate(^CodeSection(name = $pair.second, startLine = $pair.first + 1, noOfLines = 1, imports = [])), + |$_sections->slice(0, $_sections->size() - 1)->concatenate(^CodeSection(name = $_sections->last()->toOne().name, noOfLines = $_sections->last()->toOne().noOfLines + 1, startLine = $_sections->last()->toOne().startLine, imports = $_sections->last()->toOne().imports->concatenate(if($pair.second->trim()->startsWith('import '), |$pair.second, |[])))) + ); + }, [^CodeSection(name='###Pure', startLine = 0, noOfLines = 0, imports = [])]); + let section = $sections->filter(section|$section.startLine <= max($sourceInformation.startLine - 1, 0))->last(); + let startLine = $lines->at(max($sourceInformation.startLine - 1, 0)); + let endLine = $lines->at(max($sourceInformation.endLine - 1, 0)); + let sourceLines = if(max($sourceInformation.endLine, 0) > $sourceInformation.startLine, | + $startLine->substring(max($sourceInformation.startColumn -1, 0), $startLine->length()) + ->concatenate($lines->slice($sourceInformation.startLine, max($sourceInformation.endLine - 1, 0))) + ->concatenate($endLine->substring(0, $sourceInformation.endColumn)), + | $startLine->substring(max($sourceInformation.startColumn -1, 0), $sourceInformation.endColumn)); + + $section.name + ->concatenate($section.imports) + ->concatenate($sourceLines) + ->makeString('\n'); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::getSourceTextForElement(sourceInformation: meta::pure::functions::meta::SourceInformation[0..1]): String[1] +{ + if($sourceInformation->isEmpty(), |'', |$sourceInformation->toOne()->getSourceTextForElement()); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::getAllElementsFromMapping(gm:Mapping[*], extensions:meta::pure::extension::Extension[*]): meta::pure::metamodel::PackageableElement[*] +{ + // Mapping includes + let allMappings = $gm->map(x | $x->findAllMappingIncludes())->removeDuplicates(); + + // Stores + let classMappingStores = $allMappings->map(m|$m.classMappings->map(s|$s->extractStores($m, $extensions))); + + let associationStores = $allMappings->map(m|$m.associationMappings).stores; + + let storesFromInclude = $allMappings->map(m|let i = $m.includes.storeSubstitutions; $i->map(k|[$k.original, $k.substitute]);); + + let baseStores = $classMappingStores + ->concatenate($associationStores) + ->concatenate($storesFromInclude); + + let stores = $extensions->map(e|$e.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).scan_buildPureModelAsText_getAllElementsFromMapping->map(z|$z->eval($baseStores))) + ->map(s|$s->findAllStoreIncludes()) + ->removeDuplicatesBy(a|$a->elementToPath()); + + // Domain + let foundClasses = $gm->fold({x, y | let alltype = $x->findAllTypesFromMapping($extensions); + ^$y(classes = $y.classes->concatenate($alltype.classes)->removeDuplicates(), + enumerations = $y.enumerations->concatenate($alltype.enumerations)->removeDuplicates());}, ^AllTypes()); + let associations = $foundClasses.classes->findAllAssociations(); + let found = ^$foundClasses(classes = $foundClasses.classes->concatenate($associations.properties.genericType.rawType)->removeDuplicates()->cast(@Class)); + let profiles = $found.classes->map(c|$c.stereotypes.profile->concatenate($c.taggedValues.tag.profile)->concatenate( + $c.properties->map(p|$p.stereotypes.profile->concatenate($p.taggedValues.tag.profile)))->concatenate( + $c.qualifiedProperties->map(p|$p.stereotypes.profile->concatenate($p.taggedValues.tag.profile))) + ) + ->concatenate($found.enumerations->cast(@AnnotatedElement)->map(e|$e.stereotypes.profile->concatenate($e.taggedValues.tag.profile))) + ->concatenate($associations->map(a|$a.stereotypes.profile->concatenate($a.taggedValues.tag.profile)->concatenate( + $a.properties->map(p|$p.stereotypes.profile->concatenate($p.taggedValues.tag.profile)))->concatenate( + $a.qualifiedProperties->map(p|$p.stereotypes.profile->concatenate($p.taggedValues.tag.profile))) + ) + )->removeDuplicates()->filter(p|!$p->elementToPath()->startsWith('meta')); + + // User defined functions + let userDefinedFunctions = $found->fold({x, y | let expr = $x.classes->map(c | $c.qualifiedProperties->map(q | $q.expressionSequence)); + let func = $expr->filter(e | $e->instanceOf(SimpleFunctionExpression))->map(s| $s->cast(@SimpleFunctionExpression)->evaluateAndDeactivate().func); + $y->concatenate($func->filter(f | $f->instanceOf(ConcreteFunctionDefinition))->cast(@ConcreteFunctionDefinition)->filter(f | !$f->elementToPath()->startsWith('meta::pure::functions::'))); + }, [])->removeDuplicatesBy(a|$a->elementToPath()); + + // TODO? check have we included the measures mentioned in the mappings + + $allMappings + ->concatenate($stores) + ->concatenate($extensions->map(e|$e.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).scan_buildPureModelAsText_getAllElementsFromMapping2->map(z|$z->eval($stores)))) + ->concatenate($profiles) + ->concatenate($userDefinedFunctions) + ->concatenate($found.classes) + ->concatenate($found.enumerations) + ->concatenate($found.measures) + ->concatenate($associations); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::getCorrectedElementSourceInformation(el: meta::pure::metamodel::PackageableElement[1], extensions:meta::pure::extension::Extension[*]): meta::pure::functions::meta::SourceInformation[0..1] +{ + let srcInfo = $extensions->map(e|$e.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).scan_buildPureModelAsText_getCorrectedElementSourceInformation->map(z|$z->eval($el))); + if ($srcInfo->isEmpty(), + |$el->sourceInformation(), + |$srcInfo->first(); + ); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::getAllElementsFromMappingAndQuery(gm:Mapping[*], query: FunctionDefinition<{->T[m]}>[1], extensions:meta::pure::extension::Extension[*]): meta::pure::metamodel::PackageableElement[*] +{ + // Stores + let queryDbs = meta::protocols::pure::v1_33_0::transformation::fromPureGraph::extractStoresFromTableReference($query); + let queryDbsFromInclude = $queryDbs->map(m|$m.includes); + + + let allElementsFromMapping = meta::protocols::pure::v1_33_0::transformation::fromPureGraph::getAllElementsFromMapping($gm, $extensions); + + let allElements = $queryDbs + ->concatenate($queryDbsFromInclude) + ->concatenate($allElementsFromMapping) + ->removeDuplicatesBy(a|$a->elementToPath()) + ->filter(a|!$a->isEmpty()); + + $allElements; +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::extractStoresFromTableReference(query: FunctionDefinition<{->T[m]}>[1]): meta::relational::metamodel::Database[*] +{ + let search = 'tableReference_Database_1__String_1__String_1__Table_1_'; + let expressions = $query.expressionSequence->evaluateAndDeactivate(); + let tableReference = $expressions->map(e| if($e->toOne()->meta::pure::functions::meta::instanceOf(SimpleFunctionExpression), + | $e->toOne()->cast(@SimpleFunctionExpression) + ->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::searchQueryGraph($search), + | [])); + + $tableReference->map(ref| $ref->cast(@SimpleFunctionExpression).parametersValues->at(0)->cast(@InstanceValue).values->toOne()->cast(@meta::relational::metamodel::Database)); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::searchQueryGraph(func: SimpleFunctionExpression[1], text: String[1]): SimpleFunctionExpression[*] +{ + $func.parametersValues->map(x| $x->toOne()->match( + [ + f:SimpleFunctionExpression[1]| if($f.func.name->toOne() == $text, | $f, | $f->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::searchQueryGraph($text)), + a:Any[1]|[] + ]) + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::tests::tst():Boolean[1] +{ + true; +} \ No newline at end of file diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/scan/testBuildPureModel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/scan/testBuildPureModel.pure new file mode 100644 index 00000000000..7375de2d165 --- /dev/null +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/scan/testBuildPureModel.pure @@ -0,0 +1,61 @@ +// 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. + +import meta::pure::mapping::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::*; +import meta::relational::mapping::*; + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::tests::testGetAllElementsFromMapping():Boolean[1] +{ + let result = meta::pure::mapping::modelToModel::test::alloy::qualifiedProperties::dataToBookWithFunction->getAllElementsFromMapping(meta::pure::extension::defaultExtensions()); + + let expected = ['meta::pure::mapping::modelToModel::test::alloy::qualifiedProperties::dataToBookWithFunction', + 'meta::pure::mapping::modelToModel::test::alloy::qualifiedProperties::printBook__String_1_', + 'meta::pure::mapping::modelToModel::test::alloy::qualifiedProperties::BookWithFunction', + 'meta::pure::mapping::modelToModel::test::alloy::qualifiedProperties::BookData', + 'meta::pure::mapping::modelToModel::test::alloy::qualifiedProperties::BookDataIdentifier', + 'meta::pure::mapping::modelToModel::test::alloy::qualifiedProperties::BookIdentifier', + 'meta::pure::mapping::modelToModel::test::alloy::qualifiedProperties::Book', + 'meta::pure::mapping::modelToModel::test::alloy::qualifiedProperties::BookIdentifierType', + 'meta::pure::mapping::modelToModel::test::alloy::qualifiedProperties::BookData_BookDataIdentifier', + 'meta::pure::mapping::modelToModel::test::alloy::qualifiedProperties::Book_BookIdentifier']; + + let actual = $result->map(x | $x->toRepresentation()); + + //check if result contains all expeted elements + assertEquals($expected, $actual); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::tests::testParsingOneLinerMapping():Boolean[1] +{ + let result = meta::protocols::pure::v1_33_0::transformation::fromPureGraph::tests::dummyMapping->buildPureModelContextTextFromMapping(meta::pure::extension::defaultExtensions()); + + let actual = $result.code->replace('\r\n', '\n'); + let expected = '###Mapping\nMapping meta::protocols::pure::v1_33_0::transformation::fromPureGraph::tests::dummyMapping ()'; + + //check if prepared string contains all expected lines of pure code + assertEquals($expected, $actual); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::tests::testSplitCodeIntoLines():Boolean[1] +{ + let string = 'Mapping meta::pure::mapping::modelToModel::test::filter::filterMapping\n(\nPerson : Pure\n{\n~src _Person\n\nlastName : $src.fullName\n}\n\nFirm : Puren\n{\n~src _Firm\nlegalName : $src.name,\nemployees : $src.employees\n}\n)'; + let actual = splitCodeIntoLines($string); + + //check if result contains all expected lines of pure code (empty lines included!) + assertEquals($string, $actual->makeString('\n')); +} + +###Mapping +Mapping meta::protocols::pure::v1_33_0::transformation::fromPureGraph::tests::dummyMapping () \ No newline at end of file diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/executionPlan.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/executionPlan.pure new file mode 100644 index 00000000000..003d51f9f4b --- /dev/null +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/executionPlan.pure @@ -0,0 +1,368 @@ +// Copyright 2020 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. + +###Pure +import meta::pure::executionPlan::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::runtime::*; +import meta::protocols::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::*; +import meta::pure::mapping::*; + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformPlan(sourcePlan:meta::pure::executionPlan::ExecutionPlan[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::executionPlan::ExecutionPlan[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::ExecutionPlan + ( + serializer = ^Protocol(name='pure', version='v1_33_0'), + templateFunctions = $sourcePlan.processingTemplateFunctions, + kerberos = $sourcePlan.kerberos, + rootExecutionNode = $sourcePlan.rootExecutionNode->transformNode($sourcePlan.mapping, $extensions), + globalImplementationSupport = $sourcePlan.globalImplementationSupport->map(impl | $impl->transformPlatformGlobalImplementation()) + ) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformNode(node:meta::pure::executionPlan::ExecutionNode[1], mapping:meta::pure::mapping::Mapping[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::executionPlan::ExecutionNode[1] +{ + let n = $node->match($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).transfers_executionPlan_transformNode->map(f|$f->eval($mapping, $extensions))->concatenate( + [ + + rel:meta::pure::mapping::modelToModel::ModelToModelExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::ModelToModelExecutionNode( + _type = 'm2m', + resultType = $rel.resultType->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), + resultSizeRange = $rel.resultSizeRange->isEmpty()->if(|[],|$rel.resultSizeRange->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()), + func = $rel.fd->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::transformLambda($extensions), + jsonPropertyPaths = $rel.jsonPropertyPaths->map(j|$j->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::transformLambda($extensions)), + pathToMapping = $rel.mapping->elementToPath()->toOne(), + pathToClasses = $rel.classes->map(c|$c->elementToPath()), + connection = $rel.connection->cast(@meta::pure::mapping::modelToModel::ModelConnection)->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformModelConnection(), + pureModelContextData = $rel.mapping->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::buildBasePureModelFromMapping( {m:meta::pure::mapping::Mapping[1], p: meta::protocols::Protocol[1] |[]}, $extensions).second + ), + platform:meta::pure::executionPlan::PureExpressionPlatformExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::PureExpressionPlatformExecutionNode( + _type='pureExp', + resultType=$platform.resultType->transformResultType($mapping, $extensions), + pure = $platform.expression->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification([], newMap([]->cast(@Pair>)), $extensions) + ), + platform:meta::pure::executionPlan::PlatformUnionExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::PlatformUnionExecutionNode( + _type='platformUnion', + isChildrenExecutionParallelizable = $platform.isChildrenExecutionParallelizable, + resultType=$platform.resultType->transformResultType($mapping, $extensions) + ), + platform:meta::pure::executionPlan::PlatformMergeExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::PlatformMergeExecutionNode( + _type='platformMerge', + resultType=$platform.resultType->transformResultType($mapping, $extensions) + ), + cons:meta::pure::executionPlan::ConstantExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::ConstantExecutionNode( + _type='constant', + resultType=$cons.resultType->transformResultType($mapping, $extensions), + values=$cons.values->map(v | $v->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformAny([], newMap([]->cast(@Pair>)), PureOne, $extensions)) + ), + seq:meta::pure::executionPlan::SequenceExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::SequenceExecutionNode( + _type = 'sequence', + resultType = $seq.resultType->transformResultType($mapping, $extensions), + resultSizeRange = $seq.resultSizeRange->isEmpty()->if(|[],|$seq.resultSizeRange->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()) + ), + seq:meta::pure::executionPlan::MultiResultSequenceExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::MultiResultSequenceExecutionNode( + _type = 'multiResultSequence', + resultType = $seq.resultType->transformResultType($mapping, $extensions), + resultSizeRange = $seq.resultSizeRange->isEmpty()->if(|[],|$seq.resultSizeRange->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()) + ), + agg:meta::pure::mapping::aggregationAware::AggregationAwareExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::AggregationAwareExecutionNode( + _type = 'aggregationAware', + resultType = $agg.resultType->transformResultType($mapping, $extensions), + aggregationAwareActivity = $agg.aggregationAwareActivity + ), + alloc:meta::pure::executionPlan::AllocationExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::AllocationExecutionNode( + _type = 'allocation', + resultType = $alloc.resultType->transformResultType($mapping, $extensions), + resultSizeRange = $alloc.resultSizeRange->isEmpty()->if(|[],|$alloc.resultSizeRange->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()), + varName = $alloc.varName, + realizeInMemory = $alloc.realizeInMemory + ), + exp:meta::pure::executionPlan::FunctionParametersValidationNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::FunctionParametersValidationNode( + _type = 'function-parameters-validation', + resultType = $exp.resultType->transformResultType($mapping, $extensions), + functionParameters = $exp.functionParameters->map(p | ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::Variable(_type='var', name=$p.name, supportsStream=$p.supportsStream, class=$p.type->elementToPath(), multiplicity=$p.multiplicity->isEmpty()->if(| [],| $p.multiplicity->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()))), + parameterValidationContext = $exp.parameterValidationContext->map(p | $p->match([ + e:meta::pure::executionPlan::EnumValidationContext[1] | ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::EnumValidationContext(varName = $e.varName, validEnumValues = $e.validEnumValues, _type = 'enumValidationContext') + ])) + + ), + g:meta::pure::graphFetch::executionPlan::StoreMappingGlobalGraphFetchExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::StoreMappingGlobalGraphFetchExecutionNode + ( + _type = 'storeMappingGlobalGraphFetchExecutionNode', + resultType = $g.resultType->transformResultType($mapping, $extensions), + resultSizeRange = $g.resultSizeRange->isEmpty()->if(|[],|$g.resultSizeRange->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()), + graphFetchTree = $g.graphFetchTree->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformGraphFetchTree([], newMap([]->cast(@Pair>)), $extensions), + store = $g.store->elementToPath(), + children = $g.children->map(s | $s->transformNode($mapping, $extensions))->cast(@meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::GlobalGraphFetchExecutionNode), + localGraphFetchExecutionNode = $g.localGraphFetchExecutionNode->transformNode($mapping, $extensions)->cast(@meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::LocalGraphFetchExecutionNode), + parentIndex = $g.parentIndex, + xStorePropertyMapping = $g.xStorePropertyMapping->map(x | $x->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::mapping::xStore::transformXStorePropertyMapping($mapping, $extensions)), + enableConstraints = $g.enableConstraints, + checked = $g.checked, + xStorePropertyFetchDetails = $g.xStorePropertyFetchDetails->map(x | + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::XStorePropertyFetchDetails + ( + supportsCaching = $x.supportsCaching, + propertyPath = $x.propertyPath, + sourceMappingId = $x.sourceMappingId, + sourceSetId = $x.sourceSetId, + targetMappingId = $x.targetMappingId, + targetSetId = $x.targetSetId, + targetPropertiesOrdered = $x.targetPropertiesOrdered, + subTree = $x.subTree + ) + ), + localTreeIndices = $g.localTreeIndices, + dependencyIndices = $g.dependencyIndices + ), + g:meta::pure::graphFetch::executionPlan::PlatformGlobalGraphFetchExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::PlatformGlobalGraphFetchExecutionNode + ( + _type = 'platformGlobalGraphFetchExecutionNode', + resultType = $g.resultType->transformResultType($mapping, $extensions), + resultSizeRange = $g.resultSizeRange->isEmpty()->if(|[],|$g.resultSizeRange->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()), + graphFetchTree = $g.graphFetchTree->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformGraphFetchTree([], newMap([]->cast(@Pair>)), $extensions), + children = $g.children->map(s | $s->transformNode($mapping, $extensions))->cast(@meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::GlobalGraphFetchExecutionNode), + localGraphFetchExecutionNode = $g.localGraphFetchExecutionNode->transformNode($mapping, $extensions)->cast(@meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::LocalGraphFetchExecutionNode), + parentIndex = $g.parentIndex, + enableConstraints = $g.enableConstraints, + checked = $g.checked, + localTreeIndices = $g.localTreeIndices, + dependencyIndices = $g.dependencyIndices + ), + l:meta::pure::graphFetch::executionPlan::PlatformPrimitiveQualifierLocalGraphFetchExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::PlatformPrimitiveQualifierLocalGraphFetchExecutionNode + ( + _type = 'platformPrimitiveQualifierLocalGraphFetchExecutionNode', + resultType = $l.resultType->transformResultType($mapping, $extensions), + resultSizeRange = $l.resultSizeRange->isEmpty()->if(|[],|$l.resultSizeRange->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()), + nodeIndex = $l.nodeIndex, + parentIndex = $l.parentIndex, + graphFetchTree = $l.graphFetchTree->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformGraphFetchTree([], newMap([]->cast(@Pair>)), $extensions) + ), + e:meta::pure::executionPlan::ErrorExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::ErrorExecutionNode + ( + _type = 'error', + message = $e.message, + resultType = $e.resultType->transformResultType($mapping, $extensions), + resultSizeRange = $e.resultSizeRange->isEmpty()->if(|[],|$e.resultSizeRange->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()) + ), + f:meta::pure::executionPlan::FreeMarkerConditionalExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::FreeMarkerConditionalExecutionNode( + freeMarkerBooleanExpression = $f.freeMarkerBooleanExpression, + trueBlock = $f.trueBlock->transformNode($mapping, $extensions), + falseBlock = if($f.falseBlock->isEmpty(),|[],|$f.falseBlock->toOne()->transformNode($mapping, $extensions)), + _type = 'freeMarkerConditionalExecutionNode', + resultType = $f.resultType->transformResultType($mapping, $extensions), + resultSizeRange = $f.resultSizeRange->isEmpty()->if(|[],|$f.resultSizeRange->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()) + ), + v:meta::pure::executionPlan::VariableResolutionExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::VariableResolutionExecutionNode( + _type = 'varResolution', + resultType = $v.resultType->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), + varName = $v.varName + ), + f:meta::pure::mapping::modelToModel::graphFetch::executionPlan::StoreStreamReadingExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::store::inMemory::StoreStreamReadingExecutionNode( + _type = 'storeStreamReading', + resultType = $f.resultType->transformResultType($mapping, $extensions), + resultSizeRange = $f.resultSizeRange->isEmpty()->if(|[],|$f.resultSizeRange->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()), + graphFetchTree = $f.graphFetchTree->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformGraphFetchTree([], newMap([]->cast(@Pair>)), $extensions)->cast(@meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::RootGraphFetchTree), + store = $f.store->match($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).transfers_executionPlan_transformNode_StoreStreamReadingExecutionNode->concatenate([ + any: Any[*] | [] + ])->toOneMany()), + connection = $f.connection->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::runtime::transformConnection($extensions), + enableConstraints = $f.enableConstraints, + checked = $f.checked + ), + f:meta::pure::mapping::modelToModel::graphFetch::executionPlan::InMemoryCrossStoreGraphFetchExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::store::inMemory::InMemoryCrossStoreGraphFetchExecutionNode( + _type = 'inMemoryCrossStoreGraphFetch', + resultType = $f.resultType->transformResultType($mapping, $extensions), + resultSizeRange = $f.resultSizeRange->isEmpty()->if(|[],|$f.resultSizeRange->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()), + nodeIndex = $f.nodeIndex, + parentIndex = $f.parentIndex, + graphFetchTree = $f.graphFetchTree->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformGraphFetchTree([], newMap([]->cast(@Pair>)), $extensions), + batchSize = $f.batchSize, + checked = $f.checked, + xStorePropertyMapping = $f.xStorePropertyMapping->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::mapping::xStore::transformXStorePropertyMapping($mapping, $extensions), + supportsBatching = $f.supportsBatching, + children = $f.children->map(x | $x->transformNode($mapping, $extensions))->cast(@meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::store::inMemory::InMemoryGraphFetchExecutionNode) + ), + f:meta::pure::mapping::modelToModel::graphFetch::executionPlan::InMemoryRootGraphFetchExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::store::inMemory::InMemoryRootGraphFetchExecutionNode( + _type = 'inMemoryRootGraphFetch', + resultType = $f.resultType->transformResultType($mapping, $extensions), + resultSizeRange = $f.resultSizeRange->isEmpty()->if(|[],|$f.resultSizeRange->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()), + nodeIndex = $f.nodeIndex, + parentIndex = $f.parentIndex, + graphFetchTree = $f.graphFetchTree->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformGraphFetchTree([], newMap([]->cast(@Pair>)), $extensions), + batchSize = $f.batchSize, + checked = $f.checked, + children = $f.children->map(x | $x->transformNode($mapping, $extensions))->cast(@meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::store::inMemory::InMemoryGraphFetchExecutionNode), + filter = $f.filter->isNotEmpty() + ), + f:meta::pure::mapping::modelToModel::graphFetch::executionPlan::InMemoryPropertyGraphFetchExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::store::inMemory::InMemoryPropertyGraphFetchExecutionNode( + _type = 'inMemoryPropertyGraphFetch', + resultType = $f.resultType->transformResultType($mapping, $extensions), + resultSizeRange = $f.resultSizeRange->isEmpty()->if(|[],|$f.resultSizeRange->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()), + nodeIndex = $f.nodeIndex, + parentIndex = $f.parentIndex, + graphFetchTree = $f.graphFetchTree->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformGraphFetchTree([], newMap([]->cast(@Pair>)), $extensions), + children = $f.children->map(x | $x->transformNode($mapping, $extensions))->cast(@meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::store::inMemory::InMemoryGraphFetchExecutionNode) + ) + ])->toOneMany() + ); + + ^$n( + requiredVariableInputs = $node.requiredVariableInputs->map(s | $s->transformSource()), + executionNodes = $node.executionNodes->map(s|$s->transformNode($mapping, $extensions)), + implementation = $node.implementation->map(impl | $impl->transformPlatformNodeImplementation()), + authDependent = $node.authDependent + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformPlatformGlobalImplementation(impl: meta::pure::executionPlan::PlatformImplementation[1]):meta::protocols::pure::v1_33_0::metamodel::executionPlan::PlatformImplementation[1] +{ + $impl->match([ + javaImpl:JavaPlatformImplementation[1] | ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::JavaPlatformImplementation + ( + _type = 'java', + classes = $javaImpl.classes->map({c | + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::JavaClass + ( + package = $c.package, + name = $c.name, + source = $c.source, + byteCode = $c.byteCode + ) + }) + ) + ] + ) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformPlatformNodeImplementation(impl: meta::pure::executionPlan::PlatformImplementation[1]):meta::protocols::pure::v1_33_0::metamodel::executionPlan::PlatformImplementation[1] +{ + $impl->match([ + javaImpl:JavaPlatformImplementation[1] | ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::JavaPlatformImplementation + ( + _type = 'java', + executionClassFullName = $javaImpl.executionClassFullName, + executionMethodName = $javaImpl.executionMethodName + ) + ] + ) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformEnumMapping(e:meta::pure::mapping::EnumerationMapping[1]):Map>[1] +{ + $e.enumValueMappings->map(e|pair($e.enum->id(), list($e.sourceValues->map(s|$s->toString()))))->newMap(); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformSetImplementation(setImplementation:meta::pure::mapping::SetImplementation[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::executionPlan::SetImplementationInfo[1] +{ + let propertyMappings = $setImplementation->cast(@meta::pure::mapping::InstanceSetImplementation)->allPropertyMappings() + ->filter(pm|($pm.localMappingProperty->isEmpty() || $pm.localMappingProperty==false) && + $pm.property->genericType().typeArguments->at(1).rawType->toOne()->instanceOf(meta::pure::metamodel::type::DataType) + ); + + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::SetImplementationInfo + ( + class = $setImplementation.class->elementToPath(), + mapping=$setImplementation.parent->elementToPath(), + id=$setImplementation.id, + propertyMappings = $propertyMappings->map(p|^meta::protocols::pure::v1_33_0::metamodel::executionPlan::PropertyMapping + ( + property = $p.property.name->toOne(), + type = $p.property->genericType().typeArguments->at(1).rawType->toOne()->elementToPath(), + enumMapping = $extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).transfers_executionPlan_transformSetImplementation + ->filter(v|$v.first->eval($p))->map(x|$x.second->eval($p))->first() + ) + + ) + ); + +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultType(rType:meta::pure::executionPlan::ResultType[1], mapping:meta::pure::mapping::Mapping[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::executionPlan::ResultType[1] +{ + $rType->match( + $extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).transfers_executionPlan_transformResultType->map(f|$f->eval($mapping, $extensions))->concatenate([ + partialClass:meta::pure::executionPlan::PartialClassResultType[1]|^meta::protocols::pure::v1_33_0::metamodel::executionPlan::PartialClassResultType + ( + _type = 'partialClass', + class = $partialClass.type->elementToPath(), + setImplementations=$partialClass.setImplementations->map(s|$s->transformSetImplementation($extensions)), + propertiesWithParameters = $partialClass.propertiesWithParameters->map(x | ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::PropertyWithParameters(property = $x.property.name->toOne(), parameters = $x.parameters->map(x | $x->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification([], ^Map>(), $extensions)))) + ), + class:meta::pure::executionPlan::ClassResultType[1]|^meta::protocols::pure::v1_33_0::metamodel::executionPlan::ClassResultType + ( + _type='class', + class = $class.type->elementToPath(), + setImplementations=$class.setImplementations->map(s|$s->transformSetImplementation($extensions)) + ), + void:meta::pure::executionPlan::VoidResultType[1]|^meta::protocols::pure::v1_33_0::metamodel::executionPlan::VoidResultType + ( + _type='void' + ), + rt:meta::pure::executionPlan::DataTypeResultType[1]|^meta::protocols::pure::v1_33_0::metamodel::executionPlan::DataTypeResultType + ( + _type='dataType', + dataType=$rt.type->elementToPath() + ), + tds:meta::pure::executionPlan::TDSResultType[1]|^meta::protocols::pure::v1_33_0::metamodel::executionPlan::TDSResultType + ( + _type='tds', + tdsColumns=$tds.tdsColumns->map(c|^meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::TDSColumn + ( + name = $c.name, + doc = $c.documentation, + type = $c.type->toOne()->elementToPath(), + enumMapping = if($c.enumMappingId->isEmpty(),|[],|meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformEnumMapping($mapping->enumerationMappingByName($c.enumMappingId->toOne())->toOne())) + ) + ) + ), + rt:meta::pure::executionPlan::ResultType[1]|^meta::protocols::pure::v1_33_0::metamodel::executionPlan::DataTypeResultType + ( + _type='dataType', + dataType=$rt.type->elementToPath() + ) + ])->toOneMany() + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformSource(source:meta::pure::executionPlan::VariableInput[1]):meta::protocols::pure::v1_33_0::metamodel::executionPlan::VariableInput[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::VariableInput( + name = $source.name, + type = $source.type->elementToPath(), + multiplicity = $source.multiplicity->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity() + ) +} + diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/mapping.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/mapping.pure new file mode 100644 index 00000000000..7ef1b027569 --- /dev/null +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/mapping.pure @@ -0,0 +1,224 @@ +// Copyright 2020 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. + +###Pure +import meta::relational::tests::csv::mapping::*; +import meta::flatten::metamodel::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::mapping::modelToModel::*; +import meta::pure::mapping::xStore::*; +import meta::pure::mapping::modelToModel::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::mapping::csv::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::mapping::*; +import meta::pure::mapping::*; + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::mapping::transformMapping(mapping:Mapping[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::mapping::Mapping[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::mapping::Mapping + ( + _type = 'mapping', + includedMappings = $mapping.includes->map(m|let sourceDatabasePath = if($m.storeSubstitutions->isEmpty(),|[],|$m.storeSubstitutions.original->toOne()->elementToPath()); + let targetDatabasePath = if($m.storeSubstitutions->isEmpty(),|[],|$m.storeSubstitutions.substitute->toOne()->elementToPath()); + ^meta::protocols::pure::v1_33_0::metamodel::mapping::MappingInclude(includedMapping = if(!$m.included.package->isEmpty(), | $m.included.package->toOne()->elementToPath() + '::' + $m.included.name->toOne(), | $m.included.name->toOne()), + sourceDatabasePath = $sourceDatabasePath, + targetDatabasePath = $targetDatabasePath);), + name = $mapping.name->toOne(), + package = if($mapping.package->isEmpty(),|[],|$mapping.package->toOne()->elementToPath()), + classMappings = $mapping.classMappings->filter(x|$extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).transfers_mapping_transformMapping->fold({a,b|$a->eval($x) && $b}, true)) + ->map(cm|$cm->transformSetImplementation($mapping, $extensions)), + associationMappings = $mapping.associationMappings->map(cm|$cm->transformAssociationImplementation($mapping, $extensions)), + enumerationMappings = $mapping.enumerationMappings->map(e|$e->transformEnumerationMapping()) + ) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMappingClass(class: meta::pure::mapping::MappingClass[1],mapping:meta::pure::mapping::Mapping[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::domain::MappingClass[1] +{ + let properties = $class.properties->meta::pure::milestoning::reverseMilestoningTransforms()->cast(@Property); + let qualifiedProperties = $class.qualifiedProperties->meta::pure::milestoning::reverseMilestoningTransforms()->cast(@QualifiedProperty); + + ^meta::protocols::pure::v1_33_0::metamodel::domain::MappingClass + ( + _type = 'mappingClass', + name = $class.name->toOne(), + package = if($class.package->isEmpty(),|[],|$class.package->toOne()->elementToPath()), + superTypes = $class.generalizations->map(g | $g.general.rawType->toOne()->elementToPath()), + properties = $properties->map(p | $p->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformProperty($extensions)), + qualifiedProperties = $qualifiedProperties->map(q|$q->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformQualifiedProperty($extensions)), + stereotypes = $class.stereotypes->map(s|$s->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformStereotype()), + taggedValues = $class.taggedValues->map(t|$t->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformTaggedValue()), + setImplementation = $class.setImplementation->map(s|$s->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::mapping::transformSetImplementation($mapping, $extensions)), + rootClass = $class.class->map(c|$c->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformClass($extensions)), + localProperties = $class.localProperties->map(p | $p->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformProperty($extensions)) + ); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::mapping::transformSetImplementation(si:SetImplementation[1], mapping:Mapping[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::mapping::ClassMapping[1] +{ + $si->match($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).transfers_mapping_transformSetImplementation->map(f|$f->eval($mapping))->concatenate( + $extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).transfers_mapping_transformSetImplementation2->map(f|$f->eval($mapping, $extensions)))->concatenate([ + o:OperationSetImplementation[1]| $o->transformOperationSetImplementation($mapping,$extensions), + p:PureInstanceSetImplementation[1]| $p->transformPureInstanceSetImplementation($mapping, $extensions) + ])->toOneMany() + ); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::mapping::transformAssociationImplementation(s:AssociationImplementation[1], mapping:Mapping[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::mapping::AssociationMapping[1] +{ + $s->match( + $extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).transfers_mapping_transformAssociationImplementation->map(f|$f->eval($mapping, $extensions))->concatenate([ + x:XStoreAssociationImplementation[1] | $x->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::mapping::xStore::transformXStoreAssociationImplementation($mapping, $extensions) + ])->toOneMany() + ); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::mapping::transformEnumerationMapping(em:EnumerationMapping[1]):meta::protocols::pure::v1_33_0::metamodel::mapping::EnumerationMapping[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::mapping::EnumerationMapping + ( + id = $em.name, + enumeration = $em.enumeration->elementToPath(), + enumValueMappings = $em.enumValueMappings->map(e| + ^meta::protocols::pure::v1_33_0::metamodel::mapping::EnumValueMapping( + enumValue=$e.enum.name, + sourceValues=$e.sourceValues->map(s|$s->match([ + s: String[1] | ^meta::protocols::pure::v1_33_0::metamodel::mapping::EnumValueMappingStringSourceValue( + _type = 'stringSourceValue', + value = $s + ), + i: Integer[1] | ^meta::protocols::pure::v1_33_0::metamodel::mapping::EnumValueMappingIntegerSourceValue( + _type = 'integerSourceValue', + value = $i + ), + e: Enum[1] | ^meta::protocols::pure::v1_33_0::metamodel::mapping::EnumValueMappingEnumSourceValue( + _type = 'enumSourceValue', + enumeration = $e->type()->elementToPath(), + value = $e->cast(@Enum)->id() + ) + ])) + )) + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::mapping::transformOperationSetImplementation(r:OperationSetImplementation[1], mapping:Mapping[1],extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::mapping::OperationClassMapping[1] +{ + let operation = if ($r.operation.name->startsWith('special_union'), + | meta::protocols::pure::v1_33_0::metamodel::mapping::MappingOperation.ROUTER_UNION, + | if ($r.operation.name->startsWith('inheritance'), + |meta::protocols::pure::v1_33_0::metamodel::mapping::MappingOperation.INHERITANCE, + |if($r.operation.name->startsWith('union'), + | meta::protocols::pure::v1_33_0::metamodel::mapping::MappingOperation.STORE_UNION, + | if($r.operation.name->startsWith('merge'), + |meta::protocols::pure::v1_33_0::metamodel::mapping::MappingOperation.MERGE, + | fail('Mapping operation not supported: '+$r.operation.name->toOne()); + meta::protocols::pure::v1_33_0::metamodel::mapping::MappingOperation.ROUTER_UNION; + ) + ) + ) + ); + + if($operation == meta::protocols::pure::v1_33_0::metamodel::mapping::MappingOperation.MERGE, + | ^meta::protocols::pure::v1_33_0::metamodel::mapping::MergeOperationClassMapping + ( + id = $r.id, + class = $r.class->elementToPath(), + _type = 'mergeOperation', + root = $r.root, + parameters = $r.parameters.id, + operation = $operation, + validationFunction = $r->cast(@MergeOperationSetImplementation).validationFunction->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::transformLambda($extensions) + );, + + | ^meta::protocols::pure::v1_33_0::metamodel::mapping::OperationClassMapping + ( + id = $r.id, + class = $r.class->elementToPath(), + _type = 'operation', + root = $r.root, + parameters = $r.parameters.id, + operation = $operation + ); + ); + +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::mapping::modelToModel::transformPureInstanceSetImplementation(p:PureInstanceSetImplementation[1], mapping:Mapping[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::PureInstanceClassMapping[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::PureInstanceClassMapping + ( + id = $p.id, + _type = 'pureInstance', + class = $p.class->elementToPath(), + root = $p.root, + propertyMappings = $p.propertyMappings->map(pm|$pm->transformPropertyMapping($mapping, $extensions))->cast(@meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::PurePropertyMapping), + srcClass = if($p.srcClass->isEmpty(),|[],|$p.srcClass->toOne()->elementToPath()), + filter = $p.filter->map(f|$f->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::transformLambda($extensions)) + ) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::mapping::xStore::transformXStoreAssociationImplementation(r:meta::pure::mapping::xStore::XStoreAssociationImplementation[1], mapping:Mapping[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::mapping::xStore::XStoreAssociationMapping[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::mapping::xStore::XStoreAssociationMapping + ( + _type = 'xStore', + id = $r.id, + stores = $r.stores->map(s | $mapping->resolveStore($s)->elementToPath()), + association = $r.association->elementToPath(), + propertyMappings = $r->allPropertyMappings()->meta::pure::milestoning::excludeRangeMilestoningPropertyMapping()->map(pm | $pm->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::mapping::xStore::transformXStorePropertyMapping($mapping, $extensions)) + ); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::mapping::modelToModel::transformPropertyMapping(pm:PropertyMapping[1], mapping : Mapping[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::mapping::PropertyMapping[1] +{ + $pm->match([p:PurePropertyMapping[1]| ^meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::PurePropertyMapping + ( + _type = 'purePropertyMapping', + explodeProperty = $p.explodeProperty, + property = ^meta::protocols::pure::v1_33_0::metamodel::domain::PropertyPtr(class=$pm.property->genericType().typeArguments->at(0).rawType->toOne()->elementToPath(), property=$pm.property.name->toOne()), + source = $p.sourceSetImplementationId, + target = $p.targetSetImplementationId, + enumMappingId = $p.transformer->cast(@EnumerationMapping).name, + transform = meta::protocols::pure::v1_33_0::transformation::fromPureGraph::transformLambda($p.transform, true, $extensions), + localMappingProperty = if ($p.localMappingProperty->isNotEmpty() && $p.localMappingProperty->toOne(), + | ^meta::protocols::pure::v1_33_0::metamodel::mapping::LocalMappingPropertyInfo + ( + type = $p.localMappingPropertyType->toOne()->elementToPath(), + multiplicity = $p.localMappingPropertyMultiplicity->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity() + ), + | [] + ) + ), + a:meta::pure::mapping::aggregationAware::AggregationAwarePropertyMapping[1]| ^meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::AggregationAwarePropertyMapping + ( + _type = 'AggregationAwarePropertyMapping', + property = ^meta::protocols::pure::v1_33_0::metamodel::domain::PropertyPtr(class=$a.property->genericType().typeArguments->at(0).rawType->toOne()->elementToPath(), property=$a.property.name->toOne()), + source = $a.sourceSetImplementationId, + target = $a.targetSetImplementationId + ) + ]); +} + + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::mapping::xStore::transformXStorePropertyMapping(pm:PropertyMapping[1], mapping : Mapping[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::mapping::xStore::XStorePropertyMapping[1] +{ + $pm->match([p:meta::pure::mapping::xStore::XStorePropertyMapping[1]| + ^meta::protocols::pure::v1_33_0::metamodel::mapping::xStore::XStorePropertyMapping + ( + _type = 'xStorePropertyMapping', + property = ^meta::protocols::pure::v1_33_0::metamodel::domain::PropertyPtr(class=$pm.property->genericType().typeArguments->filter(l| $l->isNotEmpty())->at(0).rawType->toOne()->elementToPath(), property=$pm.property.name->toOne()), + source = $p.sourceSetImplementationId, + target = $p.targetSetImplementationId, + crossExpression = meta::protocols::pure::v1_33_0::transformation::fromPureGraph::transformLambda($p.crossExpression, $extensions) + ) + ]); +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/metamodel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/metamodel.pure new file mode 100644 index 00000000000..dce789108fe --- /dev/null +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/metamodel.pure @@ -0,0 +1,260 @@ +// Copyright 2020 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. + +###Pure +import meta::pure::metamodel::serialization::grammar::*; +import meta::pure::runtime::*; +import meta::pure::metamodel::constraint::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::model::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::*; +import meta::protocols::alloy::model::*; +import meta::protocols::alloy::function::*; +import meta::pure::milestoning::*; +import meta::json::*; + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformPackageableElement(packageableElement:PackageableElement[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::PackageableElement[1] +{ + $packageableElement->match([ + class:Class[1] | transformClass($class, $extensions), + assoc:Association[1] | transformAssociation($assoc, $extensions), + enum:Enumeration[1] | transformEnum($enum), + meas:Measure[1] | transformMeasure($meas, $extensions), + unit:Unit[1] | transformUnit($unit, $extensions), + func:ConcreteFunctionDefinition[1] | transformFunction($func, $extensions), + prof:Profile[1] | transformProfile($prof, $extensions) + ]) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformClass(class:Class[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::domain::Class[1] +{ + meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformClass($class, false, $extensions); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformClass(class:Class[1], useAppliedFunction:Boolean[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::domain::Class[1] +{ + let properties = $class.properties->reverseMilestoningTransforms()->cast(@Property); + let qualifiedProperties = $class.qualifiedProperties->reverseMilestoningTransforms()->cast(@QualifiedProperty); + let originalMilestonedProperties = $class.originalMilestonedProperties->reverseMilestoningTransforms()->cast(@Property); + + ^meta::protocols::pure::v1_33_0::metamodel::domain::Class + ( + _type = 'class', + name = $class.name->toOne(), + constraints = $class.constraints->map(c|$c->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformConstraint($useAppliedFunction, $extensions)), + package = if($class.package->isEmpty(),|[],|$class.package->toOne()->elementToPath()), + superTypes = $class.generalizations->map(g | $g.general.rawType->toOne()->elementToPath()), + properties = $properties->map(p | $p->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformProperty($extensions)), + qualifiedProperties = $qualifiedProperties->map(q|$q->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformQualifiedProperty($useAppliedFunction, $extensions)), + originalMilestonedProperties = $originalMilestonedProperties->map(p | $p->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformProperty($extensions)), + stereotypes = $class.stereotypes->map(s|$s->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformStereotype()), + taggedValues = $class.taggedValues->map(t|$t->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformTaggedValue()) + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformConstraint(constraint:Constraint[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::domain::Constraint[1] +{ + meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformConstraint($constraint,false, $extensions); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformConstraint(constraint:Constraint[1],useAppliedFunction:Boolean[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::domain::Constraint[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::domain::Constraint + ( + name = $constraint.name->toOne(), + functionDefinition = $constraint.functionDefinition->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::transformLambda($useAppliedFunction, $extensions), + externalId = $constraint.externalId, + enforcementLevel = $constraint.enforcementLevel, + messageFunction = $constraint.messageFunction->map(f | let updatedMessageFunc = meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::removeParameters($f); + $updatedMessageFunc->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::transformLambda($useAppliedFunction, $extensions);) + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::removeParameters(messageFunction:FunctionDefinition[1]):FunctionDefinition[1] +{ + let classifierGenericType = $messageFunction.classifierGenericType->toOne(); + let typeArgument = $classifierGenericType.typeArguments->at(0)->toOne(); + let functionType = $typeArgument.rawType->cast(@FunctionType)->toOne(); + let updatedFunctionType = ^$functionType(parameters = []); + let updatedTypeArgument = ^$typeArgument(rawType = $updatedFunctionType); + let updatedClassifierGenericType = ^$classifierGenericType(typeArguments = $updatedTypeArgument->concatenate($classifierGenericType.typeArguments->tail())); + let updatedMessageFunction = ^$messageFunction(classifierGenericType = $updatedClassifierGenericType); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformAssociation(association:Association[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::domain::Association[1] +{ + let properties = $association.properties->reverseMilestoningTransforms()->cast(@Property); + let qualifiedProperties = $association.qualifiedProperties->reverseMilestoningTransforms()->cast(@QualifiedProperty); + let originalMilestonedProperties = $association.originalMilestonedProperties->reverseMilestoningTransforms()->cast(@Property); + + ^meta::protocols::pure::v1_33_0::metamodel::domain::Association + ( + _type = 'association', + name = $association.name->toOne(), + package = if($association.package->isEmpty(),|[],|$association.package->toOne()->elementToPath()), + properties = $properties->map(p | $p->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformProperty($extensions)), + qualifiedProperties = $qualifiedProperties->map(q|$q->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformQualifiedProperty($extensions)), + originalMilestonedProperties = $originalMilestonedProperties->map(p | $p->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformProperty($extensions)), + stereotypes = $association.stereotypes->map(s|$s->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformStereotype()), + taggedValues = $association.taggedValues->map(t|$t->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformTaggedValue()) + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMeasure(measure:Measure[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::domain::Measure[1] +{ + let canonicalUnit = $measure.canonicalUnit; + let nonCanonicalUnits = $measure.nonCanonicalUnits; + + ^meta::protocols::pure::v1_33_0::metamodel::domain::Measure + ( + _type = 'measure', + name = $measure.name->toOne(), + package = if($measure.package->isEmpty(),|[],|$measure.package->toOne()->elementToPath()), + canonicalUnit = $canonicalUnit->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformUnit($extensions), + nonCanonicalUnits = $nonCanonicalUnits->map(nc | $nc->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformUnit($extensions)) + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformUnit(unit:Unit[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::domain::Unit[1] +{ + let measure = $unit.measure; + let conversionFunction = $unit.conversionFunction; + + ^meta::protocols::pure::v1_33_0::metamodel::domain::Unit + ( + _type = 'unit', + name = $unit.name->toOne(), + package = if($unit.package->isEmpty(),|[],|$unit.package->toOne()->elementToPath()), + measure = $measure->toOne()->elementToPath(), + conversionFunction = $conversionFunction->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::transformLambda($extensions) + ); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformProperty(property:Property[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::domain::Property[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::domain::Property + ( + defaultValue = if($property.defaultValue->isEmpty(),|[],|$property.defaultValue->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformDefaultValue($extensions)->toOne()), + name = $property.name->toOne(), + multiplicity = $property.multiplicity->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()->toOne(), + type = $property.genericType.rawType->toOne()->elementToPath(), + stereotypes = $property.stereotypes->map(s|$s->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformStereotype()), + taggedValues = $property.taggedValues->map(t|$t->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformTaggedValue()) + ) +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformQualifiedProperty(qualifiedProperty:QualifiedProperty[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::domain::QualifiedProperty[1] +{ + meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformQualifiedProperty($qualifiedProperty,false, $extensions); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformQualifiedProperty(qualifiedProperty:QualifiedProperty[1], useAppliedFunction:Boolean[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::domain::QualifiedProperty[1] +{ + let fType = $qualifiedProperty->functionType(); + + ^meta::protocols::pure::v1_33_0::metamodel::domain::QualifiedProperty + ( + name = $qualifiedProperty.name->toOne(), + parameters = $fType.parameters->tail()->map(p|$p->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification([], newMap([]->cast(@Pair>)), true, $extensions)->cast(@meta::protocols::pure::v1_33_0::metamodel::valueSpecification::Variable)), + returnType = $fType.returnType.rawType->toOne()->elementToPath(), + returnMultiplicity = $fType.returnMultiplicity->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()->toOne(), + body = $qualifiedProperty->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformFunctionBody($useAppliedFunction, $extensions), + stereotypes = $qualifiedProperty.stereotypes->map(s|$s->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformStereotype()), + taggedValues = $qualifiedProperty.taggedValues->map(t|$t->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformTaggedValue()) + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformStereotype(s:Stereotype[1]): meta::protocols::pure::v1_33_0::metamodel::domain::StereotypePtr[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::domain::StereotypePtr(profile=$s.profile->elementToPath(), value=$s.value) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformTaggedValue(t:TaggedValue[1]): meta::protocols::pure::v1_33_0::metamodel::domain::TaggedValue[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::domain::TaggedValue(tag=^meta::protocols::pure::v1_33_0::metamodel::domain::TagPtr(profile=$t.tag.profile->elementToPath(), value=$t.tag.value), value=$t.value) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity(multiplicity:Multiplicity[1]): meta::protocols::pure::v1_33_0::metamodel::domain::Multiplicity[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::domain::Multiplicity(lowerBound=$multiplicity.lowerBound.value, upperBound=$multiplicity.upperBound.value) +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformDefaultValue(d:meta::pure::metamodel::function::property::DefaultValue[1], extensions:meta::pure::extension::Extension[*]): meta::protocols::pure::v1_33_0::metamodel::domain::DefaultValue[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::domain::DefaultValue( + value = $d.functionDefinition.expressionSequence->at(0)->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification([], newMap([]->cast(@Pair>)),true, $extensions) + ) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformEnum(enum:Enumeration[1]):meta::protocols::pure::v1_33_0::metamodel::domain::Enumeration[1] +{ + let pack = $enum->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::enumPackage(); + ^meta::protocols::pure::v1_33_0::metamodel::domain::Enumeration + ( + _type = 'Enumeration', + name = $enum->enumName(), + package = if($pack == '',|[], |$pack), + values = $enum->enumValues()->map(e|^ meta::protocols::pure::v1_33_0::metamodel::domain::EnumValue + ( + value=$e->cast(@Enum).name, + stereotypes = $e->cast(@AnnotatedElement).stereotypes->map(s|$s->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformStereotype()), + taggedValues = $e->cast(@AnnotatedElement).taggedValues->map(t|$t->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformTaggedValue()) + ) + ), + stereotypes = $enum->cast(@AnnotatedElement).stereotypes->map(s|$s->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformStereotype()), + taggedValues = $enum->cast(@AnnotatedElement).taggedValues->map(t|$t->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformTaggedValue()) + ); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::enumPackage(e:Enumeration[1]):String[1]{ + let s = $e->elementToPath()->split('::'); + let fullLengh = $s->size(); + if($fullLengh < 2, + |'', + |$s->init()->joinStrings('::'); + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::transformFunction(f:ConcreteFunctionDefinition[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::domain::Function[1] +{ + + ^meta::protocols::pure::v1_33_0::metamodel::domain::Function + ( + _type = 'function', + name = $f.name->toOne(), + package=$f.package->toOne()->elementToPath(), + body = $f->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformFunctionBody(true, $extensions), + parameters = $f->functionType().parameters->map(p | + $p->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification([], ^Map>(), true, true, $extensions)->cast(@meta::protocols::pure::v1_33_0::metamodel::valueSpecification::Variable) + ), + returnType = $f->functionReturnType().rawType->toOne()->elementToPath(), + returnMultiplicity = $f->functionReturnMultiplicity()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()->toOne(), + preConstraints = $f.preConstraints->map(c |$c->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformConstraint($extensions)), + postConstraints = $f.postConstraints->map(c |$c->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformConstraint($extensions)), + stereotypes = $f.stereotypes->map(s|$s->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformStereotype()), + taggedValues = $f.taggedValues->map(t|$t->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformTaggedValue()) + + ) +} +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::transformProfile(p:Profile[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::domain::Profile[1] + +{ ^meta::protocols::pure::v1_33_0::metamodel::domain::Profile(_type = 'profile', + name = $p.name->toOne(), + package = if($p.package->isEmpty(),|[],|$p.package->toOne()->elementToPath()), + stereotypes = $p.p_stereotypes->map(s|$s.value), + tags = $p.p_tags->map(t|$t.value) + + ) + +} \ No newline at end of file diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/store.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/store.pure new file mode 100644 index 00000000000..7c07e31c3fd --- /dev/null +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/store.pure @@ -0,0 +1,91 @@ +// Copyright 2020 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::pure::extension::*; +import meta::json::*; +import meta::pure::runtime::*; + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::runtime::transformRuntime(pureRuntime:Runtime[1], extensions:Extension[*]):meta::protocols::pure::v1_33_0::metamodel::Runtime[1] +{ + $pureRuntime->match([ + legacy:Runtime[1] | ^meta::protocols::pure::v1_33_0::metamodel::LegacyRuntime( + _type = 'legacyRuntime', + connections = $pureRuntime.connections->map(con|$con->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::runtime::transformConnection($extensions)) + ); + ]) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::transformStore(store:meta::pure::store::Store[1], extensions:Extension[*]):meta::protocols::pure::v1_33_0::metamodel::store::Store[1] +{ + let handlers = $extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).transfers_store_transformStore + ->concatenate($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).transfers_store_transformStore2->map(f | $f->eval($extensions))); + assert($handlers->isNotEmpty(), |'Error, trying to process Stores with no handlers'); + $store->match($handlers->toOneMany()); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::runtime::transformConnection(connection:Connection[1], extensions:Extension[*]):meta::protocols::pure::v1_33_0::metamodel::runtime::Connection[1] +{ + $connection->match($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).transfers_store_transformConnection->concatenate( + $extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).transfers_store_transformConnection2->map(f | $f->eval($extensions)))->concatenate( + [ + + model:meta::pure::mapping::modelToModel::ModelConnection[1] | $model->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformModelConnection(), + j:meta::pure::mapping::modelToModel::JsonModelConnection[1] | $j->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), + x:meta::pure::mapping::modelToModel::XmlModelConnection[1] | $x->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), + c:meta::pure::mapping::modelToModel::ModelChainConnection[1] | $c->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformChainConnection(), + + + other: meta::pure::runtime::Connection[1] | let failureClass = $other->class()->toString(); + fail('' + $failureClass + ' Connection type not supported Yet!'); + @meta::protocols::pure::v1_33_0::metamodel::runtime::Connection; + ])->toOneMany() + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::pure::mapping::modelToModel::ModelConnection[1]):meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::ModelConnection[1] +{ + let instances = $modelConnection.instances->keyValues(); + ^meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::ModelConnection( element = 'ModelStore', + _type='ModelConnection', + input = ^meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::ModelStringInput(_type='ModelStringInput', class=$instances->at(0).first->elementToPath(), instances=$instances.second.values->map(i| $i->toJsonBeta()))); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::pure::mapping::modelToModel::JsonModelConnection[1]):meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::JsonModelConnection[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::JsonModelConnection( + element = 'ModelStore', + _type = 'JsonModelConnection', + class = $jsonModelConnection.class->elementToPath(), + url = $jsonModelConnection.url + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::pure::mapping::modelToModel::XmlModelConnection[1]):meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::XmlModelConnection[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::XmlModelConnection( + element = 'ModelStore', + _type = 'XmlModelConnection', + class = $xmlModelConnection.class->elementToPath(), + url = $xmlModelConnection.url + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::pure::mapping::modelToModel::ModelChainConnection[1]):meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::ModelChainConnection[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::ModelChainConnection( + element = 'ModelStore', + _type = 'ModelChainConnection', + mappings = $modelChainConnection.mappings->map(m | $m->elementToPath()) + ) +} \ No newline at end of file diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/valueSpecification.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/valueSpecification.pure new file mode 100644 index 00000000000..172a0235754 --- /dev/null +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/valueSpecification.pure @@ -0,0 +1,1088 @@ +// Copyright 2020 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. + +###Pure +import meta::pure::milestoning::*; +import meta::pure::graphFetch::execution::*; +import meta::json::*; +import meta::pure::graphFetch::routing::*; +import meta::pure::router::clustering::*; +import meta::pure::router::metamodel::*; +import meta::pure::router::metamodel::clustering::*; +import meta::pure::graphFetch::*; +import meta::pure::metamodel::path::*; + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformFunctionBody(f:FunctionDefinition[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[*] +{ + meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformFunctionBody($f,false, $extensions); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformFunctionBody(f:FunctionDefinition[1],useAppliedFunction:Boolean[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[*] +{ + $f.expressionSequence->map(e|$e->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification($f->functionType().parameters->evaluateAndDeactivate().name, $f->openVariableValues(),false,$useAppliedFunction, $extensions)); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification(v:ValueSpecification[1], inScope:String[*], open:Map>[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[1] +{ + meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification($v, $inScope, $open,false, $extensions); +} + + + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification(v:ValueSpecification[1], inScope:String[*], open:Map>[1],isParameter:Boolean[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[1] +{ + meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification($v, $inScope, $open,$isParameter,false, $extensions); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification(v:ValueSpecification[1], inScope:String[*], open:Map>[1],isParameter:Boolean[1],useAppliedFunction:Boolean[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[1] +{ + $v->evaluateAndDeactivate()->match( + [ + f:FunctionRoutedValueSpecification[1]|$f.value->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification($inScope, $open, false, $extensions), + e:ExtendedRoutedValueSpecification[1]|$e.value->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification($inScope, $open, false, $extensions), + e:ClusteredValueSpecification[1]|$e.val->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification($inScope, $open, false, $extensions), + funcExp:FunctionExpression[1]| + let fe = meta::pure::milestoning::reverseMilestoningTransforms($funcExp); + let spec = $fe.func->match( + [ + p:Property[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::application::AppliedProperty + ( + _type = 'property', + property = $fe.func.name->toOne()->cast(@String), + parameters = $fe.parametersValues->evaluateAndDeactivate()->map(pm|$pm->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification($inScope, $open,false,$useAppliedFunction, $extensions)) + ), + p:QualifiedProperty[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::application::AppliedProperty + ( + _type = 'property', + property = $fe.func.name->toOne()->cast(@String), + parameters = $fe.parametersValues->evaluateAndDeactivate()->map(pm|$pm->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification($inScope, $open, false, $extensions)) + ), + f:Function[1]| + let passToTransformAny = + [ + agg_FunctionDefinition_1__FunctionDefinition_1__AggregateValue_1_, + agg_String_1__FunctionDefinition_1__FunctionDefinition_1__AggregateValue_1_, + func_String_1__FunctionDefinition_1__TdsOlapAggregation_1_, + func_FunctionDefinition_1__TdsOlapRank_1_ + ]; + + let isExtractEnum = $fe->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::hasExtractEnumValue(); + if($isExtractEnum, + |^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::application::AppliedProperty + ( + _type = 'property', + property = $fe.parametersValues->at(1)->cast(@InstanceValue).values->toOne()->cast(@String), + parameters = $fe.parametersValues->at(0)->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification($inScope, $open,false, $extensions) + );, + | let isAutoMap = meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::hasAutoMapProperty($fe); + if($isAutoMap, + | let xs = $fe.parametersValues + ->filter(f|$f->instanceOf(InstanceValue))->cast(@InstanceValue).values + ->filter(f|$f->instanceOf(LambdaFunction))->cast(@LambdaFunction).expressionSequence; + let newProp = $xs->at(0) ->cast(@SimpleFunctionExpression); + let newProperty = meta::pure::milestoning::reverseMilestoningTransforms($newProp); + let newParameter = $fe.parametersValues->at(0); + let additionalParameters = $xs->cast(@SimpleFunctionExpression).parametersValues->tail(); + let updatedProperty = ^$newProperty(parametersValues = $newParameter ->concatenate( $additionalParameters )); + $updatedProperty->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification($inScope,$open,false,$useAppliedFunction, $extensions); + + ,| if($passToTransformAny->contains($fe.func) || (new_Class_1__String_1__KeyExpression_MANY__T_1_ == $fe.func && $fe.parametersValues->at(0).genericType.typeArguments.rawType->cast(@Class)->at(0)->isWithinPackage(meta::pure) && !($fe.parametersValues->at(0).genericType.typeArguments.rawType->cast(@Class)->at(0)->cast(@PackageableElement)->meta::alloy::isMetaAlloyTestDependency())), + |$fe->reactivate($fe->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::scan()->map(o|pair($o,^List()))->newMap())->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformAny($inScope, $open, PureOne, 0, $fe, $extensions);, + |let package = if($fe.func->instanceOf(PackageableFunction), |$fe.func->cast(@PackageableFunction).package->toOne(), |::); + if($fe.func->instanceOf(FunctionDefinition) && $useAppliedFunction && (!$package->isWithinPackage(meta) && !$package->meta::alloy::isMetaAlloyTestDependency() || $package->meta::alloy::isMetaAlloyTestDependencyForGeneration() ), + |let functionName = $fe.functionName->toOne(); + let packagePath = $package->elementToPath() + '::'; + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::application::AppliedFunction + ( + _type = 'func', + function = if($functionName->startsWith($packagePath),|$functionName,|$packagePath + $functionName), + parameters = $fe.parametersValues->evaluateAndDeactivate()->map(pm|$pm->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification($inScope, $open,false,$useAppliedFunction, $extensions)) + ) + ;,|if ($fe.func->instanceOf(FunctionDefinition) && (!$package->isWithinPackage(meta) || $package->meta::alloy::isMetaAlloyTestDependency()), + | + if($fe.func->cast(@FunctionDefinition).expressionSequence->size() == 1, + {| + //in-line function + let pNames = $fe.func->functionType().parameters->evaluateAndDeactivate().name; + let pValues = $fe.parametersValues->evaluateAndDeactivate()->map(v| + $v->match([ + ve:VariableExpression[1]| + if($open->get($ve.name).values->isNotEmpty(),| $open->get($ve.name), |list($ve)); + , + any:ValueSpecification[1]|list($any) + ])); + + let newOpen = $open->putAll($pNames->zip($pValues)->newMap()); + + $fe.func->cast(@FunctionDefinition).expressionSequence->at(0)->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification($inScope, $newOpen,false,$useAppliedFunction, $extensions); + }, + {| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::application::UnknownAppliedFunction + ( + _type = 'unknownFunc', + function = $fe.func.functionName->toOne(), + returnType = $fe.func->functionReturnType().rawType->toOne()->elementToPath(), + returnMultiplicity = $fe.func->functionReturnMultiplicity()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity() + ) + } + ), + |^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::application::AppliedFunction + ( + _type = 'func', + function = $fe.func.functionName->toOne(), + fControl = $fe.func.name->toOne(), + parameters = $fe.parametersValues->evaluateAndDeactivate()->map(pm|$pm->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification($inScope, $open,false,$useAppliedFunction, $extensions)) + ) + ); + ); + ); + ); + ); + + ] + ); + , + i:InstanceValue[1]| + if($i->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::isClassFunctionParameter(true), + |$i->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformHackedClass(), + | if($i->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::isClassFunctionParameter(false), + |$i.genericType.typeArguments.rawType->toOne()->meta::protocols::pure::v1_33_0::transformation ::fromPureGraph::valueSpecification::transformAny($inScope, $open, $i.multiplicity, 0 , [],$useAppliedFunction, $extensions), + |if($i->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::isHackedUnit(), + |$i->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformHackedUnit(), + |if($i->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::isUnitType(), + |$i->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformUnitInstance(), + |$i.values->meta::protocols::pure::v1_33_0::transformation ::fromPureGraph::valueSpecification::transformAny($inScope, $open, $i.multiplicity, 0 , [],$useAppliedFunction, $extensions)))));, + v:VariableExpression[1]| + if ($inScope->contains($v.name), + |meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformVar($v,$isParameter), + |let r = $open->get($v.name); + let vals = $r.values->evaluateAndDeactivate(); + if ($r->isEmpty(), + |meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformVar($v,$isParameter), + |if ($vals->size() == 1 && $vals->toOne()->instanceOf(VariableExpression), + |meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformVar($vals->toOne()->cast(@VariableExpression),$isParameter), + |$r.values->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformAny($inScope, $open, if($vals->isEmpty(),|PureZero,|$v.multiplicity), $extensions); + ) + ); + ); + ] + ); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::isUnitType(v:InstanceValue[1]):Boolean[1] +{ + $v.genericType.rawType->toOne()->instanceOf(Unit) +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::isHackedUnit(v:InstanceValue[1]):Boolean[1] +{ + $v.values->isEmpty() && $v.multiplicity == PureOne && $v->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::isUnitType() +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::isClassFunctionParameter(v:InstanceValue[1], ishacked:Boolean[1]):Boolean[1] +{ + let rawType = $v.genericType.rawType->toOne(); + $v.values->isEmpty() && $v.multiplicity == PureOne && (($rawType->instanceOf(DataType) && !$rawType->instanceOf(Unit)) || $rawType->instanceOf(Class) && (($ishacked && $rawType.name != 'Class') || (!$ishacked && $rawType.name == 'Class'))); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformHackedClass(v:InstanceValue[1]):meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::GenericTypeInstance[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::GenericTypeInstance + ( + _type = 'genericTypeInstance', + fullPath = $v.genericType.rawType->toOne()->match([ + d:DataType[1]|$d->makeString(), + c:Class[1]|$c->elementToPath() + ]) + ) +} + +//here +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformVar(v:VariableExpression[1], isParameter:Boolean[1]):meta::protocols::pure::v1_33_0::metamodel::valueSpecification::Variable[1] +{ + //xStore generates 'that' but provides no context on what the class is so we need to leave the class in +// if(($isParameter &&$v.name != 'this' ) || $v.name == 'v_automap' || $v.name == 'that' , + if($isParameter && !$v.genericType->instanceOf(InferredGenericType) && $v.name != 'this', + |^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::Variable + ( + _type = 'var', + multiplicity = $v.multiplicity->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity(), + name = $v.name, + class = $v.genericType.rawType->toOne()->elementToPath() + ); + ,|^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::Variable + ( + _type = 'var', + name = $v.name + ); + ); + +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformHackedUnit(v:ValueSpecification[1]):meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::GenericTypeInstance[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::GenericTypeInstance(_type='genericTypeInstance', fullPath=$v.genericType.rawType->toOne()->elementToPath()); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformUnitInstance(v:ValueSpecification[1]):meta::protocols::pure::v1_33_0::metamodel::valueSpecification::UnitInstance[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::UnitInstance(_type='unitInstance', unitType=$v.genericType.rawType->toOne()->elementToPath(), unitValue=$v->cast(@InstanceValue).values->toOne()->cast(@Number)); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformAny(l:Any[*], inScope:String[*], open:Map>[1], m:Multiplicity[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[1] +{ + meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformAny($l, $inScope, $open, $m, 0 , [], $extensions) +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformAny(l:Any[*], inScope:String[*], open:Map>[1], m:Multiplicity[1], depth:Integer[1], fe:FunctionExpression[0..1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[1] +{ + meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformAny($l, $inScope, $open, $m, $depth,$fe, false, $extensions) + +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformAny(l:Any[*], inScope:String[*], open:Map>[1], m:Multiplicity[1], depth:Integer[1], fe:FunctionExpression[0..1],useAppliedFunction:Boolean[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[1] +{ + $l->match( + $extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).transfers_valueSpecification_transformAny->map(f|$f->eval($inScope, $open, $m, $fe, $useAppliedFunction, $extensions))->concatenate([ + n:Nil[0] | + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::Collection + ( + _type = 'collection', + multiplicity = $m->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity() + ), + s:String[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::CString + ( + _type = 'string', + value = $s + ), + i:Integer[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::CInteger + ( + _type = 'integer', + value = $i + ), + d:Decimal[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::CDecimal + ( + _type = 'decimal', + value = $d + ), + f:Float[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::CFloat + ( + _type = 'float', + value = $f + ), + b:Boolean[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::CBoolean + ( + _type = 'boolean', + value = $b + ), + d:StrictDate[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::CStrictDate + ( + _type = 'strictDate', + value = $d->map(st|$st->toString()) + ), + d:DateTime[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::CDateTime + ( + _type = 'dateTime', + value = $d->map(st|$st->toString()) + ), + l:LatestDate[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::CLatestDate + ( + _type = 'latestDate' + ), + c:Class[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::PackageableElementPtr + ( + _type = 'packageableElementPtr', + fullPath = $c->at(0)->elementToPath() + ), + l:LambdaFunction[1]| + let nInScope = $l->functionType().parameters->evaluateAndDeactivate().name; + let nOpen = $open->putAll($l->openVariableValues()->keyValues()->filter(v|$v.second.values->isNotEmpty())); + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda + ( + _type = 'lambda', + parameters = $l->at(0)->functionType().parameters->evaluateAndDeactivate()->map(p|$p->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification($nInScope, $nOpen, true,$useAppliedFunction, $extensions)->cast(@meta::protocols::pure::v1_33_0::metamodel::valueSpecification::Variable)), + body = $l.expressionSequence->map(e|$e->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification($nInScope, $nOpen,false,$useAppliedFunction, $extensions)) + );, + e:Enum[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::EnumValue + ( + _type = 'enumValue', + fullPath = $e->genericType().rawType->toOne()->elementToPath(), + value = $e->id() + ), + e:Enumeration[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::PackageableElementPtr + ( + _type = 'packageableElementPtr', + fullPath = $e->elementToPath() + ), + u:Unit[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::PackageableElementPtr + ( + _type = 'packageableElementPtr', + fullPath = $u->elementToPath() + ), + v:ValueSpecification[1]|$v->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification($inScope, $open,false,$useAppliedFunction, $extensions), + a:Path[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ClassInstance + ( + _type = 'classInstance', + type = 'path', + value = ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Path + ( + name = if ($a.name->isEmpty(),|'',|$a.name->toOne()), + startType = $a.start.rawType->toOne()->elementToPath(), + path = $a.path->map( + p|$p->match( + [ + p:PropertyPathElement[1]|^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::PropertyPathElement( + _type='propertyPath', + property=$p.property.name->toOne(), + parameters = $p.parameters->map(pa|$pa->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification($inScope, $open, $extensions)) + ) + ] + ) + ) + ) + ) + ;, + a:meta::pure::functions::collection::AggregateValue[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ClassInstance + ( + _type = 'classInstance', + type = 'aggregateValue', + value = ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::AggregateValue + ( + mapFn = $a.mapFn->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformAny($inScope, $open, PureOne, $extensions)->cast(@meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda), + aggregateFn= $a.aggregateFn->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformAny($inScope, $open, PureOne, $extensions)->cast(@meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda) + ) + ), + a:meta::pure::tds::AggregateValue[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ClassInstance + ( + _type = 'classInstance', + type = 'tdsAggregateValue', + value = ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::TDSAggregateValue + ( + name = $a.name, + mapFn = $a.mapFn->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformAny($inScope, $open, PureOne, $extensions)->cast(@meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda), + aggregateFn= $a.aggregateFn->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformAny($inScope, $open, PureOne, $extensions)->cast(@meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda) + ) + ), + oo:meta::pure::tds::OlapOperation[1]| + $oo->match([ + oa : meta::pure::tds::TdsOlapAggregation[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ClassInstance + ( + _type = 'classInstance', + type = 'tdsOlapAggregation', + value = ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::TdsOlapAggregation + ( + columnName = $oa.colName, + function = $oa.func->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformAny($inScope, $open, PureOne, $extensions)->cast(@meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda) + ) + ), + or : meta::pure::tds::TdsOlapRank[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ClassInstance + ( + _type = 'classInstance', + type = 'tdsOlapRank', + value = ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::TdsOlapRank + ( + function = $or.func->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformAny($inScope, $open, PureOne, $extensions)->cast(@meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda) + ) + ) + ]), + si:meta::pure::tds::SortInformation[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ClassInstance + ( + _type = 'classInstance', + type = 'tdsSortInformation', + value = ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::TDSSortInformation + ( + column = $si.column, + direction = $si.direction->toString() + ) + ), + co:meta::pure::tds::BasicColumnSpecification[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ClassInstance + ( + _type = 'classInstance', + type = 'tdsColumnInformation', + value = ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::TDSColumnInformation + ( + name = $co.name, + columnFn = $co.func->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformAny($inScope, $open, PureOne, $extensions)->cast(@meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda) + ) + ), + pair:Pair[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ClassInstance + ( + _type = 'classInstance', + type = 'pair', + value = ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Pair + ( + first = $pair.first->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformAny($inScope, $open, PureOne, $extensions), + second = $pair.second->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformAny($inScope, $open, PureOne, $extensions) + ) + ), + m:meta::pure::mapping::Mapping[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::PackageableElementPtr + ( + _type = 'packageableElementPtr', + fullPath = $m->elementToPath()->toOne() + ), + r:meta::pure::runtime::Runtime[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ClassInstance + ( + _type = 'classInstance', + type = 'runtimeInstance', + value = ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::RuntimeInstance + ( + runtime = $r->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::runtime::transformRuntime($extensions) + ) + ), + l:List[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::List + ( + _type = 'collection', + values = $l.values->map(la|$la->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformAny($inScope, $open, PureOne, $extensions)) + ), + a:AlloySerializationConfig[1] | + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ClassInstance + ( + _type = 'classInstance', + type = 'alloySerializationConfig', + value = ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::AlloySerializationConfig + ( + typeKeyName = $a.typeKeyName, + includeType = $a.includeType, + includeEnumType = $a.includeEnumType, + dateTimeFormat = $a.dateTimeFormat, + removePropertiesWithNullValues = $a.removePropertiesWithNullValues, + removePropertiesWithEmptySets = $a.removePropertiesWithEmptySets, + fullyQualifiedTypePath = $a.fullyQualifiedTypePath, + includeObjectReference = $a.includeObjectReference + ) + ), + g:GraphFetchTree[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ClassInstance + ( + _type = 'classInstance', + type = 'rootGraphFetchTree', + value = $g->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformGraphFetchTree($inScope, $open, $extensions) + ), + k:KeyExpression[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::KeyExpression + ( + _type = 'keyExpression', + add = $k.add, + key = $k.key->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification($inScope, $open, false, $extensions), + expression = $k.expression->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification($inScope, $open, false, $extensions) + );, + p:PrimitiveType[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::PackageableElementPtr + ( + _type = 'packageableElementPtr', + fullPath = $p.name->toOne() + ), + a:Any[1]| + meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::possiblyTransformNewFunction($a, $m, $fe, $inScope, $open, $extensions);, + a:Any[*]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::Collection + ( + _type = 'collection', + multiplicity = $m->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity(), + values = $a->map(la|$la->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformAny($inScope, $open, PureOne,0,[],$useAppliedFunction, $extensions)) + ); + ])->toOneMany() + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::possiblyTransformNewFunction(any:Any[1], m:Multiplicity[1],fe:FunctionExpression[0..1], inScope:String[*], open:Map>[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[1] +{ + if($fe->isNotEmpty() && $fe.functionName== 'new', + |let serialized = ^ meta::protocols::pure::v1_33_0::metamodel::valueSpecification::application::AppliedFunction( + _type = 'func', + function = $fe.func.functionName->toOne(), + fControl = $fe.func.name->toOne(), + parameters = $fe->toOne().parametersValues->head()->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformNewClass() + ->concatenate($fe->toOne().parametersValues->tail()->map(vs|$vs->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification( $inScope, $open, $extensions) )) + );, + + + | let class = $any->genericType().rawType->toOne()->cast(@PackageableElement); + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::CString + ( + _type = 'string', + value = $class->elementToPath() + ' can\'t be translated' + ); + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformNewClass(v:ValueSpecification[1]):meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::PackageableElementPtr[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::PackageableElementPtr + ( + _type = 'packageableElementPtr', + fullPath = $v.genericType.typeArguments->at(0).rawType->toOne()->elementToPath() + ); +} +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformGraphFetchTree(tree: GraphFetchTree[1], inScope:String[*], open:Map>[1], extensions:meta::pure::extension::Extension[*]): meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::GraphFetchTree[1] +{ + let base = $tree->match([ + r: RootGraphFetchTree[1] | ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::RootGraphFetchTree( + _type = 'rootGraphFetchTree', + class = $r.class->elementToPath() + ), + p: PropertyGraphFetchTree[1] | ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::PropertyGraphFetchTree( + _type = 'propertyGraphFetchTree', + property = $p.property.name->toOne(), + parameters = $p.parameters->map(p| $p->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification($inScope, $open, $extensions)), + alias = $p.alias, + subType = $p.subType->map(st| $st->elementToPath()) + ), + s: SubTypeGraphFetchTree[1] | ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::SubTypeGraphFetchTree( + _type = 'subTypeGraphFetchTree', + subTypeClass = $s.subTypeClass->elementToPath() + ), + c: ClusteredGraphFetchTree[1] | meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformGraphFetchTree($c.tree, $inScope, $open, $extensions) + ]); + + let subtrees = $tree->match([ + c: ClusteredGraphFetchTree[1] | $c.tree.subTrees->map(st|$st->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformGraphFetchTree($inScope, $open, $extensions)), + g: GraphFetchTree[1] | $g.subTrees->map(st|$st->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformGraphFetchTree($inScope, $open, $extensions)) + ]); + + let subTypeTrees = $tree->match([ + c: ClusteredGraphFetchTree[1] | $c.tree.subTypeTrees->map(stt|$stt->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformGraphFetchTree($inScope, $open, $extensions)->cast(@meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::SubTypeGraphFetchTree)), + g: GraphFetchTree[1] | $g.subTypeTrees->map(stt | $stt->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformGraphFetchTree($inScope, $open, $extensions)->cast(@meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::SubTypeGraphFetchTree)) + ]); + + ^$base(subTrees=$subtrees, subTypeTrees=$subTypeTrees); +} + + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::hasAutoMapProperty(fe:FunctionExpression[1]):Boolean[1] +{ + + let instanceProps = $fe.parametersValues->evaluateAndDeactivate()->filter(f|$f->instanceOf(InstanceValue)); + if($instanceProps->isNotEmpty(), + |let lambda = $instanceProps->cast(@InstanceValue).values->filter(f|$f->instanceOf(LambdaFunction)); + if($lambda->isNotEmpty(), + | let es = $lambda->cast(@LambdaFunction).expressionSequence->at(0)->filter(e|$e->instanceOf(SimpleFunctionExpression)); + if($es->isNotEmpty(), + |let ve = $es->cast(@SimpleFunctionExpression).parametersValues->first()->filter(f|$f->instanceOf(VariableExpression)); + if($ve->isNotEmpty(), + | $ve->cast(@VariableExpression).name== 'v_automap'; + ,|false); + ,|false); + ,|false); + ,|false); + +} + + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::hasExtractEnumValue(fe:FunctionExpression[1]):Boolean[1] +{ + + if($fe.func.name=='extractEnumValue_Enumeration_1__String_1__T_1_', + | if($fe.parametersValues->at(0)->instanceOf(InstanceValue) && $fe.parametersValues->at(1)->instanceOf(InstanceValue) , + |true,|false), + |false); + +} + + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::scan(v:Any[1]):String[*] +{ + $v->match( + [ + i:InstanceValue[1]| $i.values->map(s|$s->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::scan()), + l:LambdaFunction[1]|$l.openVariables, + f:FunctionExpression[1]|$f.parametersValues->map(p|$p->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::scan()), + a:Any[1]|[] + ] + ) +} + + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::transformLambda(f:FunctionDefinition[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[1] +{ + meta::protocols::pure::v1_33_0::transformation::fromPureGraph::transformLambda($f, false, $extensions); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::transformLambda(f:FunctionDefinition[1],useAppliedFunction:Boolean[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda + ( + _type = 'lambda', + body = $f->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformFunctionBody($useAppliedFunction, $extensions), + parameters = $f->functionType().parameters->map(p | + $p->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification([], ^Map>(), true, $useAppliedFunction, $extensions)->cast(@meta::protocols::pure::v1_33_0::metamodel::valueSpecification::Variable) + ) + ); +} + +###Pure +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::*; +import meta::protocols::pure::v1_33_0::metamodel::valueSpecification::*; +import meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::*; +import meta::protocols::pure::v1_33_0::metamodel::valueSpecification::application::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::*; +import meta::pure::metamodel::serialization::grammar::*; + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::resolveFControlFunction(af : AppliedFunction[1], fControlToFunctionMapping : Map>>[1]):Function[1] +{ + let fMatches = $fControlToFunctionMapping->get($af.fControl->toOne()).values; + let f = if($fMatches->size() <= 1, + | if($fMatches->isNotEmpty(), + | $fMatches->toOne(), + | let f2 = $af.fControl->toOne()->forgivingPathToElement()->match([f:FunctionDefinition[1]|$f, a:Any[*]|[]]); + assertNotEmpty($f2, | 'Failed to find match for ' + $af.fControl->toOne()); + $f2->toOne(); + );, + | let secondPassMatches = $fMatches->filter(fMatch| $fMatch->functionType().parameters == $af.parameters); + assertNotEmpty($secondPassMatches, | 'Failed to find second pass match for ' + $af.fControl->toOne() + ' (out of ' + $fMatches->map(f|$f->elementToPath())->joinStrings('', ',', '') + ')'); + + assertEquals(1, $secondPassMatches->size(), | 'Found duplicate second pass match for ' + $af.fControl->toOne() + ' (' + $secondPassMatches->map(f|$f->elementToPath())->joinStrings('', ',', '') + ')'); + $secondPassMatches->toOne(); + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::toPure(vs : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[*]):String[1] +{ + meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::toPure($vs, []) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::toPure(vs : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[*], extensions:meta::pure::extension::Extension[*]):String[1] +{ + let state = meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::defaultAlloyToPureState($extensions); + meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::toPure($state, $vs); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::defaultAlloyToPureState(extensions:meta::pure::extension::Extension[*]):AlloyToPureState[1] +{ + let imports = system::imports::coreImport.imports.path->map(path|$path->forgivingPathToElement())->cast(@Package); + + let fControlToFunctionMapping = $imports.children->map(e|$e->match([c:Function[1]|$c, a:Any[*]|[]])) + ->map(c|pair($c.name->toOne(), $c)) + ->concatenate(meta::pure::router::routing::shouldStopFunctions($extensions)->map(f | pair($f.name->toOne(), $f))) + ->concatenate([ + pair(meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__TabularDataSet_1_.name->toOne(), meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__TabularDataSet_1_), + pair(meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__ExecutionContext_1__TabularDataSet_1_.name->toOne(), meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__ExecutionContext_1__TabularDataSet_1_), + pair(meta::pure::runtime::currentUserId__String_1_.name->toOne(), meta::pure::runtime::currentUserId__String_1_), + pair(meta::pure::functions::hash::hash_String_1__HashType_1__String_1_.name->toOne(), meta::pure::functions::hash::hash_String_1__HashType_1__String_1_) + ]) + ->removeDuplicatesBy(p | $p.second) + ->newMultiValueMap(); + + let state = ^AlloyToPureState( + currentIndent = 0, + indentSize = 4, + infixFunctions = getSignFunctions(), + coreImportPackages = $imports, + funcs = $fControlToFunctionMapping, + removeFunctionPaths = false + ); +} + +Class <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::AlloyToPureState +{ + currentIndent : Integer[1]; + indentSize : Integer[1]; + infixFunctions : meta::pure::functions::collection::Pair, String>[*]; + funcs : Map>>[1]; + coreImportPackages : Package[*]; + removeFunctionPaths:Boolean[1]; +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::domainToPure(domain:meta::protocols::pure::v1_33_0::metamodel::domain::Domain[0..1]):String[1] +{ + let profiles = $domain.profiles->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::profilesToPure(); + let enums = $domain.enums->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::enumsToPure(); + let classes = $domain.classes->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::classElementsToPure(''); + let associations = $domain.associations->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::associationsToPure(); + $profiles+$enums+$classes+$associations; +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::domainToPure(elements:meta::protocols::pure::v1_33_0::metamodel::PackageableElement[*]):String[1] +{ + let profiles = $elements->filter(e | $e->instanceOf(meta::protocols::pure::v1_33_0::metamodel::domain::Profile))->cast(@meta::protocols::pure::v1_33_0::metamodel::domain::Profile)->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::profilesToPure(); + let enums = $elements->filter(e | $e->instanceOf(meta::protocols::pure::v1_33_0::metamodel::domain::Enumeration))->cast(@meta::protocols::pure::v1_33_0::metamodel::domain::Enumeration)->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::enumsToPure(); + let classes = $elements->filter(e | $e->instanceOf(meta::protocols::pure::v1_33_0::metamodel::domain::Class))->cast(@meta::protocols::pure::v1_33_0::metamodel::domain::Class)->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::classElementsToPure(''); + let associations = $elements->filter(e | $e->instanceOf(meta::protocols::pure::v1_33_0::metamodel::domain::Association))->cast(@meta::protocols::pure::v1_33_0::metamodel::domain::Association)->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::associationsToPure(); + $profiles + $enums + $classes + $associations; +} + + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::profilesToPure(ps:meta::protocols::pure::v1_33_0::metamodel::domain::Profile[*]):String[1] +{ + $ps->map(p | 'Profile '+if($p.package->isEmpty(),|$p.name,|$p.package->toOne()+'::'+$p.name)+'\n{\n '+ if($p.stereotypes->isNotEmpty() ,|'stereotypes: '+$p.stereotypes->makeString('[',',','];'),|'tags: '+$p.tags->makeString('[',',','];'))+'\n}\n')->makeString(); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::enumsToPure(es:meta::protocols::pure::v1_33_0::metamodel::domain::Enumeration[*]):String[1] +{ + $es->map(e | 'Enum '+if($e.package->isEmpty(),|$e.name,|$e.package->toOne()+'::'+$e.name)+'\n{\n '+ $e.values.value->makeString() +'\n}\n')->makeString(); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::associationsToPure(as:meta::protocols::pure::v1_33_0::metamodel::domain::Association[*]):String[1] +{ + $as->map(a| 'Association '+if($a.package->isEmpty(),|$a.name,|$a.package->toOne()+'::'+$a.name)+'\n{'+$a.properties->classElementsToPure('\n')+$a.qualifiedProperties->classElementsToPure('\n')+'\n}\n')->makeString() +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::classElementsToPure(as:Any[*], separator:String[1]):String[1]{ + $as->map(a|$a->match([ c:meta::protocols::pure::v1_33_0::metamodel::domain::Class[1]| let nonAnySuperTypes = $c.superTypes->filter(s|$s != 'meta::pure::metamodel::type::Any'); + '\nClass '+ if($c.stereotypes->isNotEmpty(),|'\t<<'+$c.stereotypes->classElementsToPure(',') + '>>\n',|'') + if($c.taggedValues->isNotEmpty(),|'\t{'+$c.taggedValues->classElementsToPure(',')+'}\n',|'') + if($c.package->isEmpty(),|$c.name,|$c.package->toOne()+'::'+$c.name) + if($nonAnySuperTypes->isNotEmpty(),| ' extends '+$nonAnySuperTypes->makeString(','),|'') +'\n{\n' + $c.properties->classElementsToPure('\n') + '\n' + $c.qualifiedProperties->classElementsToPure('\n')+'\n}\n';, + p:meta::protocols::pure::v1_33_0::metamodel::domain::Property[1]| if($p.stereotypes->isNotEmpty(),|'\t<<'+$p.stereotypes->classElementsToPure(',') + '>>\n',|'') + if($p.taggedValues->isNotEmpty(),|'\t{'+$p.taggedValues->classElementsToPure(',')+'}\n',|'') + '\t'+$p.name+':'+$p.type+'['+$p.multiplicity->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::mapToString() +'];', + q:meta::protocols::pure::v1_33_0::metamodel::domain::QualifiedProperty[1]| '\t'+$q.name+'('+$q.parameters->tail()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::classElementsToPure(',')+'){'+$q.body->toPure()->replace('\n','')+'}:'+$q.returnType+'['+$q.returnMultiplicity->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::mapToString() +'];', + v:meta::protocols::pure::v1_33_0::metamodel::valueSpecification::Variable[1]|$v.name + ':' + $v.class->toOne() +'['+$v.multiplicity->toOne()->mapToString()+']', + s:meta::protocols::pure::v1_33_0::metamodel::domain::StereotypePtr[1]|$s.profile+'.'+$s.value, + t:meta::protocols::pure::v1_33_0::metamodel::domain::TaggedValue[1]|$t.tag.profile+'.'+$t.tag.value+'=\''+$t.value->replace('\'','\\\'')->replace('\n',' ')+'\'' + ]))->makeString($separator) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::toPure(state : AlloyToPureState[1], vs : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[*]):String[1] +{ + $vs->map(x| + $x->match([ + {af:AppliedFunction[1]| + + let f = $af->resolveFControlFunction($state.funcs); + + let handlers = [ + ^meta::pure::functions::collection::Pair, FunctionDefinition<{->String[1]}>>(first = extractEnumValue_Enumeration_1__String_1__T_1_, second = {| + let p1 = $af.parameters->at(0)->cast(@PackageableElementPtr); + let p2 = $af.parameters->at(1)->cast(@CString); + + let ev = ^EnumValue(_type = 'enumValue', fullPath=$p1.fullPath, value = $p2.value); + + $state->toPure($ev); + }), + ^meta::pure::functions::collection::Pair, FunctionDefinition<{->String[1]}>>(first = letFunction_String_1__T_m__T_m_, second = {| + let p1 = $af.parameters->at(0)->cast(@CString).value; + let p2 = $state->toPure($af.parameters->at(1)); + + 'let %s = %s'->format([$p1, $p2]); + }) + ]; + + let h = $handlers->filter(p|$p.first == $f); + + if($h->isNotEmpty(), + | $h->toOne().second->eval(), + | + + let infixFunctionMappings = $state.infixFunctions; + + if($f->in($infixFunctionMappings.first), + | + let values = $af.parameters; + let pValues = if($values->size() == 1, + | $values->match([ + col:Collection[1]|$col.values, + vs: meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[*]|$vs + ]), + | $values + ) + ->map(v|$state->toPure($v)); + let symbol = $infixFunctionMappings->filter(p|$p.first == $f)->toOne().second; + + assertEquals($f->functionType().parameters->size(), $values->size(), | 'Expected ' + $f->functionType().parameters->size()->toString() + ' parameters on ' + $f->elementToPath() + ' function call. got: ' + $values->size()->makeString()); + + + if($f->in([and_Boolean_1__Boolean_1__Boolean_1_, or_Boolean_1__Boolean_1__Boolean_1_]), + | $pValues->joinStrings('(', ') ' + $symbol + ' (', ')'), + | if($values->size() == 1 && $pValues->size() == 1, + |$pValues->joinStrings(if($f->in([plus_Number_MANY__Number_1_, plus_Float_MANY__Float_1_,plus_Integer_MANY__Integer_1_]), |'', |$symbol), ' ' + $symbol + ' ', ''), + |$pValues->joinStrings(' ' + $symbol + ' ') + ); + ); + , + | + let injectFirstParam = !$f->in([ + col_Function_1__String_1__BasicColumnSpecification_1_, + agg_String_1__FunctionDefinition_1__FunctionDefinition_1__AggregateValue_1_, + if_Boolean_1__Function_1__Function_1__T_m_, + not_Boolean_1__Boolean_1_, + asc_String_1__SortInformation_1_, + desc_String_1__SortInformation_1_ + ]); + let iStr = if($injectFirstParam == false || $af.parameters->isEmpty(), + | '', + | + let i = $state->toPure($af.parameters->at(0)); + $i + if($f == getAll_Class_1__T_MANY_, | '.', | if($i->length() > 20 || $i->contains('\n'), | '\n\t', |'') + '->'); + ); + let fName = if($f == getAll_Class_1__T_MANY_ && $injectFirstParam, + | 'all', + | if($f == not_Boolean_1__Boolean_1_ , + | '!', + | if(($f->cast(@PackageableElement).package->toOne()->in($state.coreImportPackages) || $state.removeFunctionPaths) , | '', | $f->cast(@PackageableElement).package->toOne()->elementToPath() + '::') + $f.functionName->toOne() + ) + ); + + let pValues = if($injectFirstParam, | $af.parameters->tail(), | $af.parameters)->map(p|$state->toPure($p)); + let pStr = if($pValues->map(s|$s->length())->sum()<= 700, | $pValues->joinStrings('(', ', ', ')'), |$pValues->joinStrings('(\n', ',\n ', '\n )')); + + '%s%s%s'->format([$iStr, $fName, $pStr]); + ); + ); + }, + ap : AppliedProperty[1]| + $state->toPure($ap.parameters->at(0)) + '.' + $ap.property + if($ap.parameters->tail()->isEmpty(),|'',| $ap.parameters->tail()->map(p|$state->toPure($p))->joinStrings('(', ',',')')), + ci : CInteger[1]|'%s'->format($ci.value), + ci : CDecimal[1]|'%s'->format($ci.value), + ci : CFloat[1]|'%s'->format($ci.value), + ci : CBoolean[1]|'%s'->format($ci.value), + cs : CString[1]| let slash = '\\'; + '\'%s\''->format($cs.value->replace($slash, $slash + $slash)->replace('\'', '\\\'')->replace('\n', '\\n'));, + cs : CStrictDate[1]| '%' + ('%s'->format($cs.value)), + cs : CDateTime[1]| '%' + ('%s'->format($cs.value)), + cs : CLatestDate[1]| '%latest', + ev : EnumValue[1]| + + let enumName = if($ev.fullPath->isInMeta(), + | $ev.fullPath->substring($ev.fullPath->lastIndexOf('::') + 2), + | $ev.fullPath + ); + + '%s.%s'->format([$enumName, $ev.value]); + , + col:Collection[1]| $col.values->map(v|$state->toPure($v))->joinStrings('[',',',']'), + l : Lambda[1]| + let pStr = $l.parameters->map(p|$p->match([ + v : Variable[1]| + if ($v.class->isEmpty(), + |$v.name, + |let cName = if($v.class->in([Float, Any, String, Integer, Boolean, Date, DateTime, StrictDate]->map(x|$x->makeString())), + | $v.class->toOne()->makeString(), + | if($v.class->toOne()->isInMeta(), + |$v.class->toOne()->substring($v.class->toOne()->lastIndexOf('::')+2), + |$v.class->toOne() + ); + )->toOne(); + let m = $v.multiplicity->toOne()->mapToString(); + '%s:%s[%s]'->format([$v.name, $cName, $m]); + ) + ]))->joinStrings(', '); + + let bStr = $state->toPure($l.body); + + '{%s|%s}'->format([$pStr, $bStr]);, + v : Variable[1]|'$' + $v.name, + hackedClass :meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::GenericTypeInstance[1]|'@' + $hackedClass.fullPath, + ci : ClassInstance[1] | + $ci.value->match( + [ + aggValue : TDSAggregateValue[1]| 'agg(\'%s\', %s, %s)'->format([$aggValue.name, $state->toPure($aggValue.mapFn), $state->toPure($aggValue.aggregateFn)]), + aggValue : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::AggregateValue[1]| 'agg(%s, %s)'->format([$state->toPure($aggValue.mapFn), $state->toPure($aggValue.aggregateFn)]), + sortInfo : TDSSortInformation[1]| '^SortInformation(column = \'%s\', direction = SortDirection.%s)'->format([$sortInfo.column, $sortInfo.direction]), + extendInfo: TDSColumnInformation[1] | '^BasicColumnSpecification<%s>(name = \'%s\', func = %s)'->format([$extendInfo.columnFn->cast(@Lambda).parameters->at(0).class->toOne(), $extendInfo.name, $state->toPure($extendInfo.columnFn)]), + path : Path[1]| '#/%s/%s%s#'->format([$path.startType, $path.path->map(p|$p->match([ppe:PropertyPathElement[1]|$ppe.property]))->joinStrings('.'), if($path.name->isEmpty() || ($path.name->toOne()->length() == 0), |'', |'!' + $path.name->toOne())]);, + or : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::TdsOlapRank[1]| + '^TdsOlapRank(func = %s)'->format($state->toPure($or.function)), + oa : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::TdsOlapAggregation[1]| + '^TdsOlapAggregation(colName = \'%s\', func = %s)'->format([$oa.columnName, $state->toPure($oa.function)]), + a :meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Whatever[1]|fail('Unsupported type in alloy protocol ' + $a.class);'';, + r : RuntimeInstance[1]|'', + e : ExecutionContextInstance[1]|'', + pv : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Pair[1]| + let tMatcher = {val:meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[1]| $val->match([ + x : EnumValue[1]| $x.fullPath, + x : CInteger[1]| Integer->toString(), + x : CDecimal[1]| Decimal->toString(), + x : CFloat[1]| Float->toString(), + x : CBoolean[1]| Boolean->toString(), + x : CStrictDate[1]| StrictDate->toString(), + x : CDateTime[1]| DateTime->toString(), + x : CString[1]| String->toString(), + x : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::TdsOlapRank[1]| meta::pure::tds::TdsOlapRank->elementToPath() + '', + x : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::TdsOlapAggregation[1]| meta::pure::tds::TdsOlapAggregation->elementToPath() + '' + ])}; + let firstType = $tMatcher->eval($pv.first); + let secondType = $tMatcher->eval($pv.second); + + '^Pair<%s,%s>(first = %s, second = %s)'->format([$firstType, $secondType, $state->toPure($pv.first),$state->toPure($pv.second)]); + ] + ), + ev: PackageableElementPtr[1] | let enumName = if($ev.fullPath->isInMeta(), + | $ev.fullPath->substring($ev.fullPath->lastIndexOf('::') + 2), + | $ev.fullPath + ) + + ]); + )->joinStrings('', ';\n', if($vs->size() <= 1, | '', | ';')); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::mapToString(m : meta::protocols::pure::v1_33_0::metamodel::domain::Multiplicity[1]):String[1] +{ + [ + pair(^meta::protocols::pure::v1_33_0::metamodel::domain::Multiplicity(lowerBound=0, upperBound=0), PureZero->printMultiplicity()), + pair(^meta::protocols::pure::v1_33_0::metamodel::domain::Multiplicity(lowerBound=1, upperBound=1), PureOne->printMultiplicity()), + pair(^meta::protocols::pure::v1_33_0::metamodel::domain::Multiplicity(lowerBound=0, upperBound=1), ZeroOne->printMultiplicity()), + pair(^meta::protocols::pure::v1_33_0::metamodel::domain::Multiplicity(lowerBound=1), OneMany->printMultiplicity()), + pair(^meta::protocols::pure::v1_33_0::metamodel::domain::Multiplicity(lowerBound=0), ZeroMany->printMultiplicity()) + ] + ->filter(p|$p.first == $m)->toOne().second; +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::getSignFunctions():meta::pure::functions::collection::Pair, String>[*] +{ + [ + pair(list(or_Boolean_1__Boolean_1__Boolean_1_), '||'), + pair(list(and_Boolean_1__Boolean_1__Boolean_1_), '&&'), + pair(list(equal_Any_MANY__Any_MANY__Boolean_1_), '=='), + pair( + list([ + greaterThan_Number_1__Number_1__Boolean_1_, + greaterThan_Number_1__Number_$0_1$__Boolean_1_, + greaterThan_Number_$0_1$__Number_1__Boolean_1_, + greaterThan_Number_$0_1$__Number_$0_1$__Boolean_1_, + greaterThan_Date_1__Date_1__Boolean_1_, + greaterThan_Date_$0_1$__Date_1__Boolean_1_, + greaterThan_Date_1__Date_$0_1$__Boolean_1_, + greaterThan_Date_$0_1$__Date_$0_1$__Boolean_1_, + greaterThan_Boolean_1__Boolean_1__Boolean_1_, + greaterThan_Boolean_$0_1$__Boolean_1__Boolean_1_, + greaterThan_Boolean_1__Boolean_$0_1$__Boolean_1_, + greaterThan_Boolean_$0_1$__Boolean_$0_1$__Boolean_1_, + greaterThan_String_1__String_1__Boolean_1_, + greaterThan_String_$0_1$__String_1__Boolean_1_, + greaterThan_String_1__String_$0_1$__Boolean_1_, + greaterThan_String_$0_1$__String_$0_1$__Boolean_1_ + ]), + '>' + ), + pair( + list([ + greaterThanEqual_Number_1__Number_1__Boolean_1_, + greaterThanEqual_Number_1__Number_$0_1$__Boolean_1_, + greaterThanEqual_Number_$0_1$__Number_1__Boolean_1_, + greaterThanEqual_Number_$0_1$__Number_$0_1$__Boolean_1_, + greaterThanEqual_Date_1__Date_1__Boolean_1_, + greaterThanEqual_Date_$0_1$__Date_1__Boolean_1_, + greaterThanEqual_Date_1__Date_$0_1$__Boolean_1_, + greaterThanEqual_Date_$0_1$__Date_$0_1$__Boolean_1_, + greaterThanEqual_Boolean_1__Boolean_1__Boolean_1_, + greaterThanEqual_Boolean_$0_1$__Boolean_1__Boolean_1_, + greaterThanEqual_Boolean_1__Boolean_$0_1$__Boolean_1_, + greaterThanEqual_Boolean_$0_1$__Boolean_$0_1$__Boolean_1_, + greaterThanEqual_String_1__String_1__Boolean_1_, + greaterThanEqual_String_$0_1$__String_1__Boolean_1_, + greaterThanEqual_String_1__String_$0_1$__Boolean_1_, + greaterThanEqual_String_$0_1$__String_$0_1$__Boolean_1_ + ]), + '>=' + ), + pair( + list([ + lessThan_Number_1__Number_1__Boolean_1_, + lessThan_Number_1__Number_$0_1$__Boolean_1_, + lessThan_Number_$0_1$__Number_1__Boolean_1_, + lessThan_Number_$0_1$__Number_$0_1$__Boolean_1_, + lessThan_Date_1__Date_1__Boolean_1_, + lessThan_Date_$0_1$__Date_1__Boolean_1_, + lessThan_Date_1__Date_$0_1$__Boolean_1_, + lessThan_Date_$0_1$__Date_$0_1$__Boolean_1_, + lessThan_Boolean_1__Boolean_1__Boolean_1_, + lessThan_Boolean_$0_1$__Boolean_1__Boolean_1_, + lessThan_Boolean_1__Boolean_$0_1$__Boolean_1_, + lessThan_Boolean_$0_1$__Boolean_$0_1$__Boolean_1_, + lessThan_String_1__String_1__Boolean_1_, + lessThan_String_$0_1$__String_1__Boolean_1_, + lessThan_String_1__String_$0_1$__Boolean_1_, + lessThan_String_$0_1$__String_$0_1$__Boolean_1_ + ]), + '<' + ), + pair( + list([ + lessThanEqual_Number_1__Number_1__Boolean_1_, + lessThanEqual_Number_1__Number_$0_1$__Boolean_1_, + lessThanEqual_Number_$0_1$__Number_1__Boolean_1_, + lessThanEqual_Number_$0_1$__Number_$0_1$__Boolean_1_, + lessThanEqual_Date_1__Date_1__Boolean_1_, + lessThanEqual_Date_$0_1$__Date_1__Boolean_1_, + lessThanEqual_Date_1__Date_$0_1$__Boolean_1_, + lessThanEqual_Date_$0_1$__Date_$0_1$__Boolean_1_, + lessThanEqual_Boolean_1__Boolean_1__Boolean_1_, + lessThanEqual_Boolean_$0_1$__Boolean_1__Boolean_1_, + lessThanEqual_Boolean_1__Boolean_$0_1$__Boolean_1_, + lessThanEqual_Boolean_$0_1$__Boolean_$0_1$__Boolean_1_, + lessThanEqual_String_1__String_1__Boolean_1_, + lessThanEqual_String_$0_1$__String_1__Boolean_1_, + lessThanEqual_String_1__String_$0_1$__Boolean_1_, + lessThanEqual_String_$0_1$__String_$0_1$__Boolean_1_ + ]), + '<=' + ), + pair( + list([ + plus_Number_MANY__Number_1_, + plus_Float_MANY__Float_1_, + plus_Integer_MANY__Integer_1_, + plus_String_MANY__String_1_ + ]), + '+' + ), + pair( + list([ + minus_Number_MANY__Number_1_, + minus_Float_MANY__Float_1_, + minus_Integer_MANY__Integer_1_ + ]), + '-' + ), + pair( + list([ + times_Number_MANY__Number_1_, + times_Float_MANY__Float_1_, + times_Integer_MANY__Integer_1_ + ]), + '*' + ), + pair(list(divide_Number_1__Number_1__Float_1_), '/') + ] + ->map(p|$p.first.values->map(v|pair($v, $p.second))); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::isInMeta(item:String[1]):Boolean[1] +{ + $item->startsWith('meta::pure::') && !$item->startsWith('meta::pure::tests::'); +} + + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::isAutoMapFunction(af:AppliedFunction[1]):Boolean[1] +{ + $af.parameters->at(1)->instanceOf(meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda) + && $af.parameters->at(1)->cast(@meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda).parameters->toOne()->instanceOf(meta::protocols::pure::v1_33_0::metamodel::valueSpecification::Variable) + && $af.parameters->at(1)->cast(@meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda).parameters->cast(@meta::protocols::pure::v1_33_0::metamodel::valueSpecification::Variable)->toOne().name == 'v_automap' +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGrammar::getAutoMapProperty(af:AppliedFunction[1]):meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ValueSpecification[1] +{ + $af.parameters->at(1)->cast(@meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda).body->toOne(); +} diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/extension/extension.pure b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/extension/extension.pure new file mode 100644 index 00000000000..e2b8bec6e9c --- /dev/null +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/extension/extension.pure @@ -0,0 +1,18 @@ +// 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. + +Class meta::protocols::pure::v1_33_0::extension::runtime::connection::authentication::AuthenticationModuleSerializerExtension extends meta::protocols::pure::v1_33_0::extension::ModuleSerializerExtension +{ + transfers_authentication_transformAuthenticationSpecification : Function<{Nil[1] -> meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::AuthenticationSpecification[1]}>[*]; +} \ No newline at end of file diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_apikey.pure b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_apikey.pure new file mode 100644 index 00000000000..508f947e328 --- /dev/null +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_apikey.pure @@ -0,0 +1,22 @@ +// 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. + +import meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::*; + +Class meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::ApiKeyAuthenticationSpecification extends meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::AuthenticationSpecification +{ + location: String[1]; + keyName: String[1]; + value: CredentialVaultSecret[1]; +} \ No newline at end of file diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_base.pure b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_base.pure new file mode 100644 index 00000000000..a7ee6242468 --- /dev/null +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_base.pure @@ -0,0 +1,21 @@ +// 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. + +import meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::*; + +Class <> meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::AuthenticationSpecification +{ + _type : String[1]; +} + diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_demo.pure b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_demo.pure new file mode 100644 index 00000000000..d0f33dc6fec --- /dev/null +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_demo.pure @@ -0,0 +1,8 @@ +import meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::*; + +Class meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::demo::AuthenticationDemo +{ + _type : String[1]; + authentication : AuthenticationSpecification[1]; +} + diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_encryptedkeypair.pure b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_encryptedkeypair.pure new file mode 100644 index 00000000000..446a1e28b28 --- /dev/null +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_encryptedkeypair.pure @@ -0,0 +1,22 @@ +// 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. + +import meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::*; + +Class meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::EncryptedKeyPairAuthenticationSpecification extends meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::AuthenticationSpecification +{ + userName:String[1]; + privateKey:CredentialVaultSecret[1]; + passphrase:CredentialVaultSecret[1]; +} \ No newline at end of file diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_gcp_workforce_federation.pure b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_gcp_workforce_federation.pure new file mode 100644 index 00000000000..f8c78da6750 --- /dev/null +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_gcp_workforce_federation.pure @@ -0,0 +1,37 @@ +// 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. + +import meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::*; + +Class {doc.doc = 'Authentication using GCP workforce federation with AWS IDP'} meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::GCPWIFWithAWSIdPAuthenticationSpecification extends meta::pure::runtime::connection::authentication::AuthenticationSpecification +{ + serviceAccountEmail:String[1]; + awsIdentityProvider:AWSIdentityProviderConfiguration[1]; + gcoWorkload:GCPWorkloadConfiguration[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::AWSIdentityProviderConfiguration +{ + region:String[1]; + accountId:String[1]; + role:String[1]; + assumeRoleCredentials:AWSCredentials[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::GCPWorkloadConfiguration +{ + projectNumber:String[1]; + poolId:String[1]; + providerId:String[1]; +} \ No newline at end of file diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_kerberos.pure b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_kerberos.pure new file mode 100644 index 00000000000..e7410946fa7 --- /dev/null +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_kerberos.pure @@ -0,0 +1,19 @@ +// Copyright 2023 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::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::*; + +Class meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::KerberosAuthenticationSpecification extends meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::AuthenticationSpecification +{ +} \ No newline at end of file diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_username.pure b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_username.pure new file mode 100644 index 00000000000..09d6cf83e20 --- /dev/null +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_username.pure @@ -0,0 +1,22 @@ +// 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. + +import meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::*; + +Class meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::UserPasswordAuthenticationSpecification extends meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::AuthenticationSpecification +{ + username: String[1]; + password: CredentialVaultSecret[1]; +} + diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_vault.pure b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_vault.pure new file mode 100644 index 00000000000..206f26b6f03 --- /dev/null +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_vault.pure @@ -0,0 +1,35 @@ +// 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. + +import meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::*; + +Class meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::CredentialVaultSecret +{ + _type : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::PropertiesFileSecret extends meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::CredentialVaultSecret +{ + propertyName: String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::EnvironmentSecret extends meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::CredentialVaultSecret +{ + envVariableName: String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::SystemPropertiesSecret extends meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::CredentialVaultSecret +{ + systemPropertyName: String[1]; +} diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_vault_aws.pure b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_vault_aws.pure new file mode 100644 index 00000000000..a03b9eea2b1 --- /dev/null +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/models/metamodel_vault_aws.pure @@ -0,0 +1,46 @@ +// 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. + +import meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::*; + +Class meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::AWSSecretsManagerSecret extends meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::CredentialVaultSecret +{ + secretId: String[1]; + versionId: String[0..1]; + versionStage: String[0..1]; + awsCredentials: AWSCredentials[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::AWSCredentials +{ + _type : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::StaticAWSCredentials extends meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::AWSCredentials +{ + accessKeyId:CredentialVaultSecret[1]; + secretAccessKey:CredentialVaultSecret[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::AWSDefaultCredentials extends meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::AWSCredentials +{ + +} + +Class meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::AWSSTSAssumeRoleCredentials extends meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::AWSCredentials +{ + awsCredentials: meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::AWSCredentials[1]; + roleArn: String[1]; + roleSessionName: String[0..1]; +} \ No newline at end of file diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/transfers/authentication.pure b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/transfers/authentication.pure new file mode 100644 index 00000000000..a1859667891 --- /dev/null +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication/pure/v1_33_0/transfers/authentication.pure @@ -0,0 +1,110 @@ +// 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. + +###Pure +import meta::pure::extension::*; +import meta::pure::functions::collection::*; +import meta::pure::runtime::connection::authentication::*; +import meta::protocols::pure::v1_33_0::extension::runtime::connection::authentication::*; + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::authentication::transformAuthenticationSpecification(a:meta::pure::runtime::connection::authentication::AuthenticationSpecification[1], extensions:Extension[*]):meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::AuthenticationSpecification[1] +{ + $a->match($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).moduleSerializerExtension('AuthenticationSpecification')->cast(@meta::protocols::pure::v1_33_0::extension::runtime::connection::authentication::AuthenticationModuleSerializerExtension).transfers_authentication_transformAuthenticationSpecification->concatenate([ + u:meta::pure::runtime::connection::authentication::UserPasswordAuthenticationSpecification [1] | + ^meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::UserPasswordAuthenticationSpecification( + _type = 'userPassword', + username = $u.username, + password = $u.password->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::authentication::transformSecretSpecification() + ), + e:meta::pure::runtime::connection::authentication::EncryptedKeyPairAuthenticationSpecification [1] | + ^meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::EncryptedKeyPairAuthenticationSpecification( + _type = 'encryptedPrivateKey', + userName = $e.userName, + privateKey = $e.privateKey->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::authentication::transformSecretSpecification(), + passphrase = $e.passphrase->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::authentication::transformSecretSpecification() + ), + a:meta::pure::runtime::connection::authentication::ApiKeyAuthenticationSpecification [1] | + ^meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::ApiKeyAuthenticationSpecification( + _type = 'apiKey', + location = $a.location->toString(), + keyName = $a.keyName, + value = $a.value->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::authentication::transformSecretSpecification() + ), + k:meta::pure::runtime::connection::authentication::KerberosAuthenticationSpecification [1] | + ^meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::KerberosAuthenticationSpecification( + _type = 'kerberos' + ), + other: meta::pure::runtime::connection::authentication::AuthenticationSpecification[1] | + fail('Unsupported AuthenticationSpecification. TODO - epsstan'); + ^meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::AuthenticationSpecification( + _type = 'unknown' + ); + ])->toOneMany()) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::authentication::transformSecretSpecification(s:meta::pure::runtime::connection::authentication::CredentialVaultSecret[1]):meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::CredentialVaultSecret[1] +{ + $s->match([ + p:meta::pure::runtime::connection::authentication::PropertiesFileSecret[1] | + ^meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::PropertiesFileSecret( + _type = 'properties', + propertyName = $p.propertyName + ), + e:meta::pure::runtime::connection::authentication::EnvironmentSecret[1] | + ^meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::EnvironmentSecret( + _type = 'environment', + envVariableName = $e.envVariableName + ), + s:meta::pure::runtime::connection::authentication::SystemPropertiesSecret[1] | + ^meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::SystemPropertiesSecret( + _type = 'systemproperties', + systemPropertyName = $s.systemPropertyName + ), + a:meta::pure::runtime::connection::authentication::AWSSecretsManagerSecret[1] | + ^meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::AWSSecretsManagerSecret( + _type = 'awssecretsmanager', + secretId = $a.secretId, + versionId = $a.versionId, + versionStage = $a.versionStage, + awsCredentials = $a.awsCredentials->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::authentication::transformAWSCredentials() + ), + other:meta::pure::runtime::connection::authentication::CredentialVaultSecret[1] | + fail('Unsupported CredentialVaultSecret'); + ^meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::PropertiesFileSecret( + _type = 'unknown', + propertyName = 'unknown' + ); + ]) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::authentication::transformAWSCredentials(ac:meta::pure::runtime::connection::authentication::AWSCredentials[1]):meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::AWSCredentials[1] +{ + $ac->match([ + s:meta::pure::runtime::connection::authentication::StaticAWSCredentials[1] | + ^meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::StaticAWSCredentials( + _type = 'awsStatic', + accessKeyId = $s.accessKeyId->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::authentication::transformSecretSpecification(), + secretAccessKey = $s.secretAccessKey->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::authentication::transformSecretSpecification() + ), + d:meta::pure::runtime::connection::authentication::AWSDefaultCredentials[1] | + ^meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::AWSDefaultCredentials( + _type = 'awsDefault' + ), + other:meta::pure::runtime::connection::authentication::AWSCredentials[1] | + fail('Unsupported AWSCredentials'); + ^meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::AWSDefaultCredentials( + _type = 'unknown' + ); + ]) +} \ No newline at end of file diff --git a/legend-engine-xts-avro/legend-engine-xt-avro-pure/src/main/resources/core_external_format_avro/protocol/protocol_v1_33_0.pure b/legend-engine-xts-avro/legend-engine-xt-avro-pure/src/main/resources/core_external_format_avro/protocol/protocol_v1_33_0.pure new file mode 100644 index 00000000000..abafb588b5a --- /dev/null +++ b/legend-engine-xts-avro/legend-engine-xt-avro-pure/src/main/resources/core_external_format_avro/protocol/protocol_v1_33_0.pure @@ -0,0 +1,63 @@ +###Pure + +import meta::pure::generation::metamodel::*; +import meta::external::format::avro::generation::*; +import meta::json::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::*; +import meta::alloy::metadataServer::*; +import meta::pure::functions::io::http::*; + +function <> meta::protocols::pure::v1_33_0::invocation::generation::avro::legendGenerateAvro(input:AvroConfig[1], host:String[1], port:Integer[1]):AvroOutput[*] +{ + meta::protocols::pure::v1_33_0::invocation::generation::avro::legendGenerateAvro($input, $host, $port, 'v1'); +} + +function meta::protocols::pure::v1_33_0::invocation::generation::avro::legendGenerateAvro(avroConfig:AvroConfig[1], host:String[1], port:Integer[1], version:String[1]):AvroOutput[*] +{ + let resp = executeHTTPRaw(^URL(host = $host , port=$port, path = '/api/pure/'+$version+'/schemaGeneration/avro'), + HTTPMethod.POST, + 'application/json', + '{ "clientVersion":"v1_33_0",'+ + ' "config":'+$avroConfig->meta::protocols::pure::v1_33_0::invocation::generation::avro::transformAvroGenerationConfig()->alloyToJSON()+','+ + ' "model":'+if ($avroConfig.package->isEmpty(), + |$avroConfig.class->toOne()->pathToElement()->toOne()->cast(@Type)->buildPureModelFromType(meta::pure::extension::defaultExtensions())->alloyToJSON(), + |$avroConfig.package->toOne()->pathToElement()->toOne()->cast(@Package)->buildPureModelFromPackage(meta::pure::extension::defaultExtensions())->alloyToJSON())+ + '}' + ); + assertEq(200, $resp.statusCode, | $resp.entity); + $resp.entity->parseJSON()->fromJSON(AvroOutput, ^ExtendedJSONDeserializationConfig(nullReplacementInArray = ^TDSNull(), typeKeyName='__TYPE', failOnUnknownProperties=true))->cast(@AvroOutput); +} + +###Pure +Class meta::protocols::pure::v1_33_0::metamodel::invocation::generation::avro::AvroConfig extends meta::protocols::pure::v1_33_0::metamodel::invocation::generation::GenerationConfiguration +{ + + includeNamespace: Boolean[0..1]; + includeSuperTypes: Boolean[0..1]; + includeAssociations: Boolean[0..1]; + includeGeneratedMilestoning: Boolean[0..1]; + timestampLogicalType: String[0..1]; + propertyProfile: Profile[*]; + namespaceOverride: Map[0..1]; + generateLogicalTypes:Boolean[0..1]; +} + +###Pure + +import meta::external::format::avro::generation::*; + +function meta::protocols::pure::v1_33_0::invocation::generation::avro::transformAvroGenerationConfig(input:AvroConfig[1]):meta::protocols::pure::v1_33_0::metamodel::invocation::generation::avro::AvroConfig[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::invocation::generation::avro::AvroConfig( + package = $input.package, + class = $input.class, + includeNamespace=$input.includeNamespace , + includeSuperTypes=$input.includeSuperTypes, + includeAssociations=$input.includeAssociations, + includeGeneratedMilestoning=$input.includeGeneratedMilestoning, + timestampLogicalType=$input.timestampLogicalType, + propertyProfile=$input.propertyProfile, + namespaceOverride=$input.namespaceOverride, + generateLogicalTypes = $input.generateLogicalTypes + ) +} diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/protocol/v1_33_0/serialization.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/protocol/v1_33_0/serialization.pure new file mode 100644 index 00000000000..c38608479e6 --- /dev/null +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/protocol/v1_33_0/serialization.pure @@ -0,0 +1,219 @@ +// Copyright 2023 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::external::store::elasticsearch::v7::metamodel::tds::*; +import meta::external::store::elasticsearch::v7::metamodel::executionPlan::tds::*; +import meta::json::*; +import meta::pure::functions::io::http::*; +import meta::external::store::elasticsearch::v7::metamodel::runtime::*; +import meta::external::store::elasticsearch::v7::metamodel::executionPlan::*; +import meta::pure::mapping::*; +import meta::protocols::pure::v1_33_0::extension::*; +import meta::pure::extension::*; + +function meta::external::store::elasticsearch::v7::protocol::v1_33_0::elasticsearchV7StoreExtension(type: String[1]): SerializerExtension[1] +{ + ^SerializerExtension_v1_33_0( + + transfers_valueSpecification_transformAny = {inScope:String[*], open:Map>[1], m:Multiplicity[1], fe:FunctionExpression[0..1],useAppliedFunction:Boolean[1], extensions:meta::pure::extension::Extension[*] | + [ + s:meta::external::store::elasticsearch::v7::metamodel::store::Elasticsearch7Store[1] | + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::PackageableElementPtr + ( + _type = 'packageableElementPtr', + fullPath = $s->elementToPath() + ) + ] + }, + + transfers_store_transformStore2 = {extensions:meta::pure::extension::Extension[*] | + [ + s:meta::external::store::elasticsearch::v7::metamodel::store::Elasticsearch7Store[1] | + ^meta::external::store::elasticsearch::v7::protocol::v1_33_0::store::Elasticsearch7Store( + name = $s.name->toOne(), + package = $s.package->map(p | $p->elementToPath()), + indices = $s.indices->map(i | + ^meta::external::store::elasticsearch::v7::protocol::v1_33_0::store::Elasticsearch7StoreIndex( + indexName = $i.indexName, + properties = $i.properties->map(p | + ^meta::external::store::elasticsearch::v7::protocol::v1_33_0::store::Elasticsearch7StoreIndexProperty( + propertyName = $p.propertyName, + property = $p.property + ) + ) + ) + ) + ) + ] + }, + + invocation_execution_transformContext = + [ + e: meta::external::store::elasticsearch::v7::metamodel::executionPlan::context::Elasticsearch7ExecutionContext[1] | ^meta::external::store::elasticsearch::v7::protocol::v1_33_0::executionPlan::context::Elasticsearch7ExecutionContext() + ], + + transfers_store_transformConnection2 = extensions: Extension[*] | [ + conn: Elasticsearch7StoreConnection[1] | $conn->meta::external::store::elasticsearch::v7::protocol::v1_33_0::runtime::transformConnection($extensions) + ], + + transfers_executionPlan_transformNode = {mapping:Mapping[1], extensions:Extension[*] | + [ + esNode: Elasticsearch7RequestExecutionNode[1] | ^meta::external::store::elasticsearch::v7::protocol::v1_33_0::executionPlan::Elasticsearch7RequestExecutionNode( + _type = 'elasticsearch7RequestExecutionNode', + resultType = $esNode.resultType->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), + connection = $esNode.connection->meta::external::store::elasticsearch::v7::protocol::v1_33_0::runtime::transformConnection($extensions), + request = $esNode.request, + metadata = $esNode.metadata->match([ + tds: TDSMetadata[1] | ^meta::external::store::elasticsearch::v7::protocol::v1_33_0::executionPlan::tds::TDSMetadata( + _type = 'tDSMetadata', + columnResultPaths = $tds.columnResultPaths + ->map(c | ^meta::external::store::elasticsearch::v7::protocol::v1_33_0::executionPlan::tds::TDSColumnResultPath( + index = $c.index, + resultPath = $c.resultPath->meta::external::store::elasticsearch::v7::protocol::v1_33_0::executionPlan::tds::transformResultPath($extensions) + ) + ) + ) + ]) + ) + ] + } + ); +} + +function meta::external::store::elasticsearch::v7::protocol::v1_33_0::executionPlan::tds::transformResultPath(path: ResultPath[1], extensions:Extension[*]): meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::ResultPath[1] +{ + $path->match([ + src: SourceFieldResultPath[1] | ^meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::SourceFieldResultPath( + _type = 'sourceFieldResultPath', + fieldPath = $src.fieldPath + ), + field: FieldResultPath[1] | ^meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::FieldResultPath( + _type = 'fieldResultPath', + fieldPath = $field.fieldPath, + readFrom = $field.readFrom->map(x | $x->meta::external::store::elasticsearch::v7::protocol::v1_33_0::executionPlan::tds::transformResultPath($extensions)) + ), + docvalue: DocValueResultPath[1] | ^meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::DocValueResultPath( + _type = 'docValueResultPath', + fieldPath = $docvalue.fieldPath + ), + agg: AggregateResultPath[1] | ^meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::AggregateResultPath( + _type = 'aggregateResultPath', + fieldPath = $agg.fieldPath + ), + id: _IDResultPath[1] | ^meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::_IDResultPath( + _type = '_IDResultPath', + fieldPath = $id.fieldPath + ) + ]); +} + +function meta::external::store::elasticsearch::v7::protocol::v1_33_0::runtime::transformConnection(conn: Elasticsearch7StoreConnection[1],extensions:Extension[*]): meta::external::store::elasticsearch::v7::protocol::v1_33_0::runtime::Elasticsearch7StoreConnection[1] +{ + ^meta::external::store::elasticsearch::v7::protocol::v1_33_0::runtime::Elasticsearch7StoreConnection( + _type = 'elasticsearch7StoreConnection', + element = $conn.element->cast(@PackageableElement)->elementToPath(), + sourceSpec = ^meta::external::store::elasticsearch::v7::protocol::v1_33_0::runtime::Elasticsearch7StoreURLSourceSpecification( + url = '%s://%s:%d%s'->format([$conn.sourceSpec.url.scheme->defaultIfEmpty(URLScheme.http)->toOne(), $conn.sourceSpec.url.host, $conn.sourceSpec.url.port, $conn.sourceSpec.url.path]) + ), + authSpec = $conn.authSpec->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::authentication::transformAuthenticationSpecification($extensions) + ) +} + +Class meta::external::store::elasticsearch::v7::protocol::v1_33_0::executionPlan::Elasticsearch7RequestExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::ExecutionNode +{ + connection : meta::external::store::elasticsearch::v7::protocol::v1_33_0::runtime::Elasticsearch7StoreConnection[1]; + request : meta::external::store::elasticsearch::v7::metamodel::specification::types::RequestBase[1]; + metadata : meta::external::store::elasticsearch::v7::protocol::v1_33_0::executionPlan::tds::RequestResultMetadata[1]; +} + +Class <> meta::external::store::elasticsearch::v7::protocol::v1_33_0::executionPlan::tds::RequestResultMetadata +{ + _type: String[1]; +} + +Class meta::external::store::elasticsearch::v7::protocol::v1_33_0::executionPlan::tds::TDSMetadata extends meta::external::store::elasticsearch::v7::protocol::v1_33_0::executionPlan::tds::RequestResultMetadata +{ + columnResultPaths: meta::external::store::elasticsearch::v7::protocol::v1_33_0::executionPlan::tds::TDSColumnResultPath[1..*]; +} + +Class meta::external::store::elasticsearch::v7::protocol::v1_33_0::executionPlan::tds::TDSColumnResultPath +{ + index: Integer[1]; + resultPath: meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::ResultPath[1]; +} + +Class <> meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::ResultPath +{ + _type: String[1]; + fieldPath: String[1..*]; +} + +Class meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::SourceFieldResultPath extends meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::ResultPath +{ + +} + +Class meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::_IDResultPath extends meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::ResultPath +{ + +} + +Class meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::FieldResultPath extends meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::ResultPath +{ + readFrom: meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::ResultPath[1]; +} + +Class meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::DocValueResultPath extends meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::ResultPath +{ + +} + +Class meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::AggregateResultPath extends meta::external::store::elasticsearch::v7::protocol::v1_33_0::tds::ResultPath +{ + +} + +Class meta::external::store::elasticsearch::v7::protocol::v1_33_0::runtime::Elasticsearch7StoreConnection extends meta::protocols::pure::v1_33_0::metamodel::runtime::Connection +{ + sourceSpec: meta::external::store::elasticsearch::v7::protocol::v1_33_0::runtime::Elasticsearch7StoreURLSourceSpecification[1]; + authSpec: meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::AuthenticationSpecification[1]; +} + +Class meta::external::store::elasticsearch::v7::protocol::v1_33_0::runtime::Elasticsearch7StoreURLSourceSpecification +{ + url: String[1]; +} + +Class meta::external::store::elasticsearch::v7::protocol::v1_33_0::executionPlan::context::Elasticsearch7ExecutionContext extends meta::protocols::pure::v1_33_0::metamodel::ExecutionContext +{ + _type: String[1] = 'elasticsearch7ExecutionContext'; +} + +Class meta::external::store::elasticsearch::v7::protocol::v1_33_0::store::Elasticsearch7Store extends meta::protocols::pure::v1_33_0::metamodel::store::Store +{ + _type: String[1] = 'elasticsearch7Store'; + indices: meta::external::store::elasticsearch::v7::protocol::v1_33_0::store::Elasticsearch7StoreIndex[*]; +} + +Class meta::external::store::elasticsearch::v7::protocol::v1_33_0::store::Elasticsearch7StoreIndex +{ + indexName: String[1]; + properties: meta::external::store::elasticsearch::v7::protocol::v1_33_0::store::Elasticsearch7StoreIndexProperty[*]; +} + +Class meta::external::store::elasticsearch::v7::protocol::v1_33_0::store::Elasticsearch7StoreIndexProperty +{ + propertyName: String[1]; + property: meta::external::store::elasticsearch::v7::metamodel::specification::types::mapping::Property[1]; +} diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/src/main/resources/core_generation/generation/protocol/protocol_v1_33_0.pure b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/src/main/resources/core_generation/generation/protocol/protocol_v1_33_0.pure new file mode 100644 index 00000000000..c1e53ef4357 --- /dev/null +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/src/main/resources/core_generation/generation/protocol/protocol_v1_33_0.pure @@ -0,0 +1,39 @@ +// Copyright 2023 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. + +###Pure +import meta::protocols::pure::v1_33_0::metamodel::invocation::generation::*; +Class meta::protocols::pure::v1_33_0::metamodel::invocation::generation::GenerationConfiguration +{ + class:String[0..1]; + package: String[0..1]; + scopeElements : String[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::invocation::generation::GenerationOutput +{ + content:String[1]; + fileName:String[1]; +} + + +###Pure +Class meta::protocols::pure::v1_33_0::metamodel::invocation::generation::json::JSONSchemaConfig extends meta::protocols::pure::v1_33_0::metamodel::invocation::generation::GenerationConfiguration +{ + includeAllRelatedTypes:Boolean[0..1]; + useConstraints:Boolean[0..1]; +} + + + diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_33_0/executionPlan/executionPlan_mongodb.pure b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_33_0/executionPlan/executionPlan_mongodb.pure new file mode 100644 index 00000000000..4d59bf13ec4 --- /dev/null +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_33_0/executionPlan/executionPlan_mongodb.pure @@ -0,0 +1,36 @@ +// Copyright 2023 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::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::*; +import meta::pure::executionPlan::*; +import meta::json::*; +import meta::protocols::pure::v1_33_0::metamodel::store::mongodb::connection::*; +import meta::protocols::pure::v1_33_0::metamodel::executionPlan::store::mongodb::*; + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::store::mongodb::MongoDBExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::ExecutionNode +{ + databaseCommand : String[1]; + connection : MongoDBConnection[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::store::mongodb::MongoDBDocumentInternalizeExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::ExecutionNode +{ + contentType : String[1]; + binding : String[1]; + enableConstraints : Boolean[1]; + checked : Boolean[1]; + tree : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::RootGraphFetchTree[0..1]; + //config : meta::external::format::shared::MongoDBDocumentInternalizeInternalizeConfig[0..1]; +} \ No newline at end of file diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_33_0/extensions/extension.pure b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_33_0/extensions/extension.pure new file mode 100644 index 00000000000..2044cb9d06f --- /dev/null +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_33_0/extensions/extension.pure @@ -0,0 +1,23 @@ +// Copyright 2023 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::v1_33_0::extension::store::mongodb::MongoDBModuleSerializerExtension extends meta::protocols::pure::v1_33_0::extension::ModuleSerializerExtension +{ + transfers_connection_transformDatabaseConnection : meta::pure::metamodel::function::Function<{String[1], String[1], String[1] -> meta::pure::metamodel::function::Function<{Nil[1]->meta::protocols::pure::v1_33_0::metamodel::store::mongodb::connection::MongoDBConnection[1]}>[*]}>[0..1]; +} + +Profile meta::protocols::pure::v1_33_0::extension::store::mongodb::MongoDBModule +{ + stereotypes: [SerializerExtension]; +} \ No newline at end of file diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_33_0/extensions/extension_mongodb.pure b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_33_0/extensions/extension_mongodb.pure new file mode 100644 index 00000000000..c68e2cbcce6 --- /dev/null +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_33_0/extensions/extension_mongodb.pure @@ -0,0 +1,114 @@ +// Copyright 2023 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::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::*; +import meta::external::store::mongodb::metamodel::aggregation::*; +import meta::json::*; +import meta::external::store::mongodb::metamodel::*; +import meta::external::store::mongodb::mapping::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::store::mongodb::*; +import meta::external::store::mongodb::runtime::*; +import meta::pure::mapping::*; + +import meta::external::store::mongodb::metamodel::*; +import meta::external::store::mongodb::metamodel::runtime::*; +import meta::external::store::mongodb::graphFetch::executionPlan::*; +import meta::protocols::pure::v1_33_0::extension::store::mongodb::*; +import meta::protocols::pure::v1_33_0::metamodel::executionPlan::*; +import meta::external::store::mongodb::runtime::connections::*; + +function meta::protocols::pure::v1_33_0::extension::store::mongodb::getMongoDBStoreExtension(type:String[1]):meta::pure::extension::SerializerExtension[1] +{ + let res = [ + pair('mongoDB', | meta::protocols::pure::v1_33_0::extension::store::mongodb::getMongoDBStoreExtension()) + ]->filter(f|$f.first == $type); + assert($res->isNotEmpty(), |'Can\'t find the type '+$type); + $res->at(0).second->eval(); +} + +function meta::protocols::pure::v1_33_0::extension::store::mongodb::getMongoDBStoreExtension():meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0[1] +{ + ^meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0 + ( + + moduleSerializerExtensions = meta::protocols::pure::v1_33_0::extension::store::mongodb::mongoDBModuleSerializerExtension(), + transfers_executionPlan_transformNode = {mapping:Mapping[1], extensions:meta::pure::extension::Extension[*] | + [ + men:meta::external::store::mongodb::metamodel::pure::MongoDBExecutionNode[1] | + + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::store::mongodb::MongoDBExecutionNode( + _type = 'MongoDBExecutionNode', + resultType = $men.resultType->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), + databaseCommand = $men.databaseCommand->getDatabaseCommandJSON(), + connection = $men.connection->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::store::mongodb::transformDatabaseConnection($extensions) + ), + mdIntern: meta::external::store::mongodb::metamodel::pure::MongoDBDocumentInternalizeExecutionNode[1] | + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::store::mongodb::MongoDBDocumentInternalizeExecutionNode( + _type = 'MongoDBDocumentInternalizeExecutionNode', + checked = $mdIntern.checked, + enableConstraints = $mdIntern.enableConstraints, + binding = $mdIntern.binding->elementToPath(), + contentType = $mdIntern.binding.contentType, + tree = $mdIntern.tree->map(t| $t->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformGraphFetchTree([], ^Map>(), $extensions))->cast(@meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::RootGraphFetchTree), + resultType = $mdIntern.resultType->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), + resultSizeRange = $mdIntern.resultSizeRange->map(s| $s->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()) + ), + exfin: meta::external::format::shared::executionPlan::ExternalFormatInternalizeExecutionNode[1] | + ^meta::protocols::pure::v1_33_0::metamodel::external::shared::format::executionPlan::ExternalFormatInternalizeExecutionNode( + _type = 'externalFormatInternalize', + resultType = $exfin.resultType->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), + resultSizeRange = $exfin.resultSizeRange->map(s| $s->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()), + tree = $exfin.tree->map(t| $t->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformGraphFetchTree([], ^Map>(), $extensions))->cast(@meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::RootGraphFetchTree), + binding = $exfin.binding->elementToPath(), + enableConstraints = $exfin.enableConstraints, + checked = $exfin.checked, + contentType = $exfin.binding.contentType + ) + ]; + } + ) +} + +function meta::protocols::pure::v1_33_0::extension::store::mongodb::getDatabaseCommandJSON(databaseCommand: meta::external::store::mongodb::metamodel::aggregation::DatabaseCommand[1]): String[1] +{ + // MongoDBOperationElement + let config = meta::json::config(true, true, true, true, '_type', false); + let customSerializers = [ + { + m: MongoDBOperationElement[1], s: meta::json::JSONState[1] | + let elem = meta::json::anyToJSON($m, $s, 1000, $config)->cast(@meta::json::JSONObject); + ^$elem(keyValuePairs = $elem.keyValuePairs->filter(x | $x.key.value != '_type')->concatenate(meta::json::newJSONKeyValue('_type', ^meta::json::JSONString(value = $m->class().name->toLowerFirstCharacter()->toOne())))); + }, + { + m: BaseTypeValue[1], s: meta::json::JSONState[1] | + let elem = meta::json::anyToJSON($m, $s, 1000, $config)->cast(@meta::json::JSONObject); + ^$elem(keyValuePairs = $elem.keyValuePairs->filter(x | $x.key.value != '_type')->concatenate(meta::json::newJSONKeyValue('_type', ^meta::json::JSONString(value = $m->class().name->toLowerFirstCharacter()->toOne())))); + } + ]; + meta::json::toJSON($databaseCommand, $customSerializers, 1000, $config); +} + +function meta::protocols::pure::v1_33_0::extension::store::mongodb::mongoDBModuleSerializerExtension(): meta::protocols::pure::v1_33_0::extension::store::mongodb::MongoDBModuleSerializerExtension[1] +{ + let dbSpecificExtensions = meta::protocols::pure::v1_33_0::extension::store::mongodb::MongoDBModule->stereotype('SerializerExtension').modelElements->cast(@meta::pure::metamodel::function::Function<{->meta::protocols::pure::v1_33_0::extension::store::mongodb::MongoDBModuleSerializerExtension[1]}>) + ->map(f| $f->eval())->sortBy(e| $e.module); + + let transformDatabaseConnection = $dbSpecificExtensions.transfers_connection_transformDatabaseConnection; + + ^meta::protocols::pure::v1_33_0::extension::store::mongodb::MongoDBModuleSerializerExtension( + module = 'mongoDB', + transfers_connection_transformDatabaseConnection = if($transformDatabaseConnection->isNotEmpty(), |$transformDatabaseConnection->toOne(), |[]) + ); + +} \ No newline at end of file diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_33_0/metamodel/runtime_mongodb.pure b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_33_0/metamodel/runtime_mongodb.pure new file mode 100644 index 00000000000..d06519b2e43 --- /dev/null +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_33_0/metamodel/runtime_mongodb.pure @@ -0,0 +1,43 @@ +// Copyright 2023 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::v1_33_0::metamodel::store::mongodb::connection::MongoDBConnection extends meta::protocols::pure::v1_33_0::metamodel::runtime::Connection +{ + type : String[1]; + timeZone : String[0..1]; + quoteIdentifiers : Boolean[0..1]; + dataSourceSpecification: meta::protocols::pure::v1_33_0::metamodel::store::mongodb::connection::MongoDBDatasourceSpecification[1]; + authenticationSpecification: meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::AuthenticationSpecification[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::mongodb::connection::MongoDBDatasourceSpecification // extends meta::pure::alloy::connections::alloy::specification::DatasourceSpecification +{ + serverURLs: meta::protocols::pure::v1_33_0::metamodel::store::mongodb::connection::MongoDBURL[1..*]; + databaseName: String[0..1]; + useSSL: Boolean[0..1]; + connectionTimeoutMS: Integer[0..1]; + socketTimeoutMS: Integer[0..1]; + maxIdleTimeMS: Integer[0..1]; + maxLifeTimeMS: Integer[0..1]; + maxPoolSize: Integer[0..1]; + waitQueueMultiple: Integer[0..1]; + waitQueueTimeoutMS: Integer[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::mongodb::connection::MongoDBURL +{ + baseUrl: String[1]; + port: Integer[1]; +} \ No newline at end of file diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_33_0/transfers/connection_mongodb.pure b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_33_0/transfers/connection_mongodb.pure new file mode 100644 index 00000000000..92960e46e61 --- /dev/null +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_33_0/transfers/connection_mongodb.pure @@ -0,0 +1,58 @@ +// Copyright 2023 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::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::store::mongodb::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::authentication::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::*; +import meta::external::store::mongodb::metamodel::pure::runtime::*; + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::store::mongodb::transformDatabaseConnection(otherConnection: MongoDBConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::store::mongodb::connection::MongoDBConnection[1] +{ + let _type = $otherConnection->class()->toString(); + let element = $otherConnection.element->match([d:meta::pure::store::Store[1]|$d->elementToPath(),s:String[1]|$s]); + let type = $otherConnection.type->toString(); + $otherConnection->match($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).moduleSerializerExtension('mongoDB')->cast(@meta::protocols::pure::v1_33_0::extension::store::mongodb::MongoDBModuleSerializerExtension).transfers_connection_transformDatabaseConnection->map(f | $f->eval($_type, $element, $type))->concatenate([ + + dbCon: MongoDBConnection[1]| + ^meta::protocols::pure::v1_33_0::metamodel::store::mongodb::connection::MongoDBConnection( + _type = $_type, + element = $element, + dataSourceSpecification = $dbCon.dataSourceSpecification->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::store::mongodb::transformSourceSpec(), + authenticationSpecification = $dbCon.authenticationSpecification->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::authentication::transformAuthenticationSpecification($extensions), + type = $type + ) + ] + )->toOneMany()); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::store::mongodb::transformSourceSpec(sourceSpec: meta::external::store::mongodb::metamodel::runtime::MongoDBDatasourceSpecification[1]):meta::protocols::pure::v1_33_0::metamodel::store::mongodb::connection::MongoDBDatasourceSpecification[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::store::mongodb::connection::MongoDBDatasourceSpecification( + serverURLs = meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::store::mongodb::transformServerURLs($sourceSpec.serverURLs), + databaseName = $sourceSpec.databaseName, + useSSL = $sourceSpec.useSSL, + connectionTimeoutMS = $sourceSpec.connectionTimeoutMS, + socketTimeoutMS = $sourceSpec.socketTimeoutMS, + maxIdleTimeMS = $sourceSpec.maxIdleTimeMS, + maxLifeTimeMS = $sourceSpec.maxLifeTimeMS, + maxPoolSize = $sourceSpec.maxPoolSize, + waitQueueMultiple = $sourceSpec.waitQueueMultiple, + waitQueueTimeoutMS = $sourceSpec.waitQueueTimeoutMS + ) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::store::mongodb::transformServerURLs(urls: meta::external::store::mongodb::metamodel::runtime::MongoDBURL[1..*]):meta::protocols::pure::v1_33_0::metamodel::store::mongodb::connection::MongoDBURL[1..*] +{ + $urls->map(url | ^meta::protocols::pure::v1_33_0::metamodel::store::mongodb::connection::MongoDBURL(baseUrl = $url.baseUrl, port = $url.port)); +} \ No newline at end of file diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/src/main/resources/core_external_format_protobuf/protocol/protocol_v1_33_0.pure b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/src/main/resources/core_external_format_protobuf/protocol/protocol_v1_33_0.pure new file mode 100644 index 00000000000..adf87b4d914 --- /dev/null +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/src/main/resources/core_external_format_protobuf/protocol/protocol_v1_33_0.pure @@ -0,0 +1,160 @@ +// 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. + + +###Pure + +import meta::json::*; +import meta::pure::generation::metamodel::*; +import meta::external::format::protobuf::metamodel::*; +import meta::external::format::protobuf::deprecated::generation::configuration::*; +import meta::external::format::protobuf::transformation::fromPure::*; +import meta::protocols::pure::v1_33_0::invocation::generation::protobuf::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::*; +import meta::alloy::metadataServer::*; +import meta::pure::functions::io::http::*; +import meta::external::format::protobuf::deprecated::generation::*; +import meta::protocols::pure::v1_33_0::invocation::externalFormat::protobuf::*; + +import meta::pure::model::unit::*; + +function meta::protocols::pure::v1_33_0::invocation::externalFormat::protobuf::legendGenerateProtobuf(modelUnit:ModelUnit[1], input:ModelToProtobufDataConfiguration[1], host:String[1], port:Integer[1], version:String[1]):meta::external::format::shared::metamodel::data::SchemaData[*] +{ + let resp = executeHTTPRaw(^URL(host = $host , port=$port, path = '/api/pure/'+$version+'/external/format/generateSchema'), + HTTPMethod.POST, + 'application/json', + '{ "clientVersion":"v1_33_0",'+ + ' "sourceModelUnit": {"packageableElementIncludes" : ' + $modelUnit->resolve().packageableElements->map(e | $e->elementToPath())->joinStrings('["', '","', '"]') + '},' + + ' "config":'+$input->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::external::format::protobuf::transformModelToProtobufDataConfiguration()->alloyToJSON()+','+ + ' "model":'+$modelUnit.packageableElementIncludes->match( + [ + p:Package[1]|$p->buildPureModelFromPackage(meta::pure::extension::defaultExtensions())->alloyToJSON(), + c:Type[1]|$c->buildPureModelFromType(meta::pure::extension::defaultExtensions())->alloyToJSON() + ] + )+ + '}' + ); + assertEq(200, $resp.statusCode, | $resp.entity); + let jsonRes = $resp.entity->parseJSON()->cast(@JSONObject); + let schemas = $jsonRes->navigateArray('elements').values->at(0)->cast(@JSONObject)->navigateArray('schemas').values; + $schemas->cast(@JSONObject)->map(s| + ^meta::external::format::shared::metamodel::data::SchemaData + ( + location = $s->navigateString('location').value, + content = $s->navigateString('content').value + ) + ); +} + +function <> meta::protocols::pure::v1_33_0::invocation::externalFormat::protobuf::navigateString( o:JSONObject[1], p:String[1]):JSONString[1] +{ + $o.keyValuePairs->filter(k|$k.key.value == $p).value->toOne()->cast(@JSONString); +} + +function <> meta::protocols::pure::v1_33_0::invocation::externalFormat::protobuf::navigateArray( o:JSONObject[1], p:String[1]):JSONArray[1] +{ + $o.keyValuePairs->filter(k|$k.key.value == $p).value->toOne()->cast(@JSONArray); +} + + +function meta::protocols::pure::v1_33_0::invocation::generation::protobuf::legendGenerateProtobuf(input:ProtobufConfig[1], host:String[1], port:Integer[1], version:String[1]):meta::external::format::protobuf::deprecated::generation::ProtobufOutput[*] +{ + let resp = executeHTTPRaw(^URL(host = $host , port=$port, path = '/api/pure/'+$version+'/schemaGeneration/protobuf'), + HTTPMethod.POST, + 'application/json', + '{ "clientVersion":"v1_33_0",'+ + ' "config":'+$input->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::external::format::protobuf::transformProtobufConfig()->alloyToJSON()+','+ + ' "model":'+if ($input.package->isEmpty(), + |if (!$input.class->isEmpty(), + |$input.class->toOne()->pathToElement()->toOne()->cast(@Type)->buildPureModelFromType(meta::pure::extension::defaultExtensions())->alloyToJSON(), + | if ($input.scopeElements->at(0)->instanceOf(Class), + |$input.scopeElements->at(0)->cast(@Class)->buildPureModelFromType(meta::pure::extension::defaultExtensions())->alloyToJSON(), + |$input.scopeElements->at(0)->cast(@Package)->buildPureModelFromPackage(meta::pure::extension::defaultExtensions())->alloyToJSON() + ) + ), + |$input.package->toOne()->pathToElement()->toOne()->cast(@Package)->buildPureModelFromPackage(meta::pure::extension::defaultExtensions())->alloyToJSON() + )+ + '}' + ); + assertEq(200, $resp.statusCode, | $resp.entity); + $resp.entity->parseJSON()->fromJSON(meta::external::format::protobuf::deprecated::generation::ProtobufOutput, ^ExtendedJSONDeserializationConfig(nullReplacementInArray = ^TDSNull(), typeKeyName='__TYPE', failOnUnknownProperties=true))->cast(@ProtobufOutput); +} + +###Pure +Class meta::protocols::pure::v1_33_0::metamodel::invocation::generation::protobuf::ProtobufConfig extends meta::protocols::pure::v1_33_0::metamodel::invocation::generation::GenerationConfiguration +{ + options : meta::protocols::pure::v1_33_0::metamodel::invocation::generation::protobuf::Options[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::invocation::generation::protobuf::Options +{ + javaPackage:String[0..1]; + javaOuterClassname:String[0..1]; + javaMultipleFiles:Boolean[0..1]; + optimizeFor:meta::protocols::pure::v1_33_0::metamodel::invocation::generation::protobuf::OptimizeMode[0..1]; + customOptions:Map[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::invocation::generation::protobuf::ModelToProtobufDataConfiguration +{ + format : String[1]; + targetSchemaSet : String[1]; + javaPackage : String[0..1]; + javaOuterClassname:String[0..1]; + javaMultipleFiles:Boolean[0..1]; + optimizeFor:meta::protocols::pure::v1_33_0::metamodel::invocation::generation::protobuf::OptimizeMode[0..1]; + customOptions:Map[0..1]; +} + +Enum meta::protocols::pure::v1_33_0::metamodel::invocation::generation::protobuf::OptimizeMode +{ + SPEED, + CODE_SIZE, + LITE_RUNTIME +} + + +###Pure +import meta::external::format::protobuf::deprecated::generation::configuration::*; + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::external::format::protobuf::transformProtobufConfig(input:ProtobufConfig[1]):meta::protocols::pure::v1_33_0::metamodel::invocation::generation::protobuf::ProtobufConfig[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::invocation::generation::protobuf::ProtobufConfig( + package = $input.package, + class = $input.class, + scopeElements = $input.scopeElements->map(e|$e->elementToPath()), + options = ^meta::protocols::pure::v1_33_0::metamodel::invocation::generation::protobuf::Options + ( + javaPackage = $input.javaPackage, + javaOuterClassname = $input.javaOuterClassname, + javaMultipleFiles = $input.javaMultipleFiles, + optimizeFor = if($input.optimizeFor->isEmpty(),|[],|extractEnumValue(meta::protocols::pure::v1_33_0::metamodel::invocation::generation::protobuf::OptimizeMode, $input.optimizeFor->toOne()->id())), + customOptions = $input.customOptions + ) + ) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::external::format::protobuf::transformModelToProtobufDataConfiguration(input:meta::external::format::protobuf::transformation::fromPure::ModelToProtobufDataConfiguration[1]):meta::protocols::pure::v1_33_0::metamodel::invocation::generation::protobuf::ModelToProtobufDataConfiguration[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::invocation::generation::protobuf::ModelToProtobufDataConfiguration + ( + format = $input.format, + targetSchemaSet = $input.targetSchemaSet, + javaPackage = $input.javaPackage, + javaOuterClassname = $input.javaOuterClassname, + javaMultipleFiles = $input.javaMultipleFiles, + optimizeFor = if($input.optimizeFor->isEmpty(),|[],|extractEnumValue(meta::protocols::pure::v1_33_0::metamodel::invocation::generation::protobuf::OptimizeMode, $input.optimizeFor->toOne()->id())), + customOptions = $input.customOptions + ); +} \ No newline at end of file diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/protocols/pure/v1_33_0/extension/extension_athena.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/protocols/pure/v1_33_0/extension/extension_athena.pure new file mode 100644 index 00000000000..d37362b5a9a --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/protocols/pure/v1_33_0/extension/extension_athena.pure @@ -0,0 +1,45 @@ +// 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. + +function <> +meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::athenaSerializerExtension(): meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension[1] +{ + ^meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension( + module = 'athena', + transfers_connection_transformAuthenticationStrategy = [ + ], + transfers_connection_transformDatasourceSpecification = [ + s:meta::pure::alloy::connections::alloy::specification::AthenaDatasourceSpecification[1] | + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::AthenaDatasourceSpecification( + _type = 'athena', + awsRegion = $s.awsRegion, + s3OutputLocation = $s.s3OutputLocation, + databaseName = $s.databaseName + ) + ], + reverse_transfers_typeLookups = [ + pair('athena', 'AthenaDatasourceSpecification') + ], + reverse_transfers_connection_transformAuthenticationStrategy = [ + ], + reverse_transfers_connection_transformDatasourceSpecification = [ + s:meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::AthenaDatasourceSpecification[1] | + ^meta::pure::alloy::connections::alloy::specification::AthenaDatasourceSpecification( + awsRegion = $s.awsRegion, + s3OutputLocation = $s.s3OutputLocation, + databaseName = $s.databaseName + ) + ] + ) +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/protocols/pure/v1_33_0/model/metamodel_connection.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/protocols/pure/v1_33_0/model/metamodel_connection.pure new file mode 100644 index 00000000000..ee4e82783a1 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/protocols/pure/v1_33_0/model/metamodel_connection.pure @@ -0,0 +1,20 @@ +// 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. + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::AthenaDatasourceSpecification extends meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::DatasourceSpecification +{ + awsRegion: String[1]; + s3OutputLocation: String[1]; + databaseName: String[1]; +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/protocols/pure/v1_33_0/extension/extension_bigQuery.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/protocols/pure/v1_33_0/extension/extension_bigQuery.pure new file mode 100644 index 00000000000..e854ba14a84 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/protocols/pure/v1_33_0/extension/extension_bigQuery.pure @@ -0,0 +1,44 @@ +// 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. + +function <> +meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::bigQuerySerializerExtension(): meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension[1] +{ + ^meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension( + module = 'bigQuery', + transfers_connection_transformDatasourceSpecification = [ + b:meta::pure::alloy::connections::alloy::specification::BigQueryDatasourceSpecification[1] | + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::BigQueryDatasourceSpecification( + _type = 'bigQuery', + projectId = $b.projectId, + defaultDataset = $b.defaultDataset, + proxyHost = $b.proxyHost, + proxyPort = $b.proxyPort + ) + ], + reverse_transfers_typeLookups = [ + pair('bigQuery', 'BigQueryDatasourceSpecification') + ], + reverse_transfers_connection_transformDatasourceSpecification = [ + b:meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::BigQueryDatasourceSpecification[1] | + ^meta::pure::alloy::connections::alloy::specification::BigQueryDatasourceSpecification( + // _type = 'bigQuery', + projectId = $b.projectId, + defaultDataset = $b.defaultDataset, + proxyHost = $b.proxyHost, + proxyPort = $b.proxyPort + ) + ] + ) +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/protocols/pure/v1_33_0/models/metamodel_bigQuery.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/protocols/pure/v1_33_0/models/metamodel_bigQuery.pure new file mode 100644 index 00000000000..30e126d4706 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/protocols/pure/v1_33_0/models/metamodel_bigQuery.pure @@ -0,0 +1,21 @@ +// 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. + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::BigQueryDatasourceSpecification extends meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::DatasourceSpecification +{ + projectId:String[1]; + defaultDataset:String[1]; + proxyHost: String[0..1]; + proxyPort: String[0..1]; +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/protocols/pure/v1_33_0/extension/extension_databricks.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/protocols/pure/v1_33_0/extension/extension_databricks.pure new file mode 100644 index 00000000000..efcc3ce2e7d --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/protocols/pure/v1_33_0/extension/extension_databricks.pure @@ -0,0 +1,44 @@ +// Copyright 2023 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::v1_33_0::transformation::fromPureGraph::connection::databricksSerializerExtension(): meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension[1] +{ + ^meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension( + module = 'databricks', + transfers_connection_transformDatasourceSpecification = [ + d:meta::pure::alloy::connections::alloy::specification::DatabricksDatasourceSpecification[1] | + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::DatabricksDatasourceSpecification( + _type = 'databricks', + hostname = $d.hostname, + port = $d.port, + protocol = $d.protocol, + httpPath = $d.httpPath + ) + ], + reverse_transfers_typeLookups = [ + pair('databricks', 'DatabricksDatasourceSpecification') + ], + reverse_transfers_connection_transformDatasourceSpecification = [ + d:meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::DatabricksDatasourceSpecification[1] | + ^meta::pure::alloy::connections::alloy::specification::DatabricksDatasourceSpecification( + // _type = 'databricks', + hostname = $d.hostname, + port = $d.port, + protocol = $d.protocol, + httpPath = $d.httpPath + ) + ] + ) +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/protocols/pure/v1_33_0/extension/metamodel_connection.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/protocols/pure/v1_33_0/extension/metamodel_connection.pure new file mode 100644 index 00000000000..f992da16993 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/protocols/pure/v1_33_0/extension/metamodel_connection.pure @@ -0,0 +1,21 @@ +// Copyright 2023 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::v1_33_0::metamodel::store::relational::connection::alloy::specification::DatabricksDatasourceSpecification extends meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::DatasourceSpecification +{ + hostname:String[1]; + port:String[1]; + protocol:String[1]; + httpPath:String[1]; +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/protocols/pure/v1_33_0/extension/extension_redshift.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/protocols/pure/v1_33_0/extension/extension_redshift.pure new file mode 100644 index 00000000000..7cc1678ed8a --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/protocols/pure/v1_33_0/extension/extension_redshift.pure @@ -0,0 +1,48 @@ +// Copyright 2023 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::v1_33_0::transformation::fromPureGraph::connection::redshiftSerializerExtension(): meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension[1] +{ + ^meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension( + module = 'redshift', + transfers_connection_transformDatasourceSpecification = [ + r:meta::pure::legend::connections::legend::specification::RedshiftDatasourceSpecification[1] | + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::legend::specification::RedshiftDatasourceSpecification( + _type = 'redshift', + clusterID = $r.clusterID, + port =$r.port, + region = $r.region, + databaseName = $r.databaseName, + endpointURL = $r.endpointURL, + host = $r.host + ) + ], + reverse_transfers_typeLookups = [ + pair('redshift', 'RedshiftDatasourceSpecification') + ], + reverse_transfers_connection_transformDatasourceSpecification = [ + r:meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::legend::specification::RedshiftDatasourceSpecification[1] | + ^meta::pure::legend::connections::legend::specification::RedshiftDatasourceSpecification( + // _type = 'redshift', + clusterID = $r.clusterID, + port =$r.port, + region = $r.region, + databaseName = $r.databaseName, + endpointURL = $r.endpointURL, + host = $r.host + ) + ] + ) +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/protocols/pure/v1_33_0/extension/metamodel_conection.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/protocols/pure/v1_33_0/extension/metamodel_conection.pure new file mode 100644 index 00000000000..3fd37886526 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/protocols/pure/v1_33_0/extension/metamodel_conection.pure @@ -0,0 +1,24 @@ +// Copyright 2023 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::v1_33_0::metamodel::store::relational::connection::legend::specification::RedshiftDatasourceSpecification extends meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::DatasourceSpecification +{ + + clusterID:String[1]; + region:String[1]; + host:String[1]; + databaseName:String[1]; + port:Integer[1]; + endpointURL: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-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/protocols/pure/v1_33_0/extension/extension_snowflake.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/protocols/pure/v1_33_0/extension/extension_snowflake.pure new file mode 100644 index 00000000000..b49888200f8 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/protocols/pure/v1_33_0/extension/extension_snowflake.pure @@ -0,0 +1,80 @@ +// Copyright 2023 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::v1_33_0::transformation::fromPureGraph::connection::snowflakeSerializerExtension(): meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension[1] +{ + ^meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension( + module = 'snowflake', + transfers_connection_transformAuthenticationStrategy = [ + s:meta::pure::alloy::connections::alloy::authentication::SnowflakePublicAuthenticationStrategy[1] | + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::SnowflakePublicAuthenticationStrategy( + _type = 'snowflakePublic', + privateKeyVaultReference = $s.privateKeyVaultReference, + passPhraseVaultReference = $s.passPhraseVaultReference, + publicUserName = $s.publicUserName + ) + ], + transfers_connection_transformDatasourceSpecification = [ + s:meta::pure::alloy::connections::alloy::specification::SnowflakeDatasourceSpecification[1] | + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::SnowflakeDatasourceSpecification( + _type = 'snowflake', + accountName = $s.accountName, + region = $s.region, + warehouseName = $s.warehouseName, + databaseName = $s.databaseName, + cloudType = $s.cloudType, + quotedIdentifiersIgnoreCase = $s.quotedIdentifiersIgnoreCase, + proxyHost = $s.proxyHost, + proxyPort = $s.proxyPort, + nonProxyHosts = $s.nonProxyHosts, + accountType = if($s.accountType->isEmpty(),|[],|$s.accountType->toOne()->toString()), + organization = $s.organization, + role = $s.role, + enableQueryTags = $s.enableQueryTags + ) + ], + reverse_transfers_typeLookups = [ + pair('snowflake', 'SnowflakeDatasourceSpecification'), + pair('snowflakePublic', 'SnowflakePublicAuthenticationStrategy') + ], + reverse_transfers_connection_transformAuthenticationStrategy = [ + s:meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::SnowflakePublicAuthenticationStrategy[1] | + ^meta::pure::alloy::connections::alloy::authentication::SnowflakePublicAuthenticationStrategy( + privateKeyVaultReference = $s.privateKeyVaultReference, + passPhraseVaultReference = $s.passPhraseVaultReference, + publicUserName = $s.publicUserName + ) + ], + reverse_transfers_connection_transformDatasourceSpecification = [ + s:meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::SnowflakeDatasourceSpecification[1] | + ^meta::pure::alloy::connections::alloy::specification::SnowflakeDatasourceSpecification( + accountName = $s.accountName, + region = $s.region, + warehouseName = $s.warehouseName, + databaseName = $s.databaseName, + cloudType = $s.cloudType, + quotedIdentifiersIgnoreCase = $s.quotedIdentifiersIgnoreCase, + proxyHost = $s.proxyHost, + proxyPort = $s.proxyPort, + nonProxyHosts = $s.nonProxyHosts, + accountType = if($s.accountType->isEmpty(),|[], + |extractEnumValue(meta::pure::alloy::connections::alloy::specification::SnowflakeAccountType, $s.accountType->toOne())), + organization = $s.organization, + role = $s.role, + enableQueryTags = $s.enableQueryTags + ) + ] + ) +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/protocols/pure/v1_33_0/extension/metamodel_conection.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/protocols/pure/v1_33_0/extension/metamodel_conection.pure new file mode 100644 index 00000000000..a34997acd75 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/protocols/pure/v1_33_0/extension/metamodel_conection.pure @@ -0,0 +1,40 @@ +// Copyright 2023 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::v1_33_0::metamodel::store::relational::connection::alloy::specification::SnowflakeDatasourceSpecification extends meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::DatasourceSpecification +{ + accountName : String[1]; + region : String[1]; + warehouseName : String[1]; + databaseName : String[1]; + cloudType : String[0..1]; + accountType: String[0..1]; + organization: String[0..1]; + + quotedIdentifiersIgnoreCase : Boolean[0..1]; + enableQueryTags: Boolean[0..1]; + + proxyHost: String[0..1]; + proxyPort: String[0..1]; + nonProxyHosts: String[0..1]; + + role: String [0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::SnowflakePublicAuthenticationStrategy extends meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::AuthenticationStrategy +{ + privateKeyVaultReference : String[1]; + passPhraseVaultReference : String[1]; + publicUserName : String[1]; +} \ No newline at end of file diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner/relational/protocols/pure/v1_33_0/extension/extension_Spanner.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner/relational/protocols/pure/v1_33_0/extension/extension_Spanner.pure new file mode 100644 index 00000000000..06976660572 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner/relational/protocols/pure/v1_33_0/extension/extension_Spanner.pure @@ -0,0 +1,46 @@ +// 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 languameta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::SpannerDatasourceSpecification governing permissions and +// limitations under the License. + +function <> +meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::SpannerSerializerExtension(): meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension[1] +{ + ^meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension( + module = 'Spanner', + transfers_connection_transformDatasourceSpecification = [ + s:meta::pure::alloy::connections::alloy::specification::SpannerDatasourceSpecification[1] | + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::SpannerDatasourceSpecification( + _type = 'spanner', + projectId = $s.projectId, + instanceId = $s.instanceId, + databaseId = $s.databaseId, + proxyHost = $s.proxyHost, + proxyPort = $s.proxyPort + ) + ], + reverse_transfers_typeLookups = [ + pair('spanner', 'SpannerDatasourceSpecification') + ], + reverse_transfers_connection_transformDatasourceSpecification = [ + s:meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::SpannerDatasourceSpecification[1] | + ^meta::pure::alloy::connections::alloy::specification::SpannerDatasourceSpecification( + // _type = 'spanner', + projectId = $s.projectId, + instanceId = $s.instanceId, + databaseId = $s.databaseId, + proxyHost = $s.proxyHost, + proxyPort = $s.proxyPort + ) + ] + ) +} \ No newline at end of file diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner/relational/protocols/pure/v1_33_0/models/metamodel_Spanner.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner/relational/protocols/pure/v1_33_0/models/metamodel_Spanner.pure new file mode 100644 index 00000000000..1cf8f0aa9da --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner/relational/protocols/pure/v1_33_0/models/metamodel_Spanner.pure @@ -0,0 +1,22 @@ +// 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. + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::SpannerDatasourceSpecification extends meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::DatasourceSpecification +{ + projectId:String[1]; + instanceId:String[1]; + databaseId:String[1]; + proxyHost: String[0..1]; + proxyPort: Integer[0..1]; +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/src/main/resources/core_relational_trino/relational/protocols/pure/v1_33_0/extension/extension_trino.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/src/main/resources/core_relational_trino/relational/protocols/pure/v1_33_0/extension/extension_trino.pure new file mode 100644 index 00000000000..30551fe78f6 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/src/main/resources/core_relational_trino/relational/protocols/pure/v1_33_0/extension/extension_trino.pure @@ -0,0 +1,73 @@ +// 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. + +function <> +meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::trinoSerializerExtension(): meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension[1] +{ + ^meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension( + module = 'trino', + transfers_connection_transformAuthenticationStrategy = [ + u:meta::pure::alloy::connections::alloy::authentication::TrinoDelegatedKerberosAuthenticationStrategy[1] | + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::TrinoDelegatedKerberosAuthenticationStrategy( + _type = 'TrinoDelegatedKerberosAuth', + kerberosRemoteServiceName = $u.kerberosRemoteServiceName, + kerberosUseCanonicalHostname = $u.kerberosUseCanonicalHostname, + serverPrincipal = $u.serverPrincipal + ) + ], + transfers_connection_transformDatasourceSpecification = [ + s:meta::pure::alloy::connections::alloy::specification::TrinoDatasourceSpecification[1] | + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::TrinoDatasourceSpecification( + _type = 'Trino', + host = $s.host, + port = $s.port, + catalog = $s.catalog, + schema = $s.schema, + clientTags = $s.clientTags, + sslSpecification = if($s.sslSpecification->isEmpty(), |[], |^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::TrinoSSLSpecification( + ssl = $s.sslSpecification->toOne().ssl, + trustStorePathVaultReference = $s.sslSpecification->toOne().trustStorePathVaultReference, + trustStorePasswordVaultReference = $s.sslSpecification->toOne().trustStorePasswordVaultReference + )) + ) + ], + reverse_transfers_typeLookups = [ + pair('Trino', 'TrinoDatasourceSpecification'), + pair('TrinoDelegatedKerberosAuth', 'TrinoDelegatedKerberosAuthenticationStrategy') + ], + reverse_transfers_connection_transformAuthenticationStrategy = [ + u:meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::TrinoDelegatedKerberosAuthenticationStrategy[1] | + ^meta::pure::alloy::connections::alloy::authentication::TrinoDelegatedKerberosAuthenticationStrategy( + kerberosRemoteServiceName = $u.kerberosRemoteServiceName, + kerberosUseCanonicalHostname = $u.kerberosUseCanonicalHostname, + serverPrincipal = $u.serverPrincipal + ) + ], + reverse_transfers_connection_transformDatasourceSpecification = [ + s:meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::TrinoDatasourceSpecification[1] | + ^meta::pure::alloy::connections::alloy::specification::TrinoDatasourceSpecification( + host = $s.host, + port = $s.port, + catalog = $s.catalog, + schema = $s.schema, + clientTags = $s.clientTags, + sslSpecification = if($s.sslSpecification->isEmpty(), |[], |^meta::pure::alloy::connections::alloy::specification::TrinoSSLSpecification( + ssl = $s.sslSpecification->toOne().ssl, + trustStorePathVaultReference = $s.sslSpecification->toOne().trustStorePathVaultReference, + trustStorePasswordVaultReference = $s.sslSpecification->toOne().trustStorePasswordVaultReference + )) + ) + ] + ) +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/src/main/resources/core_relational_trino/relational/protocols/pure/v1_33_0/extension/metamodel_connection.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/src/main/resources/core_relational_trino/relational/protocols/pure/v1_33_0/extension/metamodel_connection.pure new file mode 100644 index 00000000000..1e6d4cd7bac --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/src/main/resources/core_relational_trino/relational/protocols/pure/v1_33_0/extension/metamodel_connection.pure @@ -0,0 +1,23 @@ +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::TrinoDatasourceSpecification extends meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::DatasourceSpecification +{ + host: String[1]; + port: Integer[1]; + catalog: String[0..1]; + schema: String[0..1]; + clientTags: String[0..1]; + sslSpecification: meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::TrinoSSLSpecification[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::TrinoSSLSpecification +{ + ssl: Boolean[1]; + trustStorePathVaultReference: String[0..1]; + trustStorePasswordVaultReference: String[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::TrinoDelegatedKerberosAuthenticationStrategy extends meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::DelegatedKerberosAuthenticationStrategy +{ + kerberosRemoteServiceName: String[1]; + kerberosUseCanonicalHostname: Boolean[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/v1_33_0/extension/extension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/extension/extension.pure new file mode 100644 index 00000000000..7690249b27f --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/extension/extension.pure @@ -0,0 +1,31 @@ +// 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. + +Class meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension extends meta::protocols::pure::v1_33_0::extension::ModuleSerializerExtension +{ + transfers_connection_transformDatabaseConnection : Function<{String[1], String[1], String[1], meta::protocols::pure::v1_33_0::metamodel::store::relational::PostProcessorWithParameter[*] -> Function<{Nil[1]->meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::DatabaseConnection[1]}>[*]}>[0..1]; + transfers_connection_transformPostProcessors : Function<{Nil[1] -> meta::protocols::pure::v1_33_0::metamodel::store::relational::postProcessor::PostProcessor[1]}>[*]; + transfers_connection_transformAuthenticationStrategy : Function<{Nil[1] -> meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::AuthenticationStrategy[1]}>[*]; + transfers_connection_transformDatasourceSpecification : Function<{Nil[1] -> meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::DatasourceSpecification[1]}>[*]; + transfers_connection_transformPostProcessorParameters : Function<{Nil[1] -> meta::protocols::pure::v1_33_0::metamodel::store::relational::PostProcessorParameter[1]}>[*]; + transfers_milestoning_transformMilestoning : Function<{Nil[1]->meta::protocols::pure::v1_33_0::metamodel::store::relational::Milestoning[1]}>[*]; + reverse_transfers_typeLookups: Pair[*]; + reverse_transfers_connection_transformAuthenticationStrategy : Function<{Nil[1] -> meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy[1]}>[*]; + reverse_transfers_connection_transformDatasourceSpecification : Function<{Nil[1] -> meta::pure::alloy::connections::alloy::specification::DatasourceSpecification[1]}>[*]; +} + +Profile meta::protocols::pure::v1_33_0::extension::RelationalModule +{ + stereotypes: [SerializerExtension]; +} 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/v1_33_0/extension/extension_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/v1_33_0/extension/extension_relational.pure new file mode 100644 index 00000000000..453d71937bd --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/extension/extension_relational.pure @@ -0,0 +1,390 @@ +// 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. + +import meta::relational::graphFetch::executionPlan::*; +import meta::protocols::pure::v1_33_0::extension::*; +import meta::json::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::csv::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::context::*; +import meta::pure::runtime::*; +import meta::protocols::pure::v1_33_0::invocation::execution::execute::*; +import meta::relational::mapping::*; +import meta::pure::mapping::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::*; +import meta::relational::metamodel::*; + +function meta::protocols::pure::v1_33_0::extension::getRelationalExtension(type:String[1]):meta::pure::extension::SerializerExtension[1] +{ + let res = [ + pair('relational', | getRelationalExtension()) + ]->filter(f|$f.first == $type); + assert($res->isNotEmpty(), |'Can\'t find the type '+$type); + $res->at(0).second->eval(); + +} + +function meta::protocols::pure::v1_33_0::extension::transformTempTableStrategy(tempTableStrategy:meta::relational::graphFetch::executionPlan::TempTableStrategy[1], mapping:Mapping[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::executionPlan::TempTableStrategy[1] +{ + $tempTableStrategy->match([ + t : LoadFromSubQueryTempTableStrategy[1] | + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::LoadFromSubQueryTempTableStrategy( + _type = 'subQuery', + createTempTableNode = if($t.createTempTableNode->isNotEmpty(),|$t.createTempTableNode->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformNode($mapping, $extensions),|[]), + loadTempTableNode = if($t.loadTempTableNode->isNotEmpty(),|$t.loadTempTableNode->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformNode($mapping, $extensions),|[]), + dropTempTableNode = if($t.dropTempTableNode->isNotEmpty(),|$t.dropTempTableNode->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformNode($mapping, $extensions),|[]) + );, + t : LoadFromTempFileTempTableStrategy[1] | + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::LoadFromTempFileTempTableStrategy( + _type = 'tempFile', + createTempTableNode = if($t.createTempTableNode->isNotEmpty(),|$t.createTempTableNode->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformNode($mapping, $extensions),|[]), + loadTempTableNode = if($t.loadTempTableNode->isNotEmpty(),|$t.loadTempTableNode->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformNode($mapping, $extensions),|[]), + dropTempTableNode = if($t.dropTempTableNode->isNotEmpty(),|$t.dropTempTableNode->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformNode($mapping, $extensions),|[]) + );, + t : LoadFromResultSetAsValueTuplesTempTableStrategy[1] | + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::LoadFromResultSetAsValueTuplesTempTableStrategy( + _type = 'resultSet', + createTempTableNode = if($t.createTempTableNode->isNotEmpty(),|$t.createTempTableNode->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformNode($mapping, $extensions),|[]), + loadTempTableNode = if($t.loadTempTableNode->isNotEmpty(),|$t.loadTempTableNode->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformNode($mapping, $extensions),|[]), + dropTempTableNode = if($t.dropTempTableNode->isNotEmpty(),|$t.dropTempTableNode->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformNode($mapping, $extensions),|[]), + tupleBatchSize = $t.tupleBatchSize, + quoteCharacterReplacement = $t.quoteCharacterReplacement + ); + ]) +} + +function meta::protocols::pure::v1_33_0::extension::getRelationalExtension():meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0[1] +{ + ^meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0 + ( + moduleSerializerExtensions = meta::protocols::pure::v1_33_0::extension::relationalModuleSerializerExtension(), + transfers_mapping_transformMapping = x:SetImplementation[1] | !$x->instanceOf(EmbeddedRelationalInstanceSetImplementation), + transfers_mapping_transformSetImplementation2 = {mapping:Mapping[1], extensions:meta::pure::extension::Extension[*] | [ + r:RootRelationalInstanceSetImplementation[1]| $r->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformRootRelationalInstanceSetImplementation($mapping, $extensions), + a:meta::pure::mapping::aggregationAware::AggregationAwareSetImplementation[1]| $a->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformAggregationAwareSetImplementation($mapping, $extensions); + ]}, + transfers_mapping_transformAssociationImplementation = {mapping:Mapping[1], extensions:meta::pure::extension::Extension[*] | a:RelationalAssociationImplementation[1] | $a->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformRelationalAssociationImplementation($mapping, $extensions)}, + + transfers_valueSpecification_transformAny = { + inScope:String[*], open:Map>[1], m:Multiplicity[1], fe:FunctionExpression[0..1],useAppliedFunction:Boolean[1], extensions:meta::pure::extension::Extension[*] | + [ + r:meta::pure::runtime::Runtime[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ClassInstance + ( + _type = 'classInstance', + type = 'runtimeInstance', + value = ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::RuntimeInstance + ( + runtime = $r->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::runtime::transformRuntime($extensions) + ) + ), + e:meta::pure::runtime::ExecutionContext[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ClassInstance + ( + _type = 'classInstance', + type = 'executionContextInstance', + value = ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::ExecutionContextInstance + ( + executionContext = $e->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::context::transformContext($extensions) + ) + ), + d:meta::relational::metamodel::Database[1]| + ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::PackageableElementPtr + ( + _type = 'packageableElementPtr', + fullPath = $d->elementToPath() + ) + ] + }, + transfers_executionPlan_transformNode = {mapping:Mapping[1], extensions:meta::pure::extension::Extension[*] | + [ + rb:meta::pure::executionPlan::RelationalBlockExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalBlockExecutionNode( _type = 'relationalBlock', + resultType = $rb.resultType->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), + finallyExecutionNodes = $rb.finallyExecutionNodes->map(n|$n->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformNode($mapping, $extensions)));, + rel:meta::relational::mapping::SQLExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::SQLExecutionNode( + _type = 'sql', + resultType = $rel.resultType->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), + resultSizeRange = $rel.resultSizeRange->isEmpty()->if(|[],|$rel.resultSizeRange->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()), + resultColumns = $rel.resultColumns->map(c | $c->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultColumn()), + sqlComment = $rel.sqlComment, + sqlQuery = $rel.sqlQuery, + onConnectionCloseCommitQuery = $rel.onConnectionCloseCommitQuery, + onConnectionCloseRollbackQuery = $rel.onConnectionCloseRollbackQuery, + connection = $rel.connection->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) + ), + rel:meta::relational::mapping::RelationalSaveNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalSaveNode( + _type = 'relationalSave', + resultType = $rel.resultType->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), + resultSizeRange = $rel.resultSizeRange->isEmpty()->if(|[],|$rel.resultSizeRange->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()), + sqlComment = $rel.sqlComment, + sqlQuery = $rel.sqlQuery, + generatedVariableName = $rel.generatedVariableName, + columnValueGenerators = $rel.columnValueGenerators->keyValues()->map(cvg | pair($cvg.first, $cvg.second->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformNode($mapping, $extensions)))->newMap(), + onConnectionCloseCommitQuery = $rel.onConnectionCloseCommitQuery, + onConnectionCloseRollbackQuery = $rel.onConnectionCloseRollbackQuery, + connection = $rel.connection->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) + ), + rel:meta::relational::mapping::RelationalTdsInstantiationExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalTdsInstantiationExecutionNode( + _type = 'relationalTdsInstantiation', + resultType = $rel.resultType->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), + resultSizeRange = $rel.resultSizeRange->isEmpty()->if(|[],|$rel.resultSizeRange->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()) + ), + rel:meta::relational::mapping::RelationalClassInstantiationExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalClassInstantiationExecutionNode( + _type = 'relationalClassInstantiation', + resultType = $rel.resultType->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), + resultSizeRange = $rel.resultSizeRange->isEmpty()->if(|[],|$rel.resultSizeRange->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()) + ), + rel:meta::relational::mapping::RelationalRelationDataInstantiationExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalRelationDataInstantiationExecutionNode( + _type = 'relationalRelationDataInstantiation', + resultType = $rel.resultType->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), + resultSizeRange = $rel.resultSizeRange->isEmpty()->if(|[],|$rel.resultSizeRange->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()) + ), + rel:meta::relational::mapping::RelationalDataTypeInstantiationExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalDataTypeInstantiationExecutionNode( + _type = 'relationalDataTypeInstantiation', + resultType = $rel.resultType->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), + resultSizeRange = $rel.resultSizeRange->isEmpty()->if(|[],|$rel.resultSizeRange->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()) + ), + cpt:meta::relational::mapping::CreateAndPopulateTempTableExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::CreateAndPopulateTempTableExecutionNode + ( + _type = 'createAndPopulateTempTable', + inputVarNames = $cpt.inputVarNames, + tempTableName = $cpt.tempTableName, + resultType = $cpt.resultType->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), + resultSizeRange = $cpt.resultSizeRange->isEmpty()->if(|[],|$cpt.resultSizeRange->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()), + tempTableColumnMetaData = $cpt.tempTableColumnMetaData->map(col | $col->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformTempTableColumnMetaData()), + connection = $cpt.connection->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) + ), + rel:meta::relational::graphFetch::executionPlan::RelationalRootQueryTempTableGraphFetchExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalRootQueryTempTableGraphFetchExecutionNode( + _type = 'relationalRootQueryTempTableGraphFetch', + tempTableStrategy = if($rel.tempTableStrategy->isNotEmpty(),|$rel.tempTableStrategy->toOne()->meta::protocols::pure::v1_33_0::extension::transformTempTableStrategy($mapping, $extensions),|[]), + resultType = $rel.resultType->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), + resultSizeRange = $rel.resultSizeRange->isEmpty()->if(|[],|$rel.resultSizeRange->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()), + batchSize = $rel.batchSize, + tempTableName = $rel.tempTableName, + processedTempTableName = $rel.processedTempTableName, + columns = $rel.columns->map(c | $c->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultColumn()), + children = $rel.children->map(c | $c->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformNode($mapping, $extensions))->cast(@meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalGraphFetchExecutionNode), + nodeIndex = $rel.nodeIndex, + parentIndex = $rel.parentIndex, + graphFetchTree = $rel.graphFetchTree->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformGraphFetchTree([], newMap([]->cast(@Pair>)), $extensions), + checked = $rel.checked + ), + rel:meta::relational::graphFetch::executionPlan::RelationalCrossRootQueryTempTableGraphFetchExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalCrossRootQueryTempTableGraphFetchExecutionNode( + _type = 'relationalCrossRootQueryTempTableGraphFetch', + parentTempTableStrategy = if($rel.parentTempTableStrategy->isNotEmpty(),|$rel.parentTempTableStrategy->toOne()->meta::protocols::pure::v1_33_0::extension::transformTempTableStrategy($mapping, $extensions),|[]), + tempTableStrategy = if($rel.tempTableStrategy->isNotEmpty(),|$rel.tempTableStrategy->toOne()->meta::protocols::pure::v1_33_0::extension::transformTempTableStrategy($mapping, $extensions),|[]), + resultType = $rel.resultType->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), + resultSizeRange = $rel.resultSizeRange->isEmpty()->if(|[],|$rel.resultSizeRange->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()), + tempTableName = $rel.tempTableName, + processedTempTableName = $rel.processedTempTableName, + columns = $rel.columns->map(c | $c->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultColumn()), + children = $rel.children->map(c | $c->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformNode($mapping, $extensions))->cast(@meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalGraphFetchExecutionNode), + nodeIndex = $rel.nodeIndex, + parentIndex = $rel.parentIndex, + parentTempTableName = $rel.parentTempTableName, + processedParentTempTableName =$rel.processedParentTempTableName, + parentTempTableColumns = $rel.parentTempTableColumns->map(c | $c->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultColumn()), + graphFetchTree = $rel.graphFetchTree->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformGraphFetchTree([], newMap([]->cast(@Pair>)), $extensions) + ), + rel:meta::relational::graphFetch::executionPlan::RelationalClassQueryTempTableGraphFetchExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalClassQueryTempTableGraphFetchExecutionNode( + _type = 'relationalClassQueryTempTableGraphFetch', + tempTableStrategy = if($rel.tempTableStrategy->isNotEmpty(),|$rel.tempTableStrategy->toOne()->meta::protocols::pure::v1_33_0::extension::transformTempTableStrategy($mapping, $extensions),|[]), + resultType = $rel.resultType->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), + resultSizeRange = $rel.resultSizeRange->isEmpty()->if(|[],|$rel.resultSizeRange->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()), + tempTableName = $rel.tempTableName, + processedTempTableName = $rel.processedTempTableName, + columns = $rel.columns->map(c | $c->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultColumn()), + children = $rel.children->map(c | $c->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformNode($mapping, $extensions))->cast(@meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalGraphFetchExecutionNode), + nodeIndex = $rel.nodeIndex, + parentIndex = $rel.parentIndex, + graphFetchTree = $rel.graphFetchTree->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformGraphFetchTree([], newMap([]->cast(@Pair>)), $extensions) + ), + rel:meta::relational::graphFetch::executionPlan::RelationalPrimitiveQueryGraphFetchExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalPrimitiveQueryGraphFetchExecutionNode( + _type = 'relationalPrimitiveQueryGraphFetch', + resultType = $rel.resultType->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), + resultSizeRange = $rel.resultSizeRange->isEmpty()->if(|[],|$rel.resultSizeRange->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity()), + nodeIndex = $rel.nodeIndex, + parentIndex = $rel.parentIndex, + graphFetchTree = $rel.graphFetchTree->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformGraphFetchTree([], newMap([]->cast(@Pair>)), $extensions) + ) + ] + }, + transfers_executionPlan_transformResultType = {mapping:Mapping[1], extensions:meta::pure::extension::Extension[*] | + [ + tds:meta::pure::executionPlan::TDSResultType[1]|^meta::protocols::pure::v1_33_0::metamodel::executionPlan::TDSResultType + ( + _type='tds', + tdsColumns=$tds.tdsColumns->map(c|^meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::TDSColumn + ( + name = $c.name, + doc = $c.documentation, + type = $c.type->toOne()->elementToPath(), + enumMapping = if($c.enumMappingId->isEmpty(),|[],|meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformEnumMapping($mapping->enumerationMappingByName($c.enumMappingId->toOne())->toOne())), + relationalType = $c.sourceDataType->match( + [ + d:meta::relational::metamodel::datatype::DataType[0]|[], + d:meta::relational::metamodel::datatype::DataType[1]|$d->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::alloyTypeToString() + ] + ) + ) + ) + ), + rel:meta::pure::executionPlan::RelationResultType[1]|^meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationResultType + ( + _type='relation', + relationName = $rel.relationName, + relationType = $rel.relationType->toString(), + schemaName = $rel.schemaName, + database = $rel.database, + columns = $rel.columns->map(c|$c->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformColumn()) + ) + ] + }, + transfers_executionPlan_transformSetImplementation = pair(p:meta::pure::mapping::PropertyMapping[1]|$p->instanceOf(meta::relational::mapping::RelationalPropertyMapping) && !$p->cast(@meta::relational::mapping::RelationalPropertyMapping).transformer->isEmpty(), p:meta::pure::mapping::PropertyMapping[1]|$p->cast(@meta::relational::mapping::RelationalPropertyMapping).transformer->cast(@meta::pure::mapping::EnumerationMapping)->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformEnumMapping()), + scan_buildBasePureModel_extractStores = {m:Mapping[1], extensions:meta::pure::extension::Extension[*] | + [ + rsi: RootRelationalInstanceSetImplementation[1] | + // Main Store + let mainTableAlias = $rsi.mainTableAlias; + let mainStore = if ($mainTableAlias.database->isEmpty(), | $rsi->mainTable().schema.database, | $mainTableAlias.database->toOne()); + // Filter + let filter = $rsi->resolveFilter(); + let fromFilter = $filter.database; + let fromFilterOpertation = $filter.filter.operation->meta::relational::functions::pureToSqlQuery::extractStore(); + let fromFilterJoins = $filter.joinTreeNode->map(x|$x->meta::relational::functions::pureToSqlQuery::flatten()).database; + // Properties + let fromProperties = $rsi->processProperties($m, $extensions); + // All + $mainStore->concatenate($fromFilter)->concatenate($fromFilterOpertation)->concatenate($fromFilterJoins)->concatenate($fromProperties);, + x: EmbeddedRelationalInstanceSetImplementation[1]|$x->processProperties($m, $extensions), + ag: meta::pure::mapping::aggregationAware::AggregationAwareSetImplementation[1]| $ag.mainSetImplementation->extractStores($m, $extensions)->concatenate($ag.aggregateSetImplementations->map(a|$a.setImplementation->extractStores($m, $extensions))) + ] + }, + scan_buildBasePureModel_processProperties ={m:Mapping[1], extensions:meta::pure::extension::Extension[*] | + [ + r:RelationalPropertyMapping[1]|$r.relationalOperationElement->map(o|$o->meta::relational::functions::pureToSqlQuery::extractStore()), + e:EmbeddedRelationalInstanceSetImplementation[1]|extractStores($e, $m, $extensions) + ] + }, + scan_buildBasePureModel_buildPureModelFromMapping1 = {d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore())}, + invocation_execution_execute2_pre2 = {extensions:meta::pure::extension::Extension[*] | [ + pair ( builderType:String[1]| $builderType->isNotEmpty() && $builderType->toOne()=='tdsBuilder', + {resultJSON:String[1], result:JSONObject[1], m:Mapping[1], r:Runtime[1],extendedJSONDeserializationConfig:ExtendedJSONDeserializationConfig[1], context:ExecutionContext[0..1]| + let rv = $resultJSON->fromJSON(meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::RelationalTDSResult, $extendedJSONDeserializationConfig); + $rv->cast(@meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::RelationalTDSResult)->toOne()->processTDSResult($extensions);} + ), + + pair (builderType:String[1]| $builderType->isNotEmpty() && $builderType->toOne()=='classBuilder', + {resultJSON:String[1], result:JSONObject[1], m:Mapping[1], pureRuntime:Runtime[1],extendedJSONDeserializationConfig:ExtendedJSONDeserializationConfig[1], context:ExecutionContext[0..1]| + let r = $resultJSON->fromJSON(meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::RelationalClassResult, $extendedJSONDeserializationConfig); + processRelationalClassResult($r, $m, $pureRuntime, $context, $extensions);} + ) + ]}, + invocation_execution_execute2_post2 = {extensions:meta::pure::extension::Extension[*] | [ + pair(builderType:String[1]|true, + {resultJSON:String[1], result:JSONObject[1], m:Mapping[1], runtime:Runtime[1],extendedJSONDeserializationConfig:ExtendedJSONDeserializationConfig[1], context:ExecutionContext[0..1]| + let r = $resultJSON->fromJSON(meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::RelationalDataTypeResult, $extendedJSONDeserializationConfig); // Assume dataTypeBuilder is resultType + processDataTypeResult($r, $extensions);} + ) + ]} + + , + invocation_execution_transformContext = + [ + r:meta::relational::runtime::RelationalExecutionContext[1]| + let importDataFlowFkCols = if($r.importDataFlowFksByTable->isEmpty(), |[], + |$r.importDataFlowFksByTable->toOne()->keyValues()->map(p| ^meta::protocols::pure::v1_33_0::metamodel::TableForeignColumns( + table=$p.first->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::setRelationToTablePtr(), + columns=$p.second.values->map(c| $c.name))) + ); + ^meta::protocols::pure::v1_33_0::metamodel::RelationalExecutionContext + ( + queryTimeOutInSeconds = $r.queryTimeOutInSeconds, + enableConstraints = $r.enableConstraints, + addDriverTablePkForProject = $r.addDriverTablePkForProject, + insertDriverTablePkInTempTable = $r.insertDriverTablePkInTempTable, + useTempTableAsDriver = $r.useTempTableAsDriver, + preserveJoinOrder = $r.preserveJoinOrder, + importDataFlow = $r.importDataFlow, + importDataFlowAddFks = $r.importDataFlowAddFks, + importDataFlowFkCols = $importDataFlowFkCols, + importDataFlowImplementationCount = $r.importDataFlowImplementationCount, + _type = 'RelationalExecutionContext' + ); + + ], + transfers_store_transformStore2 = {extensions:meta::pure::extension::Extension[*] | + [ + d:meta::relational::metamodel::Database[1] | $d->transformDatabase($extensions) + ]}, + transfers_store_transformConnection2 = {extensions:meta::pure::extension::Extension[*] | + [ + db:meta::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) + ]}, + scan_buildPureModelAsText_getAllElementsFromMapping = {stores : meta::pure::store::Store[*] | + $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) + } + ) +} + +function meta::protocols::pure::v1_33_0::extension::relationalModuleSerializerExtension(): meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension[1] +{ + let dbSpecificExtensions = meta::protocols::pure::v1_33_0::extension::RelationalModule->stereotype('SerializerExtension').modelElements->cast(@meta::pure::metamodel::function::Function<{->meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension[1]}>) + ->map(f| $f->eval())->sortBy(e| $e.module); + let transformDatabaseConnection = $dbSpecificExtensions.transfers_connection_transformDatabaseConnection; + ^meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension( + module = 'relational', + transfers_connection_transformDatabaseConnection = if($transformDatabaseConnection->isNotEmpty(), |$transformDatabaseConnection->toOne(), |[]), + transfers_connection_transformPostProcessors = $dbSpecificExtensions.transfers_connection_transformPostProcessors, + transfers_connection_transformAuthenticationStrategy = $dbSpecificExtensions.transfers_connection_transformAuthenticationStrategy, + transfers_connection_transformDatasourceSpecification = $dbSpecificExtensions.transfers_connection_transformDatasourceSpecification, + transfers_connection_transformPostProcessorParameters = $dbSpecificExtensions.transfers_connection_transformPostProcessorParameters, + transfers_milestoning_transformMilestoning = $dbSpecificExtensions.transfers_milestoning_transformMilestoning, + reverse_transfers_typeLookups = $dbSpecificExtensions.reverse_transfers_typeLookups, + reverse_transfers_connection_transformAuthenticationStrategy = $dbSpecificExtensions.reverse_transfers_connection_transformAuthenticationStrategy, + reverse_transfers_connection_transformDatasourceSpecification = $dbSpecificExtensions.reverse_transfers_connection_transformDatasourceSpecification + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultColumn(c: meta::relational::mapping::SQLResultColumn[1]):meta::protocols::pure::v1_33_0::metamodel::executionPlan::SQLResultColumn[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::SQLResultColumn + ( + label = $c.label, + dataType = $c.dataType->isEmpty()->if(|'', |$c.dataType->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::alloyTypeToString()) + ) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformTempTableColumnMetaData(c: meta::relational::mapping::TempTableColumnMetaData[1]):meta::protocols::pure::v1_33_0::metamodel::executionPlan::TempTableColumnMetaData[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::TempTableColumnMetaData + ( + column = $c.column->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultColumn(), + identifierForGetter = $c.identifierForGetter, + parametersForGetter = $c.parametersForGetter + ) +} \ No newline at end of file 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/v1_33_0/invocations/execution_relation_executeInRelationalDb.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/invocations/execution_relation_executeInRelationalDb.pure new file mode 100644 index 00000000000..eeb2d110739 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/invocations/execution_relation_executeInRelationalDb.pure @@ -0,0 +1,44 @@ +// 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. + +import meta::pure::alloy::connections::*; +import meta::alloy::metadataServer::*; +import meta::pure::functions::io::http::*; +import meta::protocols::pure::v1_33_0::invocation::execution::executeInRelationalDb::*; + +function meta::protocols::pure::v1_33_0::invocation::execution::executeInRelationalDb::executeInRelationalDb(sqls:String[*], conn:RelationalDatabaseConnection[1], host:String[1], port:Integer[1], extensions:meta::pure::extension::Extension[*]):Boolean[1] +{ + let conn1= $conn->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) + ->cast(@meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::RelationalDatabaseConnection); + + let input= ^ExecuteInRelationalDbInput(sqls=$sqls, connection = $conn1)->alloyToJSON(); + + let resp= executeHTTPRaw(^URL(host=$host, port=$port , path='/api/pure/v1/utilities/tests/executeInRelationalDb'), + HTTPMethod.POST , + 'application/json', + $input + ); + + if($resp.statusCode != 200, + | println($resp.statusCode->toString()+' \''+$resp.entity->replace('\\n', '\n')->replace('\\t', '')+'\''); false; , + | println($resp.entity->toOne()->toString());true; + ); +} + + +Class meta::protocols::pure::v1_33_0::invocation::execution::executeInRelationalDb::ExecuteInRelationalDbInput +{ + connection : meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1]; + sqls : String[*]; +} \ No newline at end of file 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/v1_33_0/invocations/execution_relational_execute.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/invocations/execution_relational_execute.pure new file mode 100644 index 00000000000..eff5a17da6b --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/invocations/execution_relational_execute.pure @@ -0,0 +1,340 @@ +// 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. + +###Pure +import meta::pure::mapping::aggregationAware::*; +import meta::json::*; +import meta::pure::extension::*; +import meta::relational::extension::*; +import meta::protocols::*; +import meta::pure::mapping::modelToModel::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::context::*; +import meta::pure::router::routing::*; +import meta::protocols::pure::v1_33_0::invocation::execution::execute::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::runtime::*; +import meta::pure::functions::io::http::*; +import meta::pure::runtime::*; +import meta::pure::mapping::*; +import meta::pure::milestoning::*; +import meta::alloy::metadataServer::*; +import meta::relational::milestoning::*; +import meta::relational::mapping::*; +import meta::relational::metamodel::*; + +function meta::protocols::pure::v1_33_0::invocation::execution::execute::processTDSResult(r:meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::RelationalTDSResult[1], extensions:meta::pure::extension::Extension[*]) : Pair,List>[1] +{ + let res = ^TabularDataSet + ( + columns = $r.builder->cast(@meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::TDSBuilder).columns + ->map({c | + ^TDSColumn + ( + name = $c.name, + documentation = $c.doc, + type = $c.type->toOne()->stringToDataType(), + offset = $r.result.columns->indexOf($c.name) + )}) + ); + + let trans = $r.builder->cast(@meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::TDSBuilder).columns.type->map(c|meta::protocols::pure::v1_33_0::invocation::execution::execute::dataTypeTransformer($c)); + + let ra = range($r.result.columns->size()); + + let newRows = $r.result.rows + ->map({r | + let vals = $r.values; + ^TDSRow + ( + parent = $res, + values = $ra->map(i | let v = $vals->at($i); + if($v->instanceOf(TDSNull), + | $v, + | $trans->at($i)->eval($v); + ); + ) + ); + }); + $res->mutateAdd('rows', $newRows); + ^Pair, List>(first=^List(values=$res), second=^List(values=$r.activities->transformActivities($extensions))); +} + + + +function meta::protocols::pure::v1_33_0::invocation::execution::execute::processDataTypeResult(r:meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::RelationalDataTypeResult[1], extensions:meta::pure::extension::Extension[*]) : Pair,List>[1] +{ + let type = $r.builder->cast(@meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::DataTypeBuilder).type; + let trans = meta::protocols::pure::v1_33_0::invocation::execution::execute::dataTypeTransformer($type); + ^Pair, List>(first=^List(values=$r.result.rows.values->map(v|$trans->eval($v))), second=^List(values=$r.activities->transformActivities($extensions))); + +} + +function meta::protocols::pure::v1_33_0::invocation::execution::execute::processRelationalClassResult(r:meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::RelationalClassResult[1], m:Mapping[1], pureRuntime:Runtime[1], context:ExecutionContext[0..1], extensions:meta::pure::extension::Extension[*]) : Pair,List>[1] +{ + let builder = $r.builder->cast(@ meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::ClassBuilder); + + let retClass = $builder.class->pathToElement()->cast(@Class); + + let setImplementations = $r.builder->cast(@meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::ClassBuilder).classMappings.setImplementationId->map( + s:String[1]|$m->classMappingById($s) + )->cast(@RootRelationalInstanceSetImplementation); + + let setImplMap = $setImplementations->map(set | pair($set.id, pair($set, meta::pure::milestoning::getTemporalMilestoningStrategy($set.class)->isNotEmpty() && meta::pure::milestoning::getTemporalMilestoningStrategy($set.class)->toOne()->meta::pure::milestoning::expandToSingleTemporalStrategies()->forAll(s| $s->meta::relational::milestoning::relationalElementCanSupportStrategy($set->mainTable())))))->newMap(); + + let exeCtx = if($context->isEmpty(), | ^ExecutionContext(), | $context->toOne()); + let precas = $setImplementations->map(set | pair($set.id, precaForRelationalSetImpl($set, $m, $pureRuntime, $exeCtx, $extensions)))->newMap(); + let objects = $r.objects->map({obj | + let reference = $obj->get('alloyStoreObjectReference$')->toOne()->cast(@String)->decodeAndParseAlloyObjectReference()->cast(@meta::protocols::pure::v1_33_0::metamodel::objectReference::AlloyRelationalStoreObjectReference); + let setId = $reference.setId; + let preca = $precas->get($setId)->toOne(); + + let pkMap = $reference.pkMap; + let pks = $preca.pks->size()->range()->map({pkId | + let key = $preca.pks->at($pkId); + let jsonKey = 'pk$_' + $pkId->toString() + if($reference.operationResolvedSetsId->size() == 1, | '', | '_' + $reference.operationResolvedSetsId->indexOf($setId)->toString()); + if($key.type->isNotEmpty() && ($key.type->toOne()->instanceOf(meta::relational::metamodel::datatype::Timestamp) || $key.type->toOne()->instanceOf(meta::relational::metamodel::datatype::Date)), + | parseDate($pkMap->get($jsonKey)->toOne()->cast(@String)), + | $pkMap->get($jsonKey)->toOne() + ); + }); + let keyInformation = ^KeyInformation ( + static = $preca.staticMappingInstanceData, + pk = $pks, + sourceConnection = $preca.sourceConnection, + buildMethod = BuildMethod.TypeQuery + ); + + $preca.type->dynamicNew( + $preca.propMap->map({precav| + let v = $obj->get($precav.property.name->toOne()); + ^KeyValue( + key = $precav.property.name->toOne(), + value = if($v->isEmpty() || $v == 'NULL' || $v->toOne()->instanceOf(TDSNull), + | [], + | if($precav.property->functionReturnType().rawType == Date, + | parseDate($v->toOne()->toString()), + | $precav.transform->eval($v->toOne()) + ) + )->match([ + l : List[*] | $l.values, + a : Any[*] | $a + ]) + ); + })->concatenate($preca.addMilestoningProperties->if(|$preca.type.rawType->toOne()->cast(@Class).properties->filter(p| $p->genericType().typeArguments->at(1).rawType->toOne()->instanceOf(meta::pure::metamodel::type::DataType) && $p->meta::pure::milestoning::hasGeneratedMilestoningPropertyStereotype())->map({prop | + let v = $obj->get($prop.name->toOne()); + ^KeyValue( + key = $prop.name->toOne(), + value = if($v->isEmpty() || $v == 'NULL' || $v->toOne()->instanceOf(TDSNull), + | [], + | if($prop->functionReturnType().rawType == Date, + | parseDate($v->toOne()->toString()), + | $v->toOne() + ) + ) + ); + }), |[])), + meta::pure::mapping::xStore::crossGetterOverrideToOne_Any_1__Property_1__Any_$0_1$_, + meta::pure::mapping::xStore::crossGetterOverrideToMany_Any_1__Property_1__Any_MANY_, + $keyInformation, + $exeCtx->getConstraintsManager() + ); + }); + ^Pair, List>(first=^List(values=$objects), second=^List(values=$r.activities->transformActivities($extensions))); +} + + + + +function meta::protocols::pure::v1_33_0::invocation::execution::execute::generateAlloyObjectReference(mapping:Mapping[1], rootSetId:String[1], setId:String[1], runtime:Runtime[1], pkMap:Map[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::objectReference::AlloyObjectReference[1] +{ + let sets = $mapping->classMappingById($rootSetId)->resolveOperation($mapping); + assert($sets->size() >= 1, | 'No Set Implementation found for setId : ' + $rootSetId + ', in mapping : ' + $mapping->elementToPath()); + + let set = $sets->filter(s | $s.id == $setId)->toOne(); + + $set->match([ + r: RelationalInstanceSetImplementation[1] | meta::protocols::pure::v1_33_0::invocation::execution::execute::generateAlloyRelationalStoreObjectReference($mapping, $r, $sets, $runtime, $pkMap, $extensions);, + s: SetImplementation[1] | fail('Not Supported Yet!!'); ^meta::protocols::pure::v1_33_0::metamodel::objectReference::AlloyObjectReference(type = meta::protocols::pure::v1_33_0::metamodel::objectReference::AlloyObjectReferenceType.Relational, pathToMapping='', setId=''); + ]); +} + +function meta::protocols::pure::v1_33_0::invocation::execution::execute::generateAlloyRelationalStoreObjectReference(mapping:Mapping[1], set:RelationalInstanceSetImplementation[1], sets:SetImplementation[*], runtime:Runtime[1], pkMap:Map[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::objectReference::AlloyRelationalStoreObjectReference[1] +{ + let store = $set.stores->toOne(); + let databaseConnection = $runtime->connectionByElement($store->toOne())->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->cast(@meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::DatabaseConnection); + + let setIdx = if($sets->size() == 1, | '', | '_' + $sets->indexOf($set)->toString()); + let transformedPkMap = meta::relational::mapping::resolvePrimaryKeysNames($set->cast(@RelationalInstanceSetImplementation), $pkMap, $setIdx, true, $extensions); + + ^meta::protocols::pure::v1_33_0::metamodel::objectReference::AlloyRelationalStoreObjectReference( + type = meta::protocols::pure::v1_33_0::metamodel::objectReference::AlloyObjectReferenceType.Relational, + pathToMapping = $mapping->elementToPath(), + setId = $set.id, + operationResolvedSetsId = $sets.id, + databaseConnection = $databaseConnection, + pkMap = $transformedPkMap); +} + +function meta::protocols::pure::v1_33_0::invocation::execution::execute::decodeAndParseAlloyObjectReference(ref : String[1]):meta::protocols::pure::v1_33_0::metamodel::objectReference::AlloyObjectReference[1] +{ + let parsedObjectRef = meta::alloy::objectReference::decodeAndParseAlloyObjectReference($ref); + let type = $parsedObjectRef->get('type')->cast(@String)->toOne(); + + if($type->toLower() == 'relational', + | meta::protocols::pure::v1_33_0::invocation::execution::execute::getAlloyRelationalStoreObjectReference($parsedObjectRef), + | fail('Not Supported Yet!!'); + ^meta::protocols::pure::v1_33_0::metamodel::objectReference::AlloyObjectReference + ( + type = meta::protocols::pure::v1_33_0::metamodel::objectReference::AlloyObjectReferenceType.Relational, + pathToMapping = '', + setId = '' + );); +} + +function meta::protocols::pure::v1_33_0::invocation::execution::execute::getAlloyRelationalStoreObjectReference(parsedObjectRef : Map[1]):meta::protocols::pure::v1_33_0::metamodel::objectReference::AlloyRelationalStoreObjectReference[1] +{ + let databaseConnection = $parsedObjectRef->get('databaseConnection')->cast(@String)->toOne() + ->meta::json::parseJSON()->cast(@JSONObject) + ->map(o | ^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::DatabaseConnection(_type = $o->getValue('_type')->cast(@JSONString).value->toOne(), + element = $o->getValue('element')->cast(@JSONString).value->toOne(), + type = $o->getValue('type')->cast(@JSONString).value->toOne())); + ^meta::protocols::pure::v1_33_0::metamodel::objectReference::AlloyRelationalStoreObjectReference + ( + type = meta::protocols::pure::v1_33_0::metamodel::objectReference::AlloyObjectReferenceType.Relational, + pathToMapping = $parsedObjectRef->get('pathToMapping')->cast(@String)->toOne(), + operationResolvedSetsId = $parsedObjectRef->get('operationResolvedSetsId')->cast(@List).values, + setId = $parsedObjectRef->get('setId')->cast(@String)->toOne(), + databaseConnection = $databaseConnection, + pkMap = $parsedObjectRef->get('pkMap')->cast(@Map)->toOne() + ); +} + +function meta::protocols::pure::v1_33_0::invocation::execution::execute::getAlloyObjectReferenceAsMap(ref : String[1]):Map[1] +{ + let objReference = meta::protocols::pure::v1_33_0::invocation::execution::execute::decodeAndParseAlloyObjectReference($ref); + + $objReference->match([ + r:meta::protocols::pure::v1_33_0::metamodel::objectReference::AlloyRelationalStoreObjectReference[1] | + [ + pair('type', $r.type->toString()), + pair('pathToMapping', $r.pathToMapping), + pair('operationResolvedSetsId', $r.operationResolvedSetsId->list()), + pair('setId', $r.setId), + pair('databaseConnection', $r.databaseConnection), + pair('pkMap', $r.pkMap) + ]->newMap();, + o:meta::protocols::pure::v1_33_0::metamodel::objectReference::AlloyObjectReference[1] | fail('Not Supported Yet!!'); ^Map(); + ]); +} + +function meta::protocols::pure::v1_33_0::invocation::execution::execute::transformActivities(activities:meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::ExecutionActivity[*], extensions:meta::pure::extension::Extension[*]):meta::pure::mapping::Activity[*] +{ + $activities->map(activity|$activity->match([ + a:meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::AggregationAwareActivity[1] | ^AggregationAwareActivity(rewrittenQuery = $a.rewrittenQuery), + r:meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::RelationalExecutionActivity[1] | ^RelationalActivity(sql=$r.sql, comment=$r.comment) + ]->concatenate($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).transfers_execute_transformActivity)->toOneMany())) +} + +function <> meta::protocols::pure::v1_33_0::invocation::execution::execute::precaForRelationalSetImpl(setImplementation:RootRelationalInstanceSetImplementation[1], mapping: Mapping[1], runtime: Runtime[1], exeCtx: ExecutionContext[1], extensions:meta::pure::extension::Extension[*]):RelationalSetImplPrecalc[1] +{ + let propertyMappings = $setImplementation->allPropertyMappings() + ->filter(pm|$pm.localMappingProperty==false && + $pm.property->genericType().typeArguments->at(1).rawType->toOne()->instanceOf(meta::pure::metamodel::type::DataType) + ); + + let ps = $propertyMappings->map(p|^meta::protocols::pure::v1_33_0::invocation::execution::execute::PropMapPrecalc( + property = $p.property, + transform = if ($p->cast(@RelationalPropertyMapping).transformer->isEmpty(), + |let type = $p.property->functionReturnType().rawType->toOne(); + if ($type == DateTime, + |{z:Any[1]|$z->cast(@String)->parseDate()}, + |if ($type == StrictDate, + |{z:Any[1]|$z->cast(@String)->parseDate()->datePart()->cast(@StrictDate)}, + |{z:Any[1]|$z} + ) + );, + |{z:Any[1]|extractEnumValue( + $p.property->functionReturnType().rawType->toOne()->cast(@Enumeration), + $z->toString() + )} + ) + ) + ); + ^RelationalSetImplPrecalc + ( + type = ^GenericType(rawType = $setImplementation.class), + staticMappingInstanceData = ^meta::pure::mapping::StaticMappingInstanceData + ( + runtime = $runtime, + mapping = $mapping, + systemMapping = meta::relational::contract::relationalStoreContract(), + setImplementation = $setImplementation, + exeCtx = $exeCtx, + debug = noDebug(), + extensions = $extensions + ), + pks = if($setImplementation->meta::relational::functions::pureToSqlQuery::getGroupBy()->isEmpty() && ($setImplementation->meta::relational::functions::pureToSqlQuery::getDistinct()->isEmpty() || $setImplementation->meta::relational::functions::pureToSqlQuery::getDistinct()->toOne() == false), + | $setImplementation->resolvePrimaryKey()->map(pk | ^RelationalSetPrimaryKey(element = $pk, type = $pk->meta::relational::functions::typeInference::inferRelationalType())), + | []), + sourceConnection = $runtime->connectionByElement($setImplementation->meta::pure::router::clustering::getResolvedStore($mapping)->toOne())->toOne(), + propMap = $ps, + addMilestoningProperties = meta::pure::milestoning::getTemporalMilestoningStrategy($setImplementation.class)->isNotEmpty() && meta::pure::milestoning::getTemporalMilestoningStrategy($setImplementation.class)->toOne()->meta::pure::milestoning::expandToSingleTemporalStrategies()->forAll(s| $s->meta::relational::milestoning::relationalElementCanSupportStrategy($setImplementation->mainTable())) + ); +} + +function <> meta::protocols::pure::v1_33_0::invocation::execution::execute::dataTypeTransformer(c:String[1]):Function<{Any[1]->Any[1]}>[1] +{ + if($c == 'Float' || $c == 'Number', + |{a:Any[1]|$a->cast(@Number)*1.0}, + |if ($c == 'Decimal', + |{a:Any[1]|let e = $a->cast(@Number)*1.0; $e->toDecimal();}, + |if ($c == 'StrictDate', + |{a:Any[1]|$a->cast(@String)->parseDate()->datePart()->cast(@StrictDate)}, + |if ($c == 'Date' || $c == 'DateTime', + |{a:Any[1]|$a->cast(@String)->parseDate()}, + |if ($c == 'Boolean', + |{a:Any[1]|if($a=='false'||$a==false,|false,|true);}, + |if ($c->contains('::'), + |let t = $c->pathToElement()->cast(@Enumeration); + {a:Any[1]|$t->extractEnumValue($a->toString())};, + |{a:Any[1]|$a} + ) + ) + ) + ) + ) + ); +} + +Class <> meta::protocols::pure::v1_33_0::invocation::execution::execute::RelationalSetImplPrecalc +{ + type : GenericType[1]; + staticMappingInstanceData: meta::pure::mapping::StaticMappingInstanceData[1]; + propMap : PropMapPrecalc[*]; + sourceConnection : Connection[1]; + pks: meta::protocols::pure::v1_33_0::invocation::execution::execute::RelationalSetPrimaryKey[*]; + addMilestoningProperties : Boolean[1]; +} + +Class meta::protocols::pure::v1_33_0::invocation::execution::execute::RelationalSetPrimaryKey +{ + element : meta::relational::metamodel::RelationalOperationElement[1]; + type : meta::relational::metamodel::datatype::DataType[0..1]; +} + +Class <> meta::protocols::pure::v1_33_0::invocation::execution::execute::PropMapPrecalc +{ + property : Property[1]; + transform : Function<{Any[1]->Any[1]}>[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/v1_33_0/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/v1_33_0/invocations/execution_relational_testConnection.pure new file mode 100644 index 00000000000..e7902265fa8 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/invocations/execution_relational_testConnection.pure @@ -0,0 +1,203 @@ +// 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. + +import meta::pure::alloy::connections::*; +import meta::relational::runtime::*; +import meta::protocols::pure::v1_33_0::invocation::execution::testConnection::*; +import meta::json::*; +import meta::pure::functions::io::http::*; +import meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::*; +import meta::protocols::pure::v1_33_0::metamodel::domain::*; +import meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::*; +import meta::protocols::pure::v1_33_0::metamodel::runtime::*; +import meta::relational::metamodel::*; +import meta::pure::functions::meta::*; +import meta::protocols::pure::v1_33_0::transformation::toPureGraph::store::relational::*; +import meta::protocols::pure::v1_33_0::transformation::toPureGraph::connection::*; +import meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::*; +import meta::protocols::pure::v1_33_0::metamodel::store::relational::element::*; +import meta::protocols::pure::v1_33_0::transformation::toPureGraph::model::*; + +function meta::protocols::pure::v1_33_0::invocation::execution::testConnection::getTestConnection(dbType:DatabaseType[1], host:String[1], port:Integer[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[0..1] +{ + let resp= executeHTTPRaw(^URL(host=$host, port=$port , path='/api/pure/v1/utilities/tests/connections/'+ $dbType->toString()), + HTTPMethod.GET , + 'application/json', + [] + ); + + if($resp.statusCode != 200, + | println($resp.statusCode->toString()+' \''+$resp.entity->replace('\\n', '\n')->replace('\\t', '')+'\''), + | + let res = $resp.entity->toOne()->toString(); + $res -> meta::protocols::pure::v1_33_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection($extensions); + ); +} + + +function meta::protocols::pure::v1_33_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection(connectionJSON:String[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[0..1] +{ + let protocolConn = meta::json::fromJSON($connectionJSON, + meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::RelationalDatabaseConnection , + ^JSONDeserializationConfig( + typeKeyName='_type', + failOnUnknownProperties=false , + retainTypeField=true, + typeLookup = $extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension).reverse_transfers_typeLookups->concatenate([ + pair('delegatedKerberos', 'DelegatedKerberosAuthenticationStrategy'), + pair('middleTierUserNamePassword', 'MiddleTierUserNamePasswordAuthenticationStrategy'), + pair('userNamePassword', 'UserNamePasswordAuthenticationStrategy'), + pair('h2Default', 'DefaultH2AuthenticationStrategy'), + pair('test', 'TestDatabaseAuthenticationStrategy'), + pair('gcpApplicationDefaultCredentials', 'GCPApplicationDefaultCredentialsAuthenticationStrategy'), + pair('apiToken', 'ApiTokenAuthenticationStrategy'), + pair('gcpWorkloadIdentityFederation','GCPWorkloadIdentityFederationAuthenticationStrategy'), + + pair('static', 'StaticDatasourceSpecification'), + pair('h2Embedded', 'EmbeddedH2DatasourceSpecification'), + pair('h2Local', 'LocalH2DatasourceSpecification(') + ]) + ) + ); + let pureConn = $protocolConn->meta::protocols::pure::v1_33_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection($extensions); + $pureConn->cast(@meta::pure::alloy::connections::RelationalDatabaseConnection); +} + + +function meta::protocols::pure::v1_33_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection(conn : meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1] , extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[1] +{ + let element = if($conn.element=='', // legend test server sends '' as element for testConnections , as store is not known before hand + | ^Database(name='dummyDB'), + | $conn.element->pathToElement() + ); + + let type = extractEnumValue(meta::relational::runtime::DatabaseType, $conn.type); + + ^meta::pure::alloy::connections::RelationalDatabaseConnection( + timeZone = $conn.timeZone, + quoteIdentifiers = $conn.quoteIdentifiers, + element = $element, + type = $type, + datasourceSpecification = $conn.datasourceSpecification->meta::protocols::pure::v1_33_0::transformation::toPureGraph::connection::transformDatasourceSpecification($extensions), + authenticationStrategy = $conn.authenticationStrategy->meta::protocols::pure::v1_33_0::transformation::toPureGraph::connection::transformAuthenticationStrategy($extensions), + postProcessors = $conn.postProcessors->meta::protocols::pure::v1_33_0::transformation::toPureGraph::connection::transformPostProcessors($extensions) + ); +} + +function meta::protocols::pure::v1_33_0::transformation::toPureGraph::connection::transformAuthenticationStrategy(a: meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::AuthenticationStrategy[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy[1] +{ + $a->match($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension).reverse_transfers_connection_transformAuthenticationStrategy->concatenate([ + d:meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::DelegatedKerberosAuthenticationStrategy[1] | + ^meta::pure::alloy::connections::alloy::authentication::DelegatedKerberosAuthenticationStrategy( + // _type = 'delegatedKerberos', + serverPrincipal = $d.serverPrincipal + ), + mup:meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::MiddleTierUserNamePasswordAuthenticationStrategy[1] | + ^meta::pure::alloy::connections::alloy::authentication::MiddleTierUserNamePasswordAuthenticationStrategy( + // _type = 'middleTierUsernamePassword', + vaultReference = $mup.vaultReference + ), + u:meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::UserNamePasswordAuthenticationStrategy[1] | + ^meta::pure::alloy::connections::alloy::authentication::UserNamePasswordAuthenticationStrategy( + // _type = 'userNamePassword', + baseVaultReference = $u.baseVaultReference, + userNameVaultReference = $u.userNameVaultReference, + passwordVaultReference = $u.passwordVaultReference + ), + d:meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::DefaultH2AuthenticationStrategy[1] | + ^meta::pure::alloy::connections::alloy::authentication::DefaultH2AuthenticationStrategy( + // _type = 'h2Default' + ), + t:meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::TestDatabaseAuthenticationStrategy[1] | + ^meta::pure::alloy::connections::alloy::authentication::TestDatabaseAuthenticationStrategy( + // _type = 'test' + ), + b:meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::GCPApplicationDefaultCredentialsAuthenticationStrategy[1] | + ^meta::pure::alloy::connections::alloy::authentication::GCPApplicationDefaultCredentialsAuthenticationStrategy( + // _type = 'gcpApplicationDefaultCredentials' + ), + l:meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::ApiTokenAuthenticationStrategy[1] | + ^meta::pure::alloy::connections::alloy::authentication::ApiTokenAuthenticationStrategy( + // _type = 'apiToken', + apiToken = $l.apiToken + ), + b:meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::GCPWorkloadIdentityFederationAuthenticationStrategy[1] | + ^meta::pure::alloy::connections::alloy::authentication::GCPWorkloadIdentityFederationAuthenticationStrategy( + // _type = 'gcpWorkloadIdentityFederationWithAWS', + serviceAccountEmail = $b.serviceAccountEmail, + additionalGcpScopes = $b.additionalGcpScopes + ) + ])->toOneMany()); +} + +function meta::protocols::pure::v1_33_0::transformation::toPureGraph::connection::transformDatasourceSpecification(ds: meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::DatasourceSpecification[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::alloy::specification::DatasourceSpecification[1] +{ + $ds->match($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension).reverse_transfers_connection_transformDatasourceSpecification->concatenate([ + s:meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::StaticDatasourceSpecification[1] | + ^meta::pure::alloy::connections::alloy::specification::StaticDatasourceSpecification( + // _type = 'static', + host = $s.host, + port = $s.port, + databaseName = $s.databaseName + ), + e:meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::EmbeddedH2DatasourceSpecification[1] | + ^meta::pure::alloy::connections::alloy::specification::EmbeddedH2DatasourceSpecification( + // _type = 'h2Embedded', + databaseName = $e.databaseName, + directory = $e.directory, + autoServerMode = $e.autoServerMode + ), + l:meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::LocalH2DatasourceSpecification[1] | + ^meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification( + // _type = 'h2Local', + testDataSetupCsv = $l.testDataSetupCsv, + testDataSetupSqls = $l.testDataSetupSqls + ) + ])->toOneMany()); +} + +function meta::protocols::pure::v1_33_0::transformation::toPureGraph::connection::transformPostProcessors(processors:meta::protocols::pure::v1_33_0::metamodel::store::relational::postProcessor::PostProcessor[*], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::PostProcessor[*] +{ + $processors->map(processor | + $processor->match([ + m:meta::protocols::pure::v1_33_0::metamodel::store::relational::postProcessor::MapperPostProcessor[1] | ^meta::pure::alloy::connections::MapperPostProcessor( + // _type = 'mapper', + mappers = transformPostProcessorMappers($m.mappers)) + ] + ) + ); +} + +function meta::protocols::pure::v1_33_0::transformation::toPureGraph::connection::transformPostProcessorMappers(mappers:meta::protocols::pure::v1_33_0::metamodel::store::relational::postProcessor::Mapper[*]):meta::pure::alloy::connections::Mapper[*] +{ + $mappers->map(mapper | + $mapper->match([ + t:meta::protocols::pure::v1_33_0::metamodel::store::relational::postProcessor::TableNameMapper[1] | ^meta::pure::alloy::connections::TableNameMapper( + // _type = 'table', + schema = ^meta::pure::alloy::connections::SchemaNameMapper( + // _type = 'schema', + from = $t.schema.from, + to = $t.schema.to + ), + from = $t.from, + to = $t.to + ), + s:meta::protocols::pure::v1_33_0::metamodel::store::relational::postProcessor::SchemaNameMapper[1] | ^meta::pure::alloy::connections::SchemaNameMapper( + // _type = 'schema', + from = $s.from, + to = $s.to + ) + ]) + ) +} \ No newline at end of file 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/v1_33_0/invocations/execution_relational_testData.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/invocations/execution_relational_testData.pure new file mode 100644 index 00000000000..dbeae333f2e --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/invocations/execution_relational_testData.pure @@ -0,0 +1,299 @@ +// 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. + +###Pure +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::context::*; +import meta::protocols::pure::v1_33_0::invocation::execution::execute::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::runtime::*; +import meta::pure::functions::io::http::*; +import meta::pure::runtime::*; +import meta::pure::mapping::*; +import meta::alloy::metadataServer::*; +import meta::json::*; +import meta::protocols::pure::v1_33_0::invocation::execution::testDataGeneration::*; + +Class meta::protocols::pure::v1_33_0::invocation::execution::testDataGeneration::SeedDataGenerationInput +{ + clientVersion : String[1]; + function : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[1]; + mapping : String[1]; + runtime : meta::protocols::pure::v1_33_0::metamodel::Runtime[1]; + context : meta::protocols::pure::v1_33_0::metamodel::ExecutionContext[0..1]; + model : meta::protocols::pure::v1_33_0::metamodel::PureModelContext[1]; + parameters : Any[*]; +} + +Class meta::protocols::pure::v1_33_0::invocation::execution::testDataGeneration::TestDataGenerationWithSeedInput +{ + clientVersion : String[1]; + function : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[1]; + mapping : String[1]; + runtime : meta::protocols::pure::v1_33_0::metamodel::Runtime[1]; + context : meta::protocols::pure::v1_33_0::metamodel::ExecutionContext[0..1]; + model : meta::protocols::pure::v1_33_0::metamodel::PureModelContext[1]; + hashStrings : Boolean[0..1]; + tableRowIdentifiers : meta::protocols::pure::v1_33_0::metamodel::testDataGeneration::TableRowIdentfiiers[*]; +} + +Class meta::protocols::pure::v1_33_0::invocation::execution::testDataGeneration::TestDataGenerationWithDefaultSeedInput +{ + clientVersion : String[1]; + function : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Lambda[1]; + mapping : String[1]; + runtime : meta::protocols::pure::v1_33_0::metamodel::Runtime[1]; + context : meta::protocols::pure::v1_33_0::metamodel::ExecutionContext[0..1]; + model : meta::protocols::pure::v1_33_0::metamodel::PureModelContext[1]; + parameters : Any[*]; + hashStrings : Boolean[0..1]; +} + +function meta::protocols::pure::v1_33_0::invocation::execution::testDataGeneration::alloyGenerateSeedDataInteractive(f:FunctionDefinition[1], m:Mapping[1], pureRuntime:Runtime[1], context:ExecutionContext[0..1], parameters: Any[*], host:String[1], port:Integer[1], version:String[1], extensions:meta::pure::extension::Extension[*]):String[1] +{ + alloyGenerateSeedData($f, $m, $pureRuntime, $context, $parameters, '-1', $host, $port, $version, ExecutionMode.INTERACTIVE->toString(), $extensions) +} + +function meta::protocols::pure::v1_33_0::invocation::execution::testDataGeneration::alloyGenerateSeedDataSemiInteractive(f:FunctionDefinition[1], m:Mapping[1], pureRuntime:Runtime[1], context:ExecutionContext[0..1], parameters: Any[*], host:String[1], port:Integer[1], version:String[1], extensions:meta::pure::extension::Extension[*]):String[1] +{ + alloyGenerateSeedData($f, $m, $pureRuntime, $context, $parameters, '-1', $host, $port, $version, ExecutionMode.SEMI_INTERACTIVE->toString(), $extensions) +} + +function meta::protocols::pure::v1_33_0::invocation::execution::testDataGeneration::alloyGenerateSeedDataInteractive(f:FunctionDefinition[1], m:Mapping[1], pureRuntime:Runtime[1], context:ExecutionContext[0..1], parameters: Any[*], baseVersion:String[1], host:String[1], port:Integer[1], version:String[1], extensions:meta::pure::extension::Extension[*]):String[1] +{ + alloyGenerateSeedData($f, $m, $pureRuntime, $context, $parameters, $baseVersion, $host, $port, $version, ExecutionMode.INTERACTIVE->toString(), $extensions) +} + +function meta::protocols::pure::v1_33_0::invocation::execution::testDataGeneration::alloyGenerateSeedDataSemiInteractive(f:FunctionDefinition[1], m:Mapping[1], pureRuntime:Runtime[1], context:ExecutionContext[0..1], parameters: Any[*], baseVersion:String[1], host:String[1], port:Integer[1], version:String[1], extensions:meta::pure::extension::Extension[*]):String[1] +{ + alloyGenerateSeedData($f, $m, $pureRuntime, $context, $parameters, $baseVersion, $host, $port, $version, ExecutionMode.SEMI_INTERACTIVE->toString(), $extensions) +} + +function meta::protocols::pure::v1_33_0::invocation::execution::testDataGeneration::alloyGenerateSeedData(f:FunctionDefinition[1], m:Mapping[1], pureRuntime:Runtime[1], context:ExecutionContext[0..1], parameters: Any[*], baseVersion:String[1], host:String[1], port:Integer[1], version:String[1], executionMode:String[1], extensions:meta::pure::extension::Extension[*]):String[1] +{ + let transformedContext = if($context->isNotEmpty(), | $context->toOne()->transformContext($extensions),| []); + let execMode = ExecutionMode->extractEnumValue($executionMode); + + let toOrigin = {m:Mapping[1], p:meta::protocols::Protocol[1] | buildPureModelContextPointer(^meta::protocols::pure::v1_33_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_33_0::metamodel::PackageableElementType.MAPPING, path=$m->elementToPath()), $baseVersion, $p)}; + + let resultJSON = ^meta::protocols::pure::v1_33_0::invocation::execution::testDataGeneration::SeedDataGenerationInput + ( + clientVersion = 'v1_33_0', + function = transformLambda($f, $extensions), + mapping = $m->elementToPath(), + runtime = transformRuntime($pureRuntime, $extensions), + context = $transformedContext, + model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, + |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + ->map(s|$s->findAllStoreIncludes()) + ->removeDuplicates() + ->map(c|^meta::protocols::pure::v1_33_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_33_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); + let mapping = ^meta::protocols::pure::v1_33_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_33_0::metamodel::PackageableElementType.MAPPING,path=$m->elementToPath()); + ^meta::protocols::pure::v1_33_0::metamodel::PureModelContextPointer + ( + _type='pointer', + serializer = ^meta::protocols::Protocol + ( + name='pure', + version = 'v1_33_0' + ), + sdlcInfo = ^meta::protocols::pure::v1_33_0::metamodel::PureSDLC + ( + _type = 'pure', + baseVersion = $baseVersion, + version = 'none', + packageableElementPointers = $stores->concatenate($mapping) + ) + );, + |$m->buildBasePureModelFromMapping($toOrigin, $extensions).second + ), + parameters = $parameters + )->alloyToJSON(); + + let resp = executeHTTPRaw(^URL(host = $host , port=$port, path = '/api/pure/'+$version+'/execution/testDataGeneration/generateSeedData'), + HTTPMethod.POST, + 'application/json', + $resultJSON + ); + assertEq(200, $resp.statusCode, | $resp.statusCode->toString()+' \''+$resp.entity+'\''); + $resp.entity; +} + +function meta::protocols::pure::v1_33_0::invocation::execution::testDataGeneration::alloyGenerateTestDataWithSeedInteractive(f:FunctionDefinition[1], m:Mapping[1], pureRuntime:Runtime[1], context:ExecutionContext[0..1], tableRowIdentifiers: meta::relational::testDataGeneration::TableRowIdentifiers[*], hashStrings: Boolean[0..1], host:String[1], port:Integer[1], version:String[1], extensions:meta::pure::extension::Extension[*]):String[1] +{ + alloyGenerateTestDataWithSeed($f, $m, $pureRuntime, $context, $tableRowIdentifiers, $hashStrings, '-1', $host, $port, $version, ExecutionMode.INTERACTIVE->toString(), $extensions) +} + +function meta::protocols::pure::v1_33_0::invocation::execution::testDataGeneration::alloyGenerateTestDataWithSeedSemiInteractive(f:FunctionDefinition[1], m:Mapping[1], pureRuntime:Runtime[1], context:ExecutionContext[0..1], tableRowIdentifiers: meta::relational::testDataGeneration::TableRowIdentifiers[*], hashStrings: Boolean[0..1], host:String[1], port:Integer[1], version:String[1], extensions:meta::pure::extension::Extension[*]):String[1] +{ + alloyGenerateTestDataWithSeed($f, $m, $pureRuntime, $context, $tableRowIdentifiers, $hashStrings, '-1', $host, $port, $version, ExecutionMode.SEMI_INTERACTIVE->toString(), $extensions) +} + +function meta::protocols::pure::v1_33_0::invocation::execution::testDataGeneration::alloyGenerateTestDataWithSeedInteractive(f:FunctionDefinition[1], m:Mapping[1], pureRuntime:Runtime[1], context:ExecutionContext[0..1], tableRowIdentifiers: meta::relational::testDataGeneration::TableRowIdentifiers[*], hashStrings: Boolean[0..1], baseVersion:String[1], host:String[1], port:Integer[1], version:String[1], extensions:meta::pure::extension::Extension[*]):String[1] +{ + alloyGenerateTestDataWithSeed($f, $m, $pureRuntime, $context, $tableRowIdentifiers, $hashStrings, $baseVersion, $host, $port, $version, ExecutionMode.INTERACTIVE->toString(), $extensions) +} + +function meta::protocols::pure::v1_33_0::invocation::execution::testDataGeneration::alloyGenerateTestDataWithSeedSemiInteractive(f:FunctionDefinition[1], m:Mapping[1], pureRuntime:Runtime[1], context:ExecutionContext[0..1], tableRowIdentifiers: meta::relational::testDataGeneration::TableRowIdentifiers[*], hashStrings: Boolean[0..1], baseVersion:String[1], host:String[1], port:Integer[1], version:String[1], extensions:meta::pure::extension::Extension[*]):String[1] +{ + alloyGenerateTestDataWithSeed($f, $m, $pureRuntime, $context, $tableRowIdentifiers, $hashStrings, $baseVersion, $host, $port, $version, ExecutionMode.SEMI_INTERACTIVE->toString(), $extensions) +} + +function meta::protocols::pure::v1_33_0::invocation::execution::testDataGeneration::alloyGenerateTestDataWithSeed(f:FunctionDefinition[1], m:Mapping[1], pureRuntime:Runtime[1], context:ExecutionContext[0..1], tableRowIdentifiers: meta::relational::testDataGeneration::TableRowIdentifiers[*], hashStrings: Boolean[0..1], baseVersion:String[1], host:String[1], port:Integer[1], version:String[1], executionMode:String[1], extensions:meta::pure::extension::Extension[*]):String[1] +{ + let transformedContext = if($context->isNotEmpty(), | $context->toOne()->transformContext($extensions),| []); + let execMode = ExecutionMode->extractEnumValue($executionMode); + + let toOrigin = {m:Mapping[1], p:meta::protocols::Protocol[1] | buildPureModelContextPointer(^meta::protocols::pure::v1_33_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_33_0::metamodel::PackageableElementType.MAPPING, path=$m->elementToPath()), $baseVersion, $p)}; + + let resultJSON = ^meta::protocols::pure::v1_33_0::invocation::execution::testDataGeneration::TestDataGenerationWithSeedInput + ( + clientVersion = 'v1_33_0', + function = transformLambda($f, $extensions), + mapping = $m->elementToPath(), + runtime = transformRuntime($pureRuntime, $extensions), + context = $transformedContext, + model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, + |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + ->map(s|$s->findAllStoreIncludes()) + ->removeDuplicates() + ->map(c|^meta::protocols::pure::v1_33_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_33_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); + let mapping = ^meta::protocols::pure::v1_33_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_33_0::metamodel::PackageableElementType.MAPPING,path=$m->elementToPath()); + ^meta::protocols::pure::v1_33_0::metamodel::PureModelContextPointer + ( + _type='pointer', + serializer = ^meta::protocols::Protocol + ( + name='pure', + version = 'v1_33_0' + ), + sdlcInfo = ^meta::protocols::pure::v1_33_0::metamodel::PureSDLC + ( + _type = 'pure', + baseVersion = $baseVersion, + version = 'none', + packageableElementPointers = $stores->concatenate($mapping) + ) + );, + |$m->buildBasePureModelFromMapping($toOrigin, $extensions).second + ), + tableRowIdentifiers = $tableRowIdentifiers->map(x | $x->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::testDataGeneration::transformTableRowIdentifiers()), + hashStrings = $hashStrings + )->alloyToJSON(); + + let resp = executeHTTPRaw(^URL(host = $host , port=$port, path = '/api/pure/'+$version+'/execution/testDataGeneration/generateTestData_WithSeed'), + HTTPMethod.POST, + 'application/json', + $resultJSON + ); + assertEq(200, $resp.statusCode, | $resp.statusCode->toString()+' \''+$resp.entity+'\''); + $resp.entity; +} + +function meta::protocols::pure::v1_33_0::invocation::execution::testDataGeneration::alloyGenerateTestDataWithDefaultSeedInteractive(f:FunctionDefinition[1], m:Mapping[1], pureRuntime:Runtime[1], context:ExecutionContext[0..1], hashStrings: Boolean[0..1], parameters: Any[*], host:String[1], port:Integer[1], version:String[1], extensions:meta::pure::extension::Extension[*]):String[1] +{ + alloyGenerateTestDataWithDefaultSeed($f, $m, $pureRuntime, $context, $hashStrings, $parameters, '-1', $host, $port, $version, ExecutionMode.INTERACTIVE->toString(), $extensions) +} + +function meta::protocols::pure::v1_33_0::invocation::execution::testDataGeneration::alloyGenerateTestDataWithDefaultSeedSemiInteractive(f:FunctionDefinition[1], m:Mapping[1], pureRuntime:Runtime[1], context:ExecutionContext[0..1], hashStrings: Boolean[0..1], parameters: Any[*], host:String[1], port:Integer[1], version:String[1], extensions:meta::pure::extension::Extension[*]):String[1] +{ + alloyGenerateTestDataWithDefaultSeed($f, $m, $pureRuntime, $context, $hashStrings, $parameters, '-1', $host, $port, $version, ExecutionMode.SEMI_INTERACTIVE->toString(), $extensions) +} + +function meta::protocols::pure::v1_33_0::invocation::execution::testDataGeneration::alloyGenerateTestDataWithDefaultSeedInteractive(f:FunctionDefinition[1], m:Mapping[1], pureRuntime:Runtime[1], context:ExecutionContext[0..1], hashStrings: Boolean[0..1], parameters: Any[*], baseVersion:String[1], host:String[1], port:Integer[1], version:String[1], extensions:meta::pure::extension::Extension[*]):String[1] +{ + alloyGenerateTestDataWithDefaultSeed($f, $m, $pureRuntime, $context, $hashStrings, $parameters, $baseVersion, $host, $port, $version, ExecutionMode.INTERACTIVE->toString(), $extensions) +} + +function meta::protocols::pure::v1_33_0::invocation::execution::testDataGeneration::alloyGenerateTestDataWithDefaultSeedSemiInteractive(f:FunctionDefinition[1], m:Mapping[1], pureRuntime:Runtime[1], context:ExecutionContext[0..1], hashStrings: Boolean[0..1], parameters: Any[*], baseVersion:String[1], host:String[1], port:Integer[1], version:String[1], extensions:meta::pure::extension::Extension[*]):String[1] +{ + alloyGenerateTestDataWithDefaultSeed($f, $m, $pureRuntime, $context, $hashStrings, $parameters, $baseVersion, $host, $port, $version, ExecutionMode.SEMI_INTERACTIVE->toString(), $extensions) +} + +function meta::protocols::pure::v1_33_0::invocation::execution::testDataGeneration::alloyGenerateTestDataWithDefaultSeed(f:FunctionDefinition[1], m:Mapping[1], pureRuntime:Runtime[1], context:ExecutionContext[0..1], hashStrings: Boolean[0..1], parameters: Any[*], baseVersion:String[1], host:String[1], port:Integer[1], version:String[1], executionMode:String[1], extensions:meta::pure::extension::Extension[*]):String[1] +{ + let transformedContext = if($context->isNotEmpty(), | $context->toOne()->transformContext($extensions),| []); + let execMode = ExecutionMode->extractEnumValue($executionMode); + + let toOrigin = {m:Mapping[1], p:meta::protocols::Protocol[1] | buildPureModelContextPointer(^meta::protocols::pure::v1_33_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_33_0::metamodel::PackageableElementType.MAPPING, path=$m->elementToPath()), $baseVersion, $p)}; + + let resultJSON = ^meta::protocols::pure::v1_33_0::invocation::execution::testDataGeneration::TestDataGenerationWithDefaultSeedInput + ( + clientVersion = 'v1_33_0', + function = transformLambda($f, $extensions), + mapping = $m->elementToPath(), + runtime = transformRuntime($pureRuntime, $extensions), + context = $transformedContext, + model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, + |let stores = $pureRuntime.connections.element->map(element | + $element->match([ + store:meta::pure::store::Store[1] | $store->map(s|$s->findAllStoreIncludes()) + ->removeDuplicates() + ->map(c|^meta::protocols::pure::v1_33_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_33_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath()));, + a:Any[*] | [] + ]); + ); + let mapping = ^meta::protocols::pure::v1_33_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_33_0::metamodel::PackageableElementType.MAPPING,path=$m->elementToPath()); + ^meta::protocols::pure::v1_33_0::metamodel::PureModelContextPointer + ( + _type='pointer', + serializer = ^meta::protocols::Protocol + ( + name='pure', + version = 'v1_33_0' + ), + sdlcInfo = ^meta::protocols::pure::v1_33_0::metamodel::PureSDLC + ( + _type = 'pure', + baseVersion = $baseVersion, + version = 'none', + packageableElementPointers = $stores->concatenate($mapping) + ) + );, + |$m->buildBasePureModelFromMapping($toOrigin, $extensions).second + ), + parameters = $parameters, + hashStrings = $hashStrings + )->alloyToJSON(); + + let resp = executeHTTPRaw(^URL(host = $host , port=$port, path = '/api/pure/'+$version+'/execution/testDataGeneration/generateTestData_WithDefaultSeed'), + HTTPMethod.POST, + 'application/json', + $resultJSON + ); + assertEq(200, $resp.statusCode, | $resp.statusCode->toString()+' \''+$resp.entity+'\''); + $resp.entity; +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::testDataGeneration::transformTableRowIdentifiers(t: meta::relational::testDataGeneration::TableRowIdentifiers[1]):meta::protocols::pure::v1_33_0::metamodel::testDataGeneration::TableRowIdentfiiers[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::testDataGeneration::TableRowIdentfiiers + ( + table = ^meta::protocols::pure::v1_33_0::metamodel::store::relational::element::TablePtr + ( + _type = 'table', + table = $t.table.name, + schema = $t.table.schema.name, + database = $t.table.schema.database ->elementToPath(), + mainTableDb = $t.table.schema.database ->elementToPath() + ), + rowIdentifiers = $t.rowIdentifiers->map({ri | + ^meta::protocols::pure::v1_33_0::metamodel::testDataGeneration::RowIdentifier + ( + columnValuePairs = $ri.columnValuePairs->map(x | ^meta::protocols::pure::v1_33_0::metamodel::testDataGeneration::ColumnValuePair(name = $x.first, value = $x.second)) + ) + }) + ) +} + + 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/v1_33_0/models/executionPlan_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/v1_33_0/models/executionPlan_relational.pure new file mode 100644 index 00000000000..2b72b84e123 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/models/executionPlan_relational.pure @@ -0,0 +1,155 @@ +// 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. + +import meta::protocols::pure::v1_33_0::metamodel::executionPlan::*; + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::SQLExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::ExecutionNode +{ + sqlComment : String[0..1]; + sqlQuery : String[1]; + onConnectionCloseCommitQuery : String[0..1]; + onConnectionCloseRollbackQuery : String[0..1]; + resultColumns : meta::protocols::pure::v1_33_0::metamodel::executionPlan::SQLResultColumn[*]; + connection : meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::DatabaseConnection[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalSaveNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::ExecutionNode +{ + sqlComment : String[0..1]; + sqlQuery : String[1]; + generatedVariableName : String[1]; + onConnectionCloseCommitQuery : String[0..1]; + onConnectionCloseRollbackQuery : String[0..1]; + columnValueGenerators: Map[1]; + connection : meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::DatabaseConnection[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalInstantiationExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::ExecutionNode +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalTdsInstantiationExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalInstantiationExecutionNode +[tdsResultType:$this.resultType->instanceOf(TDSResultType)] +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalClassInstantiationExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalInstantiationExecutionNode +[classResultType:$this.resultType->instanceOf(ClassResultType)] +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalRelationDataInstantiationExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalInstantiationExecutionNode +[relationResultType:$this.resultType->instanceOf(RelationResultType)] +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalDataTypeInstantiationExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalInstantiationExecutionNode +[dataTypeResultType:$this.resultType->instanceOf(DataTypeResultType)] +{ +} + +Class <> meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalGraphFetchExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::graphFetch::LocalGraphFetchExecutionNode +{ + children : RelationalGraphFetchExecutionNode[*]; +} + +Class <> meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalTempTableGraphFetchExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalGraphFetchExecutionNode +{ + tempTableName : String[1]; + columns : SQLResultColumn[*]; + processedTempTableName : String[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalClassQueryTempTableGraphFetchExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalTempTableGraphFetchExecutionNode +{ + tempTableStrategy : TempTableStrategy[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalPrimitiveQueryGraphFetchExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalGraphFetchExecutionNode +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalRootQueryTempTableGraphFetchExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalClassQueryTempTableGraphFetchExecutionNode +{ + batchSize : Integer[0..1]; + checked : Boolean[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalRootListTempTableGraphFetchExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalTempTableGraphFetchExecutionNode +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalCrossRootQueryTempTableGraphFetchExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalClassQueryTempTableGraphFetchExecutionNode +{ + parentTempTableStrategy : TempTableStrategy[0..1]; + parentTempTableName : String[1]; + parentTempTableColumns : SQLResultColumn[*]; + processedParentTempTableName : String[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::TempTableStrategy +{ + _type : String[1]; + createTempTableNode : ExecutionNode[0..1]; + loadTempTableNode : ExecutionNode[0..1]; + dropTempTableNode : ExecutionNode[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::LoadFromTempFileTempTableStrategy extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::TempTableStrategy +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::LoadFromSubQueryTempTableStrategy extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::TempTableStrategy +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::LoadFromResultSetAsValueTuplesTempTableStrategy extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::TempTableStrategy +{ + tupleBatchSize : Integer[0..1]; + quoteCharacterReplacement: String[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationalBlockExecutionNode extends SequenceExecutionNode +{ + finallyExecutionNodes : ExecutionNode[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::CreateAndPopulateTempTableExecutionNode extends ExecutionNode +{ + inputVarNames : String[*]; + tempTableName : String[1]; + tempTableColumnMetaData : meta::protocols::pure::v1_33_0::metamodel::executionPlan::TempTableColumnMetaData[*]; + connection : meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::DatabaseConnection[1]; +} +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::SQLResultColumn +{ + label : String[1]; + dataType : String[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::TempTableColumnMetaData +{ + column : meta::protocols::pure::v1_33_0::metamodel::executionPlan::SQLResultColumn[1]; + identifierForGetter : String[0..1]; + parametersForGetter : Map[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::RelationResultType extends ResultType +{ + relationName : String[1]; + relationType : String[1]; + schemaName : String[1]; + database : String[1]; + columns : meta::protocols::pure::v1_33_0::metamodel::store::relational::Column[*]; +} 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/v1_33_0/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/v1_33_0/models/metamodel_connection.pure new file mode 100644 index 00000000000..bf6b043c3cb --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/models/metamodel_connection.pure @@ -0,0 +1,126 @@ +// 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. + +import meta::protocols::pure::v1_33_0::metamodel::store::relational::element::*; +import meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::*; +import meta::protocols::pure::v1_33_0::metamodel::domain::*; +import meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::*; + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::RelationalDatabaseConnection extends meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::DatabaseConnection +{ + datasourceSpecification:meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::DatasourceSpecification[1]; + authenticationStrategy:meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::AuthenticationStrategy[1]; + postProcessors: meta::protocols::pure::v1_33_0::metamodel::store::relational::postProcessor::PostProcessor[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::DelegatedKerberosAuthenticationStrategy extends meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::AuthenticationStrategy +{ + serverPrincipal: String[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::MiddleTierUserNamePasswordAuthenticationStrategy extends meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::AuthenticationStrategy +{ + vaultReference: String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::UserNamePasswordAuthenticationStrategy extends meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::AuthenticationStrategy +{ + baseVaultReference: String[0..1]; + userNameVaultReference: String[1]; + passwordVaultReference: String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::DefaultH2AuthenticationStrategy extends meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::AuthenticationStrategy +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::ApiTokenAuthenticationStrategy extends meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::AuthenticationStrategy +{ + apiToken:String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::TestDatabaseAuthenticationStrategy extends meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::DefaultH2AuthenticationStrategy +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::GCPApplicationDefaultCredentialsAuthenticationStrategy extends meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::AuthenticationStrategy +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::GCPWorkloadIdentityFederationAuthenticationStrategy extends meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::AuthenticationStrategy +{ + serviceAccountEmail : String[1]; + additionalGcpScopes: String[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::LocalH2DatasourceSpecification extends meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::DatasourceSpecification +{ + testDataSetupCsv:String[0..1]; + testDataSetupSqls:String[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::EmbeddedH2DatasourceSpecification extends meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::DatasourceSpecification +{ + databaseName:String[1]; + directory:String[1]; + autoServerMode:Boolean[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::StaticDatasourceSpecification extends meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::DatasourceSpecification +{ + host: String[1]; + port: Integer[1]; + databaseName: String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::TestDatabaseConnection extends meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::DatabaseConnection +{ + testDataSetupCsv : String[0..1]; + testDataSetupSqls : String[*]; + +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::DatabaseConnection extends meta::protocols::pure::v1_33_0::metamodel::runtime::Connection +{ + type : String[1]; + timeZone : String[0..1]; + quoteIdentifiers : Boolean[0..1]; + postProcessorWithParameter: meta::protocols::pure::v1_33_0::metamodel::store::relational::PostProcessorWithParameter[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::PostProcessorWithParameter +{ + pp:String[1]; + parameters: meta::protocols::pure::v1_33_0::metamodel::store::relational::PostProcessorParameter[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::PostProcessorParameter +{ + _type:String[1]; +} + +Class <> meta::protocols::pure::v1_33_0::metamodel::store::relational::postProcessor::PostProcessor +{ + _type:String[1]; +} + +Class <> meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::AuthenticationStrategy +{ + _type: String[1]; +} + +Class <> meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::DatasourceSpecification +{ + _type: String[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/v1_33_0/models/metamodel_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/v1_33_0/models/metamodel_relational.pure new file mode 100644 index 00000000000..5c37736b853 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/models/metamodel_relational.pure @@ -0,0 +1,357 @@ +// 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. + +import meta::protocols::pure::v1_33_0::metamodel::store::relational::element::*; +import meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::*; +import meta::protocols::pure::v1_33_0::metamodel::domain::*; +import meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::*; + +Class meta::protocols::pure::v1_33_0::metamodel::RelationalExecutionContext extends meta::protocols::pure::v1_33_0::metamodel::ExecutionContext +{ + addDriverTablePkForProject : Boolean[0..1]; + insertDriverTablePkInTempTable : String[0..1]; + useTempTableAsDriver : String[0..1]; + preserveJoinOrder:Boolean[0..1]; + importDataFlow : Boolean[0..1]; + importDataFlowAddFks:Boolean[0..1]; + importDataFlowFkCols : meta::protocols::pure::v1_33_0::metamodel::TableForeignColumns[*]; + importDataFlowImplementationCount : Integer[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::TableForeignColumns +{ + table: TablePtr[1]; + columns: String[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::objectReference::AlloyRelationalStoreObjectReference extends meta::protocols::pure::v1_33_0::metamodel::objectReference::AlloyObjectReference +[ + typeCondition : $this.type == meta::protocols::pure::v1_33_0::metamodel::objectReference::AlloyObjectReferenceType.Relational +] +{ + databaseConnection : meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::DatabaseConnection[1]; + pkMap : Map[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::Database extends meta::protocols::pure::v1_33_0::metamodel::store::Store +{ + schemas : meta::protocols::pure::v1_33_0::metamodel::store::relational::Schema[*]; + joins : meta::protocols::pure::v1_33_0::metamodel::store::relational::Join[*]; + filters : meta::protocols::pure::v1_33_0::metamodel::store::relational::Filter[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::Schema +{ + name : String[1]; + tables : meta::protocols::pure::v1_33_0::metamodel::store::relational::Table[*]; + views : meta::protocols::pure::v1_33_0::metamodel::store::relational::View[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::Relation +{ + columns : meta::protocols::pure::v1_33_0::metamodel::store::relational::Column[*]; + primaryKey : String[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::Milestoning +{ + _type : String[1]; + infinityDate : meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::CDate[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::Table extends meta::protocols::pure::v1_33_0::metamodel::store::relational::Relation +{ + name : String[1]; + milestoning : meta::protocols::pure::v1_33_0::metamodel::store::relational::Milestoning[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::ProcessingMilestoning extends meta::protocols::pure::v1_33_0::metamodel::store::relational::Milestoning +{ + in : String[1]; + out : String[1]; + outIsInclusive : Boolean[1]; + +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::BusinessSnapshotMilestoning extends meta::protocols::pure::v1_33_0::metamodel::store::relational::Milestoning +{ + snapshotDate:String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::BusinessMilestoning extends meta::protocols::pure::v1_33_0::metamodel::store::relational::Milestoning +{ + from : String[1]; + thru : String[1]; + thruIsInclusive : Boolean[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::View extends meta::protocols::pure::v1_33_0::metamodel::store::relational::Relation, meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::RelationalEntityMapping +{ + name : String[1]; + columnMappings : meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::ColumnMapping[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::RelationalEntityMapping +{ + mainTable : meta::protocols::pure::v1_33_0::metamodel::store::relational::element::TablePtr[1]; + distinct : Boolean[1]; + groupBy : meta::protocols::pure::v1_33_0::metamodel::store::relational::element::RelationalElement[*]; + filter : meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::FilterWithJoins[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::RelationalClassMapping extends meta::protocols::pure::v1_33_0::metamodel::mapping::ClassMapping +{ + primaryKey : meta::protocols::pure::v1_33_0::metamodel::store::relational::element::RelationalElement[*]; + propertyMappings : meta::protocols::pure::v1_33_0::metamodel::mapping::PropertyMapping[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::RelationalAssociationMapping extends meta::protocols::pure::v1_33_0::metamodel::mapping::AssociationMapping +{ + propertyMappings : meta::protocols::pure::v1_33_0::metamodel::mapping::PropertyMapping[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::RootRelationalClassMapping extends meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::RelationalClassMapping, meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::RelationalEntityMapping +{ + primaryKey : meta::protocols::pure::v1_33_0::metamodel::store::relational::element::RelationalElement[*]; + propertyMappings : meta::protocols::pure::v1_33_0::metamodel::mapping::PropertyMapping[*]; +} + + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::RelationalPropertyMapping extends meta::protocols::pure::v1_33_0::metamodel::mapping::PropertyMapping +{ + enumMappingId : String[0..1]; + relationalOperation : meta::protocols::pure::v1_33_0::metamodel::store::relational::element::RelationalElement[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::EmbeddedRelationalPropertyMapping extends meta::protocols::pure::v1_33_0::metamodel::mapping::PropertyMapping +{ + id : String[1]; + classMapping : meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::RelationalClassMapping[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::OtherwiseEmbeddedRelationalPropertyMapping extends meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::EmbeddedRelationalPropertyMapping +{ + otherwisePropertyMapping: RelationalPropertyMapping[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::ColumnMapping +{ + name : String[1]; + operation : meta::protocols::pure::v1_33_0::metamodel::store::relational::element::RelationalElement[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::FilterWithJoins +{ + filter : FilterPtr[1]; + joins : JoinPtr[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::FilterPtr +{ + db : String[1]; + name : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::JoinPtr +{ + db : String[1]; + name : String[1]; + joinType : String[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::Column +{ + name : String[1]; + type : meta::protocols::pure::v1_33_0::metamodel::store::relational::DataType[1]; + nullable : Boolean[1]; +} + + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::DataType +{ + _type: String[1]; + +} + + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::BigInt extends meta::protocols::pure::v1_33_0::metamodel::store::relational::DataType +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::SmallInt extends meta::protocols::pure::v1_33_0::metamodel::store::relational::DataType +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::TinyInt extends meta::protocols::pure::v1_33_0::metamodel::store::relational::DataType +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::Integer extends meta::protocols::pure::v1_33_0::metamodel::store::relational::DataType +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::Float extends meta::protocols::pure::v1_33_0::metamodel::store::relational::DataType +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::Real extends meta::protocols::pure::v1_33_0::metamodel::store::relational::DataType +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::Double extends meta::protocols::pure::v1_33_0::metamodel::store::relational::DataType +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::Varchar extends meta::protocols::pure::v1_33_0::metamodel::store::relational::DataType +{ + size: Integer[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::Char extends meta::protocols::pure::v1_33_0::metamodel::store::relational::DataType +{ + size: Integer[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::Varbinary extends meta::protocols::pure::v1_33_0::metamodel::store::relational::DataType +{ + size: Integer[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::Decimal extends meta::protocols::pure::v1_33_0::metamodel::store::relational::DataType +{ + precision : Integer[1]; + scale : Integer[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::Numeric extends meta::protocols::pure::v1_33_0::metamodel::store::relational::DataType +{ + precision : Integer[1]; + scale : Integer[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::Timestamp extends meta::protocols::pure::v1_33_0::metamodel::store::relational::DataType +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::Date extends meta::protocols::pure::v1_33_0::metamodel::store::relational::DataType +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::Bit extends meta::protocols::pure::v1_33_0::metamodel::store::relational::DataType +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::Binary extends meta::protocols::pure::v1_33_0::metamodel::store::relational::DataType +{ + size:Integer[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::Other extends meta::protocols::pure::v1_33_0::metamodel::store::relational::DataType +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::Array extends meta::protocols::pure::v1_33_0::metamodel::store::relational::DataType +{ +} + + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::Join +{ + name : String[1]; + target : String[0..1]; + operation : meta::protocols::pure::v1_33_0::metamodel::store::relational::element::RelationalElement[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::Filter +{ + _type : String[1]; + name : String[1]; + operation : meta::protocols::pure::v1_33_0::metamodel::store::relational::element::RelationalElement[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::element::RelationalElement +{ + _type : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::element::ColumnPtr extends meta::protocols::pure::v1_33_0::metamodel::store::relational::element::RelationalElement +{ + tableAlias : String[1]; + table: meta::protocols::pure::v1_33_0::metamodel::store::relational::element::TablePtr[1]; + column : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::element::ElementWithJoins extends meta::protocols::pure::v1_33_0::metamodel::store::relational::element::RelationalElement +{ + joins : meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::JoinPtr[*]; + relationalElement : meta::protocols::pure::v1_33_0::metamodel::store::relational::element::RelationalElement[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::element::DynamicFunction extends meta::protocols::pure::v1_33_0::metamodel::store::relational::element::RelationalElement +{ + funcName : String[1]; + parameters : meta::protocols::pure::v1_33_0::metamodel::store::relational::element::RelationalElement[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::element::Literal extends meta::protocols::pure::v1_33_0::metamodel::store::relational::element::RelationalElement +{ + value : Any[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::element::LiteralList extends meta::protocols::pure::v1_33_0::metamodel::store::relational::element::RelationalElement +{ + values : meta::protocols::pure::v1_33_0::metamodel::store::relational::element::Literal[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::element::TablePtr extends meta::protocols::pure::v1_33_0::metamodel::store::relational::element::RelationalElement +{ + database : String[1]; + schema : String[1]; + table : String[1]; + mainTableDb: String[1]; + +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::postProcessor::Mapper +{ + _type: String[1]; + from: String[1]; + to: String[1]; +} + +Class <> meta::protocols::pure::v1_33_0::metamodel::store::relational::postProcessor::MapperPostProcessor extends meta::protocols::pure::v1_33_0::metamodel::store::relational::postProcessor::PostProcessor +{ + mappers: meta::protocols::pure::v1_33_0::metamodel::store::relational::postProcessor::Mapper[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::postProcessor::TableNameMapper extends meta::protocols::pure::v1_33_0::metamodel::store::relational::postProcessor::Mapper { + schema: meta::protocols::pure::v1_33_0::metamodel::store::relational::postProcessor::SchemaNameMapper[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::postProcessor::SchemaNameMapper extends meta::protocols::pure::v1_33_0::metamodel::store::relational::postProcessor::Mapper {} + + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::TableNameMapper extends meta::protocols::pure::v1_33_0::metamodel::store::relational::PostProcessorParameter +{ + in:String[1]; + out:String[1]; + schemaMapperIn: String[1]; + schemaMapperOut: String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::relational::SchemaNameMapper extends meta::protocols::pure::v1_33_0::metamodel::store::relational::PostProcessorParameter +{ + in:String[1]; + out:String[1]; +} \ No newline at end of file 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/v1_33_0/models/results_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/v1_33_0/models/results_relational.pure new file mode 100644 index 00000000000..fc9c131a1f3 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/models/results_relational.pure @@ -0,0 +1,34 @@ +// 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. + +Class meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::RelationalClassResult extends meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::Result +{ + objects : Map[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::RelationalTDSResult extends meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::Result +{ + result : meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::Res[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::RelationalDataTypeResult extends meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::Result +{ + result : meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::Res[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::RelationalExecutionActivity extends meta::protocols::pure::v1_33_0::metamodel::invocation::execution::execute::ExecutionActivity +{ + comment : String[0..1]; + sql : String[1]; +} \ No newline at end of file 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/v1_33_0/models/testData_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/v1_33_0/models/testData_relational.pure new file mode 100644 index 00000000000..b8749cdc3b8 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/models/testData_relational.pure @@ -0,0 +1,32 @@ +// 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. + +###Pure +import meta::protocols::*; +Class meta::protocols::pure::v1_33_0::metamodel::testDataGeneration::TableRowIdentfiiers +{ + table : meta::protocols::pure::v1_33_0::metamodel::store::relational::element::TablePtr[1]; + rowIdentifiers : meta::protocols::pure::v1_33_0::metamodel::testDataGeneration::RowIdentifier[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::testDataGeneration::RowIdentifier +{ + columnValuePairs : meta::protocols::pure::v1_33_0::metamodel::testDataGeneration::ColumnValuePair[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::testDataGeneration::ColumnValuePair +{ + name : String[1]; + value : Any[1]; +} \ No newline at end of file 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/v1_33_0/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/v1_33_0/transfers/connection_relational.pure new file mode 100644 index 00000000000..5d1edd142ac --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/transfers/connection_relational.pure @@ -0,0 +1,211 @@ +// 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. + +###Pure +import meta::json::*; +import meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::*; +import meta::protocols::pure::v1_33_0::metamodel::domain::*; +import meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::*; +import meta::protocols::pure::v1_33_0::metamodel::runtime::*; +import meta::relational::metamodel::*; +import meta::pure::functions::meta::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::*; +import meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::*; +import meta::protocols::pure::v1_33_0::metamodel::store::relational::element::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::model::*; + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::DatabaseConnection[1] +{ + let _type = $otherConnection->class()->toString(); + let element = $otherConnection.element->match([d:meta::pure::store::Store[1]|$d->elementToPath(),s:String[1]|$s]); + let type = $otherConnection.type->toString(); + let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::pure::alloy::connections::RelationalDatabaseConnection), + | [], + | $otherConnection.queryPostProcessorsWithParameter->transformPostProcessors($extensions)); + + + let alloyConnection = $otherConnection->match($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension).transfers_connection_transformDatabaseConnection->map(f | $f->eval($_type, $element, $type, $postProcessorsWithParams))->concatenate([ + test:meta::relational::runtime::TestDatabaseConnection[1]| + ^RelationalDatabaseConnection( + _type = 'RelationalDatabaseConnection', + type = $type, + timeZone = $test.timeZone, + quoteIdentifiers = $test.quoteIdentifiers, + element = $element, + datasourceSpecification = ^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::LocalH2DatasourceSpecification( + _type = 'h2Local', + testDataSetupCsv = $test.testDataSetupCsv, + testDataSetupSqls = $test.testDataSetupSqls + ), + authenticationStrategy = ^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::TestDatabaseAuthenticationStrategy( + _type = 'test' + ), + postProcessorWithParameter = $postProcessorsWithParams + ), + relational:meta::pure::alloy::connections::RelationalDatabaseConnection[1] | + let processors = transformPostProcessors($relational.postProcessors, $extensions); + relational($type, $element, $relational.timeZone, $relational.quoteIdentifiers, $processors, $relational.datasourceSpecification, $relational.authenticationStrategy, $extensions);, + dbCon:meta::relational::runtime::DatabaseConnection[1]| + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::DatabaseConnection( + _type = $_type, + timeZone = $dbCon.timeZone, + quoteIdentifiers = $dbCon.quoteIdentifiers, + element = $element, + postProcessorWithParameter = $postProcessorsWithParams, + type = $type) + ])->toOneMany()); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformPostProcessors(processors:meta::pure::alloy::connections::PostProcessor[*], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::store::relational::postProcessor::PostProcessor[*] +{ + $processors->map(processor | + $processor->match([ + m:meta::pure::alloy::connections::MapperPostProcessor[1] | ^meta::protocols::pure::v1_33_0::metamodel::store::relational::postProcessor::MapperPostProcessor( + _type = 'mapper', + mappers = transformPostProcessorMappers($m.mappers)) + ]->concatenate($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension).transfers_connection_transformPostProcessors)->toOneMany()) + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformPostProcessorMappers(mappers:meta::pure::alloy::connections::Mapper[*]):meta::protocols::pure::v1_33_0::metamodel::store::relational::postProcessor::Mapper[*] +{ + $mappers->map(mapper | + $mapper->match([ + t:meta::pure::alloy::connections::TableNameMapper[1] | ^meta::protocols::pure::v1_33_0::metamodel::store::relational::postProcessor::TableNameMapper( + _type = 'table', + schema = ^meta::protocols::pure::v1_33_0::metamodel::store::relational::postProcessor::SchemaNameMapper( + _type = 'schema', + from = $t.schema.from, + to = $t.schema.to + ), + from = $t.from, + to = $t.to + ), + s:meta::pure::alloy::connections::SchemaNameMapper[1] | ^meta::protocols::pure::v1_33_0::metamodel::store::relational::postProcessor::SchemaNameMapper( + _type = 'schema', + from = $s.from, + to = $s.to + ) + ]) + ) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::relational(type:String[1], element:String[1], timeZone:String[0..1], quoteIdentifiers:Boolean[0..1], + processors:meta::protocols::pure::v1_33_0::metamodel::store::relational::postProcessor::PostProcessor[*], + spec:meta::pure::alloy::connections::alloy::specification::DatasourceSpecification[1], + auth:meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy[1], + extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::RelationalDatabaseConnection( + _type = 'RelationalDatabaseConnection', + timeZone = $timeZone, + quoteIdentifiers = $quoteIdentifiers, + element = $element, + type = $type, + datasourceSpecification = $spec->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformDatasourceSpecification($extensions), + authenticationStrategy = $auth->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformAuthenticationStrategy($extensions), + postProcessors = $processors + ); +} + + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformAuthenticationStrategy(a:meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::AuthenticationStrategy[1] +{ + $a->match($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension).transfers_connection_transformAuthenticationStrategy->concatenate([ + d:meta::pure::alloy::connections::alloy::authentication::DelegatedKerberosAuthenticationStrategy[1] | + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::DelegatedKerberosAuthenticationStrategy( + _type = 'delegatedKerberos', + serverPrincipal = $d.serverPrincipal + ), + mup:meta::pure::alloy::connections::alloy::authentication::MiddleTierUserNamePasswordAuthenticationStrategy[1] | + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::MiddleTierUserNamePasswordAuthenticationStrategy( + _type = 'middleTierUserNamePassword', + vaultReference = $mup.vaultReference + ), + u:meta::pure::alloy::connections::alloy::authentication::UserNamePasswordAuthenticationStrategy[1] | + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::UserNamePasswordAuthenticationStrategy( + _type = 'userNamePassword', + baseVaultReference = $u.baseVaultReference, + userNameVaultReference = $u.userNameVaultReference, + passwordVaultReference = $u.passwordVaultReference + ), + d:meta::pure::alloy::connections::alloy::authentication::DefaultH2AuthenticationStrategy[1] | + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::DefaultH2AuthenticationStrategy( + _type = 'h2Default' + ), + l:meta::pure::alloy::connections::alloy::authentication::ApiTokenAuthenticationStrategy[1] | + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::ApiTokenAuthenticationStrategy( + _type = 'apiToken', + apiToken = $l.apiToken + ), + t:meta::pure::alloy::connections::alloy::authentication::TestDatabaseAuthenticationStrategy[1] | + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::TestDatabaseAuthenticationStrategy( + _type = 'test' + ), + b:meta::pure::alloy::connections::alloy::authentication::GCPApplicationDefaultCredentialsAuthenticationStrategy[1] | + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::GCPApplicationDefaultCredentialsAuthenticationStrategy( + _type = 'gcpApplicationDefaultCredentials' + ), + b:meta::pure::alloy::connections::alloy::authentication::GCPWorkloadIdentityFederationAuthenticationStrategy[1] | + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::GCPWorkloadIdentityFederationAuthenticationStrategy( + _type = 'gcpWorkloadIdentityFederation', + serviceAccountEmail = $b.serviceAccountEmail, + additionalGcpScopes = $b.additionalGcpScopes + ) + ])->toOneMany()) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformDatasourceSpecification(ds: meta::pure::alloy::connections::alloy::specification::DatasourceSpecification[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::DatasourceSpecification[1] +{ + $ds->match($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension).transfers_connection_transformDatasourceSpecification->concatenate([ + s:meta::pure::alloy::connections::alloy::specification::StaticDatasourceSpecification[1] | + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::StaticDatasourceSpecification( + _type = 'static', + host = $s.host, + port = $s.port, + databaseName = $s.databaseName + ), + e:meta::pure::alloy::connections::alloy::specification::EmbeddedH2DatasourceSpecification[1] | + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::EmbeddedH2DatasourceSpecification( + _type = 'h2Embedded', + databaseName = $e.databaseName, + directory = $e.directory, + autoServerMode = $e.autoServerMode + ), + l:meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification[1] | + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::specification::LocalH2DatasourceSpecification( + _type = 'h2Local', + testDataSetupCsv = $l.testDataSetupCsv, + testDataSetupSqls = $l.testDataSetupSqls + ) + ])->toOneMany()) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformPostProcessors(postP: meta::relational::runtime::PostProcessorWithParameter[*], extensions:meta::pure::extension::Extension[*]): meta::protocols::pure::v1_33_0::metamodel::store::relational::PostProcessorWithParameter[*] +{ + $postP->map(postprocessor| + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::PostProcessorWithParameter(pp = $postprocessor.postProcessor->elementToPath(), parameters = $postprocessor.parameters->transformPostProcessorParameters($extensions)) + ); +} + + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformPostProcessorParameters(params: meta::relational::runtime::PostProcessorParameter[*], extensions:meta::pure::extension::Extension[*]): meta::protocols::pure::v1_33_0::metamodel::store::relational::PostProcessorParameter[*] +{ + $params->map(param| + $param->match([ + t: meta::relational::postProcessor::TableNameMapper[1]| ^meta::protocols::pure::v1_33_0::metamodel::store::relational::TableNameMapper(_type='tableMapper',in =$t.in, out = $t.out, schemaMapperIn = $t.schemaNameMapper.in, schemaMapperOut = $t.schemaNameMapper.out), + s: meta::relational::postProcessor::SchemaNameMapper[1]| ^meta::protocols::pure::v1_33_0::metamodel::store::relational::SchemaNameMapper(_type='schemaMapper',in =$s.in, out = $s.out ) + ]->concatenate($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension).transfers_connection_transformPostProcessorParameters)->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/v1_33_0/transfers/metamodel_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/v1_33_0/transfers/metamodel_relational.pure new file mode 100644 index 00000000000..9d914617fe5 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/transfers/metamodel_relational.pure @@ -0,0 +1,461 @@ +// 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. + +###Pure +import meta::pure::extension::*; +import meta::relational::extension::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::mapping::modelToModel::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::modelToModel::*; +import meta::pure::mapping::modelToModel::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::csv::*; +import meta::pure::mapping::*; +import meta::relational::mapping::*; +import meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::*; +import meta::relational::metamodel::datatype::*; +import meta::relational::functions::pureToSqlQuery::*; +import meta::relational::metamodel::operation::*; +import meta::relational::metamodel::relation::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::mapping::csv::*; +import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::*; +import meta::relational::metamodel::*; +import meta::pure::store::set::*; + + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformDatabase(db:meta::relational::metamodel::Database[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::store::relational::Database[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::Database + ( + _type = 'relational', + name = $db.name->toOne(), + package = if($db.package->isEmpty(), |[], |$db.package->toOne()->elementToPath()), + schemas = $db.schemas->map(s|$s->transformSchema($db, $extensions)), + joins = $db.joins->map(s|$s->transformJoin($db)), + filters = $db.filters->map(s|$s->transformFilter($db)), + includedStores = $db.includes->map(i|$i->elementToPath()) + ) +} + + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformRootRelationalInstanceSetImplementation(r:RootRelationalInstanceSetImplementation[1], mapping:Mapping[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::RootRelationalClassMapping[1] +{ + let table = $r.mainTableAlias.relationalElement->cast(@NamedRelation); + let schema = $table->match([t:Table[1]|$t.schema,v:View[1]|$v.schema]); + let db = $schema.database; + let storeFromTableAlias = $r.mainTableAlias.database; + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::RootRelationalClassMapping + ( + id = $r.id, + _type = 'relational', + class = $r.class->elementToPath(), + root = $r.root, + extendsClassMappingId = $r.superSetImplementationId, + mappingClass = $r.mappingClass->map(mc|$mc->transformMappingClass($mapping, $extensions)), + mainTable = ^meta::protocols::pure::v1_33_0::metamodel::store::relational::element::TablePtr( + _type = 'table', + table = $table.name, + mainTableDb = if($storeFromTableAlias->isNotEmpty(),|if($db->elementToPath() == $storeFromTableAlias->toOne()->elementToPath(),| $db ,| $storeFromTableAlias->toOne()), | $db)->elementToPath(), + database = $db->elementToPath(), + schema = $schema.name), + distinct = $r.distinct->isTrue(), + groupBy = $r.groupBy.columns->map(c|$c->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformRelationalOperationElement($db)), + filter = if($r.filter->isEmpty(), |[], | ^FilterWithJoins(filter = ^FilterPtr(db=$r.filter.filter.database->toOne()->elementToPath(), name=$r.filter->toOne().filterName), joins = if($r.filter->toOne().joinTreeNode->isEmpty(),|[],|$r.filter->toOne().joinTreeNode->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformJoinTreeNode()))), + primaryKey = $r.primaryKey->map(c|$c->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformRelationalOperationElement($db)), + propertyMappings = $r.propertyMappings->meta::pure::milestoning::excludeRangeMilestoningPropertyMapping()->map(pm|$pm->transformRelationalPropertyMapping($db, $mapping, $extensions)) + ); +} + + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformAggregationAwareSetImplementation(a: meta::pure::mapping::aggregationAware::AggregationAwareSetImplementation[1], mapping:Mapping[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::mapping::AggregationAwareClassMapping[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::mapping::AggregationAwareClassMapping + ( + id = $a.id, + _type = 'aggregationAware', + class = $a.class->elementToPath(), + root = $a.root, + mainSetImplementation = $a.mainSetImplementation->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::mapping::transformSetImplementation($mapping, $extensions), + propertyMappings = $a.propertyMappings->map(pm|$pm->transformPropertyMapping($mapping, $extensions)), + aggregateSetImplementations = $a.aggregateSetImplementations->map(s| $s->transformAggSetImplContainer($mapping, $extensions)), + mappingClass = $a.mappingClass->map(mc|$mc->transformMappingClass($mapping, $extensions)) + + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformAggSetImplContainer(a: meta::pure::mapping::aggregationAware::AggregateSetImplementationContainer[1], mapping:Mapping[1], extensions:meta::pure::extension::Extension[*]): meta::protocols::pure::v1_33_0::metamodel::mapping::AggregateSetImplementationContainer[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::mapping::AggregateSetImplementationContainer + ( + index = $a.index, + setImplementation = $a.setImplementation->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::mapping::transformSetImplementation($mapping, $extensions), + aggregateSpecification = $a.aggregateSpecification->transformAggregateSpecification($extensions) + ) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformAggregateSpecification(a: meta::pure::mapping::aggregationAware::AggregateSpecification[1], extensions:meta::pure::extension::Extension[*]): meta::protocols::pure::v1_33_0::metamodel::mapping::AggregateSpecification[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::mapping::AggregateSpecification + ( + canAggregate = $a.canAggregate, + groupByFunctions = $a.groupByFunctions->transformGroupByFunctionSpec($extensions), + aggregateValues = $a.aggregateValues->transformAggregationFunctionSpecification($extensions) + ) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformGroupByFunctionSpec(gb:meta::pure::mapping::aggregationAware::GroupByFunctionSpecification[*], extensions:meta::pure::extension::Extension[*]): meta::protocols::pure::v1_33_0::metamodel::mapping::GroupByFunctions[*] +{ + $gb->map(g| ^meta::protocols::pure::v1_33_0::metamodel::mapping::GroupByFunctions(groupByFn = $g.groupByFn->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::transformLambda($extensions))) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformAggregationFunctionSpecification(ag:meta::pure::mapping::aggregationAware::AggregationFunctionSpecification[*], extensions:meta::pure::extension::Extension[*]): meta::protocols::pure::v1_33_0::metamodel::mapping::AggregateFunctions[*] +{ + $ag->map(a|^meta::protocols::pure::v1_33_0::metamodel::mapping::AggregateFunctions(mapFn = $a.mapFn->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::transformLambda($extensions), aggregateFn = $a.aggregateFn->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::transformLambda($extensions))) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformRelationalAssociationImplementation(r:RelationalAssociationImplementation[1], mapping:Mapping[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::RelationalAssociationMapping[1] +{ + let db = $r.stores->at(0)->cast(@meta::relational::metamodel::Database); + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::RelationalAssociationMapping + ( + id = $r.id, + _type = 'relational', + stores = $db->elementToPath(), + association = $r.association->elementToPath(), + propertyMappings = $r->allPropertyMappings()->meta::pure::milestoning::excludeRangeMilestoningPropertyMapping()->map(pm|$pm->transformRelationalPropertyMapping($db, $mapping, $extensions)) + ); + +} + + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformEmbeddedRelationalInstanceSetImplementation(r:EmbeddedRelationalInstanceSetImplementation[1], db: meta::relational::metamodel::Database[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::RelationalClassMapping[1] +{ + let mapping = $r.parent; + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::RelationalClassMapping + ( + id = $r.id, + _type = 'embedded', + class = $r.class->elementToPath(), + root = false, + primaryKey = $r.primaryKey->map(c|$c->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformRelationalOperationElement($db->toOne())), + propertyMappings = $r->allPropertyMappings()->meta::pure::milestoning::excludeRangeMilestoningPropertyMapping()->map(pm|$pm->transformRelationalPropertyMapping($db->toOne(), $mapping, $extensions)) + ); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformRelationalPropertyMapping(pm:PropertyMapping[1], topDatabase:meta::relational::metamodel::Database[1], mapping : Mapping[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::mapping::PropertyMapping[1] +{ + $pm->match([ + r:meta::relational::mapping::RelationalPropertyMapping[1]| + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::RelationalPropertyMapping + ( + _type = 'relationalPropertyMapping', + property = $pm.property->createPropertyPtr(), + enumMappingId = $r.transformer->cast(@EnumerationMapping).name, + source = if($pm.property.owner->instanceOf(Association),|$pm.sourceSetImplementationId,|[]), + target = $pm.targetSetImplementationId, + relationalOperation = $r.relationalOperationElement->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformRelationalOperationElement($topDatabase), + localMappingProperty = if ($pm.localMappingProperty->isNotEmpty() && $pm.localMappingProperty->toOne(), + |^meta::protocols::pure::v1_33_0::metamodel::mapping::LocalMappingPropertyInfo + ( + type = $r.localMappingPropertyType->toOne()->elementToPath(), + multiplicity = $r.localMappingPropertyMultiplicity->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity() + ), + |[] + ) + ), + i:InlineEmbeddedSetImplementation[1]| + ^meta::protocols::pure::v1_33_0::metamodel::mapping::InlineEmbeddedPropertyMapping + ( + _type = 'inlineEmbeddedPropertyMapping', + id = $i.id, + property = $pm.property->createPropertyPtr(), + target = $i.id, + setImplementationId = $i.inlineSetImplementationId + ), + o:OtherwiseEmbeddedRelationalInstanceSetImplementation[1]| + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::OtherwiseEmbeddedRelationalPropertyMapping + ( + _type = 'otherwiseEmbeddedPropertyMapping', + id = $o.id, + property = $pm.property->createPropertyPtr(), + target = $o.id, + classMapping = $o->transformEmbeddedRelationalInstanceSetImplementation($topDatabase, $extensions)->cast(@RelationalClassMapping), + otherwisePropertyMapping = $o.otherwisePropertyMapping->transformRelationalPropertyMapping($topDatabase, $mapping, $extensions)->cast(@meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::RelationalPropertyMapping) + ), + e:EmbeddedRelationalInstanceSetImplementation[1]| + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::EmbeddedRelationalPropertyMapping + ( + _type = 'embeddedPropertyMapping', + id = $e.id, + property = $pm.property->createPropertyPtr(), + target = $e.id, + classMapping = $e->transformEmbeddedRelationalInstanceSetImplementation($topDatabase, $extensions)->cast(@RelationalClassMapping) + ), + x:meta::pure::mapping::xStore::XStorePropertyMapping[1] | + $x->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::mapping::xStore::transformXStorePropertyMapping($mapping, $extensions) + ]); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::createPropertyPtr(p:AbstractProperty[1]): meta::protocols::pure::v1_33_0::metamodel::domain::PropertyPtr[1] +{ + let propertyName = $p->meta::pure::milestoning::reverseMilestoningTransforms()->orElse($p).name->toOne(); + ^meta::protocols::pure::v1_33_0::metamodel::domain::PropertyPtr(class=$p->genericType().typeArguments->at(0).rawType->toOne()->elementToPath(), property=$propertyName); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformSchema(schema:meta::relational::metamodel::Schema[1], topDatabase: meta::relational::metamodel::Database[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::store::relational::Schema[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::Schema + ( + name = $schema.name->toOne(), + tables = $schema.tables->map(t|$t->transformTable($extensions)), + views = $schema.views->map(t|$t->transformView($topDatabase)) + ) +} + + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformJoin(j:meta::relational::metamodel::join::Join[1], topDatabase:meta::relational::metamodel::Database[1]):meta::protocols::pure::v1_33_0::metamodel::store::relational::Join[1] +{ + let r = ^meta::protocols::pure::v1_33_0::metamodel::store::relational::Join + ( + name = $j.name, + operation = $j.operation->transformRelationalOperationElement($topDatabase) + ); + if ($j.target->isEmpty(), + |$r, + |^$r(target='{target}') + ); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformFilter(j:meta::relational::metamodel::Filter[1], topDatabase:meta::relational::metamodel::Database[1]):meta::protocols::pure::v1_33_0::metamodel::store::relational::Filter[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::Filter + ( + _type = $j->match([m:MultiGrainFilter[1]|'multigrain', f:Filter[1]|'filter']), + name = $j.name, + operation = $j.operation->transformRelationalOperationElement($topDatabase) + ) +} + + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformRelationalOperationElement(re:meta::relational::metamodel::RelationalOperationElement[1], topDatabase:meta::relational::metamodel::Database[1]):meta::protocols::pure::v1_33_0::metamodel::store::relational::element::RelationalElement[1] +{ + $re->match( + [ + t:TableAliasColumn[1]|let table = $t.alias.relationalElement->cast(@NamedRelation); + let schema = $table->match([t:Table[1]|$t.schema,v:View[1]|$v.schema]); + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::element::ColumnPtr + ( + _type = 'column', + tableAlias = if($t.alias.name->equal('t_' + $table.name),|'{target}',|$t.alias.name), + table = ^meta::protocols::pure::v1_33_0::metamodel::store::relational::element::TablePtr( + _type = 'table', + database = $schema.database->elementToPath(), + mainTableDb = $schema.database->elementToPath(), + schema = $schema.name, + table = if($t.alias.name->equal('t_' + $table.name),|'{target}',|$table.name)), + column = $t.column.name + );, + r:RelationalOperationElementWithJoin[1]| ^meta::protocols::pure::v1_33_0::metamodel::store::relational::element::ElementWithJoins + ( + _type = 'elemtWithJoins', + joins = $r.joinTreeNode->toOne()->transformJoinTreeNode(), + relationalElement = if ($r.relationalOperationElement->isEmpty(),|[],|$r.relationalOperationElement->toOne()->transformRelationalOperationElement(if($topDatabase==$r.joinTreeNode.database->toOne(),|$topDatabase,|$r.joinTreeNode.database->toOne()))) + );, + d:DynaFunction[1]| ^meta::protocols::pure::v1_33_0::metamodel::store::relational::element::DynamicFunction + ( + _type = 'dynaFunc', + funcName = $d.name, + parameters = $d.parameters->map(p|$p->transformRelationalOperationElement($topDatabase)) + ), + l:Literal[1]|^meta::protocols::pure::v1_33_0::metamodel::store::relational::element::Literal + ( + _type = 'literal', + value = $l.value + ), + l:LiteralList[1]|^meta::protocols::pure::v1_33_0::metamodel::store::relational::element::LiteralList + ( + _type = 'literalList', + values = if ($l.values->isEmpty(),|[],|$l.values->map(x| ^meta::protocols::pure::v1_33_0::metamodel::store::relational::element::Literal(_type='literal', value=$x.value))) + ), + e:UnaryOperation[1]| ^meta::protocols::pure::v1_33_0::metamodel::store::relational::element::DynamicFunction + ( + _type = 'dynaFunc', + funcName = $e->genericType().rawType.name->toOne(), + parameters = $e.nested->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformRelationalOperationElement($topDatabase) + ), + e:BinaryOperation[1]| ^meta::protocols::pure::v1_33_0::metamodel::store::relational::element::DynamicFunction + ( + _type = 'dynaFunc', + funcName = $e->genericType().rawType.name->toOne(), + parameters = $e.left->concatenate($e.right)->map(p|$p->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformRelationalOperationElement($topDatabase)) + ) + ] + ); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformJoinTreeNode(joinTreeNode: meta::relational::metamodel::join::JoinTreeNode[1]):meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::JoinPtr[*] +{ + $joinTreeNode->extractLine()->map(j| + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::JoinPtr( + db = $j.join.database->toOne()->elementToPath(), + name = $j.join.name, + joinType = if($j.joinType->isEmpty(),|[],|$j.joinType->toOne()->id()) + ) + ) +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformView(view:View[1], topDatabase:Database[1]):meta::protocols::pure::v1_33_0::metamodel::store::relational::View[1] +{ + let table = $view.mainTableAlias.relationalElement->cast(@NamedRelation); + let schema = $table->match([t:Table[1]|$t.schema,v:View[1]|$v.schema]); + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::View + ( + name = $view.name->toOne(), + mainTable = ^meta::protocols::pure::v1_33_0::metamodel::store::relational::element::TablePtr( + _type = 'Table', + table = $table.name, + database = $schema.database->elementToPath(), + mainTableDb = $schema.database->elementToPath(), + schema = $schema.name), + primaryKey = $view.primaryKey->map(c|$c.name->toOne()), + distinct = $view.distinct->toOne(), + groupBy = $view.groupBy.columns->map(c|$c->transformRelationalOperationElement($topDatabase)), + filter = if($view.filter->isEmpty(), |[], | ^FilterWithJoins(filter = ^FilterPtr(db=$view.filter.filter.database->toOne()->elementToPath(), name=$view.filter->toOne().filterName), joins = if ($view.filter->toOne().joinTreeNode->isEmpty(),|[],|$view.filter->toOne().joinTreeNode->toOne()->transformJoinTreeNode()))), + columnMappings = $view.columnMappings->map(c|^meta::protocols::pure::v1_33_0::metamodel::store::relational::mapping::ColumnMapping(name=$c.columnName, operation=$c.relationalOperationElement->transformRelationalOperationElement($topDatabase))) + ); +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformTable(table:meta::relational::metamodel::relation::Table[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::store::relational::Table[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::Table + ( + name = $table.name->toOne(), + columns = $table.columns->map(c|$c->transformColumn()), + primaryKey = $table.primaryKey->map(c|$c.name->toOne()), + milestoning = $table.milestoning->map(m|$m->transformMilestoning($extensions)) + ) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformColumn(c:meta::relational::metamodel::RelationalOperationElement[1]):meta::protocols::pure::v1_33_0::metamodel::store::relational::Column[1] +{ + $c->match([ + c:Column[1]|^meta::protocols::pure::v1_33_0::metamodel::store::relational::Column + ( + name = $c.name->toOne(), + type = $c.type->pureDataTypeToAlloyDataType(), + nullable = if($c.nullable == true,|true,|false) + ) + ]) +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::pureDataTypeToAlloyDataType(c:meta::relational::metamodel::datatype::DataType[1]):meta::protocols::pure::v1_33_0::metamodel::store::relational::DataType[1] +{ + $c->match( + [ + r:Varchar[1]| ^meta::protocols::pure::v1_33_0::metamodel::store::relational::Varchar(_type='Varchar', size=$r.size), + r:Char[1]| ^meta::protocols::pure::v1_33_0::metamodel::store::relational::Char(_type='Char', size=$r.size), + d:meta::relational::metamodel::datatype::Decimal[1]| ^meta::protocols::pure::v1_33_0::metamodel::store::relational::Decimal(_type='Decimal', precision=$d.precision, scale=$d.scale), + r:Numeric[1]|^meta::protocols::pure::v1_33_0::metamodel::store::relational::Numeric(_type='Numeric', precision=$r.precision,scale=$r.scale), + r:Double[1]|^meta::protocols::pure::v1_33_0::metamodel::store::relational::Double(_type='Double'), + r:Bit[1]|^meta::protocols::pure::v1_33_0::metamodel::store::relational::Bit(_type='Bit' ), + t:BigInt[1]|^meta::protocols::pure::v1_33_0::metamodel::store::relational::BigInt(_type='BigInt'), + t:TinyInt[1]|^meta::protocols::pure::v1_33_0::metamodel::store::relational::TinyInt(_type='TinyInt'), + s:SmallInt[1]|^meta::protocols::pure::v1_33_0::metamodel::store::relational::SmallInt(_type='SmallInt'), + v:Varbinary[1]|^meta::protocols::pure::v1_33_0::metamodel::store::relational::Varbinary(_type='Varbinary', size=$v.size), + b:meta::relational::metamodel::datatype::Binary[1]|^meta::protocols::pure::v1_33_0::metamodel::store::relational::Binary(_type='Binary', size=$b.size), + i:meta::relational::metamodel::datatype::Integer[1]|^meta::protocols::pure::v1_33_0::metamodel::store::relational::Integer(_type='Integer'), + d:meta::relational::metamodel::datatype::Date[1]|^meta::protocols::pure::v1_33_0::metamodel::store::relational::Date(_type='Date'), + d:meta::relational::metamodel::datatype::Timestamp[1]|^meta::protocols::pure::v1_33_0::metamodel::store::relational::Timestamp(_type='Timestamp'), + d:meta::relational::metamodel::datatype::Float[1]|^meta::protocols::pure::v1_33_0::metamodel::store::relational::Float(_type='Float'), + r:meta::relational::metamodel::datatype::Real[1]|^meta::protocols::pure::v1_33_0::metamodel::store::relational::Real(_type='Real'), + o:meta::relational::metamodel::datatype::Other[1]|^meta::protocols::pure::v1_33_0::metamodel::store::relational::Other(_type='Other'), + a:meta::relational::metamodel::datatype::Array[1]|^meta::protocols::pure::v1_33_0::metamodel::store::relational::Array(_type='Array') + + ] + ) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::alloyTypeToString(c:meta::relational::metamodel::datatype::DataType[1]):String[1] +{ + $c->match( + [ + r:Varchar[1]|'VARCHAR('+$r.size->toString()+')', + r:Char[1]|'CHAR('+$r.size->toString()+')', + d:meta::relational::metamodel::datatype::Decimal[1]|'DECIMAL('+$d.precision->toString()+','+$d.scale->toString()+')', + r:Numeric[1]|'NUMERIC('+$r.precision->toString()+','+$r.scale->toString()+')', + r:Double[1]|'DOUBLE', + r:Bit[1]|'BIT', + t:BigInt[1]|'BIGINT', + t:TinyInt[1]|'TINYINT', + s:SmallInt[1]|'SMALLINT', + v:Varbinary[1]|'VARBINARY('+$v.size->toString()+')', + b:meta::relational::metamodel::datatype::Binary[1]|'BINARY('+$b.size->toString()+')', + i:meta::relational::metamodel::datatype::Integer[1]|'INTEGER', + d:meta::relational::metamodel::datatype::Date[1]|'DATE', + d:meta::relational::metamodel::datatype::Timestamp[1]|'TIMESTAMP', + d:meta::relational::metamodel::datatype::Float[1]|'FLOAT', + r:meta::relational::metamodel::datatype::Real[1]|'REAL', + r:meta::relational::metamodel::datatype::Other[1]|'OTHER', + r:meta::relational::metamodel::datatype::Array[1]|'ARRAY', + d:meta::relational::metamodel::datatype::DbSpecificDataType[1]|$d.dbSpecificSql, + d:meta::relational::metamodel::datatype::DataType[1]|'' //columns mapped to functions do not yet support specific DataTypes + ] + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::tableToTablePtr(table:meta::relational::metamodel::relation::Table[1]):meta::protocols::pure::v1_33_0::metamodel::store::relational::element::TablePtr[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::element::TablePtr( + _type = 'table', + table = $table.name, + schema = $table.schema.name, + database = $table.schema.database ->elementToPath(), + mainTableDb = $table.schema.database ->elementToPath() + ) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::setRelationToTablePtr(s:meta::pure::store::set::SetRelation[1]):meta::protocols::pure::v1_33_0::metamodel::store::relational::element::TablePtr[1] +{ + $s->match([ + t:meta::relational::metamodel::relation::Table[1]| + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::element::TablePtr( + _type = 'Table', + table = $t.name, + database = $t.schema.database->elementToPath(), + mainTableDb = $t.schema.database->elementToPath(), + schema = $t.schema.name);, + v:meta::relational::metamodel::relation::View[1]| + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::element::TablePtr( + _type = 'View', + table = $v.name, + database = $v.schema.database->elementToPath(), + mainTableDb = $v.schema.database->elementToPath(), + schema = $v.schema.name);, + s:meta::pure::store::set::SetRelation[1]| fail('not implemented'); + ^meta::protocols::pure::v1_33_0::metamodel::store::relational::element::TablePtr(_type = 'Table',table = 'table',database = 'db',mainTableDb = 'db',schema = 'schema'); + ]) +} + +function <> meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::transformMilestoning(m:meta::relational::metamodel::relation::Milestoning[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::store::relational::Milestoning[1] +{ + let open = newMap([]->cast(@Pair>)); + let transformInfinityDate = {m:TemporalMilestoning[0..1]|if($m.infinityDate->isEmpty(),|[],|$m.infinityDate->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformAny([], $open, PureOne, $extensions)->cast(@meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::CDate))}; + + $m->match($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension).transfers_milestoning_transformMilestoning->concatenate([ + b:BusinessMilestoning[1]|^meta::protocols::pure::v1_33_0::metamodel::store::relational::BusinessMilestoning( _type = 'businessMilestoning', from = $b.from.name, thru = $b.thru.name, infinityDate=$transformInfinityDate->eval($b),thruIsInclusive = $b.thruIsInclusive), + s:BusinessSnapshotMilestoning[1]| ^meta::protocols::pure::v1_33_0::metamodel::store::relational::BusinessSnapshotMilestoning( _type = 'businessSnapshotMilestoning', snapshotDate = $s.snapshotDate.name), + p:ProcessingMilestoning[1]|^meta::protocols::pure::v1_33_0::metamodel::store::relational::ProcessingMilestoning( _type = 'processingMilestoning', in = $p.in.name, out = $p.out.name, infinityDate=$transformInfinityDate->eval($p),outIsInclusive = $p.outIsInclusive) + ])->toOneMany()); +} diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/extension/extension.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/extension/extension.pure new file mode 100644 index 00000000000..fdcef31c6a8 --- /dev/null +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/extension/extension.pure @@ -0,0 +1,18 @@ +// 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. + +Class meta::protocols::pure::v1_33_0::extension::store::service::ServiceStoreModuleSerializerExtension extends meta::protocols::pure::v1_33_0::extension::ModuleSerializerExtension +{ + transfers_securityScheme_transformSecurityScheme : Function<{Nil[1] -> meta::protocols::pure::v1_33_0::metamodel::store::service::SecurityScheme[1]}>[*]; +} \ No newline at end of file diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/extension/extension_serviceStore.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/extension/extension_serviceStore.pure new file mode 100644 index 00000000000..ce184e71ea7 --- /dev/null +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/extension/extension_serviceStore.pure @@ -0,0 +1,97 @@ +// 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. + +import meta::pure::mapping::*; +import meta::pure::functions::collection::*; + +import meta::external::store::service::metamodel::*; +import meta::external::store::service::metamodel::mapping::*; +import meta::external::store::service::metamodel::runtime::*; + +function meta::protocols::pure::v1_33_0::extension::store::service::getServiceStoreExtension(type:String[1]):meta::pure::extension::SerializerExtension[1] +{ + let res = [ + pair('serviceStore', | meta::protocols::pure::v1_33_0::extension::store::service::getServiceStoreExtension()) + ]->filter(f|$f.first == $type); + assert($res->isNotEmpty(), |'Can\'t find the type '+$type); + $res->at(0).second->eval(); +} + +function meta::protocols::pure::v1_33_0::extension::store::service::getServiceStoreExtension():meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0[1] +{ + ^meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0 + ( + transfers_store_transformConnection2 = { extensions:meta::pure::extension::Extension[*] | + [ + serviceStoreConnection:ServiceStoreConnection[1] | $serviceStoreConnection->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::store::service::transformServiceStoreConnection($extensions) + ]}, + transfers_executionPlan_transformNode = {mapping:Mapping[1], extensions:meta::pure::extension::Extension[*] | + [ + ser:meta::external::store::service::executionPlan::nodes::RestServiceExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::store::service::RestServiceExecutionNode( + _type = 'restService', + resultType = $ser.resultType->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), + url = $ser.url, + method = $ser.method, + mimeType = $ser.mimeType, + authenticationSchemes = $ser.authenticationSchemes->map(s | ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::store::service::SingleAuthenticationSchemeRequirement( + _type = 'singleAuthScheme', + securityScheme = $s->cast(@meta::external::store::service::executionPlan::nodes::SingleAuthenticationSchemeRequirement).securityScheme->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::transformSecurityScheme($extensions), + authenticationSpecification = if ($s->cast(@meta::external::store::service::executionPlan::nodes::SingleAuthenticationSchemeRequirement).authenticationSpecification->isEmpty(), + | [], + | $s->cast(@meta::external::store::service::executionPlan::nodes::SingleAuthenticationSchemeRequirement).authenticationSpecification->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::authentication::transformAuthenticationSpecification($extensions)))), + requestBodyDescription = if($ser.requestBodyDescription->isEmpty(), + |[], + |^meta::protocols::pure::v1_33_0::metamodel::executionPlan::store::service::RequestBodyDescription( + mimeType = $ser.requestBodyDescription.mimeType->toOne(), + resultKey = $ser.requestBodyDescription.resultKey->toOne() + )), + params = $ser.params->map(p | $p->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::transformServiceStoreParameter()) + ), + spr:meta::external::store::service::executionPlan::nodes::ServiceParametersResolutionExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::store::service::ServiceParametersResolutionExecutionNode( + _type = 'serviceParametersResolution', + resultType = $spr.resultType->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), + requestParametersBuildInfo = $spr.requestParametersBuildInfo->map(p | $p->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::mapping::transformServiceRequestParametersBuildInfo($extensions)) + ), + limit:meta::external::store::service::executionPlan::nodes::LimitExecutionNode[1]| + ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::store::service::LimitExecutionNode( + _type='limit', + resultType=$limit.resultType->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), + limit = $limit.limit + ) + ]}, + transfers_mapping_transformSetImplementation2 = {mapping:Mapping[1], extensions:meta::pure::extension::Extension[*] | [ + rsi:RootServiceInstanceSetImplementation[1] | $rsi->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::mapping::transformRootServiceInstanceSetImplementation($mapping, $extensions), + esi:EmbeddedServiceStoreSetImplementation[1] | [] + ]}, + transfers_store_transformStore2 = {extensions:meta::pure::extension::Extension[*] | + [ + s:ServiceStore[1] | $s->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::transformServiceStore($extensions) + ]}, + scan_buildBasePureModel_extractStores = {m:Mapping[1], extensions:meta::pure::extension::Extension[*] | + [ + rsi:RootServiceInstanceSetImplementation[1] | $rsi->meta::protocols::pure::v1_33_0::extension::store::service::extractServiceStore(), + esi:EmbeddedServiceStoreSetImplementation[1] | $esi->meta::protocols::pure::v1_33_0::extension::store::service::extractServiceStore() + ]} + ) +} + +function meta::protocols::pure::v1_33_0::extension::store::service::extractServiceStore(set:SetImplementation[1]):ServiceStore[1] +{ + $set->match([ + rsi:RootServiceInstanceSetImplementation[1] | $rsi.serviceStore(), + esi:EmbeddedServiceStoreSetImplementation[1] | $esi.owner->cast(@SetImplementation)->toOne()->meta::protocols::pure::v1_33_0::extension::store::service::extractServiceStore() + ]) +} diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/models/executionPlan_serviceStore.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/models/executionPlan_serviceStore.pure new file mode 100644 index 00000000000..0cc89268b23 --- /dev/null +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/models/executionPlan_serviceStore.pure @@ -0,0 +1,63 @@ +// 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. + +import meta::protocols::pure::v1_33_0::metamodel::executionPlan::*; +import meta::protocols::pure::v1_33_0::metamodel::executionPlan::store::service::*; + +import meta::protocols::pure::v1_33_0::metamodel::store::service::*; +import meta::protocols::pure::v1_33_0::metamodel::store::service::mapping::*; +import meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::*; + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::store::service::RestServiceExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::ExecutionNode +{ + url : String[1]; + method : meta::pure::functions::io::http::HTTPMethod[1]; + mimeType : String[1]; + params : ServiceParameter[*]; + requestBodyDescription : RequestBodyDescription[0..1]; + authenticationSchemes : AuthenticationSchemeRequirement[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::store::service::RequestBodyDescription +{ + mimeType : String[1]; + resultKey : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::store::service::ServiceParametersResolutionExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::ExecutionNode +{ + requestParametersBuildInfo : ServiceRequestParametersBuildInfo[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::store::service::LimitExecutionNode extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::ExecutionNode +{ + limit : Integer[1]; +} + +Class <> meta::protocols::pure::v1_33_0::metamodel::executionPlan::store::service::AuthenticationSchemeRequirement +{ + _type: String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::store::service::SingleAuthenticationSchemeRequirement extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::store::service::AuthenticationSchemeRequirement +{ + securityScheme : SecurityScheme[1]; + authenticationSpecification : AuthenticationSpecification[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::executionPlan::store::service::MultiAuthenticationSchemeRequirement extends meta::protocols::pure::v1_33_0::metamodel::executionPlan::store::service::AuthenticationSchemeRequirement +{ + authenticationSchemes : SingleAuthenticationSchemeRequirement[*]; +} + diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/models/metamodel_connection.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/models/metamodel_connection.pure new file mode 100644 index 00000000000..f485e023d33 --- /dev/null +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/models/metamodel_connection.pure @@ -0,0 +1,20 @@ +// 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. +import meta::protocols::pure::v1_33_0::metamodel::runtime::connection::authentication::*; + +Class meta::protocols::pure::v1_33_0::metamodel::connection::store::service::ServiceStoreConnection extends meta::protocols::pure::v1_33_0::metamodel::runtime::Connection +{ + baseUrl : String[1]; + authenticationSpecifications : Map[1]; +} \ No newline at end of file diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/models/metamodel_serviceStore.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/models/metamodel_serviceStore.pure new file mode 100644 index 00000000000..8d17cff1492 --- /dev/null +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/models/metamodel_serviceStore.pure @@ -0,0 +1,187 @@ +// 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. +import meta::protocols::pure::v1_33_0::metamodel::store::service::*; + +Class meta::protocols::pure::v1_33_0::metamodel::store::service::ServiceStore extends meta::protocols::pure::v1_33_0::metamodel::store::Store +{ + description : String[0..1]; + securitySchemes : Map[1]; + elements : ServiceStoreElement[*]; +} + +Class <> meta::protocols::pure::v1_33_0::metamodel::store::service::ServiceStoreElement +{ + _type : String[1]; + + id : String[1]; + path : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::service::ServiceGroup extends ServiceStoreElement +{ + elements : ServiceStoreElement[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::service::Service extends ServiceStoreElement +{ + requestBody : TypeReference[0..1]; + method : String[1]; + parameters : ServiceParameter[*]; + response : ComplexTypeReference[1]; + security : SecuritySchemeRequirement[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::service::ServiceParameter +{ + name : String[1]; + type : TypeReference[1]; + location : String[1]; + + allowReserved : Boolean[0..1]; + required : Boolean[0..1]; + _enum : String[0..1]; + serializationFormat : SerializationFormat[0..1]; +} + +Class <> meta::protocols::pure::v1_33_0::metamodel::store::service::TypeReference +{ + _type : String[1]; + + list : Boolean[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::service::StringTypeReference extends meta::protocols::pure::v1_33_0::metamodel::store::service::TypeReference +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::service::BooleanTypeReference extends meta::protocols::pure::v1_33_0::metamodel::store::service::TypeReference +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::service::IntegerTypeReference extends meta::protocols::pure::v1_33_0::metamodel::store::service::TypeReference +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::service::FloatTypeReference extends meta::protocols::pure::v1_33_0::metamodel::store::service::TypeReference +{ +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::service::ComplexTypeReference extends meta::protocols::pure::v1_33_0::metamodel::store::service::TypeReference +{ + type : String[1]; + binding : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::service::SerializationFormat +{ + style : String[0..1]; + explode : Boolean[0..1]; +} + +Class <> meta::protocols::pure::v1_33_0::metamodel::store::service::SecurityScheme +{ + _type : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::service::HttpSecurityScheme extends meta::protocols::pure::v1_33_0::metamodel::store::service::SecurityScheme +{ + scheme : String[1]; + bearerFormat : String[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::service::ApiKeySecurityScheme extends meta::protocols::pure::v1_33_0::metamodel::store::service::SecurityScheme +{ + location : String[1]; + keyName : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::service::ServiceGroupPtr +{ + serviceStore : String[1]; + serviceGroup : String[1]; + parent : ServiceGroupPtr[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::service::ServicePtr +{ + serviceStore : String[1]; + service : String[1]; + parent : ServiceGroupPtr[0..1]; +} + + +// Mapping +###Pure +import meta::protocols::pure::v1_33_0::metamodel::store::service::*; +import meta::protocols::pure::v1_33_0::metamodel::store::service::mapping::*; + +import meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::*; + +Class meta::protocols::pure::v1_33_0::metamodel::store::service::mapping::RootServiceClassMapping extends meta::protocols::pure::v1_33_0::metamodel::mapping::ClassMapping +{ + localMappingProperties : LocalMappingProperty[*]; + servicesMapping : ServiceMapping[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::service::mapping::LocalMappingProperty +{ + name : String[1]; + type : String[1]; + multiplicity : meta::protocols::pure::v1_33_0::metamodel::domain::Multiplicity[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::service::mapping::ServiceMapping +{ + service : ServicePtr[1]; + pathOffset : Path[0..1]; + requestBuildInfo : ServiceRequestBuildInfo[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::service::mapping::ServiceRequestBuildInfo +{ + requestParametersBuildInfo : ServiceRequestParametersBuildInfo[0..1]; + requestBodyBuildInfo : ServiceRequestBodyBuildInfo[0..1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::service::mapping::ServiceRequestParametersBuildInfo +{ + parameterBuildInfoList : ServiceRequestParameterBuildInfo[*]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::service::mapping::ServiceRequestParameterBuildInfo +{ + serviceParameter : String[1]; + transform : Lambda[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::service::mapping::ServiceRequestBodyBuildInfo +{ + transform : Lambda[1]; +} + +Class <> meta::protocols::pure::v1_33_0::metamodel::store::service::SecuritySchemeRequirement +{ + _type : String[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::service::SingleSecuritySchemeRequirement extends meta::protocols::pure::v1_33_0::metamodel::store::service::SecuritySchemeRequirement +{ + id : String[1]; + securityScheme : SecurityScheme[1]; +} + +Class meta::protocols::pure::v1_33_0::metamodel::store::service::MultiSecuritySchemeRequirement extends meta::protocols::pure::v1_33_0::metamodel::store::service::SecuritySchemeRequirement +{ + securitySchemes : SingleSecuritySchemeRequirement[*]; +} \ No newline at end of file diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/transfers/connection_serviceStore.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/transfers/connection_serviceStore.pure new file mode 100644 index 00000000000..3ceaff32755 --- /dev/null +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/transfers/connection_serviceStore.pure @@ -0,0 +1,29 @@ +// 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. + +###Pure +import meta::pure::extension::*; +import meta::pure::functions::collection::*; +import meta::external::store::service::metamodel::*; +import meta::external::store::service::metamodel::runtime::*; + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::store::service::transformServiceStoreConnection(connection: ServiceStoreConnection[1],extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::connection::store::service::ServiceStoreConnection[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::connection::store::service::ServiceStoreConnection( + _type = 'serviceStore', + element = $connection.element->cast(@ServiceStore)->elementToPath(), + baseUrl = $connection.baseUrl, + authenticationSpecifications = $connection.authenticationSpecifications->keyValues()->map(e | pair($e.first, $e.second->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::authentication::transformAuthenticationSpecification($extensions)))->newMap() + ); +} \ No newline at end of file diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/transfers/metamodel_serviceStore.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/transfers/metamodel_serviceStore.pure new file mode 100644 index 00000000000..74400555297 --- /dev/null +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/transfers/metamodel_serviceStore.pure @@ -0,0 +1,192 @@ +// 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. + +###Pure +import meta::pure::extension::*; +import meta::pure::functions::collection::*; +import meta::external::store::service::metamodel::*; + + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::transformServiceStore(s:ServiceStore[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::store::service::ServiceStore[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::store::service::ServiceStore( + _type = 'serviceStore', + description = $s.description, + name = $s.name->toOne(), + package = if($s.package->isEmpty(), |[], |$s.package->toOne()->elementToPath()), + securitySchemes = $s.securitySchemes->keyValues()->map(e | pair($e.first, $e.second->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::transformSecurityScheme($extensions)))->newMap(), + elements = $s.elements->map(e | $e->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::transformServiceStoreElement($extensions)) + ) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::transformServiceStoreElement(s:ServiceStoreElement[1], extensions:Extension[*]):meta::protocols::pure::v1_33_0::metamodel::store::service::ServiceStoreElement[1] +{ + $s->match([ + sg: ServiceGroup[1] | ^meta::protocols::pure::v1_33_0::metamodel::store::service::ServiceGroup( + _type = 'serviceGroup', + id = $sg.id, + path = $sg.path, + elements = $sg.elements->map(e | $e->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::transformServiceStoreElement($extensions)) + ), + s: Service[1] | ^meta::protocols::pure::v1_33_0::metamodel::store::service::Service( + _type = 'service', + id = $s.id, + path = $s.path, + requestBody= $s.requestBody->map(b | $b->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::transformTypeReference()), + method = $s.method->toString(), + parameters = $s.parameters->map(p | $p->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::transformServiceStoreParameter()), + response = $s.response->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::transformTypeReference()->cast(@meta::protocols::pure::v1_33_0::metamodel::store::service::ComplexTypeReference), + security = $s.security->map(p | ^meta::protocols::pure::v1_33_0::metamodel::store::service::SingleSecuritySchemeRequirement( + _type = 'single', + id = $p->cast(@meta::external::store::service::metamodel::SingleSecuritySchemeRequirement).id, + securityScheme = $p->cast(@meta::external::store::service::metamodel::SingleSecuritySchemeRequirement).securityScheme->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::transformSecurityScheme($extensions))) + + ) + ]) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::transformServiceStoreParameter(s:ServiceParameter[1]):meta::protocols::pure::v1_33_0::metamodel::store::service::ServiceParameter[1] +{ + let type = $s.type->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::transformTypeReference(); + + ^meta::protocols::pure::v1_33_0::metamodel::store::service::ServiceParameter( + name = $s.name, + type = $type, + allowReserved = $s.allowReserved, + required = $s.required, + location = $s.location->toString(), + _enum = if($s.enum->isEmpty(), | [], | $s.enum->toOne()->elementToPath()), + serializationFormat = ^meta::protocols::pure::v1_33_0::metamodel::store::service::SerializationFormat(style = $s.serializationFormat.style, explode = $s.serializationFormat.explode) + ); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::transformTypeReference(t:TypeReference[1]):meta::protocols::pure::v1_33_0::metamodel::store::service::TypeReference[1] +{ + $t->match([ + st: StringTypeReference[1] | ^meta::protocols::pure::v1_33_0::metamodel::store::service::StringTypeReference(_type = 'string', list = $st.list), + bt: BooleanTypeReference[1] | ^meta::protocols::pure::v1_33_0::metamodel::store::service::BooleanTypeReference(_type = 'boolean', list = $bt.list), + it: IntegerTypeReference[1] | ^meta::protocols::pure::v1_33_0::metamodel::store::service::IntegerTypeReference(_type = 'integer', list = $it.list), + ft: FloatTypeReference[1] | ^meta::protocols::pure::v1_33_0::metamodel::store::service::FloatTypeReference(_type = 'float', list = $ft.list), + ct: ComplexTypeReference[1] | ^meta::protocols::pure::v1_33_0::metamodel::store::service::ComplexTypeReference(_type = 'complex', list = $ct.list, type = $ct.type->elementToPath(), binding = $ct.binding->elementToPath()) + ]); +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::transformSecurityScheme(a:SecurityScheme[1], extensions:Extension[*]):meta::protocols::pure::v1_33_0::metamodel::store::service::SecurityScheme[1] +{ + $a->match($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).moduleSerializerExtension('serviceStore')->cast(@meta::protocols::pure::v1_33_0::extension::store::service::ServiceStoreModuleSerializerExtension).transfers_securityScheme_transformSecurityScheme->concatenate([ + h:meta::external::store::service::metamodel::HttpSecurityScheme[1] | + ^meta::protocols::pure::v1_33_0::metamodel::store::service::HttpSecurityScheme( + _type = 'http', + scheme = $h.scheme->toString(), + bearerFormat = $h.bearerFormat + ), + a:meta::external::store::service::metamodel::ApiKeySecurityScheme[1] | + ^meta::protocols::pure::v1_33_0::metamodel::store::service::ApiKeySecurityScheme( + _type = 'apiKey', + location = $a.location->toString(), + keyName = $a.keyName + ), + other: meta::external::store::service::metamodel::SecurityScheme[1] | + fail('Unsupported Security Scheme'); + ^meta::protocols::pure::v1_33_0::metamodel::store::service::SecurityScheme( + _type = 'unknown' + ); + ])->toOneMany()) +} + +// Mapping +###Pure +import meta::pure::mapping::*; + +import meta::external::store::service::metamodel::mapping::*; +import meta::external::store::service::metamodel::*; + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::mapping::transformRootServiceInstanceSetImplementation(s:RootServiceInstanceSetImplementation[1], mapping:Mapping[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::store::service::mapping::RootServiceClassMapping[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::store::service::mapping::RootServiceClassMapping( + id = $s.id, + _type = 'serviceStore', + class = $s.class->elementToPath(), + root = $s.root, + mappingClass = $s.mappingClass->map(mc|$mc->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMappingClass($mapping, $extensions)), + localMappingProperties = $s.localProperties->map(p | $p->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::mapping::transformLocalMappingProperties()), + servicesMapping = $s.servicesMapping->map(sm | $sm->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::mapping::transformServiceMapping($extensions)) + ) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::mapping::transformLocalMappingProperties(p:Property[1]):meta::protocols::pure::v1_33_0::metamodel::store::service::mapping::LocalMappingProperty[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::store::service::mapping::LocalMappingProperty( + name = $p.name->toOne(), + type = $p->functionReturnType().rawType->toOne()->elementToPath(), + multiplicity = $p.multiplicity->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::domain::transformMultiplicity() + ) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::mapping::transformServiceMapping(sm:ServiceMapping[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::store::service::mapping::ServiceMapping[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::store::service::mapping::ServiceMapping( + service = $sm.service->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::mapping::transformServiceToServicePtr(), + pathOffset = $sm.pathOffset->map(p | $p->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::valueSpecification::transformAny([], newMap([])->cast(@Map>), $p->functionReturnMultiplicity(), $extensions))->cast(@meta::protocols::pure::v1_33_0::metamodel::valueSpecification::raw::Path), + requestBuildInfo = $sm.requestBuildInfo->map(r | $r->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::mapping::transformServiceRequestBuildInfo($extensions)) + ) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::mapping::transformServiceToServiceGroupPtr(s:ServiceGroup[1]):meta::protocols::pure::v1_33_0::metamodel::store::service::ServiceGroupPtr[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::store::service::ServiceGroupPtr( + serviceGroup = $s.id, + serviceStore = $s.owner->elementToPath(), + parent = if($s.parent->isEmpty(), | [], |$s.parent->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::mapping::transformServiceToServiceGroupPtr()) + ) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::mapping::transformServiceToServicePtr(s:Service[1]):meta::protocols::pure::v1_33_0::metamodel::store::service::ServicePtr[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::store::service::ServicePtr( + service = $s.id, + serviceStore = $s.owner->elementToPath(), + parent = if($s.parent->isEmpty(), | [], |$s.parent->toOne()->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::mapping::transformServiceToServiceGroupPtr()) + ) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::mapping::transformServiceRequestBuildInfo(s:ServiceRequestBuildInfo[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::store::service::mapping::ServiceRequestBuildInfo[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::store::service::mapping::ServiceRequestBuildInfo( + requestParametersBuildInfo = $s.requestParametersBuildInfo->map(param | $param->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::mapping::transformServiceRequestParametersBuildInfo($extensions)), + requestBodyBuildInfo = $s.requestBodyBuildInfo->map(body | $body->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::mapping::transformServiceRequestBodyBuildInfo($extensions)) + ) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::mapping::transformServiceRequestParametersBuildInfo(s:ServiceRequestParametersBuildInfo[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::store::service::mapping::ServiceRequestParametersBuildInfo[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::store::service::mapping::ServiceRequestParametersBuildInfo( + parameterBuildInfoList = $s.parameterBuildInfoList->map(param | $param->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::mapping::transformServiceRequestParameterBuildInfo($extensions)) + ) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::mapping::transformServiceRequestParameterBuildInfo(s:ServiceRequestParameterBuildInfo[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::store::service::mapping::ServiceRequestParameterBuildInfo[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::store::service::mapping::ServiceRequestParameterBuildInfo( + serviceParameter = $s.serviceParameter.name, + transform = $s.transform->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::transformLambda($extensions) + ) +} + +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::service::mapping::transformServiceRequestBodyBuildInfo(s:ServiceRequestBodyBuildInfo[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::store::service::mapping::ServiceRequestBodyBuildInfo[1] +{ + ^meta::protocols::pure::v1_33_0::metamodel::store::service::mapping::ServiceRequestBodyBuildInfo( + transform = $s.transform->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::transformLambda($extensions) + ) +} From 826ab6ca0fcc92f9f629d82b399b93e76d139d47 Mon Sep 17 00:00:00 2001 From: Gayathri Rallapalle <87973126+gayathrir11@users.noreply.github.com> Date: Mon, 16 Oct 2023 21:28:25 +0530 Subject: [PATCH 17/80] Modify MappingModelCoverageAnalysis to return PMCD for the model coverage (#2152) * Modify MappingModelCoverageAnalysis to return PMCD for the model coverage * update MappedEntityInfo model * update pom.xml * Update Server.java --- .../collection/generation/TestExtensions.java | 3 + .../legend-engine-server/pom.xml | 16 + .../finos/legend/engine/server/Server.java | 6 + .../finos/legend/engine/ide/PureIDELight.java | 3 + .../pom.xml | 147 +++++++ .../BindingAnalytics.java | 101 +++++ .../BindingModelCoverageAnalysisInput.java | 41 ++ .../TestBindingAnalyticsApi.java | 44 ++ .../bindingModelCoverageAnalysisTestData.json | 399 ++++++++++++++++++ .../pom.xml | 139 ++++++ ...BindingAnalysisCodeRepositoryProvider.java | 28 ++ ...lesystem.repository.CodeRepositoryProvider | 1 + .../core_analytics_binding.definition.json | 11 + .../modelCoverage/analytics.pure | 37 ++ .../pom.xml | 33 ++ .../pom.xml | 148 +++++++ .../ClassAnalytics.java | 104 +++++ .../ClassModelCoverageAnalysisInput.java | 41 ++ .../TestClassAnalyticsApi.java | 44 ++ .../classModelCoverageAnalysisTestData.json | 275 ++++++++++++ .../pom.xml | 143 +++++++ ...alClassAnalysisCodeRepositoryProvider.java | 28 ++ ...lesystem.repository.CodeRepositoryProvider | 1 + .../core_analytics_class.definition.json | 9 + .../modelCoverage/analytics.pure | 128 ++++++ .../modelCoverage/utility.pure | 34 ++ .../legend-engine-xts-analytics-class/pom.xml | 33 ++ .../pom.xml | 140 ++++++ .../FunctionAnalytics.java | 100 +++++ .../FunctionModelCoverageAnalysisInput.java | 41 ++ .../TestFunctionAnalyticsApi.java | 44 ++ ...functionModelCoverageAnalysisTestData.json | 387 +++++++++++++++++ .../pom.xml | 143 +++++++ ...unctionAnalysisCodeRepositoryProvider.java | 28 ++ ...lesystem.repository.CodeRepositoryProvider | 1 + .../core_analytics_function.definition.json | 11 + .../modelCoverage/analytics.pure | 57 +++ .../pom.xml | 33 ++ .../pom.xml | 24 ++ .../api/analytics/MappingAnalytics.java | 91 +++- .../test/TestMappingAnalyticsApi.java | 15 +- .../analytics/model/MappedEntityInfo.java | 1 + .../MappingModelCoverageAnalysisResult.java | 3 + .../pom.xml | 16 + .../core_analytics_mapping.definition.json | 1 + .../modelCoverage/analytics.pure | 38 +- .../modelCoverage/analyticsTest.pure | 2 +- .../modelCoverage/mappedEntityBuilder.pure | 2 +- .../modelCoverage/serializer.pure | 3 +- .../modelCoverage/utility.pure | 22 - .../core_analytics_search/trans.pure | 2 +- legend-engine-xts-analytics/pom.xml | 3 + .../api/analytics/DataSpaceAnalytics.java | 27 ++ .../test/TestDataSpaceAnalyticsApi.java | 19 +- .../pom.xml | 8 + .../analytics/DataSpaceAnalyticsHelper.java | 167 +++++++- ...eAnalyticsArtifactGenerationExtension.java | 20 +- .../core_data_space/analytics/analytics.pure | 15 +- pom.xml | 33 ++ 59 files changed, 3435 insertions(+), 59 deletions(-) create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/main/java/org.finos.legend.engine.api.analytics/BindingAnalytics.java create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/main/java/org.finos.legend.engine.api.analytics/model/BindingModelCoverageAnalysisInput.java create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/test/java/org.finos.legend.engine.api.analytics.test/TestBindingAnalyticsApi.java create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/test/resources/bindingModelCoverageAnalysisTestData.json create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/src/main/java/org.finos.legend.pure.code.core/CoreExternalBindingAnalysisCodeRepositoryProvider.java create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/src/main/resources/core_analytics_binding.definition.json create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/src/main/resources/core_analytics_binding/modelCoverage/analytics.pure create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/main/java/org.finos.legend.engine.api.analytics/ClassAnalytics.java create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/main/java/org.finos.legend.engine.api.analytics/model/ClassModelCoverageAnalysisInput.java create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/test/java/org.finos.legend.engine.api.analytics.test/TestClassAnalyticsApi.java create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/test/resources/classModelCoverageAnalysisTestData.json create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/src/main/java/org.finos.legend.pure.code.core/CoreExternalClassAnalysisCodeRepositoryProvider.java create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/src/main/resources/core_analytics_class.definition.json create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/src/main/resources/core_analytics_class/modelCoverage/analytics.pure create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/src/main/resources/core_analytics_class/modelCoverage/utility.pure create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/src/main/java/org.finos.legend.engine.api.analytics/FunctionAnalytics.java create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/src/main/java/org.finos.legend.engine.api.analytics/model/FunctionModelCoverageAnalysisInput.java create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/src/test/java/org.finos.legend.engine.api.analytics.test/TestFunctionAnalyticsApi.java create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/src/test/resources/functionModelCoverageAnalysisTestData.json create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/src/main/java/org.finos.legend.pure.code.core/CoreExternalFunctionAnalysisCodeRepositoryProvider.java create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/src/main/resources/core_analytics_function.definition.json create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/src/main/resources/core_analytics_function/modelCoverage/analytics.pure create mode 100644 legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml diff --git a/legend-engine-config/legend-engine-extensions-collection-generation/src/test/java/org/finos/legend/engine/extensions/collection/generation/TestExtensions.java b/legend-engine-config/legend-engine-extensions-collection-generation/src/test/java/org/finos/legend/engine/extensions/collection/generation/TestExtensions.java index da2039c880d..2d51c4927c9 100644 --- a/legend-engine-config/legend-engine-extensions-collection-generation/src/test/java/org/finos/legend/engine/extensions/collection/generation/TestExtensions.java +++ b/legend-engine-config/legend-engine-extensions-collection-generation/src/test/java/org/finos/legend/engine/extensions/collection/generation/TestExtensions.java @@ -470,6 +470,9 @@ protected Iterable getExpectedCodeRepositories() .with("core_generation") .with("core_service") .with("core_functions") + .with("core_analytics_binding") + .with("core_analytics_class") + .with("core_analytics_function") .with("core_analytics_lineage") .with("core_analytics_mapping") .with("core_analytics_search") diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index 532d877188a..d65cc0dcc30 100644 --- a/legend-engine-config/legend-engine-server/pom.xml +++ b/legend-engine-config/legend-engine-server/pom.xml @@ -414,6 +414,22 @@ org.finos.legend.engine legend-engine-xt-analytics-store-entitlement + + org.finos.legend.engine + legend-engine-xt-analytics-class-api + + + org.finos.legend.engine + legend-engine-xt-analytics-function-api + + + org.finos.legend.engine + legend-engine-xt-analytics-binding-api + + + org.finos.legend.engine + legend-engine-xt-analytics-binding-api + org.finos.legend.engine legend-engine-xt-relationalStore-grammar diff --git a/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java b/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java index 45ea6d8881a..c0933bc6f60 100644 --- a/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java +++ b/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java @@ -58,8 +58,11 @@ import org.finos.legend.connection.impl.UserPasswordAuthenticationConfiguration; import org.finos.legend.connection.impl.UserPasswordCredentialBuilder; import org.finos.legend.connection.protocol.AuthenticationMechanismType; +import org.finos.legend.engine.api.analytics.BindingAnalytics; +import org.finos.legend.engine.api.analytics.ClassAnalytics; import org.finos.legend.engine.api.analytics.DataSpaceAnalytics; import org.finos.legend.engine.api.analytics.DiagramAnalytics; +import org.finos.legend.engine.api.analytics.FunctionAnalytics; import org.finos.legend.engine.api.analytics.LineageAnalytics; import org.finos.legend.engine.api.analytics.MappingAnalytics; import org.finos.legend.engine.api.analytics.StoreEntitlementAnalytics; @@ -403,6 +406,9 @@ public void run(T serverConfiguration, Environment environment) // Analytics List entitlementServiceExtensions = EntitlementServiceExtensionLoader.extensions(); environment.jersey().register(new MappingAnalytics(modelManager)); + environment.jersey().register(new ClassAnalytics(modelManager)); + environment.jersey().register(new FunctionAnalytics(modelManager)); + environment.jersey().register(new BindingAnalytics(modelManager)); environment.jersey().register(new DiagramAnalytics(modelManager)); environment.jersey().register(new DataSpaceAnalytics(modelManager, generatorExtensions, entitlementServiceExtensions)); environment.jersey().register(new LineageAnalytics(modelManager)); diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/src/main/java/org/finos/legend/engine/ide/PureIDELight.java b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/src/main/java/org/finos/legend/engine/ide/PureIDELight.java index 953743532a5..0008f70baee 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/src/main/java/org/finos/legend/engine/ide/PureIDELight.java +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/src/main/java/org/finos/legend/engine/ide/PureIDELight.java @@ -87,6 +87,9 @@ protected MutableList buildRepositories(SourceLocationCon .with(this.buildCore("legend-engine-xts-daml/legend-engine-xt-daml-pure", "external-language-daml")) .with(this.buildCore("legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure", "pure-changetoken")) .with(this.buildCore("legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure", "analytics-mapping")) + .with(this.buildCore("legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure", "analytics-class")) + .with(this.buildCore("legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure", "analytics-binding")) + .with(this.buildCore("legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure", "analytics-function")) .with(this.buildCore("legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure", "analytics-lineage")) .with(this.buildCore("legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure", "analytics-search")) .with(this.buildCore("legend-engine-xts-java/legend-engine-xt-javaGeneration-pure", "external-language-java")) diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml new file mode 100644 index 00000000000..643ae03f8f7 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml @@ -0,0 +1,147 @@ + + + + + + org.finos.legend.engine + legend-engine-xts-analytics-binding + 4.30.3-SNAPSHOT + + 4.0.0 + + legend-engine-xt-analytics-binding-api + jar + Legend Engine - XT - Analytics - Binding - API + + + + + org.finos.legend.engine + legend-engine-external-shared + + + org.finos.legend.engine + legend-engine-language-pure-modelManager + + + org.finos.legend.engine + legend-engine-protocol-pure + + + org.finos.legend.engine + legend-engine-language-pure-compiler + + + org.finos.legend.engine + legend-engine-shared-core + + + org.finos.legend.engine + legend-engine-pure-code-compiled-core + + + org.finos.legend.engine + legend-engine-xt-analytics-binding-pure + ${project.version} + + + + + + javax.ws.rs + javax.ws.rs-api + + + io.swagger + swagger-annotations + + + + + + org.pac4j.jax-rs + core + + + org.pac4j + pac4j-core + + + + + + com.fasterxml.jackson.core + jackson-annotations + + + com.fasterxml.jackson.core + jackson-databind + + + + + + org.eclipse.collections + eclipse-collections-api + + + org.eclipse.collections + eclipse-collections + + + + + + io.opentracing + opentracing-api + + + io.opentracing + opentracing-util + + + + + + junit + junit + test + + + org.finos.legend.engine + legend-engine-shared-core + test-jar + test + + + org.glassfish.jersey.core + jersey-common + test + + + org.finos.legend.engine + legend-engine-external-shared-format-model + test + + + org.finos.legend.engine + legend-engine-xt-json-model + test + + + + diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/main/java/org.finos.legend.engine.api.analytics/BindingAnalytics.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/main/java/org.finos.legend.engine.api.analytics/BindingAnalytics.java new file mode 100644 index 00000000000..9dd6cb4531d --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/main/java/org.finos.legend.engine.api.analytics/BindingAnalytics.java @@ -0,0 +1,101 @@ +// Copyright 2023 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.api.analytics; + +import com.fasterxml.jackson.databind.ObjectMapper; +import io.opentracing.Scope; +import io.opentracing.util.GlobalTracer; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.eclipse.collections.api.RichIterable; +import org.eclipse.collections.api.list.MutableList; +import org.eclipse.collections.impl.factory.Lists; +import org.finos.legend.engine.api.analytics.model.BindingModelCoverageAnalysisInput; +import org.finos.legend.engine.external.shared.format.imports.PureModelContextDataGenerator; +import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; +import org.finos.legend.engine.language.pure.modelManager.ModelManager; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; +import org.finos.legend.engine.shared.core.ObjectMapperFactory; +import org.finos.legend.engine.shared.core.api.result.ManageConstantResult; +import org.finos.legend.engine.shared.core.kerberos.ProfileManagerHelper; +import org.finos.legend.engine.shared.core.operational.errorManagement.ExceptionTool; +import org.finos.legend.engine.shared.core.operational.http.InflateInterceptor; +import org.finos.legend.engine.shared.core.operational.logs.LoggingEventType; +import org.finos.legend.pure.generated.Root_meta_analytics_binding_modelCoverage_BindingModelCoverageAnalysisResult; +import org.finos.legend.pure.generated.Root_meta_external_format_shared_binding_Binding; +import org.finos.legend.pure.generated.core_analytics_binding_modelCoverage_analytics; +import org.pac4j.core.profile.CommonProfile; +import org.pac4j.core.profile.ProfileManager; +import org.pac4j.jax.rs.annotations.Pac4JProfileManager; + +import javax.ws.rs.Consumes; +import javax.ws.rs.DefaultValue; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import java.util.Objects; + +@Api(tags = "Analytics - Model") +@Path("pure/v1/analytics/binding") +public class BindingAnalytics +{ + private static final ObjectMapper objectMapper = ObjectMapperFactory.getNewStandardObjectMapperWithPureProtocolExtensionSupports(); + + private final ModelManager modelManager; + + public BindingAnalytics(ModelManager modelManager) + { + this.modelManager = modelManager; + } + + @POST + @Path("modelCoverage") + @ApiOperation(value = "Analyze the binding to identify models covered by the binding") + @Consumes({MediaType.APPLICATION_JSON, InflateInterceptor.APPLICATION_ZLIB}) + @Produces(MediaType.APPLICATION_JSON) + public Response analyzeBindingModelCoverage(BindingModelCoverageAnalysisInput input, + @QueryParam("includeBinding") @DefaultValue("true") boolean includeBinding, + @ApiParam(hidden = true) @Pac4JProfileManager ProfileManager pm) + { + MutableList profiles = ProfileManagerHelper.extractProfiles(pm); + PureModelContextData pureModelContextData = this.modelManager.loadData(input.model, input.clientVersion, profiles); + PureModel pureModel = this.modelManager.loadModel(pureModelContextData, input.clientVersion, profiles, null); + Root_meta_external_format_shared_binding_Binding binding = (Root_meta_external_format_shared_binding_Binding) pureModel.getPackageableElement(input.binding); + RichIterable bindings = Lists.immutable.of(binding); + + try (Scope scope = GlobalTracer.get().buildSpan("Analytics: binding model coverage").startActive(true)) + { + try + { + Root_meta_analytics_binding_modelCoverage_BindingModelCoverageAnalysisResult result = core_analytics_binding_modelCoverage_analytics.Root_meta_analytics_binding_modelCoverage_getBindingModelCoverage_Binding_MANY__BindingModelCoverageAnalysisResult_1_(bindings, pureModel.getExecutionSupport()); + PureModelContextData classes = PureModelContextDataGenerator.generatePureModelContextDataFromClasses(result._classes(), input.clientVersion, pureModel.getExecutionSupport()); + PureModelContextData.Builder builder = PureModelContextData.newBuilder(); + if (includeBinding) + { + builder.addElement(Objects.requireNonNull(pureModelContextData.getElements().stream().filter(el -> input.binding.equals(el.getPath())).findFirst().get())); + } + return ManageConstantResult.manageResult(profiles, builder.build().combine(classes), objectMapper); + } + catch (Exception e) + { + return ExceptionTool.exceptionManager(e, LoggingEventType.ANALYTICS_ERROR, Response.Status.BAD_REQUEST, profiles); + } + } + } +} diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/main/java/org.finos.legend.engine.api.analytics/model/BindingModelCoverageAnalysisInput.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/main/java/org.finos.legend.engine.api.analytics/model/BindingModelCoverageAnalysisInput.java new file mode 100644 index 00000000000..656d40d2ff4 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/main/java/org.finos.legend.engine.api.analytics/model/BindingModelCoverageAnalysisInput.java @@ -0,0 +1,41 @@ +// Copyright 2023 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.api.analytics.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContext; + +public class BindingModelCoverageAnalysisInput +{ + public String clientVersion; + + @JsonProperty(required = true) + public String binding; + + @JsonProperty(required = true) + public PureModelContext model; + + @JsonCreator + public BindingModelCoverageAnalysisInput( + @JsonProperty("clientVersion") String clientVersion, + @JsonProperty("binding") String binding, + @JsonProperty("model") PureModelContext model) + { + this.clientVersion = clientVersion; + this.binding = binding; + this.model = model; + } +} \ No newline at end of file diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/test/java/org.finos.legend.engine.api.analytics.test/TestBindingAnalyticsApi.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/test/java/org.finos.legend.engine.api.analytics.test/TestBindingAnalyticsApi.java new file mode 100644 index 00000000000..6fd42f506e1 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/test/java/org.finos.legend.engine.api.analytics.test/TestBindingAnalyticsApi.java @@ -0,0 +1,44 @@ +// Copyright 2023 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.api.analytics.test; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.finos.legend.engine.api.analytics.BindingAnalytics; +import org.finos.legend.engine.api.analytics.model.BindingModelCoverageAnalysisInput; +import org.finos.legend.engine.language.pure.modelManager.ModelManager; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; +import org.finos.legend.engine.shared.core.ObjectMapperFactory; +import org.finos.legend.engine.shared.core.deployment.DeploymentMode; +import org.junit.Assert; +import org.junit.Test; + +import java.io.IOException; +import java.util.Objects; + +public class TestBindingAnalyticsApi +{ + private final BindingAnalytics api = new BindingAnalytics(new ModelManager(DeploymentMode.TEST)); + private static final ObjectMapper objectMapper = ObjectMapperFactory.getNewStandardObjectMapperWithPureProtocolExtensionSupports(); + + @Test + public void testBindingModelCoverageAnalysis() throws IOException + { + PureModelContextData modelContextData = objectMapper.readValue(Objects.requireNonNull(getClass().getClassLoader().getResource("bindingModelCoverageAnalysisTestData.json")), PureModelContextData.class); + Assert.assertEquals( + "{\"_type\":\"data\",\"elements\":[{\"_type\":\"class\",\"constraints\":[],\"name\":\"Person\",\"originalMilestonedProperties\":[],\"package\":\"model\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"binding\",\"contentType\":\"application/json\",\"modelUnit\":{\"packageableElementExcludes\":[],\"packageableElementIncludes\":[\"model::Person\"]},\"name\":\"personBinding\",\"package\":\"model\"}]}", + api.analyzeBindingModelCoverage(new BindingModelCoverageAnalysisInput("vX_X_X", "model::personBinding", modelContextData), true, null).getEntity().toString()); + } +} + diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/test/resources/bindingModelCoverageAnalysisTestData.json b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/test/resources/bindingModelCoverageAnalysisTestData.json new file mode 100644 index 00000000000..f0657fb0b0d --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/test/resources/bindingModelCoverageAnalysisTestData.json @@ -0,0 +1,399 @@ +{ + "_type": "data", + "elements": [ + { + "_type": "binding", + "contentType": "application/json", + "modelUnit": { + "packageableElementExcludes": [], + "packageableElementIncludes": [ + "model::Person" + ] + }, + "name": "personBinding", + "package": "model" + }, + { + "_type": "Enumeration", + "name": "OrgType", + "package": "model", + "stereotypes": [], + "taggedValues": [], + "values": [ + { + "stereotypes": [], + "taggedValues": [], + "value": "CORP" + }, + { + "stereotypes": [], + "taggedValues": [], + "value": "LLC" + } + ] + }, + { + "_type": "class", + "constraints": [], + "name": "Person", + "originalMilestonedProperties": [], + "package": "model", + "properties": [ + { + "multiplicity": { + "lowerBound": 1, + "upperBound": 1 + }, + "name": "firstName", + "stereotypes": [], + "taggedValues": [], + "type": "String" + }, + { + "multiplicity": { + "lowerBound": 1, + "upperBound": 1 + }, + "name": "lastName", + "stereotypes": [], + "taggedValues": [], + "type": "String" + } + ], + "qualifiedProperties": [], + "stereotypes": [], + "superTypes": [], + "taggedValues": [] + }, + { + "_type": "class", + "constraints": [], + "name": "Organization", + "originalMilestonedProperties": [], + "package": "model", + "properties": [ + { + "multiplicity": { + "lowerBound": 1, + "upperBound": 1 + }, + "name": "name", + "stereotypes": [], + "taggedValues": [], + "type": "String" + }, + { + "multiplicity": { + "lowerBound": 0 + }, + "name": "employees", + "stereotypes": [], + "taggedValues": [], + "type": "model::Person" + }, + { + "multiplicity": { + "lowerBound": 1, + "upperBound": 1 + }, + "name": "type", + "stereotypes": [], + "taggedValues": [], + "type": "String" + } + ], + "qualifiedProperties": [], + "stereotypes": [], + "superTypes": [], + "taggedValues": [] + }, + { + "_type": "class", + "constraints": [], + "name": "Trader", + "originalMilestonedProperties": [], + "package": "model", + "properties": [ + { + "multiplicity": { + "lowerBound": 1, + "upperBound": 1 + }, + "name": "fullName", + "stereotypes": [], + "taggedValues": [], + "type": "String" + } + ], + "qualifiedProperties": [], + "stereotypes": [], + "superTypes": [], + "taggedValues": [] + }, + { + "_type": "class", + "constraints": [], + "name": "Bank", + "originalMilestonedProperties": [], + "package": "model", + "properties": [ + { + "multiplicity": { + "lowerBound": 1, + "upperBound": 1 + }, + "name": "entityName", + "stereotypes": [], + "taggedValues": [], + "type": "String" + }, + { + "multiplicity": { + "lowerBound": 0 + }, + "name": "employees", + "stereotypes": [], + "taggedValues": [], + "type": "model::Trader" + }, + { + "multiplicity": { + "lowerBound": 1, + "upperBound": 1 + }, + "name": "type", + "stereotypes": [], + "taggedValues": [], + "type": "model::OrgType" + } + ], + "qualifiedProperties": [], + "stereotypes": [], + "superTypes": [], + "taggedValues": [] + }, + { + "_type": "function", + "body": [ + { + "_type": "func", + "function": "plus", + "parameters": [ + { + "_type": "collection", + "multiplicity": { + "lowerBound": 3, + "upperBound": 3 + }, + "values": [ + { + "_type": "property", + "parameters": [ + { + "_type": "var", + "name": "person" + } + ], + "property": "firstName" + }, + { + "_type": "string", + "value": " " + }, + { + "_type": "property", + "parameters": [ + { + "_type": "var", + "name": "person" + } + ], + "property": "lastName" + } + ] + } + ] + } + ], + "name": "personFullName_Person_1__String_1_", + "package": "model", + "parameters": [ + { + "_type": "var", + "class": "model::Person", + "multiplicity": { + "lowerBound": 1, + "upperBound": 1 + }, + "name": "person" + } + ], + "postConstraints": [], + "preConstraints": [], + "returnMultiplicity": { + "lowerBound": 1, + "upperBound": 1 + }, + "returnType": "String", + "stereotypes": [], + "taggedValues": [] + }, + { + "_type": "mapping", + "associationMappings": [], + "classMappings": [ + { + "_type": "pureInstance", + "class": "model::Trader", + "propertyMappings": [ + { + "_type": "purePropertyMapping", + "explodeProperty": false, + "property": { + "class": "model::Trader", + "property": "fullName" + }, + "source": "", + "transform": { + "_type": "lambda", + "body": [ + { + "_type": "func", + "function": "plus", + "parameters": [ + { + "_type": "collection", + "multiplicity": { + "lowerBound": 3, + "upperBound": 3 + }, + "values": [ + { + "_type": "property", + "parameters": [ + { + "_type": "var", + "name": "src" + } + ], + "property": "firstName" + }, + { + "_type": "string", + "value": " " + }, + { + "_type": "property", + "parameters": [ + { + "_type": "var", + "name": "src" + } + ], + "property": "lastName" + } + ] + } + ] + } + ], + "parameters": [] + } + } + ], + "root": true, + "srcClass": "model::Person" + }, + { + "_type": "pureInstance", + "class": "model::Bank", + "propertyMappings": [ + { + "_type": "purePropertyMapping", + "explodeProperty": false, + "property": { + "class": "model::Bank", + "property": "employees" + }, + "source": "", + "target": "model_Trader", + "transform": { + "_type": "lambda", + "body": [ + { + "_type": "property", + "parameters": [ + { + "_type": "var", + "name": "src" + } + ], + "property": "employees" + } + ], + "parameters": [] + } + }, + { + "_type": "purePropertyMapping", + "enumMappingId": "model_OrgType", + "explodeProperty": false, + "property": { + "class": "model::Bank", + "property": "type" + }, + "source": "", + "transform": { + "_type": "lambda", + "body": [ + { + "_type": "property", + "parameters": [ + { + "_type": "var", + "name": "src" + } + ], + "property": "type" + } + ], + "parameters": [] + } + } + ], + "root": true, + "srcClass": "model::Organization" + } + ], + "enumerationMappings": [ + { + "enumValueMappings": [ + { + "enumValue": "CORP", + "sourceValues": [ + { + "_type": "stringSourceValue", + "value": "corporation" + } + ] + }, + { + "enumValue": "LLC", + "sourceValues": [ + { + "_type": "stringSourceValue", + "value": "limitted" + } + ] + } + ], + "enumeration": "model::OrgType" + } + ], + "includedMappings": [], + "name": "mapping", + "package": "model", + "tests": [] + } + ] +} \ No newline at end of file diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml new file mode 100644 index 00000000000..814ecbe68bc --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml @@ -0,0 +1,139 @@ + + + + + + org.finos.legend.engine + legend-engine-xts-analytics-binding + 4.30.3-SNAPSHOT + + 4.0.0 + + legend-engine-xt-analytics-binding-pure + jar + Legend Engine - XT - Analytics - Binding - PAR/JAVA + + + + + org.finos.legend.pure + legend-pure-maven-generation-par + + src/main/resources + ${legend.pure.version} + + core_analytics_binding + + + ${project.basedir}/src/main/resources/core_analytics_binding.definition.json + + + + + generate-sources + + build-pure-jar + + + + + + org.finos.legend.pure + legend-pure-m2-dsl-diagram-grammar + ${legend.pure.version} + + + org.finos.legend.engine + legend-engine-pure-code-compiled-core + ${project.version} + + + + + org.finos.legend.pure + legend-pure-maven-generation-java + + + compile + + build-pure-compiled-jar + + + true + true + modular + true + + core_analytics_binding + + + + + + + org.finos.legend.pure + legend-pure-m2-dsl-diagram-grammar + ${legend.pure.version} + + + org.finos.legend.engine + legend-engine-pure-code-compiled-core + ${project.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-platform-java + + + org.finos.legend.engine + legend-engine-pure-code-compiled-core + ${project.version} + + + + + org.eclipse.collections + eclipse-collections + + + org.eclipse.collections + eclipse-collections-api + + + diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/src/main/java/org.finos.legend.pure.code.core/CoreExternalBindingAnalysisCodeRepositoryProvider.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/src/main/java/org.finos.legend.pure.code.core/CoreExternalBindingAnalysisCodeRepositoryProvider.java new file mode 100644 index 00000000000..69082b86343 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/src/main/java/org.finos.legend.pure.code.core/CoreExternalBindingAnalysisCodeRepositoryProvider.java @@ -0,0 +1,28 @@ +// Copyright 2023 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.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 CoreExternalBindingAnalysisCodeRepositoryProvider implements CodeRepositoryProvider +{ + @Override + public CodeRepository repository() + { + return GenericCodeRepository.build("core_analytics_binding.definition.json"); + } +} diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider new file mode 100644 index 00000000000..32e0375435d --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider @@ -0,0 +1 @@ +org.finos.legend.pure.code.core.CoreExternalBindingAnalysisCodeRepositoryProvider \ No newline at end of file diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/src/main/resources/core_analytics_binding.definition.json b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/src/main/resources/core_analytics_binding.definition.json new file mode 100644 index 00000000000..fd38d51e2ab --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/src/main/resources/core_analytics_binding.definition.json @@ -0,0 +1,11 @@ +{ + "name": "core_analytics_binding", + "pattern": "(meta::analytics::binding)(::.*)?", + "dependencies": [ + "platform", + "platform_functions", + "core", + "core_functions", + "platform_functions_json" + ] +} diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/src/main/resources/core_analytics_binding/modelCoverage/analytics.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/src/main/resources/core_analytics_binding/modelCoverage/analytics.pure new file mode 100644 index 00000000000..636e39436a1 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/src/main/resources/core_analytics_binding/modelCoverage/analytics.pure @@ -0,0 +1,37 @@ +// Copyright 2023 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::analytics::binding::modelCoverage::*; +import meta::external::format::shared::binding::*; +import meta::pure::model::unit::*; + +Class meta::analytics::binding::modelCoverage::BindingModelCoverageAnalysisResult +{ + classes: Class[*]; +} + +function meta::analytics::binding::modelCoverage::getBindingModelCoverage(bindings: Binding[*]):BindingModelCoverageAnalysisResult[1] +{ + let coveredClasses = $bindings->map(b | $b.modelUnit->resolve().classes); + + let prunedClasses = $coveredClasses->removeDuplicates()->map(c|^Class( + name = $c.name, + package = $c.package + )); + + ^BindingModelCoverageAnalysisResult + ( + classes = $prunedClasses + ); +} \ No newline at end of file diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml new file mode 100644 index 00000000000..e6529bb3240 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml @@ -0,0 +1,33 @@ + + + + + org.finos.legend.engine + legend-engine-xts-analytics + 4.30.3-SNAPSHOT + + 4.0.0 + + legend-engine-xts-analytics-binding + pom + Legend Engine - XTS - Analytics + + + legend-engine-xt-analytics-binding-pure + legend-engine-xt-analytics-binding-api + + \ No newline at end of file diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml new file mode 100644 index 00000000000..f93e1b2db5f --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml @@ -0,0 +1,148 @@ + + + + + + org.finos.legend.engine + legend-engine-xts-analytics-class + 4.30.3-SNAPSHOT + + 4.0.0 + + legend-engine-xt-analytics-class-api + jar + Legend Engine - XT - Analytics - Class - API + + + + + org.finos.legend.pure + legend-pure-m3-core + + + + + + org.finos.legend.engine + legend-engine-external-shared + + + org.finos.legend.engine + legend-engine-language-pure-modelManager + + + org.finos.legend.engine + legend-engine-protocol-pure + + + org.finos.legend.engine + legend-engine-language-pure-compiler + + + org.finos.legend.engine + legend-engine-xt-analytics-class-pure + ${project.version} + + + org.finos.legend.engine + legend-engine-shared-core + + + + + + javax.ws.rs + javax.ws.rs-api + + + io.swagger + swagger-annotations + + + + + + org.pac4j.jax-rs + core + + + org.pac4j + pac4j-core + + + + + + com.fasterxml.jackson.core + jackson-annotations + + + com.fasterxml.jackson.core + jackson-databind + + + + + + org.eclipse.collections + eclipse-collections-api + + + org.eclipse.collections + eclipse-collections + + + + + + io.opentracing + opentracing-api + + + io.opentracing + opentracing-util + + + + + + log4j + log4j + test + + + + + + junit + junit + test + + + org.finos.legend.engine + legend-engine-shared-core + test-jar + test + + + org.glassfish.jersey.core + jersey-common + test + + + + diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/main/java/org.finos.legend.engine.api.analytics/ClassAnalytics.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/main/java/org.finos.legend.engine.api.analytics/ClassAnalytics.java new file mode 100644 index 00000000000..be8de745a92 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/main/java/org.finos.legend.engine.api.analytics/ClassAnalytics.java @@ -0,0 +1,104 @@ +// Copyright 2023 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.api.analytics; + +import com.fasterxml.jackson.databind.ObjectMapper; +import io.opentracing.Scope; +import io.opentracing.util.GlobalTracer; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.eclipse.collections.api.RichIterable; +import org.eclipse.collections.api.list.MutableList; +import org.eclipse.collections.impl.factory.Lists; +import org.finos.legend.engine.api.analytics.model.ClassModelCoverageAnalysisInput; +import org.finos.legend.engine.external.shared.format.imports.PureModelContextDataGenerator; +import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; +import org.finos.legend.engine.language.pure.modelManager.ModelManager; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; +import org.finos.legend.engine.shared.core.ObjectMapperFactory; +import org.finos.legend.engine.shared.core.api.result.ManageConstantResult; +import org.finos.legend.engine.shared.core.kerberos.ProfileManagerHelper; +import org.finos.legend.engine.shared.core.operational.errorManagement.ExceptionTool; +import org.finos.legend.engine.shared.core.operational.http.InflateInterceptor; +import org.finos.legend.engine.shared.core.operational.logs.LoggingEventType; +import org.finos.legend.pure.generated.Root_meta_analytics_class_modelCoverage_ClassModelCoverageAnalysisResult; +import org.finos.legend.pure.generated.core_analytics_class_modelCoverage_analytics; +import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.extension.Profile; +import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.Class; +import org.pac4j.core.profile.CommonProfile; +import org.pac4j.core.profile.ProfileManager; +import org.pac4j.jax.rs.annotations.Pac4JProfileManager; + +import javax.ws.rs.Consumes; +import javax.ws.rs.DefaultValue; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import java.util.Objects; + +@Api(tags = "Analytics - Model") +@Path("pure/v1/analytics/Class") +public class ClassAnalytics +{ + private static final ObjectMapper objectMapper = ObjectMapperFactory.getNewStandardObjectMapperWithPureProtocolExtensionSupports(); + + private final ModelManager modelManager; + + public ClassAnalytics(ModelManager modelManager) + { + this.modelManager = modelManager; + } + + @POST + @Path("modelCoverage") + @ApiOperation(value = "Analyze the class to identify models covered by the class") + @Consumes({MediaType.APPLICATION_JSON, InflateInterceptor.APPLICATION_ZLIB}) + @Produces(MediaType.APPLICATION_JSON) + public Response analyzeClassModelCoverage(ClassModelCoverageAnalysisInput input, + @QueryParam("includeClass") @DefaultValue("true") boolean includeClass, + @ApiParam(hidden = true) @Pac4JProfileManager ProfileManager pm) + { + MutableList profiles = ProfileManagerHelper.extractProfiles(pm); + PureModelContextData pureModelContextData = this.modelManager.loadData(input.model, input.clientVersion, profiles); + PureModel pureModel = this.modelManager.loadModel(pureModelContextData, input.clientVersion, profiles, null); + Class _class = pureModel.getClass(input._class); + + try (Scope scope = GlobalTracer.get().buildSpan("Analytics: class model coverage").startActive(true)) + { + try + { + Root_meta_analytics_class_modelCoverage_ClassModelCoverageAnalysisResult result = core_analytics_class_modelCoverage_analytics.Root_meta_analytics_class_modelCoverage_getClassModelCoverage_Class_MANY__ClassModelCoverageAnalysisResult_1_(Lists.immutable.of(_class), pureModel.getExecutionSupport()); + PureModelContextData classes = PureModelContextDataGenerator.generatePureModelContextDataFromClasses(result._classes(), input.clientVersion, pureModel.getExecutionSupport()); + PureModelContextData enums = PureModelContextDataGenerator.generatePureModelContextDataFromEnumerations(result._enumerations(), input.clientVersion, pureModel.getExecutionSupport()); + PureModelContextData _profiles = PureModelContextDataGenerator.generatePureModelContextDataFromProfile((RichIterable) result._profiles(), input.clientVersion, pureModel.getExecutionSupport()); + PureModelContextData associations = PureModelContextDataGenerator.generatePureModelContextDataFromAssociations(result._associations(), input.clientVersion, pureModel.getExecutionSupport()); + PureModelContextData.Builder builder = PureModelContextData.newBuilder(); + if (includeClass) + { + builder.addElement(Objects.requireNonNull(pureModelContextData.getElements().stream().filter(el -> input._class.equals(el.getPath())).findFirst().get())); + } + return ManageConstantResult.manageResult(profiles, builder.build().combine(classes).combine(enums).combine(_profiles).combine(associations), objectMapper); + } + catch (Exception e) + { + return ExceptionTool.exceptionManager(e, LoggingEventType.ANALYTICS_ERROR, Response.Status.BAD_REQUEST, profiles); + } + } + } +} diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/main/java/org.finos.legend.engine.api.analytics/model/ClassModelCoverageAnalysisInput.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/main/java/org.finos.legend.engine.api.analytics/model/ClassModelCoverageAnalysisInput.java new file mode 100644 index 00000000000..2d2658700f8 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/main/java/org.finos.legend.engine.api.analytics/model/ClassModelCoverageAnalysisInput.java @@ -0,0 +1,41 @@ +// Copyright 2023 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.api.analytics.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContext; + +public class ClassModelCoverageAnalysisInput +{ + public String clientVersion; + + @JsonProperty(required = true) + public String _class; + + @JsonProperty(required = true) + public PureModelContext model; + + @JsonCreator + public ClassModelCoverageAnalysisInput( + @JsonProperty("clientVersion") String clientVersion, + @JsonProperty("_class") String _class, + @JsonProperty("model") PureModelContext model) + { + this.clientVersion = clientVersion; + this._class = _class; + this.model = model; + } +} \ No newline at end of file diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/test/java/org.finos.legend.engine.api.analytics.test/TestClassAnalyticsApi.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/test/java/org.finos.legend.engine.api.analytics.test/TestClassAnalyticsApi.java new file mode 100644 index 00000000000..fa1a59055d3 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/test/java/org.finos.legend.engine.api.analytics.test/TestClassAnalyticsApi.java @@ -0,0 +1,44 @@ +// Copyright 2023 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.api.analytics.test; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.finos.legend.engine.api.analytics.ClassAnalytics; +import org.finos.legend.engine.api.analytics.model.ClassModelCoverageAnalysisInput; +import org.finos.legend.engine.language.pure.modelManager.ModelManager; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; +import org.finos.legend.engine.shared.core.ObjectMapperFactory; +import org.finos.legend.engine.shared.core.deployment.DeploymentMode; +import org.junit.Assert; +import org.junit.Test; + +import java.io.IOException; +import java.util.Objects; + +public class TestClassAnalyticsApi +{ + private final ClassAnalytics api = new ClassAnalytics(new ModelManager(DeploymentMode.TEST)); + private static final ObjectMapper objectMapper = ObjectMapperFactory.getNewStandardObjectMapperWithPureProtocolExtensionSupports(); + + @Test + public void testClassModelCoverageAnalysis() throws IOException + { + PureModelContextData modelContextData = objectMapper.readValue(Objects.requireNonNull(getClass().getClassLoader().getResource("classModelCoverageAnalysisTestData.json")), PureModelContextData.class); + Assert.assertEquals( + "{\"_type\":\"data\",\"elements\":[{\"_type\":\"class\",\"constraints\":[],\"name\":\"Organization\",\"originalMilestonedProperties\":[],\"package\":\"model\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"name\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"},{\"multiplicity\":{\"lowerBound\":0},\"name\":\"employees\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::Person\"},{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"type\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Person\",\"originalMilestonedProperties\":[],\"package\":\"model\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]}]}", + api.analyzeClassModelCoverage(new ClassModelCoverageAnalysisInput("vX_X_X", "model::Organization", modelContextData), true, null).getEntity().toString()); + } +} + diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/test/resources/classModelCoverageAnalysisTestData.json b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/test/resources/classModelCoverageAnalysisTestData.json new file mode 100644 index 00000000000..a2f5e93e068 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/test/resources/classModelCoverageAnalysisTestData.json @@ -0,0 +1,275 @@ +{ + "_type": "data", + "elements": [ + { + "_type": "Enumeration", + "name": "OrgType", + "package": "model", + "values": [ + { + "value": "CORP" + }, + { + "value": "LLC" + } + ] + }, + { + "_type": "class", + "name": "Person", + "package": "model", + "properties": [ + { + "multiplicity": { + "lowerBound": 1, + "upperBound": 1 + }, + "name": "firstName", + "type": "String" + }, + { + "multiplicity": { + "lowerBound": 1, + "upperBound": 1 + }, + "name": "lastName", + "type": "String" + } + ] + }, + { + "_type": "class", + "name": "Organization", + "package": "model", + "properties": [ + { + "multiplicity": { + "lowerBound": 1, + "upperBound": 1 + }, + "name": "name", + "type": "String" + }, + { + "multiplicity": { + "lowerBound": 0 + }, + "name": "employees", + "type": "model::Person" + }, + { + "multiplicity": { + "lowerBound": 1, + "upperBound": 1 + }, + "name": "type", + "type": "String" + } + ] + }, + { + "_type": "class", + "name": "Trader", + "package": "model", + "properties": [ + { + "multiplicity": { + "lowerBound": 1, + "upperBound": 1 + }, + "name": "fullName", + "type": "String" + } + ] + }, + { + "_type": "class", + "name": "Bank", + "package": "model", + "properties": [ + { + "multiplicity": { + "lowerBound": 1, + "upperBound": 1 + }, + "name": "entityName", + "type": "String" + }, + { + "multiplicity": { + "lowerBound": 0 + }, + "name": "employees", + "type": "model::Trader" + }, + { + "multiplicity": { + "lowerBound": 1, + "upperBound": 1 + }, + "name": "type", + "type": "model::OrgType" + } + ] + }, + { + "_type": "mapping", + "classMappings": [ + { + "_type": "pureInstance", + "class": "model::Trader", + "propertyMappings": [ + { + "_type": "purePropertyMapping", + "property": { + "class": "model::Trader", + "property": "fullName" + }, + "source": "model_Trader", + "transform": { + "_type": "lambda", + "body": [ + { + "_type": "func", + "function": "plus", + "parameters": [ + { + "_type": "collection", + "multiplicity": { + "lowerBound": 3, + "upperBound": 3 + }, + "values": [ + { + "_type": "property", + "parameters": [ + { + "_type": "var", + "name": "src" + } + ], + "property": "firstName" + }, + { + "_type": "string", + "multiplicity": { + "lowerBound": 1, + "upperBound": 1 + }, + "values": [ + " " + ] + }, + { + "_type": "property", + "parameters": [ + { + "_type": "var", + "name": "src" + } + ], + "property": "lastName" + } + ] + } + ] + } + ], + "parameters": [] + } + } + ], + "root": true, + "srcClass": "model::Person" + }, + { + "_type": "pureInstance", + "class": "model::Bank", + "propertyMappings": [ + { + "_type": "purePropertyMapping", + "property": { + "class": "model::Bank", + "property": "employees" + }, + "source": "model_Bank", + "target": "model_Trader", + "transform": { + "_type": "lambda", + "body": [ + { + "_type": "property", + "parameters": [ + { + "_type": "var", + "name": "src" + } + ], + "property": "employees" + } + ], + "parameters": [] + } + }, + { + "_type": "purePropertyMapping", + "enumMappingId": "model_OrgType", + "property": { + "class": "model::Bank", + "property": "type" + }, + "source": "model_Bank", + "transform": { + "_type": "lambda", + "body": [ + { + "_type": "property", + "parameters": [ + { + "_type": "var", + "name": "src" + } + ], + "property": "type" + } + ], + "parameters": [] + } + } + ], + "root": true, + "srcClass": "model::Organization" + } + ], + "enumerationMappings": [ + { + "enumValueMappings": [ + { + "enumValue": "CORP", + "sourceValues": [ + { + "_type": "stringSourceValue", + "value": "corporation" + } + ] + }, + { + "enumValue": "LLC", + "sourceValues": [ + { + "_type": "stringSourceValue", + "value": "limitted" + } + ] + } + ], + "enumeration": "model::OrgType" + } + ], + "includedMappings": [], + "name": "mapping", + "package": "model", + "tests": [] + } + ] +} \ No newline at end of file diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml new file mode 100644 index 00000000000..f0ca04af9a6 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml @@ -0,0 +1,143 @@ + + + + + + org.finos.legend.engine + legend-engine-xts-analytics-class + 4.30.3-SNAPSHOT + + 4.0.0 + + legend-engine-xt-analytics-class-pure + jar + Legend Engine - XT - Analytics - Class - PAR/JAVA + + + + + org.finos.legend.pure + legend-pure-maven-generation-par + + src/main/resources + ${legend.pure.version} + + core_analytics_class + + + ${project.basedir}/src/main/resources/core_analytics_class.definition.json + + + + + generate-sources + + build-pure-jar + + + + + + org.finos.legend.pure + legend-pure-m2-dsl-diagram-grammar + ${legend.pure.version} + + + org.finos.legend.engine + legend-engine-pure-code-compiled-functions + ${project.version} + + + + + org.finos.legend.pure + legend-pure-maven-generation-java + + + compile + + build-pure-compiled-jar + + + true + true + modular + true + + core_analytics_class + + + + + + + org.finos.legend.pure + legend-pure-m2-dsl-diagram-grammar + ${legend.pure.version} + + + org.finos.legend.engine + legend-engine-pure-code-compiled-functions + ${project.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-platform-java + + + org.finos.legend.engine + legend-engine-pure-platform-functions-java + + + org.finos.legend.engine + legend-engine-pure-code-compiled-functions + ${project.version} + + + + + org.eclipse.collections + eclipse-collections + + + org.eclipse.collections + eclipse-collections-api + + + diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/src/main/java/org.finos.legend.pure.code.core/CoreExternalClassAnalysisCodeRepositoryProvider.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/src/main/java/org.finos.legend.pure.code.core/CoreExternalClassAnalysisCodeRepositoryProvider.java new file mode 100644 index 00000000000..fe99d9e9199 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/src/main/java/org.finos.legend.pure.code.core/CoreExternalClassAnalysisCodeRepositoryProvider.java @@ -0,0 +1,28 @@ +// Copyright 2023 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.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 CoreExternalClassAnalysisCodeRepositoryProvider implements CodeRepositoryProvider +{ + @Override + public CodeRepository repository() + { + return GenericCodeRepository.build("core_analytics_class.definition.json"); + } +} diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider new file mode 100644 index 00000000000..cd37792e3cf --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider @@ -0,0 +1 @@ +org.finos.legend.pure.code.core.CoreExternalClassAnalysisCodeRepositoryProvider \ No newline at end of file diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/src/main/resources/core_analytics_class.definition.json b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/src/main/resources/core_analytics_class.definition.json new file mode 100644 index 00000000000..8032fc0162f --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/src/main/resources/core_analytics_class.definition.json @@ -0,0 +1,9 @@ +{ + "name": "core_analytics_class", + "pattern": "(meta::analytics::class)(::.*)?", + "dependencies": [ + "platform", + "platform_functions", + "core_functions" + ] +} diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/src/main/resources/core_analytics_class/modelCoverage/analytics.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/src/main/resources/core_analytics_class/modelCoverage/analytics.pure new file mode 100644 index 00000000000..6ab79ec2308 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/src/main/resources/core_analytics_class/modelCoverage/analytics.pure @@ -0,0 +1,128 @@ +// Copyright 2023 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::analytics::class::modelCoverage::utility::*; +import meta::analytics::class::modelCoverage::*; +import meta::pure::milestoning::*; + +Class meta::analytics::class::modelCoverage::ClassModelCoverageAnalysisResult +{ + classes: Class[*]; + enumerations: Enumeration[*]; + associations: Association[*]; + profiles: Profile[*]; +} + +function meta::analytics::class::modelCoverage::getClassModelCoverage(_classes: Class[*]):ClassModelCoverageAnalysisResult[1] +{ + // superTypes + let superClasses = $_classes->map(c | $c->superTypes()); + let classes = $_classes->concatenate($superClasses); + + // associations + let allPropertiesFromAssociations = $classes.propertiesFromAssociations; + let allQualifiedPropertiesFromAssociations = $classes.qualifiedPropertiesFromAssociations; + let associations = $allPropertiesFromAssociations.owner->filter(t|$t->instanceOf(Association))->cast(@Association)->removeDuplicates(); + let associationClasses = $associations.properties->map(p|$p.genericType.rawType) + ->filter(t|$t->instanceOf(Class))->cast(@Class)->removeDuplicates()->filter(c|!$classes->contains($c)); + + // properties + let allProperties = $classes.properties; + let allQualifiedProperties = $classes.qualifiedProperties; + let foundClasses = $classes->concatenate($associationClasses); + let propertyTypes = $allProperties->map(p|$p.genericType.rawType)->concatenate($allQualifiedProperties->map(p|$p.genericType.rawType)); + let propertyClasses = $propertyTypes->filter(t|$t->instanceOf(Class))->cast(@Class)->removeDuplicates()->filter(c|!$foundClasses->contains($c)); + + // enumerations + let enumerations = $propertyTypes->filter(t|$t->instanceOf(Enumeration))->cast(@Enumeration)->removeDuplicates(); + + // NOTE: following, we prune the tagged values and stereotypes from the enumerations, associations, and classes + // so we don't have to return them, if in the future, we need to return these (as this analytics require to do so) + // we should reconsider these optimization + let prunedEnumerations = $enumerations->map(e|^$e( + stereotypes = [], + taggedValues = [], + values = meta::pure::functions::meta::enumValues($e)->map(v|^$v( + stereotypes = [], + taggedValues = [] + ))->toOneMany() // this is a hack to work around a problem with validation on size of enumeration values + )); + + let prunedClasses = $classes->map(c|^$c( + properties = $c.properties->reverseMilestoningTransforms()->map(p|^$p( + stereotypes = [], + taggedValues = [] + )), + qualifiedProperties = $c.qualifiedProperties->reverseMilestoningTransforms()->cast(@QualifiedProperty)->map(p|^$p( + stereotypes = [], + taggedValues = [] + )) + )); + + // NOTE: for classes found from association and properties only, we just need to stub them + let prunedPropertyClasses = $propertyClasses->map(c|^Class( + name = $c.name, + package = $c.package + )); + let prunedAssociationClasses = $associationClasses->map(c|^Class( + name = $c.name, + package = $c.package + )); + + // Remove duplicate classes. + let prunedClassPaths = $prunedClasses->map(c | $c->elementToPath()); + let prunedStubClasses = $prunedAssociationClasses->concatenate($prunedPropertyClasses) + ->removeDuplicates()->filter(c | !$prunedClassPaths->contains($c->elementToPath())); + let coveredClasses = $prunedClasses->concatenate($prunedStubClasses); + + // NOTE: prune here so we don't have to do analytics to find the used profiles + let prunedAssociations = $associations->map(a| + let props = $a.properties->reverseMilestoningTransforms()->cast(@Property)->map(p|^$p( + stereotypes = [], + taggedValues = [] + )); + let newProps = [$props->at(0), $props->at(1)]; + ^$a( + stereotypes = [], + taggedValues = [], + properties = $newProps, + qualifiedProperties = $a.qualifiedProperties->reverseMilestoningTransforms()->cast(@QualifiedProperty)->map(p|^$p( + stereotypes = [], + taggedValues = [] + )) + ); + ); + + // profile + // NOTE: we don't support showing tagged values and stereotypes for properties at the moment + let profiles = $classes->map(class|$class.taggedValues->map(tv|$tv.tag.profile) + ->concatenate($class.stereotypes->map(st|$st.profile)) + ->cast(@Profile)->removeDuplicates()); + + // TODO?: prune profile - e.g. we can prune profile to limit to used tags and stereotypes only + let prunedProfiles = $profiles->map(p|^Profile( + name = $p.name, + package = $p.package, + p_tags = $p.p_tags, + p_stereotypes = $p.p_stereotypes + )); + + ^ClassModelCoverageAnalysisResult + ( + classes = $coveredClasses, + profiles = $prunedProfiles, + enumerations = $prunedEnumerations, + associations = $prunedAssociations + ); +} diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/src/main/resources/core_analytics_class/modelCoverage/utility.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/src/main/resources/core_analytics_class/modelCoverage/utility.pure new file mode 100644 index 00000000000..b85123a9cf4 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/src/main/resources/core_analytics_class/modelCoverage/utility.pure @@ -0,0 +1,34 @@ +// Copyright 2023 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::analytics::class::modelCoverage::utility::*; + +function {doc.doc = 'Get the parent or super types of the provided class'} + meta::analytics::class::modelCoverage::utility::superTypes(class : Class[1], recursive:Boolean[1]) : Class[*] +{ + let types = if ($recursive, | $class->generalizations(), | $class.generalizations.general.rawType); + + $types->map(rw| + $rw->match([ + c:Class[1] | if($c != Any && $c != $class, | $c, | []), + a:Any[1] | [] + ]) + ); +} + +function {doc.doc = 'Get the parent or super types of the provided class recursively'} + meta::analytics::class::modelCoverage::utility::superTypes(class : Class[1]) : Class[*] +{ + $class->superTypes(true); +} \ No newline at end of file diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml new file mode 100644 index 00000000000..53377e59dd9 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml @@ -0,0 +1,33 @@ + + + + + org.finos.legend.engine + legend-engine-xts-analytics + 4.30.3-SNAPSHOT + + 4.0.0 + + legend-engine-xts-analytics-class + pom + Legend Engine - XTS - Analytics + + + legend-engine-xt-analytics-class-pure + legend-engine-xt-analytics-class-api + + \ No newline at end of file diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml new file mode 100644 index 00000000000..c7459c0c20a --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml @@ -0,0 +1,140 @@ + + + + + + org.finos.legend.engine + legend-engine-xts-analytics-function + 4.30.3-SNAPSHOT + + 4.0.0 + + legend-engine-xt-analytics-function-api + jar + Legend Engine - XT - Analytics - Function - API + + + + + org.finos.legend.pure + legend-pure-m3-core + + + + + + org.finos.legend.engine + legend-engine-external-shared + + + org.finos.legend.engine + legend-engine-language-pure-modelManager + + + org.finos.legend.engine + legend-engine-protocol-pure + + + org.finos.legend.engine + legend-engine-language-pure-compiler + + + org.finos.legend.engine + legend-engine-xt-analytics-function-pure + ${project.version} + + + org.finos.legend.engine + legend-engine-shared-core + + + + + + javax.ws.rs + javax.ws.rs-api + + + io.swagger + swagger-annotations + + + + + + org.pac4j.jax-rs + core + + + org.pac4j + pac4j-core + + + + + + com.fasterxml.jackson.core + jackson-annotations + + + com.fasterxml.jackson.core + jackson-databind + + + + + + org.eclipse.collections + eclipse-collections-api + + + org.eclipse.collections + eclipse-collections + + + + + + io.opentracing + opentracing-api + + + io.opentracing + opentracing-util + + + + + + junit + junit + test + + + org.finos.legend.engine + legend-engine-shared-core + test-jar + test + + + org.glassfish.jersey.core + jersey-common + test + + + + diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/src/main/java/org.finos.legend.engine.api.analytics/FunctionAnalytics.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/src/main/java/org.finos.legend.engine.api.analytics/FunctionAnalytics.java new file mode 100644 index 00000000000..46d26fd995d --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/src/main/java/org.finos.legend.engine.api.analytics/FunctionAnalytics.java @@ -0,0 +1,100 @@ +// Copyright 2023 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.api.analytics; + +import com.fasterxml.jackson.databind.ObjectMapper; +import io.opentracing.Scope; +import io.opentracing.util.GlobalTracer; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import io.swagger.annotations.ApiParam; +import org.eclipse.collections.api.list.MutableList; +import org.eclipse.collections.impl.factory.Lists; +import org.finos.legend.engine.api.analytics.model.FunctionModelCoverageAnalysisInput; +import org.finos.legend.engine.external.shared.format.imports.PureModelContextDataGenerator; +import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; +import org.finos.legend.engine.language.pure.modelManager.ModelManager; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; +import org.finos.legend.engine.shared.core.ObjectMapperFactory; +import org.finos.legend.engine.shared.core.api.result.ManageConstantResult; +import org.finos.legend.engine.shared.core.kerberos.ProfileManagerHelper; +import org.finos.legend.engine.shared.core.operational.errorManagement.ExceptionTool; +import org.finos.legend.engine.shared.core.operational.http.InflateInterceptor; +import org.finos.legend.engine.shared.core.operational.logs.LoggingEventType; +import org.finos.legend.pure.generated.Root_meta_analytics_function_modelCoverage_FunctionModelCoverageAnalysisResult; +import org.finos.legend.pure.generated.core_analytics_function_modelCoverage_analytics; +import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.ConcreteFunctionDefinition; +import org.pac4j.core.profile.CommonProfile; +import org.pac4j.core.profile.ProfileManager; +import org.pac4j.jax.rs.annotations.Pac4JProfileManager; + +import javax.ws.rs.Consumes; +import javax.ws.rs.DefaultValue; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import javax.ws.rs.QueryParam; +import javax.ws.rs.core.MediaType; +import javax.ws.rs.core.Response; +import java.util.Objects; + +@Api(tags = "Analytics - Model") +@Path("pure/v1/analytics/function") +public class FunctionAnalytics +{ + private static final ObjectMapper objectMapper = ObjectMapperFactory.getNewStandardObjectMapperWithPureProtocolExtensionSupports(); + + private final ModelManager modelManager; + + public FunctionAnalytics(ModelManager modelManager) + { + this.modelManager = modelManager; + } + + @POST + @Path("modelCoverage") + @ApiOperation(value = "Analyze the function to identify models covered by the function") + @Consumes({MediaType.APPLICATION_JSON, InflateInterceptor.APPLICATION_ZLIB}) + @Produces(MediaType.APPLICATION_JSON) + public Response analyzeFunctionModelCoverage(FunctionModelCoverageAnalysisInput input, + @QueryParam("includeFunction") @DefaultValue("true") boolean includeFunction, + @ApiParam(hidden = true) @Pac4JProfileManager ProfileManager pm) + { + MutableList profiles = ProfileManagerHelper.extractProfiles(pm); + PureModelContextData pureModelContextData = this.modelManager.loadData(input.model, input.clientVersion, profiles); + PureModel pureModel = this.modelManager.loadModel(pureModelContextData, input.clientVersion, profiles, null); + ConcreteFunctionDefinition function = pureModel.getConcreteFunctionDefinition_safe(input.function); + + try (Scope scope = GlobalTracer.get().buildSpan("Analytics: function model coverage").startActive(true)) + { + try + { + Root_meta_analytics_function_modelCoverage_FunctionModelCoverageAnalysisResult result = core_analytics_function_modelCoverage_analytics.Root_meta_analytics_function_modelCoverage_getFunctionModelCoverage_ConcreteFunctionDefinition_MANY__FunctionModelCoverageAnalysisResult_1_(Lists.immutable.of(function), pureModel.getExecutionSupport()); + PureModelContextData classes = PureModelContextDataGenerator.generatePureModelContextDataFromClasses(result._classes(), input.clientVersion, pureModel.getExecutionSupport()); + PureModelContextData enums = PureModelContextDataGenerator.generatePureModelContextDataFromEnumerations(result._enumerations(), input.clientVersion, pureModel.getExecutionSupport()); + PureModelContextData.Builder builder = PureModelContextData.newBuilder(); + if (includeFunction) + { + builder.addElement(Objects.requireNonNull(pureModelContextData.getElements().stream().filter(el -> input.function.equals(el.getPath())).findFirst().get())); + } + return ManageConstantResult.manageResult(profiles, builder.build().combine(classes).combine(enums), objectMapper); + } + catch (Exception e) + { + return ExceptionTool.exceptionManager(e, LoggingEventType.ANALYTICS_ERROR, Response.Status.BAD_REQUEST, profiles); + } + } + } +} diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/src/main/java/org.finos.legend.engine.api.analytics/model/FunctionModelCoverageAnalysisInput.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/src/main/java/org.finos.legend.engine.api.analytics/model/FunctionModelCoverageAnalysisInput.java new file mode 100644 index 00000000000..5f81dfe9eb8 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/src/main/java/org.finos.legend.engine.api.analytics/model/FunctionModelCoverageAnalysisInput.java @@ -0,0 +1,41 @@ +// Copyright 2023 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.api.analytics.model; + +import com.fasterxml.jackson.annotation.JsonCreator; +import com.fasterxml.jackson.annotation.JsonProperty; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContext; + +public class FunctionModelCoverageAnalysisInput +{ + public String clientVersion; + + @JsonProperty(required = true) + public String function; + + @JsonProperty(required = true) + public PureModelContext model; + + @JsonCreator + public FunctionModelCoverageAnalysisInput( + @JsonProperty("clientVersion") String clientVersion, + @JsonProperty("function") String function, + @JsonProperty("model") PureModelContext model) + { + this.clientVersion = clientVersion; + this.function = function; + this.model = model; + } +} \ No newline at end of file diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/src/test/java/org.finos.legend.engine.api.analytics.test/TestFunctionAnalyticsApi.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/src/test/java/org.finos.legend.engine.api.analytics.test/TestFunctionAnalyticsApi.java new file mode 100644 index 00000000000..bd37ad8f514 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/src/test/java/org.finos.legend.engine.api.analytics.test/TestFunctionAnalyticsApi.java @@ -0,0 +1,44 @@ +// Copyright 2023 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.api.analytics.test; + +import com.fasterxml.jackson.databind.ObjectMapper; +import org.finos.legend.engine.api.analytics.FunctionAnalytics; +import org.finos.legend.engine.api.analytics.model.FunctionModelCoverageAnalysisInput; +import org.finos.legend.engine.language.pure.modelManager.ModelManager; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; +import org.finos.legend.engine.shared.core.ObjectMapperFactory; +import org.finos.legend.engine.shared.core.deployment.DeploymentMode; +import org.junit.Assert; +import org.junit.Test; + +import java.io.IOException; +import java.util.Objects; + +public class TestFunctionAnalyticsApi +{ + private final FunctionAnalytics api = new FunctionAnalytics(new ModelManager(DeploymentMode.TEST)); + private static final ObjectMapper objectMapper = ObjectMapperFactory.getNewStandardObjectMapperWithPureProtocolExtensionSupports(); + + @Test + public void testFunctionModelCoverageAnalysis() throws IOException + { + PureModelContextData modelContextData = objectMapper.readValue(Objects.requireNonNull(getClass().getClassLoader().getResource("functionModelCoverageAnalysisTestData.json")), PureModelContextData.class); + Assert.assertEquals( + "{\"_type\":\"data\",\"elements\":[{\"_type\":\"class\",\"constraints\":[],\"name\":\"Person\",\"originalMilestonedProperties\":[],\"package\":\"model\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"function\",\"body\":[{\"_type\":\"func\",\"function\":\"plus\",\"parameters\":[{\"_type\":\"collection\",\"multiplicity\":{\"lowerBound\":3,\"upperBound\":3},\"values\":[{\"_type\":\"property\",\"parameters\":[{\"_type\":\"var\",\"name\":\"person\"}],\"property\":\"firstName\"},{\"_type\":\"string\",\"value\":\" \"},{\"_type\":\"property\",\"parameters\":[{\"_type\":\"var\",\"name\":\"person\"}],\"property\":\"lastName\"}]}]}],\"name\":\"personFullName_Person_1__String_1_\",\"package\":\"model\",\"parameters\":[{\"_type\":\"var\",\"class\":\"model::Person\",\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"person\"}],\"postConstraints\":[],\"preConstraints\":[],\"returnMultiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"returnType\":\"String\",\"stereotypes\":[],\"taggedValues\":[]}]}", + api.analyzeFunctionModelCoverage(new FunctionModelCoverageAnalysisInput("vX_X_X", "model::personFullName_Person_1__String_1_", modelContextData), true, null).getEntity().toString()); + } +} + diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/src/test/resources/functionModelCoverageAnalysisTestData.json b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/src/test/resources/functionModelCoverageAnalysisTestData.json new file mode 100644 index 00000000000..977c0b2b0dd --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/src/test/resources/functionModelCoverageAnalysisTestData.json @@ -0,0 +1,387 @@ +{ + "_type": "data", + "elements": [ + { + "_type": "Enumeration", + "name": "OrgType", + "package": "model", + "stereotypes": [], + "taggedValues": [], + "values": [ + { + "stereotypes": [], + "taggedValues": [], + "value": "CORP" + }, + { + "stereotypes": [], + "taggedValues": [], + "value": "LLC" + } + ] + }, + { + "_type": "class", + "constraints": [], + "name": "Person", + "originalMilestonedProperties": [], + "package": "model", + "properties": [ + { + "multiplicity": { + "lowerBound": 1, + "upperBound": 1 + }, + "name": "firstName", + "stereotypes": [], + "taggedValues": [], + "type": "String" + }, + { + "multiplicity": { + "lowerBound": 1, + "upperBound": 1 + }, + "name": "lastName", + "stereotypes": [], + "taggedValues": [], + "type": "String" + } + ], + "qualifiedProperties": [], + "stereotypes": [], + "superTypes": [], + "taggedValues": [] + }, + { + "_type": "class", + "constraints": [], + "name": "Organization", + "originalMilestonedProperties": [], + "package": "model", + "properties": [ + { + "multiplicity": { + "lowerBound": 1, + "upperBound": 1 + }, + "name": "name", + "stereotypes": [], + "taggedValues": [], + "type": "String" + }, + { + "multiplicity": { + "lowerBound": 0 + }, + "name": "employees", + "stereotypes": [], + "taggedValues": [], + "type": "model::Person" + }, + { + "multiplicity": { + "lowerBound": 1, + "upperBound": 1 + }, + "name": "type", + "stereotypes": [], + "taggedValues": [], + "type": "String" + } + ], + "qualifiedProperties": [], + "stereotypes": [], + "superTypes": [], + "taggedValues": [] + }, + { + "_type": "class", + "constraints": [], + "name": "Trader", + "originalMilestonedProperties": [], + "package": "model", + "properties": [ + { + "multiplicity": { + "lowerBound": 1, + "upperBound": 1 + }, + "name": "fullName", + "stereotypes": [], + "taggedValues": [], + "type": "String" + } + ], + "qualifiedProperties": [], + "stereotypes": [], + "superTypes": [], + "taggedValues": [] + }, + { + "_type": "class", + "constraints": [], + "name": "Bank", + "originalMilestonedProperties": [], + "package": "model", + "properties": [ + { + "multiplicity": { + "lowerBound": 1, + "upperBound": 1 + }, + "name": "entityName", + "stereotypes": [], + "taggedValues": [], + "type": "String" + }, + { + "multiplicity": { + "lowerBound": 0 + }, + "name": "employees", + "stereotypes": [], + "taggedValues": [], + "type": "model::Trader" + }, + { + "multiplicity": { + "lowerBound": 1, + "upperBound": 1 + }, + "name": "type", + "stereotypes": [], + "taggedValues": [], + "type": "model::OrgType" + } + ], + "qualifiedProperties": [], + "stereotypes": [], + "superTypes": [], + "taggedValues": [] + }, + { + "_type": "function", + "body": [ + { + "_type": "func", + "function": "plus", + "parameters": [ + { + "_type": "collection", + "multiplicity": { + "lowerBound": 3, + "upperBound": 3 + }, + "values": [ + { + "_type": "property", + "parameters": [ + { + "_type": "var", + "name": "person" + } + ], + "property": "firstName" + }, + { + "_type": "string", + "value": " " + }, + { + "_type": "property", + "parameters": [ + { + "_type": "var", + "name": "person" + } + ], + "property": "lastName" + } + ] + } + ] + } + ], + "name": "personFullName_Person_1__String_1_", + "package": "model", + "parameters": [ + { + "_type": "var", + "class": "model::Person", + "multiplicity": { + "lowerBound": 1, + "upperBound": 1 + }, + "name": "person" + } + ], + "postConstraints": [], + "preConstraints": [], + "returnMultiplicity": { + "lowerBound": 1, + "upperBound": 1 + }, + "returnType": "String", + "stereotypes": [], + "taggedValues": [] + }, + { + "_type": "mapping", + "associationMappings": [], + "classMappings": [ + { + "_type": "pureInstance", + "class": "model::Trader", + "propertyMappings": [ + { + "_type": "purePropertyMapping", + "explodeProperty": false, + "property": { + "class": "model::Trader", + "property": "fullName" + }, + "source": "", + "transform": { + "_type": "lambda", + "body": [ + { + "_type": "func", + "function": "plus", + "parameters": [ + { + "_type": "collection", + "multiplicity": { + "lowerBound": 3, + "upperBound": 3 + }, + "values": [ + { + "_type": "property", + "parameters": [ + { + "_type": "var", + "name": "src" + } + ], + "property": "firstName" + }, + { + "_type": "string", + "value": " " + }, + { + "_type": "property", + "parameters": [ + { + "_type": "var", + "name": "src" + } + ], + "property": "lastName" + } + ] + } + ] + } + ], + "parameters": [] + } + } + ], + "root": true, + "srcClass": "model::Person" + }, + { + "_type": "pureInstance", + "class": "model::Bank", + "propertyMappings": [ + { + "_type": "purePropertyMapping", + "explodeProperty": false, + "property": { + "class": "model::Bank", + "property": "employees" + }, + "source": "", + "target": "model_Trader", + "transform": { + "_type": "lambda", + "body": [ + { + "_type": "property", + "parameters": [ + { + "_type": "var", + "name": "src" + } + ], + "property": "employees" + } + ], + "parameters": [] + } + }, + { + "_type": "purePropertyMapping", + "enumMappingId": "model_OrgType", + "explodeProperty": false, + "property": { + "class": "model::Bank", + "property": "type" + }, + "source": "", + "transform": { + "_type": "lambda", + "body": [ + { + "_type": "property", + "parameters": [ + { + "_type": "var", + "name": "src" + } + ], + "property": "type" + } + ], + "parameters": [] + } + } + ], + "root": true, + "srcClass": "model::Organization" + } + ], + "enumerationMappings": [ + { + "enumValueMappings": [ + { + "enumValue": "CORP", + "sourceValues": [ + { + "_type": "stringSourceValue", + "value": "corporation" + } + ] + }, + { + "enumValue": "LLC", + "sourceValues": [ + { + "_type": "stringSourceValue", + "value": "limitted" + } + ] + } + ], + "enumeration": "model::OrgType" + } + ], + "includedMappings": [], + "name": "mapping", + "package": "model", + "tests": [] + } + ] +} \ No newline at end of file diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml new file mode 100644 index 00000000000..e3bcaf30dc8 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml @@ -0,0 +1,143 @@ + + + + + + org.finos.legend.engine + legend-engine-xts-analytics-function + 4.30.3-SNAPSHOT + + 4.0.0 + + legend-engine-xt-analytics-function-pure + jar + Legend Engine - XT - Analytics - Function - PAR/JAVA + + + + + org.finos.legend.pure + legend-pure-maven-generation-par + + src/main/resources + ${legend.pure.version} + + core_analytics_function + + + ${project.basedir}/src/main/resources/core_analytics_function.definition.json + + + + + generate-sources + + build-pure-jar + + + + + + org.finos.legend.pure + legend-pure-m2-dsl-diagram-grammar + ${legend.pure.version} + + + org.finos.legend.engine + legend-engine-pure-code-compiled-core + ${project.version} + + + + + org.finos.legend.pure + legend-pure-maven-generation-java + + + compile + + build-pure-compiled-jar + + + true + true + modular + true + + core_analytics_function + + + + + + + org.finos.legend.pure + legend-pure-m2-dsl-diagram-grammar + ${legend.pure.version} + + + org.finos.legend.engine + legend-engine-pure-code-compiled-core + ${project.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-platform-java + + + org.finos.legend.engine + legend-engine-pure-platform-functions-java + + + org.finos.legend.engine + legend-engine-pure-code-compiled-core + ${project.version} + + + + + org.eclipse.collections + eclipse-collections + + + org.eclipse.collections + eclipse-collections-api + + + diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/src/main/java/org.finos.legend.pure.code.core/CoreExternalFunctionAnalysisCodeRepositoryProvider.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/src/main/java/org.finos.legend.pure.code.core/CoreExternalFunctionAnalysisCodeRepositoryProvider.java new file mode 100644 index 00000000000..c08f150ae4b --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/src/main/java/org.finos.legend.pure.code.core/CoreExternalFunctionAnalysisCodeRepositoryProvider.java @@ -0,0 +1,28 @@ +// Copyright 2023 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.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 CoreExternalFunctionAnalysisCodeRepositoryProvider implements CodeRepositoryProvider +{ + @Override + public CodeRepository repository() + { + return GenericCodeRepository.build("core_analytics_function.definition.json"); + } +} diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider new file mode 100644 index 00000000000..c5eae58b14d --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider @@ -0,0 +1 @@ +org.finos.legend.pure.code.core.CoreExternalFunctionAnalysisCodeRepositoryProvider \ No newline at end of file diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/src/main/resources/core_analytics_function.definition.json b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/src/main/resources/core_analytics_function.definition.json new file mode 100644 index 00000000000..35dd71f52a7 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/src/main/resources/core_analytics_function.definition.json @@ -0,0 +1,11 @@ +{ + "name": "core_analytics_function", + "pattern": "(meta::analytics::function)(::.*)?", + "dependencies": [ + "platform", + "platform_functions", + "core", + "core_functions", + "platform_functions_json" + ] +} diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/src/main/resources/core_analytics_function/modelCoverage/analytics.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/src/main/resources/core_analytics_function/modelCoverage/analytics.pure new file mode 100644 index 00000000000..451bed29c5e --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/src/main/resources/core_analytics_function/modelCoverage/analytics.pure @@ -0,0 +1,57 @@ +// Copyright 2023 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::analytics::function::modelCoverage::*; + +Class meta::analytics::function::modelCoverage::FunctionModelCoverageAnalysisResult +{ + classes: Class[*]; + enumerations: Enumeration[*]; +} + +function meta::analytics::function::modelCoverage::getFunctionModelCoverage(functions: ConcreteFunctionDefinition[*]):FunctionModelCoverageAnalysisResult[1] +{ + let returnTypes = $functions->map(f | $f->functionReturnType().rawType->toOne()); + let coveredClasses = $returnTypes->filter(t | $t->instanceOf(Class))->cast(@Class); + let coveredEnumerations = $returnTypes->filter(t | $t->instanceOf(Enumeration))->cast(@Enumeration); + + let parameters = $functions->map(f | $f->functionType().parameters); + let parameterTypes = $parameters->map(p | $p.genericType.rawType); + + let parameterTypeClasses = $parameterTypes->filter(t | $t->instanceOf(Class))->cast(@Class); + let parameterTypeEnumerations = $parameterTypes->filter(t | $t->instanceOf(Enumeration))->cast(@Enumeration); + + let prunedClasses = $coveredClasses->concatenate($parameterTypeClasses)->removeDuplicates()->map(c|^Class( + name = $c.name, + package = $c.package + )); + + // NOTE: following, we prune the tagged values and stereotypes from the enumerations, associations, and classes + // so we don't have to return them, if in the future, we need to return these (as this analytics require to do so) + // we should reconsider these optimization + let prunedEnumerations = $coveredEnumerations->concatenate($parameterTypeEnumerations)->removeDuplicates()->map(e|^$e( + stereotypes = [], + taggedValues = [], + values = meta::pure::functions::meta::enumValues($e)->map(v|^$v( + stereotypes = [], + taggedValues = [] + ))->toOneMany() // this is a hack to work around a problem with validation on size of enumeration values + )); + + ^FunctionModelCoverageAnalysisResult + ( + classes = $prunedClasses, + enumerations = $prunedEnumerations + ); +} diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml new file mode 100644 index 00000000000..693e2705904 --- /dev/null +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml @@ -0,0 +1,33 @@ + + + + + org.finos.legend.engine + legend-engine-xts-analytics + 4.30.3-SNAPSHOT + + 4.0.0 + + legend-engine-xts-analytics-function + pom + Legend Engine - XTS - Analytics + + + legend-engine-xt-analytics-function-pure + legend-engine-xt-analytics-function-api + + \ No newline at end of file diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml index f722409f2e0..270109b1cd8 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml @@ -19,6 +19,10 @@ org.finos.legend.engine legend-engine-pure-code-compiled-core + + org.finos.legend.pure + legend-pure-m3-core + @@ -46,6 +50,26 @@ org.finos.legend.engine legend-engine-xt-analytics-mapping-pure + + org.finos.legend.engine + legend-engine-external-shared + + + org.finos.legend.engine + legend-engine-language-pure-grammar + + + org.finos.legend.engine + legend-engine-xt-analytics-function-pure + + + org.finos.legend.engine + legend-engine-xt-analytics-function-pure + + + org.finos.legend.engine + legend-engine-xt-analytics-binding-pure + diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/src/main/java/org/finos/legend/engine/api/analytics/MappingAnalytics.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/src/main/java/org/finos/legend/engine/api/analytics/MappingAnalytics.java index 4b815bc415d..750d71ac508 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/src/main/java/org/finos/legend/engine/api/analytics/MappingAnalytics.java +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/src/main/java/org/finos/legend/engine/api/analytics/MappingAnalytics.java @@ -20,17 +20,22 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; +import org.eclipse.collections.api.RichIterable; import org.eclipse.collections.api.list.MutableList; import org.eclipse.collections.impl.utility.ListIterate; import org.finos.legend.engine.api.analytics.model.MappingModelCoverageAnalysisInput; import org.finos.legend.engine.api.analytics.model.MappingRuntimeCompatibilityAnalysisInput; import org.finos.legend.engine.api.analytics.model.MappingRuntimeCompatibilityAnalysisResult; +import org.finos.legend.engine.external.shared.format.imports.PureModelContextDataGenerator; import org.finos.legend.engine.language.pure.compiler.toPureGraph.HelperModelBuilder; import org.finos.legend.engine.language.pure.compiler.toPureGraph.HelperRuntimeBuilder; import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; +import org.finos.legend.engine.language.pure.grammar.to.HelperValueSpecificationGrammarComposer; import org.finos.legend.engine.language.pure.modelManager.ModelManager; import org.finos.legend.engine.protocol.analytics.model.MappingModelCoverageAnalysisResult; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.Function; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.externalFormat.Binding; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.runtime.PackageableRuntime; import org.finos.legend.engine.shared.core.ObjectMapperFactory; import org.finos.legend.engine.shared.core.api.result.ManageConstantResult; @@ -38,10 +43,20 @@ import org.finos.legend.engine.shared.core.operational.errorManagement.ExceptionTool; import org.finos.legend.engine.shared.core.operational.http.InflateInterceptor; import org.finos.legend.engine.shared.core.operational.logs.LoggingEventType; +import org.finos.legend.pure.generated.Root_meta_analytics_binding_modelCoverage_BindingModelCoverageAnalysisResult; +import org.finos.legend.pure.generated.Root_meta_analytics_function_modelCoverage_FunctionModelCoverageAnalysisResult; import org.finos.legend.pure.generated.Root_meta_analytics_mapping_modelCoverage_MappingModelCoverageAnalysisResult; +import org.finos.legend.pure.generated.Root_meta_external_format_shared_binding_Binding; +import org.finos.legend.pure.generated.core_analytics_binding_modelCoverage_analytics; +import org.finos.legend.pure.generated.core_analytics_function_modelCoverage_analytics; import org.finos.legend.pure.generated.core_analytics_mapping_modelCoverage_analytics; import org.finos.legend.pure.generated.core_analytics_mapping_modelCoverage_serializer; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.Mapping; +import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.extension.Profile; +import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.ConcreteFunctionDefinition; +import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.Class; +import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.Enum; +import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.Enumeration; import org.pac4j.core.profile.CommonProfile; import org.pac4j.core.profile.ProfileManager; import org.pac4j.jax.rs.annotations.Pac4JProfileManager; @@ -54,6 +69,9 @@ import javax.ws.rs.QueryParam; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.Response; +import java.util.List; +import java.util.stream.Collectors; +import java.util.stream.Stream; @Api(tags = "Analytics - Model") @Path("pure/v1/analytics/mapping") @@ -75,17 +93,88 @@ public MappingAnalytics(ModelManager modelManager) public Response analyzeModelCoverage(MappingModelCoverageAnalysisInput input, @QueryParam("returnMappedEntityInfo") @DefaultValue("false") boolean returnMappedEntityInfo, @QueryParam("returnMappedPropertyInfo") @DefaultValue("false") boolean returnMappedPropertyInfo, + @QueryParam("returnLightGraph") @DefaultValue("false") boolean returnLightGraph, @ApiParam(hidden = true) @Pac4JProfileManager ProfileManager pm) { MutableList profiles = ProfileManagerHelper.extractProfiles(pm); PureModel pureModel = this.modelManager.loadModel(input.model, input.clientVersion, profiles, null); + PureModelContextData pureModelContextData = this.modelManager.loadData(input.model, input.clientVersion, profiles); Mapping mapping = input.mapping == null ? null : pureModel.getMapping(input.mapping); try (Scope scope = GlobalTracer.get().buildSpan("Mapping: analysis").startActive(true)) { try { - Root_meta_analytics_mapping_modelCoverage_MappingModelCoverageAnalysisResult analysisResult = core_analytics_mapping_modelCoverage_analytics.Root_meta_analytics_mapping_modelCoverage_analyze_Mapping_1__Boolean_1__Boolean_1__MappingModelCoverageAnalysisResult_1_(mapping, returnMappedEntityInfo, returnMappedPropertyInfo, pureModel.getExecutionSupport()); + Root_meta_analytics_mapping_modelCoverage_MappingModelCoverageAnalysisResult analysisResult = core_analytics_mapping_modelCoverage_analytics.Root_meta_analytics_mapping_modelCoverage_analyze_Mapping_1__Boolean_1__Boolean_1__Boolean_1__MappingModelCoverageAnalysisResult_1_(mapping, returnMappedEntityInfo, returnMappedPropertyInfo, returnLightGraph, pureModel.getExecutionSupport()); MappingModelCoverageAnalysisResult result = this.objectMapper.readValue(core_analytics_mapping_modelCoverage_serializer.Root_meta_analytics_mapping_modelCoverage_serialization_json_getSerializedMappingModelCoverageAnalysisResult_MappingModelCoverageAnalysisResult_1__String_1_(analysisResult, pureModel.getExecutionSupport()), MappingModelCoverageAnalysisResult.class); + PureModelContextData.Builder builder = PureModelContextData.newBuilder(); + if (returnLightGraph) + { + // Here we prune the bindings to have just packageableIncludes part of ModelUnit + // because we only need that as a part of analytics. + List bindingPaths = pureModelContextData.getElements().stream().filter(el -> el instanceof Binding).map(b -> + { + Binding _binding = new Binding(); + _binding.name = b.name; + _binding.contentType = ((Binding) b).contentType; + _binding._package = b._package; + _binding.modelUnit = ((Binding) b).modelUnit; + _binding.modelUnit.packageableElementExcludes = org.eclipse.collections.api.factory.Lists.mutable.empty(); + builder.addElement(_binding); + return b.getPath(); + }).collect(Collectors.toList()); + RichIterable bindings = org.eclipse.collections.api.factory.Lists.mutable.ofAll(bindingPaths.stream().map(path -> + { + Root_meta_external_format_shared_binding_Binding binding; + try + { + binding = (Root_meta_external_format_shared_binding_Binding) pureModel.getPackageableElement(path); + return binding; + } + catch (Exception ignored) + { + + } + return null; + }).filter(c -> c != null).collect(Collectors.toList())); + Root_meta_analytics_binding_modelCoverage_BindingModelCoverageAnalysisResult bindingAnalysisResult = core_analytics_binding_modelCoverage_analytics.Root_meta_analytics_binding_modelCoverage_getBindingModelCoverage_Binding_MANY__BindingModelCoverageAnalysisResult_1_(bindings, pureModel.getExecutionSupport()); + List functionPaths = pureModelContextData.getElements().stream().filter(el -> el instanceof Function).map(e -> e.getPath()).collect(Collectors.toList()); + List allExtraElements = functionPaths; + pureModelContextData.getElements().stream().filter(el -> allExtraElements.contains(el.getPath())).forEach(builder::addElement); + List elements = builder.build().getElements(); + RichIterable> functions = org.eclipse.collections.api.factory.Lists.mutable.ofAll(functionPaths.stream().map(path -> + { + ConcreteFunctionDefinition function = null; + try + { + function = pureModel.getConcreteFunctionDefinition_safe(path); + if (function == null) + { + Function _function = (Function) elements.stream().filter(e -> e.getPath().equals(path)).findFirst().get(); + function = pureModel.getConcreteFunctionDefinition_safe(path + HelperValueSpecificationGrammarComposer.getFunctionSignature(_function)); + + } + return function; + } + catch (Exception ignored) + { + + } + return null; + }).filter(c -> c != null).collect(Collectors.toList())); + Root_meta_analytics_function_modelCoverage_FunctionModelCoverageAnalysisResult functionCoverageAnalysisResult = core_analytics_function_modelCoverage_analytics.Root_meta_analytics_function_modelCoverage_getFunctionModelCoverage_ConcreteFunctionDefinition_MANY__FunctionModelCoverageAnalysisResult_1_(org.eclipse.collections.impl.factory.Lists.mutable.ofAll(functions), pureModel.getExecutionSupport()); + MutableList> coveredClasses = analysisResult._classes().toList(); + List coveredClassesPaths = coveredClasses.stream().map(c -> HelperModelBuilder.getElementFullPath(c, pureModel.getExecutionSupport())).collect(Collectors.toList()); + coveredClasses = org.eclipse.collections.impl.factory.Lists.mutable.ofAll(Stream.concat(Stream.concat(functionCoverageAnalysisResult._classes().toList().stream().filter(c -> !coveredClassesPaths.contains(HelperModelBuilder.getElementFullPath(c, pureModel.getExecutionSupport()))), + bindingAnalysisResult._classes().toList().stream().filter(c -> !coveredClassesPaths.contains(HelperModelBuilder.getElementFullPath(c, pureModel.getExecutionSupport())))).distinct(), + analysisResult._classes().toList().stream()).collect(Collectors.toList())); + MutableList> coveredEnumerations = org.eclipse.collections.impl.factory.Lists.mutable.ofAll(Stream.concat(analysisResult._enumerations().toList().stream(), functionCoverageAnalysisResult._enumerations().toList().stream()).distinct().collect(Collectors.toList())); + PureModelContextData classes = PureModelContextDataGenerator.generatePureModelContextDataFromClasses(coveredClasses, input.clientVersion, pureModel.getExecutionSupport()); + PureModelContextData enums = PureModelContextDataGenerator.generatePureModelContextDataFromEnumerations(coveredEnumerations, input.clientVersion, pureModel.getExecutionSupport()); + PureModelContextData _profiles = PureModelContextDataGenerator.generatePureModelContextDataFromProfile((RichIterable) analysisResult._profiles(), input.clientVersion, pureModel.getExecutionSupport()); + PureModelContextData associations = PureModelContextDataGenerator.generatePureModelContextDataFromAssociations(analysisResult._associations(), input.clientVersion, pureModel.getExecutionSupport()); + + result.model = builder.build().combine(classes).combine(enums).combine(_profiles).combine(associations); + } return ManageConstantResult.manageResult(profiles, result); } catch (Exception e) diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/src/test/java/org/finos/legend/engine/api/analytics/test/TestMappingAnalyticsApi.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/src/test/java/org/finos/legend/engine/api/analytics/test/TestMappingAnalyticsApi.java index f96098d942e..16a133f29e8 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/src/test/java/org/finos/legend/engine/api/analytics/test/TestMappingAnalyticsApi.java +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/src/test/java/org/finos/legend/engine/api/analytics/test/TestMappingAnalyticsApi.java @@ -39,7 +39,7 @@ public void testMappingModelCoverageAnalysis() throws IOException PureModelContextData modelContextData = objectMapper.readValue(Objects.requireNonNull(getClass().getClassLoader().getResource("mappingModelCoverageAnalysisTestData.json")), PureModelContextData.class); Assert.assertEquals( "{\"mappedEntities\":[{\"path\":\"model::Bank\",\"properties\":[{\"_type\":\"entity\",\"entityPath\":\"model::Trader\",\"name\":\"employees\"},{\"_type\":\"enum\",\"enumPath\":\"model::OrgType\",\"name\":\"type\"}]},{\"path\":\"model::Trader\",\"properties\":[{\"_type\":\"MappedProperty\",\"name\":\"fullName\"}]}]}", - api.analyzeModelCoverage(new MappingModelCoverageAnalysisInput("vX_X_X", "model::mapping", modelContextData), false, false, null).getEntity().toString()); + api.analyzeModelCoverage(new MappingModelCoverageAnalysisInput("vX_X_X", "model::mapping", modelContextData), false, false, false, null).getEntity().toString()); } @Test @@ -47,8 +47,17 @@ public void testMappingModelCoverageAnalysisWithTypeInfoReturned() throws IOExce { PureModelContextData modelContextData = objectMapper.readValue(Objects.requireNonNull(getClass().getClassLoader().getResource("mappingModelCoverageAnalysisTestData.json")), PureModelContextData.class); Assert.assertEquals( - "{\"mappedEntities\":[{\"info\":{\"isRootEntity\":true,\"subClasses\":[]},\"path\":\"model::Bank\",\"properties\":[{\"_type\":\"entity\",\"entityPath\":\"model::Trader\",\"mappedPropertyInfo\":{\"multiplicity\":{\"lowerBound\":0},\"propertyType\":\"Entity\"},\"name\":\"employees\"},{\"_type\":\"enum\",\"enumPath\":\"model::OrgType\",\"mappedPropertyInfo\":{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"propertyType\":\"Enumeration\"},\"name\":\"type\"}]},{\"info\":{\"isRootEntity\":true,\"subClasses\":[]},\"path\":\"model::Trader\",\"properties\":[{\"_type\":\"MappedProperty\",\"mappedPropertyInfo\":{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"propertyType\":\"String\"},\"name\":\"fullName\"}]}]}", - api.analyzeModelCoverage(new MappingModelCoverageAnalysisInput("vX_X_X", "model::mapping", modelContextData), true, true, null).getEntity().toString()); + "{\"mappedEntities\":[{\"info\":{\"classPath\":\"model::Bank\",\"isRootEntity\":true,\"subClasses\":[]},\"path\":\"model::Bank\",\"properties\":[{\"_type\":\"entity\",\"entityPath\":\"model::Trader\",\"mappedPropertyInfo\":{\"multiplicity\":{\"lowerBound\":0},\"propertyType\":\"Entity\"},\"name\":\"employees\"},{\"_type\":\"enum\",\"enumPath\":\"model::OrgType\",\"mappedPropertyInfo\":{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"propertyType\":\"Enumeration\"},\"name\":\"type\"}]},{\"info\":{\"classPath\":\"model::Trader\",\"isRootEntity\":true,\"subClasses\":[]},\"path\":\"model::Trader\",\"properties\":[{\"_type\":\"MappedProperty\",\"mappedPropertyInfo\":{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"propertyType\":\"String\"},\"name\":\"fullName\"}]}]}", + api.analyzeModelCoverage(new MappingModelCoverageAnalysisInput("vX_X_X", "model::mapping", modelContextData), true, true, false, null).getEntity().toString()); + } + + @Test + public void testMappingModelCoverageAnalysisWithModelReturned() throws IOException + { + PureModelContextData modelContextData = objectMapper.readValue(Objects.requireNonNull(getClass().getClassLoader().getResource("mappingModelCoverageAnalysisTestData.json")), PureModelContextData.class); + Assert.assertEquals( + "{\"mappedEntities\":[{\"info\":{\"classPath\":\"model::Bank\",\"isRootEntity\":true,\"subClasses\":[]},\"path\":\"model::Bank\",\"properties\":[{\"_type\":\"entity\",\"entityPath\":\"model::Trader\",\"name\":\"employees\"},{\"_type\":\"enum\",\"enumPath\":\"model::OrgType\",\"name\":\"type\"}]},{\"info\":{\"classPath\":\"model::Trader\",\"isRootEntity\":true,\"subClasses\":[]},\"path\":\"model::Trader\",\"properties\":[{\"_type\":\"MappedProperty\",\"name\":\"fullName\"}]}],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"Class\",\"constraints\":[],\"name\":\"Bank\",\"originalMilestonedProperties\":[],\"package\":\"model\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"entityName\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"},{\"multiplicity\":{\"lowerBound\":0},\"name\":\"employees\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::Trader\"},{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"type\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::OrgType\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[\"meta::pure::metamodel::type::Any\"],\"taggedValues\":[]},{\"_type\":\"Enumeration\",\"name\":\"OrgType\",\"package\":\"model\",\"stereotypes\":[],\"taggedValues\":[],\"values\":[{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"CORP\"},{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"LLC\"}]},{\"_type\":\"Class\",\"constraints\":[],\"name\":\"Trader\",\"originalMilestonedProperties\":[],\"package\":\"model\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"fullName\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[\"meta::pure::metamodel::type::Any\"],\"taggedValues\":[]}]}}", + api.analyzeModelCoverage(new MappingModelCoverageAnalysisInput("vX_X_X", "model::mapping", modelContextData), true, false, true, null).getEntity().toString()); } @Test diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/src/main/java/org/finos/legend/engine/protocol/analytics/model/MappedEntityInfo.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/src/main/java/org/finos/legend/engine/protocol/analytics/model/MappedEntityInfo.java index 7e217dd5e67..634df3fc03b 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/src/main/java/org/finos/legend/engine/protocol/analytics/model/MappedEntityInfo.java +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/src/main/java/org/finos/legend/engine/protocol/analytics/model/MappedEntityInfo.java @@ -19,5 +19,6 @@ public class MappedEntityInfo { public boolean isRootEntity; + public String classPath; public List subClasses; } diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/src/main/java/org/finos/legend/engine/protocol/analytics/model/MappingModelCoverageAnalysisResult.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/src/main/java/org/finos/legend/engine/protocol/analytics/model/MappingModelCoverageAnalysisResult.java index bd66771c80c..57415f3f570 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/src/main/java/org/finos/legend/engine/protocol/analytics/model/MappingModelCoverageAnalysisResult.java +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/src/main/java/org/finos/legend/engine/protocol/analytics/model/MappingModelCoverageAnalysisResult.java @@ -14,9 +14,12 @@ package org.finos.legend.engine.protocol.analytics.model; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; + import java.util.List; public class MappingModelCoverageAnalysisResult { public List mappedEntities; + public PureModelContextData model; } diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml index b7250e5f323..06f8e4cf2b9 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml @@ -68,6 +68,11 @@ legend-engine-pure-runtime-compiler ${project.version} + + org.finos.legend.engine + legend-engine-xt-analytics-class-pure + ${project.version} + org.finos.legend.engine legend-engine-pure-code-compiled-core @@ -120,6 +125,12 @@ legend-pure-m2-store-relational-grammar ${legend.pure.version} + + org.finos.legend.engine + legend-engine-xt-analytics-class-pure + ${project.version} + + org.finos.legend.engine legend-engine-pure-code-compiled-core @@ -181,6 +192,11 @@ org.finos.legend.engine legend-engine-pure-code-compiled-core + + org.finos.legend.engine + legend-engine-xt-analytics-class-pure + ${project.version} + org.finos.legend.engine legend-engine-pure-code-compiled-functions diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping.definition.json b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping.definition.json index 012c04773a2..a115eb01834 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping.definition.json +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping.definition.json @@ -6,6 +6,7 @@ "platform_functions", "platform_dsl_mapping", "platform_store_relational", + "core_analytics_class", "platform_functions_json", "core_functions", "core_relational", diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/analytics.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/analytics.pure index 1e885ba2453..5f7a2673d97 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/analytics.pure +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/analytics.pure @@ -12,16 +12,24 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::pure::*; import meta::analytics::mapping::modelCoverage::*; import meta::pure::mapping::*; import meta::pure::router::routing::*; import meta::analytics::mapping::modelCoverage::utility::*; +import meta::analytics::class::modelCoverage::*; +import meta::analytics::class::modelCoverage::utility::*; import meta::pure::mapping::modelToModel::*; +import meta::pure::milestoning::*; Class meta::analytics::mapping::modelCoverage::MappingModelCoverageAnalysisResult { mappedEntities : MappedEntity[*]; + classes: Class[*]; + enumerations: Enumeration[*]; + associations: Association[*]; + profiles: Profile[*]; } Enum meta::analytics::mapping::modelCoverage::MappedPropertyType @@ -42,6 +50,7 @@ Enum meta::analytics::mapping::modelCoverage::MappedPropertyType Class meta::analytics::mapping::modelCoverage::MappedEntityInfo { isRootEntity : Boolean[0..1]; + classPath: String[1]; subClasses : String[*]; } @@ -95,7 +104,8 @@ Class <> meta::analytics::mapping::modelCoverage::MultiInheritan function meta::analytics::mapping::modelCoverage::analyze( mapping: Mapping[1], returnMappedEntityInfo: Boolean[1], - returnMappedPropertyInfo: Boolean[1] + returnMappedPropertyInfo: Boolean[1], + returnLightGraph: Boolean[1] ): MappingModelCoverageAnalysisResult[1] { let config = ^AnalysisConfiguration( @@ -142,11 +152,23 @@ function meta::analytics::mapping::modelCoverage::analyze( let uniqueTypes = $subTypes->concatenate($superTypes)->removeDuplicatesBy(t | $t.class); buildInheritanceEntities($op, $op, [], $uniqueTypes, $namePrefix, $rootClassMappings, $allClasses, $allProperties, $inheritanceMap, $mappingToClassMappings, false, false, $config); )->removeDuplicatesBy(x | $x.path); - - ^MappingModelCoverageAnalysisResult( - mappedEntities = $entities->concatenate($inheritanceEntities) - ); + let mappedEntities = $entities->concatenate($inheritanceEntities); + if ($returnLightGraph == true, + | let mappedEntityPaths = $mappedEntities->map(m | $m.info->toOne().classPath)->removeDuplicates(); + let mappedClasses = $allClasses->keyValues()->map(c | $c.first)->filter(c | $mappedEntityPaths->contains($c->elementToPath())); + let classCoverageAnalysis = getClassModelCoverage($mappedClasses); + ^MappingModelCoverageAnalysisResult( + mappedEntities = $mappedEntities, + classes = $classCoverageAnalysis.classes, + enumerations = $classCoverageAnalysis.enumerations, + associations = $classCoverageAnalysis.associations, + profiles = $classCoverageAnalysis.profiles + );, + | ^MappingModelCoverageAnalysisResult( + mappedEntities = $mappedEntities, + classes = [], + enumerations = [], + associations = [], + profiles = [] + );); } - - - diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/analyticsTest.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/analyticsTest.pure index ac620e1d1a8..1df60231c2b 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/analyticsTest.pure +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/analyticsTest.pure @@ -17,7 +17,7 @@ import meta::pure::mapping::*; function meta::analytics::mapping::modelCoverage::test::generateModelCoverageAnalytics(mapping: Mapping[1]): MappingModelCoverageAnalysisResult[1] { - meta::analytics::mapping::modelCoverage::analyze($mapping, false, false); + meta::analytics::mapping::modelCoverage::analyze($mapping, false, false, false); } // Relational diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/mappedEntityBuilder.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/mappedEntityBuilder.pure index d2a7c1766db..6531d0f599d 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/mappedEntityBuilder.pure +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/mappedEntityBuilder.pure @@ -232,7 +232,7 @@ function <> meta::analytics::mapping::modelCoverage::buildEntity ^MappedEntity( path = $path, properties = $properties->removeDuplicatesBy(x | $x.name), - info = if($config.returnMappedEntityInfo == true, | ^MappedEntityInfo(isRootEntity = $isRootEntity), | []) + info = if($config.returnMappedEntityInfo == true, | ^MappedEntityInfo(isRootEntity = $isRootEntity, classPath = $class->elementToPath()), | []) ); } diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/serializer.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/serializer.pure index 986b29fb68b..16e19ff7e25 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/serializer.pure +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/serializer.pure @@ -58,9 +58,10 @@ function <> meta::analytics::mapping::modelCoverage::serializati newJSONObject ([ newJSONKeyValue('isRootEntity', if($info.isRootEntity->isEmpty(), - | ^JSONNull(), + | ^JSONNull(), | ^JSONBoolean(value=$info.isRootEntity->toOne()) )), + newJSONKeyValue('classPath', ^JSONString(value=$info.classPath)), newJSONKeyValue('subClasses', ^JSONArray(values=$info.subClasses->map(v | ^JSONString(value=$v)))) ]) } diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/utility.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/utility.pure index 0550d83bf67..42726c46651 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/utility.pure +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/utility.pure @@ -60,28 +60,6 @@ function meta::analytics::mapping::modelCoverage::utility::getFunctionPath(f:Fun $f->elementToPath()->replace($f.name->toOne(), $f.functionName->toOne()); } - -function {doc.doc = 'Get the parent or super types of the provided class'} - meta::analytics::mapping::modelCoverage::utility::superTypes(class : Class[1], recursive:Boolean[1]) : Class[*] -{ - let types = if ($recursive, | $class->generalizations(), | $class.generalizations.general.rawType); - - $types->map(rw| - $rw->match([ - c:Class[1] | if($c != Any && $c != $class, | $c, | []), - a:Any[1] | [] - ]) - ); -} - - -function {doc.doc = 'Get the parent or super types of the provided class recursively'} - meta::analytics::mapping::modelCoverage::utility::superTypes(class : Class[1]) : Class[*] -{ - $class->superTypes(true); -} - - function meta::analytics::mapping::modelCoverage::utility::qualifiedProperties(class:Class[1]):QualifiedProperty[*] { $class->generalizations()->init()->cast(@Class)->map(c | diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/src/main/resources/core_analytics_search/trans.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/src/main/resources/core_analytics_search/trans.pure index 302c10febce..ddd0a003f4d 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/src/main/resources/core_analytics_search/trans.pure +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/src/main/resources/core_analytics_search/trans.pure @@ -114,7 +114,7 @@ function meta::analytics::search::transformation::dataspace::buildExecutionConte function meta::analytics::search::transformation::dataspace::buildClassDocuments(mapping: meta::pure::mapping::Mapping[1]): meta::analytics::search::metamodel::class::SimpleClassElement[*] { - let analysedMapping = meta::analytics::mapping::modelCoverage::analyze($mapping, true, true); + let analysedMapping = meta::analytics::mapping::modelCoverage::analyze($mapping, true, true, false); $analysedMapping.mappedEntities->filter(e|$e.info.isRootEntity == true)->map(e| ^meta::analytics::search::metamodel::class::SimpleClassElement( name = $e.path->split('::')->last()->toOne(), diff --git a/legend-engine-xts-analytics/pom.xml b/legend-engine-xts-analytics/pom.xml index ee319565f6b..7b7457bd1ed 100644 --- a/legend-engine-xts-analytics/pom.xml +++ b/legend-engine-xts-analytics/pom.xml @@ -31,6 +31,9 @@ legend-engine-xts-analytics-lineage legend-engine-xts-analytics-mapping + legend-engine-xts-analytics-class + legend-engine-xts-analytics-function + legend-engine-xts-analytics-binding legend-engine-xts-analytics-search legend-engine-xts-analytics-store diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/src/main/java/org/finos/legend/engine/api/analytics/DataSpaceAnalytics.java b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/src/main/java/org/finos/legend/engine/api/analytics/DataSpaceAnalytics.java index df0a60bf789..4f1ff451244 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/src/main/java/org/finos/legend/engine/api/analytics/DataSpaceAnalytics.java +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/src/main/java/org/finos/legend/engine/api/analytics/DataSpaceAnalytics.java @@ -103,4 +103,31 @@ public Response analyzeDataSpace(DataSpaceAnalysisInput input, @ApiParam(hidden } } } + + @POST + @Path("coverage") + @ApiOperation(value = "Analyze the data space to get the model coverage") + @Consumes({MediaType.APPLICATION_JSON, InflateInterceptor.APPLICATION_ZLIB}) + @Produces(MediaType.APPLICATION_JSON) + public Response analyzeDataSpaceCoverage(DataSpaceAnalysisInput input, @ApiParam(hidden = true) @Pac4JProfileManager ProfileManager pm) + { + MutableList profiles = ProfileManagerHelper.extractProfiles(pm); + PureModelContextData pureModelContextData = this.modelManager.loadData(input.model, input.clientVersion, profiles); + PureModel pureModel = this.modelManager.loadModel(pureModelContextData, input.clientVersion, profiles, null); + PackageableElement dataSpaceProtocol = pureModelContextData.getElements().stream().filter(el -> input.dataSpace.equals(el.getPath())).findFirst().orElse(null); + Assert.assertTrue(dataSpaceProtocol instanceof DataSpace, () -> "Can't find data space '" + input.dataSpace + "'"); + Root_meta_pure_metamodel_dataSpace_DataSpace dataSpace = HelperDataSpaceBuilder.getDataSpace(input.dataSpace, null, pureModel.getContext()); + + try (Scope scope = GlobalTracer.get().buildSpan("Analytics: data space model coverage").startActive(true)) + { + try + { + return ManageConstantResult.manageResult(profiles, DataSpaceAnalyticsHelper.analyzeDataSpaceCoverage(dataSpace, pureModel, (DataSpace) dataSpaceProtocol, pureModelContextData, input.clientVersion, this.generatorExtensions, this.entitlementServiceExtensions), objectMapper); + } + catch (Exception e) + { + return ExceptionTool.exceptionManager(e, LoggingEventType.ANALYTICS_ERROR, Response.Status.BAD_REQUEST, profiles); + } + } + } } diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/src/test/java/org/finos/legend/engine/api/analytics/test/TestDataSpaceAnalyticsApi.java b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/src/test/java/org/finos/legend/engine/api/analytics/test/TestDataSpaceAnalyticsApi.java index 03ecddf3745..56ae1cd555c 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/src/test/java/org/finos/legend/engine/api/analytics/test/TestDataSpaceAnalyticsApi.java +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/src/test/java/org/finos/legend/engine/api/analytics/test/TestDataSpaceAnalyticsApi.java @@ -56,10 +56,18 @@ public void testDataSpaceAnalysisWithNotFoundDataSpace() throws IOException public void testDataSpaceAnalysis() throws IOException { PureModelContextData modelContextData = objectMapper.readValue(Objects.requireNonNull(getClass().getClassLoader().getResource("dataSpaceAnalyticsTestData.json")), PureModelContextData.class); - String expected = "{\"defaultExecutionContext\":\"dummyContext\",\"diagrams\":[],\"elementDocs\":[],\"elements\":[],\"executables\":[],\"executionContexts\":[{\"compatibleRuntimes\":[\"model::dummyRuntime\"],\"datasets\":[],\"defaultRuntime\":\"model::dummyRuntime\",\"mapping\":\"model::dummyMapping\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[]},\"name\":\"dummyContext\"}],\"model\":{\"_type\":\"data\",\"elements\":[]},\"name\":\"AnimalDS\",\"package\":\"model::animal\",\"path\":\"model::animal::AnimalDS\",\"stereotypes\":[],\"taggedValues\":[]}"; + String expected = "{\"defaultExecutionContext\":\"dummyContext\",\"diagrams\":[],\"elementDocs\":[],\"elements\":[],\"executables\":[],\"executionContexts\":[{\"compatibleRuntimes\":[\"model::dummyRuntime\"],\"datasets\":[],\"defaultRuntime\":\"model::dummyRuntime\",\"mapping\":\"model::dummyMapping\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"dataSpace\",\"defaultExecutionContext\":\"dummyContext\",\"executionContexts\":[{\"defaultRuntime\":{\"path\":\"model::dummyRuntime\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"model::dummyMapping\",\"type\":\"MAPPING\"},\"name\":\"dummyContext\"}],\"name\":\"AnimalDS\",\"package\":\"model::animal\",\"stereotypes\":[],\"taggedValues\":[]}]}},\"name\":\"dummyContext\"}],\"model\":{\"_type\":\"data\",\"elements\":[]},\"name\":\"AnimalDS\",\"package\":\"model::animal\",\"path\":\"model::animal::AnimalDS\",\"stereotypes\":[],\"taggedValues\":[]}"; testAnalyticsWithVersions(expected, modelContextData, "model::animal::AnimalDS"); } + @Test + public void testDataSpaceCoverageAnalysis() throws IOException + { + PureModelContextData modelContextData = objectMapper.readValue(Objects.requireNonNull(getClass().getClassLoader().getResource("dataSpaceAnalyticsTestData.json")), PureModelContextData.class); + String expected = "{\"defaultExecutionContext\":\"dummyContext\",\"diagrams\":[],\"elementDocs\":[],\"elements\":[],\"executables\":[],\"executionContexts\":[{\"compatibleRuntimes\":[\"model::dummyRuntime\"],\"defaultRuntime\":\"model::dummyRuntime\",\"mapping\":\"model::dummyMapping\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"dataSpace\",\"defaultExecutionContext\":\"dummyContext\",\"executionContexts\":[{\"defaultRuntime\":{\"path\":\"model::dummyRuntime\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"model::dummyMapping\",\"type\":\"MAPPING\"},\"name\":\"dummyContext\"}],\"name\":\"AnimalDS\",\"package\":\"model::animal\",\"stereotypes\":[],\"taggedValues\":[]}]}},\"name\":\"dummyContext\"}],\"name\":\"AnimalDS\",\"package\":\"model::animal\",\"path\":\"model::animal::AnimalDS\",\"stereotypes\":[],\"taggedValues\":[]}"; + testCoverageAnalyticsWithVersions(expected, modelContextData, "model::animal::AnimalDS"); + } + private void testAnalyticsWithVersions(String expected, PureModelContextData modelContextData, String dataSpace) { testVersions.forEach(pureClient -> @@ -68,5 +76,14 @@ private void testAnalyticsWithVersions(String expected, PureModelContextData mod Assert.assertEquals(expected, response.getEntity().toString()); }); } + + private void testCoverageAnalyticsWithVersions(String expected, PureModelContextData modelContextData, String dataSpace) + { + testVersions.forEach(pureClient -> + { + Response response = api.analyzeDataSpaceCoverage(new DataSpaceAnalysisInput(pureClient, dataSpace, modelContextData), null); + Assert.assertEquals(expected, response.getEntity().toString()); + }); + } } diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml index 02c4c5502f8..7009cfe444e 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml @@ -123,6 +123,14 @@ org.finos.legend.engine legend-engine-xt-analytics-store-entitlement + + org.finos.legend.engine + legend-engine-xt-analytics-function-pure + + + org.finos.legend.engine + legend-engine-xt-analytics-binding-pure + diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/src/main/java/org/finos/legend/engine/generation/analytics/DataSpaceAnalyticsHelper.java b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/src/main/java/org/finos/legend/engine/generation/analytics/DataSpaceAnalyticsHelper.java index 93fb137fbeb..186fcf8719b 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/src/main/java/org/finos/legend/engine/generation/analytics/DataSpaceAnalyticsHelper.java +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/src/main/java/org/finos/legend/engine/generation/analytics/DataSpaceAnalyticsHelper.java @@ -46,6 +46,7 @@ import org.finos.legend.engine.language.pure.compiler.toPureGraph.HelperValueSpecificationBuilder; import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; import org.finos.legend.engine.language.pure.grammar.to.DEPRECATED_PureGrammarComposerCore; +import org.finos.legend.engine.language.pure.grammar.to.HelperValueSpecificationGrammarComposer; import org.finos.legend.engine.plan.generation.PlanGenerator; import org.finos.legend.engine.plan.generation.extension.PlanGeneratorExtension; import org.finos.legend.engine.plan.platform.PlanPlatform; @@ -56,7 +57,9 @@ import org.finos.legend.engine.protocol.pure.v1.model.executionPlan.result.ResultType; import org.finos.legend.engine.protocol.pure.v1.model.executionPlan.result.TDSResultType; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.dataSpace.DataSpace; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.Function; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.Multiplicity; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.externalFormat.Binding; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.runtime.PackageableRuntime; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.runtime.RuntimePointer; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.service.PureMultiExecution; @@ -65,7 +68,10 @@ import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.raw.executionContext.BaseExecutionContext; import org.finos.legend.engine.pure.code.core.PureCoreExtensionLoader; import org.finos.legend.engine.shared.core.api.grammar.RenderStyle; +import org.finos.legend.pure.generated.Root_meta_analytics_binding_modelCoverage_BindingModelCoverageAnalysisResult; +import org.finos.legend.pure.generated.Root_meta_analytics_function_modelCoverage_FunctionModelCoverageAnalysisResult; import org.finos.legend.pure.generated.Root_meta_analytics_mapping_modelCoverage_MappingModelCoverageAnalysisResult; +import org.finos.legend.pure.generated.Root_meta_external_format_shared_binding_Binding; import org.finos.legend.pure.generated.Root_meta_legend_service_metamodel_PureSingleExecution; import org.finos.legend.pure.generated.Root_meta_legend_service_metamodel_PureMultiExecution; import org.finos.legend.pure.generated.Root_meta_legend_service_metamodel_KeyedExecutionParameter; @@ -75,22 +81,30 @@ import org.finos.legend.pure.generated.Root_meta_pure_metamodel_dataSpace_analytics_DataSpaceAssociationDocumentationEntry; import org.finos.legend.pure.generated.Root_meta_pure_metamodel_dataSpace_analytics_DataSpaceBasicDocumentationEntry; import org.finos.legend.pure.generated.Root_meta_pure_metamodel_dataSpace_analytics_DataSpaceClassDocumentationEntry; +import org.finos.legend.pure.generated.Root_meta_pure_metamodel_dataSpace_analytics_DataSpaceCoverageAnalysisResult; import org.finos.legend.pure.generated.Root_meta_pure_metamodel_dataSpace_analytics_DataSpaceEnumerationDocumentationEntry; import org.finos.legend.pure.generated.Root_meta_pure_metamodel_dataSpace_analytics_DataSpaceExecutionContextAnalysisResult; import org.finos.legend.pure.generated.Root_meta_pure_metamodel_dataSpace_analytics_DataSpacePropertyDocumentationEntry; import org.finos.legend.pure.generated.Root_meta_pure_metamodel_diagram_analytics_modelCoverage_DiagramModelCoverageAnalysisResult; import org.finos.legend.pure.generated.Root_meta_pure_runtime_Runtime; +import org.finos.legend.pure.generated.core_analytics_binding_modelCoverage_analytics; +import org.finos.legend.pure.generated.core_analytics_function_modelCoverage_analytics; import org.finos.legend.pure.generated.core_analytics_mapping_modelCoverage_serializer; import org.finos.legend.pure.generated.core_data_space_analytics_analytics; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.Mapping; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.PackageableElement; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.extension.Profile; +import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.ConcreteFunctionDefinition; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.LambdaFunction; +import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.Class; +import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.Enum; +import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.Enumeration; import java.util.ArrayList; import java.util.List; import java.util.ServiceLoader; import java.util.stream.Collectors; +import java.util.stream.Stream; import static org.finos.legend.engine.shared.core.ObjectMapperFactory.withStandardConfigurations; @@ -142,11 +156,154 @@ private static DataSpaceExecutableResult buildExecutableResult(ResultType result return null; } + private static MappingModelCoverageAnalysisResult buildMappingModelCoverageAnalysisResult(Root_meta_analytics_mapping_modelCoverage_MappingModelCoverageAnalysisResult mappingModelCoverageAnalysisResult, DataSpaceExecutionContextAnalysisResult excResult, PureModel pureModel, DataSpace dataSpaceProtocol, PureModelContextData pureModelContextData, String clientVersion, MutableList generatorExtensions, List entitlementServiceExtensions, Boolean returnDataSets) + { + try + { + MappingModelCoverageAnalysisResult mappingModelCoverageAnalysisResultProtocol = DataSpaceAnalyticsHelper.objectMapper.readValue(core_analytics_mapping_modelCoverage_serializer.Root_meta_analytics_mapping_modelCoverage_serialization_json_getSerializedMappingModelCoverageAnalysisResult_MappingModelCoverageAnalysisResult_1__String_1_(mappingModelCoverageAnalysisResult, pureModel.getExecutionSupport()), MappingModelCoverageAnalysisResult.class); + if (returnDataSets) + { + excResult.datasets = LazyIterate.flatCollect(entitlementServiceExtensions, extension -> extension.generateDatasetSpecifications(null, excResult.defaultRuntime, pureModel.getRuntime(excResult.defaultRuntime), excResult.mapping, pureModel.getMapping(excResult.mapping), pureModelContextData, pureModel)).toList(); + } + PureModelContextData.Builder builder = PureModelContextData.newBuilder(); + + // Here we prune the bindings to have just packageableIncludes part of ModelUnit + // because we only need that as a part of analytics. + List bindingPaths = pureModelContextData.getElements().stream().filter(el -> el instanceof Binding).map(b -> + { + Binding _binding = new Binding(); + _binding.name = b.name; + _binding.contentType = ((Binding) b).contentType; + _binding._package = b._package; + _binding.modelUnit = ((Binding) b).modelUnit; + _binding.modelUnit.packageableElementExcludes = org.eclipse.collections.api.factory.Lists.mutable.empty(); + builder.addElement(_binding); + return b.getPath(); + }).collect(Collectors.toList()); + RichIterable bindings = org.eclipse.collections.api.factory.Lists.mutable.ofAll(bindingPaths.stream().map(path -> + { + Root_meta_external_format_shared_binding_Binding binding; + try + { + binding = (Root_meta_external_format_shared_binding_Binding) pureModel.getPackageableElement(path); + return binding; + } + catch (Exception ignored) + { + + } + return null; + }).filter(c -> c != null).collect(Collectors.toList())); + Root_meta_analytics_binding_modelCoverage_BindingModelCoverageAnalysisResult bindingAnalysisResult = core_analytics_binding_modelCoverage_analytics.Root_meta_analytics_binding_modelCoverage_getBindingModelCoverage_Binding_MANY__BindingModelCoverageAnalysisResult_1_(bindings, pureModel.getExecutionSupport()); + List functionPaths = pureModelContextData.getElements().stream().filter(el -> el instanceof Function).map(e -> e.getPath()).collect(Collectors.toList()); + List allExtraElements = functionPaths; + allExtraElements.add(dataSpaceProtocol.getPath()); + pureModelContextData.getElements().stream().filter(el -> allExtraElements.contains(el.getPath())).forEach(builder::addElement); + List elements = builder.build().getElements(); + RichIterable> functions = org.eclipse.collections.api.factory.Lists.mutable.ofAll(functionPaths.stream().map(path -> + { + ConcreteFunctionDefinition function = null; + try + { + function = pureModel.getConcreteFunctionDefinition_safe(path); + if (function == null) + { + Function _function = (Function) elements.stream().filter(e -> e.getPath().equals(path)).findFirst().get(); + function = pureModel.getConcreteFunctionDefinition_safe(path + HelperValueSpecificationGrammarComposer.getFunctionSignature(_function)); + + } + return function; + } + catch (Exception ignored) + { + + } + return null; + }).filter(c -> c != null).collect(Collectors.toList())); + Root_meta_analytics_function_modelCoverage_FunctionModelCoverageAnalysisResult functionCoverageAnalysisResult = core_analytics_function_modelCoverage_analytics.Root_meta_analytics_function_modelCoverage_getFunctionModelCoverage_ConcreteFunctionDefinition_MANY__FunctionModelCoverageAnalysisResult_1_(org.eclipse.collections.impl.factory.Lists.mutable.ofAll(functions), pureModel.getExecutionSupport()); + MutableList> coveredClasses = mappingModelCoverageAnalysisResult._classes().toList(); + List coveredClassesPaths = coveredClasses.stream().map(c -> HelperModelBuilder.getElementFullPath(c, pureModel.getExecutionSupport())).collect(Collectors.toList()); + coveredClasses = org.eclipse.collections.impl.factory.Lists.mutable.ofAll(Stream.concat(Stream.concat(functionCoverageAnalysisResult._classes().toList().stream().filter(c -> !coveredClassesPaths.contains(HelperModelBuilder.getElementFullPath(c, pureModel.getExecutionSupport()))), + bindingAnalysisResult._classes().toList().stream().filter(c -> !coveredClassesPaths.contains(HelperModelBuilder.getElementFullPath(c, pureModel.getExecutionSupport())))).distinct(), + mappingModelCoverageAnalysisResult._classes().toList().stream()).collect(Collectors.toList())); + MutableList> coveredEnumerations = org.eclipse.collections.impl.factory.Lists.mutable.ofAll(Stream.concat(mappingModelCoverageAnalysisResult._enumerations().toList().stream(), functionCoverageAnalysisResult._enumerations().toList().stream()).distinct().collect(Collectors.toList())); + PureModelContextData classes = PureModelContextDataGenerator.generatePureModelContextDataFromClasses(coveredClasses, clientVersion, pureModel.getExecutionSupport()); + PureModelContextData enums = PureModelContextDataGenerator.generatePureModelContextDataFromEnumerations(coveredEnumerations, clientVersion, pureModel.getExecutionSupport()); + PureModelContextData _profiles = PureModelContextDataGenerator.generatePureModelContextDataFromProfile((RichIterable) mappingModelCoverageAnalysisResult._profiles(), clientVersion, pureModel.getExecutionSupport()); + PureModelContextData associations = PureModelContextDataGenerator.generatePureModelContextDataFromAssociations(mappingModelCoverageAnalysisResult._associations(), clientVersion, pureModel.getExecutionSupport()); + mappingModelCoverageAnalysisResultProtocol.model = builder.build().combine(classes).combine(enums).combine(_profiles).combine(associations); + return mappingModelCoverageAnalysisResultProtocol; + } + catch (Exception ignored) + { + } + return null; + } + public static DataSpaceAnalysisResult analyzeDataSpace(Root_meta_pure_metamodel_dataSpace_DataSpace dataSpace, PureModel pureModel, DataSpace dataSpaceProtocol, PureModelContextData pureModelContextData, String clientVersion) { return analyzeDataSpace(dataSpace, pureModel, dataSpaceProtocol, pureModelContextData, clientVersion, Lists.mutable.withAll(ServiceLoader.load(PlanGeneratorExtension.class)), EntitlementServiceExtensionLoader.extensions()); } + public static DataSpaceAnalysisResult analyzeDataSpaceCoverage(Root_meta_pure_metamodel_dataSpace_DataSpace dataSpace, PureModel pureModel, DataSpace dataSpaceProtocol, PureModelContextData pureModelContextData, String clientVersion, MutableList generatorExtensions, List entitlementServiceExtensions) + { + Root_meta_pure_metamodel_dataSpace_analytics_DataSpaceCoverageAnalysisResult analysisResult = core_data_space_analytics_analytics.Root_meta_pure_metamodel_dataSpace_analytics_analyzeDataSpaceCoverage_DataSpace_1__PackageableRuntime_MANY__DataSpaceCoverageAnalysisResult_1_( + dataSpace, + ListIterate.selectInstancesOf(pureModelContextData.getElements(), PackageableRuntime.class).collect(runtime -> pureModel.getPackageableRuntime(runtime.getPath(), runtime.sourceInformation)), + pureModel.getExecutionSupport() + ); + + DataSpaceAnalysisResult result = new DataSpaceAnalysisResult(); + result.name = dataSpaceProtocol.name; + result._package = dataSpaceProtocol._package; + result.path = dataSpaceProtocol.getPath(); + result.title = dataSpaceProtocol.title; + result.description = dataSpaceProtocol.description; + + result.taggedValues = ListIterate.collect(dataSpace._taggedValues().toList(), taggedValue -> + { + DataSpaceTaggedValueInfo info = new DataSpaceTaggedValueInfo(); + info.profile = HelperModelBuilder.getElementFullPath(taggedValue._tag()._profile(), pureModel.getExecutionSupport()); + info.tag = taggedValue._tag()._value(); + info.value = taggedValue._value(); + return info; + }); + + result.stereotypes = ListIterate.collect(dataSpace._stereotypes().toList(), stereotype -> + { + DataSpaceStereotypeInfo info = new DataSpaceStereotypeInfo(); + info.profile = HelperModelBuilder.getElementFullPath(stereotype._profile(), pureModel.getExecutionSupport()); + info.value = stereotype._value(); + return info; + }); + + result.executionContexts = dataSpace._executionContexts().toList().collect(executionContext -> + { + Root_meta_pure_metamodel_dataSpace_analytics_DataSpaceExecutionContextAnalysisResult executionContextAnalysisResult = analysisResult._executionContexts().detect(context -> context._name().equals(executionContext._name())); + DataSpaceExecutionContextAnalysisResult excResult = new DataSpaceExecutionContextAnalysisResult(); + excResult.name = executionContext._name(); + excResult.title = executionContext._title(); + excResult.description = executionContext._description(); + excResult.mapping = HelperModelBuilder.getElementFullPath(executionContext._mapping(), pureModel.getExecutionSupport()); + excResult.defaultRuntime = HelperModelBuilder.getElementFullPath(executionContext._defaultRuntime(), pureModel.getExecutionSupport()); + excResult.compatibleRuntimes = ListIterate.collect(executionContextAnalysisResult._compatibleRuntimes().toList(), runtime -> HelperModelBuilder.getElementFullPath(runtime, pureModel.getExecutionSupport())); + Root_meta_analytics_mapping_modelCoverage_MappingModelCoverageAnalysisResult mappingModelCoverageAnalysisResult = executionContextAnalysisResult._mappingCoverage(); + excResult.mappingModelCoverageAnalysisResult = buildMappingModelCoverageAnalysisResult(mappingModelCoverageAnalysisResult, excResult, pureModel, dataSpaceProtocol, pureModelContextData, clientVersion, generatorExtensions, entitlementServiceExtensions, false); + return excResult; + }); + result.defaultExecutionContext = dataSpace._defaultExecutionContext()._name(); + // elements + result.elements = dataSpace._elements() != null ? dataSpace._elements().toList().collect(el -> HelperModelBuilder.getElementFullPath(el, pureModel.getExecutionSupport())) : Lists.mutable.empty(); + // support + result.supportInfo = dataSpaceProtocol.supportInfo; + if (result.supportInfo != null) + { + result.supportInfo.sourceInformation = null; + } + + return result; + } + public static DataSpaceAnalysisResult analyzeDataSpace(Root_meta_pure_metamodel_dataSpace_DataSpace dataSpace, PureModel pureModel, DataSpace dataSpaceProtocol, PureModelContextData pureModelContextData, String clientVersion, MutableList generatorExtensions, List entitlementServiceExtensions) { Root_meta_pure_metamodel_dataSpace_analytics_DataSpaceAnalysisResult analysisResult = core_data_space_analytics_analytics.Root_meta_pure_metamodel_dataSpace_analytics_analyzeDataSpace_DataSpace_1__PackageableRuntime_MANY__DataSpaceAnalysisResult_1_( @@ -179,7 +336,6 @@ public static DataSpaceAnalysisResult analyzeDataSpace(Root_meta_pure_metamodel_ return info; }); - // execution contexts result.executionContexts = dataSpace._executionContexts().toList().collect(executionContext -> { Root_meta_pure_metamodel_dataSpace_analytics_DataSpaceExecutionContextAnalysisResult executionContextAnalysisResult = analysisResult._executionContexts().detect(context -> context._name().equals(executionContext._name())); @@ -191,14 +347,7 @@ public static DataSpaceAnalysisResult analyzeDataSpace(Root_meta_pure_metamodel_ excResult.defaultRuntime = HelperModelBuilder.getElementFullPath(executionContext._defaultRuntime(), pureModel.getExecutionSupport()); excResult.compatibleRuntimes = ListIterate.collect(executionContextAnalysisResult._compatibleRuntimes().toList(), runtime -> HelperModelBuilder.getElementFullPath(runtime, pureModel.getExecutionSupport())); Root_meta_analytics_mapping_modelCoverage_MappingModelCoverageAnalysisResult mappingModelCoverageAnalysisResult = executionContextAnalysisResult._mappingCoverage(); - try - { - excResult.mappingModelCoverageAnalysisResult = DataSpaceAnalyticsHelper.objectMapper.readValue(core_analytics_mapping_modelCoverage_serializer.Root_meta_analytics_mapping_modelCoverage_serialization_json_getSerializedMappingModelCoverageAnalysisResult_MappingModelCoverageAnalysisResult_1__String_1_(mappingModelCoverageAnalysisResult, pureModel.getExecutionSupport()), MappingModelCoverageAnalysisResult.class); - excResult.datasets = LazyIterate.flatCollect(entitlementServiceExtensions, extension -> extension.generateDatasetSpecifications(null, excResult.defaultRuntime, pureModel.getRuntime(excResult.defaultRuntime), excResult.mapping, pureModel.getMapping(excResult.mapping), pureModelContextData, pureModel)).toList(); - } - catch (Exception ignored) - { - } + excResult.mappingModelCoverageAnalysisResult = buildMappingModelCoverageAnalysisResult(mappingModelCoverageAnalysisResult, excResult, pureModel, dataSpaceProtocol, pureModelContextData, clientVersion, generatorExtensions, entitlementServiceExtensions, true); return excResult; }); result.defaultExecutionContext = dataSpace._defaultExecutionContext()._name(); diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/src/test/java/org/finos/legend/engine/generation/TestDataSpaceAnalyticsArtifactGenerationExtension.java b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/src/test/java/org/finos/legend/engine/generation/TestDataSpaceAnalyticsArtifactGenerationExtension.java index c47ecbc97c4..007a95a9377 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/src/test/java/org/finos/legend/engine/generation/TestDataSpaceAnalyticsArtifactGenerationExtension.java +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/src/test/java/org/finos/legend/engine/generation/TestDataSpaceAnalyticsArtifactGenerationExtension.java @@ -82,50 +82,50 @@ private void testDataSpaceAnalyticsArtifactGenerationExtension(String modelFileP @Test public void testAnalyticsForBasicDataSpace() throws Exception { - testDataSpaceAnalyticsArtifactGenerationExtension("models/dataSpaceBasic.pure", "model::animal::AnimalDS_Old", "{\"defaultExecutionContext\":\"dummyContext\",\"description\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"diagrams\":[{\"diagram\":\"model::animal::AnimalDiagram\",\"title\":\"\"},{\"diagram\":\"model::GeneralDiagram\",\"title\":\"\"}],\"elementDocs\":[],\"elements\":[],\"executables\":[],\"executionContexts\":[{\"compatibleRuntimes\":[\"model::dummyRuntime\"],\"datasets\":[],\"defaultRuntime\":\"model::dummyRuntime\",\"description\":\"An important execution context\",\"mapping\":\"model::dummyMapping\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[]},\"name\":\"dummyContext\"},{\"compatibleRuntimes\":[\"model::dummyRuntime\",\"model::dummyRuntime2\"],\"datasets\":[],\"defaultRuntime\":\"model::dummyRuntime\",\"mapping\":\"model::dummyMapping2\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[]},\"name\":\"dummyContext2\"},{\"compatibleRuntimes\":[\"model::dummyRuntime\",\"model::dummyRuntime2\"],\"datasets\":[],\"defaultRuntime\":\"model::dummyRuntime2\",\"mapping\":\"model::dummyMapping2\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[]},\"name\":\"dummyContext3\"}],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"profile\",\"name\":\"doc\",\"package\":\"meta::pure::profiles\",\"stereotypes\":[\"deprecated\"],\"tags\":[\"doc\",\"todo\"]},{\"_type\":\"diagram\",\"classViews\":[{\"class\":\"model::animal::reptile::Reptile\",\"id\":\"4cec85f9-9b66-450a-bdcb-c855aa0314e1\",\"position\":{\"x\":568.0,\"y\":404.0},\"rectangle\":{\"height\":58.0,\"width\":120.84765625}},{\"class\":\"model::animal::Animal\",\"id\":\"902bf14e-e7ff-40e7-92e4-8780f91bfa29\",\"position\":{\"x\":809.0,\"y\":187.0},\"rectangle\":{\"height\":44.0,\"width\":108.64453125}}],\"generalizationViews\":[{\"line\":{\"points\":[{\"x\":628.423828125,\"y\":433.0},{\"x\":863.322265625,\"y\":209.0}]},\"sourceView\":\"4cec85f9-9b66-450a-bdcb-c855aa0314e1\",\"targetView\":\"902bf14e-e7ff-40e7-92e4-8780f91bfa29\"}],\"name\":\"GeneralDiagram\",\"package\":\"model\",\"propertyViews\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Animal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"family\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::animal::Family\"},{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"noOfLegs\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Number\"},{\"multiplicity\":{\"lowerBound\":0},\"name\":\"children\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::animal::GenericAnimal2\"}],\"qualifiedProperties\":[{\"body\":[{\"_type\":\"func\",\"fControl\":\"greaterThan_Number_1__Number_1__Boolean_1_\",\"function\":\"greaterThan\",\"parameters\":[{\"_type\":\"property\",\"parameters\":[{\"_type\":\"var\",\"name\":\"this\"}],\"property\":\"noOfLegs\"},{\"_type\":\"integer\",\"value\":4}]}],\"name\":\"something\",\"parameters\":[],\"returnMultiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"returnType\":\"Boolean\",\"stereotypes\":[],\"taggedValues\":[]},{\"body\":[{\"_type\":\"collection\",\"multiplicity\":{\"lowerBound\":0,\"upperBound\":0},\"values\":[]}],\"name\":\"something2\",\"parameters\":[],\"returnMultiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"returnType\":\"model::animal::GenericAnimal\",\"stereotypes\":[],\"taggedValues\":[]}],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"diagram\",\"classViews\":[{\"class\":\"model::animal::mammal::Mammal\",\"id\":\"641a0336-d4b5-418c-b656-2f52461264e2\",\"position\":{\"x\":427.0,\"y\":210.0},\"rectangle\":{\"height\":44.0,\"width\":125.1123046875}},{\"class\":\"model::animal::reptile::Reptile\",\"id\":\"b92253d8-0389-4c7d-b5d2-3cdc3bb1ad98\",\"position\":{\"x\":787.0,\"y\":216.0},\"rectangle\":{\"height\":58.0,\"width\":120.84765625}},{\"class\":\"model::animal::Animal\",\"id\":\"7a992cfc-c888-4091-aa00-ab430915aced\",\"position\":{\"x\":515.423828125,\"y\":-7.5},\"rectangle\":{\"height\":100.0,\"width\":199.716796875}}],\"generalizationViews\":[{\"line\":{\"points\":[{\"x\":847.423828125,\"y\":245.0},{\"x\":615.2822265625,\"y\":42.5}]},\"sourceView\":\"b92253d8-0389-4c7d-b5d2-3cdc3bb1ad98\",\"targetView\":\"7a992cfc-c888-4091-aa00-ab430915aced\"}],\"name\":\"AnimalDiagram\",\"package\":\"model::animal\",\"propertyViews\":[]},{\"_type\":\"Enumeration\",\"name\":\"Family\",\"package\":\"model::animal\",\"stereotypes\":[],\"taggedValues\":[],\"values\":[{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"UO\"},{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"OP\"}]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"GenericAnimal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"GenericAnimal2\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Mammal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal::mammal\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"noOfLegs\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Reptile\",\"originalMilestonedProperties\":[],\"package\":\"model::animal::reptile\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"hasFin\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Boolean\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[\"model::animal::Animal\"],\"taggedValues\":[{\"tag\":{\"profile\":\"meta::pure::profiles::doc\",\"value\":\"doc\"},\"value\":\"\"}]}]},\"name\":\"AnimalDS_Old\",\"package\":\"model::animal\",\"path\":\"model::animal::AnimalDS_Old\",\"stereotypes\":[{\"profile\":\"meta::pure::profiles::doc\",\"value\":\"deprecated\"}],\"supportInfo\":{\"_type\":\"email\",\"address\":\"someEmail@test.org\"},\"taggedValues\":[{\"profile\":\"meta::pure::profiles::enterprise\",\"tag\":\"taxonomyNodes\",\"value\":\"abcdxyz005\"},{\"profile\":\"meta::pure::profiles::doc\",\"tag\":\"doc\",\"value\":\"Lorem ipsum\"},{\"profile\":\"meta::pure::profiles::doc\",\"tag\":\"doc\",\"value\":\"Lorem ipsum2\"},{\"profile\":\"meta::pure::metamodel::dataSpace::profiles::DataSpaceInfo\",\"tag\":\"deprecationNotice\",\"value\":\"Please use AnimalDS dataspace instead - link provided\"}]}"); - testDataSpaceAnalyticsArtifactGenerationExtension("models/dataSpaceBasic.pure", "model::animal::AnimalDS", "{\"defaultExecutionContext\":\"dummyContext\",\"description\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"diagrams\":[{\"description\":\"Some diagram description\",\"diagram\":\"model::animal::AnimalDiagram\",\"title\":\"Diag 1\"},{\"description\":\"Some more diagram description\",\"diagram\":\"model::GeneralDiagram\",\"title\":\"Diag 2\"}],\"elementDocs\":[],\"elements\":[],\"executables\":[],\"executionContexts\":[{\"compatibleRuntimes\":[\"model::dummyRuntime\"],\"datasets\":[],\"defaultRuntime\":\"model::dummyRuntime\",\"description\":\"An important execution context\",\"mapping\":\"model::dummyMapping\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[]},\"name\":\"dummyContext\",\"title\":\"Haha Nice\"},{\"compatibleRuntimes\":[\"model::dummyRuntime\",\"model::dummyRuntime2\"],\"datasets\":[],\"defaultRuntime\":\"model::dummyRuntime\",\"mapping\":\"model::dummyMapping2\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[]},\"name\":\"dummyContext2\"},{\"compatibleRuntimes\":[\"model::dummyRuntime\",\"model::dummyRuntime2\"],\"datasets\":[],\"defaultRuntime\":\"model::dummyRuntime2\",\"mapping\":\"model::dummyMapping2\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[]},\"name\":\"dummyContext3\"}],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"profile\",\"name\":\"doc\",\"package\":\"meta::pure::profiles\",\"stereotypes\":[\"deprecated\"],\"tags\":[\"doc\",\"todo\"]},{\"_type\":\"diagram\",\"classViews\":[{\"class\":\"model::animal::reptile::Reptile\",\"id\":\"4cec85f9-9b66-450a-bdcb-c855aa0314e1\",\"position\":{\"x\":568.0,\"y\":404.0},\"rectangle\":{\"height\":58.0,\"width\":120.84765625}},{\"class\":\"model::animal::Animal\",\"id\":\"902bf14e-e7ff-40e7-92e4-8780f91bfa29\",\"position\":{\"x\":809.0,\"y\":187.0},\"rectangle\":{\"height\":44.0,\"width\":108.64453125}}],\"generalizationViews\":[{\"line\":{\"points\":[{\"x\":628.423828125,\"y\":433.0},{\"x\":863.322265625,\"y\":209.0}]},\"sourceView\":\"4cec85f9-9b66-450a-bdcb-c855aa0314e1\",\"targetView\":\"902bf14e-e7ff-40e7-92e4-8780f91bfa29\"}],\"name\":\"GeneralDiagram\",\"package\":\"model\",\"propertyViews\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Animal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"family\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::animal::Family\"},{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"noOfLegs\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Number\"},{\"multiplicity\":{\"lowerBound\":0},\"name\":\"children\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::animal::GenericAnimal2\"}],\"qualifiedProperties\":[{\"body\":[{\"_type\":\"func\",\"fControl\":\"greaterThan_Number_1__Number_1__Boolean_1_\",\"function\":\"greaterThan\",\"parameters\":[{\"_type\":\"property\",\"parameters\":[{\"_type\":\"var\",\"name\":\"this\"}],\"property\":\"noOfLegs\"},{\"_type\":\"integer\",\"value\":4}]}],\"name\":\"something\",\"parameters\":[],\"returnMultiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"returnType\":\"Boolean\",\"stereotypes\":[],\"taggedValues\":[]},{\"body\":[{\"_type\":\"collection\",\"multiplicity\":{\"lowerBound\":0,\"upperBound\":0},\"values\":[]}],\"name\":\"something2\",\"parameters\":[],\"returnMultiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"returnType\":\"model::animal::GenericAnimal\",\"stereotypes\":[],\"taggedValues\":[]}],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"diagram\",\"classViews\":[{\"class\":\"model::animal::mammal::Mammal\",\"id\":\"641a0336-d4b5-418c-b656-2f52461264e2\",\"position\":{\"x\":427.0,\"y\":210.0},\"rectangle\":{\"height\":44.0,\"width\":125.1123046875}},{\"class\":\"model::animal::reptile::Reptile\",\"id\":\"b92253d8-0389-4c7d-b5d2-3cdc3bb1ad98\",\"position\":{\"x\":787.0,\"y\":216.0},\"rectangle\":{\"height\":58.0,\"width\":120.84765625}},{\"class\":\"model::animal::Animal\",\"id\":\"7a992cfc-c888-4091-aa00-ab430915aced\",\"position\":{\"x\":515.423828125,\"y\":-7.5},\"rectangle\":{\"height\":100.0,\"width\":199.716796875}}],\"generalizationViews\":[{\"line\":{\"points\":[{\"x\":847.423828125,\"y\":245.0},{\"x\":615.2822265625,\"y\":42.5}]},\"sourceView\":\"b92253d8-0389-4c7d-b5d2-3cdc3bb1ad98\",\"targetView\":\"7a992cfc-c888-4091-aa00-ab430915aced\"}],\"name\":\"AnimalDiagram\",\"package\":\"model::animal\",\"propertyViews\":[]},{\"_type\":\"Enumeration\",\"name\":\"Family\",\"package\":\"model::animal\",\"stereotypes\":[],\"taggedValues\":[],\"values\":[{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"UO\"},{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"OP\"}]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"GenericAnimal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"GenericAnimal2\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Mammal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal::mammal\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"noOfLegs\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Reptile\",\"originalMilestonedProperties\":[],\"package\":\"model::animal::reptile\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"hasFin\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Boolean\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[\"model::animal::Animal\"],\"taggedValues\":[{\"tag\":{\"profile\":\"meta::pure::profiles::doc\",\"value\":\"doc\"},\"value\":\"\"}]}]},\"name\":\"AnimalDS\",\"package\":\"model::animal\",\"path\":\"model::animal::AnimalDS\",\"stereotypes\":[{\"profile\":\"meta::pure::metamodel::dataSpace::profiles::DataSpaceInfo\",\"value\":\"Verified\"}],\"supportInfo\":{\"_type\":\"email\",\"address\":\"someEmail@test.org\"},\"taggedValues\":[]}"); - testDataSpaceAnalyticsArtifactGenerationExtension("models/dataSpaceBasic.pure", "model::animal::AnimalDS2", "{\"defaultExecutionContext\":\"dummyContext\",\"description\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"diagrams\":[{\"diagram\":\"model::animal::AnimalDiagram\",\"title\":\"\"},{\"diagram\":\"model::GeneralDiagram\",\"title\":\"\"}],\"elementDocs\":[],\"elements\":[],\"executables\":[],\"executionContexts\":[{\"compatibleRuntimes\":[\"model::dummyRuntime\"],\"datasets\":[],\"defaultRuntime\":\"model::dummyRuntime\",\"description\":\"An important execution context\",\"mapping\":\"model::dummyMapping\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[]},\"name\":\"dummyContext\"},{\"compatibleRuntimes\":[\"model::dummyRuntime\",\"model::dummyRuntime2\"],\"datasets\":[],\"defaultRuntime\":\"model::dummyRuntime\",\"mapping\":\"model::dummyMapping2\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[]},\"name\":\"dummyContext2\"},{\"compatibleRuntimes\":[\"model::dummyRuntime\",\"model::dummyRuntime2\"],\"datasets\":[],\"defaultRuntime\":\"model::dummyRuntime2\",\"mapping\":\"model::dummyMapping2\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[]},\"name\":\"dummyContext3\"}],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"profile\",\"name\":\"doc\",\"package\":\"meta::pure::profiles\",\"stereotypes\":[\"deprecated\"],\"tags\":[\"doc\",\"todo\"]},{\"_type\":\"diagram\",\"classViews\":[{\"class\":\"model::animal::reptile::Reptile\",\"id\":\"4cec85f9-9b66-450a-bdcb-c855aa0314e1\",\"position\":{\"x\":568.0,\"y\":404.0},\"rectangle\":{\"height\":58.0,\"width\":120.84765625}},{\"class\":\"model::animal::Animal\",\"id\":\"902bf14e-e7ff-40e7-92e4-8780f91bfa29\",\"position\":{\"x\":809.0,\"y\":187.0},\"rectangle\":{\"height\":44.0,\"width\":108.64453125}}],\"generalizationViews\":[{\"line\":{\"points\":[{\"x\":628.423828125,\"y\":433.0},{\"x\":863.322265625,\"y\":209.0}]},\"sourceView\":\"4cec85f9-9b66-450a-bdcb-c855aa0314e1\",\"targetView\":\"902bf14e-e7ff-40e7-92e4-8780f91bfa29\"}],\"name\":\"GeneralDiagram\",\"package\":\"model\",\"propertyViews\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Animal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"family\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::animal::Family\"},{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"noOfLegs\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Number\"},{\"multiplicity\":{\"lowerBound\":0},\"name\":\"children\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::animal::GenericAnimal2\"}],\"qualifiedProperties\":[{\"body\":[{\"_type\":\"func\",\"fControl\":\"greaterThan_Number_1__Number_1__Boolean_1_\",\"function\":\"greaterThan\",\"parameters\":[{\"_type\":\"property\",\"parameters\":[{\"_type\":\"var\",\"name\":\"this\"}],\"property\":\"noOfLegs\"},{\"_type\":\"integer\",\"value\":4}]}],\"name\":\"something\",\"parameters\":[],\"returnMultiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"returnType\":\"Boolean\",\"stereotypes\":[],\"taggedValues\":[]},{\"body\":[{\"_type\":\"collection\",\"multiplicity\":{\"lowerBound\":0,\"upperBound\":0},\"values\":[]}],\"name\":\"something2\",\"parameters\":[],\"returnMultiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"returnType\":\"model::animal::GenericAnimal\",\"stereotypes\":[],\"taggedValues\":[]}],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"diagram\",\"classViews\":[{\"class\":\"model::animal::mammal::Mammal\",\"id\":\"641a0336-d4b5-418c-b656-2f52461264e2\",\"position\":{\"x\":427.0,\"y\":210.0},\"rectangle\":{\"height\":44.0,\"width\":125.1123046875}},{\"class\":\"model::animal::reptile::Reptile\",\"id\":\"b92253d8-0389-4c7d-b5d2-3cdc3bb1ad98\",\"position\":{\"x\":787.0,\"y\":216.0},\"rectangle\":{\"height\":58.0,\"width\":120.84765625}},{\"class\":\"model::animal::Animal\",\"id\":\"7a992cfc-c888-4091-aa00-ab430915aced\",\"position\":{\"x\":515.423828125,\"y\":-7.5},\"rectangle\":{\"height\":100.0,\"width\":199.716796875}}],\"generalizationViews\":[{\"line\":{\"points\":[{\"x\":847.423828125,\"y\":245.0},{\"x\":615.2822265625,\"y\":42.5}]},\"sourceView\":\"b92253d8-0389-4c7d-b5d2-3cdc3bb1ad98\",\"targetView\":\"7a992cfc-c888-4091-aa00-ab430915aced\"}],\"name\":\"AnimalDiagram\",\"package\":\"model::animal\",\"propertyViews\":[]},{\"_type\":\"Enumeration\",\"name\":\"Family\",\"package\":\"model::animal\",\"stereotypes\":[],\"taggedValues\":[],\"values\":[{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"UO\"},{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"OP\"}]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"GenericAnimal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"GenericAnimal2\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Mammal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal::mammal\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"noOfLegs\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Reptile\",\"originalMilestonedProperties\":[],\"package\":\"model::animal::reptile\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"hasFin\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Boolean\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[\"model::animal::Animal\"],\"taggedValues\":[{\"tag\":{\"profile\":\"meta::pure::profiles::doc\",\"value\":\"doc\"},\"value\":\"\"}]}]},\"name\":\"AnimalDS2\",\"package\":\"model::animal\",\"path\":\"model::animal::AnimalDS2\",\"stereotypes\":[{\"profile\":\"meta::pure::metamodel::dataSpace::profiles::DataSpaceInfo\",\"value\":\"Verified\"}],\"supportInfo\":{\"_type\":\"email\",\"address\":\"someEmail@test.org\"},\"taggedValues\":[]}"); + testDataSpaceAnalyticsArtifactGenerationExtension("models/dataSpaceBasic.pure", "model::animal::AnimalDS_Old", "{\"defaultExecutionContext\":\"dummyContext\",\"description\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"diagrams\":[{\"diagram\":\"model::animal::AnimalDiagram\",\"title\":\"\"},{\"diagram\":\"model::GeneralDiagram\",\"title\":\"\"}],\"elementDocs\":[],\"elements\":[],\"executables\":[],\"executionContexts\":[{\"compatibleRuntimes\":[\"model::dummyRuntime\"],\"datasets\":[],\"defaultRuntime\":\"model::dummyRuntime\",\"description\":\"An important execution context\",\"mapping\":\"model::dummyMapping\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"dataSpace\",\"defaultExecutionContext\":\"dummyContext\",\"description\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"diagrams\":[{\"diagram\":{\"path\":\"model::animal::AnimalDiagram\"},\"title\":\"\"},{\"diagram\":{\"path\":\"model::GeneralDiagram\"},\"title\":\"\"}],\"executionContexts\":[{\"defaultRuntime\":{\"path\":\"model::dummyRuntime\",\"type\":\"RUNTIME\"},\"description\":\"An important execution context\",\"mapping\":{\"path\":\"model::dummyMapping\",\"type\":\"MAPPING\"},\"name\":\"dummyContext\"},{\"defaultRuntime\":{\"path\":\"model::dummyRuntime\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"model::dummyMapping2\",\"type\":\"MAPPING\"},\"name\":\"dummyContext2\"},{\"defaultRuntime\":{\"path\":\"model::dummyRuntime2\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"model::dummyMapping2\",\"type\":\"MAPPING\"},\"name\":\"dummyContext3\"}],\"name\":\"AnimalDS_Old\",\"package\":\"model::animal\",\"stereotypes\":[{\"profile\":\"doc\",\"value\":\"deprecated\"}],\"supportInfo\":{\"_type\":\"email\",\"address\":\"someEmail@test.org\"},\"taggedValues\":[{\"tag\":{\"profile\":\"meta::pure::profiles::enterprise\",\"value\":\"taxonomyNodes\"},\"value\":\"abcdxyz005\"},{\"tag\":{\"profile\":\"doc\",\"value\":\"doc\"},\"value\":\"Lorem ipsum\"},{\"tag\":{\"profile\":\"doc\",\"value\":\"doc\"},\"value\":\"Lorem ipsum2\"},{\"tag\":{\"profile\":\"meta::pure::metamodel::dataSpace::profiles::DataSpaceInfo\",\"value\":\"deprecationNotice\"},\"value\":\"Please use AnimalDS dataspace instead - link provided\"}]}]}},\"name\":\"dummyContext\"},{\"compatibleRuntimes\":[\"model::dummyRuntime\",\"model::dummyRuntime2\"],\"datasets\":[],\"defaultRuntime\":\"model::dummyRuntime\",\"mapping\":\"model::dummyMapping2\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"dataSpace\",\"defaultExecutionContext\":\"dummyContext\",\"description\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"diagrams\":[{\"diagram\":{\"path\":\"model::animal::AnimalDiagram\"},\"title\":\"\"},{\"diagram\":{\"path\":\"model::GeneralDiagram\"},\"title\":\"\"}],\"executionContexts\":[{\"defaultRuntime\":{\"path\":\"model::dummyRuntime\",\"type\":\"RUNTIME\"},\"description\":\"An important execution context\",\"mapping\":{\"path\":\"model::dummyMapping\",\"type\":\"MAPPING\"},\"name\":\"dummyContext\"},{\"defaultRuntime\":{\"path\":\"model::dummyRuntime\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"model::dummyMapping2\",\"type\":\"MAPPING\"},\"name\":\"dummyContext2\"},{\"defaultRuntime\":{\"path\":\"model::dummyRuntime2\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"model::dummyMapping2\",\"type\":\"MAPPING\"},\"name\":\"dummyContext3\"}],\"name\":\"AnimalDS_Old\",\"package\":\"model::animal\",\"stereotypes\":[{\"profile\":\"doc\",\"value\":\"deprecated\"}],\"supportInfo\":{\"_type\":\"email\",\"address\":\"someEmail@test.org\"},\"taggedValues\":[{\"tag\":{\"profile\":\"meta::pure::profiles::enterprise\",\"value\":\"taxonomyNodes\"},\"value\":\"abcdxyz005\"},{\"tag\":{\"profile\":\"doc\",\"value\":\"doc\"},\"value\":\"Lorem ipsum\"},{\"tag\":{\"profile\":\"doc\",\"value\":\"doc\"},\"value\":\"Lorem ipsum2\"},{\"tag\":{\"profile\":\"meta::pure::metamodel::dataSpace::profiles::DataSpaceInfo\",\"value\":\"deprecationNotice\"},\"value\":\"Please use AnimalDS dataspace instead - link provided\"}]}]}},\"name\":\"dummyContext2\"},{\"compatibleRuntimes\":[\"model::dummyRuntime\",\"model::dummyRuntime2\"],\"datasets\":[],\"defaultRuntime\":\"model::dummyRuntime2\",\"mapping\":\"model::dummyMapping2\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"dataSpace\",\"defaultExecutionContext\":\"dummyContext\",\"description\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"diagrams\":[{\"diagram\":{\"path\":\"model::animal::AnimalDiagram\"},\"title\":\"\"},{\"diagram\":{\"path\":\"model::GeneralDiagram\"},\"title\":\"\"}],\"executionContexts\":[{\"defaultRuntime\":{\"path\":\"model::dummyRuntime\",\"type\":\"RUNTIME\"},\"description\":\"An important execution context\",\"mapping\":{\"path\":\"model::dummyMapping\",\"type\":\"MAPPING\"},\"name\":\"dummyContext\"},{\"defaultRuntime\":{\"path\":\"model::dummyRuntime\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"model::dummyMapping2\",\"type\":\"MAPPING\"},\"name\":\"dummyContext2\"},{\"defaultRuntime\":{\"path\":\"model::dummyRuntime2\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"model::dummyMapping2\",\"type\":\"MAPPING\"},\"name\":\"dummyContext3\"}],\"name\":\"AnimalDS_Old\",\"package\":\"model::animal\",\"stereotypes\":[{\"profile\":\"doc\",\"value\":\"deprecated\"}],\"supportInfo\":{\"_type\":\"email\",\"address\":\"someEmail@test.org\"},\"taggedValues\":[{\"tag\":{\"profile\":\"meta::pure::profiles::enterprise\",\"value\":\"taxonomyNodes\"},\"value\":\"abcdxyz005\"},{\"tag\":{\"profile\":\"doc\",\"value\":\"doc\"},\"value\":\"Lorem ipsum\"},{\"tag\":{\"profile\":\"doc\",\"value\":\"doc\"},\"value\":\"Lorem ipsum2\"},{\"tag\":{\"profile\":\"meta::pure::metamodel::dataSpace::profiles::DataSpaceInfo\",\"value\":\"deprecationNotice\"},\"value\":\"Please use AnimalDS dataspace instead - link provided\"}]}]}},\"name\":\"dummyContext3\"}],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"profile\",\"name\":\"doc\",\"package\":\"meta::pure::profiles\",\"stereotypes\":[\"deprecated\"],\"tags\":[\"doc\",\"todo\"]},{\"_type\":\"diagram\",\"classViews\":[{\"class\":\"model::animal::reptile::Reptile\",\"id\":\"4cec85f9-9b66-450a-bdcb-c855aa0314e1\",\"position\":{\"x\":568.0,\"y\":404.0},\"rectangle\":{\"height\":58.0,\"width\":120.84765625}},{\"class\":\"model::animal::Animal\",\"id\":\"902bf14e-e7ff-40e7-92e4-8780f91bfa29\",\"position\":{\"x\":809.0,\"y\":187.0},\"rectangle\":{\"height\":44.0,\"width\":108.64453125}}],\"generalizationViews\":[{\"line\":{\"points\":[{\"x\":628.423828125,\"y\":433.0},{\"x\":863.322265625,\"y\":209.0}]},\"sourceView\":\"4cec85f9-9b66-450a-bdcb-c855aa0314e1\",\"targetView\":\"902bf14e-e7ff-40e7-92e4-8780f91bfa29\"}],\"name\":\"GeneralDiagram\",\"package\":\"model\",\"propertyViews\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Animal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"family\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::animal::Family\"},{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"noOfLegs\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Number\"},{\"multiplicity\":{\"lowerBound\":0},\"name\":\"children\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::animal::GenericAnimal2\"}],\"qualifiedProperties\":[{\"body\":[{\"_type\":\"func\",\"fControl\":\"greaterThan_Number_1__Number_1__Boolean_1_\",\"function\":\"greaterThan\",\"parameters\":[{\"_type\":\"property\",\"parameters\":[{\"_type\":\"var\",\"name\":\"this\"}],\"property\":\"noOfLegs\"},{\"_type\":\"integer\",\"value\":4}]}],\"name\":\"something\",\"parameters\":[],\"returnMultiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"returnType\":\"Boolean\",\"stereotypes\":[],\"taggedValues\":[]},{\"body\":[{\"_type\":\"collection\",\"multiplicity\":{\"lowerBound\":0,\"upperBound\":0},\"values\":[]}],\"name\":\"something2\",\"parameters\":[],\"returnMultiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"returnType\":\"model::animal::GenericAnimal\",\"stereotypes\":[],\"taggedValues\":[]}],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"diagram\",\"classViews\":[{\"class\":\"model::animal::mammal::Mammal\",\"id\":\"641a0336-d4b5-418c-b656-2f52461264e2\",\"position\":{\"x\":427.0,\"y\":210.0},\"rectangle\":{\"height\":44.0,\"width\":125.1123046875}},{\"class\":\"model::animal::reptile::Reptile\",\"id\":\"b92253d8-0389-4c7d-b5d2-3cdc3bb1ad98\",\"position\":{\"x\":787.0,\"y\":216.0},\"rectangle\":{\"height\":58.0,\"width\":120.84765625}},{\"class\":\"model::animal::Animal\",\"id\":\"7a992cfc-c888-4091-aa00-ab430915aced\",\"position\":{\"x\":515.423828125,\"y\":-7.5},\"rectangle\":{\"height\":100.0,\"width\":199.716796875}}],\"generalizationViews\":[{\"line\":{\"points\":[{\"x\":847.423828125,\"y\":245.0},{\"x\":615.2822265625,\"y\":42.5}]},\"sourceView\":\"b92253d8-0389-4c7d-b5d2-3cdc3bb1ad98\",\"targetView\":\"7a992cfc-c888-4091-aa00-ab430915aced\"}],\"name\":\"AnimalDiagram\",\"package\":\"model::animal\",\"propertyViews\":[]},{\"_type\":\"Enumeration\",\"name\":\"Family\",\"package\":\"model::animal\",\"stereotypes\":[],\"taggedValues\":[],\"values\":[{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"UO\"},{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"OP\"}]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"GenericAnimal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"GenericAnimal2\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Mammal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal::mammal\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"noOfLegs\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Reptile\",\"originalMilestonedProperties\":[],\"package\":\"model::animal::reptile\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"hasFin\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Boolean\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[\"model::animal::Animal\"],\"taggedValues\":[{\"tag\":{\"profile\":\"meta::pure::profiles::doc\",\"value\":\"doc\"},\"value\":\"\"}]}]},\"name\":\"AnimalDS_Old\",\"package\":\"model::animal\",\"path\":\"model::animal::AnimalDS_Old\",\"stereotypes\":[{\"profile\":\"meta::pure::profiles::doc\",\"value\":\"deprecated\"}],\"supportInfo\":{\"_type\":\"email\",\"address\":\"someEmail@test.org\"},\"taggedValues\":[{\"profile\":\"meta::pure::profiles::enterprise\",\"tag\":\"taxonomyNodes\",\"value\":\"abcdxyz005\"},{\"profile\":\"meta::pure::profiles::doc\",\"tag\":\"doc\",\"value\":\"Lorem ipsum\"},{\"profile\":\"meta::pure::profiles::doc\",\"tag\":\"doc\",\"value\":\"Lorem ipsum2\"},{\"profile\":\"meta::pure::metamodel::dataSpace::profiles::DataSpaceInfo\",\"tag\":\"deprecationNotice\",\"value\":\"Please use AnimalDS dataspace instead - link provided\"}]}"); + testDataSpaceAnalyticsArtifactGenerationExtension("models/dataSpaceBasic.pure", "model::animal::AnimalDS", "{\"defaultExecutionContext\":\"dummyContext\",\"description\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"diagrams\":[{\"description\":\"Some diagram description\",\"diagram\":\"model::animal::AnimalDiagram\",\"title\":\"Diag 1\"},{\"description\":\"Some more diagram description\",\"diagram\":\"model::GeneralDiagram\",\"title\":\"Diag 2\"}],\"elementDocs\":[],\"elements\":[],\"executables\":[],\"executionContexts\":[{\"compatibleRuntimes\":[\"model::dummyRuntime\"],\"datasets\":[],\"defaultRuntime\":\"model::dummyRuntime\",\"description\":\"An important execution context\",\"mapping\":\"model::dummyMapping\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"dataSpace\",\"defaultExecutionContext\":\"dummyContext\",\"description\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"diagrams\":[{\"description\":\"Some diagram description\",\"diagram\":{\"path\":\"model::animal::AnimalDiagram\"},\"title\":\"Diag 1\"},{\"description\":\"Some more diagram description\",\"diagram\":{\"path\":\"model::GeneralDiagram\"},\"title\":\"Diag 2\"}],\"executionContexts\":[{\"defaultRuntime\":{\"path\":\"model::dummyRuntime\",\"type\":\"RUNTIME\"},\"description\":\"An important execution context\",\"mapping\":{\"path\":\"model::dummyMapping\",\"type\":\"MAPPING\"},\"name\":\"dummyContext\",\"title\":\"Haha Nice\"},{\"defaultRuntime\":{\"path\":\"model::dummyRuntime\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"model::dummyMapping2\",\"type\":\"MAPPING\"},\"name\":\"dummyContext2\"},{\"defaultRuntime\":{\"path\":\"model::dummyRuntime2\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"model::dummyMapping2\",\"type\":\"MAPPING\"},\"name\":\"dummyContext3\"}],\"name\":\"AnimalDS\",\"package\":\"model::animal\",\"stereotypes\":[{\"profile\":\"meta::pure::metamodel::dataSpace::profiles::DataSpaceInfo\",\"value\":\"Verified\"}],\"supportInfo\":{\"_type\":\"email\",\"address\":\"someEmail@test.org\"},\"taggedValues\":[]}]}},\"name\":\"dummyContext\",\"title\":\"Haha Nice\"},{\"compatibleRuntimes\":[\"model::dummyRuntime\",\"model::dummyRuntime2\"],\"datasets\":[],\"defaultRuntime\":\"model::dummyRuntime\",\"mapping\":\"model::dummyMapping2\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"dataSpace\",\"defaultExecutionContext\":\"dummyContext\",\"description\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"diagrams\":[{\"description\":\"Some diagram description\",\"diagram\":{\"path\":\"model::animal::AnimalDiagram\"},\"title\":\"Diag 1\"},{\"description\":\"Some more diagram description\",\"diagram\":{\"path\":\"model::GeneralDiagram\"},\"title\":\"Diag 2\"}],\"executionContexts\":[{\"defaultRuntime\":{\"path\":\"model::dummyRuntime\",\"type\":\"RUNTIME\"},\"description\":\"An important execution context\",\"mapping\":{\"path\":\"model::dummyMapping\",\"type\":\"MAPPING\"},\"name\":\"dummyContext\",\"title\":\"Haha Nice\"},{\"defaultRuntime\":{\"path\":\"model::dummyRuntime\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"model::dummyMapping2\",\"type\":\"MAPPING\"},\"name\":\"dummyContext2\"},{\"defaultRuntime\":{\"path\":\"model::dummyRuntime2\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"model::dummyMapping2\",\"type\":\"MAPPING\"},\"name\":\"dummyContext3\"}],\"name\":\"AnimalDS\",\"package\":\"model::animal\",\"stereotypes\":[{\"profile\":\"meta::pure::metamodel::dataSpace::profiles::DataSpaceInfo\",\"value\":\"Verified\"}],\"supportInfo\":{\"_type\":\"email\",\"address\":\"someEmail@test.org\"},\"taggedValues\":[]}]}},\"name\":\"dummyContext2\"},{\"compatibleRuntimes\":[\"model::dummyRuntime\",\"model::dummyRuntime2\"],\"datasets\":[],\"defaultRuntime\":\"model::dummyRuntime2\",\"mapping\":\"model::dummyMapping2\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"dataSpace\",\"defaultExecutionContext\":\"dummyContext\",\"description\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"diagrams\":[{\"description\":\"Some diagram description\",\"diagram\":{\"path\":\"model::animal::AnimalDiagram\"},\"title\":\"Diag 1\"},{\"description\":\"Some more diagram description\",\"diagram\":{\"path\":\"model::GeneralDiagram\"},\"title\":\"Diag 2\"}],\"executionContexts\":[{\"defaultRuntime\":{\"path\":\"model::dummyRuntime\",\"type\":\"RUNTIME\"},\"description\":\"An important execution context\",\"mapping\":{\"path\":\"model::dummyMapping\",\"type\":\"MAPPING\"},\"name\":\"dummyContext\",\"title\":\"Haha Nice\"},{\"defaultRuntime\":{\"path\":\"model::dummyRuntime\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"model::dummyMapping2\",\"type\":\"MAPPING\"},\"name\":\"dummyContext2\"},{\"defaultRuntime\":{\"path\":\"model::dummyRuntime2\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"model::dummyMapping2\",\"type\":\"MAPPING\"},\"name\":\"dummyContext3\"}],\"name\":\"AnimalDS\",\"package\":\"model::animal\",\"stereotypes\":[{\"profile\":\"meta::pure::metamodel::dataSpace::profiles::DataSpaceInfo\",\"value\":\"Verified\"}],\"supportInfo\":{\"_type\":\"email\",\"address\":\"someEmail@test.org\"},\"taggedValues\":[]}]}},\"name\":\"dummyContext3\"}],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"profile\",\"name\":\"doc\",\"package\":\"meta::pure::profiles\",\"stereotypes\":[\"deprecated\"],\"tags\":[\"doc\",\"todo\"]},{\"_type\":\"diagram\",\"classViews\":[{\"class\":\"model::animal::reptile::Reptile\",\"id\":\"4cec85f9-9b66-450a-bdcb-c855aa0314e1\",\"position\":{\"x\":568.0,\"y\":404.0},\"rectangle\":{\"height\":58.0,\"width\":120.84765625}},{\"class\":\"model::animal::Animal\",\"id\":\"902bf14e-e7ff-40e7-92e4-8780f91bfa29\",\"position\":{\"x\":809.0,\"y\":187.0},\"rectangle\":{\"height\":44.0,\"width\":108.64453125}}],\"generalizationViews\":[{\"line\":{\"points\":[{\"x\":628.423828125,\"y\":433.0},{\"x\":863.322265625,\"y\":209.0}]},\"sourceView\":\"4cec85f9-9b66-450a-bdcb-c855aa0314e1\",\"targetView\":\"902bf14e-e7ff-40e7-92e4-8780f91bfa29\"}],\"name\":\"GeneralDiagram\",\"package\":\"model\",\"propertyViews\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Animal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"family\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::animal::Family\"},{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"noOfLegs\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Number\"},{\"multiplicity\":{\"lowerBound\":0},\"name\":\"children\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::animal::GenericAnimal2\"}],\"qualifiedProperties\":[{\"body\":[{\"_type\":\"func\",\"fControl\":\"greaterThan_Number_1__Number_1__Boolean_1_\",\"function\":\"greaterThan\",\"parameters\":[{\"_type\":\"property\",\"parameters\":[{\"_type\":\"var\",\"name\":\"this\"}],\"property\":\"noOfLegs\"},{\"_type\":\"integer\",\"value\":4}]}],\"name\":\"something\",\"parameters\":[],\"returnMultiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"returnType\":\"Boolean\",\"stereotypes\":[],\"taggedValues\":[]},{\"body\":[{\"_type\":\"collection\",\"multiplicity\":{\"lowerBound\":0,\"upperBound\":0},\"values\":[]}],\"name\":\"something2\",\"parameters\":[],\"returnMultiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"returnType\":\"model::animal::GenericAnimal\",\"stereotypes\":[],\"taggedValues\":[]}],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"diagram\",\"classViews\":[{\"class\":\"model::animal::mammal::Mammal\",\"id\":\"641a0336-d4b5-418c-b656-2f52461264e2\",\"position\":{\"x\":427.0,\"y\":210.0},\"rectangle\":{\"height\":44.0,\"width\":125.1123046875}},{\"class\":\"model::animal::reptile::Reptile\",\"id\":\"b92253d8-0389-4c7d-b5d2-3cdc3bb1ad98\",\"position\":{\"x\":787.0,\"y\":216.0},\"rectangle\":{\"height\":58.0,\"width\":120.84765625}},{\"class\":\"model::animal::Animal\",\"id\":\"7a992cfc-c888-4091-aa00-ab430915aced\",\"position\":{\"x\":515.423828125,\"y\":-7.5},\"rectangle\":{\"height\":100.0,\"width\":199.716796875}}],\"generalizationViews\":[{\"line\":{\"points\":[{\"x\":847.423828125,\"y\":245.0},{\"x\":615.2822265625,\"y\":42.5}]},\"sourceView\":\"b92253d8-0389-4c7d-b5d2-3cdc3bb1ad98\",\"targetView\":\"7a992cfc-c888-4091-aa00-ab430915aced\"}],\"name\":\"AnimalDiagram\",\"package\":\"model::animal\",\"propertyViews\":[]},{\"_type\":\"Enumeration\",\"name\":\"Family\",\"package\":\"model::animal\",\"stereotypes\":[],\"taggedValues\":[],\"values\":[{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"UO\"},{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"OP\"}]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"GenericAnimal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"GenericAnimal2\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Mammal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal::mammal\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"noOfLegs\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Reptile\",\"originalMilestonedProperties\":[],\"package\":\"model::animal::reptile\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"hasFin\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Boolean\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[\"model::animal::Animal\"],\"taggedValues\":[{\"tag\":{\"profile\":\"meta::pure::profiles::doc\",\"value\":\"doc\"},\"value\":\"\"}]}]},\"name\":\"AnimalDS\",\"package\":\"model::animal\",\"path\":\"model::animal::AnimalDS\",\"stereotypes\":[{\"profile\":\"meta::pure::metamodel::dataSpace::profiles::DataSpaceInfo\",\"value\":\"Verified\"}],\"supportInfo\":{\"_type\":\"email\",\"address\":\"someEmail@test.org\"},\"taggedValues\":[]}"); + testDataSpaceAnalyticsArtifactGenerationExtension("models/dataSpaceBasic.pure", "model::animal::AnimalDS2", "{\"defaultExecutionContext\":\"dummyContext\",\"description\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"diagrams\":[{\"diagram\":\"model::animal::AnimalDiagram\",\"title\":\"\"},{\"diagram\":\"model::GeneralDiagram\",\"title\":\"\"}],\"elementDocs\":[],\"elements\":[],\"executables\":[],\"executionContexts\":[{\"compatibleRuntimes\":[\"model::dummyRuntime\"],\"datasets\":[],\"defaultRuntime\":\"model::dummyRuntime\",\"description\":\"An important execution context\",\"mapping\":\"model::dummyMapping\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"dataSpace\",\"defaultExecutionContext\":\"dummyContext\",\"description\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"diagrams\":[{\"diagram\":{\"path\":\"model::animal::AnimalDiagram\"},\"title\":\"\"},{\"diagram\":{\"path\":\"model::GeneralDiagram\"},\"title\":\"\"}],\"executionContexts\":[{\"defaultRuntime\":{\"path\":\"model::dummyRuntime\",\"type\":\"RUNTIME\"},\"description\":\"An important execution context\",\"mapping\":{\"path\":\"model::dummyMapping\",\"type\":\"MAPPING\"},\"name\":\"dummyContext\"},{\"defaultRuntime\":{\"path\":\"model::dummyRuntime\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"model::dummyMapping2\",\"type\":\"MAPPING\"},\"name\":\"dummyContext2\"},{\"defaultRuntime\":{\"path\":\"model::dummyRuntime2\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"model::dummyMapping2\",\"type\":\"MAPPING\"},\"name\":\"dummyContext3\"}],\"name\":\"AnimalDS2\",\"package\":\"model::animal\",\"stereotypes\":[{\"profile\":\"meta::pure::metamodel::dataSpace::profiles::DataSpaceInfo\",\"value\":\"Verified\"}],\"supportInfo\":{\"_type\":\"email\",\"address\":\"someEmail@test.org\"},\"taggedValues\":[]}]}},\"name\":\"dummyContext\"},{\"compatibleRuntimes\":[\"model::dummyRuntime\",\"model::dummyRuntime2\"],\"datasets\":[],\"defaultRuntime\":\"model::dummyRuntime\",\"mapping\":\"model::dummyMapping2\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"dataSpace\",\"defaultExecutionContext\":\"dummyContext\",\"description\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"diagrams\":[{\"diagram\":{\"path\":\"model::animal::AnimalDiagram\"},\"title\":\"\"},{\"diagram\":{\"path\":\"model::GeneralDiagram\"},\"title\":\"\"}],\"executionContexts\":[{\"defaultRuntime\":{\"path\":\"model::dummyRuntime\",\"type\":\"RUNTIME\"},\"description\":\"An important execution context\",\"mapping\":{\"path\":\"model::dummyMapping\",\"type\":\"MAPPING\"},\"name\":\"dummyContext\"},{\"defaultRuntime\":{\"path\":\"model::dummyRuntime\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"model::dummyMapping2\",\"type\":\"MAPPING\"},\"name\":\"dummyContext2\"},{\"defaultRuntime\":{\"path\":\"model::dummyRuntime2\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"model::dummyMapping2\",\"type\":\"MAPPING\"},\"name\":\"dummyContext3\"}],\"name\":\"AnimalDS2\",\"package\":\"model::animal\",\"stereotypes\":[{\"profile\":\"meta::pure::metamodel::dataSpace::profiles::DataSpaceInfo\",\"value\":\"Verified\"}],\"supportInfo\":{\"_type\":\"email\",\"address\":\"someEmail@test.org\"},\"taggedValues\":[]}]}},\"name\":\"dummyContext2\"},{\"compatibleRuntimes\":[\"model::dummyRuntime\",\"model::dummyRuntime2\"],\"datasets\":[],\"defaultRuntime\":\"model::dummyRuntime2\",\"mapping\":\"model::dummyMapping2\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"dataSpace\",\"defaultExecutionContext\":\"dummyContext\",\"description\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"diagrams\":[{\"diagram\":{\"path\":\"model::animal::AnimalDiagram\"},\"title\":\"\"},{\"diagram\":{\"path\":\"model::GeneralDiagram\"},\"title\":\"\"}],\"executionContexts\":[{\"defaultRuntime\":{\"path\":\"model::dummyRuntime\",\"type\":\"RUNTIME\"},\"description\":\"An important execution context\",\"mapping\":{\"path\":\"model::dummyMapping\",\"type\":\"MAPPING\"},\"name\":\"dummyContext\"},{\"defaultRuntime\":{\"path\":\"model::dummyRuntime\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"model::dummyMapping2\",\"type\":\"MAPPING\"},\"name\":\"dummyContext2\"},{\"defaultRuntime\":{\"path\":\"model::dummyRuntime2\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"model::dummyMapping2\",\"type\":\"MAPPING\"},\"name\":\"dummyContext3\"}],\"name\":\"AnimalDS2\",\"package\":\"model::animal\",\"stereotypes\":[{\"profile\":\"meta::pure::metamodel::dataSpace::profiles::DataSpaceInfo\",\"value\":\"Verified\"}],\"supportInfo\":{\"_type\":\"email\",\"address\":\"someEmail@test.org\"},\"taggedValues\":[]}]}},\"name\":\"dummyContext3\"}],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"profile\",\"name\":\"doc\",\"package\":\"meta::pure::profiles\",\"stereotypes\":[\"deprecated\"],\"tags\":[\"doc\",\"todo\"]},{\"_type\":\"diagram\",\"classViews\":[{\"class\":\"model::animal::reptile::Reptile\",\"id\":\"4cec85f9-9b66-450a-bdcb-c855aa0314e1\",\"position\":{\"x\":568.0,\"y\":404.0},\"rectangle\":{\"height\":58.0,\"width\":120.84765625}},{\"class\":\"model::animal::Animal\",\"id\":\"902bf14e-e7ff-40e7-92e4-8780f91bfa29\",\"position\":{\"x\":809.0,\"y\":187.0},\"rectangle\":{\"height\":44.0,\"width\":108.64453125}}],\"generalizationViews\":[{\"line\":{\"points\":[{\"x\":628.423828125,\"y\":433.0},{\"x\":863.322265625,\"y\":209.0}]},\"sourceView\":\"4cec85f9-9b66-450a-bdcb-c855aa0314e1\",\"targetView\":\"902bf14e-e7ff-40e7-92e4-8780f91bfa29\"}],\"name\":\"GeneralDiagram\",\"package\":\"model\",\"propertyViews\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Animal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"family\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::animal::Family\"},{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"noOfLegs\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Number\"},{\"multiplicity\":{\"lowerBound\":0},\"name\":\"children\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::animal::GenericAnimal2\"}],\"qualifiedProperties\":[{\"body\":[{\"_type\":\"func\",\"fControl\":\"greaterThan_Number_1__Number_1__Boolean_1_\",\"function\":\"greaterThan\",\"parameters\":[{\"_type\":\"property\",\"parameters\":[{\"_type\":\"var\",\"name\":\"this\"}],\"property\":\"noOfLegs\"},{\"_type\":\"integer\",\"value\":4}]}],\"name\":\"something\",\"parameters\":[],\"returnMultiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"returnType\":\"Boolean\",\"stereotypes\":[],\"taggedValues\":[]},{\"body\":[{\"_type\":\"collection\",\"multiplicity\":{\"lowerBound\":0,\"upperBound\":0},\"values\":[]}],\"name\":\"something2\",\"parameters\":[],\"returnMultiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"returnType\":\"model::animal::GenericAnimal\",\"stereotypes\":[],\"taggedValues\":[]}],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"diagram\",\"classViews\":[{\"class\":\"model::animal::mammal::Mammal\",\"id\":\"641a0336-d4b5-418c-b656-2f52461264e2\",\"position\":{\"x\":427.0,\"y\":210.0},\"rectangle\":{\"height\":44.0,\"width\":125.1123046875}},{\"class\":\"model::animal::reptile::Reptile\",\"id\":\"b92253d8-0389-4c7d-b5d2-3cdc3bb1ad98\",\"position\":{\"x\":787.0,\"y\":216.0},\"rectangle\":{\"height\":58.0,\"width\":120.84765625}},{\"class\":\"model::animal::Animal\",\"id\":\"7a992cfc-c888-4091-aa00-ab430915aced\",\"position\":{\"x\":515.423828125,\"y\":-7.5},\"rectangle\":{\"height\":100.0,\"width\":199.716796875}}],\"generalizationViews\":[{\"line\":{\"points\":[{\"x\":847.423828125,\"y\":245.0},{\"x\":615.2822265625,\"y\":42.5}]},\"sourceView\":\"b92253d8-0389-4c7d-b5d2-3cdc3bb1ad98\",\"targetView\":\"7a992cfc-c888-4091-aa00-ab430915aced\"}],\"name\":\"AnimalDiagram\",\"package\":\"model::animal\",\"propertyViews\":[]},{\"_type\":\"Enumeration\",\"name\":\"Family\",\"package\":\"model::animal\",\"stereotypes\":[],\"taggedValues\":[],\"values\":[{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"UO\"},{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"OP\"}]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"GenericAnimal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"GenericAnimal2\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Mammal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal::mammal\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"noOfLegs\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Reptile\",\"originalMilestonedProperties\":[],\"package\":\"model::animal::reptile\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"hasFin\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Boolean\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[\"model::animal::Animal\"],\"taggedValues\":[{\"tag\":{\"profile\":\"meta::pure::profiles::doc\",\"value\":\"doc\"},\"value\":\"\"}]}]},\"name\":\"AnimalDS2\",\"package\":\"model::animal\",\"path\":\"model::animal::AnimalDS2\",\"stereotypes\":[{\"profile\":\"meta::pure::metamodel::dataSpace::profiles::DataSpaceInfo\",\"value\":\"Verified\"}],\"supportInfo\":{\"_type\":\"email\",\"address\":\"someEmail@test.org\"},\"taggedValues\":[]}"); } @Test public void testAnalyticsForDataSpaceWithAssociation() throws Exception { - testDataSpaceAnalyticsArtifactGenerationExtension("models/dataSpaceWithAssociation.pure", "domain::COVIDDatapace", "{\"defaultExecutionContext\":\"dummyContext\",\"description\":\"Not over yet?\",\"diagrams\":[{\"diagram\":\"domain::COVIDDataDiagram\",\"title\":\"\"}],\"elementDocs\":[],\"elements\":[],\"executables\":[],\"executionContexts\":[{\"compatibleRuntimes\":[\"runtime::MyRuntime\"],\"datasets\":[],\"defaultRuntime\":\"runtime::MyRuntime\",\"mapping\":\"mapping::CovidDataMapping\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[]},\"name\":\"dummyContext\"},{\"compatibleRuntimes\":[\"runtime::MyRuntime\"],\"datasets\":[],\"defaultRuntime\":\"runtime::MyRuntime\",\"mapping\":\"mapping::CovidDataMapping\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[]},\"name\":\"dummyContext2\"}],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"class\",\"constraints\":[],\"name\":\"COVIDData\",\"originalMilestonedProperties\":[],\"package\":\"domain\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"id\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Integer\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"fips\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"date\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"StrictDate\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"caseType\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"cases\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Float\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"lastReportedFlag\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Boolean\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"demographics\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"domain::Demographics\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"diagram\",\"classViews\":[{\"class\":\"domain::COVIDData\",\"id\":\"6b69f44b-f729-46aa-b244-ec5ee8164142\",\"position\":{\"x\":280.0,\"y\":159.0},\"rectangle\":{\"height\":128.0,\"width\":205.8291015625}},{\"class\":\"domain::Demographics\",\"id\":\"159e797e-ae75-437d-ba9c-253f99a48826\",\"position\":{\"x\":698.0,\"y\":238.0},\"rectangle\":{\"height\":58.0,\"width\":111.68994140625}},{\"class\":\"domain::Class1\",\"id\":\"f6bd8a50-8d18-4bd9-9a8d-7fad88d02b07\",\"position\":{\"x\":360.844970703125,\"y\":49.0},\"rectangle\":{\"height\":58.0,\"width\":137.390625}},{\"class\":\"domain::Class2\",\"id\":\"690e89d4-23e9-46e8-8543-c89c22cc9e15\",\"position\":{\"x\":696.844970703125,\"y\":95.0},\"rectangle\":{\"height\":44.0,\"width\":133.68994140625}}],\"generalizationViews\":[],\"name\":\"COVIDDataDiagram\",\"package\":\"domain\",\"propertyViews\":[{\"line\":{\"points\":[{\"x\":382.91455078125,\"y\":223.0},{\"x\":753.844970703125,\"y\":267.0}]},\"property\":{\"class\":\"domain::COVIDData\",\"property\":\"demographics\"},\"sourceView\":\"6b69f44b-f729-46aa-b244-ec5ee8164142\",\"targetView\":\"159e797e-ae75-437d-ba9c-253f99a48826\"},{\"line\":{\"points\":[{\"x\":763.68994140625,\"y\":117.0},{\"x\":429.540283203125,\"y\":78.0}]},\"property\":{\"class\":\"domain::Class2\",\"property\":\"fromClass1\"},\"sourceView\":\"690e89d4-23e9-46e8-8543-c89c22cc9e15\",\"targetView\":\"f6bd8a50-8d18-4bd9-9a8d-7fad88d02b07\"},{\"line\":{\"points\":[{\"x\":429.540283203125,\"y\":78.0},{\"x\":763.68994140625,\"y\":117.0}]},\"property\":{\"class\":\"domain::Class1\",\"property\":\"fromClass2\"},\"sourceView\":\"f6bd8a50-8d18-4bd9-9a8d-7fad88d02b07\",\"targetView\":\"690e89d4-23e9-46e8-8543-c89c22cc9e15\"}]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Class1\",\"originalMilestonedProperties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"fromClass2\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"domain::Class2\"}],\"package\":\"domain\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"propClass1\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[],\"stereotypes\":[{\"profile\":\"meta::pure::profiles::temporal\",\"value\":\"businesstemporal\"}],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"association\",\"name\":\"Class12Assoc\",\"originalMilestonedProperties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"fromClass1\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"domain::Class1\"},{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"fromClass2\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"domain::Class2\"}],\"package\":\"domain\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"fromClass1\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"domain::Class1\"},{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"fromClass2\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"domain::Class2\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Class2\",\"originalMilestonedProperties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"fromClass1\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"domain::Class1\"}],\"package\":\"domain\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"propClass2\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[],\"stereotypes\":[{\"profile\":\"meta::pure::profiles::temporal\",\"value\":\"processingtemporal\"}],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Demographics\",\"originalMilestonedProperties\":[],\"package\":\"domain\",\"properties\":[{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"fips\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"state\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"BusinessDateMilestoning\",\"originalMilestonedProperties\":[],\"package\":\"meta::pure::milestoning\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"ProcessingDateMilestoning\",\"originalMilestonedProperties\":[],\"package\":\"meta::pure::milestoning\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"profile\",\"name\":\"temporal\",\"package\":\"meta::pure::profiles\",\"stereotypes\":[\"bitemporal\",\"businesstemporal\",\"processingtemporal\"],\"tags\":[]}]},\"name\":\"COVIDDatapace\",\"package\":\"domain\",\"path\":\"domain::COVIDDatapace\",\"stereotypes\":[],\"taggedValues\":[],\"title\":\"COVID Sample Data\"}"); + testDataSpaceAnalyticsArtifactGenerationExtension("models/dataSpaceWithAssociation.pure", "domain::COVIDDatapace", "{\"defaultExecutionContext\":\"dummyContext\",\"description\":\"Not over yet?\",\"diagrams\":[{\"diagram\":\"domain::COVIDDataDiagram\",\"title\":\"\"}],\"elementDocs\":[],\"elements\":[],\"executables\":[],\"executionContexts\":[{\"compatibleRuntimes\":[\"runtime::MyRuntime\"],\"datasets\":[],\"defaultRuntime\":\"runtime::MyRuntime\",\"mapping\":\"mapping::CovidDataMapping\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"dataSpace\",\"defaultExecutionContext\":\"dummyContext\",\"description\":\"Not over yet?\",\"diagrams\":[{\"diagram\":{\"path\":\"domain::COVIDDataDiagram\"},\"title\":\"\"}],\"executionContexts\":[{\"defaultRuntime\":{\"path\":\"runtime::MyRuntime\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"mapping::CovidDataMapping\",\"type\":\"MAPPING\"},\"name\":\"dummyContext\"},{\"defaultRuntime\":{\"path\":\"runtime::MyRuntime\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"mapping::CovidDataMapping\",\"type\":\"MAPPING\"},\"name\":\"dummyContext2\"}],\"name\":\"COVIDDatapace\",\"package\":\"domain\",\"stereotypes\":[],\"taggedValues\":[],\"title\":\"COVID Sample Data\"}]}},\"name\":\"dummyContext\"},{\"compatibleRuntimes\":[\"runtime::MyRuntime\"],\"datasets\":[],\"defaultRuntime\":\"runtime::MyRuntime\",\"mapping\":\"mapping::CovidDataMapping\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"dataSpace\",\"defaultExecutionContext\":\"dummyContext\",\"description\":\"Not over yet?\",\"diagrams\":[{\"diagram\":{\"path\":\"domain::COVIDDataDiagram\"},\"title\":\"\"}],\"executionContexts\":[{\"defaultRuntime\":{\"path\":\"runtime::MyRuntime\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"mapping::CovidDataMapping\",\"type\":\"MAPPING\"},\"name\":\"dummyContext\"},{\"defaultRuntime\":{\"path\":\"runtime::MyRuntime\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"mapping::CovidDataMapping\",\"type\":\"MAPPING\"},\"name\":\"dummyContext2\"}],\"name\":\"COVIDDatapace\",\"package\":\"domain\",\"stereotypes\":[],\"taggedValues\":[],\"title\":\"COVID Sample Data\"}]}},\"name\":\"dummyContext2\"}],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"class\",\"constraints\":[],\"name\":\"COVIDData\",\"originalMilestonedProperties\":[],\"package\":\"domain\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"id\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Integer\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"fips\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"date\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"StrictDate\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"caseType\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"cases\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Float\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"lastReportedFlag\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Boolean\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"demographics\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"domain::Demographics\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"diagram\",\"classViews\":[{\"class\":\"domain::COVIDData\",\"id\":\"6b69f44b-f729-46aa-b244-ec5ee8164142\",\"position\":{\"x\":280.0,\"y\":159.0},\"rectangle\":{\"height\":128.0,\"width\":205.8291015625}},{\"class\":\"domain::Demographics\",\"id\":\"159e797e-ae75-437d-ba9c-253f99a48826\",\"position\":{\"x\":698.0,\"y\":238.0},\"rectangle\":{\"height\":58.0,\"width\":111.68994140625}},{\"class\":\"domain::Class1\",\"id\":\"f6bd8a50-8d18-4bd9-9a8d-7fad88d02b07\",\"position\":{\"x\":360.844970703125,\"y\":49.0},\"rectangle\":{\"height\":58.0,\"width\":137.390625}},{\"class\":\"domain::Class2\",\"id\":\"690e89d4-23e9-46e8-8543-c89c22cc9e15\",\"position\":{\"x\":696.844970703125,\"y\":95.0},\"rectangle\":{\"height\":44.0,\"width\":133.68994140625}}],\"generalizationViews\":[],\"name\":\"COVIDDataDiagram\",\"package\":\"domain\",\"propertyViews\":[{\"line\":{\"points\":[{\"x\":382.91455078125,\"y\":223.0},{\"x\":753.844970703125,\"y\":267.0}]},\"property\":{\"class\":\"domain::COVIDData\",\"property\":\"demographics\"},\"sourceView\":\"6b69f44b-f729-46aa-b244-ec5ee8164142\",\"targetView\":\"159e797e-ae75-437d-ba9c-253f99a48826\"},{\"line\":{\"points\":[{\"x\":763.68994140625,\"y\":117.0},{\"x\":429.540283203125,\"y\":78.0}]},\"property\":{\"class\":\"domain::Class2\",\"property\":\"fromClass1\"},\"sourceView\":\"690e89d4-23e9-46e8-8543-c89c22cc9e15\",\"targetView\":\"f6bd8a50-8d18-4bd9-9a8d-7fad88d02b07\"},{\"line\":{\"points\":[{\"x\":429.540283203125,\"y\":78.0},{\"x\":763.68994140625,\"y\":117.0}]},\"property\":{\"class\":\"domain::Class1\",\"property\":\"fromClass2\"},\"sourceView\":\"f6bd8a50-8d18-4bd9-9a8d-7fad88d02b07\",\"targetView\":\"690e89d4-23e9-46e8-8543-c89c22cc9e15\"}]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Class1\",\"originalMilestonedProperties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"fromClass2\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"domain::Class2\"}],\"package\":\"domain\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"propClass1\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[],\"stereotypes\":[{\"profile\":\"meta::pure::profiles::temporal\",\"value\":\"businesstemporal\"}],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"association\",\"name\":\"Class12Assoc\",\"originalMilestonedProperties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"fromClass1\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"domain::Class1\"},{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"fromClass2\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"domain::Class2\"}],\"package\":\"domain\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"fromClass1\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"domain::Class1\"},{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"fromClass2\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"domain::Class2\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Class2\",\"originalMilestonedProperties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"fromClass1\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"domain::Class1\"}],\"package\":\"domain\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"propClass2\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[],\"stereotypes\":[{\"profile\":\"meta::pure::profiles::temporal\",\"value\":\"processingtemporal\"}],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Demographics\",\"originalMilestonedProperties\":[],\"package\":\"domain\",\"properties\":[{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"fips\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"state\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"BusinessDateMilestoning\",\"originalMilestonedProperties\":[],\"package\":\"meta::pure::milestoning\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"ProcessingDateMilestoning\",\"originalMilestonedProperties\":[],\"package\":\"meta::pure::milestoning\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"profile\",\"name\":\"temporal\",\"package\":\"meta::pure::profiles\",\"stereotypes\":[\"bitemporal\",\"businesstemporal\",\"processingtemporal\"],\"tags\":[]}]},\"name\":\"COVIDDatapace\",\"package\":\"domain\",\"path\":\"domain::COVIDDatapace\",\"stereotypes\":[],\"taggedValues\":[],\"title\":\"COVID Sample Data\"}"); } @Test public void testAnalyticsForDataSpaceWithSubstantialMapping() throws Exception { - testDataSpaceAnalyticsArtifactGenerationExtension("models/dataSpaceWithSubstantialMapping.pure", "model::animal::AnimalDS", "{\"defaultExecutionContext\":\"dummyContext\",\"description\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"diagrams\":[{\"diagram\":\"model::animal::AnimalDiagram\",\"title\":\"\"},{\"diagram\":\"model::GeneralDiagram\",\"title\":\"\"}],\"elementDocs\":[],\"elements\":[],\"executables\":[],\"executionContexts\":[{\"compatibleRuntimes\":[\"model::dummyRuntime\"],\"datasets\":[],\"defaultRuntime\":\"model::dummyRuntime\",\"description\":\"An important execution context\",\"mapping\":\"model::dummyMapping\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[{\"path\":\"model::animal::Animal\",\"properties\":[{\"_type\":\"MappedProperty\",\"name\":\"noOfLegs\"},{\"_type\":\"MappedProperty\",\"name\":\"something\"},{\"_type\":\"entity\",\"entityPath\":\"model::animal::GenericAnimal\",\"name\":\"something2\"}]},{\"path\":\"model::animal::Animal2\",\"properties\":[{\"_type\":\"MappedProperty\",\"name\":\"name\"},{\"_type\":\"MappedProperty\",\"name\":\"name2\"}]},{\"path\":\"model::animal::GenericAnimal\",\"properties\":[]},{\"path\":\"model::animal::GenericAnimal2\",\"properties\":[]}]},\"name\":\"dummyContext\"},{\"compatibleRuntimes\":[\"model::dummyRuntime\",\"model::dummyRuntime2\"],\"datasets\":[],\"defaultRuntime\":\"model::dummyRuntime\",\"mapping\":\"model::dummyMapping2\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[{\"path\":\"model::animal::mammal::Mammal\",\"properties\":[{\"_type\":\"MappedProperty\",\"name\":\"noOfLegs\"}]},{\"path\":\"model::animal::reptile::Reptile\",\"properties\":[{\"_type\":\"enum\",\"enumPath\":\"model::animal::Family\",\"name\":\"family\"},{\"_type\":\"MappedProperty\",\"name\":\"name2\"},{\"_type\":\"MappedProperty\",\"name\":\"something\"},{\"_type\":\"MappedProperty\",\"name\":\"hasFin\"}]}]},\"name\":\"dummyContext2\"},{\"compatibleRuntimes\":[\"model::dummyRuntime\",\"model::dummyRuntime2\"],\"datasets\":[],\"defaultRuntime\":\"model::dummyRuntime2\",\"mapping\":\"model::dummyMapping2\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[{\"path\":\"model::animal::mammal::Mammal\",\"properties\":[{\"_type\":\"MappedProperty\",\"name\":\"noOfLegs\"}]},{\"path\":\"model::animal::reptile::Reptile\",\"properties\":[{\"_type\":\"enum\",\"enumPath\":\"model::animal::Family\",\"name\":\"family\"},{\"_type\":\"MappedProperty\",\"name\":\"name2\"},{\"_type\":\"MappedProperty\",\"name\":\"something\"},{\"_type\":\"MappedProperty\",\"name\":\"hasFin\"}]}]},\"name\":\"dummyContext3\"}],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"profile\",\"name\":\"doc\",\"package\":\"meta::pure::profiles\",\"stereotypes\":[\"deprecated\"],\"tags\":[\"doc\",\"todo\"]},{\"_type\":\"diagram\",\"classViews\":[{\"class\":\"model::animal::reptile::Reptile\",\"id\":\"4cec85f9-9b66-450a-bdcb-c855aa0314e1\",\"position\":{\"x\":568.0,\"y\":404.0},\"rectangle\":{\"height\":58.0,\"width\":120.84765625}},{\"class\":\"model::animal::Animal\",\"id\":\"902bf14e-e7ff-40e7-92e4-8780f91bfa29\",\"position\":{\"x\":809.0,\"y\":187.0},\"rectangle\":{\"height\":44.0,\"width\":108.64453125}}],\"generalizationViews\":[{\"line\":{\"points\":[{\"x\":628.423828125,\"y\":433.0},{\"x\":863.322265625,\"y\":209.0}]},\"sourceView\":\"4cec85f9-9b66-450a-bdcb-c855aa0314e1\",\"targetView\":\"902bf14e-e7ff-40e7-92e4-8780f91bfa29\"}],\"name\":\"GeneralDiagram\",\"package\":\"model\",\"propertyViews\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Animal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"family\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::animal::Family\"},{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"noOfLegs\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Number\"},{\"multiplicity\":{\"lowerBound\":0},\"name\":\"children\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::animal::GenericAnimal2\"}],\"qualifiedProperties\":[{\"body\":[{\"_type\":\"func\",\"fControl\":\"greaterThan_Number_1__Number_1__Boolean_1_\",\"function\":\"greaterThan\",\"parameters\":[{\"_type\":\"property\",\"parameters\":[{\"_type\":\"var\",\"name\":\"this\"}],\"property\":\"noOfLegs\"},{\"_type\":\"integer\",\"value\":4}]}],\"name\":\"something\",\"parameters\":[],\"returnMultiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"returnType\":\"Boolean\",\"stereotypes\":[],\"taggedValues\":[]},{\"body\":[{\"_type\":\"collection\",\"multiplicity\":{\"lowerBound\":0,\"upperBound\":0},\"values\":[]}],\"name\":\"something2\",\"parameters\":[],\"returnMultiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"returnType\":\"model::animal::GenericAnimal\",\"stereotypes\":[],\"taggedValues\":[]}],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"diagram\",\"classViews\":[{\"class\":\"model::animal::mammal::Mammal\",\"id\":\"641a0336-d4b5-418c-b656-2f52461264e2\",\"position\":{\"x\":427.0,\"y\":210.0},\"rectangle\":{\"height\":44.0,\"width\":125.1123046875}},{\"class\":\"model::animal::reptile::Reptile\",\"id\":\"b92253d8-0389-4c7d-b5d2-3cdc3bb1ad98\",\"position\":{\"x\":787.0,\"y\":216.0},\"rectangle\":{\"height\":58.0,\"width\":120.84765625}},{\"class\":\"model::animal::Animal\",\"id\":\"7a992cfc-c888-4091-aa00-ab430915aced\",\"position\":{\"x\":515.423828125,\"y\":-7.5},\"rectangle\":{\"height\":100.0,\"width\":199.716796875}}],\"generalizationViews\":[{\"line\":{\"points\":[{\"x\":847.423828125,\"y\":245.0},{\"x\":615.2822265625,\"y\":42.5}]},\"sourceView\":\"b92253d8-0389-4c7d-b5d2-3cdc3bb1ad98\",\"targetView\":\"7a992cfc-c888-4091-aa00-ab430915aced\"}],\"name\":\"AnimalDiagram\",\"package\":\"model::animal\",\"propertyViews\":[]},{\"_type\":\"Enumeration\",\"name\":\"Family\",\"package\":\"model::animal\",\"stereotypes\":[],\"taggedValues\":[],\"values\":[{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"UO\"},{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"OP\"}]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"GenericAnimal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"GenericAnimal2\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Mammal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal::mammal\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"noOfLegs\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Reptile\",\"originalMilestonedProperties\":[],\"package\":\"model::animal::reptile\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"hasFin\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Boolean\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[\"model::animal::Animal\"],\"taggedValues\":[{\"tag\":{\"profile\":\"meta::pure::profiles::doc\",\"value\":\"doc\"},\"value\":\"\"}]}]},\"name\":\"AnimalDS\",\"package\":\"model::animal\",\"path\":\"model::animal::AnimalDS\",\"stereotypes\":[{\"profile\":\"meta::pure::profiles::doc\",\"value\":\"deprecated\"}],\"supportInfo\":{\"_type\":\"email\",\"address\":\"someEmail@test.org\"},\"taggedValues\":[{\"profile\":\"meta::pure::profiles::enterprise\",\"tag\":\"taxonomyNodes\",\"value\":\"abcdxyz005\"},{\"profile\":\"meta::pure::profiles::doc\",\"tag\":\"doc\",\"value\":\"Lorem ipsum\"},{\"profile\":\"meta::pure::profiles::doc\",\"tag\":\"doc\",\"value\":\"Lorem ipsum2\"}]}"); + testDataSpaceAnalyticsArtifactGenerationExtension("models/dataSpaceWithSubstantialMapping.pure", "model::animal::AnimalDS", "{\"defaultExecutionContext\":\"dummyContext\",\"description\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"diagrams\":[{\"diagram\":\"model::animal::AnimalDiagram\",\"title\":\"\"},{\"diagram\":\"model::GeneralDiagram\",\"title\":\"\"}],\"elementDocs\":[],\"elements\":[],\"executables\":[],\"executionContexts\":[{\"compatibleRuntimes\":[\"model::dummyRuntime\"],\"datasets\":[],\"defaultRuntime\":\"model::dummyRuntime\",\"description\":\"An important execution context\",\"mapping\":\"model::dummyMapping\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[{\"info\":{\"classPath\":\"model::animal::Animal\",\"isRootEntity\":true,\"subClasses\":[]},\"path\":\"model::animal::Animal\",\"properties\":[{\"_type\":\"MappedProperty\",\"name\":\"noOfLegs\"},{\"_type\":\"MappedProperty\",\"name\":\"something\"},{\"_type\":\"entity\",\"entityPath\":\"model::animal::GenericAnimal\",\"name\":\"something2\"}]},{\"info\":{\"classPath\":\"model::animal::Animal2\",\"isRootEntity\":true,\"subClasses\":[]},\"path\":\"model::animal::Animal2\",\"properties\":[{\"_type\":\"MappedProperty\",\"name\":\"name\"},{\"_type\":\"MappedProperty\",\"name\":\"name2\"}]},{\"info\":{\"classPath\":\"model::animal::GenericAnimal\",\"isRootEntity\":true,\"subClasses\":[]},\"path\":\"model::animal::GenericAnimal\",\"properties\":[]},{\"info\":{\"classPath\":\"model::animal::GenericAnimal2\",\"isRootEntity\":true,\"subClasses\":[]},\"path\":\"model::animal::GenericAnimal2\",\"properties\":[]}],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"class\",\"constraints\":[],\"name\":\"Animal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"family\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::animal::Family\"},{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"noOfLegs\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Number\"},{\"multiplicity\":{\"lowerBound\":0},\"name\":\"children\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::animal::GenericAnimal2\"}],\"qualifiedProperties\":[{\"body\":[{\"_type\":\"func\",\"fControl\":\"greaterThan_Number_1__Number_1__Boolean_1_\",\"function\":\"greaterThan\",\"parameters\":[{\"_type\":\"property\",\"parameters\":[{\"_type\":\"var\",\"name\":\"this\"}],\"property\":\"noOfLegs\"},{\"_type\":\"integer\",\"value\":4}]}],\"name\":\"something\",\"parameters\":[],\"returnMultiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"returnType\":\"Boolean\",\"stereotypes\":[],\"taggedValues\":[]},{\"body\":[{\"_type\":\"collection\",\"multiplicity\":{\"lowerBound\":0,\"upperBound\":0},\"values\":[]}],\"name\":\"something2\",\"parameters\":[],\"returnMultiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"returnType\":\"model::animal::GenericAnimal\",\"stereotypes\":[],\"taggedValues\":[]}],\"stereotypes\":[],\"superTypes\":[\"meta::pure::metamodel::type::Any\"],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Animal2\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"name\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[{\"body\":[{\"_type\":\"string\",\"value\":\"\"}],\"name\":\"name2\",\"parameters\":[],\"returnMultiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"returnType\":\"String\",\"stereotypes\":[],\"taggedValues\":[]}],\"stereotypes\":[],\"superTypes\":[\"meta::pure::metamodel::type::Any\"],\"taggedValues\":[]},{\"_type\":\"dataSpace\",\"defaultExecutionContext\":\"dummyContext\",\"description\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"diagrams\":[{\"diagram\":{\"path\":\"model::animal::AnimalDiagram\"},\"title\":\"\"},{\"diagram\":{\"path\":\"model::GeneralDiagram\"},\"title\":\"\"}],\"executionContexts\":[{\"defaultRuntime\":{\"path\":\"model::dummyRuntime\",\"type\":\"RUNTIME\"},\"description\":\"An important execution context\",\"mapping\":{\"path\":\"model::dummyMapping\",\"type\":\"MAPPING\"},\"name\":\"dummyContext\"},{\"defaultRuntime\":{\"path\":\"model::dummyRuntime\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"model::dummyMapping2\",\"type\":\"MAPPING\"},\"name\":\"dummyContext2\"},{\"defaultRuntime\":{\"path\":\"model::dummyRuntime2\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"model::dummyMapping2\",\"type\":\"MAPPING\"},\"name\":\"dummyContext3\"}],\"name\":\"AnimalDS\",\"package\":\"model::animal\",\"stereotypes\":[{\"profile\":\"doc\",\"value\":\"deprecated\"}],\"supportInfo\":{\"_type\":\"email\",\"address\":\"someEmail@test.org\"},\"taggedValues\":[{\"tag\":{\"profile\":\"meta::pure::profiles::enterprise\",\"value\":\"taxonomyNodes\"},\"value\":\"abcdxyz005\"},{\"tag\":{\"profile\":\"doc\",\"value\":\"doc\"},\"value\":\"Lorem ipsum\"},{\"tag\":{\"profile\":\"doc\",\"value\":\"doc\"},\"value\":\"Lorem ipsum2\"}]},{\"_type\":\"Enumeration\",\"name\":\"Family\",\"package\":\"model::animal\",\"stereotypes\":[],\"taggedValues\":[],\"values\":[{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"UO\"},{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"OP\"}]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"GenericAnimal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[\"meta::pure::metamodel::type::Any\"],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"GenericAnimal2\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[\"meta::pure::metamodel::type::Any\"],\"taggedValues\":[]}]}},\"name\":\"dummyContext\"},{\"compatibleRuntimes\":[\"model::dummyRuntime\",\"model::dummyRuntime2\"],\"datasets\":[],\"defaultRuntime\":\"model::dummyRuntime\",\"mapping\":\"model::dummyMapping2\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[{\"info\":{\"classPath\":\"model::animal::mammal::Mammal\",\"isRootEntity\":true,\"subClasses\":[]},\"path\":\"model::animal::mammal::Mammal\",\"properties\":[{\"_type\":\"MappedProperty\",\"name\":\"noOfLegs\"}]},{\"info\":{\"classPath\":\"model::animal::reptile::Reptile\",\"isRootEntity\":true,\"subClasses\":[]},\"path\":\"model::animal::reptile::Reptile\",\"properties\":[{\"_type\":\"enum\",\"enumPath\":\"model::animal::Family\",\"name\":\"family\"},{\"_type\":\"MappedProperty\",\"name\":\"name2\"},{\"_type\":\"MappedProperty\",\"name\":\"something\"},{\"_type\":\"MappedProperty\",\"name\":\"hasFin\"}]}],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"profile\",\"name\":\"doc\",\"package\":\"meta::pure::profiles\",\"stereotypes\":[\"deprecated\"],\"tags\":[\"doc\",\"todo\"]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Animal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"family\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::animal::Family\"},{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"noOfLegs\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Number\"},{\"multiplicity\":{\"lowerBound\":0},\"name\":\"children\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::animal::GenericAnimal2\"}],\"qualifiedProperties\":[{\"body\":[{\"_type\":\"func\",\"fControl\":\"greaterThan_Number_1__Number_1__Boolean_1_\",\"function\":\"greaterThan\",\"parameters\":[{\"_type\":\"property\",\"parameters\":[{\"_type\":\"var\",\"name\":\"this\"}],\"property\":\"noOfLegs\"},{\"_type\":\"integer\",\"value\":4}]}],\"name\":\"something\",\"parameters\":[],\"returnMultiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"returnType\":\"Boolean\",\"stereotypes\":[],\"taggedValues\":[]},{\"body\":[{\"_type\":\"collection\",\"multiplicity\":{\"lowerBound\":0,\"upperBound\":0},\"values\":[]}],\"name\":\"something2\",\"parameters\":[],\"returnMultiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"returnType\":\"model::animal::GenericAnimal\",\"stereotypes\":[],\"taggedValues\":[]}],\"stereotypes\":[],\"superTypes\":[\"meta::pure::metamodel::type::Any\"],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Animal2\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"name\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[{\"body\":[{\"_type\":\"string\",\"value\":\"\"}],\"name\":\"name2\",\"parameters\":[],\"returnMultiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"returnType\":\"String\",\"stereotypes\":[],\"taggedValues\":[]}],\"stereotypes\":[],\"superTypes\":[\"meta::pure::metamodel::type::Any\"],\"taggedValues\":[]},{\"_type\":\"dataSpace\",\"defaultExecutionContext\":\"dummyContext\",\"description\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"diagrams\":[{\"diagram\":{\"path\":\"model::animal::AnimalDiagram\"},\"title\":\"\"},{\"diagram\":{\"path\":\"model::GeneralDiagram\"},\"title\":\"\"}],\"executionContexts\":[{\"defaultRuntime\":{\"path\":\"model::dummyRuntime\",\"type\":\"RUNTIME\"},\"description\":\"An important execution context\",\"mapping\":{\"path\":\"model::dummyMapping\",\"type\":\"MAPPING\"},\"name\":\"dummyContext\"},{\"defaultRuntime\":{\"path\":\"model::dummyRuntime\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"model::dummyMapping2\",\"type\":\"MAPPING\"},\"name\":\"dummyContext2\"},{\"defaultRuntime\":{\"path\":\"model::dummyRuntime2\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"model::dummyMapping2\",\"type\":\"MAPPING\"},\"name\":\"dummyContext3\"}],\"name\":\"AnimalDS\",\"package\":\"model::animal\",\"stereotypes\":[{\"profile\":\"doc\",\"value\":\"deprecated\"}],\"supportInfo\":{\"_type\":\"email\",\"address\":\"someEmail@test.org\"},\"taggedValues\":[{\"tag\":{\"profile\":\"meta::pure::profiles::enterprise\",\"value\":\"taxonomyNodes\"},\"value\":\"abcdxyz005\"},{\"tag\":{\"profile\":\"doc\",\"value\":\"doc\"},\"value\":\"Lorem ipsum\"},{\"tag\":{\"profile\":\"doc\",\"value\":\"doc\"},\"value\":\"Lorem ipsum2\"}]},{\"_type\":\"Enumeration\",\"name\":\"Family\",\"package\":\"model::animal\",\"stereotypes\":[],\"taggedValues\":[],\"values\":[{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"UO\"},{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"OP\"}]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"GenericAnimal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"GenericAnimal2\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Mammal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal::mammal\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"noOfLegs\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[\"meta::pure::metamodel::type::Any\"],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Reptile\",\"originalMilestonedProperties\":[],\"package\":\"model::animal::reptile\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"hasFin\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Boolean\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[\"model::animal::Animal2\",\"model::animal::Animal\"],\"taggedValues\":[{\"tag\":{\"profile\":\"meta::pure::profiles::doc\",\"value\":\"doc\"},\"value\":\"\"}]}]}},\"name\":\"dummyContext2\"},{\"compatibleRuntimes\":[\"model::dummyRuntime\",\"model::dummyRuntime2\"],\"datasets\":[],\"defaultRuntime\":\"model::dummyRuntime2\",\"mapping\":\"model::dummyMapping2\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[{\"info\":{\"classPath\":\"model::animal::mammal::Mammal\",\"isRootEntity\":true,\"subClasses\":[]},\"path\":\"model::animal::mammal::Mammal\",\"properties\":[{\"_type\":\"MappedProperty\",\"name\":\"noOfLegs\"}]},{\"info\":{\"classPath\":\"model::animal::reptile::Reptile\",\"isRootEntity\":true,\"subClasses\":[]},\"path\":\"model::animal::reptile::Reptile\",\"properties\":[{\"_type\":\"enum\",\"enumPath\":\"model::animal::Family\",\"name\":\"family\"},{\"_type\":\"MappedProperty\",\"name\":\"name2\"},{\"_type\":\"MappedProperty\",\"name\":\"something\"},{\"_type\":\"MappedProperty\",\"name\":\"hasFin\"}]}],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"profile\",\"name\":\"doc\",\"package\":\"meta::pure::profiles\",\"stereotypes\":[\"deprecated\"],\"tags\":[\"doc\",\"todo\"]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Animal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"family\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::animal::Family\"},{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"noOfLegs\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Number\"},{\"multiplicity\":{\"lowerBound\":0},\"name\":\"children\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::animal::GenericAnimal2\"}],\"qualifiedProperties\":[{\"body\":[{\"_type\":\"func\",\"fControl\":\"greaterThan_Number_1__Number_1__Boolean_1_\",\"function\":\"greaterThan\",\"parameters\":[{\"_type\":\"property\",\"parameters\":[{\"_type\":\"var\",\"name\":\"this\"}],\"property\":\"noOfLegs\"},{\"_type\":\"integer\",\"value\":4}]}],\"name\":\"something\",\"parameters\":[],\"returnMultiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"returnType\":\"Boolean\",\"stereotypes\":[],\"taggedValues\":[]},{\"body\":[{\"_type\":\"collection\",\"multiplicity\":{\"lowerBound\":0,\"upperBound\":0},\"values\":[]}],\"name\":\"something2\",\"parameters\":[],\"returnMultiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"returnType\":\"model::animal::GenericAnimal\",\"stereotypes\":[],\"taggedValues\":[]}],\"stereotypes\":[],\"superTypes\":[\"meta::pure::metamodel::type::Any\"],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Animal2\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"name\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[{\"body\":[{\"_type\":\"string\",\"value\":\"\"}],\"name\":\"name2\",\"parameters\":[],\"returnMultiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"returnType\":\"String\",\"stereotypes\":[],\"taggedValues\":[]}],\"stereotypes\":[],\"superTypes\":[\"meta::pure::metamodel::type::Any\"],\"taggedValues\":[]},{\"_type\":\"dataSpace\",\"defaultExecutionContext\":\"dummyContext\",\"description\":\"Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.\",\"diagrams\":[{\"diagram\":{\"path\":\"model::animal::AnimalDiagram\"},\"title\":\"\"},{\"diagram\":{\"path\":\"model::GeneralDiagram\"},\"title\":\"\"}],\"executionContexts\":[{\"defaultRuntime\":{\"path\":\"model::dummyRuntime\",\"type\":\"RUNTIME\"},\"description\":\"An important execution context\",\"mapping\":{\"path\":\"model::dummyMapping\",\"type\":\"MAPPING\"},\"name\":\"dummyContext\"},{\"defaultRuntime\":{\"path\":\"model::dummyRuntime\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"model::dummyMapping2\",\"type\":\"MAPPING\"},\"name\":\"dummyContext2\"},{\"defaultRuntime\":{\"path\":\"model::dummyRuntime2\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"model::dummyMapping2\",\"type\":\"MAPPING\"},\"name\":\"dummyContext3\"}],\"name\":\"AnimalDS\",\"package\":\"model::animal\",\"stereotypes\":[{\"profile\":\"doc\",\"value\":\"deprecated\"}],\"supportInfo\":{\"_type\":\"email\",\"address\":\"someEmail@test.org\"},\"taggedValues\":[{\"tag\":{\"profile\":\"meta::pure::profiles::enterprise\",\"value\":\"taxonomyNodes\"},\"value\":\"abcdxyz005\"},{\"tag\":{\"profile\":\"doc\",\"value\":\"doc\"},\"value\":\"Lorem ipsum\"},{\"tag\":{\"profile\":\"doc\",\"value\":\"doc\"},\"value\":\"Lorem ipsum2\"}]},{\"_type\":\"Enumeration\",\"name\":\"Family\",\"package\":\"model::animal\",\"stereotypes\":[],\"taggedValues\":[],\"values\":[{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"UO\"},{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"OP\"}]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"GenericAnimal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"GenericAnimal2\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Mammal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal::mammal\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"noOfLegs\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[\"meta::pure::metamodel::type::Any\"],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Reptile\",\"originalMilestonedProperties\":[],\"package\":\"model::animal::reptile\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"hasFin\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Boolean\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[\"model::animal::Animal2\",\"model::animal::Animal\"],\"taggedValues\":[{\"tag\":{\"profile\":\"meta::pure::profiles::doc\",\"value\":\"doc\"},\"value\":\"\"}]}]}},\"name\":\"dummyContext3\"}],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"profile\",\"name\":\"doc\",\"package\":\"meta::pure::profiles\",\"stereotypes\":[\"deprecated\"],\"tags\":[\"doc\",\"todo\"]},{\"_type\":\"diagram\",\"classViews\":[{\"class\":\"model::animal::reptile::Reptile\",\"id\":\"4cec85f9-9b66-450a-bdcb-c855aa0314e1\",\"position\":{\"x\":568.0,\"y\":404.0},\"rectangle\":{\"height\":58.0,\"width\":120.84765625}},{\"class\":\"model::animal::Animal\",\"id\":\"902bf14e-e7ff-40e7-92e4-8780f91bfa29\",\"position\":{\"x\":809.0,\"y\":187.0},\"rectangle\":{\"height\":44.0,\"width\":108.64453125}}],\"generalizationViews\":[{\"line\":{\"points\":[{\"x\":628.423828125,\"y\":433.0},{\"x\":863.322265625,\"y\":209.0}]},\"sourceView\":\"4cec85f9-9b66-450a-bdcb-c855aa0314e1\",\"targetView\":\"902bf14e-e7ff-40e7-92e4-8780f91bfa29\"}],\"name\":\"GeneralDiagram\",\"package\":\"model\",\"propertyViews\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Animal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"family\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::animal::Family\"},{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"noOfLegs\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Number\"},{\"multiplicity\":{\"lowerBound\":0},\"name\":\"children\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::animal::GenericAnimal2\"}],\"qualifiedProperties\":[{\"body\":[{\"_type\":\"func\",\"fControl\":\"greaterThan_Number_1__Number_1__Boolean_1_\",\"function\":\"greaterThan\",\"parameters\":[{\"_type\":\"property\",\"parameters\":[{\"_type\":\"var\",\"name\":\"this\"}],\"property\":\"noOfLegs\"},{\"_type\":\"integer\",\"value\":4}]}],\"name\":\"something\",\"parameters\":[],\"returnMultiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"returnType\":\"Boolean\",\"stereotypes\":[],\"taggedValues\":[]},{\"body\":[{\"_type\":\"collection\",\"multiplicity\":{\"lowerBound\":0,\"upperBound\":0},\"values\":[]}],\"name\":\"something2\",\"parameters\":[],\"returnMultiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"returnType\":\"model::animal::GenericAnimal\",\"stereotypes\":[],\"taggedValues\":[]}],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"diagram\",\"classViews\":[{\"class\":\"model::animal::mammal::Mammal\",\"id\":\"641a0336-d4b5-418c-b656-2f52461264e2\",\"position\":{\"x\":427.0,\"y\":210.0},\"rectangle\":{\"height\":44.0,\"width\":125.1123046875}},{\"class\":\"model::animal::reptile::Reptile\",\"id\":\"b92253d8-0389-4c7d-b5d2-3cdc3bb1ad98\",\"position\":{\"x\":787.0,\"y\":216.0},\"rectangle\":{\"height\":58.0,\"width\":120.84765625}},{\"class\":\"model::animal::Animal\",\"id\":\"7a992cfc-c888-4091-aa00-ab430915aced\",\"position\":{\"x\":515.423828125,\"y\":-7.5},\"rectangle\":{\"height\":100.0,\"width\":199.716796875}}],\"generalizationViews\":[{\"line\":{\"points\":[{\"x\":847.423828125,\"y\":245.0},{\"x\":615.2822265625,\"y\":42.5}]},\"sourceView\":\"b92253d8-0389-4c7d-b5d2-3cdc3bb1ad98\",\"targetView\":\"7a992cfc-c888-4091-aa00-ab430915aced\"}],\"name\":\"AnimalDiagram\",\"package\":\"model::animal\",\"propertyViews\":[]},{\"_type\":\"Enumeration\",\"name\":\"Family\",\"package\":\"model::animal\",\"stereotypes\":[],\"taggedValues\":[],\"values\":[{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"UO\"},{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"OP\"}]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"GenericAnimal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"GenericAnimal2\",\"originalMilestonedProperties\":[],\"package\":\"model::animal\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Mammal\",\"originalMilestonedProperties\":[],\"package\":\"model::animal::mammal\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"noOfLegs\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Reptile\",\"originalMilestonedProperties\":[],\"package\":\"model::animal::reptile\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"hasFin\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Boolean\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[\"model::animal::Animal\"],\"taggedValues\":[{\"tag\":{\"profile\":\"meta::pure::profiles::doc\",\"value\":\"doc\"},\"value\":\"\"}]}]},\"name\":\"AnimalDS\",\"package\":\"model::animal\",\"path\":\"model::animal::AnimalDS\",\"stereotypes\":[{\"profile\":\"meta::pure::profiles::doc\",\"value\":\"deprecated\"}],\"supportInfo\":{\"_type\":\"email\",\"address\":\"someEmail@test.org\"},\"taggedValues\":[{\"profile\":\"meta::pure::profiles::enterprise\",\"tag\":\"taxonomyNodes\",\"value\":\"abcdxyz005\"},{\"profile\":\"meta::pure::profiles::doc\",\"tag\":\"doc\",\"value\":\"Lorem ipsum\"},{\"profile\":\"meta::pure::profiles::doc\",\"tag\":\"doc\",\"value\":\"Lorem ipsum2\"}]}"); } @Test public void testAnalyticsForDataSpaceWithElements() throws Exception { - testDataSpaceAnalyticsArtifactGenerationExtension("models/dataSpaceWithElements.pure", "dataSpace::_FirmDataSpace", "{\"defaultExecutionContext\":\"dummyContext\",\"diagrams\":[],\"elementDocs\":[{\"_type\":\"class\",\"docs\":[\"Animal class\"],\"name\":\"Animal\",\"path\":\"model::Animal\",\"properties\":[{\"docs\":[\"age\"],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"age\",\"type\":\"Integer\"}]},{\"_type\":\"class\",\"docs\":[\"The Firm concept\"],\"name\":\"Firm\",\"path\":\"model::Firm\",\"properties\":[{\"docs\":[\"type of firm: e.g. CORP, LTD\"],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"type\",\"type\":\"String\"},{\"docs\":[\"some doc for employees\"],\"multiplicity\":{\"lowerBound\":1},\"name\":\"employees\",\"type\":\"model::Person\"}]},{\"_type\":\"association\",\"docs\":[],\"name\":\"Firm_Person\",\"path\":\"model::Firm_Person\",\"properties\":[{\"docs\":[],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"firm\",\"type\":\"model::Firm\"},{\"docs\":[\"some doc for employees\"],\"multiplicity\":{\"lowerBound\":1},\"name\":\"employees\",\"type\":\"model::Person\"}]},{\"_type\":\"class\",\"docs\":[],\"name\":\"LegalEntity\",\"path\":\"model::LegalEntity\",\"properties\":[{\"docs\":[\"name of the entity\"],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"legalName\",\"type\":\"String\"}]},{\"_type\":\"class\",\"docs\":[\"Homo Sapien\"],\"name\":\"Person\",\"path\":\"model::Person\",\"properties\":[{\"docs\":[],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"firstName\",\"type\":\"String\"},{\"docs\":[],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"lastName\",\"type\":\"String\"},{\"docs\":[],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"firm\",\"type\":\"model::Firm\"}]},{\"_type\":\"enumeration\",\"docs\":[\"Types of company\"],\"enumValues\":[{\"docs\":[\"Limited\"],\"name\":\"LLC\"},{\"docs\":[],\"name\":\"CORP\"}],\"name\":\"IncType\",\"path\":\"model::target::IncType\"},{\"_type\":\"class\",\"docs\":[],\"name\":\"_Person\",\"path\":\"model::target::_Person\",\"properties\":[{\"docs\":[],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"fullName\",\"type\":\"String\"}]}],\"elements\":[\"model::Animal\",\"model::Firm\",\"model::Firm_Person\",\"model::LegalEntity\",\"model::Person\",\"model::target::IncType\",\"model::target::_Person\"],\"executables\":[],\"executionContexts\":[{\"compatibleRuntimes\":[\"mapping::ModelToModelRuntime\"],\"datasets\":[],\"defaultRuntime\":\"mapping::ModelToModelRuntime\",\"mapping\":\"mapping::ModelToModelMapping\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[{\"path\":\"model::target::_Firm\",\"properties\":[{\"_type\":\"entity\",\"entityPath\":\"model::target::_Person\",\"name\":\"employees\"},{\"_type\":\"MappedProperty\",\"name\":\"name\"},{\"_type\":\"enum\",\"enumPath\":\"model::target::IncType\",\"name\":\"type\"}]},{\"path\":\"model::target::_Person\",\"properties\":[{\"_type\":\"MappedProperty\",\"name\":\"fullName\"}]}]},\"name\":\"dummyContext\"}],\"model\":{\"_type\":\"data\",\"elements\":[]},\"name\":\"_FirmDataSpace\",\"package\":\"dataSpace\",\"path\":\"dataSpace::_FirmDataSpace\",\"stereotypes\":[],\"taggedValues\":[],\"title\":\"Firm Dataspace\"}"); + testDataSpaceAnalyticsArtifactGenerationExtension("models/dataSpaceWithElements.pure", "dataSpace::_FirmDataSpace", "{\"defaultExecutionContext\":\"dummyContext\",\"diagrams\":[],\"elementDocs\":[{\"_type\":\"class\",\"docs\":[\"Animal class\"],\"name\":\"Animal\",\"path\":\"model::Animal\",\"properties\":[{\"docs\":[\"age\"],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"age\",\"type\":\"Integer\"}]},{\"_type\":\"class\",\"docs\":[\"The Firm concept\"],\"name\":\"Firm\",\"path\":\"model::Firm\",\"properties\":[{\"docs\":[\"type of firm: e.g. CORP, LTD\"],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"type\",\"type\":\"String\"},{\"docs\":[\"some doc for employees\"],\"multiplicity\":{\"lowerBound\":1},\"name\":\"employees\",\"type\":\"model::Person\"}]},{\"_type\":\"association\",\"docs\":[],\"name\":\"Firm_Person\",\"path\":\"model::Firm_Person\",\"properties\":[{\"docs\":[],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"firm\",\"type\":\"model::Firm\"},{\"docs\":[\"some doc for employees\"],\"multiplicity\":{\"lowerBound\":1},\"name\":\"employees\",\"type\":\"model::Person\"}]},{\"_type\":\"class\",\"docs\":[],\"name\":\"LegalEntity\",\"path\":\"model::LegalEntity\",\"properties\":[{\"docs\":[\"name of the entity\"],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"legalName\",\"type\":\"String\"}]},{\"_type\":\"class\",\"docs\":[\"Homo Sapien\"],\"name\":\"Person\",\"path\":\"model::Person\",\"properties\":[{\"docs\":[],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"firstName\",\"type\":\"String\"},{\"docs\":[],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"lastName\",\"type\":\"String\"},{\"docs\":[],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"firm\",\"type\":\"model::Firm\"}]},{\"_type\":\"enumeration\",\"docs\":[\"Types of company\"],\"enumValues\":[{\"docs\":[\"Limited\"],\"name\":\"LLC\"},{\"docs\":[],\"name\":\"CORP\"}],\"name\":\"IncType\",\"path\":\"model::target::IncType\"},{\"_type\":\"class\",\"docs\":[],\"name\":\"_Person\",\"path\":\"model::target::_Person\",\"properties\":[{\"docs\":[],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"fullName\",\"type\":\"String\"}]}],\"elements\":[\"model::Animal\",\"model::Firm\",\"model::Firm_Person\",\"model::LegalEntity\",\"model::Person\",\"model::target::IncType\",\"model::target::_Person\"],\"executables\":[],\"executionContexts\":[{\"compatibleRuntimes\":[\"mapping::ModelToModelRuntime\"],\"datasets\":[],\"defaultRuntime\":\"mapping::ModelToModelRuntime\",\"mapping\":\"mapping::ModelToModelMapping\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[{\"info\":{\"classPath\":\"model::target::_Firm\",\"isRootEntity\":true,\"subClasses\":[]},\"path\":\"model::target::_Firm\",\"properties\":[{\"_type\":\"entity\",\"entityPath\":\"model::target::_Person\",\"name\":\"employees\"},{\"_type\":\"MappedProperty\",\"name\":\"name\"},{\"_type\":\"enum\",\"enumPath\":\"model::target::IncType\",\"name\":\"type\"}]},{\"info\":{\"classPath\":\"model::target::_Person\",\"isRootEntity\":true,\"subClasses\":[]},\"path\":\"model::target::_Person\",\"properties\":[{\"_type\":\"MappedProperty\",\"name\":\"fullName\"}]}],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"dataSpace\",\"defaultExecutionContext\":\"dummyContext\",\"elements\":[{\"path\":\"model\"},{\"exclude\":true,\"path\":\"model::experiment\"},{\"exclude\":true,\"path\":\"model::target::_Firm\"},{\"exclude\":true,\"path\":\"model::NotRelevant\"}],\"executionContexts\":[{\"defaultRuntime\":{\"path\":\"mapping::ModelToModelRuntime\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"mapping::ModelToModelMapping\",\"type\":\"MAPPING\"},\"name\":\"dummyContext\"}],\"name\":\"_FirmDataSpace\",\"package\":\"dataSpace\",\"stereotypes\":[],\"taggedValues\":[],\"title\":\"Firm Dataspace\"},{\"_type\":\"Enumeration\",\"name\":\"IncType\",\"package\":\"model::target\",\"stereotypes\":[],\"taggedValues\":[],\"values\":[{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"LLC\"},{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"CORP\"}]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"_Firm\",\"originalMilestonedProperties\":[],\"package\":\"model::target\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1},\"name\":\"employees\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::target::_Person\"},{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"type\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::target::IncType\"},{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"name\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[\"meta::pure::metamodel::type::Any\"],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"_Person\",\"originalMilestonedProperties\":[],\"package\":\"model::target\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"fullName\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[\"meta::pure::metamodel::type::Any\"],\"taggedValues\":[]}]}},\"name\":\"dummyContext\"}],\"model\":{\"_type\":\"data\",\"elements\":[]},\"name\":\"_FirmDataSpace\",\"package\":\"dataSpace\",\"path\":\"dataSpace::_FirmDataSpace\",\"stereotypes\":[],\"taggedValues\":[],\"title\":\"Firm Dataspace\"}"); } @Test public void testAnalyticsForDataSpaceWithMilestoningElements() throws Exception { - testDataSpaceAnalyticsArtifactGenerationExtension("models/dataSpaceWithMilestoningElements.pure", "dataSpace::_FirmDataSpace", "{\"defaultExecutionContext\":\"dummyContext\",\"diagrams\":[],\"elementDocs\":[{\"_type\":\"class\",\"docs\":[\"Animal class\"],\"name\":\"Animal\",\"path\":\"model::Animal\",\"properties\":[{\"docs\":[\"age\"],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"age\",\"type\":\"Integer\"}]},{\"_type\":\"class\",\"docs\":[\"The Firm concept\"],\"milestoning\":\"processingtemporal\",\"name\":\"Firm\",\"path\":\"model::Firm\",\"properties\":[{\"docs\":[\"type of firm: e.g. CORP, LTD\"],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"type\",\"type\":\"String\"},{\"docs\":[\"some doc for employees\"],\"multiplicity\":{\"lowerBound\":1},\"name\":\"employees\",\"type\":\"model::Person\"}]},{\"_type\":\"association\",\"docs\":[],\"name\":\"Firm_Person\",\"path\":\"model::Firm_Person\",\"properties\":[{\"docs\":[\"some doc for employees\"],\"multiplicity\":{\"lowerBound\":1},\"name\":\"employees\",\"type\":\"model::Person\"},{\"docs\":[],\"milestoning\":\"processingtemporal\",\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"firm\",\"type\":\"model::Firm\"}]},{\"_type\":\"class\",\"docs\":[],\"name\":\"LegalEntity\",\"path\":\"model::LegalEntity\",\"properties\":[{\"docs\":[\"name of the entity\"],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"legalName\",\"type\":\"String\"}]},{\"_type\":\"class\",\"docs\":[],\"name\":\"NotRelevant\",\"path\":\"model::NotRelevant\",\"properties\":[]},{\"_type\":\"class\",\"docs\":[\"Homo Sapien\"],\"name\":\"Person\",\"path\":\"model::Person\",\"properties\":[{\"docs\":[],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"firstName\",\"type\":\"String\"},{\"docs\":[],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"lastName\",\"type\":\"String\"},{\"docs\":[],\"milestoning\":\"processingtemporal\",\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"firm\",\"type\":\"model::Firm\"}]},{\"_type\":\"class\",\"docs\":[],\"milestoning\":\"businesstemporal\",\"name\":\"Animal\",\"path\":\"model::experiment::Animal\",\"properties\":[]},{\"_type\":\"class\",\"docs\":[],\"milestoning\":\"businesstemporal\",\"name\":\"Human\",\"path\":\"model::experiment::Human\",\"properties\":[]},{\"_type\":\"enumeration\",\"docs\":[\"Types of company\"],\"enumValues\":[{\"docs\":[\"Limited\"],\"name\":\"LLC\"},{\"docs\":[],\"name\":\"CORP\"}],\"name\":\"IncType\",\"path\":\"model::target::IncType\"},{\"_type\":\"class\",\"docs\":[],\"name\":\"_Firm\",\"path\":\"model::target::_Firm\",\"properties\":[{\"docs\":[],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"type\",\"type\":\"model::target::IncType\"},{\"docs\":[],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"name\",\"type\":\"String\"},{\"docs\":[],\"milestoning\":\"bitemporal\",\"multiplicity\":{\"lowerBound\":1},\"name\":\"employees\",\"type\":\"model::target::_Person\"}]},{\"_type\":\"class\",\"docs\":[],\"milestoning\":\"bitemporal\",\"name\":\"_Person\",\"path\":\"model::target::_Person\",\"properties\":[{\"docs\":[],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"fullName\",\"type\":\"String\"}]}],\"elements\":[\"model::Animal\",\"model::Firm\",\"model::Firm_Person\",\"model::LegalEntity\",\"model::NotRelevant\",\"model::Person\",\"model::experiment::Animal\",\"model::experiment::Human\",\"model::target::IncType\",\"model::target::_Firm\",\"model::target::_Person\"],\"executables\":[],\"executionContexts\":[{\"compatibleRuntimes\":[\"mapping::ModelToModelRuntime\"],\"datasets\":[],\"defaultRuntime\":\"mapping::ModelToModelRuntime\",\"mapping\":\"mapping::ModelToModelMapping\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[{\"path\":\"model::target::_Firm\",\"properties\":[{\"_type\":\"entity\",\"entityPath\":\"model::target::_Person\",\"name\":\"employees\"},{\"_type\":\"MappedProperty\",\"name\":\"name\"},{\"_type\":\"enum\",\"enumPath\":\"model::target::IncType\",\"name\":\"type\"}]},{\"path\":\"model::target::_Person\",\"properties\":[{\"_type\":\"MappedProperty\",\"name\":\"fullName\"}]}]},\"name\":\"dummyContext\"}],\"model\":{\"_type\":\"data\",\"elements\":[]},\"name\":\"_FirmDataSpace\",\"package\":\"dataSpace\",\"path\":\"dataSpace::_FirmDataSpace\",\"stereotypes\":[],\"taggedValues\":[],\"title\":\"Firm Dataspace\"}"); + testDataSpaceAnalyticsArtifactGenerationExtension("models/dataSpaceWithMilestoningElements.pure", "dataSpace::_FirmDataSpace", "{\"defaultExecutionContext\":\"dummyContext\",\"diagrams\":[],\"elementDocs\":[{\"_type\":\"class\",\"docs\":[\"Animal class\"],\"name\":\"Animal\",\"path\":\"model::Animal\",\"properties\":[{\"docs\":[\"age\"],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"age\",\"type\":\"Integer\"}]},{\"_type\":\"class\",\"docs\":[\"The Firm concept\"],\"milestoning\":\"processingtemporal\",\"name\":\"Firm\",\"path\":\"model::Firm\",\"properties\":[{\"docs\":[\"type of firm: e.g. CORP, LTD\"],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"type\",\"type\":\"String\"},{\"docs\":[\"some doc for employees\"],\"multiplicity\":{\"lowerBound\":1},\"name\":\"employees\",\"type\":\"model::Person\"}]},{\"_type\":\"association\",\"docs\":[],\"name\":\"Firm_Person\",\"path\":\"model::Firm_Person\",\"properties\":[{\"docs\":[\"some doc for employees\"],\"multiplicity\":{\"lowerBound\":1},\"name\":\"employees\",\"type\":\"model::Person\"},{\"docs\":[],\"milestoning\":\"processingtemporal\",\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"firm\",\"type\":\"model::Firm\"}]},{\"_type\":\"class\",\"docs\":[],\"name\":\"LegalEntity\",\"path\":\"model::LegalEntity\",\"properties\":[{\"docs\":[\"name of the entity\"],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"legalName\",\"type\":\"String\"}]},{\"_type\":\"class\",\"docs\":[],\"name\":\"NotRelevant\",\"path\":\"model::NotRelevant\",\"properties\":[]},{\"_type\":\"class\",\"docs\":[\"Homo Sapien\"],\"name\":\"Person\",\"path\":\"model::Person\",\"properties\":[{\"docs\":[],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"firstName\",\"type\":\"String\"},{\"docs\":[],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"lastName\",\"type\":\"String\"},{\"docs\":[],\"milestoning\":\"processingtemporal\",\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"firm\",\"type\":\"model::Firm\"}]},{\"_type\":\"class\",\"docs\":[],\"milestoning\":\"businesstemporal\",\"name\":\"Animal\",\"path\":\"model::experiment::Animal\",\"properties\":[]},{\"_type\":\"class\",\"docs\":[],\"milestoning\":\"businesstemporal\",\"name\":\"Human\",\"path\":\"model::experiment::Human\",\"properties\":[]},{\"_type\":\"enumeration\",\"docs\":[\"Types of company\"],\"enumValues\":[{\"docs\":[\"Limited\"],\"name\":\"LLC\"},{\"docs\":[],\"name\":\"CORP\"}],\"name\":\"IncType\",\"path\":\"model::target::IncType\"},{\"_type\":\"class\",\"docs\":[],\"name\":\"_Firm\",\"path\":\"model::target::_Firm\",\"properties\":[{\"docs\":[],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"type\",\"type\":\"model::target::IncType\"},{\"docs\":[],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"name\",\"type\":\"String\"},{\"docs\":[],\"milestoning\":\"bitemporal\",\"multiplicity\":{\"lowerBound\":1},\"name\":\"employees\",\"type\":\"model::target::_Person\"}]},{\"_type\":\"class\",\"docs\":[],\"milestoning\":\"bitemporal\",\"name\":\"_Person\",\"path\":\"model::target::_Person\",\"properties\":[{\"docs\":[],\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"fullName\",\"type\":\"String\"}]}],\"elements\":[\"model::Animal\",\"model::Firm\",\"model::Firm_Person\",\"model::LegalEntity\",\"model::NotRelevant\",\"model::Person\",\"model::experiment::Animal\",\"model::experiment::Human\",\"model::target::IncType\",\"model::target::_Firm\",\"model::target::_Person\"],\"executables\":[],\"executionContexts\":[{\"compatibleRuntimes\":[\"mapping::ModelToModelRuntime\"],\"datasets\":[],\"defaultRuntime\":\"mapping::ModelToModelRuntime\",\"mapping\":\"mapping::ModelToModelMapping\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[{\"info\":{\"classPath\":\"model::target::_Firm\",\"isRootEntity\":true,\"subClasses\":[]},\"path\":\"model::target::_Firm\",\"properties\":[{\"_type\":\"entity\",\"entityPath\":\"model::target::_Person\",\"name\":\"employees\"},{\"_type\":\"MappedProperty\",\"name\":\"name\"},{\"_type\":\"enum\",\"enumPath\":\"model::target::IncType\",\"name\":\"type\"}]},{\"info\":{\"classPath\":\"model::target::_Person\",\"isRootEntity\":true,\"subClasses\":[]},\"path\":\"model::target::_Person\",\"properties\":[{\"_type\":\"MappedProperty\",\"name\":\"fullName\"}]}],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"dataSpace\",\"defaultExecutionContext\":\"dummyContext\",\"elements\":[{\"path\":\"model\"}],\"executionContexts\":[{\"defaultRuntime\":{\"path\":\"mapping::ModelToModelRuntime\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"mapping::ModelToModelMapping\",\"type\":\"MAPPING\"},\"name\":\"dummyContext\"}],\"name\":\"_FirmDataSpace\",\"package\":\"dataSpace\",\"stereotypes\":[],\"taggedValues\":[],\"title\":\"Firm Dataspace\"},{\"_type\":\"class\",\"constraints\":[],\"name\":\"BiTemporalMilestoning\",\"originalMilestonedProperties\":[],\"package\":\"meta::pure::milestoning\",\"properties\":[],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[],\"taggedValues\":[]},{\"_type\":\"profile\",\"name\":\"temporal\",\"package\":\"meta::pure::profiles\",\"stereotypes\":[\"bitemporal\",\"businesstemporal\",\"processingtemporal\"],\"tags\":[]},{\"_type\":\"Enumeration\",\"name\":\"IncType\",\"package\":\"model::target\",\"stereotypes\":[],\"taggedValues\":[],\"values\":[{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"LLC\"},{\"stereotypes\":[],\"taggedValues\":[],\"value\":\"CORP\"}]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"_Firm\",\"originalMilestonedProperties\":[{\"multiplicity\":{\"lowerBound\":1},\"name\":\"employees\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::target::_Person\"}],\"package\":\"model::target\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"type\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::target::IncType\"},{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"name\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"},{\"multiplicity\":{\"lowerBound\":1},\"name\":\"employees\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"model::target::_Person\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[\"meta::pure::metamodel::type::Any\"],\"taggedValues\":[]},{\"_type\":\"class\",\"constraints\":[],\"name\":\"_Person\",\"originalMilestonedProperties\":[],\"package\":\"model::target\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"fullName\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[],\"stereotypes\":[{\"profile\":\"meta::pure::profiles::temporal\",\"value\":\"bitemporal\"}],\"superTypes\":[\"meta::pure::metamodel::type::Any\"],\"taggedValues\":[]}]}},\"name\":\"dummyContext\"}],\"model\":{\"_type\":\"data\",\"elements\":[]},\"name\":\"_FirmDataSpace\",\"package\":\"dataSpace\",\"path\":\"dataSpace::_FirmDataSpace\",\"stereotypes\":[],\"taggedValues\":[],\"title\":\"Firm Dataspace\"}"); } @Test public void testAnalyticsForDataSpaceWithExecutables() throws Exception { - testDataSpaceAnalyticsArtifactGenerationExtension("models/dataSpaceWithExecutables.pure", "domain::COVIDDataspace", "{\"defaultExecutionContext\":\"dummyContext\",\"description\":\"# Peleus rupit\\n\\n## Sum super gerens paterque\\n\\nLorem markdownum presso, et tamen cogitis, Taenarius lactantia fluxerunt\\nterrita, vota. Tempore flumina ferrumque bella.\\n\\n- Per dixit\\n- Truces tellusque indignata ducem\\n- Cervice venitis cavernis minus\\n\\n## Tum ausus fovebam incursus magis dici extemplo\\n\\nPiscator degenerat desertaque quid scelus tyranni feror ipsa mortis nec silva\\nsparsus neci cum? Est patulas meam decorem, dat demit corpora exuritque Ulixes,\\ngenitore. Captare certa amore pressos, Diamque\\n[traxit](http://istecondar.net/ministropudoris) devorat duritia ecce, capillos\\nfuerint progenitore curva relictas. Iubae pectus et quateret, non vires tibi\\ncacumina figuram Antigonen rursus verti.\\n\\n## Dicta nec Thestiadae tristi exempla sed suoque\\n\\nFlumina quae loricaeque meruique defensae *me terram* tamen attollere totum\\nneque nullos. Quem plus, stratum.\\n\\n## Quaeque si reddite summoque vultu Teleboasque vincere\\n\\nIsmariae me munus umbram. Usum pedem multis quotiensque mirantum Cephenum et\\namori Procne locutum auctor Volturnus pavent virgineas.\\n\\n if (edi + sidebarTooltip < aiffDisk) {\\n drive_key_firewire += bank(searchHardBoot(bus, packet_click));\\n }\\n var adRow = dlc_rootkit(rdramMegabit) - hertzBanner * 2 +\\n memory_adc.horizontal(class_box_rte, disk, lte_grep);\\n if (grayscale) {\\n spool_windows_metal.zif_firewire *= 3;\\n emoticon_mp = user.thunderboltIcqBus.installer_remote(4, searchCable) *\\n kibibyteYoutubeRaster.simm(-3, nosqlCharacter, sip);\\n }\\n var blob = -2;\\n\\n## Est magis interdum in luctus\\n\\nPrimus illa sub bis infregit saepe agrestem Cyllare lumen cultrosque **Cnosia**.\\nSuis est fero durisque satis.\\n\\n- Nos quas est maesta aliquis se unum\\n- Tu ossa Cupido sagitta hanc inflati profuso\\n- Modo est proles pavor\\n- Stillabant pallada invitaque et tantum dictaque in\\n- Generum coegi tum edaci\\n\\nSuo nec cerae me omnem Famemque, passi si auditque ullo, praebita. Gravi annos\\npudore formidabilis erat pectora perpetuo qua oscula cum ad sed Nabataeus\\nRomethiumque deum Erectheus? O Victoria rostro utque terras vitisque classe.\\nTibi [miserrima hirta](http://decentia-qui.net/docta-petentem), eratis saepius\\ntuus.\",\"diagrams\":[],\"elementDocs\":[],\"elements\":[],\"executables\":[{\"description\":\"Some exec description\",\"executable\":\"service::CovidDataMulti\",\"result\":{\"_type\":\"tds\",\"columns\":[{\"name\":\"Cases\",\"relationalType\":\"INTEGER\",\"type\":\"Float\"}]},\"title\":\"Exec 1\"},{\"description\":\"Some more exec description\",\"executable\":\"service::CovidDataSingle\",\"info\":{\"_type\":\"service\",\"datasets\":[{\"_type\":\"relationalDatabaseTable\",\"database\":\"CovidDataStore\",\"name\":\"default.DEMOGRAPHICS\",\"schema\":\"default\",\"table\":\"DEMOGRAPHICS\",\"type\":\"H2\"},{\"_type\":\"relationalDatabaseTable\",\"database\":\"CovidDataStore\",\"name\":\"default.COVID_DATA\",\"schema\":\"default\",\"table\":\"COVID_DATA\",\"type\":\"H2\"}],\"mapping\":\"mapping::CovidDataMapping\",\"pattern\":\"/9566f101-2108-408f-863f-6d7e154dc17b\",\"query\":\"|domain::COVIDData.all()->project(\\n [\\n x: domain::COVIDData[1]|$x.cases\\n ],\\n ['Cases']\\n)\",\"runtime\":\"runtime::H2Runtime\"},\"result\":{\"_type\":\"tds\",\"columns\":[{\"name\":\"Cases\",\"relationalType\":\"INTEGER\",\"type\":\"Float\"}]},\"title\":\"Exec 2\"}],\"executionContexts\":[{\"compatibleRuntimes\":[\"runtime::H2Runtime\"],\"datasets\":[{\"_type\":\"relationalDatabaseTable\",\"database\":\"CovidDataStore\",\"name\":\"default.DEMOGRAPHICS\",\"schema\":\"default\",\"table\":\"DEMOGRAPHICS\",\"type\":\"H2\"},{\"_type\":\"relationalDatabaseTable\",\"database\":\"CovidDataStore\",\"name\":\"default.COVID_DATA\",\"schema\":\"default\",\"table\":\"COVID_DATA\",\"type\":\"H2\"}],\"defaultRuntime\":\"runtime::H2Runtime\",\"mapping\":\"mapping::CovidDataMapping\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[{\"path\":\"domain::COVIDData\",\"properties\":[{\"_type\":\"MappedProperty\",\"name\":\"caseType\"},{\"_type\":\"MappedProperty\",\"name\":\"cases\"},{\"_type\":\"MappedProperty\",\"name\":\"date\"},{\"_type\":\"entity\",\"entityPath\":\"domain::Demographics\",\"name\":\"demographics\"},{\"_type\":\"MappedProperty\",\"name\":\"fips\"},{\"_type\":\"MappedProperty\",\"name\":\"id\"},{\"_type\":\"MappedProperty\",\"name\":\"lastReportedFlag\"}]},{\"path\":\"domain::Demographics\",\"properties\":[{\"_type\":\"MappedProperty\",\"name\":\"fips\"},{\"_type\":\"MappedProperty\",\"name\":\"state\"}]}]},\"name\":\"dummyContext\"}],\"model\":{\"_type\":\"data\",\"elements\":[]},\"name\":\"COVIDDataspace\",\"package\":\"domain\",\"path\":\"domain::COVIDDataspace\",\"stereotypes\":[],\"taggedValues\":[],\"title\":\"COVID Sample Data\"}"); + testDataSpaceAnalyticsArtifactGenerationExtension("models/dataSpaceWithExecutables.pure", "domain::COVIDDataspace", "{\"defaultExecutionContext\":\"dummyContext\",\"description\":\"# Peleus rupit\\n\\n## Sum super gerens paterque\\n\\nLorem markdownum presso, et tamen cogitis, Taenarius lactantia fluxerunt\\nterrita, vota. Tempore flumina ferrumque bella.\\n\\n- Per dixit\\n- Truces tellusque indignata ducem\\n- Cervice venitis cavernis minus\\n\\n## Tum ausus fovebam incursus magis dici extemplo\\n\\nPiscator degenerat desertaque quid scelus tyranni feror ipsa mortis nec silva\\nsparsus neci cum? Est patulas meam decorem, dat demit corpora exuritque Ulixes,\\ngenitore. Captare certa amore pressos, Diamque\\n[traxit](http://istecondar.net/ministropudoris) devorat duritia ecce, capillos\\nfuerint progenitore curva relictas. Iubae pectus et quateret, non vires tibi\\ncacumina figuram Antigonen rursus verti.\\n\\n## Dicta nec Thestiadae tristi exempla sed suoque\\n\\nFlumina quae loricaeque meruique defensae *me terram* tamen attollere totum\\nneque nullos. Quem plus, stratum.\\n\\n## Quaeque si reddite summoque vultu Teleboasque vincere\\n\\nIsmariae me munus umbram. Usum pedem multis quotiensque mirantum Cephenum et\\namori Procne locutum auctor Volturnus pavent virgineas.\\n\\n if (edi + sidebarTooltip < aiffDisk) {\\n drive_key_firewire += bank(searchHardBoot(bus, packet_click));\\n }\\n var adRow = dlc_rootkit(rdramMegabit) - hertzBanner * 2 +\\n memory_adc.horizontal(class_box_rte, disk, lte_grep);\\n if (grayscale) {\\n spool_windows_metal.zif_firewire *= 3;\\n emoticon_mp = user.thunderboltIcqBus.installer_remote(4, searchCable) *\\n kibibyteYoutubeRaster.simm(-3, nosqlCharacter, sip);\\n }\\n var blob = -2;\\n\\n## Est magis interdum in luctus\\n\\nPrimus illa sub bis infregit saepe agrestem Cyllare lumen cultrosque **Cnosia**.\\nSuis est fero durisque satis.\\n\\n- Nos quas est maesta aliquis se unum\\n- Tu ossa Cupido sagitta hanc inflati profuso\\n- Modo est proles pavor\\n- Stillabant pallada invitaque et tantum dictaque in\\n- Generum coegi tum edaci\\n\\nSuo nec cerae me omnem Famemque, passi si auditque ullo, praebita. Gravi annos\\npudore formidabilis erat pectora perpetuo qua oscula cum ad sed Nabataeus\\nRomethiumque deum Erectheus? O Victoria rostro utque terras vitisque classe.\\nTibi [miserrima hirta](http://decentia-qui.net/docta-petentem), eratis saepius\\ntuus.\",\"diagrams\":[],\"elementDocs\":[],\"elements\":[],\"executables\":[{\"description\":\"Some exec description\",\"executable\":\"service::CovidDataMulti\",\"result\":{\"_type\":\"tds\",\"columns\":[{\"name\":\"Cases\",\"relationalType\":\"INTEGER\",\"type\":\"Float\"}]},\"title\":\"Exec 1\"},{\"description\":\"Some more exec description\",\"executable\":\"service::CovidDataSingle\",\"info\":{\"_type\":\"service\",\"datasets\":[{\"_type\":\"relationalDatabaseTable\",\"database\":\"CovidDataStore\",\"name\":\"default.DEMOGRAPHICS\",\"schema\":\"default\",\"table\":\"DEMOGRAPHICS\",\"type\":\"H2\"},{\"_type\":\"relationalDatabaseTable\",\"database\":\"CovidDataStore\",\"name\":\"default.COVID_DATA\",\"schema\":\"default\",\"table\":\"COVID_DATA\",\"type\":\"H2\"}],\"mapping\":\"mapping::CovidDataMapping\",\"pattern\":\"/9566f101-2108-408f-863f-6d7e154dc17b\",\"query\":\"|domain::COVIDData.all()->project(\\n [\\n x: domain::COVIDData[1]|$x.cases\\n ],\\n ['Cases']\\n)\",\"runtime\":\"runtime::H2Runtime\"},\"result\":{\"_type\":\"tds\",\"columns\":[{\"name\":\"Cases\",\"relationalType\":\"INTEGER\",\"type\":\"Float\"}]},\"title\":\"Exec 2\"}],\"executionContexts\":[{\"compatibleRuntimes\":[\"runtime::H2Runtime\"],\"datasets\":[{\"_type\":\"relationalDatabaseTable\",\"database\":\"CovidDataStore\",\"name\":\"default.DEMOGRAPHICS\",\"schema\":\"default\",\"table\":\"DEMOGRAPHICS\",\"type\":\"H2\"},{\"_type\":\"relationalDatabaseTable\",\"database\":\"CovidDataStore\",\"name\":\"default.COVID_DATA\",\"schema\":\"default\",\"table\":\"COVID_DATA\",\"type\":\"H2\"}],\"defaultRuntime\":\"runtime::H2Runtime\",\"mapping\":\"mapping::CovidDataMapping\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[{\"info\":{\"classPath\":\"domain::COVIDData\",\"isRootEntity\":true,\"subClasses\":[]},\"path\":\"domain::COVIDData\",\"properties\":[{\"_type\":\"MappedProperty\",\"name\":\"caseType\"},{\"_type\":\"MappedProperty\",\"name\":\"cases\"},{\"_type\":\"MappedProperty\",\"name\":\"date\"},{\"_type\":\"entity\",\"entityPath\":\"domain::Demographics\",\"name\":\"demographics\"},{\"_type\":\"MappedProperty\",\"name\":\"fips\"},{\"_type\":\"MappedProperty\",\"name\":\"id\"},{\"_type\":\"MappedProperty\",\"name\":\"lastReportedFlag\"}]},{\"info\":{\"classPath\":\"domain::Demographics\",\"isRootEntity\":true,\"subClasses\":[]},\"path\":\"domain::Demographics\",\"properties\":[{\"_type\":\"MappedProperty\",\"name\":\"fips\"},{\"_type\":\"MappedProperty\",\"name\":\"state\"}]}],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"class\",\"constraints\":[],\"name\":\"COVIDData\",\"originalMilestonedProperties\":[],\"package\":\"domain\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"id\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Integer\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"fips\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"date\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"StrictDate\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"caseType\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"cases\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Float\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"lastReportedFlag\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Boolean\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"demographics\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"domain::Demographics\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[\"meta::pure::metamodel::type::Any\"],\"taggedValues\":[{\"tag\":{\"profile\":\"meta::pure::profiles::doc\",\"value\":\"doc\"},\"value\":\"COVID-19 data report consisting of case statistics details and basic information on demographics\"}]},{\"_type\":\"dataSpace\",\"defaultExecutionContext\":\"dummyContext\",\"description\":\"# Peleus rupit\\n\\n## Sum super gerens paterque\\n\\nLorem markdownum presso, et tamen cogitis, Taenarius lactantia fluxerunt\\nterrita, vota. Tempore flumina ferrumque bella.\\n\\n- Per dixit\\n- Truces tellusque indignata ducem\\n- Cervice venitis cavernis minus\\n\\n## Tum ausus fovebam incursus magis dici extemplo\\n\\nPiscator degenerat desertaque quid scelus tyranni feror ipsa mortis nec silva\\nsparsus neci cum? Est patulas meam decorem, dat demit corpora exuritque Ulixes,\\ngenitore. Captare certa amore pressos, Diamque\\n[traxit](http://istecondar.net/ministropudoris) devorat duritia ecce, capillos\\nfuerint progenitore curva relictas. Iubae pectus et quateret, non vires tibi\\ncacumina figuram Antigonen rursus verti.\\n\\n## Dicta nec Thestiadae tristi exempla sed suoque\\n\\nFlumina quae loricaeque meruique defensae *me terram* tamen attollere totum\\nneque nullos. Quem plus, stratum.\\n\\n## Quaeque si reddite summoque vultu Teleboasque vincere\\n\\nIsmariae me munus umbram. Usum pedem multis quotiensque mirantum Cephenum et\\namori Procne locutum auctor Volturnus pavent virgineas.\\n\\n if (edi + sidebarTooltip < aiffDisk) {\\n drive_key_firewire += bank(searchHardBoot(bus, packet_click));\\n }\\n var adRow = dlc_rootkit(rdramMegabit) - hertzBanner * 2 +\\n memory_adc.horizontal(class_box_rte, disk, lte_grep);\\n if (grayscale) {\\n spool_windows_metal.zif_firewire *= 3;\\n emoticon_mp = user.thunderboltIcqBus.installer_remote(4, searchCable) *\\n kibibyteYoutubeRaster.simm(-3, nosqlCharacter, sip);\\n }\\n var blob = -2;\\n\\n## Est magis interdum in luctus\\n\\nPrimus illa sub bis infregit saepe agrestem Cyllare lumen cultrosque **Cnosia**.\\nSuis est fero durisque satis.\\n\\n- Nos quas est maesta aliquis se unum\\n- Tu ossa Cupido sagitta hanc inflati profuso\\n- Modo est proles pavor\\n- Stillabant pallada invitaque et tantum dictaque in\\n- Generum coegi tum edaci\\n\\nSuo nec cerae me omnem Famemque, passi si auditque ullo, praebita. Gravi annos\\npudore formidabilis erat pectora perpetuo qua oscula cum ad sed Nabataeus\\nRomethiumque deum Erectheus? O Victoria rostro utque terras vitisque classe.\\nTibi [miserrima hirta](http://decentia-qui.net/docta-petentem), eratis saepius\\ntuus.\",\"executables\":[{\"description\":\"Some exec description\",\"executable\":{\"path\":\"service::CovidDataMulti\"},\"title\":\"Exec 1\"},{\"description\":\"Some more exec description\",\"executable\":{\"path\":\"service::CovidDataSingle\"},\"title\":\"Exec 2\"}],\"executionContexts\":[{\"defaultRuntime\":{\"path\":\"runtime::H2Runtime\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"mapping::CovidDataMapping\",\"type\":\"MAPPING\"},\"name\":\"dummyContext\"}],\"name\":\"COVIDDataspace\",\"package\":\"domain\",\"stereotypes\":[],\"taggedValues\":[],\"title\":\"COVID Sample Data\"},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Demographics\",\"originalMilestonedProperties\":[],\"package\":\"domain\",\"properties\":[{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"fips\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"state\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[\"meta::pure::metamodel::type::Any\"],\"taggedValues\":[{\"tag\":{\"profile\":\"meta::pure::profiles::doc\",\"value\":\"doc\"},\"value\":\"COVID-19 data demographics consisting of geolocation information\"}]},{\"_type\":\"profile\",\"name\":\"doc\",\"package\":\"meta::pure::profiles\",\"stereotypes\":[\"deprecated\"],\"tags\":[\"doc\",\"todo\"]}]}},\"name\":\"dummyContext\"}],\"model\":{\"_type\":\"data\",\"elements\":[]},\"name\":\"COVIDDataspace\",\"package\":\"domain\",\"path\":\"domain::COVIDDataspace\",\"stereotypes\":[],\"taggedValues\":[],\"title\":\"COVID Sample Data\"}"); } @Test public void testAnalyticsForDataSpaceWithAccessEntitlementsToH2() throws Exception { - testDataSpaceAnalyticsArtifactGenerationExtension("models/dataspaceAccessAnalytics.pure", "domain::COVIDDataspace", "{\"defaultExecutionContext\":\"dummyContext\",\"description\":\"# Peleus rupit\\n\\n## Sum super gerens paterque\\n\\nLorem markdownum presso, et tamen cogitis, Taenarius lactantia fluxerunt\\nterrita, vota. Tempore flumina ferrumque bella.\\n\\n- Per dixit\\n- Truces tellusque indignata ducem\\n- Cervice venitis cavernis minus\\n\\n## Tum ausus fovebam incursus magis dici extemplo\\n\\nPiscator degenerat desertaque quid scelus tyranni feror ipsa mortis nec silva\\nsparsus neci cum? Est patulas meam decorem, dat demit corpora exuritque Ulixes,\\ngenitore. Captare certa amore pressos, Diamque\\n[traxit](http://istecondar.net/ministropudoris) devorat duritia ecce, capillos\\nfuerint progenitore curva relictas. Iubae pectus et quateret, non vires tibi\\ncacumina figuram Antigonen rursus verti.\\n\\n## Dicta nec Thestiadae tristi exempla sed suoque\\n\\nFlumina quae loricaeque meruique defensae *me terram* tamen attollere totum\\nneque nullos. Quem plus, stratum.\\n\\n## Quaeque si reddite summoque vultu Teleboasque vincere\\n\\nIsmariae me munus umbram. Usum pedem multis quotiensque mirantum Cephenum et\\namori Procne locutum auctor Volturnus pavent virgineas.\\n\\n if (edi + sidebarTooltip < aiffDisk) {\\n drive_key_firewire += bank(searchHardBoot(bus, packet_click));\\n }\\n var adRow = dlc_rootkit(rdramMegabit) - hertzBanner * 2 +\\n memory_adc.horizontal(class_box_rte, disk, lte_grep);\\n if (grayscale) {\\n spool_windows_metal.zif_firewire *= 3;\\n emoticon_mp = user.thunderboltIcqBus.installer_remote(4, searchCable) *\\n kibibyteYoutubeRaster.simm(-3, nosqlCharacter, sip);\\n }\\n var blob = -2;\\n\\n## Est magis interdum in luctus\\n\\nPrimus illa sub bis infregit saepe agrestem Cyllare lumen cultrosque **Cnosia**.\\nSuis est fero durisque satis.\\n\\n- Nos quas est maesta aliquis se unum\\n- Tu ossa Cupido sagitta hanc inflati profuso\\n- Modo est proles pavor\\n- Stillabant pallada invitaque et tantum dictaque in\\n- Generum coegi tum edaci\\n\\nSuo nec cerae me omnem Famemque, passi si auditque ullo, praebita. Gravi annos\\npudore formidabilis erat pectora perpetuo qua oscula cum ad sed Nabataeus\\nRomethiumque deum Erectheus? O Victoria rostro utque terras vitisque classe.\\nTibi [miserrima hirta](http://decentia-qui.net/docta-petentem), eratis saepius\\ntuus.\",\"diagrams\":[],\"elementDocs\":[],\"elements\":[],\"executables\":[{\"description\":\"Some exec description\",\"executable\":\"service::CovidDataMulti\",\"result\":{\"_type\":\"tds\",\"columns\":[{\"name\":\"Cases\",\"relationalType\":\"INTEGER\",\"type\":\"Float\"}]},\"title\":\"Exec 1\"},{\"description\":\"Some more exec description\",\"executable\":\"service::CovidDataSingle\",\"info\":{\"_type\":\"service\",\"datasets\":[{\"_type\":\"relationalDatabaseTable\",\"database\":\"CovidDataStore\",\"name\":\"default.DEMOGRAPHICS\",\"schema\":\"default\",\"table\":\"DEMOGRAPHICS\",\"type\":\"H2\"},{\"_type\":\"relationalDatabaseTable\",\"database\":\"CovidDataStore\",\"name\":\"default.COVID_DATA\",\"schema\":\"default\",\"table\":\"COVID_DATA\",\"type\":\"H2\"}],\"mapping\":\"mapping::CovidDataMapping\",\"pattern\":\"/9566f101-2108-408f-863f-6d7e154dc17b\",\"query\":\"|domain::COVIDData.all()->project(\\n [\\n x: domain::COVIDData[1]|$x.cases\\n ],\\n ['Cases']\\n)\",\"runtime\":\"runtime::H2Runtime\"},\"result\":{\"_type\":\"tds\",\"columns\":[{\"name\":\"Cases\",\"relationalType\":\"INTEGER\",\"type\":\"Float\"}]},\"title\":\"Exec 2\"}],\"executionContexts\":[{\"compatibleRuntimes\":[\"runtime::H2Runtime\",\"runtime::SnowflakeRuntime\"],\"datasets\":[{\"_type\":\"relationalDatabaseTable\",\"database\":\"CovidDataStore\",\"name\":\"default.DEMOGRAPHICS\",\"schema\":\"default\",\"table\":\"DEMOGRAPHICS\",\"type\":\"H2\"},{\"_type\":\"relationalDatabaseTable\",\"database\":\"CovidDataStore\",\"name\":\"default.COVID_DATA\",\"schema\":\"default\",\"table\":\"COVID_DATA\",\"type\":\"H2\"}],\"defaultRuntime\":\"runtime::H2Runtime\",\"mapping\":\"mapping::CovidDataMapping\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[{\"path\":\"domain::COVIDData\",\"properties\":[{\"_type\":\"MappedProperty\",\"name\":\"caseType\"},{\"_type\":\"MappedProperty\",\"name\":\"cases\"},{\"_type\":\"MappedProperty\",\"name\":\"date\"},{\"_type\":\"entity\",\"entityPath\":\"domain::Demographics\",\"name\":\"demographics\"},{\"_type\":\"MappedProperty\",\"name\":\"fips\"},{\"_type\":\"MappedProperty\",\"name\":\"id\"},{\"_type\":\"MappedProperty\",\"name\":\"lastReportedFlag\"}]},{\"path\":\"domain::Demographics\",\"properties\":[{\"_type\":\"MappedProperty\",\"name\":\"fips\"},{\"_type\":\"MappedProperty\",\"name\":\"state\"}]}]},\"name\":\"dummyContext\"}],\"model\":{\"_type\":\"data\",\"elements\":[]},\"name\":\"COVIDDataspace\",\"package\":\"domain\",\"path\":\"domain::COVIDDataspace\",\"stereotypes\":[],\"taggedValues\":[],\"title\":\"COVID Sample Data\"}"); + testDataSpaceAnalyticsArtifactGenerationExtension("models/dataspaceAccessAnalytics.pure", "domain::COVIDDataspace", "{\"defaultExecutionContext\":\"dummyContext\",\"description\":\"# Peleus rupit\\n\\n## Sum super gerens paterque\\n\\nLorem markdownum presso, et tamen cogitis, Taenarius lactantia fluxerunt\\nterrita, vota. Tempore flumina ferrumque bella.\\n\\n- Per dixit\\n- Truces tellusque indignata ducem\\n- Cervice venitis cavernis minus\\n\\n## Tum ausus fovebam incursus magis dici extemplo\\n\\nPiscator degenerat desertaque quid scelus tyranni feror ipsa mortis nec silva\\nsparsus neci cum? Est patulas meam decorem, dat demit corpora exuritque Ulixes,\\ngenitore. Captare certa amore pressos, Diamque\\n[traxit](http://istecondar.net/ministropudoris) devorat duritia ecce, capillos\\nfuerint progenitore curva relictas. Iubae pectus et quateret, non vires tibi\\ncacumina figuram Antigonen rursus verti.\\n\\n## Dicta nec Thestiadae tristi exempla sed suoque\\n\\nFlumina quae loricaeque meruique defensae *me terram* tamen attollere totum\\nneque nullos. Quem plus, stratum.\\n\\n## Quaeque si reddite summoque vultu Teleboasque vincere\\n\\nIsmariae me munus umbram. Usum pedem multis quotiensque mirantum Cephenum et\\namori Procne locutum auctor Volturnus pavent virgineas.\\n\\n if (edi + sidebarTooltip < aiffDisk) {\\n drive_key_firewire += bank(searchHardBoot(bus, packet_click));\\n }\\n var adRow = dlc_rootkit(rdramMegabit) - hertzBanner * 2 +\\n memory_adc.horizontal(class_box_rte, disk, lte_grep);\\n if (grayscale) {\\n spool_windows_metal.zif_firewire *= 3;\\n emoticon_mp = user.thunderboltIcqBus.installer_remote(4, searchCable) *\\n kibibyteYoutubeRaster.simm(-3, nosqlCharacter, sip);\\n }\\n var blob = -2;\\n\\n## Est magis interdum in luctus\\n\\nPrimus illa sub bis infregit saepe agrestem Cyllare lumen cultrosque **Cnosia**.\\nSuis est fero durisque satis.\\n\\n- Nos quas est maesta aliquis se unum\\n- Tu ossa Cupido sagitta hanc inflati profuso\\n- Modo est proles pavor\\n- Stillabant pallada invitaque et tantum dictaque in\\n- Generum coegi tum edaci\\n\\nSuo nec cerae me omnem Famemque, passi si auditque ullo, praebita. Gravi annos\\npudore formidabilis erat pectora perpetuo qua oscula cum ad sed Nabataeus\\nRomethiumque deum Erectheus? O Victoria rostro utque terras vitisque classe.\\nTibi [miserrima hirta](http://decentia-qui.net/docta-petentem), eratis saepius\\ntuus.\",\"diagrams\":[],\"elementDocs\":[],\"elements\":[],\"executables\":[{\"description\":\"Some exec description\",\"executable\":\"service::CovidDataMulti\",\"result\":{\"_type\":\"tds\",\"columns\":[{\"name\":\"Cases\",\"relationalType\":\"INTEGER\",\"type\":\"Float\"}]},\"title\":\"Exec 1\"},{\"description\":\"Some more exec description\",\"executable\":\"service::CovidDataSingle\",\"info\":{\"_type\":\"service\",\"datasets\":[{\"_type\":\"relationalDatabaseTable\",\"database\":\"CovidDataStore\",\"name\":\"default.DEMOGRAPHICS\",\"schema\":\"default\",\"table\":\"DEMOGRAPHICS\",\"type\":\"H2\"},{\"_type\":\"relationalDatabaseTable\",\"database\":\"CovidDataStore\",\"name\":\"default.COVID_DATA\",\"schema\":\"default\",\"table\":\"COVID_DATA\",\"type\":\"H2\"}],\"mapping\":\"mapping::CovidDataMapping\",\"pattern\":\"/9566f101-2108-408f-863f-6d7e154dc17b\",\"query\":\"|domain::COVIDData.all()->project(\\n [\\n x: domain::COVIDData[1]|$x.cases\\n ],\\n ['Cases']\\n)\",\"runtime\":\"runtime::H2Runtime\"},\"result\":{\"_type\":\"tds\",\"columns\":[{\"name\":\"Cases\",\"relationalType\":\"INTEGER\",\"type\":\"Float\"}]},\"title\":\"Exec 2\"}],\"executionContexts\":[{\"compatibleRuntimes\":[\"runtime::H2Runtime\",\"runtime::SnowflakeRuntime\"],\"datasets\":[{\"_type\":\"relationalDatabaseTable\",\"database\":\"CovidDataStore\",\"name\":\"default.DEMOGRAPHICS\",\"schema\":\"default\",\"table\":\"DEMOGRAPHICS\",\"type\":\"H2\"},{\"_type\":\"relationalDatabaseTable\",\"database\":\"CovidDataStore\",\"name\":\"default.COVID_DATA\",\"schema\":\"default\",\"table\":\"COVID_DATA\",\"type\":\"H2\"}],\"defaultRuntime\":\"runtime::H2Runtime\",\"mapping\":\"mapping::CovidDataMapping\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[{\"info\":{\"classPath\":\"domain::COVIDData\",\"isRootEntity\":true,\"subClasses\":[]},\"path\":\"domain::COVIDData\",\"properties\":[{\"_type\":\"MappedProperty\",\"name\":\"caseType\"},{\"_type\":\"MappedProperty\",\"name\":\"cases\"},{\"_type\":\"MappedProperty\",\"name\":\"date\"},{\"_type\":\"entity\",\"entityPath\":\"domain::Demographics\",\"name\":\"demographics\"},{\"_type\":\"MappedProperty\",\"name\":\"fips\"},{\"_type\":\"MappedProperty\",\"name\":\"id\"},{\"_type\":\"MappedProperty\",\"name\":\"lastReportedFlag\"}]},{\"info\":{\"classPath\":\"domain::Demographics\",\"isRootEntity\":true,\"subClasses\":[]},\"path\":\"domain::Demographics\",\"properties\":[{\"_type\":\"MappedProperty\",\"name\":\"fips\"},{\"_type\":\"MappedProperty\",\"name\":\"state\"}]}],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"class\",\"constraints\":[],\"name\":\"COVIDData\",\"originalMilestonedProperties\":[],\"package\":\"domain\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"id\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Integer\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"fips\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"date\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"StrictDate\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"caseType\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"cases\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Float\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"lastReportedFlag\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Boolean\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"demographics\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"domain::Demographics\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[\"meta::pure::metamodel::type::Any\"],\"taggedValues\":[{\"tag\":{\"profile\":\"meta::pure::profiles::doc\",\"value\":\"doc\"},\"value\":\"COVID-19 data report consisting of case statistics details and basic information on demographics\"}]},{\"_type\":\"dataSpace\",\"defaultExecutionContext\":\"dummyContext\",\"description\":\"# Peleus rupit\\n\\n## Sum super gerens paterque\\n\\nLorem markdownum presso, et tamen cogitis, Taenarius lactantia fluxerunt\\nterrita, vota. Tempore flumina ferrumque bella.\\n\\n- Per dixit\\n- Truces tellusque indignata ducem\\n- Cervice venitis cavernis minus\\n\\n## Tum ausus fovebam incursus magis dici extemplo\\n\\nPiscator degenerat desertaque quid scelus tyranni feror ipsa mortis nec silva\\nsparsus neci cum? Est patulas meam decorem, dat demit corpora exuritque Ulixes,\\ngenitore. Captare certa amore pressos, Diamque\\n[traxit](http://istecondar.net/ministropudoris) devorat duritia ecce, capillos\\nfuerint progenitore curva relictas. Iubae pectus et quateret, non vires tibi\\ncacumina figuram Antigonen rursus verti.\\n\\n## Dicta nec Thestiadae tristi exempla sed suoque\\n\\nFlumina quae loricaeque meruique defensae *me terram* tamen attollere totum\\nneque nullos. Quem plus, stratum.\\n\\n## Quaeque si reddite summoque vultu Teleboasque vincere\\n\\nIsmariae me munus umbram. Usum pedem multis quotiensque mirantum Cephenum et\\namori Procne locutum auctor Volturnus pavent virgineas.\\n\\n if (edi + sidebarTooltip < aiffDisk) {\\n drive_key_firewire += bank(searchHardBoot(bus, packet_click));\\n }\\n var adRow = dlc_rootkit(rdramMegabit) - hertzBanner * 2 +\\n memory_adc.horizontal(class_box_rte, disk, lte_grep);\\n if (grayscale) {\\n spool_windows_metal.zif_firewire *= 3;\\n emoticon_mp = user.thunderboltIcqBus.installer_remote(4, searchCable) *\\n kibibyteYoutubeRaster.simm(-3, nosqlCharacter, sip);\\n }\\n var blob = -2;\\n\\n## Est magis interdum in luctus\\n\\nPrimus illa sub bis infregit saepe agrestem Cyllare lumen cultrosque **Cnosia**.\\nSuis est fero durisque satis.\\n\\n- Nos quas est maesta aliquis se unum\\n- Tu ossa Cupido sagitta hanc inflati profuso\\n- Modo est proles pavor\\n- Stillabant pallada invitaque et tantum dictaque in\\n- Generum coegi tum edaci\\n\\nSuo nec cerae me omnem Famemque, passi si auditque ullo, praebita. Gravi annos\\npudore formidabilis erat pectora perpetuo qua oscula cum ad sed Nabataeus\\nRomethiumque deum Erectheus? O Victoria rostro utque terras vitisque classe.\\nTibi [miserrima hirta](http://decentia-qui.net/docta-petentem), eratis saepius\\ntuus.\",\"executables\":[{\"description\":\"Some exec description\",\"executable\":{\"path\":\"service::CovidDataMulti\"},\"title\":\"Exec 1\"},{\"description\":\"Some more exec description\",\"executable\":{\"path\":\"service::CovidDataSingle\"},\"title\":\"Exec 2\"}],\"executionContexts\":[{\"defaultRuntime\":{\"path\":\"runtime::H2Runtime\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"mapping::CovidDataMapping\",\"type\":\"MAPPING\"},\"name\":\"dummyContext\"}],\"name\":\"COVIDDataspace\",\"package\":\"domain\",\"stereotypes\":[],\"taggedValues\":[],\"title\":\"COVID Sample Data\"},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Demographics\",\"originalMilestonedProperties\":[],\"package\":\"domain\",\"properties\":[{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"fips\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"state\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[\"meta::pure::metamodel::type::Any\"],\"taggedValues\":[{\"tag\":{\"profile\":\"meta::pure::profiles::doc\",\"value\":\"doc\"},\"value\":\"COVID-19 data demographics consisting of geolocation information\"}]},{\"_type\":\"profile\",\"name\":\"doc\",\"package\":\"meta::pure::profiles\",\"stereotypes\":[\"deprecated\"],\"tags\":[\"doc\",\"todo\"]}]}},\"name\":\"dummyContext\"}],\"model\":{\"_type\":\"data\",\"elements\":[]},\"name\":\"COVIDDataspace\",\"package\":\"domain\",\"path\":\"domain::COVIDDataspace\",\"stereotypes\":[],\"taggedValues\":[],\"title\":\"COVID Sample Data\"}"); } @Test public void testAnalyticsForDataSpaceWithAccessEntitlementsToSnowflake() throws Exception { - testDataSpaceAnalyticsArtifactGenerationExtension("models/dataspaceAccessAnalytics.pure", "domain::COVIDDataspaceSnowflake", "{\"defaultExecutionContext\":\"dummyContext\",\"description\":\"# Peleus rupit\\n\\n## Sum super gerens paterque\\n\\nLorem markdownum presso, et tamen cogitis, Taenarius lactantia fluxerunt\\nterrita, vota. Tempore flumina ferrumque bella.\\n\\n- Per dixit\\n- Truces tellusque indignata ducem\\n- Cervice venitis cavernis minus\\n\\n## Tum ausus fovebam incursus magis dici extemplo\\n\\nPiscator degenerat desertaque quid scelus tyranni feror ipsa mortis nec silva\\nsparsus neci cum? Est patulas meam decorem, dat demit corpora exuritque Ulixes,\\ngenitore. Captare certa amore pressos, Diamque\\n[traxit](http://istecondar.net/ministropudoris) devorat duritia ecce, capillos\\nfuerint progenitore curva relictas. Iubae pectus et quateret, non vires tibi\\ncacumina figuram Antigonen rursus verti.\\n\\n## Dicta nec Thestiadae tristi exempla sed suoque\\n\\nFlumina quae loricaeque meruique defensae *me terram* tamen attollere totum\\nneque nullos. Quem plus, stratum.\\n\\n## Quaeque si reddite summoque vultu Teleboasque vincere\\n\\nIsmariae me munus umbram. Usum pedem multis quotiensque mirantum Cephenum et\\namori Procne locutum auctor Volturnus pavent virgineas.\\n\\n if (edi + sidebarTooltip < aiffDisk) {\\n drive_key_firewire += bank(searchHardBoot(bus, packet_click));\\n }\\n var adRow = dlc_rootkit(rdramMegabit) - hertzBanner * 2 +\\n memory_adc.horizontal(class_box_rte, disk, lte_grep);\\n if (grayscale) {\\n spool_windows_metal.zif_firewire *= 3;\\n emoticon_mp = user.thunderboltIcqBus.installer_remote(4, searchCable) *\\n kibibyteYoutubeRaster.simm(-3, nosqlCharacter, sip);\\n }\\n var blob = -2;\\n\\n## Est magis interdum in luctus\\n\\nPrimus illa sub bis infregit saepe agrestem Cyllare lumen cultrosque **Cnosia**.\\nSuis est fero durisque satis.\\n\\n- Nos quas est maesta aliquis se unum\\n- Tu ossa Cupido sagitta hanc inflati profuso\\n- Modo est proles pavor\\n- Stillabant pallada invitaque et tantum dictaque in\\n- Generum coegi tum edaci\\n\\nSuo nec cerae me omnem Famemque, passi si auditque ullo, praebita. Gravi annos\\npudore formidabilis erat pectora perpetuo qua oscula cum ad sed Nabataeus\\nRomethiumque deum Erectheus? O Victoria rostro utque terras vitisque classe.\\nTibi [miserrima hirta](http://decentia-qui.net/docta-petentem), eratis saepius\\ntuus.\",\"diagrams\":[],\"elementDocs\":[],\"elements\":[],\"executables\":[{\"description\":\"Some exec description\",\"executable\":\"service::CovidDataMulti\",\"result\":{\"_type\":\"tds\",\"columns\":[{\"name\":\"Cases\",\"relationalType\":\"INTEGER\",\"type\":\"Float\"}]},\"title\":\"Exec 1\"},{\"description\":\"Some more exec description\",\"executable\":\"service::CovidDataSingle\",\"info\":{\"_type\":\"service\",\"datasets\":[{\"_type\":\"relationalDatabaseTable\",\"database\":\"CovidDataStore\",\"name\":\"default.DEMOGRAPHICS\",\"schema\":\"default\",\"table\":\"DEMOGRAPHICS\",\"type\":\"H2\"},{\"_type\":\"relationalDatabaseTable\",\"database\":\"CovidDataStore\",\"name\":\"default.COVID_DATA\",\"schema\":\"default\",\"table\":\"COVID_DATA\",\"type\":\"H2\"}],\"mapping\":\"mapping::CovidDataMapping\",\"pattern\":\"/9566f101-2108-408f-863f-6d7e154dc17b\",\"query\":\"|domain::COVIDData.all()->project(\\n [\\n x: domain::COVIDData[1]|$x.cases\\n ],\\n ['Cases']\\n)\",\"runtime\":\"runtime::H2Runtime\"},\"result\":{\"_type\":\"tds\",\"columns\":[{\"name\":\"Cases\",\"relationalType\":\"INTEGER\",\"type\":\"Float\"}]},\"title\":\"Exec 2\"}],\"executionContexts\":[{\"compatibleRuntimes\":[\"runtime::H2Runtime\",\"runtime::SnowflakeRuntime\"],\"datasets\":[{\"_type\":\"relationalDatabaseTable\",\"database\":\"CovidDataStore\",\"name\":\"default.DEMOGRAPHICS\",\"schema\":\"default\",\"table\":\"DEMOGRAPHICS\",\"type\":\"Snowflake\"},{\"_type\":\"relationalDatabaseTable\",\"database\":\"CovidDataStore\",\"name\":\"default.COVID_DATA\",\"schema\":\"default\",\"table\":\"COVID_DATA\",\"type\":\"Snowflake\"}],\"defaultRuntime\":\"runtime::SnowflakeRuntime\",\"mapping\":\"mapping::CovidDataMapping\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[{\"path\":\"domain::COVIDData\",\"properties\":[{\"_type\":\"MappedProperty\",\"name\":\"caseType\"},{\"_type\":\"MappedProperty\",\"name\":\"cases\"},{\"_type\":\"MappedProperty\",\"name\":\"date\"},{\"_type\":\"entity\",\"entityPath\":\"domain::Demographics\",\"name\":\"demographics\"},{\"_type\":\"MappedProperty\",\"name\":\"fips\"},{\"_type\":\"MappedProperty\",\"name\":\"id\"},{\"_type\":\"MappedProperty\",\"name\":\"lastReportedFlag\"}]},{\"path\":\"domain::Demographics\",\"properties\":[{\"_type\":\"MappedProperty\",\"name\":\"fips\"},{\"_type\":\"MappedProperty\",\"name\":\"state\"}]}]},\"name\":\"dummyContext\"}],\"model\":{\"_type\":\"data\",\"elements\":[]},\"name\":\"COVIDDataspaceSnowflake\",\"package\":\"domain\",\"path\":\"domain::COVIDDataspaceSnowflake\",\"stereotypes\":[],\"taggedValues\":[],\"title\":\"COVID Sample Data\"}"); + testDataSpaceAnalyticsArtifactGenerationExtension("models/dataspaceAccessAnalytics.pure", "domain::COVIDDataspaceSnowflake", "{\"defaultExecutionContext\":\"dummyContext\",\"description\":\"# Peleus rupit\\n\\n## Sum super gerens paterque\\n\\nLorem markdownum presso, et tamen cogitis, Taenarius lactantia fluxerunt\\nterrita, vota. Tempore flumina ferrumque bella.\\n\\n- Per dixit\\n- Truces tellusque indignata ducem\\n- Cervice venitis cavernis minus\\n\\n## Tum ausus fovebam incursus magis dici extemplo\\n\\nPiscator degenerat desertaque quid scelus tyranni feror ipsa mortis nec silva\\nsparsus neci cum? Est patulas meam decorem, dat demit corpora exuritque Ulixes,\\ngenitore. Captare certa amore pressos, Diamque\\n[traxit](http://istecondar.net/ministropudoris) devorat duritia ecce, capillos\\nfuerint progenitore curva relictas. Iubae pectus et quateret, non vires tibi\\ncacumina figuram Antigonen rursus verti.\\n\\n## Dicta nec Thestiadae tristi exempla sed suoque\\n\\nFlumina quae loricaeque meruique defensae *me terram* tamen attollere totum\\nneque nullos. Quem plus, stratum.\\n\\n## Quaeque si reddite summoque vultu Teleboasque vincere\\n\\nIsmariae me munus umbram. Usum pedem multis quotiensque mirantum Cephenum et\\namori Procne locutum auctor Volturnus pavent virgineas.\\n\\n if (edi + sidebarTooltip < aiffDisk) {\\n drive_key_firewire += bank(searchHardBoot(bus, packet_click));\\n }\\n var adRow = dlc_rootkit(rdramMegabit) - hertzBanner * 2 +\\n memory_adc.horizontal(class_box_rte, disk, lte_grep);\\n if (grayscale) {\\n spool_windows_metal.zif_firewire *= 3;\\n emoticon_mp = user.thunderboltIcqBus.installer_remote(4, searchCable) *\\n kibibyteYoutubeRaster.simm(-3, nosqlCharacter, sip);\\n }\\n var blob = -2;\\n\\n## Est magis interdum in luctus\\n\\nPrimus illa sub bis infregit saepe agrestem Cyllare lumen cultrosque **Cnosia**.\\nSuis est fero durisque satis.\\n\\n- Nos quas est maesta aliquis se unum\\n- Tu ossa Cupido sagitta hanc inflati profuso\\n- Modo est proles pavor\\n- Stillabant pallada invitaque et tantum dictaque in\\n- Generum coegi tum edaci\\n\\nSuo nec cerae me omnem Famemque, passi si auditque ullo, praebita. Gravi annos\\npudore formidabilis erat pectora perpetuo qua oscula cum ad sed Nabataeus\\nRomethiumque deum Erectheus? O Victoria rostro utque terras vitisque classe.\\nTibi [miserrima hirta](http://decentia-qui.net/docta-petentem), eratis saepius\\ntuus.\",\"diagrams\":[],\"elementDocs\":[],\"elements\":[],\"executables\":[{\"description\":\"Some exec description\",\"executable\":\"service::CovidDataMulti\",\"result\":{\"_type\":\"tds\",\"columns\":[{\"name\":\"Cases\",\"relationalType\":\"INTEGER\",\"type\":\"Float\"}]},\"title\":\"Exec 1\"},{\"description\":\"Some more exec description\",\"executable\":\"service::CovidDataSingle\",\"info\":{\"_type\":\"service\",\"datasets\":[{\"_type\":\"relationalDatabaseTable\",\"database\":\"CovidDataStore\",\"name\":\"default.DEMOGRAPHICS\",\"schema\":\"default\",\"table\":\"DEMOGRAPHICS\",\"type\":\"H2\"},{\"_type\":\"relationalDatabaseTable\",\"database\":\"CovidDataStore\",\"name\":\"default.COVID_DATA\",\"schema\":\"default\",\"table\":\"COVID_DATA\",\"type\":\"H2\"}],\"mapping\":\"mapping::CovidDataMapping\",\"pattern\":\"/9566f101-2108-408f-863f-6d7e154dc17b\",\"query\":\"|domain::COVIDData.all()->project(\\n [\\n x: domain::COVIDData[1]|$x.cases\\n ],\\n ['Cases']\\n)\",\"runtime\":\"runtime::H2Runtime\"},\"result\":{\"_type\":\"tds\",\"columns\":[{\"name\":\"Cases\",\"relationalType\":\"INTEGER\",\"type\":\"Float\"}]},\"title\":\"Exec 2\"}],\"executionContexts\":[{\"compatibleRuntimes\":[\"runtime::H2Runtime\",\"runtime::SnowflakeRuntime\"],\"datasets\":[{\"_type\":\"relationalDatabaseTable\",\"database\":\"CovidDataStore\",\"name\":\"default.DEMOGRAPHICS\",\"schema\":\"default\",\"table\":\"DEMOGRAPHICS\",\"type\":\"Snowflake\"},{\"_type\":\"relationalDatabaseTable\",\"database\":\"CovidDataStore\",\"name\":\"default.COVID_DATA\",\"schema\":\"default\",\"table\":\"COVID_DATA\",\"type\":\"Snowflake\"}],\"defaultRuntime\":\"runtime::SnowflakeRuntime\",\"mapping\":\"mapping::CovidDataMapping\",\"mappingModelCoverageAnalysisResult\":{\"mappedEntities\":[{\"info\":{\"classPath\":\"domain::COVIDData\",\"isRootEntity\":true,\"subClasses\":[]},\"path\":\"domain::COVIDData\",\"properties\":[{\"_type\":\"MappedProperty\",\"name\":\"caseType\"},{\"_type\":\"MappedProperty\",\"name\":\"cases\"},{\"_type\":\"MappedProperty\",\"name\":\"date\"},{\"_type\":\"entity\",\"entityPath\":\"domain::Demographics\",\"name\":\"demographics\"},{\"_type\":\"MappedProperty\",\"name\":\"fips\"},{\"_type\":\"MappedProperty\",\"name\":\"id\"},{\"_type\":\"MappedProperty\",\"name\":\"lastReportedFlag\"}]},{\"info\":{\"classPath\":\"domain::Demographics\",\"isRootEntity\":true,\"subClasses\":[]},\"path\":\"domain::Demographics\",\"properties\":[{\"_type\":\"MappedProperty\",\"name\":\"fips\"},{\"_type\":\"MappedProperty\",\"name\":\"state\"}]}],\"model\":{\"_type\":\"data\",\"elements\":[{\"_type\":\"class\",\"constraints\":[],\"name\":\"COVIDData\",\"originalMilestonedProperties\":[],\"package\":\"domain\",\"properties\":[{\"multiplicity\":{\"lowerBound\":1,\"upperBound\":1},\"name\":\"id\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Integer\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"fips\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"date\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"StrictDate\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"caseType\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"cases\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Float\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"lastReportedFlag\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"Boolean\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"demographics\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"domain::Demographics\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[\"meta::pure::metamodel::type::Any\"],\"taggedValues\":[{\"tag\":{\"profile\":\"meta::pure::profiles::doc\",\"value\":\"doc\"},\"value\":\"COVID-19 data report consisting of case statistics details and basic information on demographics\"}]},{\"_type\":\"dataSpace\",\"defaultExecutionContext\":\"dummyContext\",\"description\":\"# Peleus rupit\\n\\n## Sum super gerens paterque\\n\\nLorem markdownum presso, et tamen cogitis, Taenarius lactantia fluxerunt\\nterrita, vota. Tempore flumina ferrumque bella.\\n\\n- Per dixit\\n- Truces tellusque indignata ducem\\n- Cervice venitis cavernis minus\\n\\n## Tum ausus fovebam incursus magis dici extemplo\\n\\nPiscator degenerat desertaque quid scelus tyranni feror ipsa mortis nec silva\\nsparsus neci cum? Est patulas meam decorem, dat demit corpora exuritque Ulixes,\\ngenitore. Captare certa amore pressos, Diamque\\n[traxit](http://istecondar.net/ministropudoris) devorat duritia ecce, capillos\\nfuerint progenitore curva relictas. Iubae pectus et quateret, non vires tibi\\ncacumina figuram Antigonen rursus verti.\\n\\n## Dicta nec Thestiadae tristi exempla sed suoque\\n\\nFlumina quae loricaeque meruique defensae *me terram* tamen attollere totum\\nneque nullos. Quem plus, stratum.\\n\\n## Quaeque si reddite summoque vultu Teleboasque vincere\\n\\nIsmariae me munus umbram. Usum pedem multis quotiensque mirantum Cephenum et\\namori Procne locutum auctor Volturnus pavent virgineas.\\n\\n if (edi + sidebarTooltip < aiffDisk) {\\n drive_key_firewire += bank(searchHardBoot(bus, packet_click));\\n }\\n var adRow = dlc_rootkit(rdramMegabit) - hertzBanner * 2 +\\n memory_adc.horizontal(class_box_rte, disk, lte_grep);\\n if (grayscale) {\\n spool_windows_metal.zif_firewire *= 3;\\n emoticon_mp = user.thunderboltIcqBus.installer_remote(4, searchCable) *\\n kibibyteYoutubeRaster.simm(-3, nosqlCharacter, sip);\\n }\\n var blob = -2;\\n\\n## Est magis interdum in luctus\\n\\nPrimus illa sub bis infregit saepe agrestem Cyllare lumen cultrosque **Cnosia**.\\nSuis est fero durisque satis.\\n\\n- Nos quas est maesta aliquis se unum\\n- Tu ossa Cupido sagitta hanc inflati profuso\\n- Modo est proles pavor\\n- Stillabant pallada invitaque et tantum dictaque in\\n- Generum coegi tum edaci\\n\\nSuo nec cerae me omnem Famemque, passi si auditque ullo, praebita. Gravi annos\\npudore formidabilis erat pectora perpetuo qua oscula cum ad sed Nabataeus\\nRomethiumque deum Erectheus? O Victoria rostro utque terras vitisque classe.\\nTibi [miserrima hirta](http://decentia-qui.net/docta-petentem), eratis saepius\\ntuus.\",\"executables\":[{\"description\":\"Some exec description\",\"executable\":{\"path\":\"service::CovidDataMulti\"},\"title\":\"Exec 1\"},{\"description\":\"Some more exec description\",\"executable\":{\"path\":\"service::CovidDataSingle\"},\"title\":\"Exec 2\"}],\"executionContexts\":[{\"defaultRuntime\":{\"path\":\"runtime::SnowflakeRuntime\",\"type\":\"RUNTIME\"},\"mapping\":{\"path\":\"mapping::CovidDataMapping\",\"type\":\"MAPPING\"},\"name\":\"dummyContext\"}],\"name\":\"COVIDDataspaceSnowflake\",\"package\":\"domain\",\"stereotypes\":[],\"taggedValues\":[],\"title\":\"COVID Sample Data\"},{\"_type\":\"class\",\"constraints\":[],\"name\":\"Demographics\",\"originalMilestonedProperties\":[],\"package\":\"domain\",\"properties\":[{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"fips\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"},{\"multiplicity\":{\"lowerBound\":0,\"upperBound\":1},\"name\":\"state\",\"stereotypes\":[],\"taggedValues\":[],\"type\":\"String\"}],\"qualifiedProperties\":[],\"stereotypes\":[],\"superTypes\":[\"meta::pure::metamodel::type::Any\"],\"taggedValues\":[{\"tag\":{\"profile\":\"meta::pure::profiles::doc\",\"value\":\"doc\"},\"value\":\"COVID-19 data demographics consisting of geolocation information\"}]},{\"_type\":\"profile\",\"name\":\"doc\",\"package\":\"meta::pure::profiles\",\"stereotypes\":[\"deprecated\"],\"tags\":[\"doc\",\"todo\"]}]}},\"name\":\"dummyContext\"}],\"model\":{\"_type\":\"data\",\"elements\":[]},\"name\":\"COVIDDataspaceSnowflake\",\"package\":\"domain\",\"path\":\"domain::COVIDDataspaceSnowflake\",\"stereotypes\":[],\"taggedValues\":[],\"title\":\"COVID Sample Data\"}"); } } diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/src/main/resources/core_data_space/analytics/analytics.pure b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/src/main/resources/core_data_space/analytics/analytics.pure index 7919d07bdb4..b51e37d9a22 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/src/main/resources/core_data_space/analytics/analytics.pure +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/src/main/resources/core_data_space/analytics/analytics.pure @@ -26,6 +26,11 @@ Class meta::pure::metamodel::dataSpace::analytics::DataSpaceAnalysisResult elementDocs: DataSpaceModelDocumentationEntry[*]; } +Class meta::pure::metamodel::dataSpace::analytics::DataSpaceCoverageAnalysisResult +{ + executionContexts: DataSpaceExecutionContextAnalysisResult[*]; +} + function meta::pure::metamodel::dataSpace::analytics::analyzeDataSpace(dataSpace: DataSpace[1], allAvailableRuntimes: PackageableRuntime[*]): DataSpaceAnalysisResult[1] { ^DataSpaceAnalysisResult @@ -36,6 +41,14 @@ function meta::pure::metamodel::dataSpace::analytics::analyzeDataSpace(dataSpace ); } +function meta::pure::metamodel::dataSpace::analytics::analyzeDataSpaceCoverage(dataSpace: DataSpace[1], allAvailableRuntimes: PackageableRuntime[*]): DataSpaceCoverageAnalysisResult[1] +{ + ^DataSpaceCoverageAnalysisResult + ( + executionContexts = analyzeDataSpaceExecutionContexts($dataSpace, $allAvailableRuntimes) + ); +} + // ------------------------- Execution Context ---------------------------- @@ -51,7 +64,7 @@ function <> meta::pure::metamodel::dataSpace::analytics::analyze $dataSpace.executionContexts->map(context|^DataSpaceExecutionContextAnalysisResult( name = $context.name, compatibleRuntimes = getMappingCompatibleRuntimes($context.mapping, $allAvailableRuntimes), - mappingCoverage = meta::analytics::mapping::modelCoverage::analyze($context.mapping, false, false) + mappingCoverage = meta::analytics::mapping::modelCoverage::analyze($context.mapping, true, false, true) )); } diff --git a/pom.xml b/pom.xml index 0f3f1be88d3..bcf45520552 100644 --- a/pom.xml +++ b/pom.xml @@ -1481,6 +1481,39 @@ ${project.version} + + org.finos.legend.engine + legend-engine-xt-analytics-class-api + ${project.version} + + + org.finos.legend.engine + legend-engine-xt-analytics-class-pure + ${project.version} + + + + org.finos.legend.engine + legend-engine-xt-analytics-function-api + ${project.version} + + + org.finos.legend.engine + legend-engine-xt-analytics-function-pure + ${project.version} + + + + org.finos.legend.engine + legend-engine-xt-analytics-binding-api + ${project.version} + + + org.finos.legend.engine + legend-engine-xt-analytics-binding-pure + ${project.version} + + org.finos.legend.engine legend-engine-xt-analytics-search-pure From 76c54cc3157758b28bb1380f102b6eaf2e9e6104 Mon Sep 17 00:00:00 2001 From: FINOS Administrator <37706051+finos-admin@users.noreply.github.com> Date: Mon, 16 Oct 2023 16:00:38 +0000 Subject: [PATCH 18/80] [maven-release-plugin] prepare release legend-engine-4.31.0 --- legend-engine-application-query/pom.xml | 2 +- legend-engine-config/legend-engine-configuration/pom.xml | 2 +- .../legend-engine-connection-integration-tests/pom.xml | 5 ++--- .../legend-engine-extensions-collection-execution/pom.xml | 2 +- .../legend-engine-extensions-collection-generation/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-server-integration-tests/pom.xml | 2 +- .../legend-engine-server-support-core/pom.xml | 2 +- legend-engine-config/legend-engine-server/pom.xml | 2 +- legend-engine-config/pom.xml | 2 +- .../legend-engine-executionPlan-dependencies/pom.xml | 2 +- .../legend-engine-executionPlan-execution-api/pom.xml | 2 +- .../legend-engine-executionPlan-execution-authorizer/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-executionPlan-execution/pom.xml | 2 +- .../legend-engine-external-shared-format-runtime/pom.xml | 2 +- .../legend-engine-core-executionPlan-execution/pom.xml | 2 +- .../legend-engine-executionPlan-generation/pom.xml | 2 +- .../legend-engine-core-executionPlan-generation/pom.xml | 2 +- .../legend-engine-external-shared-format-model/pom.xml | 2 +- .../legend-engine-language-pure-compiler-api/pom.xml | 2 +- .../legend-engine-language-pure-compiler/pom.xml | 2 +- .../legend-engine-language-pure-grammar-api/pom.xml | 2 +- .../legend-engine-language-pure-grammar/pom.xml | 2 +- .../legend-engine-language-pure-modelManager-sdlc/pom.xml | 2 +- .../legend-engine-language-pure-modelManager/pom.xml | 2 +- .../legend-engine-protocol-api/pom.xml | 2 +- .../legend-engine-protocol-generation-pure/pom.xml | 2 +- .../legend-engine-protocol-generation/pom.xml | 2 +- .../legend-engine-protocol-pure/pom.xml | 2 +- .../legend-engine-protocol/pom.xml | 2 +- legend-engine-core/legend-engine-core-language-pure/pom.xml | 2 +- .../legend-engine-query-pure/pom.xml | 2 +- legend-engine-core/legend-engine-core-query-pure/pom.xml | 2 +- .../legend-engine-shared-core/pom.xml | 2 +- .../legend-engine-shared-javaCompiler/pom.xml | 2 +- legend-engine-core/legend-engine-core-shared/pom.xml | 2 +- .../legend-engine-test-data-generation/pom.xml | 2 +- .../legend-engine-test-runner-mapping/pom.xml | 2 +- .../legend-engine-test-runner-shared/pom.xml | 2 +- .../legend-engine-test-server-shared/pom.xml | 2 +- .../legend-engine-core-test/legend-engine-testable/pom.xml | 2 +- legend-engine-core/legend-engine-core-test/pom.xml | 2 +- legend-engine-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-functions/pom.xml | 2 +- .../legend-engine-pure-code-core-extension/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-code/pom.xml | 2 +- .../legend-engine-pure-ide-light-metadata-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-ide/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-diagram-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-graph-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-mapping-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-path-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-json-java/pom.xml | 2 +- .../legend-engine-pure-platform-java/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-pure-platform-modular-generation/pom.xml | 2 +- .../legend-engine-pure-runtime-compiler/pom.xml | 2 +- .../legend-engine-pure-runtime-execution/pom.xml | 2 +- .../legend-engine-pure-runtime-extensions/pom.xml | 2 +- .../legend-engine-xt-java-runtime-compiler/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-runtime/pom.xml | 2 +- legend-engine-pure/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-api/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-binding/pom.xml | 2 +- .../legend-engine-xt-analytics-class-api/pom.xml | 2 +- .../legend-engine-xt-analytics-class-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-class/pom.xml | 2 +- .../legend-engine-xt-analytics-function-api/pom.xml | 2 +- .../legend-engine-xt-analytics-function-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-function/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-api/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-lineage/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-api/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-protocol/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-mapping/pom.xml | 2 +- .../legend-engine-xt-analytics-search-generation/pom.xml | 2 +- .../legend-engine-xt-analytics-search-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-search/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement-api/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement/pom.xml | 2 +- .../legend-engine-xts-analytics-store/pom.xml | 2 +- legend-engine-xts-analytics/pom.xml | 2 +- legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml | 2 +- .../legend-engine-xt-arrow-runtime/pom.xml | 2 +- legend-engine-xts-arrow/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-protocol/pom.xml | 2 +- .../legend-engine-xt-authentication-pure/pom.xml | 2 +- legend-engine-xts-authentication/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro/pom.xml | 2 +- legend-engine-xts-avro/pom.xml | 2 +- .../legend-engine-xt-changetoken-compiler/pom.xml | 2 +- .../legend-engine-xt-changetoken-pure/pom.xml | 2 +- legend-engine-xts-changetoken/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml | 2 +- legend-engine-xts-daml/pom.xml | 2 +- .../legend-engine-xt-data-push-server/pom.xml | 2 +- legend-engine-xts-data-push/pom.xml | 2 +- .../legend-engine-xt-data-space-api/pom.xml | 2 +- .../legend-engine-xt-data-space-compiler/pom.xml | 2 +- .../legend-engine-xt-data-space-generation/pom.xml | 2 +- .../legend-engine-xt-data-space-grammar/pom.xml | 2 +- .../legend-engine-xt-data-space-protocol/pom.xml | 2 +- .../legend-engine-xt-data-space-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-data-space-pure/pom.xml | 2 +- legend-engine-xts-data-space/pom.xml | 2 +- .../legend-engine-xt-diagram-api/pom.xml | 2 +- .../legend-engine-xt-diagram-compiler/pom.xml | 2 +- .../legend-engine-xt-diagram-grammar/pom.xml | 2 +- .../legend-engine-xt-diagram-protocol/pom.xml | 2 +- .../legend-engine-xt-diagram-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-diagram-pure/pom.xml | 2 +- legend-engine-xts-diagram/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-grammar/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-protocol/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-elasticsearch-protocol-utils/pom.xml | 2 +- .../pom.xml | 2 +- legend-engine-xts-elasticsearch/pom.xml | 2 +- .../legend-engine-xt-flatdata-driver-bloomberg/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-flatdata-model/pom.xml | 2 +- .../legend-engine-xt-flatdata-pure/pom.xml | 2 +- .../legend-engine-xt-flatdata-runtime/pom.xml | 2 +- .../legend-engine-xt-flatdata-shared/pom.xml | 2 +- legend-engine-xts-flatdata/pom.xml | 2 +- .../legend-engine-xt-functionActivator-api/pom.xml | 2 +- .../legend-engine-xt-functionActivator-protocol/pom.xml | 2 +- .../legend-engine-xt-functionActivator-pure/pom.xml | 2 +- legend-engine-xts-functionActivator/pom.xml | 2 +- .../legend-engine-external-shared/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation/pom.xml | 2 +- .../legend-engine-xt-artifact-generation-api/pom.xml | 2 +- legend-engine-xts-generation/pom.xml | 2 +- .../legend-engine-xt-graphQL-compiler/pom.xml | 4 ++-- .../legend-engine-xt-graphQL-grammar-integration/pom.xml | 2 +- .../legend-engine-xt-graphQL-grammar/pom.xml | 2 +- .../legend-engine-xt-graphQL-protocol/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure/pom.xml | 2 +- .../legend-engine-xt-graphQL-query/pom.xml | 2 +- .../legend-engine-xt-graphQL-relational-extension/pom.xml | 2 +- legend-engine-xts-graphQL/pom.xml | 2 +- .../legend-engine-xt-haskell-grammar/pom.xml | 2 +- .../legend-engine-xt-haskell-protocol/pom.xml | 2 +- .../legend-engine-xt-haskell-pure/pom.xml | 2 +- legend-engine-xts-haskell/pom.xml | 2 +- .../legend-engine-xt-hostedService-api/pom.xml | 2 +- .../legend-engine-xt-hostedService-compiler/pom.xml | 2 +- .../legend-engine-xt-hostedService-generation/pom.xml | 2 +- .../legend-engine-xt-hostedService-grammar/pom.xml | 2 +- .../legend-engine-xt-hostedService-protocol/pom.xml | 2 +- .../legend-engine-xt-hostedService-pure/pom.xml | 2 +- legend-engine-xts-hostedService/pom.xml | 2 +- .../legend-engine-xt-iceberg-pure/pom.xml | 2 +- .../legend-engine-xt-iceberg-test-support/pom.xml | 2 +- legend-engine-xts-iceberg/pom.xml | 2 +- .../legend-engine-external-language-java/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-javaGeneration-pure/pom.xml | 2 +- .../legend-engine-xt-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-java/pom.xml | 2 +- .../legend-engine-external-format-jsonSchema/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-pure/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-test/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-model/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml | 2 +- legend-engine-xts-json/pom.xml | 2 +- .../legend-engine-xt-mastery-grammar/pom.xml | 2 +- .../legend-engine-xt-mastery-protocol/pom.xml | 2 +- .../legend-engine-xt-mastery-pure/pom.xml | 2 +- legend-engine-xts-mastery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml | 2 +- legend-engine-xts-mongodb/pom.xml | 2 +- .../legend-engine-xt-morphir-pure/pom.xml | 2 +- legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml | 2 +- legend-engine-xts-morphir/pom.xml | 2 +- .../legend-engine-xt-openapi-generation/pom.xml | 2 +- .../legend-engine-xt-openapi-pure/pom.xml | 2 +- legend-engine-xts-openapi/pom.xml | 2 +- .../legend-engine-xt-persistence-api/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-component/pom.xml | 2 +- .../legend-engine-xt-persistence-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-test-runner/pom.xml | 2 +- legend-engine-xts-persistence/pom.xml | 2 +- .../legend-engine-xt-protobuf-grammar/pom.xml | 2 +- .../legend-engine-xt-protobuf-protocol/pom.xml | 2 +- .../legend-engine-xt-protobuf-pure/pom.xml | 2 +- legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml | 4 ++-- legend-engine-xts-protobuf/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-analytics/pom.xml | 2 +- .../legend-engine-xt-relationalStore-connection/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-reports/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-server/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino/pom.xml | 2 +- .../legend-engine-xt-relationalStore-dbExtension/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-executionPlan/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-api/pom.xml | 2 +- .../legend-engine-xt-relationalStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-generation/pom.xml | 2 +- legend-engine-xts-relationalStore/pom.xml | 2 +- .../legend-engine-xt-relationalai-pure/pom.xml | 2 +- legend-engine-xts-relationalai/pom.xml | 2 +- .../legend-engine-xt-rosetta-pure/pom.xml | 2 +- legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml | 2 +- legend-engine-xts-rosetta/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service/pom.xml | 2 +- .../legend-engine-service-post-validation-runner/pom.xml | 2 +- .../legend-engine-services-model-api/pom.xml | 2 +- .../legend-engine-services-model/pom.xml | 2 +- .../legend-engine-test-runner-service/pom.xml | 2 +- legend-engine-xts-service/pom.xml | 2 +- .../legend-engine-xt-serviceStore-executionPlan/pom.xml | 2 +- .../legend-engine-xt-serviceStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-serviceStore-protocol/pom.xml | 2 +- .../legend-engine-xt-serviceStore-pure/pom.xml | 2 +- legend-engine-xts-serviceStore/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-api/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-compiler/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-grammar/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-protocol/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-pure/pom.xml | 2 +- legend-engine-xts-snowflakeApp/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml | 2 +- .../legend-engine-xt-sql-grammar-integration/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml | 2 +- .../legend-engine-xt-sql-postgres-server/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml | 2 +- .../legend-engine-xt-sql-pure-metamodel/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml | 2 +- legend-engine-xts-sql/pom.xml | 2 +- .../legend-engine-xt-text-compiler/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml | 2 +- .../legend-engine-xt-text-protocol/pom.xml | 2 +- .../legend-engine-xt-text-pure-metamodel/pom.xml | 2 +- legend-engine-xts-text/pom.xml | 2 +- .../legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml | 2 +- legend-engine-xts-xml/pom.xml | 2 +- pom.xml | 4 ++-- 375 files changed, 379 insertions(+), 380 deletions(-) diff --git a/legend-engine-application-query/pom.xml b/legend-engine-application-query/pom.xml index a769efc77e2..5cf4dda424c 100644 --- a/legend-engine-application-query/pom.xml +++ b/legend-engine-application-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-application-query diff --git a/legend-engine-config/legend-engine-configuration/pom.xml b/legend-engine-config/legend-engine-configuration/pom.xml index 28ffc2ff09f..80e54374797 100644 --- a/legend-engine-config/legend-engine-configuration/pom.xml +++ b/legend-engine-config/legend-engine-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-configuration diff --git a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml index 3228943aa0c..91d964e309a 100644 --- a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml @@ -15,12 +15,11 @@ limitations under the License. --> - + org.finos.legend.engine legend-engine-config - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-connection-integration-tests diff --git a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml index 7ae5876854c..d5ecd8ba80a 100644 --- a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml index 62e94574827..fbbe01c3064 100644 --- a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml index 558bd130fdc..29b534859c9 100644 --- a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml +++ b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-config/legend-engine-server-integration-tests/pom.xml b/legend-engine-config/legend-engine-server-integration-tests/pom.xml index 6de9ae3c274..50bfd564e67 100644 --- a/legend-engine-config/legend-engine-server-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-server-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-server-integration-tests diff --git a/legend-engine-config/legend-engine-server-support-core/pom.xml b/legend-engine-config/legend-engine-server-support-core/pom.xml index c1e3b6084a8..97207b1e872 100644 --- a/legend-engine-config/legend-engine-server-support-core/pom.xml +++ b/legend-engine-config/legend-engine-server-support-core/pom.xml @@ -3,7 +3,7 @@ legend-engine-config org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index d65cc0dcc30..7f3d3c1bb67 100644 --- a/legend-engine-config/legend-engine-server/pom.xml +++ b/legend-engine-config/legend-engine-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-server diff --git a/legend-engine-config/pom.xml b/legend-engine-config/pom.xml index 8bc10e8ab9a..9e9b03084ae 100644 --- a/legend-engine-config/pom.xml +++ b/legend-engine-config/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml index e3c2d9be4e5..5085c5b1f08 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-executionPlan-dependencies diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml index 97a581c99cd..0aa86102a14 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-executionPlan-execution-api diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml index 67188fdcbcb..21d1169b085 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-core-executionPlan-execution org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml index 65c758f45a1..e3ac9cfe63b 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-executionPlan-execution-store-inMemory diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml index 49018781741..6f41789fab0 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-executionPlan-execution diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml index c34283b87bf..df114cd7556 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml index 5fdf54971e3..89675b65e54 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml index 0c73f22f72f..b85b77086e4 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-generation - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml index 9ce432c6c7e..830c96a5cd9 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml index e10ac455a12..d44800b5de1 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml index 56bfa71742d..f7c8b6e21c1 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-language-pure-compiler-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml index 89f2bbf1130..d51b91f6f44 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-language-pure-compiler diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml index 1a7b491da29..1211c8f7b2f 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-language-pure-grammar-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml index 973cef500c9..53cb583bdc7 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-language-pure-grammar diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml index 71bb9445572..b8779a170fa 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-language-pure-modelManager-sdlc diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml index be2fc6469e2..78b8f75e18d 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-language-pure-modelManager diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml index 41ee6422e0c..837c557fcff 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-protocol-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml index 366fed6b963..2bc031c37e7 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-protocol-generation-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml index 823790e4a7a..b317243a59c 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-protocol-generation diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml index 934ff2bfd97..5248e6b685a 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-protocol-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml index f63fd2764a6..5d2e4ecdf59 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-protocol diff --git a/legend-engine-core/legend-engine-core-language-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/pom.xml index 970dbd37fe8..54d4f0b6feb 100644 --- a/legend-engine-core/legend-engine-core-language-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml index e55e7b0532b..29c94967c2a 100644 --- a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-query-pure - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-query-pure diff --git a/legend-engine-core/legend-engine-core-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/pom.xml index 10be27ceb23..26717b5b672 100644 --- a/legend-engine-core/legend-engine-core-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml index 15d8c371a6e..3a8ee5cc5ed 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-shared-core diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml index c6a67446138..fccdb44703a 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-shared-javaCompiler diff --git a/legend-engine-core/legend-engine-core-shared/pom.xml b/legend-engine-core/legend-engine-core-shared/pom.xml index 235b224f155..094d785533c 100644 --- a/legend-engine-core/legend-engine-core-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml index 99a284088ed..142405b1406 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-core-test - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml index ef911453207..6a8b2bc54be 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml index 05c819f64a9..2e2238d8001 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-test-runner-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml index 512449b9849..c42f28308f3 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-test-server-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml index 9a034b49bcc..3ea4d0c94e8 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-testable diff --git a/legend-engine-core/legend-engine-core-test/pom.xml b/legend-engine-core/legend-engine-core-test/pom.xml index 9d9af090890..e3380179d4b 100644 --- a/legend-engine-core/legend-engine-core-test/pom.xml +++ b/legend-engine-core/legend-engine-core-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-core/pom.xml b/legend-engine-core/pom.xml index 5d32e53982a..b7502ae6082 100644 --- a/legend-engine-core/pom.xml +++ b/legend-engine-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml index 8b7d129b955..a8111914072 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.30.3-SNAPSHOT + 4.31.0 legend-engine-pure-code-compiled-core diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml index 76f6bd3ed93..c7d8e21fe99 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.30.3-SNAPSHOT + 4.31.0 legend-engine-pure-code-compiled-functions diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml index 6a131f4ca6f..afa17bd7eac 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.30.3-SNAPSHOT + 4.31.0 legend-engine-pure-code-core-extension diff --git a/legend-engine-pure/legend-engine-pure-code/pom.xml b/legend-engine-pure/legend-engine-pure-code/pom.xml index 9c15bdbc4a3..8c428973328 100644 --- a/legend-engine-pure/legend-engine-pure-code/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml index 7d45b1ac42a..b285f9561ed 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml index 6b12ec98c50..83a51345f97 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml index 979bc2b5161..4afec56e31f 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/pom.xml b/legend-engine-pure/legend-engine-pure-ide/pom.xml index c6b0e557310..17bf46da225 100644 --- a/legend-engine-pure/legend-engine-pure-ide/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml index 98577137c99..88090c789a6 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.30.3-SNAPSHOT + 4.31.0 legend-engine-pure-platform-dsl-diagram-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml index 933dc1ef6a4..88d03ef4add 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.30.3-SNAPSHOT + 4.31.0 legend-engine-pure-platform-dsl-graph-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml index 1cbedd0bd6c..01041e94923 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.30.3-SNAPSHOT + 4.31.0 legend-engine-pure-platform-dsl-mapping-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml index 15b3ab7616d..d438d5e773d 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.30.3-SNAPSHOT + 4.31.0 legend-engine-pure-platform-dsl-path-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml index 3d29bed6e6a..0370af88c7e 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.30.3-SNAPSHOT + 4.31.0 legend-engine-pure-platform-functions-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml index 565edeb087c..e51bc66606f 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.30.3-SNAPSHOT + 4.31.0 legend-engine-pure-platform-functions-json-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml index fd09d96a635..d5dc365ee3b 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.30.3-SNAPSHOT + 4.31.0 legend-engine-pure-platform-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml index d6cff1791be..c9fae206b58 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.30.3-SNAPSHOT + 4.31.0 legend-engine-pure-platform-store-relational-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml index ef988597e55..adeb60e558d 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml index 13607722ff0..6956ae9dae6 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml index 885ad5f6d3f..8f1d631df78 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml index 63c1946e165..377ca4db7f9 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml index 884f63d4d03..809cd67d83f 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.30.3-SNAPSHOT + 4.31.0 legend-engine-xt-java-runtime-compiler diff --git a/legend-engine-pure/legend-engine-pure-runtime/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/pom.xml index 2603bc254d1..f57ce3d70bd 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-pure/pom.xml b/legend-engine-pure/pom.xml index 66299a22fed..ccb46408138 100644 --- a/legend-engine-pure/pom.xml +++ b/legend-engine-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml index 643ae03f8f7..ca5c542e97e 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml index 814ecbe68bc..079be1b6500 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml index e6529bb3240..76366aaec36 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml index f93e1b2db5f..3f4f7b394a2 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml index f0ca04af9a6..a9a1016e070 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml index 53377e59dd9..8a0d902dfc5 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml index c7459c0c20a..989f926f374 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml index e3bcaf30dc8..4cdc12677f3 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml index 693e2705904..16d14955d57 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml index 4a3be642405..c9d5488ad6f 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml index 8e21753808d..39cfe3c18c6 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml index 055a46190cf..860f5ade88d 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml index 270109b1cd8..bade02984b7 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 Legend Engine - XT - Analytics - Mapping - API diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml index d902048384c..4512c0a1265 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-mapping - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 Legend Engine - XT - Analytics - Mapping - Protocol diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml index 06f8e4cf2b9..fa2e6986108 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml index 03d1d031b26..bc31292fe62 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml index fe519d179e3..160321a0341 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-search - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml index de71b84a8ab..7f7c9ad5e93 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-search org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml index a0c90b85da0..fea6802574b 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml index 8426958ba66..31e0903e6ae 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-xt-analytics-store-entitlement-api diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml index c6b251f6fa9..eca9c38baa7 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml index f50f446a6ec..d116c7d1ca0 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-analytics/pom.xml b/legend-engine-xts-analytics/pom.xml index 7b7457bd1ed..788ca5e6ca8 100644 --- a/legend-engine-xts-analytics/pom.xml +++ b/legend-engine-xts-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml index 9b3f1efc9a5..48af03c463a 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml index e64a8237fef..3d70a07f358 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-arrow/pom.xml b/legend-engine-xts-arrow/pom.xml index 367f2e200f4..224a3ebff3a 100644 --- a/legend-engine-xts-arrow/pom.xml +++ b/legend-engine-xts-arrow/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 legend-engine-xts-arrow diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml index 444b1f80674..90904246ac8 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml index 862f6eac3f3..fa01e918643 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml index efbfce9fb9d..5d1b47a0c53 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml index 78e13b4fcd7..f4b6d7e7abb 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml index 76418f9d906..57870ec7c73 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml index c922d68497d..a626c087fb0 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml index a0cef8d5af6..40ca63dd8b4 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-authentication/pom.xml b/legend-engine-xts-authentication/pom.xml index cc85a7a15aa..14f8f34e416 100644 --- a/legend-engine-xts-authentication/pom.xml +++ b/legend-engine-xts-authentication/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml index 91e4f8b8804..c96643c1ea6 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml index d8425a2f80f..304f8fe53f6 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-avro/pom.xml b/legend-engine-xts-avro/pom.xml index 184fe2ba48f..7dc5a3d1ae7 100644 --- a/legend-engine-xts-avro/pom.xml +++ b/legend-engine-xts-avro/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml index 041ca82feaf..63e7523ad6f 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-changetoken org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml index 75678cbcfb2..483ca36ccc8 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-changetoken - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-changetoken/pom.xml b/legend-engine-xts-changetoken/pom.xml index 7e31aba7d38..7287ed05c58 100644 --- a/legend-engine-xts-changetoken/pom.xml +++ b/legend-engine-xts-changetoken/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml index f3fb4c9d12e..2cc135c0023 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml index 1c840bf5aac..6f21e803029 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml index a9e03fa4936..87e3b44164a 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-daml/pom.xml b/legend-engine-xts-daml/pom.xml index 9ff6a3a1df7..4da78e2ab66 100644 --- a/legend-engine-xts-daml/pom.xml +++ b/legend-engine-xts-daml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml index 82ac1d32555..414e3aab547 100644 --- a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml +++ b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-data-push org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-data-push/pom.xml b/legend-engine-xts-data-push/pom.xml index 5643018d0f0..6682b5d31aa 100644 --- a/legend-engine-xts-data-push/pom.xml +++ b/legend-engine-xts-data-push/pom.xml @@ -3,7 +3,7 @@ legend-engine org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml index 51f9c3604ae..65e296bf47a 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml index c2df0185646..21f03fe93d2 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-data-space org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml index 7009cfe444e..3431b93813e 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml index c7dd83d2cca..eadc422a5b9 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml index 69d4c4c1b5f..8031a472838 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml index ea17b458e66..71e4ccec834 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml index 59a7613dd4f..b1654266b46 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-data-space/pom.xml b/legend-engine-xts-data-space/pom.xml index 8229fb5e8ff..d87228713b4 100644 --- a/legend-engine-xts-data-space/pom.xml +++ b/legend-engine-xts-data-space/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml index 456d1cc2c40..b76a2b94bcb 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml index 2af9714265e..c8c8eb43cd0 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-diagram org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml index 57e083ddecf..7cb852d1a3e 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml index 0860e0fd381..a21e495686d 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml index c47395b7356..c2c4a98c433 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml index 1c888511471..cb686ce3b1e 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-diagram/pom.xml b/legend-engine-xts-diagram/pom.xml index a07e9f8cc0a..ff1fb5d7337 100644 --- a/legend-engine-xts-diagram/pom.xml +++ b/legend-engine-xts-diagram/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml index 134273b6041..346e2956caf 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml index 54182e2bf8b..c1ec1bd7c3a 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml index f1154c4618e..b19b8ded975 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml index 5de2370ded0..57f945637b7 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml index c53a1621445..ed489a5470c 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml index 1215486c10d..47fe49fb330 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.30.3-SNAPSHOT + 4.31.0 legend-engine-xt-elasticsearch-protocol-utils diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml index c30e19cf8d2..adc926ad620 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/pom.xml b/legend-engine-xts-elasticsearch/pom.xml index 239aa220e65..bb2c3f91c9d 100644 --- a/legend-engine-xts-elasticsearch/pom.xml +++ b/legend-engine-xts-elasticsearch/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml index 2bb9c91570c..b8234b290ca 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-flatdata org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml index 61b63ff0b32..ef56e36c86e 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml index 242baa0efd3..d92674fa956 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml index 7b8b4cb0fc5..5c0cc6a7e3b 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml index 5c764beb36d..c77d8fcac7f 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml index 1a1dd5a2e4f..90b8c44d833 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml index eae18b2f3af..983f7f2228b 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-flatdata/pom.xml b/legend-engine-xts-flatdata/pom.xml index 1efad88f112..1a837259493 100644 --- a/legend-engine-xts-flatdata/pom.xml +++ b/legend-engine-xts-flatdata/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml index 3c4b9b397cf..82c0637e0f0 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml index d124e32547e..0f0be28185c 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml index 80638a86ec4..fe00a18c916 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-functionActivator/pom.xml b/legend-engine-xts-functionActivator/pom.xml index d97c3ce3acd..6932796a397 100644 --- a/legend-engine-xts-functionActivator/pom.xml +++ b/legend-engine-xts-functionActivator/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml index a527e670f5f..35198d97e16 100644 --- a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml +++ b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml index 2c85be6c76d..de1910d407c 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml index 79517ed8cad..0641ce362a5 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-language-pure-dsl-generation diff --git a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml index b569e5bdbe5..b88a13b45dd 100644 --- a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml +++ b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-generation org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-generation/pom.xml b/legend-engine-xts-generation/pom.xml index 332904fefd8..64e75880df1 100644 --- a/legend-engine-xts-generation/pom.xml +++ b/legend-engine-xts-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml index 65d910abb1b..54c8acbcb52 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 @@ -73,7 +73,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.30.3-SNAPSHOT + 4.31.0 org.finos.legend.pure diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml index 3b2b096fa26..799b9e2757b 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml index 16671c61e26..6c4a85ca07f 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml index 013104268cb..20e56750a8f 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml index 0f80e7c9ed8..642bdbeefb1 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml index af7cbedd4fc..cc64e1cb21d 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml index f8a6712504a..2763df8a387 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml index b2974b5c830..16d579c6529 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-graphQL/pom.xml b/legend-engine-xts-graphQL/pom.xml index a1529278701..74ac49a6b52 100644 --- a/legend-engine-xts-graphQL/pom.xml +++ b/legend-engine-xts-graphQL/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml index 79e0e331d24..1102caa1f79 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml index 4aa9c9ada1a..aed0ce9375e 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml index 78c939989b0..7e68baab2a1 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-haskell/pom.xml b/legend-engine-xts-haskell/pom.xml index 310338be31b..c9709440f45 100644 --- a/legend-engine-xts-haskell/pom.xml +++ b/legend-engine-xts-haskell/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml index 039d09da9ef..6b121cab69b 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml index 255341205a5..4d3569a91f5 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml index d71ff976b14..461fdc4701e 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml index d8b05b1839e..32e67b85631 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml index a77a0c424cd..f7804317239 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml index 13fe32ebd20..3b8c2f792df 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-hostedService/pom.xml b/legend-engine-xts-hostedService/pom.xml index d09d888e33a..1ed9918fbf4 100644 --- a/legend-engine-xts-hostedService/pom.xml +++ b/legend-engine-xts-hostedService/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml index 1c3b0a7a1b4..65be8e1be20 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml index f4255b4a2a9..31ce0ed48de 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-iceberg/pom.xml b/legend-engine-xts-iceberg/pom.xml index 8bb64007435..2d52119838c 100644 --- a/legend-engine-xts-iceberg/pom.xml +++ b/legend-engine-xts-iceberg/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml index d4bdb261bdd..1124f8453d1 100644 --- a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml +++ b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml index 71891c3f647..84ad268595b 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml index 68f7ebcc969..8fc5a4f13cf 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml index e969691777d..12682698d4d 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-java/pom.xml b/legend-engine-xts-java/pom.xml index 6745dae6ff4..f6503d56116 100644 --- a/legend-engine-xts-java/pom.xml +++ b/legend-engine-xts-java/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml index d6408f9a55d..825fd870424 100644 --- a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml +++ b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml index b4e1b423c42..0dcb550a86e 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml index b089377922b..4d7cdde8788 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml index efe3e7557d4..c5ce8edfd03 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml index ce7e9084083..6180075513c 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml index 1597c96f3d1..d9c5a67716b 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-json/pom.xml b/legend-engine-xts-json/pom.xml index f742f78dc5d..edd0dd004b6 100644 --- a/legend-engine-xts-json/pom.xml +++ b/legend-engine-xts-json/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml index f821b96137a..4e7c30c2411 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-mastery org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml index 181a4305544..bc54a77eb2e 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml index 9807dbd25e2..333b564f22a 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-mastery/pom.xml b/legend-engine-xts-mastery/pom.xml index 5ae5aad57ac..2c1819a3d26 100644 --- a/legend-engine-xts-mastery/pom.xml +++ b/legend-engine-xts-mastery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml index 01805ce9072..90239e66e86 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml index 124c43e1675..85b5883a36b 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.30.3-SNAPSHOT + 4.31.0 legend-engine-xt-nonrelationalStore-mongodb-executionPlan diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml index a57e0c592fa..61be7c3ce04 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.30.3-SNAPSHOT + 4.31.0 legend-engine-xt-nonrelationalStore-mongodb-grammar-integration diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml index 3dd12a79342..c54d9d9478f 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.30.3-SNAPSHOT + 4.31.0 legend-engine-xt-nonrelationalStore-mongodb-grammar diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml index f49c2c4e3ed..40de890bf07 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.30.3-SNAPSHOT + 4.31.0 legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml index ace71a1d405..ecf94d66ca0 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.30.3-SNAPSHOT + 4.31.0 legend-engine-xt-nonrelationalStore-mongodb-protocol diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml index 8e9f1be0a31..a509353c49c 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.30.3-SNAPSHOT + 4.31.0 legend-engine-xt-nonrelationalStore-mongodb-pure diff --git a/legend-engine-xts-mongodb/pom.xml b/legend-engine-xts-mongodb/pom.xml index 3508ca59d65..2e468b649fe 100644 --- a/legend-engine-xts-mongodb/pom.xml +++ b/legend-engine-xts-mongodb/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml index 2dddf063d0c..a0e8e2d0db9 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-morphir - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml index 4819222ccb2..669af5d36ef 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-morphir org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-morphir/pom.xml b/legend-engine-xts-morphir/pom.xml index 0e81e4950aa..7697e332a05 100644 --- a/legend-engine-xts-morphir/pom.xml +++ b/legend-engine-xts-morphir/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml index f4dd11e72e3..f30a88fe303 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.30.3-SNAPSHOT + 4.31.0 legend-engine-xt-openapi-generation diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml index f5de5af9557..2e61a5f8823 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.30.3-SNAPSHOT + 4.31.0 legend-engine-xt-openapi-pure diff --git a/legend-engine-xts-openapi/pom.xml b/legend-engine-xts-openapi/pom.xml index 0eb492356f5..9bc0595ce3b 100644 --- a/legend-engine-xts-openapi/pom.xml +++ b/legend-engine-xts-openapi/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml index 89f82f70d74..de5bb52e2b6 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml index 167bcbe532b..e73e7d67e42 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml index 5aed6dc6236..e1dd6cb44bd 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml index 8d0bc85810c..43c09ebc7f4 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml index 38ce5727ce0..f999c62241f 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml index 6f9563ef27c..3a99437269e 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml index 24bb9065af5..90c51a1dd1a 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml index 9d4a0b21eb6..c6f35fdfa65 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml index 1ec08d32c1f..9fe8325b1d9 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml index bedeca20a3b..e37ebe4cb0c 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml index 4cb580c9c24..53ce16ce809 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml index a8e51682034..fb077e1b659 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml index 48480c10910..d51bd3ab1cd 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml index 346eb264ae7..f266104d237 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml index facdde60178..06d0e54c0f6 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml index 2e9979db2e6..7c8019dcb1f 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml index 57f3c6a0aae..dbefd158c5c 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml index b3752b6992c..af3d3622b8d 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml index 14fa9728d66..155184b7817 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml index f61f482a32e..717b1e6858f 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml index 059588ae19f..4d0cc80411e 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-persistence/pom.xml b/legend-engine-xts-persistence/pom.xml index e8883a20bf3..8c5c0bd9aed 100644 --- a/legend-engine-xts-persistence/pom.xml +++ b/legend-engine-xts-persistence/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml index c4f6d26f97e..7053f1aa863 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-xt-protobuf-grammar diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml index 2110a16bdab..dcf82c5ffa6 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-xt-protobuf-protocol diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml index 39de766d2b2..8836fb8630f 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml index ab83b0d422a..ed36a20f427 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 @@ -57,7 +57,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.30.3-SNAPSHOT + 4.31.0 org.finos.legend.pure diff --git a/legend-engine-xts-protobuf/pom.xml b/legend-engine-xts-protobuf/pom.xml index 5e0d4534792..5c981d33513 100644 --- a/legend-engine-xts-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml index 094dc1f73a7..92efe9fd6cf 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml index 2157c146b75..ac05e5a33c5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml index 03771ba0421..08cfb8c1375 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml index 6754b87c866..a64306a0c83 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml index f54cc552e88..8b4bcf15faa 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml index 252a324138d..049aca39d99 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml index 7915d4de50b..bc0dde2104b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml index 615f857d65d..dd8ae7f4968 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml index 35c20b18636..3673b9e2b54 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml index 163b8e2dcc4..d6e1df78d93 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml index 439196bb96e..826834e5e93 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-bigquery org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml index fdd311f8738..1670ed3bbb5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml index 7c8b03ef5d3..71415bbf2a4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml index 926e3c8454a..872019591a0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml index 90f69ebac50..c943d688f03 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml index 5f52312dd1b..0bde48db6f1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml index 5847a410ee6..ada21c3b784 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml index c0e99076ca3..73e5f819801 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml index 61e3e8bf62c..9cd084a9336 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml index 725030caf80..bfe2ad4b230 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml index 5c4aa68782a..d79dc276275 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml index fa7d5dcc7eb..eeb4072c11e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml index 1faec3ee12d..aa02d7f63f7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-dbExtension org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml index 9a48aef5b3c..a64956559b1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-hive - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml index 617999ebc71..3b4ab459426 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml index 3f6402b57aa..a5a3abe60f8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml index 936d3fa3d2d..d44d015c650 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-memsql org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml index 955171c15c9..b4987042874 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.30.3-SNAPSHOT + 4.31.0 legend-engine-xt-relationalStore-memsql-execution diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml index e3127688fc3..1e20a906fb7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.30.3-SNAPSHOT + 4.31.0 legend-engine-xt-relationalStore-memsql-pure diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml index 90a45a364dc..4af8731e2e2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml index 49331903c1c..f41acae816d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml index 8ab9b80a9cd..3f51a79900d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml index 824e630534e..f084f133bbb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml index de52baee216..f81fc96304a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml index 1923479aea9..08b2d5f4d0b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml index 84434a2bf2f..9d66c422455 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml index 7e349eee249..14367dec879 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-presto - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml index 27a8e313673..ec3e1e9ee88 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml index 31692252ee2..8735fcaed2f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml index 49584c70168..83ee2d90022 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml index c3ef0746ce7..1eff11450db 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml index 1fad81de9c6..6102a8fec27 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml index 269d1b9c873..75bc13ed080 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml index d5ef8686cb1..01a2352a7c0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml index b7aa3c39ef1..3583cdee80f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml index 2793ea936d1..a1b9e104e6f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml index ecab579a53e..0b0ecfbf824 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml index ffca5ba0373..456a794c3d9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml index d91c328de8b..516d776c932 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml index 1316c73083a..2cf3d4b4330 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml index 219444724ed..36035ffd7eb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml index c3ab6141c11..233b321b8d2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml index 312cb34ace6..4578157fb8a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml index b983a0e7da4..82edf221d8c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml index 07e4ce0c61d..e7115ce160d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml index b7221efe8da..911a035f2dd 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml index c7616fd1bcf..2833734bd8e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml index c8a0de9ca36..b5df03da386 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml index feee5f72129..b8d9a6461ac 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sparksql - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml index 70d964849ee..adb971db2c2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml index 81ef368c6bf..f6bf5400f35 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml index 9b44b9c3aa6..68ca96be401 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-xt-relationalStore-sqlserver-execution-tests diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml index 8acc343995a..511806fb38a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml index 1bf927ec074..e39e6ff7603 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml index 3e4435fab94..3e7bdceddef 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml index 4e77024584d..dbc1c15c17d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybase - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml index 796630c7e2b..cc5313a68b4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml index f24e6422ef2..9e02b4bb24c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybaseiq - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml index 87414bc2e42..554f90a0871 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml index 9360ce5bb39..ed4cf9c7247 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-xt-relationalStore-test-reports diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml index 6d25c757b49..4ad51078dad 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-xt-relationalStore-test-server diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml index 5eb93cb81c1..851c5c487a5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml index f689bec926f..f2737f90932 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml index 3e779e2db94..cbac963f7c9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml index 42a593a4b56..75220374346 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml index ed855c1d657..0a8500c9fb0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml index e2232e36f68..20bd4f8dd8f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml index f87fe778684..0feb5dfb586 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml index e7bdb518fba..ca1fcdf2cdc 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml index ced84a76d07..62c9cd2fe4b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml index ac70578e248..08517fc2f9b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication-default diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml index cc0a9324f3c..bcdf68829f2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml index 007f8d7f8f9..5ec3678c373 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 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 45dd9ec99d3..70a2000c403 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 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 2c7005f303f..0132d37d4cf 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml index 520ede2a524..fcd7797d426 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml index 4d9d402b510..58b6d514a71 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml index fa85c60aae4..7724d4724cf 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml index b69a1e35d3c..e3531b423e2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml index d4e55a6aae1..aa63fafcc62 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml index 9c37bad0792..ed51d8b641c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml index 671cdb0e5e9..740abd083fb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml index 0d6ad1b5b1d..a78943d7ef7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml index 39ea484d72f..6a657c181ce 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/pom.xml b/legend-engine-xts-relationalStore/pom.xml index 1d34bdeef56..3a00a290b17 100644 --- a/legend-engine-xts-relationalStore/pom.xml +++ b/legend-engine-xts-relationalStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml index 7b302ced7ce..0212feaacf6 100644 --- a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalai - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-relationalai/pom.xml b/legend-engine-xts-relationalai/pom.xml index 3b5cf5128cb..a9ab021a7f3 100644 --- a/legend-engine-xts-relationalai/pom.xml +++ b/legend-engine-xts-relationalai/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml index c5a33b2c66d..2a05705844f 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml index 5f609af7e15..4963a8fdc59 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-rosetta/pom.xml b/legend-engine-xts-rosetta/pom.xml index 59e69ab3eb2..2a435c2b96a 100644 --- a/legend-engine-xts-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml index 515a4633c0a..fbe40a3cc54 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-language-pure-dsl-service-execution diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml index ce8ff9fab38..0b02923483e 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml index cb7ac8f717d..bc124765905 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml index a268f0dc547..c6f5517771f 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-language-pure-dsl-service diff --git a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml index 686ebb172d4..55f8fae29b9 100644 --- a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml +++ b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml index 4e607ec1909..083bfa101fc 100644 --- a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-services-model-api diff --git a/legend-engine-xts-service/legend-engine-services-model/pom.xml b/legend-engine-xts-service/legend-engine-services-model/pom.xml index c86604f6bae..9092dfba2bd 100644 --- a/legend-engine-xts-service/legend-engine-services-model/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 legend-engine-services-model diff --git a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml index c699c0a17d2..961e6bb66c0 100644 --- a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-service/pom.xml b/legend-engine-xts-service/pom.xml index db6e78f2be3..29ba0dab451 100644 --- a/legend-engine-xts-service/pom.xml +++ b/legend-engine-xts-service/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml index 3276fb94862..c37da7c957c 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml index dccf0583568..4f50e7986d5 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml index f1fbb73c74e..e1816d1f332 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml index 6111fe9b625..22a2953a414 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml index b9d5291ba2b..6d15d00a5b4 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-serviceStore/pom.xml b/legend-engine-xts-serviceStore/pom.xml index 34499847381..7f07d8d09f9 100644 --- a/legend-engine-xts-serviceStore/pom.xml +++ b/legend-engine-xts-serviceStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml index 6a8e81612c3..8604b938934 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml index b8d03d2d61e..e7db7b279b9 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-snowflakeApp org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml index 541a62bf835..43fd69cb226 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml index a6f0fa7bdbb..69381822f15 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml index f99e4583b8b..0aec66719f9 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/pom.xml b/legend-engine-xts-snowflakeApp/pom.xml index 0c085498dcf..782ddf33352 100644 --- a/legend-engine-xts-snowflakeApp/pom.xml +++ b/legend-engine-xts-snowflakeApp/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml index 5beacacb8f2..4ce70a80930 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml index 8abde6bb126..7e42b5a0489 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml index 4c758a1408c..a6ea50af279 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml index 968d8d1253d..f22d9a32680 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-sql org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml index e9bebe9d248..6d154c56e6b 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml index 4849c69df26..2b543c99164 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml index af4fbb211de..8f19d17488c 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml index 18db6143fc2..f180c87d249 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-sql/pom.xml b/legend-engine-xts-sql/pom.xml index 44c49166147..2e6d89f9121 100644 --- a/legend-engine-xts-sql/pom.xml +++ b/legend-engine-xts-sql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml index bae7fab17da..9053e3c8f4e 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-text org.finos.legend.engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml index 7e8247c1120..916229458f0 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml index 722df9430b7..5bb50037a0c 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml index 63ad090a887..f15c2cfb64e 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-text/pom.xml b/legend-engine-xts-text/pom.xml index 8a6d5ba0806..15c5582e304 100644 --- a/legend-engine-xts-text/pom.xml +++ b/legend-engine-xts-text/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml index 7dd29f6af5b..e2c1d9e2397 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml index 083caa700ab..097258c0cc2 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml index 0d6f5492533..5aaded09393 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml index 9e1dfd4dae2..fbbef0dc51f 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml index b9cd1dcf840..195bb38572b 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/legend-engine-xts-xml/pom.xml b/legend-engine-xts-xml/pom.xml index 6b6bcc5775a..1d56acff02b 100644 --- a/legend-engine-xts-xml/pom.xml +++ b/legend-engine-xts-xml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 4.0.0 diff --git a/pom.xml b/pom.xml index bcf45520552..621b3fa8ff5 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ Legend Engine org.finos.legend.engine legend-engine - 4.30.3-SNAPSHOT + 4.31.0 pom @@ -228,7 +228,7 @@ scm:git:https://github.com/finos/legend-engine - HEAD + legend-engine-4.31.0 From c3d7cfadb61821d08d23a9c6134307dab839b4c3 Mon Sep 17 00:00:00 2001 From: FINOS Administrator <37706051+finos-admin@users.noreply.github.com> Date: Mon, 16 Oct 2023 16:00:42 +0000 Subject: [PATCH 19/80] [maven-release-plugin] prepare for next development iteration --- legend-engine-application-query/pom.xml | 2 +- legend-engine-config/legend-engine-configuration/pom.xml | 2 +- .../legend-engine-connection-integration-tests/pom.xml | 2 +- .../legend-engine-extensions-collection-execution/pom.xml | 2 +- .../legend-engine-extensions-collection-generation/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-server-integration-tests/pom.xml | 2 +- .../legend-engine-server-support-core/pom.xml | 2 +- legend-engine-config/legend-engine-server/pom.xml | 2 +- legend-engine-config/pom.xml | 2 +- .../legend-engine-executionPlan-dependencies/pom.xml | 2 +- .../legend-engine-executionPlan-execution-api/pom.xml | 2 +- .../legend-engine-executionPlan-execution-authorizer/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-executionPlan-execution/pom.xml | 2 +- .../legend-engine-external-shared-format-runtime/pom.xml | 2 +- .../legend-engine-core-executionPlan-execution/pom.xml | 2 +- .../legend-engine-executionPlan-generation/pom.xml | 2 +- .../legend-engine-core-executionPlan-generation/pom.xml | 2 +- .../legend-engine-external-shared-format-model/pom.xml | 2 +- .../legend-engine-language-pure-compiler-api/pom.xml | 2 +- .../legend-engine-language-pure-compiler/pom.xml | 2 +- .../legend-engine-language-pure-grammar-api/pom.xml | 2 +- .../legend-engine-language-pure-grammar/pom.xml | 2 +- .../legend-engine-language-pure-modelManager-sdlc/pom.xml | 2 +- .../legend-engine-language-pure-modelManager/pom.xml | 2 +- .../legend-engine-protocol-api/pom.xml | 2 +- .../legend-engine-protocol-generation-pure/pom.xml | 2 +- .../legend-engine-protocol-generation/pom.xml | 2 +- .../legend-engine-protocol-pure/pom.xml | 2 +- .../legend-engine-protocol/pom.xml | 2 +- legend-engine-core/legend-engine-core-language-pure/pom.xml | 2 +- .../legend-engine-query-pure/pom.xml | 2 +- legend-engine-core/legend-engine-core-query-pure/pom.xml | 2 +- .../legend-engine-shared-core/pom.xml | 2 +- .../legend-engine-shared-javaCompiler/pom.xml | 2 +- legend-engine-core/legend-engine-core-shared/pom.xml | 2 +- .../legend-engine-test-data-generation/pom.xml | 2 +- .../legend-engine-test-runner-mapping/pom.xml | 2 +- .../legend-engine-test-runner-shared/pom.xml | 2 +- .../legend-engine-test-server-shared/pom.xml | 2 +- .../legend-engine-core-test/legend-engine-testable/pom.xml | 2 +- legend-engine-core/legend-engine-core-test/pom.xml | 2 +- legend-engine-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-functions/pom.xml | 2 +- .../legend-engine-pure-code-core-extension/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-code/pom.xml | 2 +- .../legend-engine-pure-ide-light-metadata-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-ide/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-diagram-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-graph-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-mapping-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-path-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-json-java/pom.xml | 2 +- .../legend-engine-pure-platform-java/pom.xml | 2 +- .../legend-engine-pure-platform-store-relational-java/pom.xml | 2 +- .../legend-engine-pure-platform-modular-generation/pom.xml | 2 +- .../legend-engine-pure-runtime-compiler/pom.xml | 2 +- .../legend-engine-pure-runtime-execution/pom.xml | 2 +- .../legend-engine-pure-runtime-extensions/pom.xml | 2 +- .../legend-engine-xt-java-runtime-compiler/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-runtime/pom.xml | 2 +- legend-engine-pure/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-api/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-binding/pom.xml | 2 +- .../legend-engine-xt-analytics-class-api/pom.xml | 2 +- .../legend-engine-xt-analytics-class-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-class/pom.xml | 2 +- .../legend-engine-xt-analytics-function-api/pom.xml | 2 +- .../legend-engine-xt-analytics-function-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-function/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-api/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-lineage/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-api/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-protocol/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-mapping/pom.xml | 2 +- .../legend-engine-xt-analytics-search-generation/pom.xml | 2 +- .../legend-engine-xt-analytics-search-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-search/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement-api/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement/pom.xml | 2 +- .../legend-engine-xts-analytics-store/pom.xml | 2 +- legend-engine-xts-analytics/pom.xml | 2 +- legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml | 2 +- .../legend-engine-xt-arrow-runtime/pom.xml | 2 +- legend-engine-xts-arrow/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-protocol/pom.xml | 2 +- .../legend-engine-xt-authentication-pure/pom.xml | 2 +- legend-engine-xts-authentication/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro/pom.xml | 2 +- legend-engine-xts-avro/pom.xml | 2 +- .../legend-engine-xt-changetoken-compiler/pom.xml | 2 +- .../legend-engine-xt-changetoken-pure/pom.xml | 2 +- legend-engine-xts-changetoken/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml | 2 +- legend-engine-xts-daml/pom.xml | 2 +- .../legend-engine-xt-data-push-server/pom.xml | 2 +- legend-engine-xts-data-push/pom.xml | 2 +- .../legend-engine-xt-data-space-api/pom.xml | 2 +- .../legend-engine-xt-data-space-compiler/pom.xml | 2 +- .../legend-engine-xt-data-space-generation/pom.xml | 2 +- .../legend-engine-xt-data-space-grammar/pom.xml | 2 +- .../legend-engine-xt-data-space-protocol/pom.xml | 2 +- .../legend-engine-xt-data-space-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-data-space-pure/pom.xml | 2 +- legend-engine-xts-data-space/pom.xml | 2 +- .../legend-engine-xt-diagram-api/pom.xml | 2 +- .../legend-engine-xt-diagram-compiler/pom.xml | 2 +- .../legend-engine-xt-diagram-grammar/pom.xml | 2 +- .../legend-engine-xt-diagram-protocol/pom.xml | 2 +- .../legend-engine-xt-diagram-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-diagram-pure/pom.xml | 2 +- legend-engine-xts-diagram/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-grammar/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-protocol/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-executionPlan-test/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-protocol-utils/pom.xml | 2 +- .../pom.xml | 2 +- legend-engine-xts-elasticsearch/pom.xml | 2 +- .../legend-engine-xt-flatdata-driver-bloomberg/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-flatdata-model/pom.xml | 2 +- .../legend-engine-xt-flatdata-pure/pom.xml | 2 +- .../legend-engine-xt-flatdata-runtime/pom.xml | 2 +- .../legend-engine-xt-flatdata-shared/pom.xml | 2 +- legend-engine-xts-flatdata/pom.xml | 2 +- .../legend-engine-xt-functionActivator-api/pom.xml | 2 +- .../legend-engine-xt-functionActivator-protocol/pom.xml | 2 +- .../legend-engine-xt-functionActivator-pure/pom.xml | 2 +- legend-engine-xts-functionActivator/pom.xml | 2 +- .../legend-engine-external-shared/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation/pom.xml | 2 +- .../legend-engine-xt-artifact-generation-api/pom.xml | 2 +- legend-engine-xts-generation/pom.xml | 2 +- .../legend-engine-xt-graphQL-compiler/pom.xml | 4 ++-- .../legend-engine-xt-graphQL-grammar-integration/pom.xml | 2 +- .../legend-engine-xt-graphQL-grammar/pom.xml | 2 +- .../legend-engine-xt-graphQL-protocol/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure/pom.xml | 2 +- .../legend-engine-xt-graphQL-query/pom.xml | 2 +- .../legend-engine-xt-graphQL-relational-extension/pom.xml | 2 +- legend-engine-xts-graphQL/pom.xml | 2 +- .../legend-engine-xt-haskell-grammar/pom.xml | 2 +- .../legend-engine-xt-haskell-protocol/pom.xml | 2 +- .../legend-engine-xt-haskell-pure/pom.xml | 2 +- legend-engine-xts-haskell/pom.xml | 2 +- .../legend-engine-xt-hostedService-api/pom.xml | 2 +- .../legend-engine-xt-hostedService-compiler/pom.xml | 2 +- .../legend-engine-xt-hostedService-generation/pom.xml | 2 +- .../legend-engine-xt-hostedService-grammar/pom.xml | 2 +- .../legend-engine-xt-hostedService-protocol/pom.xml | 2 +- .../legend-engine-xt-hostedService-pure/pom.xml | 2 +- legend-engine-xts-hostedService/pom.xml | 2 +- .../legend-engine-xt-iceberg-pure/pom.xml | 2 +- .../legend-engine-xt-iceberg-test-support/pom.xml | 2 +- legend-engine-xts-iceberg/pom.xml | 2 +- .../legend-engine-external-language-java/pom.xml | 2 +- .../legend-engine-xt-javaGeneration-featureBased-pure/pom.xml | 2 +- .../legend-engine-xt-javaGeneration-pure/pom.xml | 2 +- .../legend-engine-xt-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-java/pom.xml | 2 +- .../legend-engine-external-format-jsonSchema/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-pure/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-test/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-model/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml | 2 +- legend-engine-xts-json/pom.xml | 2 +- .../legend-engine-xt-mastery-grammar/pom.xml | 2 +- .../legend-engine-xt-mastery-protocol/pom.xml | 2 +- .../legend-engine-xt-mastery-pure/pom.xml | 2 +- legend-engine-xts-mastery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml | 2 +- legend-engine-xts-mongodb/pom.xml | 2 +- .../legend-engine-xt-morphir-pure/pom.xml | 2 +- legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml | 2 +- legend-engine-xts-morphir/pom.xml | 2 +- .../legend-engine-xt-openapi-generation/pom.xml | 2 +- .../legend-engine-xt-openapi-pure/pom.xml | 2 +- legend-engine-xts-openapi/pom.xml | 2 +- .../legend-engine-xt-persistence-api/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-component/pom.xml | 2 +- .../legend-engine-xt-persistence-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-test-runner/pom.xml | 2 +- legend-engine-xts-persistence/pom.xml | 2 +- .../legend-engine-xt-protobuf-grammar/pom.xml | 2 +- .../legend-engine-xt-protobuf-protocol/pom.xml | 2 +- .../legend-engine-xt-protobuf-pure/pom.xml | 2 +- legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml | 4 ++-- legend-engine-xts-protobuf/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-analytics/pom.xml | 2 +- .../legend-engine-xt-relationalStore-connection/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-reports/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-server/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino/pom.xml | 2 +- .../legend-engine-xt-relationalStore-dbExtension/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-executionPlan/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-api/pom.xml | 2 +- .../legend-engine-xt-relationalStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-generation/pom.xml | 2 +- legend-engine-xts-relationalStore/pom.xml | 2 +- .../legend-engine-xt-relationalai-pure/pom.xml | 2 +- legend-engine-xts-relationalai/pom.xml | 2 +- .../legend-engine-xt-rosetta-pure/pom.xml | 2 +- legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml | 2 +- legend-engine-xts-rosetta/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-execution/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service/pom.xml | 2 +- .../legend-engine-service-post-validation-runner/pom.xml | 2 +- .../legend-engine-services-model-api/pom.xml | 2 +- .../legend-engine-services-model/pom.xml | 2 +- .../legend-engine-test-runner-service/pom.xml | 2 +- legend-engine-xts-service/pom.xml | 2 +- .../legend-engine-xt-serviceStore-executionPlan/pom.xml | 2 +- .../legend-engine-xt-serviceStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-serviceStore-protocol/pom.xml | 2 +- .../legend-engine-xt-serviceStore-pure/pom.xml | 2 +- legend-engine-xts-serviceStore/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-api/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-compiler/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-grammar/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-protocol/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-pure/pom.xml | 2 +- legend-engine-xts-snowflakeApp/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml | 2 +- .../legend-engine-xt-sql-grammar-integration/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml | 2 +- .../legend-engine-xt-sql-postgres-server/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml | 2 +- .../legend-engine-xt-sql-pure-metamodel/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml | 2 +- legend-engine-xts-sql/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml | 2 +- .../legend-engine-xt-text-pure-metamodel/pom.xml | 2 +- legend-engine-xts-text/pom.xml | 2 +- .../legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml | 2 +- legend-engine-xts-xml/pom.xml | 2 +- pom.xml | 4 ++-- 375 files changed, 378 insertions(+), 378 deletions(-) diff --git a/legend-engine-application-query/pom.xml b/legend-engine-application-query/pom.xml index 5cf4dda424c..1b5501d9573 100644 --- a/legend-engine-application-query/pom.xml +++ b/legend-engine-application-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-application-query diff --git a/legend-engine-config/legend-engine-configuration/pom.xml b/legend-engine-config/legend-engine-configuration/pom.xml index 80e54374797..e1f0918d120 100644 --- a/legend-engine-config/legend-engine-configuration/pom.xml +++ b/legend-engine-config/legend-engine-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-configuration diff --git a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml index 91d964e309a..4637bd8602e 100644 --- a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-connection-integration-tests diff --git a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml index d5ecd8ba80a..216d1377620 100644 --- a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml index fbbe01c3064..85b6ada4a7d 100644 --- a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml index 29b534859c9..c456e094c46 100644 --- a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml +++ b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-server-integration-tests/pom.xml b/legend-engine-config/legend-engine-server-integration-tests/pom.xml index 50bfd564e67..8e296c28723 100644 --- a/legend-engine-config/legend-engine-server-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-server-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-server-integration-tests diff --git a/legend-engine-config/legend-engine-server-support-core/pom.xml b/legend-engine-config/legend-engine-server-support-core/pom.xml index 97207b1e872..91802452882 100644 --- a/legend-engine-config/legend-engine-server-support-core/pom.xml +++ b/legend-engine-config/legend-engine-server-support-core/pom.xml @@ -3,7 +3,7 @@ legend-engine-config org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index 7f3d3c1bb67..6a3c2af59ac 100644 --- a/legend-engine-config/legend-engine-server/pom.xml +++ b/legend-engine-config/legend-engine-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-server diff --git a/legend-engine-config/pom.xml b/legend-engine-config/pom.xml index 9e9b03084ae..bbb9cb9c2a8 100644 --- a/legend-engine-config/pom.xml +++ b/legend-engine-config/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml index 5085c5b1f08..7d3007710fc 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-executionPlan-dependencies diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml index 0aa86102a14..bfc7d8d6ca1 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-executionPlan-execution-api diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml index 21d1169b085..f4d6a34578a 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-core-executionPlan-execution org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml index e3ac9cfe63b..d5821e8a718 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-executionPlan-execution-store-inMemory diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml index 6f41789fab0..3974c2b2822 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-executionPlan-execution diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml index df114cd7556..edadc86aafc 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml index 89675b65e54..3e2c9b3d5de 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml index b85b77086e4..2d3665e0b36 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-generation - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml index 830c96a5cd9..d1257764856 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml index d44800b5de1..f4870d70cf5 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml index f7c8b6e21c1..f0f130171be 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-language-pure-compiler-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml index d51b91f6f44..cc8237a789d 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-language-pure-compiler diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml index 1211c8f7b2f..f033c25217b 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-language-pure-grammar-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml index 53cb583bdc7..f71cbe34f30 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-language-pure-grammar diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml index b8779a170fa..b37d7df0f23 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-language-pure-modelManager-sdlc diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml index 78b8f75e18d..5b33e58f991 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-language-pure-modelManager diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml index 837c557fcff..f147f42f96d 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-protocol-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml index 2bc031c37e7..8517059d504 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-protocol-generation-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml index b317243a59c..aafc776e195 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-protocol-generation diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml index 5248e6b685a..4d7984a4ece 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-protocol-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml index 5d2e4ecdf59..1140a988496 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-protocol diff --git a/legend-engine-core/legend-engine-core-language-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/pom.xml index 54d4f0b6feb..cb1d7de5293 100644 --- a/legend-engine-core/legend-engine-core-language-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml index 29c94967c2a..55bfffeaeef 100644 --- a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-query-pure - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-query-pure diff --git a/legend-engine-core/legend-engine-core-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/pom.xml index 26717b5b672..14ff8bdc5b0 100644 --- a/legend-engine-core/legend-engine-core-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml index 3a8ee5cc5ed..b44de677970 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-shared-core diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml index fccdb44703a..84a74c4b0dc 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-shared-javaCompiler diff --git a/legend-engine-core/legend-engine-core-shared/pom.xml b/legend-engine-core/legend-engine-core-shared/pom.xml index 094d785533c..6831091614b 100644 --- a/legend-engine-core/legend-engine-core-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml index 142405b1406..a8d1afea83b 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-core-test - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml index 6a8b2bc54be..62e73a174e5 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml index 2e2238d8001..1a0ee7f594b 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-test-runner-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml index c42f28308f3..75d382ea280 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-test-server-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml index 3ea4d0c94e8..e662814e997 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-testable diff --git a/legend-engine-core/legend-engine-core-test/pom.xml b/legend-engine-core/legend-engine-core-test/pom.xml index e3380179d4b..af941fe122d 100644 --- a/legend-engine-core/legend-engine-core-test/pom.xml +++ b/legend-engine-core/legend-engine-core-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/pom.xml b/legend-engine-core/pom.xml index b7502ae6082..dcb7453bd64 100644 --- a/legend-engine-core/pom.xml +++ b/legend-engine-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml index a8111914072..7c35a7caf44 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.31.0 + 4.31.1-SNAPSHOT legend-engine-pure-code-compiled-core diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml index c7d8e21fe99..5918920e868 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.31.0 + 4.31.1-SNAPSHOT legend-engine-pure-code-compiled-functions diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml index afa17bd7eac..73361dea3f1 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.31.0 + 4.31.1-SNAPSHOT legend-engine-pure-code-core-extension diff --git a/legend-engine-pure/legend-engine-pure-code/pom.xml b/legend-engine-pure/legend-engine-pure-code/pom.xml index 8c428973328..428750e1245 100644 --- a/legend-engine-pure/legend-engine-pure-code/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml index b285f9561ed..40c7357d619 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml index 83a51345f97..912e66c9ebc 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml index 4afec56e31f..691809bc13f 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/pom.xml b/legend-engine-pure/legend-engine-pure-ide/pom.xml index 17bf46da225..0c4c7f5e6c0 100644 --- a/legend-engine-pure/legend-engine-pure-ide/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml index 88090c789a6..f3d4f2d0027 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.31.0 + 4.31.1-SNAPSHOT legend-engine-pure-platform-dsl-diagram-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml index 88d03ef4add..e101186ad2a 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.31.0 + 4.31.1-SNAPSHOT legend-engine-pure-platform-dsl-graph-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml index 01041e94923..72a720c8ef4 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.31.0 + 4.31.1-SNAPSHOT legend-engine-pure-platform-dsl-mapping-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml index d438d5e773d..6cd7fba5059 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.31.0 + 4.31.1-SNAPSHOT legend-engine-pure-platform-dsl-path-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml index 0370af88c7e..9ca609aec7c 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.31.0 + 4.31.1-SNAPSHOT legend-engine-pure-platform-functions-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml index e51bc66606f..8febb4cdf03 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.31.0 + 4.31.1-SNAPSHOT legend-engine-pure-platform-functions-json-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml index d5dc365ee3b..db6c216bc8f 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.31.0 + 4.31.1-SNAPSHOT legend-engine-pure-platform-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml index c9fae206b58..c68ddb82372 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.31.0 + 4.31.1-SNAPSHOT legend-engine-pure-platform-store-relational-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml index adeb60e558d..48a4caa9c31 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml index 6956ae9dae6..5a42d68b628 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml index 8f1d631df78..b0df0896b36 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml index 377ca4db7f9..b505fa514a5 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml index 809cd67d83f..eab70caf3cc 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.31.0 + 4.31.1-SNAPSHOT legend-engine-xt-java-runtime-compiler diff --git a/legend-engine-pure/legend-engine-pure-runtime/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/pom.xml index f57ce3d70bd..fd7ee851c61 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/pom.xml b/legend-engine-pure/pom.xml index ccb46408138..f84fbac75a6 100644 --- a/legend-engine-pure/pom.xml +++ b/legend-engine-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml index ca5c542e97e..a5d04ed96ac 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml index 079be1b6500..c8d36887d91 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml index 76366aaec36..6356a5566b2 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml index 3f4f7b394a2..a1144c69ab5 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml index a9a1016e070..132ce5bcc34 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml index 8a0d902dfc5..00ea1e6137d 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml index 989f926f374..6bbbdd54374 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml index 4cdc12677f3..c7d10e7ad86 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml index 16d14955d57..c426a62af6a 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml index c9d5488ad6f..74796d196bc 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml index 39cfe3c18c6..5046f000249 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml index 860f5ade88d..348def6cfc0 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml index bade02984b7..f5382f8d519 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 Legend Engine - XT - Analytics - Mapping - API diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml index 4512c0a1265..5254aaaf0f3 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-mapping - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 Legend Engine - XT - Analytics - Mapping - Protocol diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml index fa2e6986108..3ab440b5c48 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml index bc31292fe62..bd22dd792f9 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml index 160321a0341..7ae2253a4d5 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-search - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml index 7f7c9ad5e93..b4dae52b129 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-search org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml index fea6802574b..565b2d54662 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml index 31e0903e6ae..38f95fd9463 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-xt-analytics-store-entitlement-api diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml index eca9c38baa7..896db2b9f6a 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml index d116c7d1ca0..cf129f070a7 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/pom.xml b/legend-engine-xts-analytics/pom.xml index 788ca5e6ca8..081666c4a5c 100644 --- a/legend-engine-xts-analytics/pom.xml +++ b/legend-engine-xts-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml index 48af03c463a..a2b412ed3c4 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml index 3d70a07f358..7c435680d58 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-arrow/pom.xml b/legend-engine-xts-arrow/pom.xml index 224a3ebff3a..c9b3e502a86 100644 --- a/legend-engine-xts-arrow/pom.xml +++ b/legend-engine-xts-arrow/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT legend-engine-xts-arrow diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml index 90904246ac8..d811cbf224a 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml index fa01e918643..89e689aadbe 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml index 5d1b47a0c53..1c2e59f514f 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml index f4b6d7e7abb..12b223a2449 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml index 57870ec7c73..ed311af4f6e 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml index a626c087fb0..ac041ae119c 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml index 40ca63dd8b4..4329daa182b 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/pom.xml b/legend-engine-xts-authentication/pom.xml index 14f8f34e416..b4d0973ffc9 100644 --- a/legend-engine-xts-authentication/pom.xml +++ b/legend-engine-xts-authentication/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml index c96643c1ea6..bb06877dcf1 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml index 304f8fe53f6..3dad133888f 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-avro/pom.xml b/legend-engine-xts-avro/pom.xml index 7dc5a3d1ae7..40ee1013d94 100644 --- a/legend-engine-xts-avro/pom.xml +++ b/legend-engine-xts-avro/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml index 63e7523ad6f..f85e25bf3b4 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-changetoken org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml index 483ca36ccc8..626d0fa7ddf 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-changetoken - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-changetoken/pom.xml b/legend-engine-xts-changetoken/pom.xml index 7287ed05c58..9344f055b3e 100644 --- a/legend-engine-xts-changetoken/pom.xml +++ b/legend-engine-xts-changetoken/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml index 2cc135c0023..eebdad8c10b 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml index 6f21e803029..fcd3ab34528 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml index 87e3b44164a..3bed27ca5b3 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/pom.xml b/legend-engine-xts-daml/pom.xml index 4da78e2ab66..5b5fb51cd1b 100644 --- a/legend-engine-xts-daml/pom.xml +++ b/legend-engine-xts-daml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml index 414e3aab547..af7ec154e04 100644 --- a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml +++ b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-data-push org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-push/pom.xml b/legend-engine-xts-data-push/pom.xml index 6682b5d31aa..8b26e478056 100644 --- a/legend-engine-xts-data-push/pom.xml +++ b/legend-engine-xts-data-push/pom.xml @@ -3,7 +3,7 @@ legend-engine org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml index 65e296bf47a..6a8c3b4c416 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml index 21f03fe93d2..024e91ab654 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-data-space org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml index 3431b93813e..53787d07178 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml index eadc422a5b9..c2913afb469 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml index 8031a472838..784e5aabe74 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml index 71e4ccec834..ae29325834d 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml index b1654266b46..c01524ba414 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/pom.xml b/legend-engine-xts-data-space/pom.xml index d87228713b4..4609d01bc6a 100644 --- a/legend-engine-xts-data-space/pom.xml +++ b/legend-engine-xts-data-space/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml index b76a2b94bcb..9ff85a24a7a 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml index c8c8eb43cd0..c2c955a6e52 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-diagram org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml index 7cb852d1a3e..63f314683c3 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml index a21e495686d..553e1b3a34b 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml index c2c4a98c433..87c13195c2b 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml index cb686ce3b1e..8338e110667 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/pom.xml b/legend-engine-xts-diagram/pom.xml index ff1fb5d7337..ebe261d28fb 100644 --- a/legend-engine-xts-diagram/pom.xml +++ b/legend-engine-xts-diagram/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml index 346e2956caf..17d159cb8a9 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml index c1ec1bd7c3a..d08ef57bd2b 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml index b19b8ded975..f20d77daac4 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml index 57f945637b7..95e23417732 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml index ed489a5470c..17baab3f0ff 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml index 47fe49fb330..d70bc343c2f 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.31.0 + 4.31.1-SNAPSHOT legend-engine-xt-elasticsearch-protocol-utils diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml index adc926ad620..784cb734310 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/pom.xml b/legend-engine-xts-elasticsearch/pom.xml index bb2c3f91c9d..179b8b3a816 100644 --- a/legend-engine-xts-elasticsearch/pom.xml +++ b/legend-engine-xts-elasticsearch/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml index b8234b290ca..264e4ae01f4 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-flatdata org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml index ef56e36c86e..cbded859cf1 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml index d92674fa956..3b781ed407f 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml index 5c0cc6a7e3b..e1ba1544f43 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml index c77d8fcac7f..14e4fac4e54 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml index 90b8c44d833..7cc569dda8e 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml index 983f7f2228b..b5501feb952 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/pom.xml b/legend-engine-xts-flatdata/pom.xml index 1a837259493..f58835e7187 100644 --- a/legend-engine-xts-flatdata/pom.xml +++ b/legend-engine-xts-flatdata/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml index 82c0637e0f0..861bd4ff8fd 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml index 0f0be28185c..c042e549f45 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml index fe00a18c916..4e40d912b09 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/pom.xml b/legend-engine-xts-functionActivator/pom.xml index 6932796a397..8eeff53cf8d 100644 --- a/legend-engine-xts-functionActivator/pom.xml +++ b/legend-engine-xts-functionActivator/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml index 35198d97e16..daef6b69466 100644 --- a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml +++ b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml index de1910d407c..a1f6cfe6dac 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml index 0641ce362a5..5ead294f099 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-language-pure-dsl-generation diff --git a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml index b88a13b45dd..f229c9f3717 100644 --- a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml +++ b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-generation org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/pom.xml b/legend-engine-xts-generation/pom.xml index 64e75880df1..766e8ef9802 100644 --- a/legend-engine-xts-generation/pom.xml +++ b/legend-engine-xts-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml index 54c8acbcb52..4e12e66e7b8 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 @@ -73,7 +73,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.31.0 + 4.31.1-SNAPSHOT org.finos.legend.pure diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml index 799b9e2757b..c471fc7d8e8 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml index 6c4a85ca07f..9d69c4b6448 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml index 20e56750a8f..500d297fb6e 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml index 642bdbeefb1..e1b3a086eac 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml index cc64e1cb21d..89fbe0fb449 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml index 2763df8a387..c13abafe937 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml index 16d579c6529..7d80c069636 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/pom.xml b/legend-engine-xts-graphQL/pom.xml index 74ac49a6b52..0d4fb094091 100644 --- a/legend-engine-xts-graphQL/pom.xml +++ b/legend-engine-xts-graphQL/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml index 1102caa1f79..c93a8ba8d87 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml index aed0ce9375e..540ec11ee18 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml index 7e68baab2a1..5f324d1e60e 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/pom.xml b/legend-engine-xts-haskell/pom.xml index c9709440f45..4a024da2e8e 100644 --- a/legend-engine-xts-haskell/pom.xml +++ b/legend-engine-xts-haskell/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml index 6b121cab69b..f31be8e6005 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml index 4d3569a91f5..25aae85f410 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml index 461fdc4701e..dcbdbab8954 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml index 32e67b85631..db64a44a26a 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml index f7804317239..ad9f95184a2 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml index 3b8c2f792df..fda070cffcf 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/pom.xml b/legend-engine-xts-hostedService/pom.xml index 1ed9918fbf4..4db6a24b2e0 100644 --- a/legend-engine-xts-hostedService/pom.xml +++ b/legend-engine-xts-hostedService/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml index 65be8e1be20..77b5f59c709 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml index 31ce0ed48de..94f92a1e677 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-iceberg/pom.xml b/legend-engine-xts-iceberg/pom.xml index 2d52119838c..0ecafda67b0 100644 --- a/legend-engine-xts-iceberg/pom.xml +++ b/legend-engine-xts-iceberg/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml index 1124f8453d1..99e8e5798d4 100644 --- a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml +++ b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml index 84ad268595b..d30d47a03ff 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml index 8fc5a4f13cf..0a03ac7cec5 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml index 12682698d4d..6e08667d397 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/pom.xml b/legend-engine-xts-java/pom.xml index f6503d56116..4a998b4637a 100644 --- a/legend-engine-xts-java/pom.xml +++ b/legend-engine-xts-java/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml index 825fd870424..d8f5cca7662 100644 --- a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml +++ b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml index 0dcb550a86e..89f59d33004 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml index 4d7cdde8788..72db4c25ef6 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml index c5ce8edfd03..e7a7ea5e2ed 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml index 6180075513c..479a61075ec 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml index d9c5a67716b..4fd16bdd85e 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/pom.xml b/legend-engine-xts-json/pom.xml index edd0dd004b6..08322b7ff55 100644 --- a/legend-engine-xts-json/pom.xml +++ b/legend-engine-xts-json/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml index 4e7c30c2411..2f3232d471d 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-mastery org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml index bc54a77eb2e..f8c3b853114 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml index 333b564f22a..d09ada6a227 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/pom.xml b/legend-engine-xts-mastery/pom.xml index 2c1819a3d26..1a48aa752ae 100644 --- a/legend-engine-xts-mastery/pom.xml +++ b/legend-engine-xts-mastery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml index 90239e66e86..2541fb8f78a 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml index 85b5883a36b..0df97c65e7d 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.31.0 + 4.31.1-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-executionPlan diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml index 61be7c3ce04..3636900c04f 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.31.0 + 4.31.1-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-grammar-integration diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml index c54d9d9478f..77e0b0ee8af 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.31.0 + 4.31.1-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-grammar diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml index 40de890bf07..7aadc72da36 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.31.0 + 4.31.1-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml index ecf94d66ca0..d2df8856cd5 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.31.0 + 4.31.1-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-protocol diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml index a509353c49c..8f091cf4a37 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.31.0 + 4.31.1-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-pure diff --git a/legend-engine-xts-mongodb/pom.xml b/legend-engine-xts-mongodb/pom.xml index 2e468b649fe..c72d1a8a86c 100644 --- a/legend-engine-xts-mongodb/pom.xml +++ b/legend-engine-xts-mongodb/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml index a0e8e2d0db9..65493a80047 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-morphir - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml index 669af5d36ef..fde890d8a3f 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-morphir org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-morphir/pom.xml b/legend-engine-xts-morphir/pom.xml index 7697e332a05..79f7a69978f 100644 --- a/legend-engine-xts-morphir/pom.xml +++ b/legend-engine-xts-morphir/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml index f30a88fe303..c34b6d1f2fd 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.31.0 + 4.31.1-SNAPSHOT legend-engine-xt-openapi-generation diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml index 2e61a5f8823..3543fb6b815 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.31.0 + 4.31.1-SNAPSHOT legend-engine-xt-openapi-pure diff --git a/legend-engine-xts-openapi/pom.xml b/legend-engine-xts-openapi/pom.xml index 9bc0595ce3b..fd31acd9441 100644 --- a/legend-engine-xts-openapi/pom.xml +++ b/legend-engine-xts-openapi/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml index de5bb52e2b6..4ce9c028ff8 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml index e73e7d67e42..2ab21473c47 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml index e1dd6cb44bd..7022a9ff2b0 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml index 43c09ebc7f4..1ab317420fd 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml index f999c62241f..0d278e2c3e6 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml index 3a99437269e..817b3aa377a 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml index 90c51a1dd1a..fe5e5122bda 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml index c6f35fdfa65..69321cee964 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml index 9fe8325b1d9..abbdedbf293 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml index e37ebe4cb0c..6a265f6ff23 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml index 53ce16ce809..9f975cf5e47 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml index fb077e1b659..1a3fcaecf0f 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml index d51bd3ab1cd..a2c4d5553d3 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml index f266104d237..b7da62a86e2 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml index 06d0e54c0f6..caa72b6cbaa 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml index 7c8019dcb1f..a172b3a3463 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml index dbefd158c5c..fc6ecb0920e 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml index af3d3622b8d..d2d06a36e66 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml index 155184b7817..ec691b8f2d9 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml index 717b1e6858f..349065e92ea 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml index 4d0cc80411e..46c153a73ce 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/pom.xml b/legend-engine-xts-persistence/pom.xml index 8c5c0bd9aed..05ebf918cb3 100644 --- a/legend-engine-xts-persistence/pom.xml +++ b/legend-engine-xts-persistence/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml index 7053f1aa863..4720031f2b0 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-xt-protobuf-grammar diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml index dcf82c5ffa6..12395685af3 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-xt-protobuf-protocol diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml index 8836fb8630f..7a6d1396178 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml index ed36a20f427..a6cb111f22a 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 @@ -57,7 +57,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.31.0 + 4.31.1-SNAPSHOT org.finos.legend.pure diff --git a/legend-engine-xts-protobuf/pom.xml b/legend-engine-xts-protobuf/pom.xml index 5c981d33513..fd6bda07b53 100644 --- a/legend-engine-xts-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml index 92efe9fd6cf..0f8fec2191a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml index ac05e5a33c5..36992f462d4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml index 08cfb8c1375..7f66ab4f5ef 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml index a64306a0c83..a100e6fab79 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml index 8b4bcf15faa..d92d6333ca1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml index 049aca39d99..c15d4213f4f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml index bc0dde2104b..8f9e9a7493e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml index dd8ae7f4968..36dec03baee 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml index 3673b9e2b54..84539b905e9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml index d6e1df78d93..c25255ef586 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml index 826834e5e93..92ffb8c31f7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-bigquery org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml index 1670ed3bbb5..bf1d62457a2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml index 71415bbf2a4..4865a91efc2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml index 872019591a0..ebea03dfe4f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml index c943d688f03..1d1228bda8b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml index 0bde48db6f1..242659a9547 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml index ada21c3b784..ab31d032faa 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml index 73e5f819801..1c05059766e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml index 9cd084a9336..661092a2d2c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml index bfe2ad4b230..dceda4199c2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml index d79dc276275..1c98b9f2ff7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml index eeb4072c11e..ae1f4ca8f91 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml index aa02d7f63f7..8e3b74d3b53 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-dbExtension org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml index a64956559b1..29dc95b3a17 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-hive - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml index 3b4ab459426..5fe58af41d5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml index a5a3abe60f8..fc66e078900 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml index d44d015c650..53335d9cb15 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-memsql org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml index b4987042874..8740975e5ba 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.31.0 + 4.31.1-SNAPSHOT legend-engine-xt-relationalStore-memsql-execution diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml index 1e20a906fb7..aa62c02a2db 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.31.0 + 4.31.1-SNAPSHOT legend-engine-xt-relationalStore-memsql-pure diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml index 4af8731e2e2..273c0a98e56 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml index f41acae816d..677109489c3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml index 3f51a79900d..2c0648e6d4e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml index f084f133bbb..cbc115aedc1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml index f81fc96304a..6b66d3be078 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml index 08b2d5f4d0b..7306154db03 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml index 9d66c422455..17ffa3bf6b4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml index 14367dec879..f8ebc28e154 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-presto - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml index ec3e1e9ee88..c81e6b646f3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml index 8735fcaed2f..6e06ceab56c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml index 83ee2d90022..9cd44ae3fbe 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml index 1eff11450db..f60aac5338c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml index 6102a8fec27..69480678ff2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml index 75bc13ed080..23df390d834 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml index 01a2352a7c0..3bf8bbbae77 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml index 3583cdee80f..8001d9343ba 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml index a1b9e104e6f..f045f4e2e3e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml index 0b0ecfbf824..6fdde142e2f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml index 456a794c3d9..373825f4490 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml index 516d776c932..59b13163780 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml index 2cf3d4b4330..2db19eb588f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml index 36035ffd7eb..4d039dba3b3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml index 233b321b8d2..0b9f703a5be 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml index 4578157fb8a..38fab3a27ac 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml index 82edf221d8c..d23132cf80e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml index e7115ce160d..da4d48ea87e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml index 911a035f2dd..a9ba58c5d13 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml index 2833734bd8e..cc4c7c6a89e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml index b5df03da386..744ca369754 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml index b8d9a6461ac..947ea932cae 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sparksql - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml index adb971db2c2..4a8db0e6e61 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml index f6bf5400f35..73f78704c20 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml index 68ca96be401..0375ca31f45 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-sqlserver-execution-tests diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml index 511806fb38a..cfe0332d8b8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml index e39e6ff7603..685ccc702b4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml index 3e7bdceddef..9fb760f0bbd 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml index dbc1c15c17d..8e5f094df45 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybase - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml index cc5313a68b4..a8d0be06b31 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml index 9e02b4bb24c..00fedc2c3de 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybaseiq - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml index 554f90a0871..02ba1b1f76d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml index ed4cf9c7247..c2b4589f915 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-test-reports diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml index 4ad51078dad..1fcfdd33788 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-test-server diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml index 851c5c487a5..b50b1c49551 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml index f2737f90932..0addb3bc94f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml index cbac963f7c9..e1c8245ba3e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml index 75220374346..752bda76ad8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml index 0a8500c9fb0..7841b5a2b23 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml index 20bd4f8dd8f..19a560d72fa 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml index 0feb5dfb586..445ab469081 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml index ca1fcdf2cdc..73f2d3ad399 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml index 62c9cd2fe4b..adf81bd3c92 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml index 08517fc2f9b..0adc008e651 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication-default diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml index bcdf68829f2..45d385317fd 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml index 5ec3678c373..a9be7f7c66b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 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 70a2000c403..88136a52859 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 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 0132d37d4cf..797e3f09751 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml index fcd7797d426..efc4a801f28 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml index 58b6d514a71..66dee0ddcdd 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml index 7724d4724cf..4ed89300aea 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml index e3531b423e2..67fa80ba0d0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml index aa63fafcc62..26dc68c4aa4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml index ed51d8b641c..33d04b2c01a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml index 740abd083fb..0cab99839ef 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml index a78943d7ef7..4d08598e30a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml index 6a657c181ce..cab12259b39 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/pom.xml b/legend-engine-xts-relationalStore/pom.xml index 3a00a290b17..a1c3563288e 100644 --- a/legend-engine-xts-relationalStore/pom.xml +++ b/legend-engine-xts-relationalStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml index 0212feaacf6..01760063987 100644 --- a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalai - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalai/pom.xml b/legend-engine-xts-relationalai/pom.xml index a9ab021a7f3..2b8cf170951 100644 --- a/legend-engine-xts-relationalai/pom.xml +++ b/legend-engine-xts-relationalai/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml index 2a05705844f..17bdf942efa 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml index 4963a8fdc59..d33318a6d0a 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-rosetta/pom.xml b/legend-engine-xts-rosetta/pom.xml index 2a435c2b96a..4872d55b92e 100644 --- a/legend-engine-xts-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml index fbe40a3cc54..d65d2ed52b5 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-language-pure-dsl-service-execution diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml index 0b02923483e..804260c7aa9 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml index bc124765905..2a527c92c91 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml index c6f5517771f..8a2661eaa1c 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-language-pure-dsl-service diff --git a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml index 55f8fae29b9..837f41ebeb6 100644 --- a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml +++ b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml index 083bfa101fc..46b94cc6735 100644 --- a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-services-model-api diff --git a/legend-engine-xts-service/legend-engine-services-model/pom.xml b/legend-engine-xts-service/legend-engine-services-model/pom.xml index 9092dfba2bd..add0386e576 100644 --- a/legend-engine-xts-service/legend-engine-services-model/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 legend-engine-services-model diff --git a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml index 961e6bb66c0..df829614070 100644 --- a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/pom.xml b/legend-engine-xts-service/pom.xml index 29ba0dab451..9e23cc80850 100644 --- a/legend-engine-xts-service/pom.xml +++ b/legend-engine-xts-service/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml index c37da7c957c..e3254defb62 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml index 4f50e7986d5..5dc7fca4647 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml index e1816d1f332..0763b837d80 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml index 22a2953a414..7214e483c4e 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml index 6d15d00a5b4..5720eed17ec 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/pom.xml b/legend-engine-xts-serviceStore/pom.xml index 7f07d8d09f9..23c1641fe3a 100644 --- a/legend-engine-xts-serviceStore/pom.xml +++ b/legend-engine-xts-serviceStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml index 8604b938934..f59d85c3e91 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml index e7db7b279b9..ff93761e8b2 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-snowflakeApp org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml index 43fd69cb226..c540979e13d 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml index 69381822f15..077dca42c5f 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml index 0aec66719f9..2d93f56b716 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/pom.xml b/legend-engine-xts-snowflakeApp/pom.xml index 782ddf33352..4eb9faf0901 100644 --- a/legend-engine-xts-snowflakeApp/pom.xml +++ b/legend-engine-xts-snowflakeApp/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml index 4ce70a80930..2514e24e901 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml index 7e42b5a0489..2de59a54ad1 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml index a6ea50af279..fe61e9da901 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml index f22d9a32680..bbd628f36b9 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-sql org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml index 6d154c56e6b..696c73344bb 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml index 2b543c99164..e78b886b9b8 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml index 8f19d17488c..a1423398703 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml index f180c87d249..187dd38dd35 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/pom.xml b/legend-engine-xts-sql/pom.xml index 2e6d89f9121..40c0076004f 100644 --- a/legend-engine-xts-sql/pom.xml +++ b/legend-engine-xts-sql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml index 9053e3c8f4e..3e645fb561a 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-text org.finos.legend.engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml index 916229458f0..f2ac4fb2cbb 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml index 5bb50037a0c..9d74f92e07b 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml index f15c2cfb64e..4e51f7b30e0 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/pom.xml b/legend-engine-xts-text/pom.xml index 15c5582e304..b0a09655c8b 100644 --- a/legend-engine-xts-text/pom.xml +++ b/legend-engine-xts-text/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml index e2c1d9e2397..0833f448c9f 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml index 097258c0cc2..87d69643142 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml index 5aaded09393..82c997c1e2f 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml index fbbef0dc51f..621fe36aa81 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml index 195bb38572b..31c0e6e699e 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/pom.xml b/legend-engine-xts-xml/pom.xml index 1d56acff02b..68255112f02 100644 --- a/legend-engine-xts-xml/pom.xml +++ b/legend-engine-xts-xml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT 4.0.0 diff --git a/pom.xml b/pom.xml index 621b3fa8ff5..a5132fd657e 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ Legend Engine org.finos.legend.engine legend-engine - 4.31.0 + 4.31.1-SNAPSHOT pom @@ -228,7 +228,7 @@ scm:git:https://github.com/finos/legend-engine - legend-engine-4.31.0 + HEAD From 25e62eab454f235d3a901a794ce663cc4ade600e Mon Sep 17 00:00:00 2001 From: Mohammed Ibrahim Date: Mon, 16 Oct 2023 14:45:52 -0400 Subject: [PATCH 20/80] Update build.yml (#2373) remove caching step from build workflow --- .github/workflows/build.yml | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 379be8bd5d4..78a14c6cb2a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -41,18 +41,6 @@ jobs: - name: Checkout repo uses: actions/checkout@v3 - - name: Cache Maven dependencies - uses: actions/cache@v2 - env: - cache-name: cache-mvn-deps - with: - path: ~/.m2/repository - key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/pom.xml') }} - restore-keys: | - ${{ runner.os }}-build-${{ env.cache-name }}- - ${{ runner.os }}-build- - ${{ runner.os }}- - - name: Set up JDK uses: actions/setup-java@v1 with: From 1b53721211cc89d509e11096ec16b8b52298430e Mon Sep 17 00:00:00 2001 From: Gayathri Rallapalle <87973126+gayathrir11@users.noreply.github.com> Date: Tue, 17 Oct 2023 18:02:13 +0530 Subject: [PATCH 21/80] fix package structure for analytics modules (#2377) --- .../finos/legend/engine/api/analytics}/BindingAnalytics.java | 0 .../api/analytics}/model/BindingModelCoverageAnalysisInput.java | 0 .../engine/api/analytics/test}/TestBindingAnalyticsApi.java | 0 .../core}/CoreExternalBindingAnalysisCodeRepositoryProvider.java | 0 .../finos/legend/engine/api/analytics}/ClassAnalytics.java | 0 .../api/analytics}/model/ClassModelCoverageAnalysisInput.java | 0 .../legend/engine/api/analytics/test}/TestClassAnalyticsApi.java | 0 .../core}/CoreExternalClassAnalysisCodeRepositoryProvider.java | 0 .../finos/legend/engine/api/analytics}/FunctionAnalytics.java | 0 .../api/analytics}/model/FunctionModelCoverageAnalysisInput.java | 0 .../core}/CoreExternalFunctionAnalysisCodeRepositoryProvider.java | 0 11 files changed, 0 insertions(+), 0 deletions(-) rename legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/main/java/{org.finos.legend.engine.api.analytics => org/finos/legend/engine/api/analytics}/BindingAnalytics.java (100%) rename legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/main/java/{org.finos.legend.engine.api.analytics => org/finos/legend/engine/api/analytics}/model/BindingModelCoverageAnalysisInput.java (100%) rename legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/test/java/{org.finos.legend.engine.api.analytics.test => org/finos/legend/engine/api/analytics/test}/TestBindingAnalyticsApi.java (100%) rename legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/src/main/java/{org.finos.legend.pure.code.core => org/finos/legend/pure/code/core}/CoreExternalBindingAnalysisCodeRepositoryProvider.java (100%) rename legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/main/java/{org.finos.legend.engine.api.analytics => org/finos/legend/engine/api/analytics}/ClassAnalytics.java (100%) rename legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/main/java/{org.finos.legend.engine.api.analytics => org/finos/legend/engine/api/analytics}/model/ClassModelCoverageAnalysisInput.java (100%) rename legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/test/java/{org.finos.legend.engine.api.analytics.test => org/finos/legend/engine/api/analytics/test}/TestClassAnalyticsApi.java (100%) rename legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/src/main/java/{org.finos.legend.pure.code.core => org/finos/legend/pure/code/core}/CoreExternalClassAnalysisCodeRepositoryProvider.java (100%) rename legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/src/main/java/{org.finos.legend.engine.api.analytics => org/finos/legend/engine/api/analytics}/FunctionAnalytics.java (100%) rename legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/src/main/java/{org.finos.legend.engine.api.analytics => org/finos/legend/engine/api/analytics}/model/FunctionModelCoverageAnalysisInput.java (100%) rename legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/src/main/java/{org.finos.legend.pure.code.core => org/finos/legend/pure/code/core}/CoreExternalFunctionAnalysisCodeRepositoryProvider.java (100%) diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/main/java/org.finos.legend.engine.api.analytics/BindingAnalytics.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/main/java/org/finos/legend/engine/api/analytics/BindingAnalytics.java similarity index 100% rename from legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/main/java/org.finos.legend.engine.api.analytics/BindingAnalytics.java rename to legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/main/java/org/finos/legend/engine/api/analytics/BindingAnalytics.java diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/main/java/org.finos.legend.engine.api.analytics/model/BindingModelCoverageAnalysisInput.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/main/java/org/finos/legend/engine/api/analytics/model/BindingModelCoverageAnalysisInput.java similarity index 100% rename from legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/main/java/org.finos.legend.engine.api.analytics/model/BindingModelCoverageAnalysisInput.java rename to legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/main/java/org/finos/legend/engine/api/analytics/model/BindingModelCoverageAnalysisInput.java diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/test/java/org.finos.legend.engine.api.analytics.test/TestBindingAnalyticsApi.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/test/java/org/finos/legend/engine/api/analytics/test/TestBindingAnalyticsApi.java similarity index 100% rename from legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/test/java/org.finos.legend.engine.api.analytics.test/TestBindingAnalyticsApi.java rename to legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/src/test/java/org/finos/legend/engine/api/analytics/test/TestBindingAnalyticsApi.java diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/src/main/java/org.finos.legend.pure.code.core/CoreExternalBindingAnalysisCodeRepositoryProvider.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/src/main/java/org/finos/legend/pure/code/core/CoreExternalBindingAnalysisCodeRepositoryProvider.java similarity index 100% rename from legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/src/main/java/org.finos.legend.pure.code.core/CoreExternalBindingAnalysisCodeRepositoryProvider.java rename to legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/src/main/java/org/finos/legend/pure/code/core/CoreExternalBindingAnalysisCodeRepositoryProvider.java diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/main/java/org.finos.legend.engine.api.analytics/ClassAnalytics.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/main/java/org/finos/legend/engine/api/analytics/ClassAnalytics.java similarity index 100% rename from legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/main/java/org.finos.legend.engine.api.analytics/ClassAnalytics.java rename to legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/main/java/org/finos/legend/engine/api/analytics/ClassAnalytics.java diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/main/java/org.finos.legend.engine.api.analytics/model/ClassModelCoverageAnalysisInput.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/main/java/org/finos/legend/engine/api/analytics/model/ClassModelCoverageAnalysisInput.java similarity index 100% rename from legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/main/java/org.finos.legend.engine.api.analytics/model/ClassModelCoverageAnalysisInput.java rename to legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/main/java/org/finos/legend/engine/api/analytics/model/ClassModelCoverageAnalysisInput.java diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/test/java/org.finos.legend.engine.api.analytics.test/TestClassAnalyticsApi.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/test/java/org/finos/legend/engine/api/analytics/test/TestClassAnalyticsApi.java similarity index 100% rename from legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/test/java/org.finos.legend.engine.api.analytics.test/TestClassAnalyticsApi.java rename to legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/src/test/java/org/finos/legend/engine/api/analytics/test/TestClassAnalyticsApi.java diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/src/main/java/org.finos.legend.pure.code.core/CoreExternalClassAnalysisCodeRepositoryProvider.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/src/main/java/org/finos/legend/pure/code/core/CoreExternalClassAnalysisCodeRepositoryProvider.java similarity index 100% rename from legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/src/main/java/org.finos.legend.pure.code.core/CoreExternalClassAnalysisCodeRepositoryProvider.java rename to legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/src/main/java/org/finos/legend/pure/code/core/CoreExternalClassAnalysisCodeRepositoryProvider.java diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/src/main/java/org.finos.legend.engine.api.analytics/FunctionAnalytics.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/src/main/java/org/finos/legend/engine/api/analytics/FunctionAnalytics.java similarity index 100% rename from legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/src/main/java/org.finos.legend.engine.api.analytics/FunctionAnalytics.java rename to legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/src/main/java/org/finos/legend/engine/api/analytics/FunctionAnalytics.java diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/src/main/java/org.finos.legend.engine.api.analytics/model/FunctionModelCoverageAnalysisInput.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/src/main/java/org/finos/legend/engine/api/analytics/model/FunctionModelCoverageAnalysisInput.java similarity index 100% rename from legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/src/main/java/org.finos.legend.engine.api.analytics/model/FunctionModelCoverageAnalysisInput.java rename to legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/src/main/java/org/finos/legend/engine/api/analytics/model/FunctionModelCoverageAnalysisInput.java diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/src/main/java/org.finos.legend.pure.code.core/CoreExternalFunctionAnalysisCodeRepositoryProvider.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/src/main/java/org/finos/legend/pure/code/core/CoreExternalFunctionAnalysisCodeRepositoryProvider.java similarity index 100% rename from legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/src/main/java/org.finos.legend.pure.code.core/CoreExternalFunctionAnalysisCodeRepositoryProvider.java rename to legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/src/main/java/org/finos/legend/pure/code/core/CoreExternalFunctionAnalysisCodeRepositoryProvider.java From ba5bc3fb38b81b69308cd8fa3850b2e5bee42e12 Mon Sep 17 00:00:00 2001 From: "Sherjan, Haroon" <35983762+haroonsherjan@users.noreply.github.com> Date: Tue, 17 Oct 2023 20:01:27 -0400 Subject: [PATCH 22/80] Repackage and refactor Connection and Runtime (#2095) * Repackage and refactor Connection and Runtime * Ignore icebox * Update serialization.pure * Update connection_serviceStore.pure * Update pom.xml * Change memory settings to try to avoid OOM * Use bigger machine to build * Actually use bigger machine * Update build.yml * Set max build memory to 8g * Update build.yml --------- Co-authored-by: Rafael Bey <24432403+rafaelbey@users.noreply.github.com> --- .github/workflows/build.yml | 9 +- docs/queries/queries.md | 16 +- .../core_configuration/coreExtensions.pure | 2 +- .../test/TestExternalFormatQueries.java | 4 +- .../engine/plan/generation/PlanGenerator.java | 14 +- .../ClassMappingFirstPassBuilder.java | 6 +- .../ClassMappingThirdPassBuilder.java | 8 +- .../compiler/toPureGraph/CompileContext.java | 10 +- .../ConnectionFirstPassBuilder.java | 26 +- .../ConnectionSecondPassBuilder.java | 20 +- .../toPureGraph/HelperMappingBuilder.java | 4 +- .../toPureGraph/HelperModelBuilder.java | 4 +- .../toPureGraph/HelperRuntimeBuilder.java | 131 +-- .../PackageableElementFirstPassBuilder.java | 10 +- .../PackageableElementSecondPassBuilder.java | 6 +- .../toPureGraph/PropertyMappingBuilder.java | 6 +- .../pure/compiler/toPureGraph/PureModel.java | 24 +- .../ValueSpecificationBuilder.java | 6 +- .../ValueSpecificationBuilderForFuncExpr.java | 4 +- .../extension/CompilerExtension.java | 4 +- .../extension/CompilerExtensions.java | 8 +- .../toPureGraph/handlers/Handlers.java | 28 +- ...ggregationAwareCompilationFromGrammar.java | 2 +- .../TestMappingCompilationFromGrammar.java | 4 +- .../TestRuntimeCompilationFromGrammar.java | 39 +- .../antlr4/runtime/RuntimeLexerGrammar.g4 | 1 + .../antlr4/runtime/RuntimeParserGrammar.g4 | 19 +- .../from/runtime/RuntimeParseTreeWalker.java | 41 +- .../to/HelperRuntimeGrammarComposer.java | 20 + .../test/parser/TestRuntimeGrammarParser.java | 7 + .../TestRuntimeGrammarRoundtrip.java | 28 + .../core_protocol_generation/generation.pure | 9 +- .../runtime/ConnectionStore.java | 23 + .../runtime/ConnectionStores.java | 29 + .../runtime/EngineRuntime.java | 7 + .../legend/engine/query/pure/api/Execute.java | 4 +- .../TestExecuteFunctionExecutionPlan.java | 4 +- .../service/TestDataGenerationService.java | 1 + .../runner/mapping/MappingTestRunner.java | 35 +- .../mapping/extension/MappingTestRunner.java | 20 +- .../extension/MappingTestRunnerContext.java | 8 +- .../src/main/resources/core.definition.json | 4 +- .../objectReference/objectReference.pure | 3 +- .../tests/executionPlanTests.pure | 17 +- .../pure/corefunctions/metaExtension.pure | 57 +- .../pure/executionPlan/executionPlan.pure | 3 +- .../executionPlan_execution.pure | 5 +- .../executionPlan_generation.pure | 23 +- .../executionPlan/executionPlan_print.pure | 11 +- .../core/pure/executionPlan/extensions.pure | 5 +- .../core/pure/extensions/extension.pure | 19 +- .../core/pure/extensions/functions.pure | 9 +- .../core/pure/graphFetch/graphExtension.pure | 109 +-- .../graphFetch/graphFetchExecutionPlan.pure | 48 +- .../pure/graphFetch/graphFetch_routing.pure | 56 +- .../subType/testOnSourceRoot.pure | 76 +- .../sourceTreeCalc/testSourceTreeCalc.pure | 260 +++--- .../tests/testCrossStoreGraphFetch.pure | 27 +- .../pure/graphFetch/tests/testRouting.pure | 3 +- .../core/pure/graphFetch/tests/testUnion.pure | 14 +- .../resources/core/pure/mapping/XStore.pure | 21 +- .../core/pure/mapping/mappingExtension.pure | 6 +- .../core/pure/mapping/modelToModel.pure | 104 +-- .../core/pure/milestoning/milestoning.pure | 5 +- .../core/pure/mutation/mutation.pure | 5 +- .../executionPlan_generation.pure | 23 +- .../protocol/v1_18_0/extension/extension.pure | 15 +- .../v1_18_0/invocations/execution.pure | 7 +- .../v1_18_0/scan/buildBasePureModel.pure | 3 +- .../v1_18_0/transfers/executionPlan.pure | 15 +- .../protocol/v1_18_0/transfers/mapping.pure | 1 + .../protocol/v1_18_0/transfers/metamodel.pure | 1 + .../protocol/v1_18_0/transfers/store.pure | 23 +- .../protocol/v1_19_0/extension/extension.pure | 11 +- .../v1_19_0/invocations/execution.pure | 7 +- .../v1_19_0/scan/buildBasePureModel.pure | 3 +- .../v1_19_0/transfers/executionPlan.pure | 8 +- .../protocol/v1_19_0/transfers/mapping.pure | 1 + .../protocol/v1_19_0/transfers/metamodel.pure | 1 + .../protocol/v1_19_0/transfers/store.pure | 25 +- .../v1_19_0/transfers/valueSpecification.pure | 2 +- .../protocol/v1_20_0/extension/extension.pure | 11 +- .../v1_20_0/invocations/execution.pure | 7 +- .../v1_20_0/scan/buildBasePureModel.pure | 3 +- .../v1_20_0/transfers/executionPlan.pure | 8 +- .../protocol/v1_20_0/transfers/mapping.pure | 1 + .../protocol/v1_20_0/transfers/metamodel.pure | 7 +- .../protocol/v1_20_0/transfers/store.pure | 27 +- .../v1_20_0/transfers/valueSpecification.pure | 2 +- .../protocol/v1_21_0/extension/extension.pure | 11 +- .../v1_21_0/invocations/execution.pure | 7 +- .../v1_21_0/scan/buildBasePureModel.pure | 1 + .../v1_21_0/transfers/executionPlan.pure | 8 +- .../protocol/v1_21_0/transfers/mapping.pure | 1 + .../protocol/v1_21_0/transfers/metamodel.pure | 7 +- .../protocol/v1_21_0/transfers/store.pure | 27 +- .../v1_21_0/transfers/valueSpecification.pure | 2 +- .../protocol/v1_22_0/extension/extension.pure | 11 +- .../v1_22_0/invocations/execution.pure | 7 +- .../v1_22_0/scan/buildBasePureModel.pure | 1 + .../v1_22_0/transfers/executionPlan.pure | 8 +- .../protocol/v1_22_0/transfers/mapping.pure | 1 + .../protocol/v1_22_0/transfers/metamodel.pure | 7 +- .../protocol/v1_22_0/transfers/store.pure | 27 +- .../v1_22_0/transfers/valueSpecification.pure | 2 +- .../protocol/v1_23_0/extension/extension.pure | 11 +- .../v1_23_0/invocations/execution.pure | 7 +- .../v1_23_0/scan/buildBasePureModel.pure | 3 +- .../v1_23_0/transfers/executionPlan.pure | 8 +- .../protocol/v1_23_0/transfers/mapping.pure | 3 +- .../protocol/v1_23_0/transfers/metamodel.pure | 7 +- .../protocol/v1_23_0/transfers/store.pure | 27 +- .../v1_23_0/transfers/valueSpecification.pure | 2 +- .../protocol/v1_24_0/extension/extension.pure | 11 +- .../v1_24_0/invocations/execution.pure | 11 +- .../v1_24_0/scan/buildBasePureModel.pure | 3 +- .../v1_24_0/transfers/executionPlan.pure | 8 +- .../protocol/v1_24_0/transfers/mapping.pure | 3 +- .../protocol/v1_24_0/transfers/metamodel.pure | 7 +- .../protocol/v1_24_0/transfers/store.pure | 27 +- .../v1_24_0/transfers/valueSpecification.pure | 2 +- .../protocol/v1_25_0/extension/extension.pure | 11 +- .../v1_25_0/invocations/execution.pure | 11 +- .../v1_25_0/scan/buildBasePureModel.pure | 3 +- .../v1_25_0/transfers/executionPlan.pure | 8 +- .../protocol/v1_25_0/transfers/mapping.pure | 3 +- .../protocol/v1_25_0/transfers/metamodel.pure | 11 +- .../protocol/v1_25_0/transfers/store.pure | 27 +- .../v1_25_0/transfers/valueSpecification.pure | 2 +- .../protocol/v1_26_0/extension/extension.pure | 11 +- .../v1_26_0/invocations/execution.pure | 11 +- .../v1_26_0/scan/buildBasePureModel.pure | 3 +- .../v1_26_0/transfers/executionPlan.pure | 10 +- .../protocol/v1_26_0/transfers/mapping.pure | 3 +- .../protocol/v1_26_0/transfers/metamodel.pure | 11 +- .../protocol/v1_26_0/transfers/store.pure | 27 +- .../v1_26_0/transfers/valueSpecification.pure | 2 +- .../protocol/v1_27_0/extension/extension.pure | 11 +- .../v1_27_0/invocations/execution.pure | 11 +- .../v1_27_0/scan/buildBasePureModel.pure | 3 +- .../v1_27_0/transfers/executionPlan.pure | 10 +- .../protocol/v1_27_0/transfers/mapping.pure | 3 +- .../protocol/v1_27_0/transfers/metamodel.pure | 11 +- .../protocol/v1_27_0/transfers/store.pure | 27 +- .../v1_27_0/transfers/valueSpecification.pure | 2 +- .../protocol/v1_28_0/extension/extension.pure | 11 +- .../v1_28_0/invocations/execution.pure | 11 +- .../v1_28_0/scan/buildBasePureModel.pure | 3 +- .../v1_28_0/transfers/executionPlan.pure | 10 +- .../protocol/v1_28_0/transfers/mapping.pure | 3 +- .../protocol/v1_28_0/transfers/metamodel.pure | 7 +- .../protocol/v1_28_0/transfers/store.pure | 27 +- .../v1_28_0/transfers/valueSpecification.pure | 2 +- .../protocol/v1_29_0/extension/extension.pure | 11 +- .../v1_29_0/invocations/execution.pure | 11 +- .../invocations/testBuildExecutionInput.pure | 1 + .../v1_29_0/scan/buildBasePureModel.pure | 3 +- .../v1_29_0/transfers/executionPlan.pure | 10 +- .../protocol/v1_29_0/transfers/mapping.pure | 3 +- .../protocol/v1_29_0/transfers/metamodel.pure | 7 +- .../protocol/v1_29_0/transfers/store.pure | 27 +- .../v1_29_0/transfers/valueSpecification.pure | 2 +- .../protocol/v1_30_0/extension/extension.pure | 11 +- .../v1_30_0/invocations/execution.pure | 11 +- .../invocations/testBuildExecutionInput.pure | 1 + .../v1_30_0/scan/buildBasePureModel.pure | 5 +- .../v1_30_0/transfers/executionPlan.pure | 10 +- .../protocol/v1_30_0/transfers/mapping.pure | 3 +- .../protocol/v1_30_0/transfers/metamodel.pure | 11 +- .../protocol/v1_30_0/transfers/store.pure | 27 +- .../v1_30_0/transfers/valueSpecification.pure | 28 +- .../protocol/v1_31_0/extension/extension.pure | 13 +- .../v1_31_0/invocations/execution.pure | 11 +- .../invocations/testBuildExecutionInput.pure | 1 + .../v1_31_0/scan/buildBasePureModel.pure | 5 +- .../v1_31_0/transfers/executionPlan.pure | 12 +- .../protocol/v1_31_0/transfers/mapping.pure | 3 +- .../protocol/v1_31_0/transfers/metamodel.pure | 11 +- .../protocol/v1_31_0/transfers/store.pure | 27 +- .../v1_31_0/transfers/valueSpecification.pure | 28 +- .../protocol/v1_32_0/extension/extension.pure | 13 +- .../v1_32_0/invocations/execution.pure | 11 +- .../invocations/testBuildExecutionInput.pure | 1 + .../v1_32_0/scan/buildBasePureModel.pure | 5 +- .../v1_32_0/transfers/executionPlan.pure | 12 +- .../protocol/v1_32_0/transfers/mapping.pure | 3 +- .../protocol/v1_32_0/transfers/metamodel.pure | 7 +- .../protocol/v1_32_0/transfers/store.pure | 27 +- .../v1_32_0/transfers/valueSpecification.pure | 6 +- .../protocol/v1_33_0/extension/extension.pure | 1 + .../v1_33_0/invocations/execution.pure | 7 +- .../invocations/testBuildExecutionInput.pure | 1 + .../v1_33_0/scan/buildBasePureModel.pure | 1 + .../v1_33_0/transfers/executionPlan.pure | 4 +- .../protocol/v1_33_0/transfers/mapping.pure | 1 + .../protocol/v1_33_0/transfers/metamodel.pure | 1 + .../protocol/v1_33_0/transfers/store.pure | 21 +- .../v1_33_0/transfers/valueSpecification.pure | 4 +- .../protocol/vX_X_X/extension/extension.pure | 13 +- .../vX_X_X/invocations/execution.pure | 11 +- .../invocations/testBuildExecutionInput.pure | 1 + .../protocol/vX_X_X/models/metamodel.pure | 11 +- .../vX_X_X/scan/buildBasePureModel.pure | 5 +- .../vX_X_X/transfers/executionPlan.pure | 12 +- .../protocol/vX_X_X/transfers/mapping.pure | 3 +- .../protocol/vX_X_X/transfers/metamodel.pure | 11 +- .../pure/protocol/vX_X_X/transfers/store.pure | 27 +- .../vX_X_X/transfers/valueSpecification.pure | 28 +- .../pure/router/deprecated/deprecated.pure | 3 +- .../router/extension/router_extension.pure | 5 +- .../pure/router/externalFormat/routing.pure | 13 +- .../pure/router/metamodel/clustering.pure | 7 +- .../core/pure/router/metamodel/routing.pure | 8 +- .../core/pure/router/platform/routing.pure | 7 +- .../core/pure/router/preeval/preeval.pure | 173 ++-- .../core/pure/router/preeval/tests.pure | 83 +- .../core/pure/router/router_entry.pure | 4 +- .../core/pure/router/router_execution.pure | 15 +- .../core/pure/router/router_main.pure | 19 +- .../pure/router/routing/router_routing.pure | 41 +- .../core/pure/router/store/analytics.pure | 18 +- .../core/pure/router/store/builder.pure | 31 +- .../core/pure/router/store/cluster.pure | 85 +- .../core/pure/router/store/metamodel.pure | 6 +- .../core/pure/router/store/routing.pure | 39 +- .../core/pure/runtime/runtimeExtension.pure | 83 +- .../core/pure/store/storeContract.pure | 10 +- .../aggregationAware/aggregationAware.pure | 3 +- .../store/aggregationAware/storeContract.pure | 4 +- .../main/resources/core/store/m2m/chain.pure | 54 +- .../resources/core/store/m2m/inMemory.pure | 58 +- .../core/store/m2m/storeContract.pure | 13 +- .../core/store/m2m/tests/createInstances.pure | 102 ++- .../resources/core/store/m2m/tests/delta.pure | 14 +- .../core/store/m2m/tests/filter.pure | 16 +- .../store/m2m/tests/legend/autoMapping.pure | 21 +- .../tests/legend/chain/dataQualityChain.pure | 32 +- .../m2m/tests/legend/chain/filterChain.pure | 57 +- .../tests/legend/chain/parametersChain.pure | 42 +- .../m2m/tests/legend/chain/simpleChain.pure | 128 ++- .../store/m2m/tests/legend/constraints.pure | 153 ++-- .../store/m2m/tests/legend/dataQuality.pure | 165 ++-- .../m2m/tests/legend/filterGraphFetch.pure | 89 +- .../tests/legend/graphWithAssociations.pure | 21 +- .../graphWithSubTypes/testOnSourceRoot.pure | 616 +++++++------- .../legend/graphWithoutAssociations.pure | 20 +- .../core/store/m2m/tests/legend/merge.pure | 182 +++-- .../legend/milestoning/MilestonedM2M.pure | 13 +- .../m2m/tests/legend/multiStepFunctions.pure | 44 +- .../m2m/tests/legend/multiplicities.pure | 29 +- .../store/m2m/tests/legend/simpleObject.pure | 421 ++++++---- .../m2m/tests/legend/simpleObjectXml.pure | 190 ++--- .../sourceAssociationRequiredByMapping.pure | 20 +- .../legend/testComplexTypeAutoMapping.pure | 95 +-- .../store/m2m/tests/legend/testEquality.pure | 15 +- .../store/m2m/tests/legend/testExplosion.pure | 52 +- .../m2m/tests/legend/testUnitMeasure.pure | 35 +- .../m2m/tests/legend/toFromSameName.pure | 11 +- .../core/store/m2m/tests/legend/util.pure | 16 +- .../resources/core/store/m2m/tests/merge.pure | 10 +- .../core/store/m2m/tests/primitives.pure | 10 +- .../core/store/m2m/tests/shared.pure | 6 +- .../core/store/m2m/tests/simple.pure | 50 +- .../compiler/test/LegendCompileTest.java | 2 +- .../core_external_execution/execution.pure | 1 + .../runtime/execution/LegendExecuteTest.java | 9 +- .../src/test/resources/testModels.txt | 4 +- .../core_analytics_lineage/fullAnalytics.pure | 9 +- .../tests/scanExecutetTests.pure | 8 +- .../tests/scanProjectTests.pure | 7 +- .../modelCoverage/analytics.pure | 5 +- .../modelCoverage/mappedEntityBuilder.pure | 21 +- .../core_analytics_search/trans.pure | 4 +- .../core_analytics_search/transTest.pure | 7 +- .../analytics/StoreEntitlementAnalytics.java | 8 +- .../services/EntitlementServiceExtension.java | 8 +- .../src/test/java/TestArrowQueries.java | 4 +- .../AuthenticationCompilerExtension.java | 2 +- .../core_authentication.protocol.json | 2 +- .../core_authentication.definition.json | 2 +- .../analytics/DataSpaceAnalyticsHelper.java | 4 +- .../core_data_space/analytics/analytics.pure | 1 + .../ElasticsearchCompilerExtension.java | 4 +- .../compiler/HelperElasticsearchBuilder.java | 3 +- .../executionPlan_generation.pure | 7 +- .../extensions/store_contract.pure | 9 +- .../functions/pure_to_elasticsearch.pure | 285 +++---- .../protocol/v1_31_0/serialization.pure | 16 +- .../protocol/v1_32_0/serialization.pure | 22 +- .../protocol/v1_33_0/serialization.pure | 2 +- .../protocol/vX_X_X/serialization.pure | 24 +- .../store/runtime.pure | 10 +- .../elasticsearch_plan_test.pure | 44 +- .../elasticsearch_plan_test_7.pure | 3 +- .../validation/tests/validation_test.pure | 8 +- .../executionPlan/tests/dataTypes.pure | 9 +- .../executionPlan/tests/multiSection.pure | 13 +- .../executionPlan/tests/simple.pure | 44 +- .../executionPlan/tests/utils.pure | 3 +- .../transformation_graphFetch.pure | 12 +- .../graphQL/api/execute/GraphQLExecute.java | 6 +- .../graphQL/api/test/Project1_Workspace1.pure | 7 +- .../directives/TotalCountDirective.java | 4 +- .../HelperHostedServiceBuilder.java | 8 +- .../generation/generation.pure | 17 +- .../showcase/showcaseModel.pure | 22 +- .../iceberg/testsupport/IceboxSparkTest.java | 6 +- .../iceberg/testsupport/IceboxTrinoTest.java | 10 +- .../generation/conventions.pure | 12 +- .../generation/expressionGeneration.pure | 55 +- .../binding/shared.pure | 33 +- .../inMemory/graphFetchInMemory.pure | 90 +- .../graphFetch/inMemory/graphFetchJson.pure | 13 +- .../graphFetch/inMemory/graphFetchMege.pure | 27 +- .../graphFetchStoreStreamReading.pure | 28 +- .../graphFetch/inMemory/graphFetchXml.pure | 51 +- .../legendJavaPlatformBinding/main.pure | 13 +- .../planConventions/collectionsLibrary.pure | 54 +- .../planConventions/runtimeLibrary.pure | 4 +- .../test/runtimeLibraryTests.pure | 1 + .../planConventions/test/testUtils.pure | 53 +- .../executionPlanNodes/platform/platform.pure | 9 +- .../shared/common.pure | 39 +- .../shared/constraints.pure | 31 +- .../shared/units.pure | 1 + ...m2mLegendJavaPlatformBindingExtension.pure | 13 +- ...internalizeExternalizeWithContentType.pure | 5 +- .../executionPlan/tests/simple.pure | 31 +- .../executionPlan/tests/utils.pure | 3 +- .../metamodel/internalizeConfig.pure | 5 +- .../mongodb_execution_tests.pure | 15 +- .../src/README.md | 2 +- .../integration/MongoDBCompilerExtension.java | 2 +- .../util/MongoDBCompilerHelper.java | 1 - ...oreLegendJavaPlatformBindingExtension.pure | 10 +- .../contract/storeContract.pure | 11 +- .../graphFetch/mongoDBGraphFetch.pure | 1 + .../metamodel/mongodbRuntime.pure | 7 +- .../v1_32_0/transfers/connection_mongodb.pure | 4 +- .../v1_33_0/transfers/connection_mongodb.pure | 2 +- .../v_X_X_X/transfers/connection_mongodb.pure | 4 +- .../pureToDatabaseCommand.pure | 9 +- .../transformation/fromPure/tests/tests.pure | 1 + .../external/persistence/aws/metamodel.pure | 1 + .../persistence/aws/metamodel_diagram.pure | 2 +- .../HelperPersistenceContextBuilder.java | 6 +- ...sistenceContextCompilationFromGrammar.java | 20 +- .../persistence/metamodel.pure | 7 +- .../example/validation_rules_test_model.pure | 4 +- ...n_rules_test_service_flat_graph_fetch.pure | 11 +- ...rules_test_service_nested_graph_fetch.pure | 11 +- .../validation_rules_test_service_tds.pure | 5 +- ...alDatabaseEntitlementServiceExtension.java | 8 +- ...stRelationalStoreEntitlementAnalytics.java | 12 +- .../resources/models/relationalModel.pure | 3 +- .../relational/relationalAnalyzer.pure | 7 +- .../utility/relationalTableAnalyzer.pure | 11 +- .../core_relational_athena.definition.json | 4 +- .../sqlQueryToString/athenaExtension.pure | 3 +- .../athenaTestSuiteInvoker.pure | 3 +- .../core_relational_bigquery.definition.json | 4 +- .../sqlQueryToString/bigQueryExtension.pure | 3 +- .../bigQueryTestSuiteInvoker.pure | 3 +- .../sqlQueryToString/customBigQueryTests.pure | 134 +-- .../customDatabricksTests.pure | 14 +- .../sqlQueryToString/databricksExtension.pure | 11 +- .../databricksTestSuiteInvoker.pure | 5 +- .../tests/testDatabricksToSQLString.pure | 4 +- ...core_relational___dbtype__.definition.json | 2 +- .../sqlQueryToString/__dbType__Extension.pure | 1 + .../__dbType__TestSuiteInvoker.pure | 3 +- .../tests/executionPlanTestHive.pure | 4 + .../sqlQueryToString/hiveExtension.pure | 1 + .../tests/testHiveSqlFunctionsInMapping.pure | 3 + .../tests/executionPlanTest.pure | 8 +- .../sqlQueryToString/memSQLExtension.pure | 7 +- .../memSQLTestSuiteInvoker.pure | 5 +- .../relational/tds/tests/testSort.pure | 2 + .../tds/tests/testTDSWindowColumn.pure | 2 + .../testSqlFunctionsInMapping.pure | 2 +- .../tests/query/testWithFunction.pure | 2 + .../fromPure/tests/testToSQLString.pure | 48 +- .../sqlQueryToString/postgresExtension.pure | 5 +- .../postgresTestSuiteInvoker.pure | 3 +- .../tests/executionPlanTestPostgres.pure | 4 + .../tests/testPostgresPaginated.pure | 6 +- .../tests/testPostgresSliceTakeLimitDrop.pure | 7 +- .../relational/tests/testPostgresSort.pure | 2 + .../testPostgresSqlFunctionsInMapping.pure | 3 + .../tests/testPostgresWithFunction.pure | 2 + .../tests/testPostgresToSQLString.pure | 98 +-- .../tests/executionPlanTestPresto.pure | 6 +- .../sqlQueryToString/prestoExtension.pure | 9 +- .../tests/testPrestoDateFilters.pure | 11 +- .../tests/testPrestoPaginated.pure | 6 +- .../tests/testPrestoSliceTakeLimitDrop.pure | 9 +- .../testPrestoSqlFunctionsInMapping.pure | 7 +- .../tests/testPrestoTDSConcatenate.pure | 4 +- .../tests/testPrestoToSQLString.pure | 10 +- .../tests/testPrestoWithFunction.pure | 2 + .../tests/executionPlanTestRedshift.pure | 4 + .../sqlQueryToString/customRedshiftTests.pure | 8 +- .../sqlQueryToString/redshiftExtension.pure | 5 +- .../redshiftTestSuiteInvoker.pure | 5 +- .../TestRelationalCompilationFromGrammar.java | 2 +- ...estSnowflakeConnectionGrammarCompiler.java | 6 +- .../tests/executionPlanTestSnowflake.pure | 23 +- .../sqlQueryToString/snowflakeExtension.pure | 16 +- .../snowflakeTestSuiteInvoker.pure | 5 +- .../tests/testSnowflakePaginated.pure | 12 +- .../tests/testSnowflakePostProcessor.pure | 14 +- ...testSnowflakeProjectWithWindowColumns.pure | 4 +- .../testSnowflakeSliceTakeLimitDrop.pure | 19 +- .../testSnowflakeSqlFunctionsInMapping.pure | 15 +- .../tests/testSnowflakeTDSWindowColumn.pure | 2 + .../testSnowflakeTempTableSqlStatements.pure | 3 +- .../tests/testSnowflakeWithFunction.pure | 2 + .../tests/testSnowflakeToSQLString.pure | 50 +- .../core_relational_spanner.definition.json | 4 +- .../sqlQueryToString/spannerExtension.pure | 5 +- .../spannerTestSuiteInvoker.pure | 3 +- .../tests/executionPlanTestSparkSQL.pure | 12 +- .../customSqlServerTests.pure | 6 +- .../sqlQueryToString/sqlServerExtension.pure | 5 +- .../sqlServerTestSuiteInvoker.pure | 5 +- .../tests/executionPlanTestSybase.pure | 8 +- .../sqlQueryToString/sybaseASEExtension.pure | 5 +- .../tests/testSybaseDdlGeneration.pure | 1 + .../tests/testSybaseMapperPostProcessor.pure | 10 +- .../tests/testSybaseSort.pure | 2 + .../testSybaseSqlFunctionsInMapping.pure | 5 +- .../tests/testSybaseTDSFilter.pure | 2 + .../tests/testSybaseToSQLString.pure | 34 +- .../tests/executionPlanTestSybaseIQ.pure | 32 +- .../sqlQueryToString/sybaseIQExtension.pure | 15 +- .../tests/testSybaseIQIsEmpty.pure | 14 +- .../tests/testSybaseIQPaginated.pure | 12 +- .../tests/testSybaseIQPostProcessor.pure | 8 +- .../testSybaseIQProjectWithWindowColumns.pure | 66 +- .../tests/testSybaseIQSliceTakeLimitDrop.pure | 17 +- .../tests/testSybaseIQSort.pure | 2 + .../testSybaseIQSqlFunctionsInMapping.pure | 7 +- .../tests/testSybaseIQTDSExtend.pure | 4 +- .../tests/testSybaseIQTDSFilter.pure | 2 + .../tests/testSybaseIQTDSWindowColumn.pure | 2 + .../testSybaseIQTempTableSqlStatements.pure | 3 +- .../tests/testSybaseIQToSQLString.pure | 228 +++--- .../tests/testSybaseIQWithFunction.pure | 14 +- .../core_relational_trino.definition.json | 2 +- .../sqlQueryToString/trinoExtension.pure | 3 +- .../trinoTestSuiteInvoker.pure | 3 +- .../test/execution/TestExecutionPlan.java | 2 +- .../mutation/testRelationalMutation.pure | 161 ++-- ...erRelationalDatabaseConnectionBuilder.java | 15 +- .../RelationalCompilerExtension.java | 10 +- .../TestRelationalCompilationFromGrammar.java | 116 ++- ...ationalConnectionCompilationRoundtrip.java | 6 +- .../executionPlanTest.pure | 68 +- .../resources/core_relational.definition.json | 4 +- .../objectReference/objectReference.pure | 3 +- .../test/rewrite/NOP/nonAggregationAware.pure | 54 +- .../test/rewrite/NOP/nonGroupBy.pure | 41 +- .../test/rewrite/objectGroupBy.pure | 57 +- .../aggregationAware/test/store.pure | 62 +- .../tests/testCalendarFunctions.pure | 2 + .../relational/contract/storeContract.pure | 32 +- .../executionPlan/executionPlan.pure | 3 +- .../tests/executionPlanExecutionTest.pure | 17 +- .../tests/executionPlanTest.pure | 259 +++--- .../tests/executionPlanTestSetup.pure | 4 +- .../relational/extensions/extension.pure | 23 +- .../tests/loadCsvToDbTable/testLoadCsv.pure | 17 +- .../tests/projection/testAggregation.pure | 13 +- .../projection/testAssociationMixed.pure | 5 +- .../projection/testAssociationToMany.pure | 3 +- .../projection/testAssociationToOne.pure | 1 + .../tests/projection/testConcatenate.pure | 41 +- .../tests/projection/testDateFilters.pure | 74 +- .../tests/projection/testExists.pure | 30 +- .../tests/projection/testFilter.pure | 40 +- .../tests/projection/testFilters.pure | 5 +- .../tests/projection/testFunction.pure | 7 +- .../projection/testFunctionVariables.pure | 1 + .../functions/tests/projection/testIn.pure | 1 + .../tests/projection/testQualifier.pure | 53 +- .../tests/projection/testSimple.pure | 5 +- .../functions/tests/projection/testView.pure | 31 +- .../tests/testCalculatingDistance.pure | 6 +- .../functions/tests/testConcatenate.pure | 68 +- .../functions/tests/testExists.pure | 87 +- .../functions/tests/testFetchDbMetaData.pure | 38 +- .../functions/tests/testFilters.pure | 81 +- .../relational/functions/tests/testFrom.pure | 51 +- .../functions/tests/testGetter.pure | 5 +- .../relational/functions/tests/testIn.pure | 26 +- .../functions/tests/testIsEmpty.pure | 10 +- .../functions/tests/testIsEmpty1.pure | 1 + .../relational/functions/tests/testMap.pure | 5 +- .../functions/tests/testModelGroupBy.pure | 170 ++-- .../tests/testObjectReferenceIn.pure | 155 ++-- .../functions/tests/testPaginated.pure | 15 +- .../functions/tests/testSimple.pure | 8 +- .../tests/testSliceTakeLimitDrop.pure | 7 +- .../relational/functions/tests/testSort.pure | 1 + .../domain/domainManagementTests.pure | 13 +- .../graphFetch/relationalGraphFetch.pure | 53 +- .../tests/testCrossDatabaseGraphFetch.pure | 22 +- .../tests/testCrossStoreGraphFetch.pure | 215 ++--- .../testCrossStoreGraphFetchMilestoning.pure | 52 +- .../graphFetch/tests/testCrossStoreUnion.pure | 103 +-- .../graphFetch/tests/testGraphFetchChain.pure | 45 +- .../tests/testGraphFetchEmbdded.pure | 10 +- .../tests/testGraphFetchMilestoning.pure | 204 ++--- .../tests/testGraphFetchResultSourcing.pure | 38 +- .../tests/testGraphFetchSqlIsolation.pure | 6 +- .../testOrderedCrossStoreGraphFetch.pure | 66 +- .../tests/testSimpleRelationalGraphFetch.pure | 124 +-- .../tests/testSubTypeGraphFetch.pure | 120 +-- ...ationalGraphFetchUnionWithMilestoning.pure | 53 +- .../testUnionPropertyLevel_Relational.pure | 178 ++-- .../union/testUnionRootLevel_relational.pure | 109 +-- .../databaseHelperFunctions.pure | 6 +- .../helperFunctions/helperFunctions.pure | 8 +- .../tests/testDdlGeneration.pure | 9 +- .../relational/helperFunctions/toDDL.pure | 71 +- .../lineage/scanColumns/scanColumnsTests.pure | 5 +- .../lineage/scanRelations/scanRelations.pure | 52 +- .../scanRelationsTestWithViewsAndUnions.pure | 56 +- .../scanRelations/scanRelationsTests.pure | 88 +- .../tests/businessDateMilestoningSetUp.pure | 766 +++++++++--------- .../tests/testBiTemporalDateMilestoning.pure | 81 +- .../tests/testBusinessDateMilestoning.pure | 317 ++++---- .../testBusinessSnapshotMilestoning.pure | 73 +- .../tests/testGetAllForEachDate.pure | 61 +- ...InheritanceMappingWithMilestonedTypes.pure | 75 +- .../tests/testLatestDateMilestoning.pure | 7 +- .../testMilestoningColumnProjection.pure | 9 +- .../testMilestoningContextPropagation.pure | 168 ++-- .../tests/testMilestoningWithDistinct.pure | 21 +- .../tests/testMilestoningWithInclusive.pure | 10 +- .../milestoning/tests/testOtherwise.pure | 16 +- .../tests/testProcessingDateMilestoning.pure | 1 + .../milestoning/tests/testTemporalDate.pure | 1 + .../testTemporalMilestoningPostProcessor.pure | 12 +- .../tests/testTemporalRangeQuery.pure | 1 + ...tionWithHybridMilestoningAcrossTables.pure | 18 +- .../m2m2rShowcase.pure | 41 +- ...tonedSourceToMilestonedTargetProperty.pure | 7 +- ...edSourceToNonMilestonedTargetProperty.pure | 35 +- ...tonedSourceToMilestonedTargetProperty.pure | 5 +- .../milestoned/shared.pure | 23 +- .../mutation/relationalMutation.pure | 30 +- .../connectionAwareProcessors.pure | 8 +- .../dbSpecificProcessor.pure | 8 +- .../defaultPostProcessor.pure | 4 +- .../processInOperation.pure | 11 +- .../processObjectReferenceIn.pure | 21 +- .../trimColumnNamePostProcessor.pure | 28 +- .../postprocessor/postProcessor.pure | 48 +- .../tests/testPostProcessor.pure | 54 +- .../userPostProcessor/userPostProcessor.pure | 6 +- .../extension/extension_relational.pure | 15 +- .../execution_relational_execute.pure | 11 +- .../execution_relational_testData.pure | 7 +- .../transfers/connection_relational.pure | 12 +- .../transfers/metamodel_relational.pure | 1 + .../extension/extension_relational.pure | 15 +- .../execution_relational_execute.pure | 11 +- .../execution_relational_testData.pure | 7 +- .../transfers/connection_relational.pure | 12 +- .../transfers/metamodel_relational.pure | 1 + .../extension/extension_relational.pure | 15 +- .../execution_relational_execute.pure | 11 +- .../execution_relational_testData.pure | 7 +- .../transfers/connection_relational.pure | 12 +- .../transfers/metamodel_relational.pure | 1 + .../extension/extension_relational.pure | 15 +- .../execution_relational_execute.pure | 11 +- .../execution_relational_testData.pure | 7 +- .../transfers/connection_relational.pure | 12 +- .../transfers/metamodel_relational.pure | 1 + .../extension/extension_relational.pure | 15 +- ...cution_relation_executeInRelationalDb.pure | 7 +- .../execution_relational_execute.pure | 11 +- .../execution_relational_testConnection.pure | 29 +- .../execution_relational_testData.pure | 7 +- .../transfers/connection_relational.pure | 12 +- .../transfers/metamodel_relational.pure | 1 + .../extension/extension_relational.pure | 15 +- ...cution_relation_executeInRelationalDb.pure | 7 +- .../execution_relational_execute.pure | 11 +- .../execution_relational_testConnection.pure | 29 +- .../execution_relational_testData.pure | 7 +- .../transfers/connection_relational.pure | 12 +- .../transfers/metamodel_relational.pure | 1 + .../extension/extension_relational.pure | 15 +- ...cution_relation_executeInRelationalDb.pure | 7 +- .../execution_relational_execute.pure | 11 +- .../execution_relational_testConnection.pure | 29 +- .../execution_relational_testData.pure | 7 +- .../transfers/connection_relational.pure | 12 +- .../transfers/metamodel_relational.pure | 1 + .../extension/extension_relational.pure | 15 +- ...cution_relation_executeInRelationalDb.pure | 7 +- .../execution_relational_execute.pure | 11 +- .../execution_relational_testConnection.pure | 29 +- .../execution_relational_testData.pure | 7 +- .../transfers/connection_relational.pure | 12 +- .../transfers/metamodel_relational.pure | 1 + .../extension/extension_relational.pure | 15 +- ...cution_relation_executeInRelationalDb.pure | 7 +- .../execution_relational_execute.pure | 9 +- .../execution_relational_testConnection.pure | 29 +- .../execution_relational_testData.pure | 7 +- .../transfers/connection_relational.pure | 12 +- .../transfers/metamodel_relational.pure | 1 + .../extension/extension_relational.pure | 15 +- ...cution_relation_executeInRelationalDb.pure | 7 +- .../execution_relational_execute.pure | 11 +- .../execution_relational_testConnection.pure | 29 +- .../execution_relational_testData.pure | 7 +- .../transfers/connection_relational.pure | 12 +- .../transfers/metamodel_relational.pure | 1 + .../extension/extension_relational.pure | 19 +- ...cution_relation_executeInRelationalDb.pure | 7 +- .../execution_relational_execute.pure | 11 +- .../execution_relational_testConnection.pure | 29 +- .../execution_relational_testData.pure | 7 +- .../transfers/connection_relational.pure | 12 +- .../transfers/metamodel_relational.pure | 1 + .../extension/extension_relational.pure | 19 +- ...cution_relation_executeInRelationalDb.pure | 7 +- .../execution_relational_execute.pure | 11 +- .../execution_relational_testConnection.pure | 29 +- .../execution_relational_testData.pure | 7 +- .../transfers/connection_relational.pure | 12 +- .../transfers/metamodel_relational.pure | 1 + .../extension/extension_relational.pure | 15 +- ...cution_relation_executeInRelationalDb.pure | 7 +- .../execution_relational_execute.pure | 11 +- .../execution_relational_testConnection.pure | 29 +- .../execution_relational_testData.pure | 7 +- .../transfers/connection_relational.pure | 12 +- .../transfers/metamodel_relational.pure | 1 + .../extension/extension_relational.pure | 5 +- ...cution_relation_executeInRelationalDb.pure | 1 + .../execution_relational_execute.pure | 4 +- .../execution_relational_testConnection.pure | 17 +- .../execution_relational_testData.pure | 7 +- .../transfers/connection_relational.pure | 12 +- .../extension/extension_relational.pure | 19 +- ...cution_relation_executeInRelationalDb.pure | 7 +- .../execution_relational_execute.pure | 11 +- .../execution_relational_testConnection.pure | 29 +- .../execution_relational_testData.pure | 7 +- .../transfers/connection_relational.pure | 12 +- .../transfers/metamodel_relational.pure | 1 + .../pureToSQLQuery/pureToSQLQuery.pure | 193 ++--- .../pureToSQLQuery/tests/testMergeRules.pure | 3 +- .../pureToSQLQuery/tests/testPureToSql.pure | 43 +- .../relational/relationalExtension.pure | 83 +- .../relationalMappingExecution.pure | 27 +- .../relationalTypeTranslations.pure | 1 + .../relational/router/tests/testPreeval.pure | 15 +- .../relational/router/tests/testRouting.pure | 1 + .../relational/router/tests/testRouting1.pure | 41 +- .../router/tests/testRoutingWithInclude.pure | 3 +- .../runtime/connection/connection.pure | 4 +- .../runtime/connection/postprocessor.pure | 4 +- .../executionContext/executionContext.pure | 4 +- .../sqlQueryToString/DDL/testDDL.pure | 19 +- .../sqlQueryToString/DDL/toDDL.pure | 1 + .../sqlQueryToString/dbExtension.pure | 33 +- .../composite/compositeExtension.pure | 1 + .../dbSpecific/db2/db2Extension.pure | 3 +- .../dbSpecific/h2/h2Extension.pure | 11 +- .../dbSpecific/h2/h2Extension1_4_200.pure | 17 +- .../dbSpecific/h2/h2Extension2_1_214.pure | 181 +++-- .../dbSpecific/h2/h2TestSuiteInvoker.pure | 7 +- .../dbTestRunner/dynaFunctionTestRunner.pure | 14 +- .../dbTestRunner/executionPlanTestRunner.pure | 36 +- .../dbTestRunner/literalTestRunner.pure | 8 +- .../dbTestRunner/testRunner.pure | 52 +- .../sqlQueryToString/extensionDefaults.pure | 3 +- .../testSuite/naming/naming.pure | 38 +- .../testSuite/selectSubClauses/filters.pure | 28 +- .../testSuite/selectSubClauses/groupBy.pure | 6 +- .../testSuite/selectSubClauses/join.pure | 20 +- .../selectSubClauses/mixtureOfClauses.pure | 6 +- .../testSuite/selectSubClauses/orderBy.pure | 22 +- .../testSuite/selectSubClauses/range.pure | 15 +- .../testSuite/selectSubClauses/setup.pure | 2 + .../testSuite/selectSubClauses/union.pure | 26 +- .../testSuite/selectSubClauses/view.pure | 6 +- .../selectSubClauses/windowColumn.pure | 6 +- .../testSuite/testTempTableSqlStatements.pure | 7 +- .../tests/testCanRouteWrappedFunctions.pure | 4 +- .../relational/tds/tests/testDistinct.pure | 1 + .../relational/tds/tests/testGroupBy.pure | 36 +- .../tds/tests/testSliceTakeLimitDrop.pure | 5 +- .../relational/tds/tests/testSort.pure | 22 +- .../tds/tests/testTDSConcatenate.pure | 150 ++-- .../relational/tds/tests/testTDSContains.pure | 4 +- .../relational/tds/tests/testTDSExtend.pure | 228 +++--- .../relational/tds/tests/testTDSFilter.pure | 46 +- .../relational/tds/tests/testTDSJoin.pure | 29 +- .../relational/tds/tests/testTDSProject.pure | 532 ++++++------ .../relational/tds/tests/testTDSRestrict.pure | 187 ++--- .../tds/tests/testTDSRestrictDistinct.pure | 54 +- .../tds/tests/testTDSWindowColumn.pure | 4 +- .../relational/tds/tests/testTableToTDS.pure | 106 +-- .../tds/tests/testTdsExtension.pure | 183 ++--- .../tds/tests/testTdsRenameColumns.pure | 58 +- .../testDataGeneration.pure | 100 +-- .../testDataGeneration/tests/model.pure | 10 +- .../tests/testDataGeneration.pure | 145 ++-- .../advanced/testContractMoneyScenario.pure | 6 +- .../tests/advanced/testFailures.pure | 14 +- .../testFilterWithQualifiedProperties.pure | 79 +- .../relational/tests/advanced/testForced.pure | 4 +- .../tests/advanced/testForcedInjection.pure | 3 +- .../tests/advanced/testForcedMilestoning.pure | 2 + .../tests/advanced/testForcedQualifier.pure | 1 + .../tests/advanced/testForcedSelfJoin.pure | 28 +- .../tests/advanced/testForcedStructure.pure | 1 + .../tests/advanced/testQueryStructure.pure | 25 +- .../testRelationalResultSourcing.pure | 17 +- .../tests/datatype/testDataTypeMapping.pure | 9 +- .../tests/injection/testInjection.pure | 15 +- .../association/testAssociationEmbedded.pure | 35 +- .../association/testAssociationMapping.pure | 27 +- .../testAssociationMappingInheritance.pure | 24 +- .../relational/tests/mapping/boolean.pure | 3 +- .../testClassMappingByClass.pure | 9 +- .../testClassMappingFilterWithInnerJoin.pure | 21 +- .../testRelationalSetUp.pure | 20 +- .../relational/tests/mapping/dates.pure | 38 +- .../tests/mapping/distinct/testDistinct.pure | 86 +- .../tests/mapping/dynaJoin/testDynaJoin.pure | 30 +- .../mapping/embedded/testEmbeddedMapping.pure | 172 ++-- .../embedded/testEmbeddedTimeStampkey.pure | 48 +- .../embedded/testInlineEmbeddedMapping.pure | 37 +- .../enumeration/testEnumerationMapping.pure | 64 +- .../tests/mapping/extends/setUp.pure | 24 +- .../mapping/filter/testFilterMapping.pure | 2 + .../mapping/filter/testFilterMappingTree.pure | 26 +- .../tests/mapping/groupBy/testGroupBy.pure | 8 +- .../testInClauseForJoinsAndFilters.pure | 3 +- .../include/testStoreSubstitution.pure | 1 + .../testInheritanceMultipleQueries.pure | 6 +- .../testInheritanceRelational.pure | 38 +- .../testInheritanceRelationalMultiJoins.pure | 22 +- .../testInheritanceRelationalSelfJoin.pure | 10 +- .../testInheritanceRelationalUnion.pure | 18 +- .../inheritance/testSubtypeMapping.pure | 23 +- .../mapping/innerJoin/testIsolationSetUp.pure | 24 +- .../mapping/join/advancedRelationalSetUp.pure | 56 +- .../tests/mapping/merge/testMerge.pure | 8 +- .../testMultiGrainTableMappings.pure | 104 +-- .../propertyfunc/simplePropertyFunc.pure | 12 +- .../tests/mapping/selfJoin/selfJoin.pure | 14 +- .../testSqlFunctionsInMapping.pure | 21 +- .../relational/tests/mapping/tree/tree.pure | 70 +- .../tests/mapping/union/testUnion.pure | 272 ++++--- .../union/testUnionForSQLQueryMerging.pure | 63 +- .../mapping/union/testUnionOptimized.pure | 2 + .../tests/mapping/union/testUnionPartial.pure | 66 +- .../mapping/union/testUnionWithExtends.pure | 2 + .../testUnionWithMultipleChainedJoins.pure | 220 ++--- .../testUnionWithPartialForeignKeyUsage.pure | 74 +- .../relational/tests/query/datePeriods.pure | 240 +++--- .../tests/query/testAssociationMixed.pure | 7 +- .../tests/query/testAssociationToMany.pure | 1 + .../tests/query/testAssociationToOne.pure | 1 + .../tests/query/testOpenVariables.pure | 1 + .../relational/tests/query/testQualifier.pure | 3 +- .../relational/tests/query/testView.pure | 7 +- .../relational/tests/query/testWithEval.pure | 1 + .../tests/query/testWithFunction.pure | 26 +- .../relational/tests/relationalSetUp.pure | 39 +- .../relational/tests/shared.pure | 27 +- .../tests/testRelationalExtension.pure | 41 +- .../fromPure/tests/testToSQLString.pure | 108 +-- .../transform/fromPure/toSQLString.pure | 12 +- .../relational/validation/functions.pure | 51 +- .../validationStandaloneShowcase.pure | 58 +- .../tests/testComplexValidations.pure | 8 +- .../tests/testValidationWithMilestoning.pure | 99 +-- .../relational/validation/validation.pure | 7 +- .../validation/validationAlloy.pure | 4 +- .../contract/contract.pure | 9 +- .../mapping/execution.pure | 64 +- .../runtime/connection.pure | 13 +- .../test/testutils/testutils.pure | 9 +- .../test/simpleRelationalService.pure | 4 +- .../generation/ServicePlanGenerator.java | 6 +- .../core_service/service/extension.pure | 3 +- .../core_service/service/metamodel.pure | 4 +- .../toPureGraph/HelperServiceBuilder.java | 8 +- .../runner/ServicePostValidationRunner.java | 4 +- ...TestLegendServicePostValidationRunner.java | 2 +- .../service/ServiceTestGenerationHelper.java | 11 +- .../ServiceStoreCompilerExtension.java | 5 +- .../contract/storeContract.pure | 1 + .../executionPlan/executionPlan.pure | 2 +- .../executionPlan_generation.pure | 62 +- .../executionPlan/executionPlan_print.pure | 5 +- .../extensions/extension.pure | 1 + .../metamodel/serviceStoreRuntime.pure | 9 +- .../transfers/connection_serviceStore.pure | 2 +- .../transfers/connection_serviceStore.pure | 2 +- .../transfers/connection_serviceStore.pure | 2 +- .../transfers/connection_serviceStore.pure | 2 +- .../transfers/connection_serviceStore.pure | 2 +- .../transfers/connection_serviceStore.pure | 2 +- .../transfers/connection_serviceStore.pure | 2 +- .../transfers/connection_serviceStore.pure | 2 +- .../transfers/connection_serviceStore.pure | 2 +- .../transfers/connection_serviceStore.pure | 4 +- .../transfers/connection_serviceStore.pure | 4 +- .../transfers/connection_serviceStore.pure | 4 +- .../transfers/connection_serviceStore.pure | 4 +- .../transfers/connection_serviceStore.pure | 4 +- .../core_servicestore/tests/mapping.pure | 75 +- .../core_servicestore/tests/store.pure | 28 +- .../snowflakeApp/api/SnowflakeAppService.java | 2 +- .../deployment/SnowflakeAppGenerator.java | 4 +- .../snowflakeApp/api/TestValidation.java | 4 +- .../SnowflakeAppCompilerExtension.java | 4 +- .../metamodel/metamodel.pure | 6 +- .../binding/fromPure/fromPure.pure | 51 +- .../binding/fromPure/tests/shared.pure | 32 +- .../tests/executionPlanExecution.pure | 5 +- .../executionPlan/tests/constraints.pure | 2 + .../tests/executionPlanTest.pure | 4 +- .../executionPlan/tests/simple.pure | 2 + .../executionPlan/tests/utils.pure | 1 + pom.xml | 2 +- 838 files changed, 11880 insertions(+), 9963 deletions(-) create mode 100644 legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/runtime/ConnectionStore.java create mode 100644 legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/runtime/ConnectionStores.java diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 78a14c6cb2a..f220c8d77eb 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -18,6 +18,7 @@ env: CI_DEPLOY_USERNAME: ${{ secrets.CI_DEPLOY_USERNAME }} CI_DEPLOY_PASSWORD: ${{ secrets.CI_DEPLOY_PASSWORD }} SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + MAVEN_OPTS: "-Xmx6g" on: [push, pull_request] @@ -70,8 +71,8 @@ jobs: - name: Build + Test if: github.ref != 'refs/heads/master' run: | - mvn -B -e -DXss4m -DXX:MaxRAMPercentage=90.0 -DskipTests=true install - mvn -B -e -DXss4m -DXX:MaxRAMPercentage=10.0 surefire:test -DargLine="-XX:MaxRAMPercentage=70.0" -Dsurefire.reports.directory=${GITHUB_WORKSPACE}/surefire-reports-aggregate + mvn -B -e -DskipTests=true install + mvn -B -e surefire:test -DargLine="-XX:MaxRAMPercentage=70.0" -Dsurefire.reports.directory=${GITHUB_WORKSPACE}/surefire-reports-aggregate - name: Build + Test + Maven Deploy + Sonar + Docker Snapshot if: github.ref == 'refs/heads/master' @@ -85,8 +86,8 @@ jobs: # and can cause problem with some code generators # See https://github.com/finos/legend-engine/pull/924 run: | - mvn -B -e -DXss4m -DXX:MaxRAMPercentage=90.0 -DskipTests=true deploy -P docker-snapshot,sonar - mvn -B -e -DXss4m -DXX:MaxRAMPercentage=10.0 surefire:test -DargLine="-XX:MaxRAMPercentage=70.0" -Dsurefire.reports.directory=${GITHUB_WORKSPACE}/surefire-reports-aggregate + mvn -B -e -DskipTests=true deploy -P docker-snapshot,sonar + mvn -B -e surefire:test -DargLine="-XX:MaxRAMPercentage=70.0" -Dsurefire.reports.directory=${GITHUB_WORKSPACE}/surefire-reports-aggregate - name: Upload Test Results if: always() diff --git a/docs/queries/queries.md b/docs/queries/queries.md index 64cb59de404..268a396977b 100644 --- a/docs/queries/queries.md +++ b/docs/queries/queries.md @@ -125,7 +125,7 @@ The use of `from` is best understood as limiting the object collection. For exa ``` pure {| Person.all() - ->from(my::Mapping, ^Runtime(connections=^DatabaseConnection(element=my::Db, ...))) + ->from(my::Mapping, ^Runtime(connectionStores=^ConnectionStore(element=my::Db, connection=^DatabaseConnection( ...))) } ``` can be read as query all `Person` objects *that are realizable from the specified Store(s)*. @@ -136,14 +136,14 @@ functions to be negotiated with a Store. For example: {| Person.all() ->filter(p| $p.firstName == 'Peter') - ->from(my::Mapping, ^Runtime(connections=^DatabaseConnection(element=my::Db, ...))) + ->from(my::Mapping, ^Runtime(connectionStores=^ConnectionStore(element=my::Db, connection=^DatabaseConnection( ...))) } ``` implies that the `filter` is available for implementation by a Store. Whereas: ``` pure {| Person.all() - ->from(my::Mapping, ^Runtime(connections=^DatabaseConnection(element=my::Db, ...))) + ->from(my::Mapping, ^Runtime(connectionStores=^ConnectionStore(element=my::Db, connection=^DatabaseConnection( ...))) ->filter(p| $p.firstName == 'Peter') } ``` @@ -543,7 +543,7 @@ _(Object stream return not currently suppored)_ ``` pure {| Person.all() - ->from(my::Mapping, ^Runtime(connections=^DatabaseConnection(element=my::Db, ...))) + ->from(my::Mapping, ^Runtime(connectionStores=^ConnectionStore(element=my::Db, connection=^DatabaseConnection( ...))) } ``` ### Execution Plan @@ -566,7 +566,7 @@ _(Object stream return not currently suppored)_ ``` pure {| Person.all() - ->from(my::Mapping, ^Runtime(connections=^DatabaseConnection(element=my::Db, ...))) + ->from(my::Mapping, ^Runtime(connectionStores=^ConnectionStore(element=my::Db, connection=^DatabaseConnection( ...))) ->filter(p| $p.firstName == 'Peter') ->project(p| $p.firm.legalName, 'Name') } @@ -595,7 +595,7 @@ _(Object stream return not currently suppored)_ ``` pure {| Person.all() - ->from(my::Mapping, ^Runtime(connections=^DatabaseConnection(element=my::Db, ...))) + ->from(my::Mapping, ^Runtime(connectionStores=^ConnectionStore(element=my::Db, connection=^DatabaseConnection( ...))) ->externalize(my::Binding, #{Person {firstName, lastName)}#) } ``` @@ -635,7 +635,7 @@ then ``` pure {| Person.all() - ->from(my::Mapping, ^Runtime(connections=^DatabaseConnection(element=my::Db, ...))) + ->from(my::Mapping, ^Runtime(connectionStores=^ConnectionStore(element=my::Db, connection=^DatabaseConnection( ...))) ->filter(p| $p.firstName == 'Peter') ->project(p| $p.firm.legalName, 'Name') ->externalize(my::TdsBinding) @@ -711,7 +711,7 @@ then LegalEntity.all ->graphFetch(#{...}#) - ->from(my::PersonToLegalEntityMapping, ^Runtime(connections=^ModelConnection(element=^ModelStore(), instances=newMop(pair(Person, list($fromJson)))))) + ->from(my::PersonToLegalEntityMapping, ^Runtime(connectionStores=^ConnectionStore(element=^ModelStore(), connection=^ModelConnection(instances=newMop(pair(Person, list($fromJson))))))) ->externalize(my::SecondBinding, #{...}#) } ``` diff --git a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/src/main/resources/core_configuration/coreExtensions.pure b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/src/main/resources/core_configuration/coreExtensions.pure index 5df00d5480c..c978cfef9c8 100644 --- a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/src/main/resources/core_configuration/coreExtensions.pure +++ b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/src/main/resources/core_configuration/coreExtensions.pure @@ -61,7 +61,7 @@ function <> meta::pure::extension::configuration }#; let query = {|Person.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let extensions = meta::relational::extension::relationalExtensions(); let basicPlan = executionPlan($query, $mapping, $runtime, $extensions); diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/src/test/java/org/finos/legend/engine/external/shared/runtime/test/TestExternalFormatQueries.java b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/src/test/java/org/finos/legend/engine/external/shared/runtime/test/TestExternalFormatQueries.java index 578dc704bc5..7638863c48d 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/src/test/java/org/finos/legend/engine/external/shared/runtime/test/TestExternalFormatQueries.java +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/src/test/java/org/finos/legend/engine/external/shared/runtime/test/TestExternalFormatQueries.java @@ -41,7 +41,7 @@ import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.Mapping; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.LambdaFunction; import org.finos.legend.pure.generated.Root_meta_pure_runtime_ExecutionContext; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Runtime; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Runtime; import java.io.IOException; import java.io.InputStream; @@ -256,7 +256,7 @@ protected String runTest(PureModelContextData generated, String grammar, String extensions.addAllIterable(core_java_platform_binding_legendJavaPlatformBinding_binding_bindingLegendJavaPlatformBindingExtension.Root_meta_external_format_shared_executionPlan_platformBinding_legendJava_bindingExtensionsWithLegendJavaPlatformBinding_ExternalFormatLegendJavaPlatformBindingDescriptor_MANY__Extension_MANY_(Lists.mutable.withAll(formatDescriptors), model.getExecutionSupport())); Mapping mapping = model.getMapping(mappingPath); - Root_meta_pure_runtime_Runtime runtime = model.getRuntime(runtimePath); + Root_meta_core_runtime_Runtime runtime = model.getRuntime(runtimePath); String plan = PlanGenerator.generateExecutionPlanAsString(lambda, mapping, runtime, context, model, "vX_X_X", PlanPlatform.JAVA, "test", extensions, LegendPlanTransformers.transformers); PlanExecutor executor = PlanExecutor.newPlanExecutorWithAvailableStoreExecutors(true); StreamingResult streamingResult = (StreamingResult) executor.execute(plan, input); diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/src/main/java/org/finos/legend/engine/plan/generation/PlanGenerator.java b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/src/main/java/org/finos/legend/engine/plan/generation/PlanGenerator.java index 7497c57da89..149c58e427c 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/src/main/java/org/finos/legend/engine/plan/generation/PlanGenerator.java +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/src/main/java/org/finos/legend/engine/plan/generation/PlanGenerator.java @@ -46,23 +46,23 @@ public class PlanGenerator { private static final Logger LOGGER = org.slf4j.LoggerFactory.getLogger(PlanGenerator.class); - public static String generateExecutionPlanAsString(FunctionDefinition l, Mapping mapping, Root_meta_pure_runtime_Runtime pureRuntime, Root_meta_pure_runtime_ExecutionContext context, PureModel pureModel, String clientVersion, PlanPlatform platform, String planId, RichIterable extensions, Iterable transformers) + public static String generateExecutionPlanAsString(FunctionDefinition l, Mapping mapping, Root_meta_core_runtime_Runtime pureRuntime, Root_meta_pure_runtime_ExecutionContext context, PureModel pureModel, String clientVersion, PlanPlatform platform, String planId, RichIterable extensions, Iterable transformers) { return PlanGenerator.serializeToJSON(PlanGenerator.generateExecutionPlanAsPure(l, mapping, pureRuntime, context, pureModel, platform, planId, extensions), clientVersion, pureModel, extensions, transformers); } - public static PlanWithDebug generateExecutionPlanDebug(FunctionDefinition l, Mapping mapping, Root_meta_pure_runtime_Runtime pureRuntime, Root_meta_pure_runtime_ExecutionContext context, PureModel pureModel, String clientVersion, PlanPlatform platform, String planId, RichIterable extensions, Iterable transformers) + public static PlanWithDebug generateExecutionPlanDebug(FunctionDefinition l, Mapping mapping, Root_meta_core_runtime_Runtime pureRuntime, Root_meta_pure_runtime_ExecutionContext context, PureModel pureModel, String clientVersion, PlanPlatform platform, String planId, RichIterable extensions, Iterable transformers) { Pair res = PlanGenerator.generateExecutionPlanAsPureDebug(l, mapping, pureRuntime, context, pureModel, platform, planId, extensions); return new PlanWithDebug(PlanGenerator.stringToPlan(PlanGenerator.serializeToJSON(res.getOne(), clientVersion, pureModel, extensions, transformers)), res.getTwo()); } - public static SingleExecutionPlan generateExecutionPlan(FunctionDefinition l, Mapping mapping, Root_meta_pure_runtime_Runtime pureRuntime, Root_meta_pure_runtime_ExecutionContext context, PureModel pureModel, String clientVersion, PlanPlatform platform, String planId, RichIterable extensions, Iterable transformers) + public static SingleExecutionPlan generateExecutionPlan(FunctionDefinition l, Mapping mapping, Root_meta_core_runtime_Runtime pureRuntime, Root_meta_pure_runtime_ExecutionContext context, PureModel pureModel, String clientVersion, PlanPlatform platform, String planId, RichIterable extensions, Iterable transformers) { return PlanGenerator.stringToPlan(generateExecutionPlanAsString(l, mapping, pureRuntime, context, pureModel, clientVersion, platform, planId, extensions, transformers)); } - public static SingleExecutionPlan generateExecutionPlanWithTrace(FunctionDefinition l, Mapping mapping, Root_meta_pure_runtime_Runtime pureRuntime, Root_meta_pure_runtime_ExecutionContext context, PureModel pureModel, String clientVersion, PlanPlatform platform, Iterable profiles, RichIterable extensions, Iterable transformers) + public static SingleExecutionPlan generateExecutionPlanWithTrace(FunctionDefinition l, Mapping mapping, Root_meta_core_runtime_Runtime pureRuntime, Root_meta_pure_runtime_ExecutionContext context, PureModel pureModel, String clientVersion, PlanPlatform platform, Iterable profiles, RichIterable extensions, Iterable transformers) { Root_meta_pure_executionPlan_ExecutionPlan plan = generateExecutionPlanAsPure(l, mapping, pureRuntime, context, pureModel, platform, null, extensions); return transformExecutionPlan(plan, pureModel, clientVersion, profiles, extensions, transformers); @@ -79,17 +79,17 @@ public static SingleExecutionPlan transformExecutionPlan(Root_meta_pure_executio } } - public static Pair generateExecutionPlanAsPureDebug(FunctionDefinition l, Mapping mapping, Root_meta_pure_runtime_Runtime pureRuntime, Root_meta_pure_runtime_ExecutionContext context, PureModel pureModel, PlanPlatform platform, String planId, RichIterable extensions) + public static Pair generateExecutionPlanAsPureDebug(FunctionDefinition l, Mapping mapping, Root_meta_core_runtime_Runtime pureRuntime, Root_meta_pure_runtime_ExecutionContext context, PureModel pureModel, PlanPlatform platform, String planId, RichIterable extensions) { return generateExecutionPlanAsPure(l, mapping, pureRuntime, context, pureModel, platform, planId, true, extensions); } - public static Root_meta_pure_executionPlan_ExecutionPlan generateExecutionPlanAsPure(FunctionDefinition l, Mapping mapping, Root_meta_pure_runtime_Runtime pureRuntime, Root_meta_pure_runtime_ExecutionContext context, PureModel pureModel, PlanPlatform platform, String planId, RichIterable extensions) + public static Root_meta_pure_executionPlan_ExecutionPlan generateExecutionPlanAsPure(FunctionDefinition l, Mapping mapping, Root_meta_core_runtime_Runtime pureRuntime, Root_meta_pure_runtime_ExecutionContext context, PureModel pureModel, PlanPlatform platform, String planId, RichIterable extensions) { return generateExecutionPlanAsPure(l, mapping, pureRuntime, context, pureModel, platform, planId, false, extensions).getOne(); } - private static Pair generateExecutionPlanAsPure(FunctionDefinition l, Mapping mapping, Root_meta_pure_runtime_Runtime pureRuntime, Root_meta_pure_runtime_ExecutionContext context, PureModel pureModel, PlanPlatform platform, String planId, boolean debug, RichIterable extensions) + private static Pair generateExecutionPlanAsPure(FunctionDefinition l, Mapping mapping, Root_meta_core_runtime_Runtime pureRuntime, Root_meta_pure_runtime_ExecutionContext context, PureModel pureModel, PlanPlatform platform, String planId, boolean debug, RichIterable extensions) { try (Scope scope = GlobalTracer.get().buildSpan("Generate Plan").startActive(true)) { diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ClassMappingFirstPassBuilder.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ClassMappingFirstPassBuilder.java index 19d6a3bdf96..a9d2207f195 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ClassMappingFirstPassBuilder.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ClassMappingFirstPassBuilder.java @@ -33,7 +33,7 @@ import org.finos.legend.pure.generated.Root_meta_pure_mapping_MergeOperationSetImplementation_Impl; import org.finos.legend.pure.generated.Root_meta_pure_mapping_OperationSetImplementation_Impl; import org.finos.legend.pure.generated.Root_meta_pure_mapping_aggregationAware_AggregationAwareSetImplementation_Impl; -import org.finos.legend.pure.generated.Root_meta_pure_mapping_modelToModel_PureInstanceSetImplementation_Impl; +import org.finos.legend.pure.generated.Root_meta_external_store_model_PureInstanceSetImplementation_Impl; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.EmbeddedSetImplementation; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.InstanceSetImplementation; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.Mapping; @@ -41,7 +41,7 @@ import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.OperationSetImplementation; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.SetImplementation; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.aggregationAware.AggregationAwareSetImplementation; -import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.modelToModel.PureInstanceSetImplementation; +import org.finos.legend.pure.m3.coreinstance.meta.external.store.model.PureInstanceSetImplementation; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.LambdaFunction; import org.finos.legend.pure.m4.coreinstance.SourceInformation; @@ -103,7 +103,7 @@ public Pair> visit(Pu { org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.Class pureClass = this.context.resolveClass(classMapping._class, classMapping.sourceInformation); org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.Class srcClass = classMapping.srcClass == null ? null : this.context.resolveClass(classMapping.srcClass, classMapping.sourceClassSourceInformation); - PureInstanceSetImplementation mappingClass = new Root_meta_pure_mapping_modelToModel_PureInstanceSetImplementation_Impl("", null, context.pureModel.getClass("meta::pure::mapping::modelToModel::PureInstanceSetImplementation")); + PureInstanceSetImplementation mappingClass = new Root_meta_external_store_model_PureInstanceSetImplementation_Impl("", null, context.pureModel.getClass("meta::external::store::model::PureInstanceSetImplementation")); String id = HelperMappingBuilder.getClassMappingId(classMapping, this.context); PureInstanceSetImplementation rootSetImpl = mappingClass ._id(id) diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ClassMappingThirdPassBuilder.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ClassMappingThirdPassBuilder.java index 2eebf9cecb6..4f18c3b0fe5 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ClassMappingThirdPassBuilder.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ClassMappingThirdPassBuilder.java @@ -36,7 +36,7 @@ import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.Mapping; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.PropertyMapping; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.SetImplementation; -import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.modelToModel.PureInstanceSetImplementation; +import org.finos.legend.pure.m3.coreinstance.meta.external.store.model.PureInstanceSetImplementation; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.Enum; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.Type; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.generics.GenericType; @@ -80,7 +80,7 @@ public SetImplementation visit(PureInstanceClassMapping classMapping) PureInstanceSetImplementation s = (PureInstanceSetImplementation) parentMapping._classMappings().select(c -> c._id().equals(HelperMappingBuilder.getClassMappingId(classMapping, this.context))).getFirst(); s._propertyMappings().forEachWithIndex((ObjectIntProcedure) ((p, i) -> { - org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.modelToModel.PurePropertyMapping pm = (org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.modelToModel.PurePropertyMapping) p; + org.finos.legend.pure.m3.coreinstance.meta.external.store.model.PurePropertyMapping pm = (org.finos.legend.pure.m3.coreinstance.meta.external.store.model.PurePropertyMapping) p; org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.property.Property property = pm._property(); SourceInformation pSourceInformation = SourceInformationHelper.fromM3SourceInformation(p.getSourceInformation()); org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.valuespecification.ValueSpecification last = pm._transform()._expressionSequence().getLast(); @@ -110,9 +110,9 @@ public SetImplementation visit(PureInstanceClassMapping classMapping) List setImpls = setImplementation != null ? core_pure_router_operations_router_operations.Root_meta_pure_router_routing_resolveOperation_SetImplementation_MANY__Mapping_1__InstanceSetImplementation_MANY_(Lists.immutable.of(setImplementation), parentMapping, this.context.pureModel.getExecutionSupport()).toList() : Collections.emptyList(); typesToCheck = setImpls.stream().map(setImpl -> ((PureInstanceSetImplementation) setImpl)._srcClass()).collect(Collectors.toList()); } - else if (((org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.modelToModel.PurePropertyMapping) p)._transformer() != null) + else if (((org.finos.legend.pure.m3.coreinstance.meta.external.store.model.PurePropertyMapping) p)._transformer() != null) { - EnumerationMapping m = ((EnumerationMapping) ((org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.modelToModel.PurePropertyMapping) p)._transformer()); + EnumerationMapping m = ((EnumerationMapping) ((org.finos.legend.pure.m3.coreinstance.meta.external.store.model.PurePropertyMapping) p)._transformer()); Object val = m._enumValueMappings().getFirst()._sourceValues().getFirst(); if (val instanceof String) { diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/CompileContext.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/CompileContext.java index 927a0e9d985..b09467162ca 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/CompileContext.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/CompileContext.java @@ -32,10 +32,10 @@ import org.finos.legend.engine.shared.core.operational.errorManagement.EngineException; import org.finos.legend.engine.shared.core.operational.logs.LogInfo; import org.finos.legend.engine.shared.core.operational.logs.LoggingEventType; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Connection; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Connection; import org.finos.legend.pure.generated.Root_meta_pure_runtime_PackageableConnection; import org.finos.legend.pure.generated.Root_meta_pure_runtime_PackageableRuntime; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Runtime; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Runtime; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.Mapping; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.Enum; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.Enumeration; @@ -320,17 +320,17 @@ public Root_meta_pure_runtime_PackageableConnection resolvePackagebleConnection( return this.resolve(fullPath, sourceInformation, path -> this.pureModel.getPackageableConnection(path, sourceInformation)); } - public Root_meta_pure_runtime_Runtime resolveRuntime(String fullPath) + public Root_meta_core_runtime_Runtime resolveRuntime(String fullPath) { return this.resolveRuntime(fullPath, SourceInformation.getUnknownSourceInformation()); } - public Root_meta_pure_runtime_Runtime resolveRuntime(String fullPath, SourceInformation sourceInformation) + public Root_meta_core_runtime_Runtime resolveRuntime(String fullPath, SourceInformation sourceInformation) { return this.resolve(fullPath, sourceInformation, path -> this.pureModel.getRuntime(path, sourceInformation)); } - public Root_meta_pure_runtime_Connection resolveConnection(String fullPath, SourceInformation sourceInformation) + public Root_meta_core_runtime_Connection resolveConnection(String fullPath, SourceInformation sourceInformation) { return this.resolve(fullPath, sourceInformation, path -> this.pureModel.getConnection(path, sourceInformation)); } diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ConnectionFirstPassBuilder.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ConnectionFirstPassBuilder.java index f8e104581e3..e0e5d1ea22c 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ConnectionFirstPassBuilder.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ConnectionFirstPassBuilder.java @@ -31,7 +31,7 @@ import java.util.Objects; -public class ConnectionFirstPassBuilder implements ConnectionVisitor +public class ConnectionFirstPassBuilder implements ConnectionVisitor { private final CompileContext context; @@ -41,7 +41,7 @@ public ConnectionFirstPassBuilder(CompileContext context) } @Override - public Root_meta_pure_runtime_Connection visit(org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.Connection connection) + public Root_meta_core_runtime_Connection visit(org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.Connection connection) { return this.context.getCompilerExtensions().getExtraConnectionValueProcessors().stream() .map(processor -> processor.value(connection, this.context)) @@ -51,47 +51,43 @@ public Root_meta_pure_runtime_Connection visit(org.finos.legend.engine.protocol. } @Override - public Root_meta_pure_runtime_Connection visit(ConnectionPointer connectionPointer) + public Root_meta_core_runtime_Connection visit(ConnectionPointer connectionPointer) { return this.context.resolveConnection(connectionPointer.connection, connectionPointer.sourceInformation); } @Override - public Root_meta_pure_runtime_Connection visit(ModelConnection modelConnection) + public Root_meta_core_runtime_Connection visit(ModelConnection modelConnection) { HelperConnectionBuilder.verifyModelConnectionStore(modelConnection.element, modelConnection.elementSourceInformation); MutableMap, List> pureInstancesMap = HelperConnectionBuilder.processModelInput((ModelStringInput) modelConnection.input, this.context, false, null); - return new Root_meta_pure_mapping_modelToModel_ModelConnection_Impl("", null, context.pureModel.getClass("meta::pure::mapping::modelToModel::ModelConnection")) - ._element(Lists.immutable.with(new Root_meta_pure_mapping_modelToModel_ModelStore_Impl("", null, context.pureModel.getClass("meta::pure::mapping::modelToModel::ModelStore")))) + return new Root_meta_external_store_model_ModelConnection_Impl("", null, context.pureModel.getClass("meta::external::store::model::ModelConnection")) ._instances(new PureMap(pureInstancesMap)); } @Override - public Root_meta_pure_runtime_Connection visit(JsonModelConnection jsonModelConnection) + public Root_meta_core_runtime_Connection visit(JsonModelConnection jsonModelConnection) { HelperConnectionBuilder.verifyModelConnectionStore(jsonModelConnection.element, jsonModelConnection.elementSourceInformation); - return new Root_meta_pure_mapping_modelToModel_JsonModelConnection_Impl("", null, context.pureModel.getClass("meta::pure::mapping::modelToModel::JsonModelConnection")) - ._element(Lists.immutable.with(new Root_meta_pure_mapping_modelToModel_ModelStore_Impl("", null, context.pureModel.getClass("meta::pure::mapping::modelToModel::ModelStore")))) + return new Root_meta_external_store_model_JsonModelConnection_Impl("", null, context.pureModel.getClass("meta::external::store::model::JsonModelConnection")) ._class(this.context.resolveClass(jsonModelConnection._class, jsonModelConnection.classSourceInformation)) ._url(jsonModelConnection.url); } @Override - public Root_meta_pure_runtime_Connection visit(XmlModelConnection xmlModelConnection) + public Root_meta_core_runtime_Connection visit(XmlModelConnection xmlModelConnection) { HelperConnectionBuilder.verifyModelConnectionStore(xmlModelConnection.element, xmlModelConnection.elementSourceInformation); - return new Root_meta_pure_mapping_modelToModel_XmlModelConnection_Impl("", null, context.pureModel.getClass("meta::pure::mapping::modelToModel::XmlModelConnection")) - ._element(Lists.immutable.with(new Root_meta_pure_mapping_modelToModel_ModelStore_Impl("", null, context.pureModel.getClass("meta::pure::mapping::modelToModel::ModelStore")))) + return new Root_meta_external_store_model_XmlModelConnection_Impl("", null, context.pureModel.getClass("meta::external::store::model::XmlModelConnection")) ._class(this.context.resolveClass(xmlModelConnection._class, xmlModelConnection.classSourceInformation)) ._url(xmlModelConnection.url); } @Override - public Root_meta_pure_runtime_Connection visit(ModelChainConnection modelChainConnection) + public Root_meta_core_runtime_Connection visit(ModelChainConnection modelChainConnection) { HelperConnectionBuilder.verifyModelConnectionStore(modelChainConnection.element, modelChainConnection.elementSourceInformation); - return new Root_meta_pure_mapping_modelToModel_ModelChainConnection_Impl("", null, context.pureModel.getClass("meta::pure::mapping::modelToModel::ModelChainConnection")) - ._element(Lists.immutable.with(new Root_meta_pure_mapping_modelToModel_ModelStore_Impl("", null, context.pureModel.getClass("meta::pure::mapping::modelToModel::ModelStore")))) + return new Root_meta_external_store_model_ModelChainConnection_Impl("", null, context.pureModel.getClass("meta::external::store::model::ModelChainConnection")) ._mappings(ListIterate.collect(modelChainConnection.mappings, m -> this.context.resolveMapping(m, modelChainConnection.mappingsSourceInformation))); } } diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ConnectionSecondPassBuilder.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ConnectionSecondPassBuilder.java index e4461cac122..98d86252ca7 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ConnectionSecondPassBuilder.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ConnectionSecondPassBuilder.java @@ -20,21 +20,21 @@ import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.modelToModel.connection.ModelChainConnection; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.modelToModel.connection.ModelConnection; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.modelToModel.connection.XmlModelConnection; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Connection; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Connection; -public class ConnectionSecondPassBuilder implements ConnectionVisitor +public class ConnectionSecondPassBuilder implements ConnectionVisitor { private final CompileContext context; - private final Root_meta_pure_runtime_Connection pureConnection; + private final Root_meta_core_runtime_Connection pureConnection; - public ConnectionSecondPassBuilder(CompileContext context, Root_meta_pure_runtime_Connection pureConnection) + public ConnectionSecondPassBuilder(CompileContext context, Root_meta_core_runtime_Connection pureConnection) { this.context = context; this.pureConnection = pureConnection; } @Override - public Root_meta_pure_runtime_Connection visit(org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.Connection connection) + public Root_meta_core_runtime_Connection visit(org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.Connection connection) { this.context.getCompilerExtensions().getExtraConnectionSecondPassProcessors().stream() .forEach(processor -> processor.value(connection, pureConnection, this.context)); @@ -42,31 +42,31 @@ public Root_meta_pure_runtime_Connection visit(org.finos.legend.engine.protocol. } @Override - public Root_meta_pure_runtime_Connection visit(ConnectionPointer connectionPointer) + public Root_meta_core_runtime_Connection visit(ConnectionPointer connectionPointer) { return this.context.resolveConnection(connectionPointer.connection, connectionPointer.sourceInformation); } @Override - public Root_meta_pure_runtime_Connection visit(ModelConnection modelConnection) + public Root_meta_core_runtime_Connection visit(ModelConnection modelConnection) { return pureConnection; } @Override - public Root_meta_pure_runtime_Connection visit(JsonModelConnection jsonModelConnection) + public Root_meta_core_runtime_Connection visit(JsonModelConnection jsonModelConnection) { return pureConnection; } @Override - public Root_meta_pure_runtime_Connection visit(XmlModelConnection xmlModelConnection) + public Root_meta_core_runtime_Connection visit(XmlModelConnection xmlModelConnection) { return pureConnection; } @Override - public Root_meta_pure_runtime_Connection visit(ModelChainConnection modelChainConnection) + public Root_meta_core_runtime_Connection visit(ModelChainConnection modelChainConnection) { return pureConnection; } diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/HelperMappingBuilder.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/HelperMappingBuilder.java index 4c50338b6a8..0b7db947fb2 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/HelperMappingBuilder.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/HelperMappingBuilder.java @@ -60,7 +60,7 @@ import org.finos.legend.pure.generated.Root_meta_pure_mapping_aggregationAware_GroupByFunctionSpecification_Impl; import org.finos.legend.pure.generated.Root_meta_pure_mapping_metamodel_MappingTestSuite; import org.finos.legend.pure.generated.Root_meta_pure_mapping_metamodel_MappingTestSuite_Impl; -import org.finos.legend.pure.generated.Root_meta_pure_mapping_modelToModel_ModelStore_Impl; +import org.finos.legend.pure.generated.Root_meta_external_store_model_ModelStore_Impl; import org.finos.legend.pure.generated.Root_meta_pure_mapping_xStore_XStoreAssociationImplementation_Impl; import org.finos.legend.pure.generated.Root_meta_pure_metamodel_function_LambdaFunction_Impl; import org.finos.legend.pure.generated.Root_meta_pure_metamodel_function_property_Property_Impl; @@ -577,7 +577,7 @@ static Root_meta_pure_data_StoreTestData processMappingElementTestData(StoreTest .orElseThrow(() -> new UnsupportedOperationException("Unsupported data"))); if (testData.store.equals("ModelStore")) { - mappingStoreTestData._store(new Root_meta_pure_mapping_modelToModel_ModelStore_Impl("")); + mappingStoreTestData._store(new Root_meta_external_store_model_ModelStore_Impl("")); } else { diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/HelperModelBuilder.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/HelperModelBuilder.java index 602327ad991..818abc3a02b 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/HelperModelBuilder.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/HelperModelBuilder.java @@ -29,7 +29,7 @@ import org.finos.legend.engine.shared.core.operational.errorManagement.EngineException; import org.finos.legend.engine.shared.core.operational.logs.LogInfo; import org.finos.legend.engine.shared.core.operational.logs.LoggingEventType; -import org.finos.legend.pure.generated.Root_meta_pure_mapping_modelToModel_ModelStore_Impl; +import org.finos.legend.pure.generated.Root_meta_external_store_model_ModelStore_Impl; import org.finos.legend.pure.generated.Root_meta_pure_metamodel_constraint_Constraint_Impl; import org.finos.legend.pure.generated.Root_meta_pure_metamodel_extension_TaggedValue_Impl; import org.finos.legend.pure.generated.Root_meta_pure_metamodel_function_property_DefaultValue_Impl; @@ -539,7 +539,7 @@ public static boolean isCompatibleDerivedProperty(QualifiedProperty o, org.fi public static String getElementFullPath(PackageableElement element, CompiledExecutionSupport executionSupport) { - if (element instanceof Root_meta_pure_mapping_modelToModel_ModelStore_Impl) + if (element instanceof Root_meta_external_store_model_ModelStore_Impl) { return "ModelStore"; } diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/HelperRuntimeBuilder.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/HelperRuntimeBuilder.java index 56cc968d212..792570cc0af 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/HelperRuntimeBuilder.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/HelperRuntimeBuilder.java @@ -15,12 +15,12 @@ package org.finos.legend.engine.language.pure.compiler.toPureGraph; import org.apache.commons.lang3.StringUtils; +import org.eclipse.collections.api.RichIterable; import org.eclipse.collections.impl.factory.Lists; import org.eclipse.collections.impl.utility.ListIterate; import org.finos.legend.engine.protocol.pure.v1.model.SourceInformation; import org.finos.legend.engine.protocol.pure.v1.model.context.EngineErrorType; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.Connection; -import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.ConnectionPointer; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.runtime.EngineRuntime; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.runtime.LegacyRuntime; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.runtime.PackageableRuntime; @@ -29,7 +29,7 @@ import org.finos.legend.engine.shared.core.operational.errorManagement.EngineException; import org.finos.legend.pure.generated.*; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.Mapping; -import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.modelToModel.PureInstanceSetImplementation; +import org.finos.legend.pure.m3.coreinstance.meta.external.store.model.PureInstanceSetImplementation; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.PackageableElement; import org.finos.legend.pure.m3.coreinstance.meta.pure.store.Store; import org.finos.legend.pure.m4.coreinstance.CoreInstance; @@ -44,9 +44,9 @@ public class HelperRuntimeBuilder { - public static Store getConnectionStore(Root_meta_pure_runtime_Connection connection) + public static Store getConnectionStore(Root_meta_core_runtime_ConnectionStore connectionStore) { - Object store = connection._element(); + Object store = connectionStore._element(); if (store instanceof Store) { return (Store) store; @@ -69,12 +69,12 @@ private static Set getAllMapStorePathsFromMappings(List mapping return mappedStores; } - public static void checkRuntimeMappingCoverage(Root_meta_pure_runtime_Runtime pureRuntime, List mappings, CompileContext context, SourceInformation sourceInformation) + public static void checkRuntimeMappingCoverage(Root_meta_core_runtime_Runtime pureRuntime, List mappings, CompileContext context, SourceInformation sourceInformation) { Set mappedStores = getAllMapStorePathsFromMappings(mappings, context); - ListIterate.forEach(pureRuntime._connections().toList(), connection -> + ListIterate.forEach(pureRuntime._connectionStores().toList(), connectionStore -> { - Store store = getConnectionStore(connection); + Store store = getConnectionStore(connectionStore); // TODO Identify binding store as ModelStore better than this if (store instanceof Root_meta_external_format_shared_binding_Binding) { @@ -97,15 +97,15 @@ public static void checkRuntimeMappingCoverage(Root_meta_pure_runtime_Runtime pu } } - public static Root_meta_pure_runtime_Runtime buildEngineRuntime(EngineRuntime engineRuntime, CompileContext context) + public static Root_meta_core_runtime_Runtime buildEngineRuntime(EngineRuntime engineRuntime, CompileContext context) { // convert EngineRuntime with connection as a map indexes by store to Pure runtime which only contains an array of connections - Root_meta_pure_runtime_Runtime pureRuntime = new Root_meta_pure_runtime_Runtime_Impl("Root::meta::pure::runtime::Runtime"); + Root_meta_core_runtime_Runtime pureRuntime = new Root_meta_core_runtime_Runtime_Impl("Root::meta::core::runtime::Runtime"); buildEngineRuntime(engineRuntime, pureRuntime, context); return pureRuntime; } - public static void buildEngineRuntime(EngineRuntime engineRuntime, Root_meta_pure_runtime_Runtime pureRuntime, CompileContext context) + public static void buildEngineRuntime(EngineRuntime engineRuntime, Root_meta_core_runtime_Runtime pureRuntime, CompileContext context) { if (engineRuntime.mappings.isEmpty()) { @@ -114,18 +114,24 @@ public static void buildEngineRuntime(EngineRuntime engineRuntime, Root_meta_pur // verify if each mapping associated with the PackageableRuntime exists List mappings = engineRuntime.mappings.isEmpty() ? Lists.mutable.empty() : engineRuntime.mappings.stream().map(mappingPointer -> context.resolveMapping(mappingPointer.path, mappingPointer.sourceInformation)).collect(Collectors.toList()); // build connections - List connections = new ArrayList<>(); List visitedSourceClasses = new ArrayList<>(); List visitedConnectionTypes = new ArrayList<>(); List visitedStores = new ArrayList<>(); Set ids = new HashSet<>(); - ListIterate.forEach(engineRuntime.connections.stream().filter(c -> c.store.path.equals("ModelStore") || !(context.resolvePackageableElement(c.store.path, c.store.sourceInformation) instanceof Root_meta_external_format_shared_binding_Binding)).collect(Collectors.toList()), storeConnections -> + ListIterate.forEach(engineRuntime.connectionStores, connectionStores -> { - if (!storeConnections.store.path.equals("ModelStore")) + Root_meta_core_runtime_Connection connection = context.resolveConnection(connectionStores.connectionPointer.connection, connectionStores.connectionPointer.sourceInformation); + ListIterate.forEach(connectionStores.storePointers, storePointer -> { - // verify stores used for indexing exist - context.resolveStore(storeConnections.store.path, storeConnections.store.sourceInformation); - } + Root_meta_core_runtime_ConnectionStore connectionStore = + new Root_meta_core_runtime_ConnectionStore_Impl("") + ._connection(connection) + ._element(getElement(storePointer.path, storePointer.sourceInformation, context)); + pureRuntime._connectionStoresAdd(connectionStore); + }); + }); + ListIterate.forEach(engineRuntime.connections.stream().filter(c -> c.store.path.equals("ModelStore") || !(context.resolvePackageableElement(c.store.path, c.store.sourceInformation) instanceof Root_meta_external_format_shared_binding_Binding)).collect(Collectors.toList()), storeConnections -> + { ListIterate.forEach(storeConnections.storeConnections, identifiedConnection -> { // ID must be unique across all connections of the runtime @@ -137,44 +143,38 @@ public static void buildEngineRuntime(EngineRuntime engineRuntime, Root_meta_pur { ids.add(identifiedConnection.id); } - if (identifiedConnection.connection instanceof ConnectionPointer) + Connection connection = identifiedConnection.connection; + if (connection.element != null) { - ConnectionPointer pointer = (ConnectionPointer) identifiedConnection.connection; - Store connectionStore = HelperRuntimeBuilder.getConnectionStore(context.resolveConnection(pointer.connection, pointer.sourceInformation)); - String connectionStorePath = HelperModelBuilder.getElementFullPath(connectionStore, context.pureModel.getExecutionSupport()); - if (!storeConnections.store.path.equals(connectionStorePath)) + if (!storeConnections.store.path.equals(connection.element)) { - throw new EngineException("Connection pointer for store '" + connectionStorePath + "' should not be indexed to store '" + storeConnections.store.path + "'", pointer.sourceInformation, EngineErrorType.COMPILATION); + throw new EngineException("Connection for store '" + connection.element + "' should not be indexed to store '" + storeConnections.store.path + "'", identifiedConnection.sourceInformation, EngineErrorType.COMPILATION); } - connections.add(identifiedConnection.connection); - } - else if (storeConnections.store.path.equals(identifiedConnection.connection.element)) - { - connections.add(identifiedConnection.connection); - } - else if (identifiedConnection.connection.element == null) - { - identifiedConnection.connection.element = storeConnections.store.path; - identifiedConnection.connection.elementSourceInformation = identifiedConnection.connection.sourceInformation; - connections.add(identifiedConnection.connection); - } - else - { - throw new EngineException("Connection for store '" + identifiedConnection.connection.element + "' should not be indexed to store '" + storeConnections.store.path + "'", identifiedConnection.connection.sourceInformation, EngineErrorType.COMPILATION); } + final Root_meta_core_runtime_Connection pureConnection = connection.accept(new ConnectionFirstPassBuilder(context)); + connection.accept(new ConnectionSecondPassBuilder(context, pureConnection)); + final Root_meta_core_runtime_ConnectionStore connectionStore = new Root_meta_core_runtime_ConnectionStore_Impl("", null, context.pureModel.getClass("meta::core::runtime::ConnectionStore")) + ._connection(pureConnection) + ._element(getElement(storeConnections.store.path, storeConnections.store.sourceInformation, context)); + + pureRuntime._connectionStoresAdd(connectionStore); }); }); - - ListIterate.forEach(connections, connection -> + pureRuntime._connectionStores().forEach(connectionStore -> { - final Root_meta_pure_runtime_Connection pureConnection = connection.accept(new ConnectionFirstPassBuilder(context)); - connection.accept(new ConnectionSecondPassBuilder(context, pureConnection)); - - if (pureConnection instanceof Root_meta_pure_mapping_modelToModel_JsonModelConnection || pureConnection instanceof Root_meta_pure_mapping_modelToModel_XmlModelConnection) + Store store = (Store) connectionStore._element(); + RichIterable potentialDupes = + pureRuntime._connectionStores().select(c -> c._element().equals(store)); + if (potentialDupes.size() > 1 && !(store instanceof Root_meta_external_store_model_ModelStore)) + { + throw new EngineException("Found " + potentialDupes.size() + " connections against store [" + store._name() + "] under a single runtime.", engineRuntime.sourceInformation, EngineErrorType.COMPILATION); + } + Root_meta_core_runtime_Connection pureConnection = connectionStore._connection(); + if (pureConnection instanceof Root_meta_external_store_model_JsonModelConnection || pureConnection instanceof Root_meta_external_store_model_XmlModelConnection) { - if (visitedSourceClasses.contains(pureConnection.getValueForMetaPropertyToOne("class")) && visitedStores.contains(HelperModelBuilder.getElementFullPath((PackageableElement) pureConnection._element(),context.pureModel.getExecutionSupport()))) + if (visitedSourceClasses.contains(pureConnection.getValueForMetaPropertyToOne("class")) && visitedStores.contains(HelperModelBuilder.getElementFullPath((PackageableElement) connectionStore._element(),context.pureModel.getExecutionSupport()))) { - context.pureModel.addWarnings(Lists.mutable.with(new Warning(connection.sourceInformation, "Multiple Connections available for Source Class - " + pureConnection.getValueForMetaPropertyToOne("class")))); + context.pureModel.addWarnings(Lists.mutable.with(new Warning(engineRuntime.sourceInformation, "Multiple Connections available for Source Class - " + pureConnection.getValueForMetaPropertyToOne("class")))); } else { @@ -183,15 +183,15 @@ else if (identifiedConnection.connection.element == null) } else { - if (visitedConnectionTypes.contains(pureConnection.getClassifier()) && visitedStores.contains(HelperModelBuilder.getElementFullPath((PackageableElement) pureConnection._element(),context.pureModel.getExecutionSupport()))) + if (visitedConnectionTypes.contains(pureConnection.getClassifier()) && visitedStores.contains(HelperModelBuilder.getElementFullPath((PackageableElement) connectionStore._element(),context.pureModel.getExecutionSupport()))) { - if (pureConnection instanceof Root_meta_pure_mapping_modelToModel_ModelChainConnection) + if (pureConnection instanceof Root_meta_external_store_model_ModelChainConnection) { - context.pureModel.addWarnings(Lists.mutable.with(new Warning(connection.sourceInformation, "Multiple " + pureConnection.getClassifier() + "s are Not Supported for the same Runtime."))); + context.pureModel.addWarnings(Lists.mutable.with(new Warning(engineRuntime.sourceInformation, "Multiple " + pureConnection.getClassifier() + "s are Not Supported for the same Runtime."))); } else { - context.pureModel.addWarnings(Lists.mutable.with(new Warning(connection.sourceInformation, "Multiple " + pureConnection.getClassifier() + "s are Not Supported for the same Store - " + HelperModelBuilder.getElementFullPath((PackageableElement) pureConnection._element(),context.pureModel.getExecutionSupport())))); + context.pureModel.addWarnings(Lists.mutable.with(new Warning(engineRuntime.sourceInformation, "Multiple " + pureConnection.getClassifier() + "s are Not Supported for the same Store - " + HelperModelBuilder.getElementFullPath((PackageableElement) connectionStore._element(),context.pureModel.getExecutionSupport())))); } } else @@ -200,14 +200,13 @@ else if (identifiedConnection.connection.element == null) } } - visitedStores.add(HelperModelBuilder.getElementFullPath((PackageableElement) pureConnection._element(),context.pureModel.getExecutionSupport())); - pureRuntime._connectionsAdd(pureConnection); + visitedStores.add(HelperModelBuilder.getElementFullPath((PackageableElement) connectionStore._element(),context.pureModel.getExecutionSupport())); }); // verify runtime mapping coverage checkRuntimeMappingCoverage(pureRuntime, mappings, context, engineRuntime.sourceInformation); } - public static Root_meta_pure_runtime_Runtime buildPureRuntime(Runtime runtime, CompileContext context) + public static Root_meta_core_runtime_Runtime buildPureRuntime(Runtime runtime, CompileContext context) { if (runtime == null) { @@ -216,12 +215,15 @@ public static Root_meta_pure_runtime_Runtime buildPureRuntime(Runtime runtime, C if (runtime instanceof LegacyRuntime) { LegacyRuntime legacyRuntime = (LegacyRuntime) runtime; - Root_meta_pure_runtime_Runtime pureRuntime = new Root_meta_pure_runtime_Runtime_Impl("Root::meta::pure::runtime::Runtime"); + Root_meta_core_runtime_Runtime pureRuntime = new Root_meta_core_runtime_Runtime_Impl("Root::meta::core::runtime::Runtime"); ListIterate.forEach(legacyRuntime.connections, connection -> { - final Root_meta_pure_runtime_Connection pureConnection = connection.accept(new ConnectionFirstPassBuilder(context)); + final Root_meta_core_runtime_Connection pureConnection = connection.accept(new ConnectionFirstPassBuilder(context)); connection.accept(new ConnectionSecondPassBuilder(context, pureConnection)); - pureRuntime._connectionsAdd(pureConnection); + final Root_meta_core_runtime_ConnectionStore connectionStore = new Root_meta_core_runtime_ConnectionStore_Impl("", null, context.pureModel.getClass("meta::core::runtime::ConnectionStore")) + ._connection(pureConnection) + ._element(getElement(connection.element, connection.sourceInformation, context)); + pureRuntime._connectionStoresAdd(connectionStore); }); return pureRuntime; } @@ -236,6 +238,25 @@ else if (runtime instanceof RuntimePointer) throw new UnsupportedOperationException(); } + public static Object getElement(String element, SourceInformation sourceInformation, CompileContext context) + { + return element.equals("ModelStore") ? + new Root_meta_external_store_model_ModelStore_Impl("", null, context.pureModel.getClass("meta::external::store::model::ModelStore")) + : resolveElementSafe(element, sourceInformation, context); + } + + private static Object resolveElementSafe(String element, SourceInformation sourceInformation, CompileContext context) + { + try + { + return context.resolveStore(element, sourceInformation); + } + catch (EngineException e) + { + return element; + } + } + /** * NOTE: this compatibility check is fairly simple and only do static analysis on the runtimes * However, we could be more advanced and do some router analysis, etc. diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/PackageableElementFirstPassBuilder.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/PackageableElementFirstPassBuilder.java index 8f458ecd9eb..db8483984f6 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/PackageableElementFirstPassBuilder.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/PackageableElementFirstPassBuilder.java @@ -53,13 +53,13 @@ import org.finos.legend.pure.generated.Root_meta_pure_metamodel_type_Enumeration_Impl; import org.finos.legend.pure.generated.Root_meta_pure_metamodel_type_Measure_Impl; import org.finos.legend.pure.generated.Root_meta_pure_metamodel_type_generics_GenericType_Impl; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Connection; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Connection; import org.finos.legend.pure.generated.Root_meta_pure_runtime_PackageableConnection; import org.finos.legend.pure.generated.Root_meta_pure_runtime_PackageableConnection_Impl; import org.finos.legend.pure.generated.Root_meta_pure_runtime_PackageableRuntime; import org.finos.legend.pure.generated.Root_meta_pure_runtime_PackageableRuntime_Impl; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Runtime; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Runtime_Impl; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Runtime; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Runtime_Impl; import org.finos.legend.pure.m3.coreinstance.Package; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.PackageableElement; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.extension.Stereotype; @@ -264,7 +264,7 @@ public PackageableElement visit(PackageableRuntime packageableRuntime) metamodel._classifierGenericType(packageableRuntimeGenericType); // NOTE: the whole point of this processing is to put the Pure Runtime in an index - Root_meta_pure_runtime_Runtime pureRuntime = new Root_meta_pure_runtime_Runtime_Impl("Root::meta::pure::runtime::Runtime", null, this.context.pureModel.getClass("meta::pure::runtime::Runtime")); + Root_meta_core_runtime_Runtime pureRuntime = new Root_meta_core_runtime_Runtime_Impl("Root::meta::core::runtime::Runtime", null, this.context.pureModel.getClass("meta::core::runtime::Runtime")); this.context.pureModel.runtimesIndex.put(this.context.pureModel.buildPackageString(packageableRuntime._package, packageableRuntime.name), pureRuntime); return setNameAndPackage(metamodel, packageableRuntime); @@ -276,7 +276,7 @@ public PackageableElement visit(PackageableConnection packageableConnection) Root_meta_pure_runtime_PackageableConnection metamodel = new Root_meta_pure_runtime_PackageableConnection_Impl(packageableConnection.name, null, this.context.pureModel.getClass("meta::pure::runtime::PackageableConnection")); this.context.pureModel.packageableConnectionsIndex.put(this.context.pureModel.buildPackageString(packageableConnection._package, packageableConnection.name), metamodel); // NOTE: the whole point of this processing is to put the Pure Connection in an index - Root_meta_pure_runtime_Connection connection = packageableConnection.connectionValue.accept(new ConnectionFirstPassBuilder(this.context)); + Root_meta_core_runtime_Connection connection = packageableConnection.connectionValue.accept(new ConnectionFirstPassBuilder(this.context)); this.context.pureModel.connectionsIndex.put(this.context.pureModel.buildPackageString(packageableConnection._package, packageableConnection.name), connection); return setNameAndPackage(metamodel, packageableConnection); } diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/PackageableElementSecondPassBuilder.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/PackageableElementSecondPassBuilder.java index 0fe6ef62751..9c71c619561 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/PackageableElementSecondPassBuilder.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/PackageableElementSecondPassBuilder.java @@ -235,16 +235,16 @@ public PackageableElement visit(PackageableRuntime packageableRuntime) { String fullPath = this.context.pureModel.buildPackageString(packageableRuntime._package, packageableRuntime.name); Root_meta_pure_runtime_PackageableRuntime metamodel = this.context.pureModel.getPackageableRuntime(fullPath, packageableRuntime.sourceInformation); - Root_meta_pure_runtime_Runtime runtime = this.context.pureModel.getRuntime(fullPath); + Root_meta_core_runtime_Runtime runtime = this.context.pureModel.getRuntime(fullPath); HelperRuntimeBuilder.buildEngineRuntime(packageableRuntime.runtimeValue, runtime, this.context); - metamodel._runtimeValue(new Root_meta_pure_runtime_EngineRuntime_Impl("", null, context.pureModel.getClass("meta::pure::runtime::EngineRuntime"))._mappings(ListIterate.collect(packageableRuntime.runtimeValue.mappings, mappingPointer -> context.resolveMapping(mappingPointer.path, mappingPointer.sourceInformation)))._connections(runtime._connections())); + metamodel._runtimeValue(new Root_meta_core_runtime_EngineRuntime_Impl("", null, context.pureModel.getClass("meta::core::runtime::EngineRuntime"))._mappings(ListIterate.collect(packageableRuntime.runtimeValue.mappings, mappingPointer -> context.resolveMapping(mappingPointer.path, mappingPointer.sourceInformation)))._connectionStores(runtime._connectionStores())); return metamodel; } @Override public PackageableElement visit(PackageableConnection packageableConnection) { - final Root_meta_pure_runtime_Connection pureConnection = this.context.pureModel.getConnection(this.context.pureModel.buildPackageString(packageableConnection._package, packageableConnection.name), packageableConnection.sourceInformation); + final Root_meta_core_runtime_Connection pureConnection = this.context.pureModel.getConnection(this.context.pureModel.buildPackageString(packageableConnection._package, packageableConnection.name), packageableConnection.sourceInformation); packageableConnection.connectionValue.accept(new ConnectionSecondPassBuilder(this.context, pureConnection)); return null; } diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/PropertyMappingBuilder.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/PropertyMappingBuilder.java index 1c19cae467e..76b81c0da9c 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/PropertyMappingBuilder.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/PropertyMappingBuilder.java @@ -27,7 +27,7 @@ import org.finos.legend.engine.shared.core.operational.Assert; import org.finos.legend.engine.shared.core.operational.errorManagement.EngineException; import org.finos.legend.pure.generated.Root_meta_pure_mapping_aggregationAware_AggregationAwarePropertyMapping_Impl; -import org.finos.legend.pure.generated.Root_meta_pure_mapping_modelToModel_PurePropertyMapping_Impl; +import org.finos.legend.pure.generated.Root_meta_external_store_model_PurePropertyMapping_Impl; import org.finos.legend.pure.generated.Root_meta_pure_mapping_xStore_XStorePropertyMapping_Impl; import org.finos.legend.pure.generated.Root_meta_pure_metamodel_function_LambdaFunction_Impl; import org.finos.legend.pure.generated.Root_meta_pure_metamodel_type_generics_GenericType_Impl; @@ -39,7 +39,7 @@ import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.PropertyMapping; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.PropertyMappingsImplementation; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.SetImplementation; -import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.modelToModel.PureInstanceSetImplementation; +import org.finos.legend.pure.m3.coreinstance.meta.external.store.model.PureInstanceSetImplementation; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.xStore.XStoreAssociationImplementation; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.PackageableElement; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.LambdaFunction; @@ -98,7 +98,7 @@ public PropertyMapping visit(org.finos.legend.engine.protocol.pure.v1.model.pack @Override public PropertyMapping visit(PurePropertyMapping propertyMapping) { - org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.modelToModel.PurePropertyMapping pm = new Root_meta_pure_mapping_modelToModel_PurePropertyMapping_Impl("", null, context.pureModel.getType("meta::pure::mapping::modelToModel::PurePropertyMapping")); + org.finos.legend.pure.m3.coreinstance.meta.external.store.model.PurePropertyMapping pm = new Root_meta_external_store_model_PurePropertyMapping_Impl("", null, context.pureModel.getType("meta::external::store::model::PurePropertyMapping")); Property property = HelperMappingBuilder.getMappedProperty(propertyMapping, this.context); pm.setSourceInformation(SourceInformationHelper.toM3SourceInformation(propertyMapping.sourceInformation)); pm._property(property) diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/PureModel.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/PureModel.java index 95e3b37fe0b..3cd223becc8 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/PureModel.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/PureModel.java @@ -70,10 +70,10 @@ import org.finos.legend.pure.generated.Root_meta_pure_metamodel_type_FunctionType_Impl; import org.finos.legend.pure.generated.Root_meta_pure_metamodel_type_PrimitiveType_LazyImpl; import org.finos.legend.pure.generated.Root_meta_pure_metamodel_type_generics_GenericType_Impl; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Connection; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Connection; import org.finos.legend.pure.generated.Root_meta_pure_runtime_PackageableConnection; import org.finos.legend.pure.generated.Root_meta_pure_runtime_PackageableRuntime; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Runtime; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Runtime; import org.finos.legend.pure.m3.coreinstance.Package; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.Mapping; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.multiplicity.Multiplicity; @@ -142,9 +142,9 @@ public class PureModel implements IPureModel final MutableMap storesIndex = Maps.mutable.empty(); final MutableMap mappingsIndex = Maps.mutable.empty(); final MutableMap packageableConnectionsIndex = Maps.mutable.empty(); - final MutableMap connectionsIndex = Maps.mutable.empty(); + final MutableMap connectionsIndex = Maps.mutable.empty(); final MutableMap packageableRuntimesIndex = Maps.mutable.empty(); - final MutableMap runtimesIndex = Maps.mutable.empty(); + final MutableMap runtimesIndex = Maps.mutable.empty(); public static final PureModel CORE_PURE_MODEL = getCorePureModel(); @@ -979,36 +979,36 @@ public Mapping getMapping_safe(String fullPath) } - public Root_meta_pure_runtime_Runtime getRuntime(String fullPath) + public Root_meta_core_runtime_Runtime getRuntime(String fullPath) { return getRuntime(fullPath, SourceInformation.getUnknownSourceInformation()); } - public Root_meta_pure_runtime_Runtime getRuntime(String fullPath, SourceInformation sourceInformation) + public Root_meta_core_runtime_Runtime getRuntime(String fullPath, SourceInformation sourceInformation) { - Root_meta_pure_runtime_Runtime runtime = getRuntime_safe(fullPath); + Root_meta_core_runtime_Runtime runtime = getRuntime_safe(fullPath); Assert.assertTrue(runtime != null, () -> "Can't find runtime '" + fullPath + "'", sourceInformation, EngineErrorType.COMPILATION); return runtime; } - public String getRuntimePath(Root_meta_pure_runtime_Runtime runtime) + public String getRuntimePath(Root_meta_core_runtime_Runtime runtime) { return ListIterate.detect(runtimesIndex.keysView().toList(), (path) -> runtimesIndex.get(path).equals(runtime)); } - public Root_meta_pure_runtime_Runtime getRuntime_safe(String fullPath) + public Root_meta_core_runtime_Runtime getRuntime_safe(String fullPath) { return this.runtimesIndex.get(packagePrefix(fullPath)); } - public Root_meta_pure_runtime_Connection getConnection(String fullPath, SourceInformation sourceInformation) + public Root_meta_core_runtime_Connection getConnection(String fullPath, SourceInformation sourceInformation) { - Root_meta_pure_runtime_Connection connection = this.getConnection_safe(fullPath); + Root_meta_core_runtime_Connection connection = this.getConnection_safe(fullPath); Assert.assertTrue(connection != null, () -> "Can't find connection '" + fullPath + "'", sourceInformation, EngineErrorType.COMPILATION); return connection; } - public Root_meta_pure_runtime_Connection getConnection_safe(String fullPath) + public Root_meta_core_runtime_Connection getConnection_safe(String fullPath) { return this.connectionsIndex.get(packagePrefix(fullPath)); } diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ValueSpecificationBuilder.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ValueSpecificationBuilder.java index 91ee43135f3..ca8962a59da 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ValueSpecificationBuilder.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ValueSpecificationBuilder.java @@ -84,7 +84,7 @@ import org.finos.legend.pure.generated.Root_meta_pure_metamodel_valuespecification_SimpleFunctionExpression_Impl; import org.finos.legend.pure.generated.Root_meta_pure_metamodel_valuespecification_VariableExpression_Impl; import org.finos.legend.pure.generated.Root_meta_pure_runtime_ExecutionContext; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Runtime; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Runtime; import org.finos.legend.pure.generated.Root_meta_pure_tds_AggregateValue_Impl; import org.finos.legend.pure.generated.Root_meta_pure_tds_BasicColumnSpecification_Impl; import org.finos.legend.pure.generated.Root_meta_pure_tds_SortInformation_Impl; @@ -261,9 +261,9 @@ public ValueSpecification visit(EnumValue enumValue) public ValueSpecification processClassInstance(RuntimeInstance runtimeInstance) { - Root_meta_pure_runtime_Runtime _runtime = HelperRuntimeBuilder.buildPureRuntime(runtimeInstance.runtime, this.context); + Root_meta_core_runtime_Runtime _runtime = HelperRuntimeBuilder.buildPureRuntime(runtimeInstance.runtime, this.context); return new Root_meta_pure_metamodel_valuespecification_InstanceValue_Impl("", null, context.pureModel.getClass("meta::pure::metamodel::valuespecification::InstanceValue")) - ._genericType(new Root_meta_pure_metamodel_type_generics_GenericType_Impl("", null, context.pureModel.getClass("meta::pure::metamodel::type::generics::GenericType"))._rawType(this.context.pureModel.getType("meta::pure::runtime::Runtime"))) + ._genericType(new Root_meta_pure_metamodel_type_generics_GenericType_Impl("", null, context.pureModel.getClass("meta::pure::metamodel::type::generics::GenericType"))._rawType(this.context.pureModel.getType("meta::core::runtime::Runtime"))) ._multiplicity(this.context.pureModel.getMultiplicity("one")) ._values(FastList.newListWith(_runtime)); } diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ValueSpecificationBuilderForFuncExpr.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ValueSpecificationBuilderForFuncExpr.java index 5bfd76ecf45..8dd55fb0cae 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ValueSpecificationBuilderForFuncExpr.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ValueSpecificationBuilderForFuncExpr.java @@ -47,8 +47,8 @@ public ValueSpecification visit(org.finos.legend.engine.protocol.pure.v1.model.v if (packageableElement instanceof Root_meta_pure_runtime_PackageableRuntime) { - Root_meta_pure_runtime_Runtime resolvedRuntime = this.context.resolveRuntime(packageableElementPtr.fullPath); - GenericType runtimeGenericType = new Root_meta_pure_metamodel_type_generics_GenericType_Impl("", null, context.pureModel.getClass("meta::pure::metamodel::type::generics::GenericType"))._rawType(this.context.pureModel.getType("meta::pure::runtime::Runtime")); + Root_meta_core_runtime_Runtime resolvedRuntime = this.context.resolveRuntime(packageableElementPtr.fullPath); + GenericType runtimeGenericType = new Root_meta_pure_metamodel_type_generics_GenericType_Impl("", null, context.pureModel.getClass("meta::pure::metamodel::type::generics::GenericType"))._rawType(this.context.pureModel.getType("meta::core::runtime::Runtime")); return new Root_meta_pure_metamodel_valuespecification_InstanceValue_Impl("", null, context.pureModel.getClass("meta::pure::metamodel::valuespecification::InstanceValue")) ._genericType(runtimeGenericType) ._multiplicity(this.context.pureModel.getMultiplicity("one")) diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/extension/CompilerExtension.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/extension/CompilerExtension.java index 4e8843f29e6..cb7a511b9d7 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/extension/CompilerExtension.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/extension/CompilerExtension.java @@ -102,12 +102,12 @@ default List> getExtraConnectionValueProcessors() + default List> getExtraConnectionValueProcessors() { return Collections.emptyList(); } - default List> getExtraConnectionSecondPassProcessors() + default List> getExtraConnectionSecondPassProcessors() { return Collections.emptyList(); } diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/extension/CompilerExtensions.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/extension/CompilerExtensions.java index 806036dd9c8..34f863c2fc8 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/extension/CompilerExtensions.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/extension/CompilerExtensions.java @@ -94,8 +94,8 @@ public class CompilerExtensions private final ImmutableList> extraAggregationAwareClassMappingFirstPassProcessors; private final ImmutableList> extraAggregationAwareClassMappingSecondPassProcessors; private final ImmutableList> extraAssociationMappingProcessors; - private final ImmutableList> extraConnectionValueProcessors; - private final ImmutableList> extraConnectionSecondPassProcessors; + private final ImmutableList> extraConnectionValueProcessors; + private final ImmutableList> extraConnectionSecondPassProcessors; private final ImmutableList> extraMappingTestInputDataProcessors; private final ImmutableList>> extraFunctionHandlerDispatchBuilderInfoCollectors; private final ImmutableList>> extraFunctionExpressionBuilderRegistrationInfoCollectors; @@ -233,12 +233,12 @@ public List> getExtraConnectionValueProcessors() + public List> getExtraConnectionValueProcessors() { return this.extraConnectionValueProcessors.castToList(); } - public List> getExtraConnectionSecondPassProcessors() + public List> getExtraConnectionSecondPassProcessors() { return this.extraConnectionSecondPassProcessors.castToList(); } diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/handlers/Handlers.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/handlers/Handlers.java index 4b65ee3aa26..7f7bdc87b7f 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/handlers/Handlers.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/handlers/Handlers.java @@ -1172,14 +1172,14 @@ private void registerJson() private void registerRuntimeHelper() { - register(h("meta::pure::runtime::mergeRuntimes_Any_$1_MANY$__Runtime_1_", false, ps -> res("meta::pure::runtime::Runtime", "one"), ps -> true)); - register(h("meta::pure::runtime::getRuntimeWithModelConnection_Class_1__Any_MANY__Runtime_1_", false, ps -> res("meta::pure::runtime::Runtime", "one"), ps -> true)); - register(h("meta::pure::runtime::getRuntimeWithModelQueryConnection_Class_1__String_1__String_1__Runtime_1_", false, ps -> res("meta::pure::runtime::Runtime", "one"), ps -> typeOne(ps.get(1), "String") && typeOne(ps.get(2), "String")), - h("meta::pure::runtime::getRuntimeWithModelQueryConnection_Class_1__String_1__Byte_MANY__Runtime_1_", false, ps -> res("meta::pure::runtime::Runtime", "one"), ps -> typeOne(ps.get(1), "String") && typeMany(ps.get(2), "Byte")), - h("meta::pure::runtime::getRuntimeWithModelQueryConnection_Class_1__Binding_1__Byte_MANY__Runtime_1_", false, ps -> res("meta::pure::runtime::Runtime", "one"), ps -> typeMany(ps.get(2), "Byte")), - h("meta::pure::runtime::getRuntimeWithModelQueryConnection_Class_1__Binding_1__String_1__Runtime_1_", false, ps -> res("meta::pure::runtime::Runtime", "one"), ps -> typeOne(ps.get(2), "String"))); - register(h("meta::pure::runtime::generateGuid__String_1_", true, ps -> res("String", "one"), ps -> true)); - register(h("meta::pure::runtime::currentUserId__String_1_", true, ps -> res("String", "one"), ps -> true)); + register(h("meta::core::runtime::mergeRuntimes_Any_$1_MANY$__Runtime_1_", false, ps -> res("meta::core::runtime::Runtime", "one"), ps -> true)); + register(h("meta::core::runtime::getRuntimeWithModelConnection_Class_1__Any_MANY__Runtime_1_", false, ps -> res("meta::core::runtime::Runtime", "one"), ps -> true)); + register(h("meta::core::runtime::getRuntimeWithModelQueryConnection_Class_1__String_1__String_1__Runtime_1_", false, ps -> res("meta::core::runtime::Runtime", "one"), ps -> typeOne(ps.get(1), "String") && typeOne(ps.get(2), "String")), + h("meta::core::runtime::getRuntimeWithModelQueryConnection_Class_1__String_1__Byte_MANY__Runtime_1_", false, ps -> res("meta::core::runtime::Runtime", "one"), ps -> typeOne(ps.get(1), "String") && typeMany(ps.get(2), "Byte")), + h("meta::core::runtime::getRuntimeWithModelQueryConnection_Class_1__Binding_1__Byte_MANY__Runtime_1_", false, ps -> res("meta::core::runtime::Runtime", "one"), ps -> typeMany(ps.get(2), "Byte")), + h("meta::core::runtime::getRuntimeWithModelQueryConnection_Class_1__Binding_1__String_1__Runtime_1_", false, ps -> res("meta::core::runtime::Runtime", "one"), ps -> typeOne(ps.get(2), "String"))); + register(h("meta::core::runtime::generateGuid__String_1_", true, ps -> res("String", "one"), ps -> true)); + register(h("meta::core::runtime::currentUserId__String_1_", true, ps -> res("String", "one"), ps -> true)); } private void registerUnitFunctions() @@ -2063,12 +2063,12 @@ private Map buildDispatch() map.put("meta::pure::mapping::from_T_m__Mapping_1__Runtime_1__T_m_", (List ps) -> ps.size() == 3 && isOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "Mapping".equals(ps.get(1)._genericType()._rawType()._name())) && isOne(ps.get(2)._multiplicity()) && ("Nil".equals(ps.get(2)._genericType()._rawType()._name()) || "Runtime".equals(ps.get(2)._genericType()._rawType()._name()))); map.put("meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__ExecutionContext_1__TabularDataSet_1_", (List ps) -> ps.size() == 4 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "TabularDataSet", "TabularDataSetImplementation", "TableTDS").contains(ps.get(0)._genericType()._rawType()._name()) && isOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "Mapping".equals(ps.get(1)._genericType()._rawType()._name())) && isOne(ps.get(2)._multiplicity()) && ("Nil".equals(ps.get(2)._genericType()._rawType()._name()) || "Runtime".equals(ps.get(2)._genericType()._rawType()._name())) && isOne(ps.get(3)._multiplicity()) && Sets.immutable.with("Nil", "ExecutionContext", "ExtendedExecutionContext", "RelationalExecutionContext", "AuthenticationContext", "AnalyticsExecutionContext", "BatchQueryContext", "LatestBatchQueryContext", "DirtyLatestBatchQueryContext", "VectorBatchQueryContext", "WatermarkExecutionContext", "SpecificWatermarkExecutionContext", "RefinerWatermarkExecutionContext").contains(ps.get(3)._genericType()._rawType()._name())); map.put("meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__TabularDataSet_1_", (List ps) -> ps.size() == 3 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "TabularDataSet", "TabularDataSetImplementation", "TableTDS").contains(ps.get(0)._genericType()._rawType()._name()) && isOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "Mapping".equals(ps.get(1)._genericType()._rawType()._name())) && isOne(ps.get(2)._multiplicity()) && ("Nil".equals(ps.get(2)._genericType()._rawType()._name()) || "Runtime".equals(ps.get(2)._genericType()._rawType()._name()))); - map.put("meta::pure::runtime::mergeRuntimes_Any_$1_MANY$__Runtime_1_", (List ps) -> ps.size() == 1 && matchOneMany(ps.get(0)._multiplicity())); - map.put("meta::pure::runtime::getRuntimeWithModelConnection_Class_1__Any_MANY__Runtime_1_", (List ps) -> ps.size() == 2 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Class", "MappingClass", "ClassProjection").contains(ps.get(0)._genericType()._rawType()._name())); - map.put("meta::pure::runtime::getRuntimeWithModelQueryConnection_Class_1__Binding_1__Byte_MANY__Runtime_1_", (List ps) -> ps.size() == 3 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Class","ClassProjection","MappingClass").contains(ps.get(0)._genericType()._rawType()._name()) && isOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "Binding".equals(ps.get(1)._genericType()._rawType()._name())) && ("Nil".equals(ps.get(2)._genericType()._rawType()._name()) || "Byte".equals(ps.get(2)._genericType()._rawType()._name()))); - map.put("meta::pure::runtime::getRuntimeWithModelQueryConnection_Class_1__Binding_1__String_1__Runtime_1_", (List ps) -> ps.size() == 3 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Class","ClassProjection","MappingClass").contains(ps.get(0)._genericType()._rawType()._name()) && isOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "Binding".equals(ps.get(1)._genericType()._rawType()._name())) && isOne(ps.get(2)._multiplicity()) && ("Nil".equals(ps.get(2)._genericType()._rawType()._name()) || "String".equals(ps.get(2)._genericType()._rawType()._name()))); - map.put("meta::pure::runtime::getRuntimeWithModelQueryConnection_Class_1__String_1__Byte_MANY__Runtime_1_", (List ps) -> ps.size() == 3 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Class","ClassProjection","MappingClass").contains(ps.get(0)._genericType()._rawType()._name()) && isOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "String".equals(ps.get(1)._genericType()._rawType()._name())) && ("Nil".equals(ps.get(2)._genericType()._rawType()._name()) || "Byte".equals(ps.get(2)._genericType()._rawType()._name()))); - map.put("meta::pure::runtime::getRuntimeWithModelQueryConnection_Class_1__String_1__String_1__Runtime_1_", (List ps) -> ps.size() == 3 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Class","ClassProjection","MappingClass").contains(ps.get(0)._genericType()._rawType()._name()) && isOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "String".equals(ps.get(1)._genericType()._rawType()._name())) && isOne(ps.get(2)._multiplicity()) && ("Nil".equals(ps.get(2)._genericType()._rawType()._name()) || "String".equals(ps.get(2)._genericType()._rawType()._name()))); + map.put("meta::core::runtime::mergeRuntimes_Any_$1_MANY$__Runtime_1_", (List ps) -> ps.size() == 1 && matchOneMany(ps.get(0)._multiplicity())); + map.put("meta::core::runtime::getRuntimeWithModelConnection_Class_1__Any_MANY__Runtime_1_", (List ps) -> ps.size() == 2 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil", "Class", "MappingClass", "ClassProjection").contains(ps.get(0)._genericType()._rawType()._name())); + map.put("meta::core::runtime::getRuntimeWithModelQueryConnection_Class_1__Binding_1__Byte_MANY__Runtime_1_", (List ps) -> ps.size() == 3 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Class","ClassProjection","MappingClass").contains(ps.get(0)._genericType()._rawType()._name()) && isOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "Binding".equals(ps.get(1)._genericType()._rawType()._name())) && ("Nil".equals(ps.get(2)._genericType()._rawType()._name()) || "Byte".equals(ps.get(2)._genericType()._rawType()._name()))); + map.put("meta::core::runtime::getRuntimeWithModelQueryConnection_Class_1__Binding_1__String_1__Runtime_1_", (List ps) -> ps.size() == 3 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Class","ClassProjection","MappingClass").contains(ps.get(0)._genericType()._rawType()._name()) && isOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "Binding".equals(ps.get(1)._genericType()._rawType()._name())) && isOne(ps.get(2)._multiplicity()) && ("Nil".equals(ps.get(2)._genericType()._rawType()._name()) || "String".equals(ps.get(2)._genericType()._rawType()._name()))); + map.put("meta::core::runtime::getRuntimeWithModelQueryConnection_Class_1__String_1__Byte_MANY__Runtime_1_", (List ps) -> ps.size() == 3 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Class","ClassProjection","MappingClass").contains(ps.get(0)._genericType()._rawType()._name()) && isOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "String".equals(ps.get(1)._genericType()._rawType()._name())) && ("Nil".equals(ps.get(2)._genericType()._rawType()._name()) || "Byte".equals(ps.get(2)._genericType()._rawType()._name()))); + map.put("meta::core::runtime::getRuntimeWithModelQueryConnection_Class_1__String_1__String_1__Runtime_1_", (List ps) -> ps.size() == 3 && isOne(ps.get(0)._multiplicity()) && Sets.immutable.with("Nil","Class","ClassProjection","MappingClass").contains(ps.get(0)._genericType()._rawType()._name()) && isOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "String".equals(ps.get(1)._genericType()._rawType()._name())) && isOne(ps.get(2)._multiplicity()) && ("Nil".equals(ps.get(2)._genericType()._rawType()._name()) || "String".equals(ps.get(2)._genericType()._rawType()._name()))); map.put("meta::pure::tds::agg_String_1__FunctionDefinition_1__FunctionDefinition_1__AggregateValue_1_", (List ps) -> ps.size() == 3 && isOne(ps.get(0)._multiplicity()) && ("Nil".equals(ps.get(0)._genericType()._rawType()._name()) || "String".equals(ps.get(0)._genericType()._rawType()._name())) && isOne(ps.get(1)._multiplicity()) && Sets.immutable.with("Nil", "FunctionDefinition", "QualifiedProperty", "ConcreteFunctionDefinition", "LambdaFunction", "NewPropertyRouteNodeFunctionDefinition").contains(ps.get(1)._genericType()._rawType()._name()) && isOne(ps.get(2)._multiplicity()) && Sets.immutable.with("Nil", "FunctionDefinition", "QualifiedProperty", "ConcreteFunctionDefinition", "LambdaFunction", "NewPropertyRouteNodeFunctionDefinition").contains(ps.get(2)._genericType()._rawType()._name())); map.put("meta::pure::tds::asc_String_1__SortInformation_1_", (List ps) -> ps.size() == 1 && isOne(ps.get(0)._multiplicity()) && ("Nil".equals(ps.get(0)._genericType()._rawType()._name()) || "String".equals(ps.get(0)._genericType()._rawType()._name()))); map.put("meta::pure::tds::col_Function_1__String_1__BasicColumnSpecification_1_", (List ps) -> ps.size() == 2 && isOne(ps.get(0)._multiplicity()) && ("Nil".equals(ps.get(0)._genericType()._rawType()._name()) || check(funcType(ps.get(0)._genericType()), (FunctionType ft) -> check(ft._parameters().toList(), (List nps) -> nps.size() == 1 && isOne(nps.get(0)._multiplicity())))) && isOne(ps.get(1)._multiplicity()) && ("Nil".equals(ps.get(1)._genericType()._rawType()._name()) || "String".equals(ps.get(1)._genericType()._rawType()._name()))); diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/test/java/org/finos/legend/engine/language/pure/compiler/test/fromGrammar/TestAggregationAwareCompilationFromGrammar.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/test/java/org/finos/legend/engine/language/pure/compiler/test/fromGrammar/TestAggregationAwareCompilationFromGrammar.java index aff8d2b758b..cb6cf14a9dc 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/test/java/org/finos/legend/engine/language/pure/compiler/test/fromGrammar/TestAggregationAwareCompilationFromGrammar.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/test/java/org/finos/legend/engine/language/pure/compiler/test/fromGrammar/TestAggregationAwareCompilationFromGrammar.java @@ -20,7 +20,7 @@ import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.InstanceSetImplementation; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.PropertyOwnerImplementationAccessor; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.aggregationAware.AggregationAwareSetImplementation; -import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.modelToModel.PureInstanceSetImplementation; +import org.finos.legend.pure.m3.coreinstance.meta.external.store.model.PureInstanceSetImplementation; import org.junit.Assert; import org.junit.Test; diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/test/java/org/finos/legend/engine/language/pure/compiler/test/fromGrammar/TestMappingCompilationFromGrammar.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/test/java/org/finos/legend/engine/language/pure/compiler/test/fromGrammar/TestMappingCompilationFromGrammar.java index 6c9a6c73bc9..020145baa8c 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/test/java/org/finos/legend/engine/language/pure/compiler/test/fromGrammar/TestMappingCompilationFromGrammar.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/test/java/org/finos/legend/engine/language/pure/compiler/test/fromGrammar/TestMappingCompilationFromGrammar.java @@ -16,7 +16,7 @@ import org.finos.legend.engine.language.pure.compiler.test.TestCompilationFromGrammar; import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; -import org.finos.legend.pure.generated.Root_meta_pure_mapping_modelToModel_PureInstanceSetImplementation_Impl; +import org.finos.legend.pure.generated.Root_meta_external_store_model_PureInstanceSetImplementation_Impl; import org.junit.Assert; import org.junit.Test; @@ -1462,7 +1462,7 @@ public void testPropertyMappingWithTargetId() "\n" + "\n").getTwo(); - Root_meta_pure_mapping_modelToModel_PureInstanceSetImplementation_Impl classA = (Root_meta_pure_mapping_modelToModel_PureInstanceSetImplementation_Impl) model.getMapping("test::M1")._classMappings().getFirst(); + Root_meta_external_store_model_PureInstanceSetImplementation_Impl classA = (Root_meta_external_store_model_PureInstanceSetImplementation_Impl) model.getMapping("test::M1")._classMappings().getFirst(); Assert.assertEquals(classA._propertyMappings().getLast()._targetSetImplementationId(), "test_B"); } diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/test/java/org/finos/legend/engine/language/pure/compiler/test/fromGrammar/TestRuntimeCompilationFromGrammar.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/test/java/org/finos/legend/engine/language/pure/compiler/test/fromGrammar/TestRuntimeCompilationFromGrammar.java index bc1d46f4bcc..0e0354de51a 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/test/java/org/finos/legend/engine/language/pure/compiler/test/fromGrammar/TestRuntimeCompilationFromGrammar.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/test/java/org/finos/legend/engine/language/pure/compiler/test/fromGrammar/TestRuntimeCompilationFromGrammar.java @@ -145,6 +145,41 @@ public void testRuntime() "}\n", "COMPILATION error at [22:7-17]: Can't find the packageable element 'ModelStore2'"); } + @Test + public void testRuntimeWithConnectionStores() + { + test("Class meta::mySimpleClass\n" + + "{\n" + + " name: String[1];\n" + + "}\n\n" + + "###Mapping\n" + + "Mapping meta::mySimpleMapping\n" + + "(\n" + + ")\n\n\n" + + "###Connection\n" + + "JsonModelConnection meta::mySimpleConnection\n" + + "{\n" + + " class: meta::mySimpleClass;\n" + + " url: 'my_url';\n" + + "}\n\n\n" + + "###Runtime\n" + + "import meta::*;\n" + + "Runtime meta::mySimpleRuntime\n" + + "{\n" + + " connectionStores:\n" + + " [\n" + + // connection pointer + " meta::mySimpleConnection : [\n" + + " ModelStore\n" + + " ]\n" + + " ];\n" + + " mappings : \n" + + // embedded runtime mapping + " [meta::mySimpleMapping\n" + + " ];\n" + + "}\n"); + } + @Test public void testRuntimeWithImport() { @@ -281,7 +316,7 @@ public void testForMultipleModelChainConnectionsWithinSameStore() " connection_2: humanResourceModel::M2MModelChainConnection2\n" + " ]\n" + " ];\n" + - "}",null, Collections.singletonList("COMPILATION error at [84:21-64]: Multiple ModelChainConnections are Not Supported for the same Runtime.")); + "}",null, Collections.singletonList("COMPILATION error at [73:1-87:1]: Multiple ModelChainConnections are Not Supported for the same Runtime.")); } @Test @@ -361,6 +396,6 @@ public void testToCheckForMultipleModelConnectionsForSameSourceClass() " connection_3: modelToModel::test::XmlConnection\n" + " ]\n" + " ];\n" + - "}",null,Collections.singletonList("COMPILATION error at [72:21-53]: Multiple Connections available for Source Class - __Firm")); + "}",null,Collections.singletonList("COMPILATION error at [60:1-75:1]: Multiple Connections available for Source Class - __Firm")); } } diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/runtime/RuntimeLexerGrammar.g4 b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/runtime/RuntimeLexerGrammar.g4 index f4463c98a61..78180176a64 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/runtime/RuntimeLexerGrammar.g4 +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/runtime/RuntimeLexerGrammar.g4 @@ -9,3 +9,4 @@ RUNTIME: 'Runtime'; IMPORT: 'import'; MAPPINGS: 'mappings'; CONNECTIONS: 'connections'; +CONNECTIONSTORES: 'connectionStores'; diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/runtime/RuntimeParserGrammar.g4 b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/runtime/RuntimeParserGrammar.g4 index 8dda29f14d6..52111f58ac5 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/runtime/RuntimeParserGrammar.g4 +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/runtime/RuntimeParserGrammar.g4 @@ -13,6 +13,7 @@ options identifier: VALID_STRING | STRING | RUNTIME | IMPORT | MAPPINGS | CONNECTIONS + | CONNECTIONSTORES ; @@ -28,7 +29,7 @@ importStatement: IMPORT packagePath PATH_SEPARATOR STAR S ; runtime: RUNTIME qualifiedName BRACE_OPEN - (mappings | connections)* + (mappings | connections | connectionStoresList)* BRACE_CLOSE ; mappings: MAPPINGS COLON @@ -41,14 +42,26 @@ connections: CONNECTIONS COLON (storeConnections (COMMA storeConnections)*)? BRACKET_CLOSE SEMI_COLON ; +connectionStoresList: CONNECTIONSTORES COLON + BRACKET_OPEN + (connectionStores (COMMA connectionStores)*)? + BRACKET_CLOSE SEMI_COLON +; storeConnections: qualifiedName COLON BRACKET_OPEN (identifiedConnection (COMMA identifiedConnection)*)? BRACKET_CLOSE ; -identifiedConnection: identifier COLON (connectionPointer | embeddedConnection) +connectionStores: connection COLON + BRACKET_OPEN + (packageableElementPointer (COMMA packageableElementPointer)*)? + BRACKET_CLOSE +; +identifiedConnection: identifier COLON (packageableElementPointer | embeddedConnection) +; +connection: packageableElementPointer ; -connectionPointer: qualifiedName +packageableElementPointer: qualifiedName ; embeddedConnection: ISLAND_OPEN (embeddedConnectionContent)* ; diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/from/runtime/RuntimeParseTreeWalker.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/from/runtime/RuntimeParseTreeWalker.java index d5f72b39c46..3641a15b4d9 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/from/runtime/RuntimeParseTreeWalker.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/from/runtime/RuntimeParseTreeWalker.java @@ -25,10 +25,7 @@ import org.finos.legend.engine.protocol.pure.v1.model.context.PackageableElementType; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.PackageableElement; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.ConnectionPointer; -import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.runtime.EngineRuntime; -import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.runtime.IdentifiedConnection; -import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.runtime.PackageableRuntime; -import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.runtime.StoreConnections; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.runtime.*; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.section.ImportAwareCodeSection; import org.finos.legend.engine.shared.core.operational.errorManagement.EngineException; @@ -78,9 +75,41 @@ public PackageableRuntime visitRuntime(RuntimeParserGrammar.RuntimeContext ctx) // connections (optional) RuntimeParserGrammar.ConnectionsContext connectionsContext = PureGrammarParserUtility.validateAndExtractOptionalField(ctx.connections(), "connections", runtime.sourceInformation); this.addConnectionsByStore(connectionsContext, runtime.runtimeValue); + + // connectionPointerStores (optional) + RuntimeParserGrammar.ConnectionStoresListContext connectionStoresListContext = PureGrammarParserUtility.validateAndExtractOptionalField(ctx.connectionStoresList(), "connectionPointerStores", runtime.sourceInformation); + this.addStoresByConnection(connectionStoresListContext, runtime.runtimeValue); return runtime; } + private void addStoresByConnection(RuntimeParserGrammar.ConnectionStoresListContext connectionStoresListContext, EngineRuntime runtimeValue) + { + if (connectionStoresListContext == null) + { + return; + } + ListIterate.forEach(connectionStoresListContext.connectionStores(), connectionStoresContext -> + { + ConnectionStores connectionStores = new ConnectionStores(); + + connectionStores.connectionPointer = new ConnectionPointer(); + connectionStores.connectionPointer.connection = PureGrammarParserUtility.fromQualifiedName(connectionStoresContext.connection().packageableElementPointer().qualifiedName().packagePath() == null ? Collections.emptyList() : connectionStoresContext.connection().packageableElementPointer().qualifiedName().packagePath().identifier(), connectionStoresContext.connection().packageableElementPointer().qualifiedName().identifier()); + connectionStores.connectionPointer.sourceInformation = walkerSourceInformation.getSourceInformation(connectionStoresContext.connection().packageableElementPointer()); + + connectionStores.sourceInformation = walkerSourceInformation.getSourceInformation(connectionStoresContext); + connectionStores.storePointers = connectionStoresContext.packageableElementPointer() == null ? Collections.emptyList() : ListIterate.collect(connectionStoresContext.packageableElementPointer(), packageableElementPointerContext -> + { + String store = packageableElementPointerContext.qualifiedName().getText().equals("ModelStore") ? "ModelStore" : PureGrammarParserUtility.fromQualifiedName(packageableElementPointerContext.qualifiedName().packagePath() == null ? Collections.emptyList() : packageableElementPointerContext.qualifiedName().packagePath().identifier(), packageableElementPointerContext.qualifiedName().identifier()); + PackageableElementPointer storePointer = new PackageableElementPointer(); + storePointer.type = PackageableElementType.STORE; + storePointer.path = store; + storePointer.sourceInformation = walkerSourceInformation.getSourceInformation(packageableElementPointerContext.qualifiedName()); + return storePointer; + }); + runtimeValue.connectionStores.add(connectionStores); + }); + } + private void addConnectionsByStore(RuntimeParserGrammar.ConnectionsContext connectionsContext, EngineRuntime engineRuntime) { if (connectionsContext != null) @@ -106,9 +135,9 @@ private void addConnectionsByStore(RuntimeParserGrammar.ConnectionsContext conne IdentifiedConnection identifiedConnection = new IdentifiedConnection(); identifiedConnection.sourceInformation = walkerSourceInformation.getSourceInformation(identifiedConnectionContext); identifiedConnection.id = PureGrammarParserUtility.fromIdentifier(identifiedConnectionContext.identifier()); - if (identifiedConnectionContext.connectionPointer() != null) + if (identifiedConnectionContext.packageableElementPointer() != null) { - RuntimeParserGrammar.ConnectionPointerContext connectionPointerContext = identifiedConnectionContext.connectionPointer(); + RuntimeParserGrammar.PackageableElementPointerContext connectionPointerContext = identifiedConnectionContext.packageableElementPointer(); ConnectionPointer connectionPointer = new ConnectionPointer(); connectionPointer.connection = PureGrammarParserUtility.fromQualifiedName(connectionPointerContext.qualifiedName().packagePath() == null ? Collections.emptyList() : connectionPointerContext.qualifiedName().packagePath().identifier(), connectionPointerContext.qualifiedName().identifier()); connectionPointer.sourceInformation = walkerSourceInformation.getSourceInformation(connectionPointerContext.qualifiedName()); diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/to/HelperRuntimeGrammarComposer.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/to/HelperRuntimeGrammarComposer.java index 6a933f83bf7..b63979dd880 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/to/HelperRuntimeGrammarComposer.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/src/main/java/org/finos/legend/engine/language/pure/grammar/to/HelperRuntimeGrammarComposer.java @@ -72,6 +72,26 @@ public static String renderRuntimeValue(EngineRuntime engineRuntime, int baseInd builder.append(String.join(",\n", storeConnectionStrings)); appendTabString(builder.append("\n"), baseIndentation).append("];"); } + if (!engineRuntime.connectionStores.isEmpty()) + { + List connectionStoreStrings = new ArrayList<>(); + engineRuntime.connectionStores.forEach(connectionPointerStore -> + { + if (!connectionPointerStore.storePointers.isEmpty()) + { + connectionStoreStrings.add( + getTabString(baseIndentation + 1) + PureGrammarComposerUtility.convertPath(connectionPointerStore.connectionPointer.connection) + ":\n" + + getTabString(baseIndentation + 1) + "[\n" + + (LazyIterate.collect(connectionPointerStore.storePointers, storePointer -> getTabString(baseIndentation + 2) + PureGrammarComposerUtility.convertPath(storePointer.path))).makeString(",\n") + "\n" + + getTabString(baseIndentation + 1) + "]" + ); + } + }); + appendTabString(builder.append("\n"), baseIndentation).append("connectionStores:\n"); + appendTabString(builder, baseIndentation).append("[\n"); + builder.append(String.join(",\n", connectionStoreStrings)); + appendTabString(builder.append("\n"), baseIndentation).append("];"); + } return builder.toString(); } } diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/parser/TestRuntimeGrammarParser.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/parser/TestRuntimeGrammarParser.java index 395ac7b1963..c416448e5ea 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/parser/TestRuntimeGrammarParser.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/parser/TestRuntimeGrammarParser.java @@ -65,6 +65,13 @@ public void testRuntime() " connections: []; connections: [];" + "}\n" + "\n\n", "PARSER error at [2:1-4:51]: Field 'connections' should be specified only once"); + test("###Runtime\n" + + "Runtime test\n" + + "{\n" + + " mappings: [me];\n" + + " connectionStores: [];\n connectionStores: [];\n" + + "}\n" + + "\n\n", "PARSER error at [2:1-7:1]: Field 'connectionPointerStores' should be specified only once"); // empty embedded connection test("###Runtime\n" + "Runtime meta::mySimpleRuntime\n" + diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/roundtrip/TestRuntimeGrammarRoundtrip.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/roundtrip/TestRuntimeGrammarRoundtrip.java index a7632b5f29c..e832a6bb98b 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/roundtrip/TestRuntimeGrammarRoundtrip.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/roundtrip/TestRuntimeGrammarRoundtrip.java @@ -73,6 +73,34 @@ public void testRuntime() " id3: test::connection\n" + " ]\n" + " ];\n" + + "}\n" + + "\n" + + "Runtime test::runtime5\n" + + "{\n" + + " mappings:\n" + + " [\n" + + " test::mapping::someMapping\n" + + " ];\n" + + " connections:\n" + + " [\n" + + " test::someStore:\n" + + " [\n" + + " id1: test::connection,\n" + + " id2: test::connection\n" + + " ],\n" + + " test::someStore2:\n" + + " [\n" + + " id3: test::connection\n" + + " ]\n" + + " ];\n" + + " connectionStores:\n" + + " [\n" + + " test::connection:\n" + + " [\n" + + " test::store1,\n" + + " test::store2\n" + + " ]\n" + + " ];\n" + "}\n"); } diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/src/main/resources/core_protocol_generation/generation.pure b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/src/main/resources/core_protocol_generation/generation.pure index 623e525208c..ed2a6a417fa 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/src/main/resources/core_protocol_generation/generation.pure +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/src/main/resources/core_protocol_generation/generation.pure @@ -349,7 +349,7 @@ function <> meta::protocols::generation::java::generateClass(c:m let taxonomy = $c->findTaxonomy($context.taxonomies); - let isAbstract = $c->hasStereotype('abstract', typemodifiers) + let isAbstract = $c->hasStereotype('abstract', typemodifiers) // todo - fix protocols that expect these to be abstract but dont define as abstract? || ($taxonomy->isNotEmpty() && $c.specializations->isNotEmpty() && $c.generalizations.general.rawType == Any); @@ -527,7 +527,7 @@ function meta::protocols::generation::java::addProvidedTypesFromDependencies(con let depConventions = conventions($config.purePackage, $config.javaPackage, $basePackageStr); let pgs = getAllPackageElements($pack, true)->filter(x | $x->instanceOf(meta::pure::metamodel::type::Type))->cast(@meta::pure::metamodel::type::Type); - + $pgs->fold({pg: meta::pure::metamodel::type::Type[1], c2: Conventions[1] | let name = $depConventions.typeAndPackageNameStrategy->toOne()->eval($pg, $depConventions); $c2->addProvidedType($pg, $name.first + '.' + $name.second); @@ -539,7 +539,8 @@ function meta::protocols::generation::java::addProvidedTypesFromDependencies(con function <> meta::protocols::generation::java::conventionsCoreProvidedTypes(c:Conventions[1]):Conventions[1] { $c->addProvidedType(meta::pure::store::Store, 'org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.Store') - ->addProvidedType(meta::pure::runtime::Connection, 'org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.Connection') + ->addProvidedType(meta::core::runtime::Connection, 'org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.Connection') + ->addProvidedType(meta::core::runtime::ConnectionStore, 'org.finos.legend.engine.protocol.pure.v1.model.packageableElement.runtime.ConnectionStore') ->addProvidedType(meta::pure::mapping::PropertyMapping, 'org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mapping.PropertyMapping') ->addProvidedType(meta::pure::executionPlan::ExecutionNode, 'org.finos.legend.engine.protocol.pure.v1.model.executionPlan.nodes.ExecutionNode') ->addProvidedType(meta::pure::runtime::ExecutionContext, 'org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.raw.executionContext.ExecutionContext') @@ -561,4 +562,4 @@ function meta::protocols::generation::java::generateVisitor(taxonomy : Taxonomy[ ->sortBy(a|$a.name->toOne()) ->map(c| javaMethod($typeParam, 'visit', j_parameter(pureTypeToJavaType($conventions, $c, PureOne), 'val'))) ); -} \ No newline at end of file +} diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/runtime/ConnectionStore.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/runtime/ConnectionStore.java new file mode 100644 index 00000000000..30d19ac585e --- /dev/null +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/runtime/ConnectionStore.java @@ -0,0 +1,23 @@ +// Copyright 2020 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.model.packageableElement.runtime; + +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.Connection; + +public class ConnectionStore +{ + public Connection connection; + public String element; +} diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/runtime/ConnectionStores.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/runtime/ConnectionStores.java new file mode 100644 index 00000000000..45ad47992dd --- /dev/null +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/runtime/ConnectionStores.java @@ -0,0 +1,29 @@ +// Copyright 2020 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.model.packageableElement.runtime; + +import org.finos.legend.engine.protocol.pure.v1.model.SourceInformation; +import org.finos.legend.engine.protocol.pure.v1.model.context.PackageableElementPointer; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.ConnectionPointer; + +import java.util.ArrayList; +import java.util.List; + +public class ConnectionStores +{ + public ConnectionPointer connectionPointer; + public List storePointers = new ArrayList(); + public SourceInformation sourceInformation; +} diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/runtime/EngineRuntime.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/runtime/EngineRuntime.java index b0a99dc1e98..896c4687a8d 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/runtime/EngineRuntime.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/runtime/EngineRuntime.java @@ -24,10 +24,17 @@ public class EngineRuntime extends Runtime { public List mappings = new ArrayList<>(); public List connections = new ArrayList<>(); + public List connectionStores = new ArrayList<>(); @JsonIgnore public StoreConnections getStoreConnections(String store) { return this.connections.stream().filter(storeConnections -> storeConnections.store.path.equals(store)).findFirst().orElse(null); } + + @JsonIgnore + public ConnectionStores getConnectionStores(String connection) + { + return this.connectionStores.stream().filter(connectionStores -> connectionStores.connectionPointer.connection.equals(connection)).findFirst().orElse(null); + } } diff --git a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/src/main/java/org/finos/legend/engine/query/pure/api/Execute.java b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/src/main/java/org/finos/legend/engine/query/pure/api/Execute.java index e1e65b7b0e7..a514e2c7bf8 100644 --- a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/src/main/java/org/finos/legend/engine/query/pure/api/Execute.java +++ b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/src/main/java/org/finos/legend/engine/query/pure/api/Execute.java @@ -73,7 +73,7 @@ import org.finos.legend.engine.plan.execution.planHelper.PrimitiveValueSpecificationToObjectVisitor; import org.finos.legend.pure.generated.Root_meta_pure_extension_Extension; import org.finos.legend.pure.generated.Root_meta_pure_runtime_ExecutionContext; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Runtime; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Runtime; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.Mapping; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.LambdaFunction; import org.pac4j.core.profile.CommonProfile; @@ -273,7 +273,7 @@ private PlanWithDebug buildPlan(ExecuteInput executeInput, MutableList lambda = HelperValueSpecificationBuilder.buildLambda(executeInput.function.body, executeInput.function.parameters, pureModel.getContext()); Mapping mapping = executeInput.mapping == null ? null : pureModel.getMapping(executeInput.mapping); - Root_meta_pure_runtime_Runtime runtime = HelperRuntimeBuilder.buildPureRuntime(executeInput.runtime, pureModel.getContext()); + Root_meta_core_runtime_Runtime runtime = HelperRuntimeBuilder.buildPureRuntime(executeInput.runtime, pureModel.getContext()); Root_meta_pure_runtime_ExecutionContext context = HelperValueSpecificationBuilder.processExecutionContext(executeInput.context, pureModel.getContext()); return debug ? PlanGenerator.generateExecutionPlanDebug(lambda, mapping, runtime, context, pureModel, clientVersion, PlanPlatform.JAVA, null, this.extensions.apply(pureModel), this.transformers) : diff --git a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/src/test/java/org/finos/legend/engine/query/pure/api/test/inMemory/TestExecuteFunctionExecutionPlan.java b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/src/test/java/org/finos/legend/engine/query/pure/api/test/inMemory/TestExecuteFunctionExecutionPlan.java index bfc7310fadc..698e453114f 100644 --- a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/src/test/java/org/finos/legend/engine/query/pure/api/test/inMemory/TestExecuteFunctionExecutionPlan.java +++ b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/src/test/java/org/finos/legend/engine/query/pure/api/test/inMemory/TestExecuteFunctionExecutionPlan.java @@ -32,7 +32,7 @@ import org.finos.legend.pure.generated.Root_meta_pure_executionPlan_ExecutionPlan; import org.finos.legend.pure.generated.Root_meta_pure_extension_Extension; import org.finos.legend.pure.generated.Root_meta_pure_mapping_Mapping_Impl; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Runtime_Impl; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Runtime_Impl; import org.finos.legend.pure.generated.core_pure_executionPlan_executionPlan_generation; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.ConcreteFunctionDefinition; import org.junit.Assert; @@ -49,7 +49,7 @@ private Result getResultFromFunctionGrammar(String functionGrammar, Map concreteFxn = pureModelForFunction.getConcreteFunctionDefinition_safe(funcName); RichIterable extensions = core_java_platform_binding_legendJavaPlatformBinding_store_m2m_m2mLegendJavaPlatformBindingExtension.Root_meta_pure_mapping_modelToModel_executionPlan_platformBinding_legendJava_inMemoryExtensionsWithLegendJavaPlatformBinding__Extension_MANY_(pureModelForFunction.getExecutionSupport()); - Root_meta_pure_executionPlan_ExecutionPlan executionPlanInPure = core_pure_executionPlan_executionPlan_generation.Root_meta_pure_executionPlan_executionPlan_FunctionDefinition_1__Mapping_1__Runtime_1__Extension_MANY__ExecutionPlan_1_(concreteFxn, new Root_meta_pure_mapping_Mapping_Impl(""), new Root_meta_pure_runtime_Runtime_Impl(""), extensions, pureModelForFunction.getExecutionSupport()); + Root_meta_pure_executionPlan_ExecutionPlan executionPlanInPure = core_pure_executionPlan_executionPlan_generation.Root_meta_pure_executionPlan_executionPlan_FunctionDefinition_1__Mapping_1__Runtime_1__Extension_MANY__ExecutionPlan_1_(concreteFxn, new Root_meta_pure_mapping_Mapping_Impl(""), new Root_meta_core_runtime_Runtime_Impl(""), extensions, pureModelForFunction.getExecutionSupport()); PlanPlatform platform = PlanPlatform.JAVA; executionPlanInPure = platform.bindPlan(executionPlanInPure, null, pureModelForFunction, extensions); SingleExecutionPlan singleExecPlan = PlanGenerator.transformExecutionPlan(executionPlanInPure, pureModelForFunction, "vX_X_X", null, extensions, LegendPlanTransformers.transformers); diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/src/main/java/org/finos/legend/engine/testData/generation/service/TestDataGenerationService.java b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/src/main/java/org/finos/legend/engine/testData/generation/service/TestDataGenerationService.java index 248f368d0b6..fa0d0ebeaa3 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/src/main/java/org/finos/legend/engine/testData/generation/service/TestDataGenerationService.java +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/src/main/java/org/finos/legend/engine/testData/generation/service/TestDataGenerationService.java @@ -22,6 +22,7 @@ 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.data.RelationalCSVTable; import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.raw.Lambda; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Runtime; import org.finos.legend.pure.generated.Root_meta_relational_metamodel_data_RelationalCSVData; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.Mapping; import org.finos.legend.pure.generated.core_relational_relational_testDataGeneration_testDataGeneration; diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/src/main/java/org/finos/legend/engine/test/runner/mapping/MappingTestRunner.java b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/src/main/java/org/finos/legend/engine/test/runner/mapping/MappingTestRunner.java index 5f3ee6f138b..81fb2474bcc 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/src/main/java/org/finos/legend/engine/test/runner/mapping/MappingTestRunner.java +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/src/main/java/org/finos/legend/engine/test/runner/mapping/MappingTestRunner.java @@ -50,25 +50,17 @@ import org.finos.legend.engine.shared.core.url.DataProtocolHandler; import org.finos.legend.engine.test.runner.shared.ComparisonError; import org.finos.legend.engine.test.runner.shared.JsonNodeComparator; -import org.finos.legend.pure.generated.Root_meta_pure_extension_Extension; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Connection; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Runtime_Impl; +import org.finos.legend.pure.generated.*; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.LambdaFunction; +import javax.ws.rs.core.MediaType; import java.io.ByteArrayOutputStream; import java.io.IOException; import java.nio.charset.StandardCharsets; -import java.util.ArrayList; -import java.util.Base64; -import java.util.Collection; -import java.util.Collections; -import java.util.Iterator; -import java.util.List; -import java.util.Objects; -import java.util.Optional; -import java.util.ServiceLoader; +import java.util.*; import java.util.function.Consumer; -import javax.ws.rs.core.MediaType; + +import static org.finos.legend.engine.language.pure.compiler.toPureGraph.HelperRuntimeBuilder.getElement; @Deprecated public class MappingTestRunner @@ -81,7 +73,7 @@ public class MappingTestRunner public final MappingTest_Legacy mappingTestLegacy; private final Iterable planTransformers; private final RichIterable extensions; - private final Root_meta_pure_runtime_Runtime_Impl runtime; + private final Root_meta_core_runtime_Runtime_Impl runtime; private final String pureVersion; public MappingTestRunner(PureModel pureModel, String mappingPath, MappingTest_Legacy mappingTestLegacy, PlanExecutor executor, RichIterable extensions, Iterable transformers, String pureVersion) @@ -90,7 +82,7 @@ public MappingTestRunner(PureModel pureModel, String mappingPath, MappingTest_Le this.executor = executor; this.mappingPath = mappingPath; this.mappingTestLegacy = mappingTestLegacy; - this.runtime = new Root_meta_pure_runtime_Runtime_Impl(""); + this.runtime = new Root_meta_core_runtime_Runtime_Impl(""); this.planTransformers = transformers; this.extensions = extensions; this.pureVersion = pureVersion; @@ -104,8 +96,15 @@ public MappingTestRunner(PureModel pureModel, String mappingPath, MappingTest_Le public void setupTestData() { - ConnectionVisitor connectionVisitor = new ConnectionFirstPassBuilder(this.pureModel.getContext()); - this.buildTestConnection(conn -> this.runtime._connectionsAdd(conn.accept(connectionVisitor))); + ConnectionVisitor connectionVisitor = new ConnectionFirstPassBuilder(this.pureModel.getContext()); + this.buildTestConnection(conn -> + { + CompileContext context = this.pureModel.getContext(); + Root_meta_core_runtime_ConnectionStore connectionStore = new Root_meta_core_runtime_ConnectionStore_Impl("") + ._connection(conn.accept(connectionVisitor)) + ._element(getElement(conn.element, conn.elementSourceInformation, context)); + this.runtime._connectionStoresAdd(connectionStore); + }); } private void buildTestConnection(Consumer connectionRegistrar) @@ -121,6 +120,7 @@ private void buildTestConnection(Consumer connectionRegistra if (ObjectInputType.JSON.equals(objectInputData.inputType)) { JsonModelConnection jsonModelConnection = new JsonModelConnection(); + jsonModelConnection.element = "ModelStore"; jsonModelConnection._class = objectInputData.sourceClass; jsonModelConnection.url = DataProtocolHandler.DATA_PROTOCOL_NAME + ":" + MediaType.APPLICATION_JSON + ";base64," + Base64.getEncoder().encodeToString(objectInputData.data.getBytes(StandardCharsets.UTF_8)); connectionRegistrar.accept(jsonModelConnection); @@ -129,6 +129,7 @@ else if (ObjectInputType.XML.equals(objectInputData.inputType)) { XmlModelConnection xmlModelConnection = new XmlModelConnection(); xmlModelConnection._class = objectInputData.sourceClass; + xmlModelConnection.element = "ModelStore"; xmlModelConnection.url = DataProtocolHandler.DATA_PROTOCOL_NAME + ":" + MediaType.APPLICATION_XML + ";base64," + Base64.getEncoder().encodeToString(objectInputData.data.getBytes(StandardCharsets.UTF_8)); connectionRegistrar.accept(xmlModelConnection); } diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/src/main/java/org/finos/legend/engine/testable/mapping/extension/MappingTestRunner.java b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/src/main/java/org/finos/legend/engine/testable/mapping/extension/MappingTestRunner.java index 843faa60c84..52e11c1d323 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/src/main/java/org/finos/legend/engine/testable/mapping/extension/MappingTestRunner.java +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/src/main/java/org/finos/legend/engine/testable/mapping/extension/MappingTestRunner.java @@ -19,6 +19,7 @@ import org.eclipse.collections.api.tuple.Pair; import org.eclipse.collections.impl.tuple.Tuples; import org.eclipse.collections.impl.utility.ListIterate; +import org.finos.legend.engine.language.pure.compiler.toPureGraph.CompileContext; import org.finos.legend.engine.language.pure.compiler.toPureGraph.ConnectionFirstPassBuilder; import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; import org.finos.legend.engine.plan.execution.PlanExecutor; @@ -45,10 +46,7 @@ import org.finos.legend.engine.shared.core.operational.Assert; import org.finos.legend.engine.testable.assertion.TestAssertionEvaluator; import org.finos.legend.engine.testable.extension.TestRunner; -import org.finos.legend.pure.generated.Root_meta_pure_mapping_metamodel_MappingTestSuite; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Runtime_Impl; -import org.finos.legend.pure.generated.Root_meta_pure_test_AtomicTest; -import org.finos.legend.pure.generated.Root_meta_pure_test_TestSuite; +import org.finos.legend.pure.generated.*; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.Mapping; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -59,6 +57,7 @@ import java.util.stream.Collectors; import static org.finos.legend.engine.language.pure.compiler.toPureGraph.HelperModelBuilder.getElementFullPath; +import static org.finos.legend.engine.language.pure.compiler.toPureGraph.HelperRuntimeBuilder.getElement; public class MappingTestRunner implements TestRunner { @@ -133,12 +132,19 @@ private TestResult executeMappingTest(MappingTest mappingTest, MappingTestRunne List>> connections = Lists.mutable.empty(); try { - Root_meta_pure_runtime_Runtime_Impl runtime = new Root_meta_pure_runtime_Runtime_Impl(""); + Root_meta_core_runtime_Runtime_Impl runtime = new Root_meta_core_runtime_Runtime_Impl(""); List> connectionInfo = mappingTest.storeTestData.stream().map(testData -> Tuples.pair(testData.store, EmbeddedDataHelper.resolveEmbeddedDataInPMCD(context.getPureModelContextData(), testData.data))).collect(Collectors.toList()); connections = connectionInfo.stream() .map(pair -> this.factories.collect(f -> f.tryBuildTestConnectionsForStore(context.getDataElementIndex(), resolveStore(context.getPureModelContextData(), pair.getOne()), pair.getTwo())).select(Objects::nonNull).select(Optional::isPresent) .collect(Optional::get).getFirstOptional().orElseThrow(() -> new UnsupportedOperationException("Unsupported store type for:'" + pair.getOne() + "' mentioned while running the mapping tests"))).collect(Collectors.toList()); - connections.forEach(conn -> runtime._connectionsAdd(conn.getOne().accept(context.getConnectionVisitor()))); + connections.forEach(connection -> + { + Connection conn = connection.getOne(); + Root_meta_core_runtime_ConnectionStore connectionStore = new Root_meta_core_runtime_ConnectionStore_Impl("") + ._connection(conn.accept(context.getConnectionVisitor())) + ._element(getElement(conn.element, conn.elementSourceInformation, context.getPureModel().getContext())); + runtime._connectionStoresAdd(connectionStore); + }); handleGenerationOfPlan(connections.stream().map(Pair::getOne).collect(Collectors.toList()), runtime, context); // execute assertion TestAssertion assertion = mappingTest.assertions.get(0); @@ -162,7 +168,7 @@ private TestResult executeMappingTest(MappingTest mappingTest, MappingTestRunne } } - private void handleGenerationOfPlan(List incomingConnections, Root_meta_pure_runtime_Runtime_Impl runtime, MappingTestRunnerContext context) + private void handleGenerationOfPlan(List incomingConnections, Root_meta_core_runtime_Runtime_Impl runtime, MappingTestRunnerContext context) { SingleExecutionPlan executionPlan = context.getPlan(); boolean reusePlan = false; diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/src/main/java/org/finos/legend/engine/testable/mapping/extension/MappingTestRunnerContext.java b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/src/main/java/org/finos/legend/engine/testable/mapping/extension/MappingTestRunnerContext.java index 118dabbb37e..0b0ca6a94de 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/src/main/java/org/finos/legend/engine/testable/mapping/extension/MappingTestRunnerContext.java +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/src/main/java/org/finos/legend/engine/testable/mapping/extension/MappingTestRunnerContext.java @@ -28,7 +28,7 @@ import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mapping.Mapping; import org.finos.legend.pure.generated.Root_meta_pure_extension_Extension; import org.finos.legend.pure.generated.Root_meta_pure_mapping_metamodel_MappingTestSuite; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Connection; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Connection; import java.util.List; import java.util.Map; @@ -38,7 +38,7 @@ class MappingTestRunnerContext private final PureModel pureModel; private final PureModelContextData pureModelContextData; private final MutableList executionPlanTransformers; - private final ConnectionVisitor connectionVisitor; + private final ConnectionVisitor connectionVisitor; private final Root_meta_pure_mapping_metamodel_MappingTestSuite metamodelTestSuite; private final RichIterable routerExtensions; private final org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mapping.Mapping mapping; @@ -48,7 +48,7 @@ class MappingTestRunnerContext private List connections; public MappingTestRunnerContext(Root_meta_pure_mapping_metamodel_MappingTestSuite metamodelTestSuite, org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mapping.Mapping mapping, PureModel pureModel, PureModelContextData pureModelContextData, MutableList executionPlanTransformers, - ConnectionVisitor connectionVisitor, RichIterable routerExtensions) + ConnectionVisitor connectionVisitor, RichIterable routerExtensions) { this.pureModel = pureModel; this.pureModelContextData = pureModelContextData; @@ -114,7 +114,7 @@ public void withPlan(SingleExecutionPlan plan) this.plan = plan; } - public ConnectionVisitor getConnectionVisitor() + public ConnectionVisitor getConnectionVisitor() { return connectionVisitor; } diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core.definition.json b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core.definition.json index e941f8b9f01..50b6dafc54d 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core.definition.json +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core.definition.json @@ -1,6 +1,6 @@ { "name": "core", - "pattern": "(meta::json|meta::protocols|meta::external::format::shared|meta::pure|meta::alloy|meta::external::format::yaml|meta::legend)(::.*)?", + "pattern": "(meta::json|meta::protocols|meta::external::format::shared|meta::pure|meta::core|meta::external::store::model|meta::alloy|meta::external::format::yaml|meta::legend)(::.*)?", "dependencies": [ "platform", "platform_functions", @@ -12,4 +12,4 @@ "platform_store_relational", "core_functions" ] -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/legend/objectReference/objectReference.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/legend/objectReference/objectReference.pure index 6351a76eb77..46ddd7c6222 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/legend/objectReference/objectReference.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/legend/objectReference/objectReference.pure @@ -14,6 +14,7 @@ import meta::json::*; import meta::alloy::objectReference::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; @@ -38,4 +39,4 @@ function <> meta::alloy::objectReference::generateVersionedObjec $pkMaps->map(pkMap | $versionedFunc->eval($mapping, $rootSetId, $setId, $runtime, $pkMap, $extensions); )->toJSON(); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/binding/executionPlan/tests/executionPlanTests.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/binding/executionPlan/tests/executionPlanTests.pure index 22dd298b16a..a0fccc0b51e 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/binding/executionPlan/tests/executionPlanTests.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/binding/executionPlan/tests/executionPlanTests.pure @@ -25,7 +25,9 @@ import meta::pure::executionPlan::toString::*; import meta::pure::graphFetch::execution::*; import meta::pure::mapping::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::model::unit::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::extension::*; @@ -130,7 +132,7 @@ function <> meta::external::format::shared::exe let binding = testBinding(); let planString = buildPlan({| Person->internalize($binding, 'FIRST_NAME,LAST_NAME\nFred,Bloggs')}); - let expected = + let expected = 'ExternalFormat_Internalize\n' + '(\n' + ' type = Class[impls=]\n' + @@ -449,7 +451,14 @@ function <> meta::external::format::shared::exe { let binding = testBinding(); let tree = #{TargetPerson{fullName}}#; - let planString = buildPlan({data:Byte[*]| TargetPerson.all()->graphFetch($tree)->from(M2MMapping, mergeRuntimes([^Runtime(connections = ^ModelChainConnection(element=^ModelStore(), mappings = M2MMapping1)), getRuntimeWithModelQueryConnection(_Person, $binding, $data)]))->externalize($binding, $tree);}); + let planString = buildPlan({data:Byte[*]| TargetPerson.all()->graphFetch($tree)->from(M2MMapping, mergeRuntimes( + [ + ^Runtime( + connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection=^ModelChainConnection(mappings = M2MMapping1)) + ), + getRuntimeWithModelQueryConnection(_Person, $binding, $data)]))->externalize($binding, $tree);}); let expected = 'Sequence\n' + @@ -552,7 +561,7 @@ function <> meta::external::format::shared::exe let binding = testBinding(); let tree = #{TargetPerson{fullName}}#; - let query = {data:Byte[*]| TargetPerson.all()->graphFetch($tree)->from(M2MMapping, mergeRuntimes([^Runtime(connections = ^ModelChainConnection(element=^ModelStore(), mappings = M2MMapping1)), getRuntimeWithModelQueryConnection(_Person, $binding, $data)]))->externalize($binding, $tree);}; + let query = {data:Byte[*]| TargetPerson.all()->graphFetch($tree)->from(M2MMapping, mergeRuntimes([^Runtime(connectionStores = ^ConnectionStore(element=^ModelStore(), connection=^ModelChainConnection(mappings = M2MMapping1))), getRuntimeWithModelQueryConnection(_Person, $binding, $data)]))->externalize($binding, $tree);}; assertEmpty($query->extractRuntimesFromFunctionDefinition(true)); let query1 = {data:Byte[*]| TargetPerson.all()->graphFetch($tree)->from(M2MMapping, getRuntimeWithModelQueryConnection(_Person, $binding, $data))->externalize($binding, $tree);}; @@ -602,4 +611,4 @@ Mapping meta::external::format::shared::executionPlan::tests::M2MMapping1 firstName : $src.firstName, lastName : $src.lastName } -) \ No newline at end of file +) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/metaExtension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/metaExtension.pure index 02949ed3446..6bee2a3fe0e 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/metaExtension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/metaExtension.pure @@ -17,6 +17,7 @@ import meta::pure::metamodel::path::*; import meta::pure::router::clustering::*; import meta::pure::router::metamodel::*; import meta::pure::router::metamodel::clustering::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::pure::functions::meta::forgivingPathToElement(path:String[1]):PackageableElement[0..1] @@ -189,12 +190,12 @@ function meta::pure::functions::meta::isDataTypeProperty(p: Property[ !$p.genericType.rawType->isEmpty() && $p.genericType.rawType->toOne()->instanceOf(DataType) } -function {doc.doc = 'Checks if the value of a property is a primitive (string/int/enum/etc.)'} +function {doc.doc = 'Checks if the value of a property is a primitive (string/int/enum/etc.)'} meta::pure::functions::meta::isPrimitiveValueProperty(property : AbstractProperty[1]) : Boolean[1] { $property.genericType.rawType->toOne()->match([ - pt:PrimitiveType[1] | true, - et:Enumeration[1] | true, + pt:PrimitiveType[1] | true, + et:Enumeration[1] | true, a:Class[1] | false, u: Unit[1] | true, m: Measure[1] | true @@ -220,11 +221,11 @@ function meta::pure::functions::meta::pathToPackage(path:String[1]):Package[1] function meta::pure::functions::meta::pathToPackage(path:String[1], createMissing : Boolean[1]):Package[1] { - $path->split('::')->fold({str:String[1], pkg:Package[1] | + $path->split('::')->fold({str:String[1], pkg:Package[1] | let p = $pkg->cast(@Package).children->filter(c | $c.name == $str); - if ($p->isNotEmpty(), - | $p->cast(@Package)->toOne(), - | if(!$createMissing, + if ($p->isNotEmpty(), + | $p->cast(@Package)->toOne(), + | if(!$createMissing, | fail(| $path + ' is not a valid Package. Package \'' + $str + '\' not found in ' + $pkg->elementToPath()); []->cast(@Package)->toOne();, | ^Package(name = $str, package = $pkg); ); @@ -326,7 +327,7 @@ function meta::pure::functions::meta::findPackagableElement(obj : Any[1]) : Pack } function meta::pure::functions::meta::functionReturnMultiplicity(f:Function[1]):Multiplicity[1] -{ +{ $f->match( [ p:AbstractProperty[1] | $p.multiplicity, @@ -367,14 +368,14 @@ function meta::pure::functions::meta::findExpressionsForFunctionInValueSpecifica function <> meta::pure::functions::meta::findExpressionsForFunctionInValueSpecification(vs:ValueSpecification[1], funcs:Function[*], shouldRecurse:Function<{FunctionDefinition[1]->Boolean[1]}>[1], visitedFuncs:FunctionDefinition[*]):FunctionExpression[*] { - $vs->match([fe:FunctionExpression[1] | + $vs->match([fe:FunctionExpression[1] | let res = $fe.parametersValues->map(v | $v->findExpressionsForFunctionInValueSpecification($funcs, $shouldRecurse, $visitedFuncs)); - if ( !($fe.func->instanceOf(Property) || $fe.func->instanceOf(QualifiedProperty)) && ($funcs->isEmpty() || $fe.func->in($funcs)), - | [$fe]->concatenate($res), + if ( !($fe.func->instanceOf(Property) || $fe.func->instanceOf(QualifiedProperty)) && ($funcs->isEmpty() || $fe.func->in($funcs)), + | [$fe]->concatenate($res), | $fe.func->match([ fd:ConcreteFunctionDefinition[1] | - if(!($fd->in($visitedFuncs)) && $shouldRecurse->eval($fd), - |$fd->findExpressionsForFunctionInFunctionDefinition($funcs, $shouldRecurse, $visitedFuncs)->concatenate($res), + if(!($fd->in($visitedFuncs)) && $shouldRecurse->eval($fd), + |$fd->findExpressionsForFunctionInFunctionDefinition($funcs, $shouldRecurse, $visitedFuncs)->concatenate($res), |$res);, a:Any[1] | $res ]););, @@ -405,13 +406,13 @@ function <> meta::pure::functions::meta::findExpressionsForFunct function meta::pure::functions::meta::extractRuntimesFromFunctionDefinition(func:FunctionDefinition[1]):Runtime[*] { - extractRuntimesFromFunctionDefinition($func, false) + extractRuntimesFromFunctionDefinition($func, false) } function meta::pure::functions::meta::extractRuntimesFromFunctionDefinition(func:FunctionDefinition[1], filterBeforeCast:Boolean[1]):Runtime[*] { - let fromExprList = $func->findExpressionsForFunctionInFunctionDefinition([from_TabularDataSet_1__Mapping_1__Runtime_1__ExecutionContext_1__TabularDataSet_1_, - from_TabularDataSet_1__Mapping_1__Runtime_1__TabularDataSet_1_, + let fromExprList = $func->findExpressionsForFunctionInFunctionDefinition([from_TabularDataSet_1__Mapping_1__Runtime_1__ExecutionContext_1__TabularDataSet_1_, + from_TabularDataSet_1__Mapping_1__Runtime_1__TabularDataSet_1_, from_T_m__Mapping_1__Runtime_1__T_m_]); $fromExprList->evaluateAndDeactivate()->map(exp | $exp.parametersValues->at(2)->evaluateAndDeactivate()->filter(p | !$filterBeforeCast || $p->instanceOf(InstanceValue))->cast(@InstanceValue).values)->cast(@Runtime); } @@ -493,7 +494,7 @@ function meta::pure::functions::meta::reprocessVSWithInScopeVars(v:ValueSpecific fe:FunctionExpression[1] | ^$fe ( func=$fe.func->match([ - fd:QualifiedProperty[1]|$fd->reprocessLambdaWithInScopeVars(^Map>()), + fd:QualifiedProperty[1]|$fd->reprocessLambdaWithInScopeVars(^Map>()), v: Function[1]|$v ]), parametersValues=$fe.parametersValues->map(v|$v->reprocessVSWithInScopeVars($inScopeVars)) @@ -521,7 +522,7 @@ function meta::pure::functions::meta::reprocessVariableExpressionsName(v:ValueSp fe:FunctionExpression[1] | ^$fe ( func=$fe.func->match([ - fd:QualifiedProperty[1]|$fd->reprocessVariableExpressionsNameInLambda($nameMap), + fd:QualifiedProperty[1]|$fd->reprocessVariableExpressionsNameInLambda($nameMap), v: Function[1]|$v ]), parametersValues=$fe.parametersValues->map(v|$v->reprocessVariableExpressionsName($nameMap)) @@ -547,22 +548,22 @@ function {doc.doc = 'Get all generalisations of a type'} function meta::pure::functions::meta::simpleToString(obj : Any[1]) : String[1] { let type = $obj->type(); - if($type->instanceOf(Class), - {| + if($type->instanceOf(Class), + {| let theClass = $type->cast(@Class); - + let theProperties = $theClass->getAllTypeGeneralisations()->remove(Any)->map(t|$t->match([c:Class[1]|$c, a:Any[*]|[]])).properties->removeAll(Class.properties); - + let p = $theProperties->sortBy(p|$p.name->toOne())->map(p| let val = $p->eval($obj); - if($val->size() == 1, - | '%s=%s%s%s'->format([$p.name->toOne(), if($val->toOne()->instanceOf(String), |'\'', |''), $val->makeString(), if($val->toOne()->instanceOf(String), |'\'', |'')]), + if($val->size() == 1, + | '%s=%s%s%s'->format([$p.name->toOne(), if($val->toOne()->instanceOf(String), |'\'', |''), $val->makeString(), if($val->toOne()->instanceOf(String), |'\'', |'')]), | '%s=%s'->format([$p.name->toOne(), $val->map(v|if($v->instanceOf(String), |'\'', |'') + $v->makeString() + if($v->instanceOf(String), |'\'', |''))->joinStrings('[',', ', ']')]) ); ); - + '%s(%s)'->format($theClass->elementToPath()->concatenate($p->joinStrings(', '))); - }, + }, | $obj->makeString() ); } @@ -588,7 +589,7 @@ function meta::pure::functions::meta::stringToDataType(dt : String[1]) : DataTyp function meta::pure::functions::meta::multiplicitySubsumes(subsuming:Multiplicity[1], subsumed:Multiplicity[1]) :Boolean[1] { - + let lower1 = if($subsuming->hasLowerBound(),|$subsuming->getLowerBound(),|-1); let upper1 = if($subsuming->hasUpperBound(),|$subsuming->getUpperBound(),|-1); let lower2 = if($subsumed->hasLowerBound(),|$subsumed->getLowerBound(),|-1); @@ -708,4 +709,4 @@ function meta::pure::functions::meta::typeName(any:Any[1]):String[1] function meta::pure::functions::meta::typePath(any:Any[1]):String[1] { $any->type()->elementToPath(); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/executionPlan.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/executionPlan.pure index c7179f82d1e..53c0068d2a0 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/executionPlan.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/executionPlan.pure @@ -16,6 +16,7 @@ import meta::pure::executionPlan::*; import meta::pure::executionPlan::toString::*; import meta::pure::router::clustering::*; import meta::pure::router::metamodel::clustering::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; @@ -82,7 +83,7 @@ Class meta::pure::executionPlan::ExecutionNode kerberos : String[0..1]; supportFunctions : String[*]; requiredVariableInputs : VariableInput[*]; - + implementation : PlatformImplementation[0..1]; childNodes() diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/executionPlan_execution.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/executionPlan_execution.pure index 6b68b48f74d..c3353c6af81 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/executionPlan_execution.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/executionPlan_execution.pure @@ -16,6 +16,7 @@ import meta::pure::executionPlan::toString::*; import meta::pure::executionPlan::*; import meta::pure::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; @@ -54,11 +55,11 @@ function meta::pure::executionPlan::buildVariableTemplateString(name:String[1], { if ($extensions.executionPlan_execution_buildVariableTemplateString->isEmpty(), | '', - | $runtime.connections->at(0)->match( + | $runtime.connectionStores.connection->at(0)->match( $extensions.executionPlan_execution_buildVariableTemplateString->map(e|$e->eval($name, $parameterVal, $type))->toOneMany() ) ) - + } function meta::pure::executionPlan::buildVariableCollectionSizeString(name:String[1]): String[1] diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/executionPlan_generation.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/executionPlan_generation.pure index 2f8dc3b3ec9..f205ed5abe0 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/executionPlan_generation.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/executionPlan_generation.pure @@ -17,6 +17,7 @@ import meta::pure::graphFetch::*; import meta::pure::router::clustering::*; import meta::pure::router::metamodel::clustering::*; import meta::pure::router::utils::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::pure::executionPlan::*; @@ -36,22 +37,22 @@ function meta::pure::executionPlan::executionPlan(f:FunctionDefinition[1], $f->executionPlan($context, $extensions, noDebug()); } -function meta::pure::executionPlan::executionPlan(f:FunctionDefinition[1], m:Mapping[1], runtime:Runtime[1], extensions:meta::pure::extension::Extension[*], debugContext:DebugContext[1]):ExecutionPlan[1] +function meta::pure::executionPlan::executionPlan(f:FunctionDefinition[1], m:Mapping[1], runtime:meta::core::runtime::Runtime[1], extensions:meta::pure::extension::Extension[*], debugContext:DebugContext[1]):ExecutionPlan[1] { $f->executionPlan($m, $runtime, ^ExecutionContext(), $extensions, $debugContext); } -function meta::pure::executionPlan::executionPlan(f:FunctionDefinition[1], m:Mapping[1], runtime:Runtime[1], extensions:meta::pure::extension::Extension[*]):ExecutionPlan[1] +function meta::pure::executionPlan::executionPlan(f:FunctionDefinition[1], m:Mapping[1], runtime:meta::core::runtime::Runtime[1], extensions:meta::pure::extension::Extension[*]):ExecutionPlan[1] { $f->executionPlan($m, $runtime, ^ExecutionContext(), $extensions, noDebug()); } -function meta::pure::executionPlan::executionPlan(f:FunctionDefinition[1], m:Mapping[1], runtime:Runtime[1], shouldDebug:Boolean[1], extensions:meta::pure::extension::Extension[*]):ExecutionPlan[1] +function meta::pure::executionPlan::executionPlan(f:FunctionDefinition[1], m:Mapping[1], runtime:meta::core::runtime::Runtime[1], shouldDebug:Boolean[1], extensions:meta::pure::extension::Extension[*]):ExecutionPlan[1] { $f->executionPlan($m, $runtime, ^ExecutionContext(), $extensions, if($shouldDebug,|debug(),|noDebug())); } -function meta::pure::executionPlan::executionPlan(f:FunctionDefinition[1], m:Mapping[1], runtime:Runtime[1], context:ExecutionContext[1], extensions:meta::pure::extension::Extension[*]):ExecutionPlan[1] +function meta::pure::executionPlan::executionPlan(f:FunctionDefinition[1], m:Mapping[1], runtime:meta::core::runtime::Runtime[1], context:ExecutionContext[1], extensions:meta::pure::extension::Extension[*]):ExecutionPlan[1] { $f->executionPlan($m, $runtime, $context, $extensions, noDebug()); } @@ -87,30 +88,30 @@ Class meta::pure::executionPlan::PlanSetPlaceHolder function meta::pure::executionPlan::executionPlan(f:FunctionDefinition[1], context:ExecutionContext[1], extensions:meta::pure::extension::Extension[*], debugContext:DebugContext[1]):ExecutionPlan[1] { let routed = $f->routeFunction($context, $extensions, $debugContext); - meta::pure::executionPlan::executionPlan($routed, $f, ^Mapping(package=meta::pure::executionPlan, name='dummy'), ^Runtime(), $context, $extensions, $debugContext); + meta::pure::executionPlan::executionPlan($routed, $f, ^Mapping(package=meta::pure::executionPlan, name='dummy'), ^meta::core::runtime::Runtime(), $context, $extensions, $debugContext); } -function meta::pure::executionPlan::executionPlan(f:FunctionDefinition[1], m:Mapping[1], runtime:Runtime[1], context:ExecutionContext[1], extensions:meta::pure::extension::Extension[*], debugContext:DebugContext[1]):ExecutionPlan[1] +function meta::pure::executionPlan::executionPlan(f:FunctionDefinition[1], m:Mapping[1], runtime:meta::core::runtime::Runtime[1], context:ExecutionContext[1], extensions:meta::pure::extension::Extension[*], debugContext:DebugContext[1]):ExecutionPlan[1] { let routed = $f->routeFunction($m, $runtime, $context, $extensions, $debugContext); meta::pure::executionPlan::executionPlan($routed, $f, $m, $runtime, $context, $extensions, $debugContext); } -function meta::pure::executionPlan::executionPlan(routedFunction:FunctionDefinition[1], f:FunctionDefinition[1], m:Mapping[1], runtime:Runtime[1], context:ExecutionContext[1], extensions:meta::pure::extension::Extension[*], debugContext:DebugContext[1]):ExecutionPlan[1] +function meta::pure::executionPlan::executionPlan(routedFunction:FunctionDefinition[1], f:FunctionDefinition[1], m:Mapping[1], runtime:meta::core::runtime::Runtime[1], context:ExecutionContext[1], extensions:meta::pure::extension::Extension[*], debugContext:DebugContext[1]):ExecutionPlan[1] { let clusters = $routedFunction.expressionSequence->evaluateAndDeactivate()->cast(@ClusteredValueSpecification); let openVars = $f->openVariableValues(); let functionParameters = $f->stubFuncParameters(); let inScopeVars = $functionParameters->map(ep|pair($ep.name, ^List(values=$ep)))->newMap()->putAll($openVars); - + meta::pure::executionPlan::executionPlan($clusters, $routedFunction, $f, $m, $runtime, $context, $inScopeVars, $extensions, $debugContext); } -function meta::pure::executionPlan::executionPlan(clusters:ClusteredValueSpecification[*], routedFunction:FunctionDefinition[1], f:FunctionDefinition[1], m:Mapping[1], runtime:Runtime[1], context:ExecutionContext[1], inScopeVars:Map>[1], extensions:meta::pure::extension::Extension[*], debugContext:DebugContext[1]):ExecutionPlan[1] +function meta::pure::executionPlan::executionPlan(clusters:ClusteredValueSpecification[*], routedFunction:FunctionDefinition[1], f:FunctionDefinition[1], m:Mapping[1], runtime:meta::core::runtime::Runtime[1], context:ExecutionContext[1], inScopeVars:Map>[1], extensions:meta::pure::extension::Extension[*], debugContext:DebugContext[1]):ExecutionPlan[1] { let functionParameters = $f->stubFuncParameters(); - + print(if($debugContext.debug,|'\nGenerating Execution Plan:\n',|'')); let node = if ($clusters->size() == 1, | print(if($debugContext.debug,|'Generating plan for cluster: '+$clusters->at(0)->meta::pure::router::printer::asString()+'\n',|'')); @@ -171,7 +172,7 @@ function <> meta::pure::executionPlan::addFunctionParametersVali let collectionEnumParams = $planVarPlaceHolders->filter(p | $p.type->instanceOf(Enumeration) && $p.multiplicity == ZeroMany); assert($collectionEnumParams->size() == 0, |'Collection of Enums is not supported as service parameter ' + $collectionEnumParams->map(p | $p.name)->makeString('[',', ',']')); let enumValidationContext = $planVarPlaceHolders->filter(p | $p.type->instanceOf(Enumeration))->map(e | ^meta::pure::executionPlan::EnumValidationContext(varName = $e.name, validEnumValues = $e.type->cast(@Enumeration)->enumValues()->map(e |$e->id()))); - let paramsSupportedForStreamInput = $routedFunction->findParamsSupportedForStreamInput(); + let paramsSupportedForStreamInput = $routedFunction->findParamsSupportedForStreamInput(); if($planVarPlaceHolders->isNotEmpty(),| let functionParameters = $planVarPlaceHolders->map(p|^FunctionParameter(name=$p.name, supportsStream = $p.name->in($paramsSupportedForStreamInput), multiplicity=$p.multiplicity, type=$p.type)); let functionParametersValidationNode = ^FunctionParametersValidationNode(functionParameters = $functionParameters, resultType=^ResultType(type = Boolean), parameterValidationContext = $enumValidationContext); $node->match([s:SequenceExecutionNode[1]|^$s(executionNodes=$functionParametersValidationNode->concatenate($s.executionNodes)), diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/executionPlan_print.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/executionPlan_print.pure index bb672d577eb..9f6dff33c4f 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/executionPlan_print.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/executionPlan_print.pure @@ -16,10 +16,12 @@ import meta::pure::executionPlan::*; import meta::pure::executionPlan::toString::*; import meta::pure::mapping::aggregationAware::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::metamodel::serialization::grammar::*; import meta::pure::metamodel::treepath::*; import meta::pure::extension::*; import meta::pure::router::printer::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::router::clustering::*; import meta::pure::router::metamodel::clustering::*; @@ -73,7 +75,7 @@ function <> meta::pure::executionPlan::toString::printImplementat $space+'(\n'+ $e->match([ j:JavaPlatformImplementation[1] | - if($j.executionClassFullName->isEmpty(), |'', |$space+' calls = '+$j.executionClassFullName->toOne()+if($j.executionMethodName->isEmpty(), |'', |'.'+$j.executionMethodName->toOne())+'\n') + + if($j.executionClassFullName->isEmpty(), |'', |$space+' calls = '+$j.executionClassFullName->toOne()+if($j.executionMethodName->isEmpty(), |'', |'.'+$j.executionMethodName->toOne())+'\n') + if($j.classes->isEmpty(),|'',|$space+' classes =\n' + $j.classes->map({class | let sourceLines = $class.source->replace('\n\n', '\n<>\n') ->split('\n') @@ -128,9 +130,8 @@ function meta::pure::executionPlan::toString::connectionToString(connection:Conn $connection->class() ->toString() + '('+ $connection->match( $extensions.executionPlanExtensions().printConnectionToString->map(x|$x->eval($extensions))->concatenate( - [ - connection:Connection[1] | $connection.element ->toString() - ])->toOneMany() + [connection:Connection[1] | ''] + )->toOneMany() ) + ')' -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/extensions.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/extensions.pure index 9898c08ac18..d2051617f44 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/extensions.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/executionPlan/extensions.pure @@ -1,4 +1,5 @@ import meta::pure::executionPlan::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::extension::*; import meta::pure::mapping::*; @@ -17,7 +18,7 @@ Class meta::pure::executionPlan::extension::ExecutionPlanExtension planGraphFetchExecution : Function<{StoreMappingLocalGraphFetchExecutionNodeGenerationInput[1] -> LocalGraphFetchExecutionNode[1]}>[0..1]; planCrossGraphFetchExecution : Function<{StoreMappingCrossLocalGraphFetchExecutionNodeGenerationInput[1] -> LocalGraphFetchExecutionNode[1]}>[0..1]; - reprocessConnection : Function<{Connection[1]->Connection[1]}>[0..1]; + reprocessConnection : Function<{ConnectionStore[1]->Connection[1]}>[0..1]; extractVariablesFromExecutionOption : Function<{ExecutionOption[1]->PlanVarPlaceHolder[*]}>[0..1]; crossStoreSourceSupportsBatching : Function<{InstanceSetImplementation[1], AbstractProperty[*], Map[1] -> Boolean[1]}>[0..1]; -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/extensions/extension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/extensions/extension.pure index 263d4016cc2..9a1600ccd0e 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/extensions/extension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/extensions/extension.pure @@ -21,6 +21,7 @@ import meta::pure::executionPlan::*; import meta::pure::router::routing::*; import meta::pure::router::clustering::*; import meta::pure::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::store::*; import meta::pure::extension::*; @@ -43,7 +44,7 @@ Class meta::pure::extension::Extension availableFeatures : FeatureExtension[*]; // ------------------------------------------------------------------------ Feature Extension - routerExtensions() + routerExtensions() { $this.availableStores->concatenate($this.availableFeatures)->cast(@meta::pure::router::extension::RouterExtension) } : meta::pure::router::extension::RouterExtension[*]; @@ -164,7 +165,7 @@ function <> meta::pure::extension::print::printExtension(extensi { let indent = indent($depth); - let storeDetails = + let storeDetails = if ($extension.availableStores->isEmpty(), | '', | $extension.availableStores @@ -180,7 +181,7 @@ function <> meta::pure::extension::print::printExtension(extensi ->joinStrings(indent($depth + 1) + 'External Format Contracts: [\n', ',\n', '\n' + indent($depth + 1) + ']\n') ); - let featureDetails = + let featureDetails = if ($extension.availableFeatures->isEmpty(), | '', | $extension.availableFeatures @@ -188,7 +189,7 @@ function <> meta::pure::extension::print::printExtension(extensi ->joinStrings(indent($depth + 1) + 'Feature Extensions: [\n', ',\n', '\n' + indent($depth + 1) + ']\n') ); - let platformBindingDetails = + let platformBindingDetails = if ($extension.availablePlatformBindings->isEmpty(), | '', | $extension.availablePlatformBindings @@ -213,8 +214,8 @@ function <> meta::pure::extension::print::printStoreContract(con function <> meta::pure::extension::print::printExternalFormatContract(contract: ExternalFormatContract[1], depth: Integer[1]): String[1] { let indent = indent($depth); - - $indent + $contract.id + '\n' + + + $indent + $contract.id + '\n' + $indent + '(\n' + $contract.contentTypes ->map(t | indent($depth + 2) + $t) @@ -230,8 +231,8 @@ function <> meta::pure::extension::print::printFeatureExtension( function <> meta::pure::extension::print::printPlatformBinding(platformBinding: PlatformBinding[1], depth: Integer[1]): String[1] { let indent = indent($depth); - - $indent + $platformBinding.platformId + '\n' + + + $indent + $platformBinding.platformId + '\n' + $indent + '(\n' + $platformBinding.platformBindingExtensions ->map(e | indent($depth + 2) + $e.id) @@ -248,4 +249,4 @@ function <> meta::pure::extension::print::space(): String[1] function <> meta::pure::extension::print::indent(depth: Integer[1]): String[1] { range($depth)->map(x | space())->joinStrings() -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/extensions/functions.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/extensions/functions.pure index 85015451afd..1f02818096c 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/extensions/functions.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/extensions/functions.pure @@ -24,6 +24,7 @@ import meta::pure::tds::schema::*; import meta::pure::executionPlan::*; import meta::pure::router::routing::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::extension::*; import meta::pure::router::clustering::*; @@ -51,7 +52,7 @@ function meta::pure::extension::_storeContractForSetImplementation(extensions: E ] ); } - + function meta::pure::extension::storeContractFromStore(extensions: Extension[*], s: Store[1]):StoreContract[1] { $extensions.availableStores @@ -65,7 +66,7 @@ function <> meta::pure::extension::unique(storeContracts:StoreCo let list = $storeContracts->removeDuplicates(x|$x.id,{a,b|$a==$b}); assert($list->isNotEmpty(), |'The system can\'t find the appropriate StoreContract '+$message->eval()); assert($list->size() == 1, |'The system found too many StoreContracts ['+$list.id->joinStrings(',')+'] '+$message->eval()); - $list->toOne(); + $list->toOne(); } // -------------------------------------------------------------------------- Store Extension @@ -80,7 +81,7 @@ function meta::pure::extension::defaultExtensions():Extension[*] { ^Extension ( - type = 'defaultExtensions', + type = 'defaultExtensions', availableStores = [ meta::pure::mapping::modelToModel::contract::modelStoreContract(), meta::pure::mapping::aggregationAware::contract::aggregationAwareStoreContract() @@ -239,4 +240,4 @@ Diagram meta::pure::extension::Diagram(width=0.0, height=0.0) stereotypesVisible=true, nameVisible=true, lineStyle=SIMPLE) -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/graphExtension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/graphExtension.pure index 75eeff0ca8d..b2aae378118 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/graphExtension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/graphExtension.pure @@ -18,6 +18,7 @@ import meta::pure::lineage::scanProperties::*; import meta::pure::lineage::scanProperties::propertyTree::*; import meta::pure::mapping::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::contract::*; import meta::pure::mapping::modelToModel::inMemory::*; import meta::pure::metamodel::constraint::*; @@ -45,7 +46,7 @@ Class {doc.doc = 'Nodes that were added by the system to meet e.g. constraints r function meta::pure::graphFetch::switchToMilestoneProperties(tree:GraphFetchTree[1], parameters:ValueSpecification[*]): GraphFetchTree[1] { if($tree->instanceOf(PropertyGraphFetchTree) && $tree->cast(@PropertyGraphFetchTree).property->hasGeneratedMilestoningPropertyStereotype() && !$tree->cast(@PropertyGraphFetchTree).property->instanceOf(QualifiedProperty), - {| + {| let pgft = $tree->cast(@PropertyGraphFetchTree); ^$pgft( property = $pgft.property->getMilestonedGeneratedQualifiedPropertiesForEdgePointProperty()->filter(x|!$x->isNoArgMilestonedGeneratedQualifiedProperty())->at(0), @@ -91,8 +92,8 @@ function <> meta::pure::graphFetch::addSubTypeTree(onto:GraphFet let treeWithSubTypeTrees= $existingSubTrees->match([ stree0: SubTypeGraphFetchTree[0] | ^$onto(subTypeTrees = $onto.subTypeTrees->concatenate($subTree)), - stree : SubTypeGraphFetchTree[1] | ^$onto(subTrees = $onto.subTypeTrees->cast(@SubTypeGraphFetchTree)->filter(st|!$st->forSameSubTypeClass($stree)) - ->concatenate($stree->addSubTypeTrees($subTree.subTypeTrees->cast(@SubTypeGraphFetchTree)))) // recursively add subtype trees if already existing subtype tree found + stree : SubTypeGraphFetchTree[1] | ^$onto(subTrees = $onto.subTypeTrees->cast(@SubTypeGraphFetchTree)->filter(st|!$st->forSameSubTypeClass($stree)) + ->concatenate($stree->addSubTypeTrees($subTree.subTypeTrees->cast(@SubTypeGraphFetchTree)))) // recursively add subtype trees if already existing subtype tree found ]); let treeWithBasePropertiesCopiedToSubTypeTrees = $treeWithSubTypeTrees->meta::pure::graphFetch::copyPropertiesFromBaseTreeToSubTypeTrees(); @@ -124,12 +125,12 @@ function <> meta::pure::graphFetch::extractClasses(tree:GraphFet r: RootGraphFetchTree[1] | $r.class, a: Any[1] | []->cast(@Class) ]); - + let propertyClasses = $tree.subTrees->cast(@PropertyGraphFetchTree) ->map(pgft| $pgft.property.genericType.rawType) ->filter(t | $t->instanceOf(Class)) ->cast(@Class); - + $class->concatenate($propertyClasses)->concatenate($tree.subTrees->map(st| $st->extractClasses())); } @@ -178,13 +179,13 @@ function <> meta::pure::graphFetch::nodeToString(node:GraphFetch r: RootGraphFetchTree[1] | $indent + $r.class.name->toOne(), p: PropertyGraphFetchTree[1] | $indent + $p.property.name->toOne()+if($p.property->instanceOf(QualifiedProperty), |'('+$p.parameters->evaluateAndDeactivate()->map(p|$p->printValueSpecification(''))->joinStrings(', ')+')', |'')+if($p.subType->isNotEmpty(),| '->subType(' + $p.subType->toOne().name->toOne() + ')', | '') ]) + $requiredQPText + $constraintsExclusionsText; - + $nodeText + if($node.subTypeTrees->isEmpty() && $node.subTrees->isEmpty(), | '', | '\n' + $indent + '(' + - if($node.subTrees->isEmpty(), |'', | '\n' + $node.subTrees->map(st|$st->nodeToString($indent+$indentSep))->joinStrings( '\n')) + - if($node.subTypeTrees->isEmpty(), |'', | '\n'+ $node.subTypeTrees->map(rst|$rst->subTypeNodeToString($indent+$indentSep))->joinStrings('\n')) + + if($node.subTrees->isEmpty(), |'', | '\n' + $node.subTrees->map(st|$st->nodeToString($indent+$indentSep))->joinStrings( '\n')) + + if($node.subTypeTrees->isEmpty(), |'', | '\n'+ $node.subTypeTrees->map(rst|$rst->subTypeNodeToString($indent+$indentSep))->joinStrings('\n')) + '\n'+ $indent + ')' ); } @@ -197,8 +198,8 @@ function <> meta::pure::graphFetch::subTypeNodeToString(stgft:Su + if($stgft.subTrees->isEmpty(), |'', |'\n' + $indent + '(' + $stgft.subTrees->map(st|$st->nodeToString( $indent + $indentSep))->joinStrings('\n', '\n', '\n') + $indent + ')'; - ); -} + ); +} function meta::pure::graphFetch::getNodesOrdered(tree: GraphFetchTree[1]):GraphFetchTree[*] { @@ -212,7 +213,7 @@ function meta::pure::graphFetch::getPathsOrdered(tree:GraphFetchTree[1]):String[ { $tree->match([ cls : ClusteredGraphFetchTree[1] | $cls.tree->getPathsOrdered(), - {g : GraphFetchTree[1]| + {g : GraphFetchTree[1]| let name = $g->nodePathName(); $name->concatenate($tree.subTrees->map(x | $x->getPathsOrdered())->map(subPath| $name+'.'+$subPath)); } @@ -242,7 +243,7 @@ function <> meta::pure::graphFetch::getPathTo(path:String[1], tr } function meta::pure::graphFetch::nodePathName(tree:GraphFetchTree[1]): String[1] -{ +{ $tree->match([ r:RootGraphFetchTree[1] | 'root', p:PropertyGraphFetchTree[1] | if($p.alias->isEmpty(), |$p.property.name->toOne() + if($p.property->instanceOf(QualifiedProperty), | $p.parameters->evaluateAndDeactivate()->map(x | $x->meta::pure::router::printer::asString())->joinStrings('(', ', ', ')'), | ''), |$p.alias)->toOne() + @@ -286,7 +287,7 @@ function meta::pure::graphFetch::sortTree(tree:GraphFetchTree[1]): GraphFetchTre function meta::pure::graphFetch::getSubTreeName(tree:GraphFetchTree[1]): String[1] { $tree->match([ - pgft:PropertyGraphFetchTree[1]| + pgft:PropertyGraphFetchTree[1]| let subTypeName = if($pgft.subType->isEmpty(),|'',|$pgft.subType->toOne().name->toOne()); $pgft.property.name->toOne() + $subTypeName;, stgft:SubTypeGraphFetchTree[1] | @@ -313,17 +314,17 @@ function meta::pure::graphFetch::ensureConstraintsRequirements(treeRoot:RootGrap function meta::pure::graphFetch::ensureFunctionRequirementsFromLambda(node:GraphFetchTree[1], class:Class[1], f:FunctionDefinition[1], processed:Class[*], ensureConstraintsForSubTrees:Boolean[1]): GraphFetchTree[1] { let paths = meta::pure::graphFetch::pathsForConstraintFunctions($class, $f); - let qualifiedPropertyPaths = $paths->filter(path| $path.values->exists(x| $x.property->instanceOf(QualifiedProperty))); + let qualifiedPropertyPaths = $paths->filter(path| $path.values->exists(x| $x.property->instanceOf(QualifiedProperty))); let inlinedPropertyTree = $paths->buildPropertyTree()->inlineQualifiedPropertyNodes(); let inlinedGraphTree = $inlinedPropertyTree->propertyTreeToGraphFetchTree($class); let inlinedPropertyGraphTrees = $inlinedGraphTree.subTrees->cast(@PropertyGraphFetchTree); let withFoundProperties = $node->addSubTrees($inlinedPropertyGraphTrees); let updatedForClass = $qualifiedPropertyPaths->fold({path, gt| $gt->recordQualifiedProperties($path)}, $withFoundProperties); - + if($ensureConstraintsForSubTrees, - {| + {| let updatedProcessed = $processed->add($class); - let newSubTrees = $updatedForClass.subTrees->map({st| + let newSubTrees = $updatedForClass.subTrees->map({st| let returns = if($st->cast(@PropertyGraphFetchTree).subType->isEmpty(), | $st->cast(@PropertyGraphFetchTree).property->functionReturnType().rawType->toOne(), | $st->cast(@PropertyGraphFetchTree).subType->toOne() @@ -353,8 +354,8 @@ function meta::pure::graphFetch::ensureFunctionRequirements(node:GraphFetchTree[ let updatedProcessed = $processed->add($class); if($ensureConstraintsForSubTrees, - {| - let newSubTrees = $updatedForClass.subTrees->map({st| + {| + let newSubTrees = $updatedForClass.subTrees->map({st| let returns = if($st->cast(@PropertyGraphFetchTree).subType->isEmpty(), | $st->cast(@PropertyGraphFetchTree).property->functionReturnType().rawType->toOne(), | $st->cast(@PropertyGraphFetchTree).subType->toOne() @@ -370,7 +371,7 @@ function meta::pure::graphFetch::ensureFunctionRequirements(node:GraphFetchTree[ ); } -function meta::pure::graphFetch::canEvaluateForTree(pTree:GraphFetchTree[1], gfTree:GraphFetchTree[1]): Boolean[1] +function meta::pure::graphFetch::canEvaluateForTree(pTree:GraphFetchTree[1], gfTree:GraphFetchTree[1]): Boolean[1] { $pTree->match([ r:RootGraphFetchTree[1] | if(!$gfTree->instanceOf(RootGraphFetchTree), @@ -383,7 +384,7 @@ function meta::pure::graphFetch::canEvaluateForTree(pTree:GraphFetchTree[1], gfT p:PropertyGraphFetchTree[1] | if(!$gfTree->instanceOf(PropertyGraphFetchTree), | false, | let subTreesIndexedByProperty = $gfTree.subTrees->groupBy(st | $st->cast(@PropertyGraphFetchTree).property); - $gfTree->cast(@PropertyGraphFetchTree).property == $p.property + $gfTree->cast(@PropertyGraphFetchTree).property == $p.property && $p.subTrees->forAll(st | let reqSubTrees = $subTreesIndexedByProperty->get($st->cast(@PropertyGraphFetchTree).property).values; $reqSubTrees->isNotEmpty() && $reqSubTrees->exists(reqSubTree | $st->canEvaluateForTree($reqSubTree)););); ]) @@ -392,14 +393,14 @@ function meta::pure::graphFetch::canEvaluateForTree(pTree:GraphFetchTree[1], gfT function meta::pure::graphFetch::calculateSourceTree(tree:RootGraphFetchTree[1], mapping: Mapping[1], extensions:meta::pure::extension::Extension[*]): RootGraphFetchTree[1] { let replaced = $tree->replaceQualifiedPropertiesWithRequiredProperties(); - + let rootSetImplementation = $tree->match([r:RoutedRootGraphFetchTree[1]|$r.sets->toOne(), r:RootGraphFetchTree[1]|$mapping->rootClassMappingByClass($replaced.class)]); - + assert($rootSetImplementation->isNotEmpty(), |'Mapping ' + $mapping->elementToPath() + ' does not map class from tree: ' + $replaced.class->elementToPath()); - + $rootSetImplementation->toOne()->match($extensions.graphExtension_calculateSourceTree->map(ext | $ext->eval($replaced))->concatenate([ - {pisi: PureInstanceSetImplementation[1] | + {pisi: PureInstanceSetImplementation[1] | assert($pisi.srcClass->isNotEmpty() && $pisi.srcClass->toOne()->instanceOf(Class), 'Pure mapping does not have a class as ~src for root of tree'); let srcClass = $pisi.srcClass->toOne()->cast(@Class); let root = ^RootGraphFetchTree(class=$srcClass); @@ -440,7 +441,7 @@ function <> meta::pure::graphFetch::enrichSourceTreeNodeForPrope let requiredProperty = if($isPropertyTemporalMilestoned, |$setImplementation.class->propertyByName($tgtPgft.property->edgePointPropertyName()->toOne()), |$tgtPgft.property); let propertyMappings = $setImplementation.propertyMappings->filter(pm|$pm.property == $requiredProperty)->cast(@PurePropertyMapping); - + if($propertyMappings->isNotEmpty() || ($requiredProperty->isNotEmpty() && ($requiredProperty->toOne()->isPropertyAutoMapped($setImplementation) || $setImplementation->isNoMappingDefaultToEmpty($requiredProperty->toOne()) || $setImplementation->isPartOfMerge())), {| let returnType = $tgtPgft.property->functionReturnType().rawType->toOne(); @@ -467,7 +468,7 @@ function <> meta::pure::graphFetch::enrichSourceTreeNodeForPrope } ])->cast(@PureInstanceSetImplementation) ); - + let allowComplexPropertyMappingWithoutChildSI = $requiredProperty->toOne()->isPropertyAutoMapped($setImplementation); assert($propertyMappings->isEmpty() || $childSIsResolved->isNotEmpty() || $allowComplexPropertyMappingWithoutChildSI , |'Mapping ' + $setImplementation.parent->elementToPath() + ' does not map class from tree: ' + $c->elementToPath()); $childSIsResolved; @@ -497,7 +498,7 @@ function <> meta::pure::graphFetch::enrichSourceTreeNodeForPrope ]); let inlinedPropertyTree = $propertyPaths.result->buildPropertyTree()->inlineQualifiedPropertyNodes(); - + let inlinedGraphTree = $inlinedPropertyTree->propertyTreeToGraphFetchTree($owner)->removeDummyProperties(); // copy common properties from base type tree to subtype trees at property level @@ -527,10 +528,10 @@ function <> meta::pure::graphFetch::enrichSourceTreeNodeForPrope let appendAtPaths = $propertyPaths.current->removeDuplicates(); if($appendAtPaths->isEmpty(), | $tree->enrichSourceTreeNode($setImpl, $tgtPgft, $extensions), - | $appendAtPaths->fold({path,tree | - if($path.values->isEmpty(), + | $appendAtPaths->fold({path,tree | + if($path.values->isEmpty(), | $tree->enrichSourceTreeNode($setImpl, $tgtPgft, $extensions), - | $tree->enrichSourceTreeNodeAtPath($path, $setImpl, $tgtPgft, $extensions)) + | $tree->enrichSourceTreeNodeAtPath($path, $setImpl, $tgtPgft, $extensions)) }, $tree) ); }, @@ -554,7 +555,7 @@ function <> meta::pure::graphFetch::enrichSourceTreeNodeForPrope | $withQPsRecorded ); }, - | $srcNode + | $srcNode ); } @@ -592,7 +593,7 @@ function <> meta::pure::graphFetch::enrichSourceTreeNode(srcNode { let setContainsExplodeProperty = $setImplementation.propertyMappings->filter(pm|if($pm->instanceOf(PurePropertyMapping),| $pm->cast(@PurePropertyMapping).explodeProperty->isTrue(), |false))->isNotEmpty(); let subTreeProperties = $tgtNode.subTrees->cast(@PropertyGraphFetchTree).property.name; - let requiredTgtSubTrees = $tgtNode.subTrees->cast(@PropertyGraphFetchTree)->concatenate(if($setContainsExplodeProperty, + let requiredTgtSubTrees = $tgtNode.subTrees->cast(@PropertyGraphFetchTree)->concatenate(if($setContainsExplodeProperty, |$setImplementation.propertyMappings->filter(pm | $pm->instanceOf(PurePropertyMapping)).property->map(p | if(!$p.name->in($subTreeProperties), |^PropertyGraphFetchTree(property = $p), |[])), @@ -603,7 +604,7 @@ function <> meta::pure::graphFetch::enrichSourceTreeNode(srcNode if($setImplementation.filter->isNotEmpty() && $srcClass == $srcNodeOwner, | $subTrees->enrichSourceTreeNodeForExpression($srcClass, $setImplementation.filter.expressionSequence->at(0)), - | $subTrees + | $subTrees ); } @@ -615,12 +616,12 @@ function <> meta::pure::graphFetch::enrichSourceTreeNodeAtPath(s ^$enrichedSourceNode(subTrees=$enrichedSourceNode.subTrees->concatenate($srcNode.subTrees)->removeDuplicates());, | let head = $path.values->at(0); let tail = $path.values->tail(); - + if($tail->isEmpty(), | ^$srcNode(subTrees=$srcNode.subTrees->cast(@PropertyGraphFetchTree)->map(st|if($st.property == $head.property, |$st->enrichSourceTreeNode($setImplementation, $tgtPgft, $extensions), |$st))), | ^$srcNode(subTrees=$srcNode.subTrees->cast(@PropertyGraphFetchTree)->map(st|if($st.property == $head.property, |$st->enrichSourceTreeNodeAtPath(list($tail), $setImplementation, $tgtPgft, $extensions), |$st))) ); - ); + ); } function <> meta::pure::graphFetch::addPassThroughSubTrees(srcNode:GraphFetchTree[1], tgtNode:GraphFetchTree[1], extensions:meta::pure::extension::Extension[*]): GraphFetchTree[1] @@ -632,7 +633,7 @@ function <> meta::pure::graphFetch::addPassThroughSubTreesAtPath { let head = $path.values->at(0); let tail = $path.values->tail(); - + if($tail->isEmpty(), | ^$srcNode(subTrees=$srcNode.subTrees->cast(@PropertyGraphFetchTree)->map(st|if($st.property == $head.property, |$st->addPassThroughSubTrees($tgtPgft, $extensions), |$st))), | ^$srcNode(subTrees=$srcNode.subTrees->cast(@PropertyGraphFetchTree)->map(st|if($st.property == $head.property, |$st->addPassThroughSubTreesAtPath(list($tail), $tgtPgft, $extensions), |$st))) @@ -655,7 +656,7 @@ function meta::pure::graphFetch::propertyGraphFetchTreeToRootGraphFetchTree(pTre function <> meta::pure::graphFetch::addPropertyGraphFetchTrees(onto:GraphFetchTree[1], pTree:PropertyPathTree[1], ownerClass:Class[1]): GraphFetchTree[1] { $pTree.value->match([ - node: PropertyPathNode[1] | if($ownerClass == $node.class || $node.class->isStrictSubType($ownerClass), + node: PropertyPathNode[1] | if($ownerClass == $node.class || $node.class->isStrictSubType($ownerClass), | $onto->addPropertyGraphFetchTrees($pTree, $ownerClass, $node), | $onto ), @@ -666,18 +667,18 @@ function <> meta::pure::graphFetch::addPropertyGraphFetchTrees(o a:Any[1] | [] ])); let processedBaseTree= $pTreesInBaseType->fold({child, gft|$gft->addPropertyGraphFetchTrees($child, $ownerClass)}, $onto); - - // add subtype trees also + + // add subtype trees also let rootSubTypeTree= ^SubTypeGraphFetchTree(subTypeClass=$clz); let rootSubTypeTreeWithProperties= $pTree.children->fold({child, gft| $gft->addPropertyGraphFetchTrees($child, $clz)->cast(@SubTypeGraphFetchTree) }, $rootSubTypeTree); - + let withSubTypeTree = $processedBaseTree->addSubTypeTrees($rootSubTypeTreeWithProperties);, - + | if($clz == $ownerClass || $ownerClass->isStrictSubType($clz), // get properties from superclass also , | $pTree.children->fold({child, gft|$gft->addPropertyGraphFetchTrees($child, $clz) }, $onto), - | $onto // dont process further + | $onto // dont process further ) );, any: Any[1] | $pTree.children->fold({child, gft| $gft->addPropertyGraphFetchTrees($child, $ownerClass)}, $onto) @@ -688,8 +689,8 @@ function meta::pure::functions::meta::isStrictSubType(subType:Type[1], superType { if($subType == Nil, |true, - |$subType->getAllTypeGeneralisations()->map(st|$st->elementToPath())->contains($superType->elementToPath()) && $subType->elementToPath()!=$superType->elementToPath() // object comparison might not work due to lazy evalution of some duplicate objects - ); + |$subType->getAllTypeGeneralisations()->map(st|$st->elementToPath())->contains($superType->elementToPath()) && $subType->elementToPath()!=$superType->elementToPath() // object comparison might not work due to lazy evalution of some duplicate objects + ); } function <> meta::pure::graphFetch::addPropertyGraphFetchTrees(onto:GraphFetchTree[1], pTree:PropertyPathTree[1], ownerClass:Class[1], node: PropertyPathNode[1]): GraphFetchTree[1] @@ -704,13 +705,13 @@ function <> meta::pure::graphFetch::addPropertyGraphFetchTrees(o let rtnClass = $node.property.genericType.rawType->cast(@Class)->toOne(); let childrenByClass = $pTree.children->groupBy(c|$c.value->cast(@PropertyPathNode).class); $childrenByClass->keyValues()->fold( - {kv, gft| + {kv, gft| let childrenOwner = $kv.first; let children = $kv.second.values; if($childrenOwner == $rtnClass || $childrenOwner->_subTypeOf($rtnClass) || $rtnClass->_subTypeOf($childrenOwner), {| - let withSubtype = if($childrenOwner == $rtnClass || $rtnClass->_subTypeOf($childrenOwner), + let withSubtype = if($childrenOwner == $rtnClass || $rtnClass->_subTypeOf($childrenOwner), | $pgft, | ^$pgft(subType = $childrenOwner) ); @@ -719,7 +720,7 @@ function <> meta::pure::graphFetch::addPropertyGraphFetchTrees(o }, | $gft ); - }, + }, $onto ); } @@ -729,7 +730,7 @@ function <> meta::pure::graphFetch::addPropertyGraphFetchTrees(o function <> meta::pure::graphFetch::replaceQualifiedPropertiesWithRequiredProperties(pgft:PropertyGraphFetchTree[1], class:Class[1]):GraphFetchTree[*] { let copy = ^$pgft(subTrees=[]); - + if($pgft.property->hasGeneratedMilestoningPropertyStereotype(), | let rtns = $pgft.property->functionReturnType().rawType->toOne(); @@ -770,11 +771,11 @@ function <> meta::pure::graphFetch::recordQualifiedProperties(tr let tail = if($head.property->instanceOf(QualifiedProperty), | list($head.nestedQualifierReturn.values->tail()->concatenate($path.values->tail())), | list($path.values->tail()) - ); + ); let nextProperty = if($head.property->instanceOf(QualifiedProperty), | $head.nestedQualifierReturn.values->first().property, | $head.property - ); + ); let withQp = if($head.property->instanceOf(QualifiedProperty), {| let qp = $head.property->cast(@QualifiedProperty); @@ -787,7 +788,7 @@ function <> meta::pure::graphFetch::recordQualifiedProperties(tr }, | $tree; ); - + ^$withQp(subTrees=$tree.subTrees->cast(@PropertyGraphFetchTree)->map(st|if($st.property == $nextProperty, |$st->recordQualifiedProperties($tail), |$st))); } ); @@ -796,13 +797,13 @@ function <> meta::pure::graphFetch::recordQualifiedProperties(tr function <> meta::pure::graphFetch::removeDummyProperties(tree:GraphFetchTree[1]): GraphFetchTree[0..1] { $tree->match([ - pgft:PropertyGraphFetchTree[1] | + pgft:PropertyGraphFetchTree[1] | if($pgft.property == getDummyProperty(), | [], | $pgft );, t:GraphFetchTree[1] | ^$t(subTrees= $t.subTrees->map(st|$st->removeDummyProperties()), - subTypeTrees = $t.subTypeTrees->map(st|$st->removeDummyProperties())->cast(@SubTypeGraphFetchTree) + subTypeTrees = $t.subTypeTrees->map(st|$st->removeDummyProperties())->cast(@SubTypeGraphFetchTree) ); ]) } diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/graphFetchExecutionPlan.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/graphFetchExecutionPlan.pure index 5156b6bcad9..ed07dae4265 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/graphFetchExecutionPlan.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/graphFetchExecutionPlan.pure @@ -24,8 +24,10 @@ import meta::pure::executionPlan::*; import meta::pure::executionPlan::toString::*; import meta::pure::mapping::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::graphFetch::executionPlan::*; import meta::pure::mapping::xStore::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::router::metamodel::*; import meta::pure::router::utils::*; @@ -108,7 +110,7 @@ Class meta::pure::graphFetch::executionPlan::StoreMappingCrossLocalGraphFetchExe function meta::pure::graphFetch::executionPlan::nodeIsMerged(node:LocalGraphFetchExecutionNode[1]): Boolean[1] { - let set = $node.graphFetchTree.sets; + let set = $node.graphFetchTree.sets; let mergeOp = $set->filter(m|$m->instanceOf(OperationSetImplementation))->cast(@OperationSetImplementation)->filter(o|$o.operation==meta::pure::router::operations::merge_OperationSetImplementation_1__SetImplementation_MANY_); $mergeOp->map(m | assert($m->instanceOf(MergeOperationSetImplementation),'Please specify a merge function for merge operation on class '+ $m.class->elementToPath())); $mergeOp->isNotEmpty(); @@ -121,12 +123,12 @@ function meta::pure::graphFetch::executionPlan::planGraphFetchExecution(sq: Stor vs: ValueSpecification[1] | $fe.multiplicity->toOne()]); assert($fe.func->in(graphFetchFunctions()) || $fe->isUnionOnGraphFetch(true)); let clusteredTreePreFilter = $fe.parametersValues->evaluateAndDeactivate()->at(1)->cast(@InstanceValue).values->at(0)->cast(@ClusteredGraphFetchTree); - + let chainConnection = if ($sq.store->instanceOf(ModelStore), - | $runtime.connections->filter(c|$c.element->instanceOf(ModelStore) && $c->instanceOf(ModelChainConnection));, + | $runtime.connectionStores->filter(c|$c.element->instanceOf(ModelStore) && $c.connection->instanceOf(ModelChainConnection)).connection;, | [] ); - + let possibleFilter = $fe->graphFetchFilter()->evaluateAndDeactivate(); let clusteredTree = if($possibleFilter->isNotEmpty() && $sq.store-> instanceOf(ModelStore) && $chainConnection->isEmpty(), |meta::pure::graphFetch::executionPlan::enrichTargetTreeForFilterProperties($clusteredTreePreFilter,$possibleFilter->toOne(),$mapping, $exeCtx,$runtime,$extensions,$debug);, @@ -134,21 +136,21 @@ function meta::pure::graphFetch::executionPlan::planGraphFetchExecution(sq: Stor ); print(if($debug.debug,|$debug.space+' Clustered Tree: '+$clusteredTree->asString(false)+'\n',|'')); - + let orderedPaths = $clusteredTree->getPathsOrdered(); let clusterTreesWithParents = $clusteredTree->findAllClusterTreesWithParents([]); print(if($debug.debug,|$debug.space+' Found '+$clusterTreesWithParents->size()->toString()+' store-mapping/platform cluster tree(s) in main clustered tree\n',|'')); - + let rootTree = $clusterTreesWithParents->filter(x | $x.second.values->isEmpty()).first->toOne()->cast(@StoreMappingClusteredGraphFetchTree); let rootTreeOneCluster = $rootTree->recursivelyRemoveClusterTrees(); - + print(if($debug.debug,|$debug.space+' >Generating store local node for root tree\n',|'')); print(if($debug.debug,|$debug.space+' Store local tree: '+$rootTreeOneCluster->asString(false)+'\n',|'')); let enableConstraints = $exeCtx.enableConstraints->isEmpty() || $exeCtx.enableConstraints->toOne(); let checked = $fe.genericType.rawType == Checked; - + let localNodeGenerationInput = ^StoreMappingLocalGraphFetchExecutionNodeGenerationInput ( clusteredTree = $rootTreeOneCluster->cast(@StoreMappingClusteredGraphFetchTree), @@ -163,7 +165,7 @@ function meta::pure::graphFetch::executionPlan::planGraphFetchExecution(sq: Stor extensions = $extensions, debug = $debug->indent(3) ); - + let localRoot = $rootTree.s.planGraphFetchExecution->toOne()->eval($localNodeGenerationInput); let rootGlobalNode = ^StoreMappingGlobalGraphFetchExecutionNode @@ -177,7 +179,7 @@ function meta::pure::graphFetch::executionPlan::planGraphFetchExecution(sq: Stor checked = $checked, localTreeIndices = $rootTreeOneCluster->getPathsOrdered()->map(p | let idx = $orderedPaths->indexOf($p); assert($idx >= 0, | 'Path ' + $p + ' not found in orderedPaths: ' + $orderedPaths->makeString('[', ', ', ']')); $idx;) ); - + print(if($debug.debug,|$debug.space+' >Generated store local node for root tree\n',|'')); $rootGlobalNode->addCrossStoreChildren([], $rootTree, $orderedPaths, $clusterTreesWithParents, $sq.inScopeVars, $mapping, $runtime, $exeCtx, $enableConstraints, $checked, $extensions, $debug->indent(2)); } @@ -200,7 +202,7 @@ function meta::pure::graphFetch::executionPlan::planStoreUnionGraphFetchExecutio let p2 = $params->at(1)->cast(@InstanceValue); let tree = $p2.values->at(0)->cast(@ClusteredGraphFetchTree); let rf = {set: InstanceSetImplementation[1] | ^$fe(parametersValues = [$p1, ^$p2(values = ^$tree(tree = $tree->byPassClusteringInfoDeep()->cast(@RootGraphFetchTree)->routeRootGraphFetchTree($set, $mapping, $exeCtx, $extensions)))]->evaluateAndDeactivate())->evaluateAndDeactivate()}; - + let newFe = $sets->tail()->fold({set, agg | ^SimpleFunctionExpression ( @@ -225,7 +227,7 @@ function meta::pure::graphFetch::executionPlan::planRouterUnionGraphFetchExecuti let subClusters = $fe.parametersValues->evaluateAndDeactivate()->map({p | $p->meta::pure::router::clustering::cluster($mapping, $runtime, $sq.inScopeVars, $exeCtx, $extensions, $debug).cluster->evaluateAndDeactivate()})->cast(@meta::pure::router::metamodel::clustering::ClusteredValueSpecification); let firstCluster = $subClusters->at(0); let childNodes = $subClusters->map(cls | $cls->plan($sq.inScopeVars, $exeCtx, $extensions, $debug)); - + ^PlatformUnionExecutionNode ( fromCluster = ^$firstCluster(val = $fe), @@ -245,7 +247,7 @@ function <> meta::pure::graphFetch::executionPlan::addCrossStore let children = $childrenClusterNodes->map({ch | let childTreeOneCluster = $ch.first->recursivelyRemoveClusterTrees(); let routedTree = $childTreeOneCluster.tree->cast(@RoutedPropertyGraphFetchTree); - let newParentPath = if($parentPath->isEmpty(), + let newParentPath = if($parentPath->isEmpty(), |$currentTree->toOne()->getPathTo($ch.first)->toOne(), |$parentPath->toOne()+'.'+$currentTree->getPathTo($ch.first)->toOne() ); @@ -255,7 +257,7 @@ function <> meta::pure::graphFetch::executionPlan::addCrossStore print(if($debug.debug,|$debug.space+' >Generating store local node for cross-store property tree: '+$routedTree.property.name->toOne()+'\n',|'')); print(if($debug.debug,|$debug.space+' Store local tree: '+$childTreeOneCluster->asString(false)+'\n',|'')); - + let crossLocalNodeGenerationInput = ^StoreMappingCrossLocalGraphFetchExecutionNodeGenerationInput ( clusteredTree = $childTreeOneCluster->cast(@StoreMappingClusteredGraphFetchTree), @@ -293,12 +295,12 @@ function <> meta::pure::graphFetch::executionPlan::addCrossStore ); print(if($debug.debug,|$debug.space+' >Generated store local node for cross property tree\n',|'')); $newCrossNode->addCrossStoreChildren($newParentPath, $ch.first, $orderedPaths, $clusterNodesWithParents, $inScopeVars, $m, $runtime, $exeCtx, $enableConstraints, $checked, $extensions, $debug->indent(2)); - + }, {p: PlatformClusteredGraphFetchTree[1] | - + print(if($debug.debug,|$debug.space+' >Generating local node for platform property tree: '+$routedTree.property.name->toOne()+'\n',|'')); assert($routedTree.property->instanceOf(QualifiedProperty) && $routedTree.property->isPrimitiveValueProperty(), | 'Expected primitive qualifier in a platform clustered graph fetch tree'); @@ -329,7 +331,7 @@ function <> meta::pure::graphFetch::executionPlan::addCrossStore ]); }); - + ^$currentNode(children = $children); ); } @@ -343,7 +345,7 @@ function <> meta::pure::graphFetch::executionPlan::getRoutedDepe | getRoutedDependencyTree($routedChildTree, $unRoutedChildTree->toOne())); ) ); - + } function <> meta::pure::graphFetch::executionPlan::buildXStorePropertyFetchDetails(xStorePropertyMapping: XStorePropertyMapping[1], subTree: ClusteredGraphFetchTree[1], parentPath: String[1], mapping: Mapping[1]): XStorePropertyFetchDetails[1] @@ -428,11 +430,11 @@ function meta::pure::graphFetch::executionPlan::globalGraphFetchExecutionNodeToS function meta::pure::graphFetch::executionPlan::storeMappingGlobalGraphFetchExecutionNodeToString(g: StoreMappingGlobalGraphFetchExecutionNode[1], space: String[1], extensions:meta::pure::extension::Extension[*]):String[1] { - 'StoreMappingGlobalGraphFetch\n' + + 'StoreMappingGlobalGraphFetch\n' + $space + '(' + header($g, $space, $extensions) + '\n'+ $space + ' store = ' + $g.store->elementToPath() + '\n'+ $space + ' localGraphFetchExecutionNode = \n' + $g.localGraphFetchExecutionNode->meta::pure::executionPlan::toString::planNodeToString($space+ ' ', $extensions) + - $space + ' children = ' + $g.children->map(x | globalGraphFetchExecutionNodeToString($x, $space + ' ', $extensions))->joinStrings('[\n'+ $space + ' ', '\n' + $space + ' ', '\n' + $space + ' ]\n') + + $space + ' children = ' + $g.children->map(x | globalGraphFetchExecutionNodeToString($x, $space + ' ', $extensions))->joinStrings('[\n'+ $space + ' ', '\n' + $space + ' ', '\n' + $space + ' ]\n') + if($g.parentIndex->isEmpty(), | '', | $space + ' parentIndex = ' + $g.parentIndex->toOne()->toString() + '\n') + if($g.xStorePropertyMapping->isEmpty(), | '', | $space + ' xStorePropertyMapping = ' + $g.xStorePropertyMapping.property.name->toOne() + '[' + $g.xStorePropertyMapping.sourceSetImplementationId->toOne() + ' -> ' + $g.xStorePropertyMapping.targetSetImplementationId->toOne() + ']' + '\n') + $space + ' localTreeIndices = ' + $g.localTreeIndices->makeString('[', ', ', ']') + '\n'+ @@ -443,10 +445,10 @@ function meta::pure::graphFetch::executionPlan::storeMappingGlobalGraphFetchExec function meta::pure::graphFetch::executionPlan::platformGlobalGraphFetchExecutionNodeToString(g: PlatformGlobalGraphFetchExecutionNode[1], space: String[1], extensions:meta::pure::extension::Extension[*]):String[1] { - 'PlatformGlobalGraphFetch\n' + + 'PlatformGlobalGraphFetch\n' + $space + '(' + header($g, $space, $extensions) + '\n'+ $space + ' localGraphFetchExecutionNode = \n' + $g.localGraphFetchExecutionNode->meta::pure::executionPlan::toString::planNodeToString($space+ ' ', $extensions) + - $space + ' children = ' + $g.children->map(x | globalGraphFetchExecutionNodeToString($x, $space + ' ', $extensions))->joinStrings('[\n'+ $space + ' ', '\n' + $space + ' ', '\n' + $space + ' ]\n') + + $space + ' children = ' + $g.children->map(x | globalGraphFetchExecutionNodeToString($x, $space + ' ', $extensions))->joinStrings('[\n'+ $space + ' ', '\n' + $space + ' ', '\n' + $space + ' ]\n') + if($g.parentIndex->isEmpty(), | '', | $space + ' parentIndex = ' + $g.parentIndex->toOne()->toString() + '\n') + $space + ' localTreeIndices = ' + $g.localTreeIndices->makeString('[', ', ', ']') + '\n'+ $space + ' dependencyIndices = ' + $g.dependencyIndices->makeString('[', ', ', ']') + '\n'+ @@ -456,7 +458,7 @@ function meta::pure::graphFetch::executionPlan::platformGlobalGraphFetchExecutio function meta::pure::graphFetch::executionPlan::platformPrimitiveQualifierLocalGraphFetchExecutionNodeToString(g: PlatformPrimitiveQualifierLocalGraphFetchExecutionNode[1], space: String[1], extensions:meta::pure::extension::Extension[*]):String[1] { - 'PlatformPrimitiveQualifierLocalGraphFetch\n' + + 'PlatformPrimitiveQualifierLocalGraphFetch\n' + $space + '(' + header($g, $space, $extensions) + '\n'+ $space + ' nodeIndex = ' + $g.nodeIndex->toString() + '\n'+ $space + ' qualfifier = ' + $g.graphFetchTree->cast(@PropertyGraphFetchTree).property.name->toOne() + '\n' + diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/graphFetch_routing.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/graphFetch_routing.pure index b43552b5966..27ca6ca105e 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/graphFetch_routing.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/graphFetch_routing.pure @@ -16,6 +16,7 @@ import meta::pure::router::store::routing::*; import meta::pure::lineage::scanProperties::*; import meta::pure::milestoning::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::lineage::scanProperties::propertyTree::*; import meta::pure::mapping::*; import meta::pure::mapping::xStore::*; @@ -25,6 +26,7 @@ import meta::pure::router::store::metamodel::*; import meta::pure::store::*; import meta::pure::graphFetch::routing::*; import meta::pure::graphFetch::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::store::*; import meta::pure::functions::collection::*; @@ -49,8 +51,8 @@ function meta::pure::graphFetch::routing::propertyMappingInfo(prop: PropertyGrap ^PropertyMappingInfo(property=$property, propertyMappings=$propertyMappings, sets=$routedProperty->byPassRouterInfo()->cast(@SimpleFunctionExpression).parametersValues->cast(@StoreMappingRoutedValueSpecification).sets); ,| let property = if($prop.subType->isEmpty(), | $routedProperty->deepByPassRouterInfo()->cast(@FunctionExpression).parametersValues->at(1)->cast(@InstanceValue).values->at(0)->cast(@FunctionDefinition).expressionSequence->toOne()->byPassRouterInfo()->cast(@FunctionExpression).func->cast(@AbstractProperty), | $routedProperty->deepByPassRouterInfo()->cast(@FunctionExpression).parametersValues->at(0)->cast(@FunctionExpression).parametersValues->at(1)->cast(@InstanceValue).values->at(0)->cast(@FunctionDefinition).expressionSequence->toOne()->byPassRouterInfo()->cast(@FunctionExpression).func->cast(@AbstractProperty)); - let propertyMappings = if($routedProperty->instanceOf(StoreMappingRoutedValueSpecification), - |if($prop.subType->isEmpty(), + let propertyMappings = if($routedProperty->instanceOf(StoreMappingRoutedValueSpecification), + |if($prop.subType->isEmpty(), | $routedProperty->byPassRouterInfo()->cast(@FunctionExpression).parametersValues->at(1)->byPassRouterInfo()->cast(@InstanceValue).values->at(0)->cast(@FunctionDefinition).expressionSequence->filter(e | $e->instanceOf(StoreMappingRoutedValueSpecification))->cast(@StoreMappingRoutedValueSpecification).propertyMapping, | let subTypeSetIDs = $routedProperty->cast(@StoreMappingRoutedValueSpecification).sets->meta::pure::router::routing::resolveOperation($mapping).id; $routedProperty->byPassRouterInfo()->cast(@FunctionExpression).parametersValues->at(0)->byPassRouterInfo()->cast(@FunctionExpression).parametersValues->at(1)->byPassRouterInfo()->cast(@InstanceValue).values->at(0)->cast(@FunctionDefinition).expressionSequence->filter(x| $x->instanceOf(StoreMappingRoutedValueSpecification))->cast(@StoreMappingRoutedValueSpecification).propertyMapping->filter(x | $x.targetSetImplementationId->in($subTypeSetIDs));) @@ -101,7 +103,7 @@ function meta::pure::graphFetch::routing::clusterRoutedGraphFetchTreeStoreMappin tree = ^$r(subTrees = $subTreeClusters->map(x | $x->match([c:StoreMappingClusteredGraphFetchTree[1] | let storeSupportNativeJoinsAmongElements = $extensions->meta::pure::extension::storeContractFromStore($c.store).supportsNativeJoinAmongElements; if(($storeSupportNativeJoinsAmongElements && $c.store->elementToPath() != $singleStore->elementToPath()) || (!$storeSupportNativeJoinsAmongElements && $c.tree->cast(@RoutedPropertyGraphFetchTree).propertyMapping->isNotEmpty() && $c.tree->cast(@RoutedPropertyGraphFetchTree).propertyMapping->map(pm | $pm->instanceOf(meta::pure::mapping::xStore::XStorePropertyMapping))->toOneMany()->or()), - | $c, + | $c, | $c.tree);, p:PlatformClusteredGraphFetchTree[1] | $p, g:GraphFetchTree[1] | $g]))), @@ -168,7 +170,7 @@ function <> meta::pure::graphFetch::routing::createFunctionAppli ), expressionSequence = ^$mapExpr(parametersValues = ^VariableExpression(name = 'x', genericType = $functionExpression.genericType, multiplicity = PureOne), genericType = $property->functionReturnType(), func = $property)->evaluateAndDeactivate() )->evaluateAndDeactivate(); - + let propertyApplication = ^SimpleFunctionExpression ( func = map_T_MANY__Function_1__V_MANY_, @@ -177,7 +179,7 @@ function <> meta::pure::graphFetch::routing::createFunctionAppli multiplicity = ZeroMany, parametersValues = [$functionExpression, ^InstanceValue(values = $mapLambda, genericType = $mapLambda.classifierGenericType->toOne(), multiplicity = PureOne)] )->evaluateAndDeactivate(); - + let propertyApplicationWithSubType = if($prop.subType->isEmpty(), | $propertyApplication, | let subTypeClass = $prop.subType->toOne(); @@ -188,7 +190,7 @@ function <> meta::pure::graphFetch::routing::createFunctionAppli genericType = ^GenericType(rawType = $subTypeClass), multiplicity = ZeroMany, parametersValues = [ - $propertyApplication, + $propertyApplication, ^InstanceValue(genericType = ^GenericType(rawType = $subTypeClass), multiplicity = PureOne) ] )->evaluateAndDeactivate(); @@ -200,7 +202,7 @@ function meta::pure::graphFetch::routing::byPassClusteringInfo(r: GraphFetchTree $r->match([ c: ClusteredGraphFetchTree[1] | $c.tree, g: GraphFetchTree[1] | $g - ]); + ]); } function meta::pure::graphFetch::routing::byPassClusteringInfoDeep(r: GraphFetchTree[1]):GraphFetchTree[1] @@ -208,7 +210,7 @@ function meta::pure::graphFetch::routing::byPassClusteringInfoDeep(r: GraphFetch $r->match([ c: ClusteredGraphFetchTree[1] | $c.tree->byPassClusteringInfoDeep(), g: GraphFetchTree[1] | ^$g(subTrees = $g.subTrees->map(x | $x->byPassClusteringInfoDeep())) - ]); + ]); } function meta::pure::graphFetch::routing::routeRootGraphFetchTree(root: RootGraphFetchTree[1], set: SetImplementation[1], mapping: Mapping[1], exeCtx: ExecutionContext[1], extensions:meta::pure::extension::Extension[*]):RoutedRootGraphFetchTree[1] @@ -232,7 +234,7 @@ function meta::pure::graphFetch::routing::routeRootGraphFetchTree(root: RootGrap ), class = $extended.class, sets = $ext.sets, - requiredQualifiedProperties = $extended->match([ergft:ExtendedRootGraphFetchTree[1]| $ergft.requiredQualifiedProperties, + requiredQualifiedProperties = $extended->match([ergft:ExtendedRootGraphFetchTree[1]| $ergft.requiredQualifiedProperties, gft :GraphFetchTree[1] | [] ]) ); @@ -245,12 +247,12 @@ function meta::pure::graphFetch::splitPropertyTrees(tree:RoutedGraphFetchTree[1] let updatedSubTrees = $tree.subTrees->map(st | let propertyTree = $st->cast(@RoutedPropertyGraphFetchTree); let splitPropertyTreeWhenMultipleSetImpls = ($propertyTree.sets->size() > 1) && ($propertyTree.sets->forAll(set | $set->storeContractForSetImplementation($mapping, $extensions).first.splitGraphFetchTreeForPropertyUnion)); let splitPropertyTreeWhenMultiplePropertyMappings = ($propertyTree.propertyMapping->size() > 1) && $propertyTree.propertyMapping->forAll(pm | $pm.owner->isNotEmpty() && $pm.owner->toOne()->instanceOf(InstanceSetImplementation) && $extensions->storeContractForSetImplementation($pm.owner->cast(@InstanceSetImplementation)->toOne()).splitGraphFetchTreeForPropertyUnion); - + if( $splitPropertyTreeWhenMultipleSetImpls, | if($propertyTree.property->instanceOf(QualifiedProperty), | let property = $propertyTree.property->cast(@QualifiedProperty); let sourceSetImplementation = $tree.sets->toOne(); - let multipleExpressionForUnion = meta::pure::graphFetch::getMultiValueSpecBasedOnSetImplPermutation($property.expressionSequence->evaluateAndDeactivate()->toOne()->cast(@StoreMappingRoutedValueSpecification), $sourceSetImplementation, $exeCtx, $extensions); + let multipleExpressionForUnion = meta::pure::graphFetch::getMultiValueSpecBasedOnSetImplPermutation($property.expressionSequence->evaluateAndDeactivate()->toOne()->cast(@StoreMappingRoutedValueSpecification), $sourceSetImplementation, $exeCtx, $extensions); $multipleExpressionForUnion->map(x | ^$propertyTree(property = ^$property(expressionSequence = $x), sets = $x.sets););, | let sourceSetImplementationIds = $mapping->allSuperSetImplementationIds($tree.sets->toOne().id); $propertyTree.propertyMapping->filter(x | $x.sourceSetImplementationId->in($sourceSetImplementationIds))->map(pm | ^$propertyTree(propertyMapping = $pm, sets = $propertyTree.sets->filter(s | $s.id == $pm.targetSetImplementationId))); @@ -266,7 +268,7 @@ function meta::pure::graphFetch::splitPropertyTrees(tree:RoutedGraphFetchTree[1] } function meta::pure::graphFetch::getMultiValueSpecBasedOnSetImplPermutation(routedVs: StoreMappingRoutedValueSpecification[1], sourceSetImplementation:SetImplementation[1], exeCtx: ExecutionContext[1], extensions:meta::pure::extension::Extension[*]): StoreMappingRoutedValueSpecification[*] -{ +{ let debug = noDebug(); let permutationSetList = $routedVs.routingStrategy->cast(@StoreMappingRoutingStrategy).sets->cast(@PermutationSet); let uniqueClassesInPermutationSet = $permutationSetList->map(permSet | $permSet.sets->at(0).class)->removeDuplicates(); @@ -274,28 +276,28 @@ function meta::pure::graphFetch::getMultiValueSpecBasedOnSetImplPermutation(rout assert($permutationSetList->size() == $uniqueClassesInPermutationSet->size(), 'Multiple permutationSetImplementation for same class is not suppported for qualified/milestoned property union in GraphFetch'); let setsInScope = $permutationSetList->map(x | ^$x(sets = $x.sets->map(s | $s->resolveOperation($routedVs.mapping)))); - let mapping = $routedVs.mapping; - + let mapping = $routedVs.mapping; + print(if($debug.debug,|'\n'+$debug.space+'Sets found:\n', |'')); print(if($debug.debug,|$setsInScope->map(s|$debug.space+' ['+$s.id->toString()+'|'+$s.sets->map(si|$si.id)->joinStrings(',')+']')->joinStrings('\n')+'\n',|'')); - print(if($debug.debug,|'\n'+$debug.space+'Process Permutations ('+$setsInScope.id->size()->toString()+')\n', |'')); + print(if($debug.debug,|'\n'+$debug.space+'Process Permutations ('+$setsInScope.id->size()->toString()+')\n', |'')); let permutations = $setsInScope->meta::pure::router::store::routing::permute(); - print(if($debug.debug,|$permutations->map(l|$l.values->map(p|$debug.space + ' ['+$p.id->toString()+'|'+$p.sets->toOne().id->toString()+']')->makeString(', '))->makeString('\n')+'\n', |'')); + print(if($debug.debug,|$permutations->map(l|$l.values->map(p|$debug.space + ' ['+$p.id->toString()+'|'+$p.sets->toOne().id->toString()+']')->makeString(', '))->makeString('\n')+'\n', |'')); print(if($debug.debug,|'\n'+$debug.space+'Filtered Permutations ('+$setsInScope.id->size()->toString()+')\n', |'')); let filteredPermutationSet = $permutations->filter(permSet | $permSet.values.sets->forAll(s | ($s.class == $sourceSetImplementation.class && $s.id == $sourceSetImplementation.id) || $s.class != $sourceSetImplementation.class)); print(if($debug.debug,|$filteredPermutationSet->map(l|$l.values->map(p|$debug.space + ' ['+$p.id->toString()+'|'+$p.sets->toOne().id->toString()+']')->makeString(', '))->makeString('\n')+'\n', |'')); - print(if($debug.debug,|'\n'+$debug.space+'Building new queries\n', |'')); - let built = $filteredPermutationSet->map(p | print(if($debug.debug,|' Query '+$permutations->indexOf($p)->toString()+'\n', |'')); + print(if($debug.debug,|'\n'+$debug.space+'Building new queries\n', |'')); + let built = $filteredPermutationSet->map(p | print(if($debug.debug,|' Query '+$permutations->indexOf($p)->toString()+'\n', |'')); $routedVs->evaluateAndDeactivate()->meta::pure::router::store::routing::build($p, [], $mapping, $exeCtx, $extensions, $debug);); - + print(if($debug.debug,|'\n'+$debug.space+'Built queries:'+$built->size()->toString()+'\n', |'')); - print(if($debug.debug,|$built->map(b|$debug.space+' - '+$b->asString())->makeString('\n')+'\n',|'')); - - $built->filter(x|!$x->instanceOf(Void))->cast(@StoreMappingRoutedValueSpecification); + print(if($debug.debug,|$built->map(b|$debug.space+' - '+$b->asString())->makeString('\n')+'\n',|'')); + + $built->filter(x|!$x->instanceOf(Void))->cast(@StoreMappingRoutedValueSpecification); } function <> meta::pure::graphFetch::routing::ensureXStoreRequirementsAtCurrentLevel(currentTree: RoutedGraphFetchTree[1], currentExpression: ValueSpecification[1], processedXStoreMappings: XStorePropertyMapping[*], processedQualifiers: QualifiedProperty[*], mapping: Mapping[1], extensions: Extension[*]): RoutedGraphFetchTree[1] @@ -385,7 +387,7 @@ function <> meta::pure::graphFetch::routing::ensureConstraintsRe }; let forThisTree = ensureFunctionRequirements($tree, $class, $constraintsForClass, [], false); - let newSubTrees = $forThisTree.subTrees->cast(@PropertyGraphFetchTree)->map({st| + let newSubTrees = $forThisTree.subTrees->cast(@PropertyGraphFetchTree)->map({st| let returns = $st.property->functionReturnType().rawType->toOne(); if($returns->instanceOf(Class) && !($updatedCache->contains($returns) && $st->instanceOf(SystemGeneratedPropertyGraphFetchTree)), | $st->ensureConstraintsRequirementsForMappedProperties($returns->cast(@Class), $mapping, $updatedCache, $extensions), @@ -430,7 +432,7 @@ function <> meta::pure::graphFetch::routing::requiredPropertiesA function <> meta::pure::graphFetch::routing::requiredPropertiesAreMapped(pTree:PropertyPathTree[1], class:Class[1], mapping: Mapping[1], extensions:Extension[*]): Boolean[1] { $pTree.value->match([ - {node:PropertyPathNode[1] | + {node:PropertyPathNode[1] | //let classMappings = $class->getAllTypeGeneralisations()->cast(@Class)->map(c|$mapping->rootClassMappingByClass($c))->filter(s|$s->instanceOf(InstanceSetImplementation))->cast(@InstanceSetImplementation); let classMappings = $mapping->classMappings() ->filter(s|$s->instanceOf(InstanceSetImplementation))->cast(@InstanceSetImplementation) @@ -474,7 +476,7 @@ function meta::pure::graphFetch::routing::routePropertyGraphFetchTree(prop: Prop sets = $propertyMappingInfo.sets, propertyMapping = $propertyMappingInfo.propertyMappings, parameters = $prop.parameters, - requiredQualifiedProperties = $prop->match([epgft:ExtendedPropertyGraphFetchTree[1]| $epgft.requiredQualifiedProperties, + requiredQualifiedProperties = $prop->match([epgft:ExtendedPropertyGraphFetchTree[1]| $epgft.requiredQualifiedProperties, gft :GraphFetchTree[1] | [] ]), constraintsExclusions = $prop->match([epgft:ExtendedPropertyGraphFetchTree[1]| $epgft.constraintsExclusions, @@ -490,7 +492,7 @@ function meta::pure::graphFetch::routing::routePropertyGraphFetchTree(prop: Prop sets = [], propertyMapping = [], parameters = $prop.parameters, - requiredQualifiedProperties = $prop->match([epgft:ExtendedPropertyGraphFetchTree[1]| $epgft.requiredQualifiedProperties, + requiredQualifiedProperties = $prop->match([epgft:ExtendedPropertyGraphFetchTree[1]| $epgft.requiredQualifiedProperties, gft :GraphFetchTree[1] | [] ]) );)->ensureXStoreRequirementsAtCurrentLevel($propertyApplicationExporession, [], [], $mapping, $extensions)->cast(@RoutedPropertyGraphFetchTree); @@ -524,7 +526,7 @@ function meta::pure::graphFetch::routing::asString(r: GraphFetchTree[1], spaceSt $space + $rp.property.name->toOne() + if($rp.property->instanceOf(QualifiedProperty), |'('+$rp.parameters->evaluateAndDeactivate()->map(p|$p->asString())->joinStrings(', ')+')', |'') + if($rp.subTrees->isEmpty(), | '', | $rp.subTrees->map(x | $x->asString($space + ' ', $multiLine))->joinStrings(' {'+$newLine, ', '+$newLine, $newLine + $space + '}')), - st: SubTypeGraphFetchTree[1] | + st: SubTypeGraphFetchTree[1] | $space + '->subType(@' + $st.subTypeClass->elementToPath() + ')' + if($st.subTrees->isEmpty(), | '', | $st.subTrees->map(x | $x->asString($space + ' ', $multiLine))->joinStrings(' {'+$newLine, ', '+$newLine, $newLine + $space + '}')); ]); diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/tests/sourceTreeCalc/subType/testOnSourceRoot.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/tests/sourceTreeCalc/subType/testOnSourceRoot.pure index d2342c0c301..e42db7d5e7d 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/tests/sourceTreeCalc/subType/testOnSourceRoot.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/tests/sourceTreeCalc/subType/testOnSourceRoot.pure @@ -15,14 +15,18 @@ import meta::pure::graphFetch::*; import meta::pure::graphFetch::execution::*; import meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::extension::*; import meta::pure::graphFetch::*; import meta::pure::graphFetch::execution::*; import meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::extension::*; import meta::pure::functions::asserts::*; @@ -32,14 +36,14 @@ import meta::pure::functions::asserts::*; // ================================================== -// Via functions in mapping expressions +// Via functions in mapping expressions // ================================================== function <> meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::rootLevel::sourceRoot::testSingleSubType():Boolean[1] { let tree = #{ Target{ - targetZipCode, + targetZipCode, targetAddress } @@ -57,16 +61,16 @@ function <> meta::pure::graphFetch::tests::sour ' street\n' + ' zipCode\n' + ' )\n' + - ')' - ; - assertEquals($expectedSourceTree, $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); + ')' + ; + assertEquals($expectedSourceTree, $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); } function <> meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::rootLevel::sourceRoot::testMultipleSubTypes_instanceOf():Boolean[1] { let tree = #{ Target{ - targetZipCode, + targetZipCode, targetAddress } @@ -93,15 +97,15 @@ function <> meta::pure::graphFetch::tests::sour ' zipCode\n' + ' )\n'+ ')' - ; - assertEquals($expectedSourceTree, $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); + ; + assertEquals($expectedSourceTree, $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); } function <> meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::rootLevel::sourceRoot::testMultipleSubTypes_match():Boolean[1] { let tree = #{ Target{ - targetZipCode, + targetZipCode, targetAddress } @@ -128,15 +132,15 @@ function <> meta::pure::graphFetch::tests::sour ' zipCode\n' + ' )\n'+ ')' - ; - assertEquals($expectedSourceTree, $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); + ; + assertEquals($expectedSourceTree, $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); } function <> meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::rootLevel::sourceRoot::testMultipleSubTypes_match_functionCall():Boolean[1] { let tree = #{ Target{ - targetZipCode, + targetZipCode, targetAddress } @@ -163,15 +167,15 @@ function <> meta::pure::graphFetch::tests::sour ' zipCode\n' + ' )\n'+ ')' - ; - assertEquals($expectedSourceTree, $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); + ; + assertEquals($expectedSourceTree, $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); } function <> meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::rootLevel::sourceRoot::testMultipleSubTypes_noPropertyAccess_instanceOf():Boolean[1] { let tree = #{ Target{ - targetZipCode, + targetZipCode, targetAddress } @@ -194,8 +198,8 @@ function <> meta::pure::graphFetch::tests::sour ' zipCode\n' + ' )\n' + ')'; - - assertEquals($expectedSourceTree, $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); + + assertEquals($expectedSourceTree, $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); true; } @@ -203,7 +207,7 @@ function <> meta::pure::graphFetch::tests::sour { let tree = #{ Target{ - targetZipCode, + targetZipCode, targetAddress } @@ -226,14 +230,14 @@ function <> meta::pure::graphFetch::tests::sour ' )\n' + ')'; - assertEquals($expectedSourceTree, $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); + assertEquals($expectedSourceTree, $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); } function <> meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::rootLevel::sourceRoot::testMultipleSubTypes_noPropertyAccess_match_functionCall():Boolean[1] { let tree = #{ Target{ - targetZipCode, + targetZipCode, targetAddress } @@ -256,7 +260,7 @@ function <> meta::pure::graphFetch::tests::sour ' )\n' + ')'; - assertEquals($expectedSourceTree, $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); + assertEquals($expectedSourceTree, $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); true; } @@ -279,10 +283,10 @@ function <> meta::pure::graphFetch::tests::sour ' ->SubType(Street)\n' + ')'; - assertEquals($expectedSourceTree, $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); + assertEquals($expectedSourceTree, $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); true; } - + ###Mapping import meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::*; @@ -309,7 +313,7 @@ Mapping meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::rootLevel::s |$src->cast(@meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Road).road, |$src->cast(@meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location).coordinates ) - ) + ) } ) @@ -320,7 +324,7 @@ Mapping meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::rootLevel::s ~src meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location targetZipCode: $src.zipCode, targetAddress: $src->match([ - s:Street[1] | $s.street, + s:Street[1] | $s.street, r:Road[1] | $r.road, l:Location[1] | $l.coordinates ]) @@ -350,7 +354,7 @@ Mapping meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::rootLevel::s |'road_valueFromMapping', |'location_valueFromMapping' ) - ) + ) } ) @@ -362,7 +366,7 @@ Mapping meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::rootLevel::s targetZipCode: $src.zipCode, isLocation : $src->instanceOf(meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location), isRoad : $src->instanceOf(meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Road), - isStreet : $src->instanceOf(meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street ) + isStreet : $src->instanceOf(meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street ) } ) @@ -373,7 +377,7 @@ Mapping meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::rootLevel::s ~src meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location targetZipCode: $src.zipCode, targetAddress: $src->match([ - s:Street[1] | 'street_valueFromMapping', + s:Street[1] | 'street_valueFromMapping', r:Road[1] | 'road_valueFromMapping', l:Location[1] | 'location_valueFromMapping' ]) @@ -398,7 +402,7 @@ import meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::*; function meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::rootLevel::sourceRoot::getLocationStr(loc:meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location[1]):String[1] { $loc->match([ - s:meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street[1] | $s.street, + s:meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street[1] | $s.street, r:meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Road[1] | $r.road, l:meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location[1] | $l.coordinates ]); @@ -407,7 +411,7 @@ function meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::rootLevel:: function meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::rootLevel::sourceRoot::getLocationStr_noPropertyAccess(loc:meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location[1]):String[1] { $loc->match([ - s:meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street[1] | 'street_valueFromMapping', + s:meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street[1] | 'street_valueFromMapping', r:meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Road[1] | 'road_valueFromMapping', l:meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location[1] | 'location_valueFromMapping' ]); @@ -415,7 +419,7 @@ function meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::rootLevel:: // =========================================================== -// Via multiple sets in mapping +// Via multiple sets in mapping // TODO - handle operation sets in calculateSourceTree // =========================================================== @@ -423,7 +427,7 @@ function <> meta::pure::graphFetch::tests::sou { let tree = #{ Target{ - targetZipCode, + targetZipCode, targetAddress } @@ -448,8 +452,8 @@ function <> meta::pure::graphFetch::tests::sou ' zipCode\n' + ' )\n'+ ')' - ; - assertEquals($expectedSourceTree, $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); + ; + assertEquals($expectedSourceTree, $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); } @@ -462,7 +466,7 @@ Mapping meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::rootLevel::s { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(location,road,street) } - + meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Target[location]: Pure { ~src meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location @@ -483,4 +487,4 @@ Mapping meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::rootLevel::s targetZipCode : $src.zipCode, targetAddress : $src.street } -) \ No newline at end of file +) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/tests/sourceTreeCalc/testSourceTreeCalc.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/tests/sourceTreeCalc/testSourceTreeCalc.pure index 161271452bd..69e897c700d 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/tests/sourceTreeCalc/testSourceTreeCalc.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/tests/sourceTreeCalc/testSourceTreeCalc.pure @@ -26,7 +26,7 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testSingle a } }#; - + let sourceTree = calculateSourceTree($tree, testMapping, meta::pure::extension::defaultExtensions())->sortTree(); let expected = #{ _A { @@ -65,7 +65,7 @@ Class meta::pure::graphFetch::tests::sourceTreeCalc::singleProperty::_A b: String[1]; } -###Mapping +###Mapping import meta::pure::graphFetch::tests::sourceTreeCalc::singleProperty::*; Mapping meta::pure::graphFetch::tests::sourceTreeCalc::singleProperty::testMapping @@ -92,7 +92,7 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testSingle a } }#; - + let sourceTree = calculateSourceTree($tree, testMapping, meta::pure::extension::defaultExtensions())->sortTree(); let expected = #{ _A { @@ -126,7 +126,7 @@ Class meta::pure::graphFetch::tests::sourceTreeCalc::singlePropertyChain::_C c: String[1]; } -###Mapping +###Mapping import meta::pure::graphFetch::tests::sourceTreeCalc::singlePropertyChain::*; Mapping meta::pure::graphFetch::tests::sourceTreeCalc::singlePropertyChain::testMapping @@ -161,11 +161,11 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testEquiva } }, a3 { - c + c } } }#; - + let sourceTree = calculateSourceTree($tree, testMapping, meta::pure::extension::defaultExtensions())->sortTree(); let expected = #{ _A { @@ -181,7 +181,7 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testEquiva } }, a3 { - c + c } } }#; @@ -254,7 +254,7 @@ Class meta::pure::graphFetch::tests::sourceTreeCalc::equivalentGraph::_F f: String[1]; } -###Mapping +###Mapping import meta::pure::graphFetch::tests::sourceTreeCalc::equivalentGraph::*; Mapping meta::pure::graphFetch::tests::sourceTreeCalc::equivalentGraph::testMapping @@ -266,32 +266,32 @@ Mapping meta::pure::graphFetch::tests::sourceTreeCalc::equivalentGraph::testMapp a2: $src.a2, a3: $src.a3 } - + B: Pure { ~src _B b1: $src.b1, b2: $src.b2 } - + C: Pure { ~src _C c: $src.c } - + D: Pure { ~src _D d: $src.d } - + E: Pure { ~src _E e: $src.e } - + F: Pure { ~src _F @@ -314,7 +314,7 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testDuplic a2 } }#; - + let sourceTree = calculateSourceTree($tree, testMapping, meta::pure::extension::defaultExtensions())->sortTree(); let expected = #{ _A { @@ -351,7 +351,7 @@ Class meta::pure::graphFetch::tests::sourceTreeCalc::duplicatePaths::_C c2: String[1]; } -###Mapping +###Mapping import meta::pure::graphFetch::tests::sourceTreeCalc::duplicatePaths::*; Mapping meta::pure::graphFetch::tests::sourceTreeCalc::duplicatePaths::testMapping @@ -380,7 +380,7 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testWithFu a3 } }#; - + let sourceTree = calculateSourceTree($tree, testMapping, meta::pure::extension::defaultExtensions())->sortTree(); let expected = #{ _A { @@ -422,7 +422,7 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testWithFu a3 } }#; - + let sourceTree = calculateSourceTree($tree, testMappingWithNewVarDeclarationInIfClause, meta::pure::extension::defaultExtensions())->sortTree(); let expected = #{ _A { @@ -494,7 +494,7 @@ Class meta::pure::graphFetch::tests::sourceTreeCalc::withFunctions::_E e: String[1]; } -###Mapping +###Mapping import meta::pure::graphFetch::tests::sourceTreeCalc::withFunctions::*; Mapping meta::pure::graphFetch::tests::sourceTreeCalc::withFunctions::testMapping @@ -533,12 +533,12 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testComple a1{ b{ c1 - } + } }, a2{ b{ c2 - } + } }, a3, a4{ @@ -554,7 +554,7 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testComple } } }#; - + let sourceTree = calculateSourceTree($tree, testMapping, meta::pure::extension::defaultExtensions())->sortTree(); let expected = #{ A { @@ -610,7 +610,7 @@ Class meta::pure::graphFetch::tests::sourceTreeCalc::withComplexTarget::_E e: String[1]; } -###Mapping +###Mapping import meta::pure::graphFetch::tests::sourceTreeCalc::withComplexTarget::*; Mapping meta::pure::graphFetch::tests::sourceTreeCalc::withComplexTarget::testMapping @@ -618,27 +618,27 @@ Mapping meta::pure::graphFetch::tests::sourceTreeCalc::withComplexTarget::testMa _A: Pure { ~src A - a1: $src, + a1: $src, a2: $src, a3: $src.a5, a4: $src, a5: $src.a6, a6: $src } - + _B: Pure { ~src A b: $src } - + _D: Pure { ~src A d1: $src, - d2: $src + d2: $src } - + _E: Pure { ~src A @@ -650,7 +650,7 @@ Mapping meta::pure::graphFetch::tests::sourceTreeCalc::withComplexTarget::testMa c1: $src.a2->at(0), c2: $src.a3 } - + ) // --- With Qualified Property (Target) @@ -668,7 +668,7 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testWithTa qa(2) } }#; - + let sourceTree = calculateSourceTree($tree, testMapping, meta::pure::extension::defaultExtensions())->sortTree(); let expected = #{ _A { @@ -703,7 +703,7 @@ Class meta::pure::graphFetch::tests::sourceTreeCalc::withTargetQualifiedProperty b1: Integer[1]; } -###Mapping +###Mapping import meta::pure::graphFetch::tests::sourceTreeCalc::withTargetQualifiedProperty::*; Mapping meta::pure::graphFetch::tests::sourceTreeCalc::withTargetQualifiedProperty::testMapping @@ -737,7 +737,7 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testWithSo a2 } }#; - + let sourceTree = calculateSourceTree($tree, testMapping, meta::pure::extension::defaultExtensions())->sortTree(); let expected = #{ _A { @@ -782,7 +782,7 @@ Class meta::pure::graphFetch::tests::sourceTreeCalc::withSourceQualifiedProperty c1: String[1]; } -###Mapping +###Mapping import meta::pure::graphFetch::tests::sourceTreeCalc::withSourceQualifiedProperty::*; Mapping meta::pure::graphFetch::tests::sourceTreeCalc::withSourceQualifiedProperty::testMapping @@ -818,9 +818,9 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testWithMi } } }#; - + let sourceTree = calculateSourceTree($tree, testMapping, meta::pure::extension::defaultExtensions())->sortTree(); - + let expected = #{ _A { _b(%2020-1-1){ @@ -871,7 +871,7 @@ Class <> meta::pure::graphFetch::tests::sourceTreeCalc::wit c1: Integer[1]; } -###Mapping +###Mapping import meta::pure::graphFetch::tests::sourceTreeCalc::withMilestonedProperty::*; Mapping meta::pure::graphFetch::tests::sourceTreeCalc::withMilestonedProperty::testMapping @@ -881,14 +881,14 @@ Mapping meta::pure::graphFetch::tests::sourceTreeCalc::withMilestonedProperty::t ~src _C c1 : $src._c1 } - + B: Pure { ~src _B b1 : $src._b1, cAllVersions : $src._cAllVersions } - + A: Pure { ~src _A @@ -931,7 +931,7 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testWithCo b1 } }#; - + let sourceTree = calculateSourceTree($tree, testMapping_fromSubTypeSource, meta::pure::extension::defaultExtensions())->ensureConstraintsRequirements()->sortTree(); let expected = #{ _B { @@ -966,7 +966,7 @@ Class meta::pure::graphFetch::tests::sourceTreeCalc::withConstraintProperty::_B b1:String[1]; } -###Mapping +###Mapping import meta::pure::graphFetch::tests::sourceTreeCalc::withConstraintProperty::*; Mapping meta::pure::graphFetch::tests::sourceTreeCalc::withConstraintProperty::testMapping @@ -1003,7 +1003,7 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testWithCo a1 } }#; - + let sourceTree = calculateSourceTree($tree, testMapping, meta::pure::extension::defaultExtensions())->ensureConstraintsRequirements()->sortTree(); let expected = #{ _A { @@ -1043,7 +1043,7 @@ Class meta::pure::graphFetch::tests::sourceTreeCalc::withConstraintOnChildProper c1: String[0..1]; } -###Mapping +###Mapping import meta::pure::graphFetch::tests::sourceTreeCalc::withConstraintOnChildProperty::*; Mapping meta::pure::graphFetch::tests::sourceTreeCalc::withConstraintOnChildProperty::testMapping @@ -1070,7 +1070,7 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testWithUn a1 } }#; - + let sourceTree = calculateSourceTree($tree, testMapping, meta::pure::extension::defaultExtensions())->ensureConstraintsRequirements()->sortTree(); let expected = #{ _A { @@ -1100,7 +1100,7 @@ Class meta::pure::graphFetch::tests::sourceTreeCalc::withUnrelatedConstraintProp b1: String[1]; } -###Mapping +###Mapping import meta::pure::graphFetch::tests::sourceTreeCalc::withUnrelatedConstraintProperty::*; Mapping meta::pure::graphFetch::tests::sourceTreeCalc::withUnrelatedConstraintProperty::testMapping @@ -1116,7 +1116,7 @@ Mapping meta::pure::graphFetch::tests::sourceTreeCalc::withUnrelatedConstraintPr import meta::pure::graphFetch::*; import meta::pure::graphFetch::execution::*; import meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::*; - + Class meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Target { targetZipCode: String[1]; @@ -1130,7 +1130,7 @@ Class meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Target2 isRoad : Boolean[1]; isStreet: Boolean[1]; } - + Class meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Person { address: Location[1]; @@ -1141,12 +1141,12 @@ Class meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location zipCode: String[1]; coordinates: String[1]; } - + Class meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street extends Location { street: String[1]; } - + Class meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Road extends Location { road: String[1]; @@ -1162,7 +1162,7 @@ Class meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::SourceStreetCl { streetCluster: Street[*]; } - + function <> meta::pure::graphFetch::tests::sourceTreeCalc::testWithSingleSubType():Boolean[1] { let tree0 = #{ @@ -1177,12 +1177,12 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testWithSi zipCode } } - }#; - assertEquals($expectedSourceTree0->sortTree()->meta::pure::graphFetch::treeToString(), $sourceTree0->sortTree()->meta::pure::graphFetch::treeToString()); - + }#; + assertEquals($expectedSourceTree0->sortTree()->meta::pure::graphFetch::treeToString(), $sourceTree0->sortTree()->meta::pure::graphFetch::treeToString()); + let tree = #{ Target{ - targetZipCode, + targetZipCode, targetAddress } }#; @@ -1197,10 +1197,10 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testWithSi street } } - }#; - - assertEquals($expectedSourceTree->sortTree()->meta::pure::graphFetch::treeToString(), $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); - + }#; + + assertEquals($expectedSourceTree->sortTree()->meta::pure::graphFetch::treeToString(), $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); + let tree1 = #{ Target{ targetAddress @@ -1213,15 +1213,15 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testWithSi street } } - }#; - assertEquals($expectedSourceTree1->sortTree()->meta::pure::graphFetch::treeToString(), $sourceTree1->sortTree()->meta::pure::graphFetch::treeToString()); + }#; + assertEquals($expectedSourceTree1->sortTree()->meta::pure::graphFetch::treeToString(), $sourceTree1->sortTree()->meta::pure::graphFetch::treeToString()); } - + function <> meta::pure::graphFetch::tests::sourceTreeCalc::testWithMultipleSubTypes():Boolean[1] -{ +{ let tree = #{ Target{ - targetZipCode, + targetZipCode, targetAddress } }#; @@ -1230,23 +1230,23 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testWithMu Person { address{ - coordinates, + coordinates, zipCode - }, + }, address->subType(@Street){ coordinates, street, zipCode - }, + }, address->subType(@Road){ coordinates, - road, + road, zipCode } } }#; assertEquals($expectedSourceTree->sortTree()->meta::pure::graphFetch::treeToString(), $sourceTree->meta::pure::graphFetch::treeToString()); - + let tree1 = #{ Target{ targetAddress @@ -1255,10 +1255,10 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testWithMu let sourceTree1 = calculateSourceTree($tree1, meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::testMappingWithMultipleSubTypes, meta::pure::extension::defaultExtensions())->sortTree(); let expectedSourceTree1 = #{ Person - { + { address{ coordinates - }, + }, address->subType(@Street){ coordinates, street @@ -1268,8 +1268,8 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testWithMu road } } - }#; - assertEquals($expectedSourceTree1->sortTree()->meta::pure::graphFetch::treeToString(), $sourceTree1->meta::pure::graphFetch::treeToString()); + }#; + assertEquals($expectedSourceTree1->sortTree()->meta::pure::graphFetch::treeToString(), $sourceTree1->meta::pure::graphFetch::treeToString()); } function <> meta::pure::graphFetch::tests::sourceTreeCalc::testSuperTypePropertyAccess():Boolean[1] @@ -1281,16 +1281,16 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testSuperT }#; let sourceTree = calculateSourceTree($tree, meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::testMappingWithSuperTypeProperties, meta::pure::extension::defaultExtensions())->sortTree(); let expectedSourceTree = #{ - meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::SourceStreetCluster{ - streetCluster{ + meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::SourceStreetCluster{ + streetCluster{ zipCode } } }#; - assertEquals($expectedSourceTree->sortTree()->meta::pure::graphFetch::treeToString(), $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); + assertEquals($expectedSourceTree->sortTree()->meta::pure::graphFetch::treeToString(), $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); } - - + + function <> meta::pure::graphFetch::tests::sourceTreeCalc::testSuperTypePropertyAccessViaFunction():Boolean[1] { let tree = #{ @@ -1301,14 +1301,14 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testSuperT let sourceTree = calculateSourceTree($tree, meta::pure::graphFetch::tests::sourceTreeCalc::withSuperType::testMappingWithSuperTypePropertiesAccessViaFunction, meta::pure::extension::defaultExtensions())->sortTree(); let expectedSourceTree = #{ - meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::SourceStreetCluster{ + meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::SourceStreetCluster{ streetCluster{ zipCode } } }#; - assertEquals($expectedSourceTree->sortTree()->meta::pure::graphFetch::treeToString(), $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); + assertEquals($expectedSourceTree->sortTree()->meta::pure::graphFetch::treeToString(), $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); } function <> meta::pure::graphFetch::tests::sourceTreeCalc::testSuperAndSubTypePropertyAccessViaFunction():Boolean[1] @@ -1322,7 +1322,7 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testSuperA let sourceTree = calculateSourceTree($tree, meta::pure::graphFetch::tests::sourceTreeCalc::withSuperType::testMappingWithSuperAndSubTypePropertiesAccessViaFunction, meta::pure::extension::defaultExtensions())->sortTree(); let expectedSourceTree = #{ - meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::SourceStreetCluster{ + meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::SourceStreetCluster{ streetCluster{ street, zipCode @@ -1330,12 +1330,12 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testSuperA } }#; - assertEquals($expectedSourceTree->sortTree()->meta::pure::graphFetch::treeToString(), $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); + assertEquals($expectedSourceTree->sortTree()->meta::pure::graphFetch::treeToString(), $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); } - + function meta::pure::lineage::scanProperties::test::getZipCodes(s:Location[*]):String[*] { - $s->map(x|$x.zipCode); + $s->map(x|$x.zipCode); } function meta::pure::lineage::scanProperties::test::getStreetNames(s:Street[*]):String[*] @@ -1385,7 +1385,7 @@ Mapping meta::pure::graphFetch::tests::sourceTreeCalc::withSuperType::testMappin streetNames: $src.streetCluster->meta::pure::lineage::scanProperties::test::getStreetNames() } ) - + ###Mapping import meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::*; Mapping meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::testMappingWithMultipleSubTypes @@ -1395,7 +1395,7 @@ Mapping meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::testMappingW ~src meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Person targetZipCode: $src.address.zipCode, targetAddress: $src.address->match([ - s:Street[1] | $s.street, + s:Street[1] | $s.street, r:Road[1] | $r.road, l:Location[1] | $l.coordinates ]) @@ -1458,7 +1458,7 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testNested ' )\n' + ')'; - let sourceTree = meta::pure::graphFetch::calculateSourceTree($tree, + let sourceTree = meta::pure::graphFetch::calculateSourceTree($tree, meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::SourceToTargetMappingWithSubtypeAndSuperTypeAccesses, meta::pure::extension::defaultExtensions())->meta::pure::graphFetch::sortTree(); assertEquals($expectedString, $sourceTree->meta::pure::graphFetch::sortTree()->meta::pure::graphFetch::treeToString()); @@ -1485,7 +1485,7 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testNested ' )\n' + ')'; - let sourceTree = meta::pure::graphFetch::calculateSourceTree($tree, + let sourceTree = meta::pure::graphFetch::calculateSourceTree($tree, meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::SourceToTargetMappingWithSubtypeAndSuperTypeAccesses2, meta::pure::extension::defaultExtensions())->meta::pure::graphFetch::sortTree(); assertEquals($expectedString, $sourceTree->meta::pure::graphFetch::sortTree()->meta::pure::graphFetch::treeToString()); @@ -1532,6 +1532,7 @@ import meta::pure::dataQuality::*; import meta::pure::executionPlan::profiles::*; import meta::pure::graphFetch::execution::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::*; import meta::pure::mapping::modelToModel::test::alloy::simple::objects::dest::*; import meta::pure::mapping::modelToModel::test::alloy::simple::*; @@ -1539,6 +1540,7 @@ import meta::pure::mapping::modelToModel::test::alloy::utils::*; import meta::pure::mapping::modelToModel::test::shared::src::*; import meta::pure::mapping::modelToModel::test::shared::dest::*; import meta::pure::mapping::modelToModel::test::simple::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function <> meta::pure::mapping::modelToModel::test::alloy::simple::sourceTreeCalc::simpleObjectWithSingleSubTypeOnRoot() : Boolean[1] @@ -1548,7 +1550,7 @@ function <> meta::pure::mapping::modelToModel:: let mapping= simpleModelMappingWithSubType; let sourceTree = calculateSourceTree($tree, $mapping, meta::pure::extension::defaultExtensions()); - assertEquals($expectedSourceTree->sortTree()->meta::pure::graphFetch::treeToString(), $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); + assertEquals($expectedSourceTree->sortTree()->meta::pure::graphFetch::treeToString(), $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); } @@ -1559,7 +1561,7 @@ function <> meta::pure::mapping::modelToModel:: let mapping= simpleModelMappingWithSubType; let sourceTree = calculateSourceTree($tree, $mapping, meta::pure::extension::defaultExtensions()); - assertEquals($expectedSourceTree->sortTree()->meta::pure::graphFetch::treeToString(), $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); + assertEquals($expectedSourceTree->sortTree()->meta::pure::graphFetch::treeToString(), $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); } function <> meta::pure::mapping::modelToModel::test::alloy::simple::sourceTreeCalc::simpleObjectWithSubTypeWithNestedAssosiation() : Boolean[1] @@ -1569,18 +1571,18 @@ function <> meta::pure::mapping::modelToModel:: let mapping= simpleModelMappingWithSubTypeWithNestedAssociation; let sourceTree = calculateSourceTree($tree, $mapping, meta::pure::extension::defaultExtensions()); - assertEquals($expectedSourceTree->sortTree()->meta::pure::graphFetch::treeToString(), $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); + assertEquals($expectedSourceTree->sortTree()->meta::pure::graphFetch::treeToString(), $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); } function <> meta::pure::mapping::modelToModel::test::alloy::simple::sourceTreeCalc::simpleObjectWithSubTypesSameNameInDifferentModules(): Boolean[1] { let tree = #{Friendship {friendA {firstName}, friendB {firstName} }}#; - let expectedSourceTree =#{ meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::_S_Friendship - { + let expectedSourceTree =#{ meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::_S_Friendship + { friendA { fullName }, friendA->subType(@meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA) {aName, fullName }, - friendA->subType(@meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::_S_PersonA) {aName, fullName }, + friendA->subType(@meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::_S_PersonA) {aName, fullName }, friendB { fullName }, friendB->subType(@meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA) {aName, fullName }, friendB->subType(@meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::_S_PersonA) {aName, fullName } @@ -1588,7 +1590,7 @@ function <> meta::pure::mapping::modelToModel:: let mapping= meta::pure::mapping::modelToModel::test::alloy::simpleModelMappingWithMultipleSubType; let sourceTree = calculateSourceTree($tree, $mapping, meta::pure::extension::defaultExtensions()); - assertEquals($expectedSourceTree->sortTree()->meta::pure::graphFetch::treeToString(), $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); + assertEquals($expectedSourceTree->sortTree()->meta::pure::graphFetch::treeToString(), $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); } @@ -1596,11 +1598,11 @@ function <> meta::pure::mapping::modelToModel:: function <> meta::pure::mapping::modelToModel::test::alloy::simple::sourceTreeCalc::simpleObjectWithMultiLevelInheritance() : Boolean[1] { let tree = #{Friendship {friendA {firstName}, friendB {firstName}, friendC {firstName} }}#; - let expectedSourceTree =#{ meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::_S_Friendship - { + let expectedSourceTree =#{ meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::_S_Friendship + { friendA { fullName }, friendA->subType(@meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA) {aName, fullName }, - friendA->subType(@meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::_S_PersonA) {aName, fullName }, + friendA->subType(@meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::_S_PersonA) {aName, fullName }, friendB { fullName }, friendB->subType(@meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA) {aName, fullName }, friendB->subType(@meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::_S_PersonA) {aName, fullName }, @@ -1613,7 +1615,7 @@ function <> meta::pure::mapping::modelToModel: let mapping= meta::pure::mapping::modelToModel::test::alloy::simpleModelMappingWithMultipleSubType; let sourceTree = calculateSourceTree($tree, $mapping, meta::pure::extension::defaultExtensions()); - assertEquals($expectedSourceTree->sortTree()->meta::pure::graphFetch::treeToString(), $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); + assertEquals($expectedSourceTree->sortTree()->meta::pure::graphFetch::treeToString(), $sourceTree->sortTree()->meta::pure::graphFetch::treeToString()); } @@ -1655,7 +1657,7 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testFilter ' y\n' + ')'; - let sourceTree = meta::pure::graphFetch::calculateSourceTree($tree, + let sourceTree = meta::pure::graphFetch::calculateSourceTree($tree, meta::pure::graphFetch::tests::sourceTreeCalc::withFilters::SourceToTargetMappingWithFilters, meta::pure::extension::defaultExtensions()); assertEquals($expectedString, $sourceTree->meta::pure::graphFetch::sortTree()->meta::pure::graphFetch::treeToString()); @@ -1694,17 +1696,17 @@ Class meta::pure::graphFetch::tests::sourceTreeCalc::withFilters::UnionA fld : String[1]; } -Class meta::pure::graphFetch::tests::sourceTreeCalc::withFilters::UnionB +Class meta::pure::graphFetch::tests::sourceTreeCalc::withFilters::UnionB { fld : String[1]; } -Class meta::pure::graphFetch::tests::sourceTreeCalc::withFilters::UnionTarget +Class meta::pure::graphFetch::tests::sourceTreeCalc::withFilters::UnionTarget { c : meta::pure::graphFetch::tests::sourceTreeCalc::withFilters::UnionC[*]; } -Class meta::pure::graphFetch::tests::sourceTreeCalc::withFilters::UnionC +Class meta::pure::graphFetch::tests::sourceTreeCalc::withFilters::UnionC { fld : String[1]; } @@ -1716,20 +1718,20 @@ function <> meta::pure::mapping::modelToModel:: let expectedString = 'UnionSource\n' + '(\n' + ' a\n' + - ' (\n' + - ' fld\n' + - ' )\n' + + ' (\n' + + ' fld\n' + + ' )\n' + ' b\n' + - ' (\n' + - ' fld\n' + - ' )\n' + + ' (\n' + + ' fld\n' + + ' )\n' + ')'; - let sourceTree = meta::pure::graphFetch::calculateSourceTree($tree, + let sourceTree = meta::pure::graphFetch::calculateSourceTree($tree, meta::pure::graphFetch::tests::sourceTreeCalc::withFilters::UnionMappingWithSingleFilter, meta::pure::extension::defaultExtensions()); - assertEquals($expectedString, $sourceTree->meta::pure::graphFetch::sortTree()->meta::pure::graphFetch::treeToString()); + assertEquals($expectedString, $sourceTree->meta::pure::graphFetch::sortTree()->meta::pure::graphFetch::treeToString()); } @@ -1742,25 +1744,25 @@ Mapping meta::pure::graphFetch::tests::sourceTreeCalc::withFilters::UnionMapping ( *meta::pure::graphFetch::tests::sourceTreeCalc::withFilters::UnionTarget : Pure { - ~src meta::pure::graphFetch::tests::sourceTreeCalc::withFilters::UnionSource + ~src meta::pure::graphFetch::tests::sourceTreeCalc::withFilters::UnionSource c[c1] : $src.a , - c[c2] : $src.b + c[c2] : $src.b } - *meta::pure::graphFetch::tests::sourceTreeCalc::withFilters::UnionC[c_value] : Operation + *meta::pure::graphFetch::tests::sourceTreeCalc::withFilters::UnionC[c_value] : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(c1,c2) } - meta::pure::graphFetch::tests::sourceTreeCalc::withFilters::UnionC[c1] : Pure + meta::pure::graphFetch::tests::sourceTreeCalc::withFilters::UnionC[c1] : Pure { ~src meta::pure::graphFetch::tests::sourceTreeCalc::withFilters::UnionA ~filter $src.fld->isNotEmpty() fld : $src.fld+'_a' } - meta::pure::graphFetch::tests::sourceTreeCalc::withFilters::UnionC[c2] : Pure + meta::pure::graphFetch::tests::sourceTreeCalc::withFilters::UnionC[c2] : Pure { ~src meta::pure::graphFetch::tests::sourceTreeCalc::withFilters::UnionB fld : $src.fld+'_b' @@ -1815,14 +1817,14 @@ function <> meta::pure::mapping::modelToModel:: '(\n' + ' calcTyp\n' + ' putSch\n' + - ' (\n' + - ' putScheduleDt\n' + - ' putSchedulePct\n' + - ' )\n' + + ' (\n' + + ' putScheduleDt\n' + + ' putSchedulePct\n' + + ' )\n' + ' redempVal\n' + ')'; - let sourceTree = meta::pure::graphFetch::calculateSourceTree($tree, + let sourceTree = meta::pure::graphFetch::calculateSourceTree($tree, meta::pure::graphFetch::tests::sourceTreeCalc::MappingUnionFromRootClassAndProperty, meta::pure::extension::defaultExtensions()); assertEquals($expectedString, $sourceTree->meta::pure::graphFetch::sortTree()->meta::pure::graphFetch::treeToString()); @@ -1935,9 +1937,9 @@ function <> meta::pure::mapping::modelToModel:: ' )\n' + ' )\n' + ')'; - - let sourceTree = meta::pure::graphFetch::calculateSourceTree($tree, + + let sourceTree = meta::pure::graphFetch::calculateSourceTree($tree, meta::pure::graphFetch::tests::sourceTreeCalc::EquityTargetMapping, meta::pure::extension::defaultExtensions()); assertEquals($expectedString, $sourceTree->meta::pure::graphFetch::sortTree()->meta::pure::graphFetch::treeToString()); @@ -1957,7 +1959,7 @@ Mapping meta::pure::graphFetch::tests::sourceTreeCalc::EquityTargetMapping } - + *meta::pure::graphFetch::tests::sourceTreeCalc::Identifier1 : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(union1, union2) @@ -1965,14 +1967,14 @@ Mapping meta::pure::graphFetch::tests::sourceTreeCalc::EquityTargetMapping meta::pure::graphFetch::tests::sourceTreeCalc::Identifier2[prodid]: Pure { ~src meta::pure::graphFetch::tests::sourceTreeCalc::EquityPayloadList - + FROM_Z*: $src.payload.data.id2.FROM_Z, THRU_Z*: $src.payload.data.id2.THRU_Z } meta::pure::graphFetch::tests::sourceTreeCalc::Identifier1[union1]: Pure { ~src meta::pure::graphFetch::tests::sourceTreeCalc::EquityPayloadList - + FROM_Z*: $src.payload.data.EquityTradable.bid.FROM_Z, THRU_Z*: $src.payload.data.EquityTradable.bid.THRU_Z } @@ -1982,7 +1984,7 @@ Mapping meta::pure::graphFetch::tests::sourceTreeCalc::EquityTargetMapping FROM_Z*: $src.payload.data.id2.FROM_Z, THRU_Z*: $src.payload.data.id2.THRU_Z } - + ) @@ -2032,20 +2034,20 @@ function <> meta::pure::graphFetch::tests::sourceTreeCalc::testFlatte } }#; - let expectedString = 'Source_A\n' + + let expectedString = 'Source_A\n' + '(\n' + ' propA\n' + ' propB\n' + ' (\n' + ' propC\n' + - ' propC->subType(Source_C_1)\n' + + ' propC->subType(Source_C_1)\n' + ' (\n' + ' propD\n' + ' )\n' + ' )\n' + ')'; - let sourceTree = meta::pure::graphFetch::calculateSourceTree($tree, + let sourceTree = meta::pure::graphFetch::calculateSourceTree($tree, meta::pure::graphFetch::tests::sourceTreeCalc::withFlatteningInTransform::SourceToTargetMappingWithFlatteningInTransform, meta::pure::extension::defaultExtensions()); assertEquals($expectedString, $sourceTree->meta::pure::graphFetch::sortTree()->meta::pure::graphFetch::treeToString()); @@ -2057,7 +2059,7 @@ Mapping meta::pure::graphFetch::tests::sourceTreeCalc::withFlatteningInTransform meta::pure::graphFetch::tests::sourceTreeCalc::withFlatteningInTransform::Target_A : Pure { ~src meta::pure::graphFetch::tests::sourceTreeCalc::withFlatteningInTransform::Source_A - + propA : $src.propA, propB : $src.propB.propC->cast(@meta::pure::graphFetch::tests::sourceTreeCalc::withFlatteningInTransform::Source_C_1) } @@ -2065,7 +2067,7 @@ Mapping meta::pure::graphFetch::tests::sourceTreeCalc::withFlatteningInTransform meta::pure::graphFetch::tests::sourceTreeCalc::withFlatteningInTransform::Target_B : Pure { ~src meta::pure::graphFetch::tests::sourceTreeCalc::withFlatteningInTransform::Source_C_1 - + propC : $src.propD } ) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/tests/testCrossStoreGraphFetch.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/tests/testCrossStoreGraphFetch.pure index 4fb7f309153..604120b009b 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/tests/testCrossStoreGraphFetch.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/tests/testCrossStoreGraphFetch.pure @@ -150,25 +150,30 @@ Mapping meta::pure::graphFetch::tests::XStore::inMemory::JsonCrossStoreMapping ###Pure import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::pure::graphFetch::tests::XStore::inMemory::jsonConnectionTrade():JsonModelConnection[1] { - ^JsonModelConnection(element = ^ModelStore(), - class = meta::pure::graphFetch::tests::XStore::inMemory::S_Trade, + ^JsonModelConnection(class = meta::pure::graphFetch::tests::XStore::inMemory::S_Trade, url = 'data:application/json,\n{"s_tradeId": 1, "s_tradeDetails": "30:100", "s_traderDetails": "abc:F_Name_1:L_Name_1"}\n{"s_tradeId": 2, "s_tradeDetails": "31:200", "s_traderDetails": "abc:F_Name_1:L_Name_1"}\n{"s_tradeId": 3, "s_tradeDetails": "30:300", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}\n{"s_tradeId": 4, "s_tradeDetails": "31:400", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}\n') } function meta::pure::graphFetch::tests::XStore::inMemory::jsonConnectionProduct():JsonModelConnection[1] { - ^JsonModelConnection(element = ^ModelStore(), + ^JsonModelConnection( class = meta::pure::graphFetch::tests::XStore::inMemory::S_Product, url = 'data:application/json,\n{"s_productId": "30", "s_productName": "Product 30", "s_description": "Product 30 description", "s_synonyms": [{"s_name":"product 30 synonym 1", "s_type":"isin"}, {"s_name":"product 30 synonym 2", "s_type":"cusip"}]}\n{"s_productId": "31", "s_productName": "Product 31", "s_description": "Product 31 description", "s_synonyms": [{"s_name":"product 31 synonym 1", "s_type":"isin"}, {"s_name":"product 31 synonym 2", "s_type":"cusip"}]}\n') } function meta::pure::graphFetch::tests::XStore::inMemory::JsonCrossStoreRuntime():Runtime[1] { - ^Runtime(connections = [meta::pure::graphFetch::tests::XStore::inMemory::jsonConnectionTrade(), meta::pure::graphFetch::tests::XStore::inMemory::jsonConnectionProduct()]); + ^Runtime( + connectionStores = [ + ^ConnectionStore(connection=meta::pure::graphFetch::tests::XStore::inMemory::jsonConnectionTrade(),element=^ModelStore()), + ^ConnectionStore(connection=meta::pure::graphFetch::tests::XStore::inMemory::jsonConnectionProduct(),element=^ModelStore()) + ]); } @@ -199,13 +204,13 @@ function <> {meta::pure::executionPlan::profiles::ser } } }#; - + let query = {|Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::pure::graphFetch::tests::XStore::inMemory::JsonCrossStoreMapping; let runtime = meta::pure::graphFetch::tests::XStore::inMemory::JsonCrossStoreRuntime(); - + let result = execute($query, $mapping, $runtime, defaultExtensions()).values; - + assertJsonStringsEqual( '[' + '{' + @@ -254,13 +259,13 @@ function <> {meta::pure::executionPlan::p } } }#; - + let query = {|Trade.all()->graphFetchChecked($tree)->serialize($tree)}; let mapping = meta::pure::graphFetch::tests::XStore::inMemory::JsonCrossStoreMapping; let runtime = meta::pure::graphFetch::tests::XStore::inMemory::JsonCrossStoreRuntime(); - + let result = execute($query, $mapping, $runtime, defaultExtensions()).values; - + assertJsonStringsEqual( '[' + '{' + @@ -286,4 +291,4 @@ function <> {meta::pure::executionPlan::p ']', $result ); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/tests/testRouting.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/tests/testRouting.pure index 74447ed697e..a7d7682c8b5 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/tests/testRouting.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/tests/testRouting.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::graphFetch::execution::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function <> meta::pure::graphFetch::tests::routing::testSimpleM2MTreeRouting():Boolean[1] @@ -80,4 +81,4 @@ function <> meta::pure::graphFetch::tests::routing::crossStore::testM }#; let f = routeFunction(|meta::pure::mapping::modelToModel::test::shared::src::_SimpleFirm.all()->graphFetch($m2mTree)->serialize($m2mTree), meta::pure::mapping::modelToModel::test::crossStore::crossStoreModelMappingWithLocalMappingProperty, ^Runtime(), ^ExecutionContext(), meta::pure::extension::defaultExtensions(), noDebug()); assertEquals(' | {Platform> [strategy_wrapper /{MODEL> [1 firm_set/[1 firm_set/[1 firm_set/Class _SimpleFirm].all()] -> graphFetch({MODEL> [firm_set / meta::pure::mapping::modelToModel::test::shared::src::_SimpleFirm] {{MODEL> @(firm_set->person_Set)@ [person_Set / simpleEmployees] {@(meta_pure_mapping_modelToModel_test_shared_src__SimplePerson->)@ [ / fullName], @(meta_pure_mapping_modelToModel_test_shared_src__SimplePerson->)@ [ / firmName]}}, @(meta_pure_mapping_modelToModel_test_shared_src__SimpleFirm->)@ [ / name]}})]} -> serialize(#{meta::pure::mapping::modelToModel::test::shared::src::_SimpleFirm {name, simpleEmployees {fullName}}}#)]};', $f->meta::pure::router::printer::asString()); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/tests/testUnion.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/tests/testUnion.pure index 919ceb62bdc..1438454951a 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/tests/testUnion.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/graphFetch/tests/testUnion.pure @@ -1,6 +1,8 @@ import meta::pure::graphFetch::execution::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::executionPlan::*; import meta::pure::executionPlan::toString::*; @@ -52,17 +54,17 @@ function <> meta::pure::graphFetch::tests::unio } } }#; - + let plan = executionPlan(|meta::pure::graphFetch::tests::union::Target.all()->graphFetch($m2mTree)->serialize($m2mTree), meta::pure::graphFetch::tests::union::MyMapping, - ^Runtime( - connections = [ - ^JsonModelConnection( + ^Runtime(connectionStores= [ + ^ConnectionStore( element = ^ModelStore(), + connection=^JsonModelConnection( class = meta::pure::graphFetch::tests::union::A, url = 'data:application/json,\n{"b1":{"c":{"d": {"s": "blah"}}},"b2": {"d": {"s": "foo"}}}\n' ) - ] + )] ), ^ExecutionContext(), meta::pure::extension::defaultExtensions()); @@ -96,4 +98,4 @@ Mapping meta::pure::graphFetch::tests::union::MyMapping ~src meta::pure::graphFetch::tests::union::D s : $src.s } -) \ No newline at end of file +) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/mapping/XStore.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/mapping/XStore.pure index be4ec569f53..2b198c0bf4d 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/mapping/XStore.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/mapping/XStore.pure @@ -22,6 +22,7 @@ import meta::pure::router::printer::*; import meta::pure::router::store::metamodel::*; import meta::pure::router::store::metamodel::clustering::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::pure::mapping::xStore::crossGetterOverrideToMany(o:Any[1], property:Property[1]):Any[*] @@ -66,10 +67,10 @@ function meta::pure::mapping::xStore::performXStoreQuery(o:Any[1], p:PropertyMap { let objectInfo = $o->getHiddenPayload()->cast(@MappingInstanceData); let debug = $objectInfo.static.debug; - + print(if(!$debug.debug, |'', | $debug.space+'\nBuilding XStore query for property:\''+$p.property.name->toOne()+'\' ['+$p.sourceSetImplementationId+'->'+$p.targetSetImplementationId+']\n')); - + let sourceSetImpl = $objectInfo.static.mapping->classMappingById($p.sourceSetImplementationId)->cast(@InstanceSetImplementation); let targetSetImpl = $objectInfo.static.mapping->classMappingById($p.targetSetImplementationId)->cast(@InstanceSetImplementation); let sourceType = ^GenericType(rawType=if($sourceSetImpl.mappingClass->isEmpty(),|$sourceSetImpl.class, |$sourceSetImpl.mappingClass->toOne())); @@ -90,7 +91,7 @@ function meta::pure::mapping::xStore::performXStoreQuery(o:Any[1], p:PropertyMap functionName = 'filter', importGroup = system.children->at(0)->cast(@Package).children->at(0)->cast(@ImportGroup), genericType = $returnType, - multiplicity = ZeroMany, + multiplicity = ZeroMany, parametersValues = [ ^StoreMappingRoutedValueSpecification ( @@ -144,22 +145,22 @@ function meta::pure::mapping::xStore::performXStoreQuery(o:Any[1], p:PropertyMap ), routingStrategy = meta::pure::router::store::routing::getRoutingStrategyFromMappingAndRuntime($objectInfo.static.mapping, $objectInfo.static.runtime) )->evaluateAndDeactivate(); - + print(if(!$debug.debug, |'', | $debug.space+' New routed query expression built: '+$newExpr->asString()+'\n')); - + let clustered = list($newExpr)->doCluster(^LambdaFunction<{->Any[1]}>(expressionSequence=^InstanceValue(values='', genericType=^GenericType(rawType=String), multiplicity=PureOne)), $objectInfo.static.mapping, $objectInfo.static.runtime, $objectInfo.static.exeCtx, $extensions, noDebug()); - + print(if(!$debug.debug, |'', | $debug.space+' New routed query clustered: '+$clustered->at(0)->asString()+'\n')); let cluster = $clustered->at(0).expressionSequence->evaluateAndDeactivate()->cast(@StoreMappingClusteredValueSpecification); - + let res = $cluster->executeExpression($cluster.openVars->toOne(), [], $objectInfo.static.exeCtx, $extensions, $debug); $extensions.logActivities->map(e|$e->eval($res.activities)); @@ -191,7 +192,7 @@ function meta::pure::mapping::xStore::reprocessLambda(l:LambdaFunction[1], ) ), expressionSequence = $l.expressionSequence->at(0)->evaluateAndDeactivate()->reprocessElement($sourceType.rawType->cast(@Class)->toOne(), $o, $extra).second->cast(@ValueSpecification) - ); + ); } function meta::pure::mapping::xStore::reprocessElement(vs:Any[1], sourceType:Class[1], o:Any[1], extra:MappingInstanceData[1]):Pair[1] @@ -200,9 +201,9 @@ function meta::pure::mapping::xStore::reprocessElement(vs:Any[1], sourceType:Cla [ f:FunctionExpression[1]|if ($f.propertyName->isEmpty(), |let params = $f.parametersValues->map(p|$p->reprocessElement($sourceType, $o, $extra)); - if($params->forAll(p|$p.first), + if($params->forAll(p|$p.first), | pair(true, ^InstanceValue(values=^$f(parametersValues=$params.second->cast(@ValueSpecification))->reactivate(), genericType = $f.func->functionReturnType(), multiplicity=$f.func->functionReturnMultiplicity())), | pair(false, ^$f(parametersValues=$params.second->cast(@ValueSpecification))->cast(@ValueSpecification)));, - |if($sourceType == $f.parametersValues->at(0).genericType.rawType, + |if($sourceType == $f.parametersValues->at(0).genericType.rawType, |let owner = $f.func->cast(@Property).owner; if ($owner->isEmpty() || $owner->toOne()->instanceOf(MappingClass), |pair(true, ^InstanceValue( diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/mapping/mappingExtension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/mapping/mappingExtension.pure index 91303f811a3..87af662b22d 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/mapping/mappingExtension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/mapping/mappingExtension.pure @@ -19,7 +19,9 @@ import meta::pure::router::clustering::*; import meta::pure::mapping::*; import meta::pure::mapping::aggregationAware::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; @@ -63,7 +65,7 @@ function meta::pure::mapping::sourceClass(setImplementation:SetImplementation[1] function meta::pure::mapping::buildClassMappingsByClassMap(mapping:Mapping[1]):Map,List>[1] { let allClassMappings = $mapping->classMappings(); - + let mappingsInScope = $allClassMappings->filter(s|$s.root == true || $s->instanceOf(EmbeddedSetImplementation)) ->concatenate($allClassMappings->map(x | $x->match([ a : meta::pure::mapping::aggregationAware::AggregationAwareSetImplementation[1] | $a.aggregateSetImplementations.setImplementation->map(y | ^$y(class = $y.mappingClass->toOne())), @@ -222,7 +224,7 @@ function meta::pure::router::routing::findMappingsFromProperty(p:AbstractPropert } function meta::pure::router::routing::inlineEmbeddedMapping(i:InlineEmbeddedSetImplementation[1], m:Mapping[1]):EmbeddedSetImplementation[1] -{ +{ let cm = $m->classMappingById($i.inlineSetImplementationId); assertEquals(1, $cm->size(), | 'Found too many or not enough matches ['+$cm.id->makeString(',')+'] for inline implementation Set Id [' + $i.inlineSetImplementationId+']'); let pmaps = $cm->cast(@InstanceSetImplementation)->toOne()->allPropertyMappings()->map(pm | ^$pm(owner = $i.owner, sourceSetImplementationId = $i.sourceSetImplementationId)); diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/mapping/modelToModel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/mapping/modelToModel.pure index 6bba234f18d..f2e97ad2f94 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/mapping/modelToModel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/mapping/modelToModel.pure @@ -24,7 +24,9 @@ import meta::pure::executionPlan::*; import meta::pure::mapping::modelToModel::chain::*; import meta::pure::mapping::modelToModel::inMemory::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::graphFetch::executionPlan::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::router::store::metamodel::*; import meta::pure::router::store::metamodel::clustering::*; @@ -34,52 +36,52 @@ import meta::pure::executionPlan::engine::java::*; import meta::json::*; -Class meta::pure::mapping::modelToModel::ModelStore extends meta::pure::store::Store +Class meta::external::store::model::ModelStore extends meta::pure::store::Store { toString(){'ModelStore'}:String[1]; } // TODO Is there a better way of breaking ModelConnection into Instances/Json -Class meta::pure::mapping::modelToModel::PureModelConnection extends Connection +Class meta::external::store::model::PureModelConnection extends Connection { } -Class meta::pure::mapping::modelToModel::ModelConnection extends PureModelConnection +Class meta::external::store::model::ModelConnection extends PureModelConnection { instances : Map, List>[1]; } -Class meta::pure::mapping::modelToModel::ModelQueryConnection extends PureModelConnection +Class meta::external::store::model::ModelQueryConnection extends PureModelConnection { instancesProvider : Map, FunctionDefinition<{RootGraphFetchTree[1] -> Any[*]}>>[1]; } // Only supported for Alloy -Class meta::pure::mapping::modelToModel::JsonModelConnection extends PureModelConnection +Class meta::external::store::model::JsonModelConnection extends PureModelConnection { class: Class[1]; url : String[1]; } -Class meta::pure::mapping::modelToModel::JsonDataRecord +Class meta::external::store::model::JsonDataRecord { number : Integer[1]; record : String[1]; } -Class meta::pure::mapping::modelToModel::XmlModelConnection extends PureModelConnection +Class meta::external::store::model::XmlModelConnection extends PureModelConnection { class: Class[1]; url : String[1]; } -Class meta::pure::mapping::modelToModel::XmlDataRecord +Class meta::external::store::model::XmlDataRecord { number : Integer[1]; record : String[1]; } -Class meta::pure::mapping::modelToModel::ModelChainConnection extends Connection +Class meta::external::store::model::ModelChainConnection extends Connection { mappings : Mapping[*]; } @@ -91,17 +93,17 @@ Class meta::pure::mapping::M2MEmbeddedSetImplementation extends EmbeddedSetImple } -Class meta::pure::mapping::modelToModel::ModelToModelExecutionNode extends ExecutionNode +Class meta::external::store::model::ModelToModelExecutionNode extends ExecutionNode { fd: FunctionDefinition<{->Any[*]}>[1]; classes:Class[*]; jsonPropertyPaths : LambdaFunction<{Nil[1]->Any[*]}>[*]; - + connection: Connection[1]; mapping: Mapping[1]; } -Class <> meta::pure::mapping::modelToModel::GraphFetchM2MExecutionNode extends ExecutionNode +Class <> meta::external::store::model::GraphFetchM2MExecutionNode extends ExecutionNode { trees: RoutedGraphFetchTree[*]; connections: Connection[*]; @@ -109,7 +111,7 @@ Class <> meta::pure::mapping::modelToModel::GraphFetchM2MExecuti enableConstraints: Boolean[1]; } -Class meta::pure::mapping::modelToModel::JsonFeWithPropertyPaths +Class meta::external::store::model::JsonFeWithPropertyPaths { fe: FunctionExpression[1]; jsonPropertyPaths : LambdaFunction<{Nil[1]->Any[*]}>[*]; @@ -149,7 +151,7 @@ function meta::pure::mapping::modelToModel::inMemory::noMappingPassThruSourcePro -function <> meta::pure::mapping::modelToModel::findMainClassInGetAllExpression(vs:ValueSpecification[1]):Class[1] +function meta::pure::mapping::modelToModel::findMainClassInGetAllExpression(vs:ValueSpecification[1]):Class[1] { let getAllFe = $vs->findExpressionsForFunctionInValueSpecification([getAll_Class_1__T_MANY_, getAll_Class_1__Date_1__T_MANY_, getAll_Class_1__Date_1__Date_1__T_MANY_]); if($getAllFe->isEmpty(), | Any, | $getAllFe.parametersValues->at(0)->byPassRouterInfo()->cast(@InstanceValue).values->toOne()->cast(@Class)); @@ -161,7 +163,7 @@ function <> meta::pure::mapping::modelToModel::findMainClassIn -function meta::pure::mapping::modelToModel::planExecutionPure(sq:meta::pure::mapping::StoreQuery[1], ext:RoutedValueSpecification[0..1], m:Mapping[0..1], runtime:Runtime[0..1], exeCtx:ExecutionContext[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):ExecutionNode[1] +function meta::external::store::model::planExecutionPure(sq:meta::pure::mapping::StoreQuery[1], ext:RoutedValueSpecification[0..1], m:Mapping[0..1], runtime:Runtime[0..1], exeCtx:ExecutionContext[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):ExecutionNode[1] { let connection = $runtime->toOne()->connectionByElement($sq.store); $connection->match([ @@ -178,7 +180,7 @@ function meta::pure::mapping::modelToModel::plan::modelToModelPlanNodeToString(c 'M2M\n'+$space+'('+header($c, $space, $extensions)+'\n'+$space+ ' connection = '+$c.connection->meta::pure::executionPlan::toString::connectionToString($extensions)+'\n' + if($c.jsonPropertyPaths->isNotEmpty(),| ' propertyPath = '+$c.jsonPropertyPaths->buildPropertyPathTree()->toJSON()+'\n',|'') + $space+')\n' } -function meta::pure::mapping::modelToModel::modelToModelConnectionToString(c:Connection[1], extensions:meta::pure::extension::Extension[*]):String[1] +function meta::external::store::model::modelToModelConnectionToString(c:Connection[1], extensions:meta::pure::extension::Extension[*]):String[1] { $c->match([mc:ModelConnection[1] | 'instances = "' + $mc.instances->keyValues()->map(p|$p.second.values->map(v|pair($p.first->elementToPath(), $v->toJSON())))->makeString('{',',','}'), jmc:JsonModelConnection[1] | 'url = ' + $jmc.url + ', class = ' + $jmc.class->elementToPath(), @@ -203,6 +205,7 @@ import meta::pure::graphFetch::executionPlan::*; import meta::pure::graphFetch::routing::*; import meta::pure::mapping::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::graphFetch::executionPlan::*; import meta::pure::mapping::xStore::*; import meta::pure::milestoning::*; @@ -211,6 +214,7 @@ import meta::pure::extension::*; import meta::pure::router::routing::*; import meta::pure::router::store::metamodel::*; import meta::pure::router::store::metamodel::clustering::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::store::*; @@ -273,24 +277,24 @@ function meta::pure::mapping::modelToModel::graphFetch::executionPlan::planRootG let fe = $sq.fe->evaluateAndDeactivate(); let rootTree = $clusteredTree->byPassClusteringInfo()->cast(@RoutedRootGraphFetchTree); let batchSize = if($fe.func == graphFetch_T_MANY__RootGraphFetchTree_1__Integer_1__T_MANY_ || $fe.func == graphFetchChecked_T_MANY__RootGraphFetchTree_1__Integer_1__Checked_MANY_, - | $fe->instanceValuesAtParameter(2, $sq.inScopeVars)->toOne()->cast(@Integer), + | $fe->instanceValuesAtParameter(2, $sq.inScopeVars)->toOne()->cast(@Integer), | 1); let connection = if ($sq.store->instanceOf(ModelStore), | let sourceClass = $rootTree.sets->toOne()->cast(@PureInstanceSetImplementation).srcClass->toOne(); - $runtime.connections->filter(c|$c.element->instanceOf(ModelStore) && $c->match([ + $runtime.connectionStores->filter(c|$c.element->instanceOf(ModelStore) && $c.connection->match([ j : JsonModelConnection[1] | $j.class == $sourceClass, x : XmlModelConnection[1] | $x.class == $sourceClass, m : ModelConnection[1] | $m.instances->get($sourceClass)->isNotEmpty(), m : ModelQueryConnection[1] | $m.instancesProvider->get($sourceClass)->isNotEmpty(), m : ModelChainConnection[1] | false - ]));, - | $runtime->connectionByElement($store) + ])).connection;, + | $runtime->connectionByElement($store); ); assert($connection->size() <= 1, | 'Multiple connections available for source class - ' + $rootTree.sets->toOne()->cast(@PureInstanceSetImplementation).srcClass.name->toOne()); let chainConnection = if ($sq.store->instanceOf(ModelStore), - | $runtime.connections->filter(c|$c.element->instanceOf(ModelStore) && $c->instanceOf(ModelChainConnection));, + | $runtime.connectionStores->filter(c|$c.element->instanceOf(ModelStore) && $c.connection->instanceOf(ModelChainConnection)).connection;, | [] ); assert($chainConnection->size() <= 1, | 'Multiple ModelChainConnection\'s not supported yet! Please merge your ModelChainConnection\'s.'); @@ -300,20 +304,20 @@ function meta::pure::mapping::modelToModel::graphFetch::executionPlan::planRootG let sourceTree = calculateSourceTree($rootTree, $mapping, $extensions); let sourceTreeWithConstraint = if($enableConstraints, | $sourceTree->ensureConstraintsRequirements(), | $sourceTree); - - let possibleFilter = $fe->graphFetchFilter()->evaluateAndDeactivate(); - let includeFilter = $possibleFilter->isNotEmpty()&& $chainConnection ->isEmpty(); // On chain connections, the filter gets pushed to the target + + let possibleFilter = $fe->graphFetchFilter()->evaluateAndDeactivate(); + let includeFilter = $possibleFilter->isNotEmpty()&& $chainConnection ->isEmpty(); // On chain connections, the filter gets pushed to the target let sourceTreeExtended = if($includeFilter, | meta::pure::graphFetch::ensureFunctionRequirementsFromLambda($sourceTreeWithConstraint->cast(@GraphFetchTree), $sourceTreeWithConstraint.class, $possibleFilter.parametersValues->at(1)->cast(@FunctionRoutedValueSpecification).originalFunction,[], true), |$sourceTreeWithConstraint - )->cast(@RootGraphFetchTree); + )->cast(@RootGraphFetchTree); + - let chainConnectionNodeGeneration = {mcc: ModelChainConnection[1] | $fe->planModelChainConnectionGraphFetchExecution($mcc, $sourceTreeExtended, $mapping, $runtime, $exeCtx, $ext, $sq.inScopeVars, [], $enableConstraints, $checked, $extensions, $debug) }; - let modelQueryConnectionNodeGeneration = {mc: ModelQueryConnection[1] | + let modelQueryConnectionNodeGeneration = {mc: ModelQueryConnection[1] | planModelQueryConnectionGraphFetchExecution($mc, $store, $sourceTreeExtended, $exeCtx, $sq.inScopeVars, $enableConstraints, $checked, $extensions, $debug) }; @@ -354,8 +358,8 @@ function meta::pure::mapping::modelToModel::graphFetch::executionPlan::planRootG } function meta::pure::mapping::modelToModel::graphFetch::executionPlan::graphFetchFilter(fe:FunctionExpression[1]):SimpleFunctionExpression[0..1] -{ - let func = $fe.parametersValues->at(0)->cast(@StoreMappingRoutedValueSpecification).value; +{ + let func = $fe.parametersValues->at(0)->cast(@StoreMappingRoutedValueSpecification).value; if($func->instanceOf(SimpleFunctionExpression) && $func->cast(@SimpleFunctionExpression).functionName=='filter', | $func->cast(@SimpleFunctionExpression), | []); @@ -386,19 +390,19 @@ function meta::pure::mapping::modelToModel::graphFetch::executionPlan::planCross let connection = if ($store->instanceOf(ModelStore), | let sourceClass = $rootTree.sets->toOne()->cast(@PureInstanceSetImplementation).srcClass->toOne(); - $runtime.connections->filter(c|$c.element->instanceOf(ModelStore) && $c->match([ + $runtime.connectionStores->filter(c|$c.element->instanceOf(ModelStore) && $c.connection->match([ j : JsonModelConnection[1] | $j.class == $sourceClass, x : XmlModelConnection[1] | $x.class == $sourceClass, m : ModelConnection[1] | $m.instances->get($sourceClass)->isNotEmpty(), m : ModelQueryConnection[1] | $m.instancesProvider->get($sourceClass)->isNotEmpty(), m : ModelChainConnection[1] | false - ]));, + ])).connection;, | $runtime->connectionByElement($store) ); assert($connection->size() <= 1, | 'Multiple connections available for source class - ' + $rootTree.sets->toOne()->cast(@PureInstanceSetImplementation).srcClass.name->toOne()); let chainConnection = if ($store->instanceOf(ModelStore), - | $runtime.connections->filter(c|$c.element->instanceOf(ModelStore) && $c->instanceOf(ModelChainConnection));, + | $runtime.connectionStores->filter(c|$c.element->instanceOf(ModelStore) && $c.connection->instanceOf(ModelChainConnection)).connection;, | [] ); assert($chainConnection->size() <= 1, | 'Multiple ModelChainConnection\'s not supported yet! Please merge your ModelChainConnection\'s.'); @@ -409,7 +413,7 @@ function meta::pure::mapping::modelToModel::graphFetch::executionPlan::planCross let sourceTree = calculateSourceTree($updatedRootTree, $mapping, $extensions); let sourceTreeExtended = if($enableConstraints, | $sourceTree->ensureConstraintsRequirements(), | $sourceTree); - let modelQueryConnectionNodeGeneration = {mc: ModelQueryConnection[1] | + let modelQueryConnectionNodeGeneration = {mc: ModelQueryConnection[1] | planModelQueryConnectionGraphFetchExecution($mc, $store, $sourceTreeExtended, $exeCtx, $inScopeVars, $enableConstraints, $checked, $extensions, $debug) }; @@ -489,11 +493,11 @@ function <> meta::pure::mapping::modelToModel::graphFetch::execu let newFunction = ^LambdaFunction<{->Any[*]}>(expressionSequence = $newGraphFetchExpr); - let nonMCCs = $runtime.connections->filter(x | !$x->instanceOf(ModelChainConnection)); + let nonMCCs = $runtime.connectionStores->filter(x | !$x.connection->instanceOf(ModelChainConnection)); let newRuntime = ^$runtime ( - connections = if ($mcc.mappings->size() >= 2, - | ^$mcc(mappings = $mcc.mappings->tail())->concatenate($nonMCCs), + connectionStores = if ($mcc.mappings->size() >= 2, + | $runtime.connectionStores->filter(c|$c.connection==$mcc)->map(c|^$c(connection=^$mcc(mappings = $mcc.mappings->tail())))->concatenate($nonMCCs), | $nonMCCs ) ); @@ -574,7 +578,7 @@ function meta::pure::mapping::modelToModel::graphFetch::executionPlan::generateI function meta::pure::mapping::modelToModel::graphFetch::executionPlan::generatePropertyNodeForComplexProperty(pgft:RoutedPropertyGraphFetchTree[1], sets: SetImplementation[*]): Boolean[1] { - !($sets->size() == 1 && $sets->toOne()->instanceOf(InstanceSetImplementation) + !($sets->size() == 1 && $sets->toOne()->instanceOf(InstanceSetImplementation) && $pgft.sets->isEmpty() && $pgft.property->meta::pure::mapping::modelToModel::contract::isPropertyAutoMapped($sets->cast(@InstanceSetImplementation)->toOne())); } @@ -670,7 +674,7 @@ function <> meta::pure::mapping::modelToModel::graphFetch::execu function meta::pure::mapping::modelToModel::graphFetch::executionPlan::sourceSupportsBatching(c:Connection[1], rootClass:Class[1], mapping:Mapping[1], populatedXStorePropertiesInScope:AbstractProperty[*], extensions:meta::pure::extension::Extension[*]):Boolean[1] { - $c->match([mcc:ModelChainConnection[1] | + $c->match([mcc:ModelChainConnection[1] | let chainedMappings = $mapping->concatenate($mcc.mappings->take($mcc.mappings->size() - 1)); let sourceClassWitSetsProcessed = $chainedMappings->fold({m, c | let srcClass = $m->rootClassMappingByClass($c.first)->cast(@PureInstanceSetImplementation).srcClass->toOne()->cast(@Class); let processedSets = $c.second; @@ -679,7 +683,7 @@ function meta::pure::mapping::modelToModel::graphFetch::executionPlan::sourceSup let sourceClass = $sourceClassWitSetsProcessed.first; let setsProcessed = $sourceClassWitSetsProcessed.second; let sourceSetImpl = $mcc.mappings->last()->toOne()->rootClassMappingByClass($sourceClass); - + let inScopeVars = $populatedXStorePropertiesInScope->map(p | pair($p->propertyToVarName(), ^List(values=$p)) )->newMap(); @@ -689,7 +693,7 @@ function meta::pure::mapping::modelToModel::graphFetch::executionPlan::sourceSup let resolvedSourceProperties = $inScopeVars->keyValues() ->filter(kv | $kv.second.values->size() == 1 && $kv.second.values->toOne()->instanceOf(AbstractProperty)) .second.values->cast(@AbstractProperty) - ->map(targetProp | $targetProp->resolveSourcePropertyFromTargetProperty($setsProcessed.values->cast(@meta::pure::mapping::modelToModel::PureInstanceSetImplementation))); + ->map(targetProp | $targetProp->resolveSourcePropertyFromTargetProperty($setsProcessed.values->cast(@meta::external::store::model::PureInstanceSetImplementation))); $sourceSetImpl->match( [ @@ -755,24 +759,24 @@ function meta::pure::mapping::modelToModel::graphFetch::executionPlan::inMemoryG $g.implementation->printImplementation('implementation', $space+' ', $extensions)+ $space + ')\n', g : InMemoryRootGraphFetchExecutionNode[1] | - 'InMemoryRootGraphFetch\n' + + 'InMemoryRootGraphFetch\n' + $space + '(' + header($g, $space, $extensions) + '\n'+ $space + ' graphFetchTree = ' + $g.graphFetchTree->sortTree()->asString(true)->replace('\n', '')->replace(' ', '') + '\n' + - $space + ' nodeIndex = ' + $g.nodeIndex->toString() + '\n' + + $space + ' nodeIndex = ' + $g.nodeIndex->toString() + '\n' + if($g.parentIndex->isEmpty(), | '', | $space + ' parentIndex = ' + $g.parentIndex->toOne()->toString() + '\n') + if($g.batchSize->isEmpty(), | '', | $space + ' batchSize = ' + $g.batchSize->toOne()->toString() + '\n') + $space + ' checked = ' + $g.checked->toString() + $g->childrenToString($space+' ', $extensions)+'\n'+ - $space + ' children = ' + $g.children->map(x | inMemoryGraphFetchExecutionNodeToString($x, $space + ' ', $extensions))->joinStrings('[\n'+ $space + ' ', '\n' + $space + ' ', '\n' + $space + ' ]\n') + + $space + ' children = ' + $g.children->map(x | inMemoryGraphFetchExecutionNodeToString($x, $space + ' ', $extensions))->joinStrings('[\n'+ $space + ' ', '\n' + $space + ' ', '\n' + $space + ' ]\n') + $g.implementation->printImplementation('implementation', $space+' ', $extensions)+ $space + ')\n', - g : InMemoryPropertyGraphFetchExecutionNode[1] | - 'InMemoryPropertyGraphFetch\n' + + g : InMemoryPropertyGraphFetchExecutionNode[1] | + 'InMemoryPropertyGraphFetch\n' + $space + '(' + header($g, $space, $extensions) + '\n'+ $space + ' graphFetchTree = ' + $g.graphFetchTree->sortTree()->asString(true)->replace('\n', '')->replace(' ', '') + '\n' + - $space + ' nodeIndex = ' + $g.nodeIndex->toString() + '\n' + + $space + ' nodeIndex = ' + $g.nodeIndex->toString() + '\n' + if($g.parentIndex->isEmpty(), | '', | $space + ' parentIndex = ' + $g.parentIndex->toOne()->toString() + '\n') + - $space + ' children = ' + $g.children->map(x | inMemoryGraphFetchExecutionNodeToString($x, $space + ' ', $extensions))->joinStrings('[\n'+ $space + ' ', '\n' + $space + ' ', '\n' + $space + ' ]\n') + + $space + ' children = ' + $g.children->map(x | inMemoryGraphFetchExecutionNodeToString($x, $space + ' ', $extensions))->joinStrings('[\n'+ $space + ' ', '\n' + $space + ' ', '\n' + $space + ' ]\n') + $g.implementation->printImplementation('implementation', $space+' ', $extensions)+ $space + ')\n' ]) @@ -780,12 +784,12 @@ function meta::pure::mapping::modelToModel::graphFetch::executionPlan::inMemoryG function meta::pure::mapping::modelToModel::graphFetch::executionPlan::storeStreamReadingExecutionNodeToString(node: StoreStreamReadingExecutionNode[1], space: String[1], extensions:meta::pure::extension::Extension[*]):String[1] { - 'StoreStreamReading\n' + + 'StoreStreamReading\n' + $space + '(' + header($node, $space, $extensions) + '\n'+ $space + ' graphFetchTree = ' + $node.graphFetchTree->sortTree()->asString(true)->replace('\n', '')->replace(' ', '') + '\n' + $space + ' connection = ' + $node.connection->meta::pure::executionPlan::toString::connectionToString($extensions) + '\n' + - $space + ' enableConstraints = ' + $node.enableConstraints->toString() + '\n' + - $space + ' checked = ' + $node.checked->toString() + '\n' + + $space + ' enableConstraints = ' + $node.enableConstraints->toString() + '\n' + + $space + ' checked = ' + $node.checked->toString() + '\n' + $node.implementation->printImplementation('implementation', $space+' ', $extensions)+ $space + ')\n' } diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/milestoning/milestoning.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/milestoning/milestoning.pure index e502b28e9b1..3681806e497 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/milestoning/milestoning.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/milestoning/milestoning.pure @@ -14,6 +14,7 @@ import meta::pure::milestoning::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::*; function meta::pure::milestoning::isMilestonedGeneratedDateProperty(f:FunctionExpression[1]):Boolean[1] @@ -99,7 +100,7 @@ function meta::pure::milestoning::isNoArgMilestonedGeneratedQualifiedProperty(p: function meta::pure::milestoning::isDateArgMilestonedGeneratedQualifiedProperty(p:AbstractProperty[1]):Boolean[1]{ $p->instanceOf(QualifiedProperty) && hasGeneratedMilestoningPropertyStereotype($p) && !$p.name->toOne()->endsWith('AllVersionsInRange') - && ($p->cast(@QualifiedProperty)->functionType().parameters->size() >1) + && ($p->cast(@QualifiedProperty)->functionType().parameters->size() >1) } function meta::pure::milestoning::switchToNoArgMilestonedGeneratedQualifiedProperty(p:QualifiedProperty[1]):QualifiedProperty[*] @@ -110,4 +111,4 @@ function meta::pure::milestoning::switchToNoArgMilestonedGeneratedQualifiedPrope assoc : Association[1] | $assoc.qualifiedProperties->filter(q|$q->isNoArgMilestonedGeneratedQualifiedProperty() && $q.name == $p.name); ]);, |[]); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/mutation/mutation.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/mutation/mutation.pure index 89da1126e3f..d7f6064f7a4 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/mutation/mutation.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/mutation/mutation.pure @@ -1,16 +1,17 @@ import meta::pure::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::graphFetch::*; function <> meta::pure::mutation::save(values: T[*], rootGraphFetchTree: RootGraphFetchTree[1], mapping: Mapping[1], runtime: Runtime[1]): T[*] { fail('Not implemented!'); - $values; + $values; } function meta::pure::mutation::mutationFunctions():Function[*] { [ meta::pure::mutation::save_T_MANY__RootGraphFetchTree_1__Mapping_1__Runtime_1__T_MANY_ - ] + ] } diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/platform/executionPlan/executionPlan_generation.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/platform/executionPlan/executionPlan_generation.pure index 104ee3a782d..e8960acbef7 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/platform/executionPlan/executionPlan_generation.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/platform/executionPlan/executionPlan_generation.pure @@ -21,6 +21,7 @@ import meta::pure::router::clustering::*; import meta::pure::router::metamodel::*; import meta::pure::router::metamodel::clustering::*; import meta::pure::router::platform::metamodel::clustering::*; +import meta::core::runtime::*; import meta::pure::runtime::*; Class meta::pure::platform::executionPlan::generation::PlatformPlanGenerationState @@ -36,7 +37,7 @@ Class meta::pure::platform::executionPlan::generation::PureFunctionToProcessFunc function meta::pure::platform::executionPlan::generation::processValueSpecification(vs:ValueSpecification[1], state:PlatformPlanGenerationState[1], extensions : Extension[*], debug:DebugContext[1]):ExecutionNode[0..1] { $vs->match([ - f:SimpleFunctionExpression[1] | $f->getFunctionProcessor($extensions)->eval($f, $state, $extensions, $debug), + f:SimpleFunctionExpression[1] | $f->getFunctionProcessor($extensions)->eval($f, $state, $extensions, $debug), c:ClusteredValueSpecification[1] | $c->plan($state.inScopeVars, $state.exeCtx, $extensions, $debug), e:ExtendedRoutedValueSpecification[1] | $e.value->processValueSpecification($state, $extensions, $debug), i:InstanceValue[1] | [], @@ -64,12 +65,12 @@ function <> meta::pure::platform::executionPlan::generation::def function <> meta::pure::platform::executionPlan::generation::serializeFunctionProcessor(fe:FunctionExpression[1], state:PlatformPlanGenerationState[1], extensions : Extension[*], debug:DebugContext[1]):ExecutionNode[1] { let params = $fe.parametersValues->evaluateAndDeactivate(); - let collection = $params->at(0); + let collection = $params->at(0); let children = $collection->processValueSpecification($state, $extensions, $debug); // Curtail the expression so that only the serialize part that is represented by the node is held let substitute = ^InstanceValue(values=[], genericType=$collection.genericType, multiplicity=ZeroMany); - + ^PureExpressionPlatformExecutionNode ( expression = ^$fe(parametersValues=$substitute->concatenate($params->tail())), @@ -82,10 +83,10 @@ function <> meta::pure::platform::executionPlan::generation::ser function <> meta::pure::platform::executionPlan::generation::unionFunctionProcessor(fe:FunctionExpression[1], state:PlatformPlanGenerationState[1], extensions : Extension[*], debug:DebugContext[1]):ExecutionNode[1] { let children = $fe.parametersValues->evaluateAndDeactivate()->map(v | $v->processValueSpecification($state, $extensions, $debug)); - + let nestedNodesFromChildUnion = $children->filter(ch | $ch->instanceOf(PlatformUnionExecutionNode)); let updatedChildren = $children->filter(ch | !$ch->in($nestedNodesFromChildUnion))->concatenate($children->filter(ch | $ch->in($nestedNodesFromChildUnion)).executionNodes); - + ^PlatformUnionExecutionNode ( resultType = ^ResultType(type=$fe.genericType.rawType->toOne()), @@ -122,16 +123,16 @@ function <> meta::pure::platform::executionPlan::generation::gen { ^PlatformClusteredValueSpecification( val = $fe, - executable=true, - multiplicity = $fe.multiplicity, - genericType = $fe.genericType, + executable=true, + multiplicity = $fe.multiplicity, + genericType = $fe.genericType, openVars = $inScopeVars ); } function <> meta::pure::platform::executionPlan::generation::getFunctionProcessor(f:SimpleFunctionExpression[1], extensions:meta::pure::extension::Extension[*]):meta::pure::metamodel::function::Function<{FunctionExpression[1], PlatformPlanGenerationState[1], Extension[*], DebugContext[1] -> ExecutionNode[1]}>[1] { - let specificProcessorsForFunctions = + let specificProcessorsForFunctions = newMap([ ^PureFunctionToProcessFunctionPair(first = meta::pure::functions::collection::concatenate_T_MANY__T_MANY__T_MANY_, second = unionFunctionProcessor_FunctionExpression_1__PlatformPlanGenerationState_1__Extension_MANY__DebugContext_1__ExecutionNode_1_), ^PureFunctionToProcessFunctionPair(first = meta::pure::functions::lang::letFunction_String_1__T_m__T_m_, second = letFunctionProcessor_FunctionExpression_1__PlatformPlanGenerationState_1__Extension_MANY__DebugContext_1__ExecutionNode_1_), @@ -139,9 +140,9 @@ function <> meta::pure::platform::executionPlan::generation::get ^PureFunctionToProcessFunctionPair(first = meta::pure::graphFetch::execution::serialize_Checked_MANY__RootGraphFetchTree_1__String_1_, second = serializeFunctionProcessor_FunctionExpression_1__PlatformPlanGenerationState_1__Extension_MANY__DebugContext_1__ExecutionNode_1_), ^PureFunctionToProcessFunctionPair(first = meta::pure::graphFetch::execution::serialize_T_MANY__RootGraphFetchTree_1__AlloySerializationConfig_1__String_1_, second = serializeFunctionProcessor_FunctionExpression_1__PlatformPlanGenerationState_1__Extension_MANY__DebugContext_1__ExecutionNode_1_), ^PureFunctionToProcessFunctionPair(first = meta::pure::graphFetch::execution::serialize_Checked_MANY__RootGraphFetchTree_1__AlloySerializationConfig_1__String_1_, second = serializeFunctionProcessor_FunctionExpression_1__PlatformPlanGenerationState_1__Extension_MANY__DebugContext_1__ExecutionNode_1_), - ^PureFunctionToProcessFunctionPair(first = meta::pure::functions::collection::union_T_MANY__T_MANY__T_MANY_, second = unionFunctionProcessor_FunctionExpression_1__PlatformPlanGenerationState_1__Extension_MANY__DebugContext_1__ExecutionNode_1_) + ^PureFunctionToProcessFunctionPair(first = meta::pure::functions::collection::union_T_MANY__T_MANY__T_MANY_, second = unionFunctionProcessor_FunctionExpression_1__PlatformPlanGenerationState_1__Extension_MANY__DebugContext_1__ExecutionNode_1_) ]); - + if($specificProcessorsForFunctions->get($f.func)->isNotEmpty(), |$specificProcessorsForFunctions->get($f.func)->toOne(), |defaultFunctionProcessor_FunctionExpression_1__PlatformPlanGenerationState_1__Extension_MANY__DebugContext_1__ExecutionNode_1_ diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/extension/extension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/extension/extension.pure index 45ab7b87013..5e391317d9e 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/extension/extension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/extension/extension.pure @@ -14,6 +14,7 @@ import meta::pure::mapping::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -24,27 +25,27 @@ Class meta::protocols::pure::v1_18_0::extension::SerializerExtension_v1_18_0 ext transfers_mapping_transformMapping : Function<{SetImplementation[1]->Boolean[1]}>[*]; transfers_mapping_transformSetImplementation : Function<{Mapping[1]->Function<{Nil[1]->meta::protocols::pure::v1_18_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformAssociationImplementation : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_18_0::metamodel::mapping::AssociationMapping[1]}>[*]}>[0..1]; - + transfers_valueSpecification_transformAny : Function<{String[*],Map>[1], Multiplicity[1], FunctionExpression[0..1], Boolean[1], meta::pure::extension::Extension[*]->Function<{Nil[1]->meta::protocols::pure::v1_18_0::metamodel::valueSpecification::ValueSpecification[1]}>[*]}>[0..1]; - + transfers_executionPlan_transformNode : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_18_0::metamodel::executionPlan::ExecutionNode[1]}>[*]}>[0..1]; transfers_executionPlan_transformNode_GraphFetchM2MExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_18_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformResultType : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_18_0::metamodel::executionPlan::ResultType[1]}>[*]}>[0..1]; transfers_executionPlan_transformSetImplementation : PairBoolean[1]}>, Function<{PropertyMapping[1]->Map>[1]}>>[0..1]; - + transfers_store_transformStore : Function<{Nil[1]->meta::protocols::pure::v1_18_0::metamodel::store::Store[1]}>[*]; transfers_store_transformConnection : Function<{Nil[1]->meta::protocols::pure::v1_18_0::metamodel::runtime::Connection[1]}>[*]; - + scan_buildBasePureModel_buildPureModelFromMapping1 : Function<{Nil[1]->Store[*]}>[*]; scan_buildBasePureModel_buildPureModelFromMapping2 : Store[*]; - + scan_buildBasePureModel_findAllTypesFromMapping : Function<{Nil[1]->Type[*]}>[*]; scan_buildBasePureModel_extractStores : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; scan_buildBasePureModel_processProperties : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; - + invocation_execution_execute1 : Function<{ExecutionContext[1]->Boolean[1]}>[*]; invocation_execution_execute2_pre : PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]; invocation_execution_execute2_post : PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]; invocation_execution_transformContext : Function<{Nil[1]->meta::protocols::pure::v1_18_0::metamodel::ExecutionContext[1]}>[*]; - + } diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/invocations/execution.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/invocations/execution.pure index 1e15761e4f8..2e2db075378 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/invocations/execution.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/invocations/execution.pure @@ -19,6 +19,7 @@ import meta::protocols::pure::v1_18_0::transformation::fromPureGraph::runtime::* import meta::pure::functions::io::http::*; import meta::protocols::pure::v1_18_0::invocation::execution::execute::*; import meta::protocols::pure::v1_18_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -121,13 +122,13 @@ function meta::protocols::pure::v1_18_0::invocation::execution::execute::buildEx clientVersion = 'v1_18_0', function = transformLambda($f, $extensions), mapping = if($m.name->isEmpty(), |[], |$m->toOne()->elementToPath()), - runtime = if($runtime.connections->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), + runtime = if($runtime.connectionStores->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $runtime.connections.element->cast(@meta::pure::store::Store) + |let stores = $runtime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() - ->filter(s | !$s->instanceOf(meta::pure::mapping::modelToModel::ModelStore)) + ->filter(s | !$s->instanceOf(meta::external::store::model::ModelStore)) ->map(c|^meta::protocols::pure::v1_18_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_18_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); let transformedMappings = $mappings->map(m|^meta::protocols::pure::v1_18_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_18_0::metamodel::PackageableElementType.MAPPING,path=$m->elementToPath())); ^meta::protocols::pure::v1_18_0::metamodel::PureModelContextPointer diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/scan/buildBasePureModel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/scan/buildBasePureModel.pure index 2f9c8d1d85f..ac774cf8f34 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/scan/buildBasePureModel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/scan/buildBasePureModel.pure @@ -16,6 +16,7 @@ import meta::protocols::*; import meta::json::*; import meta::pure::store::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::milestoning::*; import meta::pure::mapping::*; import meta::protocols::pure::v1_18_0::transformation::fromPureGraph::*; @@ -379,4 +380,4 @@ function meta::protocols::pure::v1_18_0::transformation::fromPureGraph::buildPur function meta::protocols::pure::v1_18_0::transformation::fromPureGraph::buildPureModelFromPackage(ps:Package[*], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_18_0::metamodel::PureModelContextData[1] { meta::protocols::pure::v1_18_0::transformation::fromPureGraph::buildBasePureModelFromPackage($ps, '-1', $extensions); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/transfers/executionPlan.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/transfers/executionPlan.pure index 37908cf2765..870a94e3a80 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/transfers/executionPlan.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/transfers/executionPlan.pure @@ -37,8 +37,8 @@ function meta::protocols::pure::v1_18_0::transformation::fromPureGraph::executio { let n = $node->match($extensions.serializerExtension('v1_18_0')->cast(@meta::protocols::pure::v1_18_0::extension::SerializerExtension_v1_18_0).transfers_executionPlan_transformNode->map(f|$f->eval($mapping, $extensions))->concatenate( [ - - rel:meta::pure::mapping::modelToModel::ModelToModelExecutionNode[1]| + + rel:meta::external::store::model::ModelToModelExecutionNode[1]| ^meta::protocols::pure::v1_18_0::metamodel::executionPlan::ModelToModelExecutionNode( _type = 'm2m', resultType = $rel.resultType->meta::protocols::pure::v1_18_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), @@ -47,7 +47,7 @@ function meta::protocols::pure::v1_18_0::transformation::fromPureGraph::executio jsonPropertyPaths = $rel.jsonPropertyPaths->map(j|$j->meta::protocols::pure::v1_18_0::transformation::fromPureGraph::transformLambda($extensions)), pathToMapping = $rel.mapping->elementToPath()->toOne(), pathToClasses = $rel.classes->map(c|$c->elementToPath()), - connection = $rel.connection->cast(@meta::pure::mapping::modelToModel::ModelConnection)->meta::protocols::pure::v1_18_0::transformation::fromPureGraph::connection::transformModelConnection(), + connection = $rel.connection->cast(@meta::external::store::model::ModelConnection)->meta::protocols::pure::v1_18_0::transformation::fromPureGraph::connection::transformModelConnection(), pureModelContextData = $rel.mapping->meta::protocols::pure::v1_18_0::transformation::fromPureGraph::buildBasePureModelFromMapping( {m:meta::pure::mapping::Mapping[1], p: meta::protocols::Protocol[1] |[]}, $extensions).second ), platform:meta::pure::executionPlan::PureExpressionPlatformExecutionNode[1]| @@ -87,16 +87,13 @@ function meta::protocols::pure::v1_18_0::transformation::fromPureGraph::executio resultSizeRange = $alloc.resultSizeRange->isEmpty()->if(|[],|$alloc.resultSizeRange->toOne()->meta::protocols::pure::v1_18_0::transformation::fromPureGraph::domain::transformMultiplicity()), varName = $alloc.varName ), - g:meta::pure::mapping::modelToModel::GraphFetchM2MExecutionNode[1]| + g:meta::external::store::model::GraphFetchM2MExecutionNode[1]| ^meta::protocols::pure::v1_18_0::metamodel::executionPlan::GraphFetchM2MExecutionNode( _type = 'graphFetchM2M', resultType = $g.resultType->transformResultType($mapping, $extensions), resultSizeRange = $g.resultSizeRange->isEmpty()->if(|[],|$g.resultSizeRange->toOne()->meta::protocols::pure::v1_18_0::transformation::fromPureGraph::domain::transformMultiplicity()), trees = $g.trees->map(t|$t->meta::protocols::pure::v1_18_0::transformation::fromPureGraph::valueSpecification::transformGraphFetchTree([], newMap([]->cast(@Pair>)), $extensions)), - enableConstraints = $g.enableConstraints, - store=$g.connections->map(c|$c.element->match($extensions.serializerExtension('v1_18_0')->cast(@meta::protocols::pure::v1_18_0::extension::SerializerExtension_v1_18_0).transfers_executionPlan_transformNode_GraphFetchM2MExecutionNode->concatenate([ - any: Any[*] | [] - ])->toOneMany()))->first() + enableConstraints = $g.enableConstraints );, exp:meta::pure::executionPlan::FunctionParametersValidationNode[1]| ^meta::protocols::pure::v1_18_0::metamodel::executionPlan::FunctionParametersValidationNode( @@ -200,7 +197,7 @@ function meta::protocols::pure::v1_18_0::transformation::fromPureGraph::executio enumMapping = $extensions.serializerExtension('v1_18_0')->cast(@meta::protocols::pure::v1_18_0::extension::SerializerExtension_v1_18_0).transfers_executionPlan_transformSetImplementation ->filter(v|$v.first->eval($p))->map(x|$x.second->eval($p))->first() ) - + ) ); diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/transfers/mapping.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/transfers/mapping.pure index 55676068f66..e662a963c88 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/transfers/mapping.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/transfers/mapping.pure @@ -18,6 +18,7 @@ import meta::flatten::metamodel::*; import meta::protocols::pure::v1_18_0::transformation::fromPureGraph::mapping::modelToModel::*; import meta::pure::mapping::xStore::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_18_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_18_0::transformation::fromPureGraph::mapping::csv::*; import meta::protocols::pure::v1_18_0::transformation::fromPureGraph::mapping::*; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/transfers/metamodel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/transfers/metamodel.pure index 78c94b70383..d77e15b9183 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/transfers/metamodel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/transfers/metamodel.pure @@ -14,6 +14,7 @@ ###Pure import meta::pure::metamodel::serialization::grammar::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::metamodel::constraint::*; import meta::protocols::pure::v1_18_0::transformation::fromPureGraph::*; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/transfers/store.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/transfers/store.pure index 619dd6bd603..caab96fdc78 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/transfers/store.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_18_0/transfers/store.pure @@ -14,6 +14,7 @@ import meta::pure::extension::*; import meta::json::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::protocols::pure::v1_18_0::transformation::fromPureGraph::runtime::transformRuntime(pureRuntime:Runtime[1], extensions:Extension[*]):meta::protocols::pure::v1_18_0::metamodel::Runtime[1] @@ -21,7 +22,7 @@ function meta::protocols::pure::v1_18_0::transformation::fromPureGraph::runtime: $pureRuntime->match([ legacy:Runtime[1] | ^meta::protocols::pure::v1_18_0::metamodel::LegacyRuntime( _type = 'legacyRuntime', - connections = $pureRuntime.connections->map(con|$con->meta::protocols::pure::v1_18_0::transformation::fromPureGraph::runtime::transformConnection($extensions)) + connections = $pureRuntime.connectionStores->map(conn|$conn.connection->meta::protocols::pure::v1_18_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$conn.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) ); ]) } @@ -37,19 +38,19 @@ function meta::protocols::pure::v1_18_0::transformation::fromPureGraph::runtime: { $connection->match($extensions.serializerExtension('v1_18_0')->cast(@meta::protocols::pure::v1_18_0::extension::SerializerExtension_v1_18_0).transfers_store_transformConnection->concatenate( [ - - model:meta::pure::mapping::modelToModel::ModelConnection[1] | $model->meta::protocols::pure::v1_18_0::transformation::fromPureGraph::connection::transformModelConnection(), - j:meta::pure::mapping::modelToModel::JsonModelConnection[1] | $j->meta::protocols::pure::v1_18_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), - x:meta::pure::mapping::modelToModel::XmlModelConnection[1] | $x->meta::protocols::pure::v1_18_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), - - other: meta::pure::runtime::Connection[1] | let failureClass = $other->class()->toString(); + + model:meta::external::store::model::ModelConnection[1] | $model->meta::protocols::pure::v1_18_0::transformation::fromPureGraph::connection::transformModelConnection(), + j:meta::external::store::model::JsonModelConnection[1] | $j->meta::protocols::pure::v1_18_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), + x:meta::external::store::model::XmlModelConnection[1] | $x->meta::protocols::pure::v1_18_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), + + other: meta::core::runtime::Connection[1] | let failureClass = $other->class()->toString(); fail('' + $failureClass + ' Connection type not supported Yet!'); @meta::protocols::pure::v1_18_0::metamodel::runtime::Connection; ])->toOneMany() ); } -function meta::protocols::pure::v1_18_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::pure::mapping::modelToModel::ModelConnection[1]):meta::protocols::pure::v1_18_0::metamodel::mapping::modelToModel::ModelConnection[1] +function meta::protocols::pure::v1_18_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::external::store::model::ModelConnection[1]):meta::protocols::pure::v1_18_0::metamodel::mapping::modelToModel::ModelConnection[1] { let instances = $modelConnection.instances->keyValues(); ^meta::protocols::pure::v1_18_0::metamodel::mapping::modelToModel::ModelConnection( element = 'ModelStore', @@ -57,7 +58,7 @@ function meta::protocols::pure::v1_18_0::transformation::fromPureGraph::connecti input = ^meta::protocols::pure::v1_18_0::metamodel::mapping::modelToModel::ModelStringInput(_type='ModelStringInput', class=$instances->at(0).first->elementToPath(), instances=$instances.second.values->map(i| $i->toJsonBeta()))); } -function meta::protocols::pure::v1_18_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::pure::mapping::modelToModel::JsonModelConnection[1]):meta::protocols::pure::v1_18_0::metamodel::mapping::modelToModel::JsonModelConnection[1] +function meta::protocols::pure::v1_18_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::external::store::model::JsonModelConnection[1]):meta::protocols::pure::v1_18_0::metamodel::mapping::modelToModel::JsonModelConnection[1] { ^meta::protocols::pure::v1_18_0::metamodel::mapping::modelToModel::JsonModelConnection( element = 'ModelStore', @@ -67,7 +68,7 @@ function meta::protocols::pure::v1_18_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_18_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::pure::mapping::modelToModel::XmlModelConnection[1]):meta::protocols::pure::v1_18_0::metamodel::mapping::modelToModel::XmlModelConnection[1] +function meta::protocols::pure::v1_18_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::external::store::model::XmlModelConnection[1]):meta::protocols::pure::v1_18_0::metamodel::mapping::modelToModel::XmlModelConnection[1] { ^meta::protocols::pure::v1_18_0::metamodel::mapping::modelToModel::XmlModelConnection( element = 'ModelStore', @@ -75,4 +76,4 @@ function meta::protocols::pure::v1_18_0::transformation::fromPureGraph::connecti class = $xmlModelConnection.class->elementToPath(), url = $xmlModelConnection.url ); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/extension/extension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/extension/extension.pure index 37284ea32fe..193786d11e1 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/extension/extension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/extension/extension.pure @@ -14,6 +14,7 @@ import meta::pure::mapping::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -24,18 +25,18 @@ Class meta::protocols::pure::v1_19_0::extension::SerializerExtension_v1_19_0 ext transfers_mapping_transformMapping : Function<{SetImplementation[1]->Boolean[1]}>[*]; transfers_mapping_transformSetImplementation : Function<{Mapping[1]->Function<{Nil[1]->meta::protocols::pure::v1_19_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformAssociationImplementation : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_19_0::metamodel::mapping::AssociationMapping[1]}>[*]}>[0..1]; - + transfers_valueSpecification_transformAny : Function<{String[*],Map>[1], Multiplicity[1], FunctionExpression[0..1], Boolean[1], meta::pure::extension::Extension[*]->Function<{Nil[1]->meta::protocols::pure::v1_19_0::metamodel::valueSpecification::ValueSpecification[1]}>[*]}>[0..1]; - + transfers_executionPlan_transformNode : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_19_0::metamodel::executionPlan::ExecutionNode[1]}>[*]}>[0..1]; transfers_executionPlan_transformNode_GraphFetchM2MExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_19_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformNode_StoreStreamReadingExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_19_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformResultType : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_19_0::metamodel::executionPlan::ResultType[1]}>[*]}>[0..1]; transfers_executionPlan_transformSetImplementation : PairBoolean[1]}>, Function<{PropertyMapping[1]->Map>[1]}>>[0..1]; - + transfers_store_transformStore : Function<{Nil[1]->meta::protocols::pure::v1_19_0::metamodel::store::Store[1]}>[*]; transfers_store_transformConnection : Function<{Nil[1]->meta::protocols::pure::v1_19_0::metamodel::runtime::Connection[1]}>[*]; - + scan_buildBasePureModel_buildPureModelFromMapping1 : Function<{Nil[1]->Store[*]}>[*]; scan_buildBasePureModel_buildPureModelFromMapping2 : Store[*]; @@ -46,7 +47,7 @@ Class meta::protocols::pure::v1_19_0::extension::SerializerExtension_v1_19_0 ext scan_buildBasePureModel_findAllTypesFromMapping : Function<{Nil[1]->Type[*]}>[*]; scan_buildBasePureModel_extractStores : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; scan_buildBasePureModel_processProperties : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; - + invocation_execution_execute1 : Function<{ExecutionContext[1]->Boolean[1]}>[*]; invocation_execution_execute2_pre : PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]; invocation_execution_execute2_post : PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/invocations/execution.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/invocations/execution.pure index 3c57e875843..f2a302c1684 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/invocations/execution.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/invocations/execution.pure @@ -19,6 +19,7 @@ import meta::protocols::pure::v1_19_0::transformation::fromPureGraph::runtime::* import meta::pure::functions::io::http::*; import meta::protocols::pure::v1_19_0::invocation::execution::execute::*; import meta::protocols::pure::v1_19_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -121,13 +122,13 @@ function meta::protocols::pure::v1_19_0::invocation::execution::execute::buildEx clientVersion = 'v1_19_0', function = transformLambda($f, $extensions), mapping = if($m.name->isEmpty(), |[], |$m->toOne()->elementToPath()), - runtime = if($runtime.connections->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), + runtime = if($runtime.connectionStores->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $runtime.connections.element->cast(@meta::pure::store::Store) + |let stores = $runtime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() - ->filter(s | !$s->instanceOf(meta::pure::mapping::modelToModel::ModelStore)) + ->filter(s | !$s->instanceOf(meta::external::store::model::ModelStore)) ->map(c|^meta::protocols::pure::v1_19_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_19_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); let transformedMappings = $mappings->map(m|^meta::protocols::pure::v1_19_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_19_0::metamodel::PackageableElementType.MAPPING,path=$m->elementToPath())); ^meta::protocols::pure::v1_19_0::metamodel::PureModelContextPointer diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/scan/buildBasePureModel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/scan/buildBasePureModel.pure index 8e2896c942f..d07999f5317 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/scan/buildBasePureModel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/scan/buildBasePureModel.pure @@ -16,6 +16,7 @@ import meta::protocols::*; import meta::json::*; import meta::pure::store::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::milestoning::*; import meta::pure::mapping::*; import meta::protocols::pure::v1_19_0::transformation::fromPureGraph::*; @@ -379,4 +380,4 @@ function meta::protocols::pure::v1_19_0::transformation::fromPureGraph::buildPur function meta::protocols::pure::v1_19_0::transformation::fromPureGraph::buildPureModelFromPackage(ps:Package[*], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_19_0::metamodel::PureModelContextData[1] { meta::protocols::pure::v1_19_0::transformation::fromPureGraph::buildBasePureModelFromPackage($ps, '-1', $extensions); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/transfers/executionPlan.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/transfers/executionPlan.pure index b9e13e040f3..2635430f7a7 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/transfers/executionPlan.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/transfers/executionPlan.pure @@ -37,8 +37,8 @@ function meta::protocols::pure::v1_19_0::transformation::fromPureGraph::executio { let n = $node->match($extensions.serializerExtension('v1_19_0')->cast(@meta::protocols::pure::v1_19_0::extension::SerializerExtension_v1_19_0).transfers_executionPlan_transformNode->map(f|$f->eval($mapping, $extensions))->concatenate( [ - - rel:meta::pure::mapping::modelToModel::ModelToModelExecutionNode[1]| + + rel:meta::external::store::model::ModelToModelExecutionNode[1]| ^meta::protocols::pure::v1_19_0::metamodel::executionPlan::ModelToModelExecutionNode( _type = 'm2m', resultType = $rel.resultType->meta::protocols::pure::v1_19_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), @@ -47,7 +47,7 @@ function meta::protocols::pure::v1_19_0::transformation::fromPureGraph::executio jsonPropertyPaths = $rel.jsonPropertyPaths->map(j|$j->meta::protocols::pure::v1_19_0::transformation::fromPureGraph::transformLambda($extensions)), pathToMapping = $rel.mapping->elementToPath()->toOne(), pathToClasses = $rel.classes->map(c|$c->elementToPath()), - connection = $rel.connection->cast(@meta::pure::mapping::modelToModel::ModelConnection)->meta::protocols::pure::v1_19_0::transformation::fromPureGraph::connection::transformModelConnection(), + connection = $rel.connection->cast(@meta::external::store::model::ModelConnection)->meta::protocols::pure::v1_19_0::transformation::fromPureGraph::connection::transformModelConnection(), pureModelContextData = $rel.mapping->meta::protocols::pure::v1_19_0::transformation::fromPureGraph::buildBasePureModelFromMapping( {m:meta::pure::mapping::Mapping[1], p: meta::protocols::Protocol[1] |[]}, $extensions).second ), platform:meta::pure::executionPlan::PureExpressionPlatformExecutionNode[1]| @@ -226,7 +226,7 @@ function meta::protocols::pure::v1_19_0::transformation::fromPureGraph::executio enumMapping = $extensions.serializerExtension('v1_19_0')->cast(@meta::protocols::pure::v1_19_0::extension::SerializerExtension_v1_19_0).transfers_executionPlan_transformSetImplementation ->filter(v|$v.first->eval($p))->map(x|$x.second->eval($p))->first() ) - + ) ); diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/transfers/mapping.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/transfers/mapping.pure index 1d3eea6c87b..f4ea752c33a 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/transfers/mapping.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/transfers/mapping.pure @@ -18,6 +18,7 @@ import meta::flatten::metamodel::*; import meta::protocols::pure::v1_19_0::transformation::fromPureGraph::mapping::modelToModel::*; import meta::pure::mapping::xStore::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_19_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_19_0::transformation::fromPureGraph::mapping::csv::*; import meta::protocols::pure::v1_19_0::transformation::fromPureGraph::mapping::*; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/transfers/metamodel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/transfers/metamodel.pure index 4c3889144bf..c5628392a89 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/transfers/metamodel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/transfers/metamodel.pure @@ -14,6 +14,7 @@ ###Pure import meta::pure::metamodel::serialization::grammar::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::metamodel::constraint::*; import meta::protocols::pure::v1_19_0::transformation::fromPureGraph::*; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/transfers/store.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/transfers/store.pure index 639b7eb27c8..bdb021b0c56 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/transfers/store.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/transfers/store.pure @@ -14,6 +14,7 @@ import meta::pure::extension::*; import meta::json::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::protocols::pure::v1_19_0::transformation::fromPureGraph::runtime::transformRuntime(pureRuntime:Runtime[1], extensions:Extension[*]):meta::protocols::pure::v1_19_0::metamodel::Runtime[1] @@ -21,7 +22,7 @@ function meta::protocols::pure::v1_19_0::transformation::fromPureGraph::runtime: $pureRuntime->match([ legacy:Runtime[1] | ^meta::protocols::pure::v1_19_0::metamodel::LegacyRuntime( _type = 'legacyRuntime', - connections = $pureRuntime.connections->map(con|$con->meta::protocols::pure::v1_19_0::transformation::fromPureGraph::runtime::transformConnection($extensions)) + connections = $pureRuntime.connectionStores->map(conn|$conn.connection->meta::protocols::pure::v1_19_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$conn.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) ); ]) } @@ -37,20 +38,20 @@ function meta::protocols::pure::v1_19_0::transformation::fromPureGraph::runtime: { $connection->match($extensions.serializerExtension('v1_19_0')->cast(@meta::protocols::pure::v1_19_0::extension::SerializerExtension_v1_19_0).transfers_store_transformConnection->concatenate( [ - - model:meta::pure::mapping::modelToModel::ModelConnection[1] | $model->meta::protocols::pure::v1_19_0::transformation::fromPureGraph::connection::transformModelConnection(), - j:meta::pure::mapping::modelToModel::JsonModelConnection[1] | $j->meta::protocols::pure::v1_19_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), - x:meta::pure::mapping::modelToModel::XmlModelConnection[1] | $x->meta::protocols::pure::v1_19_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), - c:meta::pure::mapping::modelToModel::ModelChainConnection[1] | $c->meta::protocols::pure::v1_19_0::transformation::fromPureGraph::connection::transformChainConnection(), - - other: meta::pure::runtime::Connection[1] | let failureClass = $other->class()->toString(); + + model:meta::external::store::model::ModelConnection[1] | $model->meta::protocols::pure::v1_19_0::transformation::fromPureGraph::connection::transformModelConnection(), + j:meta::external::store::model::JsonModelConnection[1] | $j->meta::protocols::pure::v1_19_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), + x:meta::external::store::model::XmlModelConnection[1] | $x->meta::protocols::pure::v1_19_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), + c:meta::external::store::model::ModelChainConnection[1] | $c->meta::protocols::pure::v1_19_0::transformation::fromPureGraph::connection::transformChainConnection(), + + other: meta::core::runtime::Connection[1] | let failureClass = $other->class()->toString(); fail('' + $failureClass + ' Connection type not supported Yet!'); @meta::protocols::pure::v1_19_0::metamodel::runtime::Connection; ])->toOneMany() ); } -function meta::protocols::pure::v1_19_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::pure::mapping::modelToModel::ModelConnection[1]):meta::protocols::pure::v1_19_0::metamodel::mapping::modelToModel::ModelConnection[1] +function meta::protocols::pure::v1_19_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::external::store::model::ModelConnection[1]):meta::protocols::pure::v1_19_0::metamodel::mapping::modelToModel::ModelConnection[1] { let instances = $modelConnection.instances->keyValues(); ^meta::protocols::pure::v1_19_0::metamodel::mapping::modelToModel::ModelConnection( element = 'ModelStore', @@ -58,7 +59,7 @@ function meta::protocols::pure::v1_19_0::transformation::fromPureGraph::connecti input = ^meta::protocols::pure::v1_19_0::metamodel::mapping::modelToModel::ModelStringInput(_type='ModelStringInput', class=$instances->at(0).first->elementToPath(), instances=$instances.second.values->map(i| $i->toJsonBeta()))); } -function meta::protocols::pure::v1_19_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::pure::mapping::modelToModel::JsonModelConnection[1]):meta::protocols::pure::v1_19_0::metamodel::mapping::modelToModel::JsonModelConnection[1] +function meta::protocols::pure::v1_19_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::external::store::model::JsonModelConnection[1]):meta::protocols::pure::v1_19_0::metamodel::mapping::modelToModel::JsonModelConnection[1] { ^meta::protocols::pure::v1_19_0::metamodel::mapping::modelToModel::JsonModelConnection( element = 'ModelStore', @@ -68,7 +69,7 @@ function meta::protocols::pure::v1_19_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_19_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::pure::mapping::modelToModel::XmlModelConnection[1]):meta::protocols::pure::v1_19_0::metamodel::mapping::modelToModel::XmlModelConnection[1] +function meta::protocols::pure::v1_19_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::external::store::model::XmlModelConnection[1]):meta::protocols::pure::v1_19_0::metamodel::mapping::modelToModel::XmlModelConnection[1] { ^meta::protocols::pure::v1_19_0::metamodel::mapping::modelToModel::XmlModelConnection( element = 'ModelStore', @@ -78,7 +79,7 @@ function meta::protocols::pure::v1_19_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_19_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::pure::mapping::modelToModel::ModelChainConnection[1]):meta::protocols::pure::v1_19_0::metamodel::mapping::modelToModel::ModelChainConnection[1] +function meta::protocols::pure::v1_19_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::external::store::model::ModelChainConnection[1]):meta::protocols::pure::v1_19_0::metamodel::mapping::modelToModel::ModelChainConnection[1] { ^meta::protocols::pure::v1_19_0::metamodel::mapping::modelToModel::ModelChainConnection( element = 'ModelStore', diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/transfers/valueSpecification.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/transfers/valueSpecification.pure index 4ee6cdb614d..0e01b7a4a20 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/transfers/valueSpecification.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_19_0/transfers/valueSpecification.pure @@ -427,7 +427,7 @@ function <> meta::protocols::pure::v1_19_0::transformation::from _type = 'mappingInstance', fullPath = $m->elementToPath()->toOne() ), - r:meta::pure::runtime::Runtime[1]| + r:meta::core::runtime::Runtime[1]| ^meta::protocols::pure::v1_19_0::metamodel::valueSpecification::raw::RuntimeInstance ( _type = 'runtimeInstance', diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/extension/extension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/extension/extension.pure index e6a22c93d5c..553b00a2889 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/extension/extension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/extension/extension.pure @@ -14,6 +14,7 @@ import meta::pure::mapping::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -29,25 +30,25 @@ Class meta::protocols::pure::v1_20_0::extension::SerializerExtension_v1_20_0 ext } : ModuleSerializerExtension[0..1]; transfers_execute_transformActivity : Function<{Nil[1] -> meta::pure::mapping::Activity[1]}>[*]; - + transfers_mapping_transformMapping : Function<{SetImplementation[1]->Boolean[1]}>[*]; transfers_mapping_transformSetImplementation : Function<{Mapping[1]->Function<{Nil[1]->meta::protocols::pure::v1_20_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformSetImplementation2 : Function<{Mapping[1], meta::pure::extension::Extension[*] ->Function<{Nil[1]->meta::protocols::pure::v1_20_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformAssociationImplementation : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_20_0::metamodel::mapping::AssociationMapping[1]}>[*]}>[0..1]; transfers_valueSpecification_transformAny : Function<{String[*],Map>[1], Multiplicity[1], FunctionExpression[0..1], Boolean[1], meta::pure::extension::Extension[*]->Function<{Nil[1]->meta::protocols::pure::v1_20_0::metamodel::valueSpecification::ValueSpecification[1]}>[*]}>[0..1]; - + transfers_executionPlan_transformNode : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_20_0::metamodel::executionPlan::ExecutionNode[1]}>[*]}>[0..1]; transfers_executionPlan_transformNode_GraphFetchM2MExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_20_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformNode_StoreStreamReadingExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_20_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformResultType : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_20_0::metamodel::executionPlan::ResultType[1]}>[*]}>[0..1]; transfers_executionPlan_transformSetImplementation : PairBoolean[1]}>, Function<{PropertyMapping[1]->Map>[1]}>>[0..1]; - + transfers_store_transformStore : Function<{Nil[1]->meta::protocols::pure::v1_20_0::metamodel::store::Store[1]}>[*]; transfers_store_transformStore2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_20_0::metamodel::store::Store[1]}>[*]}>[0..1]; transfers_store_transformConnection : Function<{Nil[1]->meta::protocols::pure::v1_20_0::metamodel::runtime::Connection[1]}>[*]; transfers_store_transformConnection2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_20_0::metamodel::runtime::Connection[1]}>[*]}>[0..1]; - + scan_buildBasePureModel_buildPureModelFromMapping1 : Function<{Nil[1]->Store[*]}>[*]; scan_buildBasePureModel_buildPureModelFromMapping2 : Store[*]; @@ -58,7 +59,7 @@ Class meta::protocols::pure::v1_20_0::extension::SerializerExtension_v1_20_0 ext scan_buildBasePureModel_findAllTypesFromMapping : Function<{Nil[1]->Type[*]}>[*]; scan_buildBasePureModel_extractStores : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; scan_buildBasePureModel_processProperties : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; - + invocation_execution_execute1 : Function<{ExecutionContext[1]->Boolean[1]}>[*]; invocation_execution_execute2_pre : PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]; invocation_execution_execute2_pre2 : Function<{meta::pure::extension::Extension[*] -> PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]}>[0..1]; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/invocations/execution.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/invocations/execution.pure index f63582ac645..db8e114ece9 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/invocations/execution.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/invocations/execution.pure @@ -19,6 +19,7 @@ import meta::protocols::pure::v1_20_0::transformation::fromPureGraph::runtime::* import meta::pure::functions::io::http::*; import meta::protocols::pure::v1_20_0::invocation::execution::execute::*; import meta::protocols::pure::v1_20_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -121,13 +122,13 @@ function meta::protocols::pure::v1_20_0::invocation::execution::execute::buildEx clientVersion = 'v1_20_0', function = transformLambda($f, $extensions), mapping = if($m.name->isEmpty(), |[], |$m->toOne()->elementToPath()), - runtime = if($runtime.connections->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), + runtime = if($runtime.connectionStores->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $runtime.connections.element->cast(@meta::pure::store::Store) + |let stores = $runtime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() - ->filter(s | !$s->instanceOf(meta::pure::mapping::modelToModel::ModelStore)) + ->filter(s | !$s->instanceOf(meta::external::store::model::ModelStore)) ->map(c|^meta::protocols::pure::v1_20_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_20_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); let transformedMappings = $mappings->map(m|^meta::protocols::pure::v1_20_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_20_0::metamodel::PackageableElementType.MAPPING,path=$m->elementToPath())); ^meta::protocols::pure::v1_20_0::metamodel::PureModelContextPointer diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/scan/buildBasePureModel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/scan/buildBasePureModel.pure index 8b1a8adab92..2290fc26a80 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/scan/buildBasePureModel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/scan/buildBasePureModel.pure @@ -16,6 +16,7 @@ import meta::protocols::*; import meta::json::*; import meta::pure::store::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::milestoning::*; import meta::pure::mapping::*; import meta::protocols::pure::v1_20_0::transformation::fromPureGraph::*; @@ -396,4 +397,4 @@ function meta::protocols::pure::v1_20_0::transformation::fromPureGraph::buildPur function meta::protocols::pure::v1_20_0::transformation::fromPureGraph::buildPureModelFromPackage(ps:Package[*], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_20_0::metamodel::PureModelContextData[1] { meta::protocols::pure::v1_20_0::transformation::fromPureGraph::buildBasePureModelFromPackage($ps, '-1', $extensions); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/transfers/executionPlan.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/transfers/executionPlan.pure index 9473353be2e..2bc5475266a 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/transfers/executionPlan.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/transfers/executionPlan.pure @@ -37,8 +37,8 @@ function meta::protocols::pure::v1_20_0::transformation::fromPureGraph::executio { let n = $node->match($extensions.serializerExtension('v1_20_0')->cast(@meta::protocols::pure::v1_20_0::extension::SerializerExtension_v1_20_0).transfers_executionPlan_transformNode->map(f|$f->eval($mapping, $extensions))->concatenate( [ - - rel:meta::pure::mapping::modelToModel::ModelToModelExecutionNode[1]| + + rel:meta::external::store::model::ModelToModelExecutionNode[1]| ^meta::protocols::pure::v1_20_0::metamodel::executionPlan::ModelToModelExecutionNode( _type = 'm2m', resultType = $rel.resultType->meta::protocols::pure::v1_20_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), @@ -47,7 +47,7 @@ function meta::protocols::pure::v1_20_0::transformation::fromPureGraph::executio jsonPropertyPaths = $rel.jsonPropertyPaths->map(j|$j->meta::protocols::pure::v1_20_0::transformation::fromPureGraph::transformLambda($extensions)), pathToMapping = $rel.mapping->elementToPath()->toOne(), pathToClasses = $rel.classes->map(c|$c->elementToPath()), - connection = $rel.connection->cast(@meta::pure::mapping::modelToModel::ModelConnection)->meta::protocols::pure::v1_20_0::transformation::fromPureGraph::connection::transformModelConnection(), + connection = $rel.connection->cast(@meta::external::store::model::ModelConnection)->meta::protocols::pure::v1_20_0::transformation::fromPureGraph::connection::transformModelConnection(), pureModelContextData = $rel.mapping->meta::protocols::pure::v1_20_0::transformation::fromPureGraph::buildBasePureModelFromMapping( {m:meta::pure::mapping::Mapping[1], p: meta::protocols::Protocol[1] |[]}, $extensions).second ), platform:meta::pure::executionPlan::PureExpressionPlatformExecutionNode[1]| @@ -226,7 +226,7 @@ function meta::protocols::pure::v1_20_0::transformation::fromPureGraph::executio enumMapping = $extensions.serializerExtension('v1_20_0')->cast(@meta::protocols::pure::v1_20_0::extension::SerializerExtension_v1_20_0).transfers_executionPlan_transformSetImplementation ->filter(v|$v.first->eval($p))->map(x|$x.second->eval($p))->first() ) - + ) ); diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/transfers/mapping.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/transfers/mapping.pure index 745defc9092..f27ab5b4abe 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/transfers/mapping.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/transfers/mapping.pure @@ -18,6 +18,7 @@ import meta::flatten::metamodel::*; import meta::protocols::pure::v1_20_0::transformation::fromPureGraph::mapping::modelToModel::*; import meta::pure::mapping::xStore::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_20_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_20_0::transformation::fromPureGraph::mapping::csv::*; import meta::protocols::pure::v1_20_0::transformation::fromPureGraph::mapping::*; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/transfers/metamodel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/transfers/metamodel.pure index 6ada4271ccd..1edacac6077 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/transfers/metamodel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/transfers/metamodel.pure @@ -14,6 +14,7 @@ ###Pure import meta::pure::metamodel::serialization::grammar::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::metamodel::constraint::*; import meta::protocols::pure::v1_20_0::transformation::fromPureGraph::*; @@ -240,7 +241,7 @@ function meta::protocols::pure::v1_20_0::transformation::fromPureGraph::transfor package = if($p.package->isEmpty(),|[],|$p.package->toOne()->elementToPath()), stereotypes = $p.p_stereotypes->map(s|$s.value), tags = $p.p_tags->map(t|$t.value) - + ) - -} \ No newline at end of file + +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/transfers/store.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/transfers/store.pure index 811601f175d..ea2897ace6e 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/transfers/store.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/transfers/store.pure @@ -14,6 +14,7 @@ import meta::pure::extension::*; import meta::json::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::protocols::pure::v1_20_0::transformation::fromPureGraph::runtime::transformRuntime(pureRuntime:Runtime[1], extensions:Extension[*]):meta::protocols::pure::v1_20_0::metamodel::Runtime[1] @@ -21,7 +22,7 @@ function meta::protocols::pure::v1_20_0::transformation::fromPureGraph::runtime: $pureRuntime->match([ legacy:Runtime[1] | ^meta::protocols::pure::v1_20_0::metamodel::LegacyRuntime( _type = 'legacyRuntime', - connections = $pureRuntime.connections->map(con|$con->meta::protocols::pure::v1_20_0::transformation::fromPureGraph::runtime::transformConnection($extensions)) + connections = $pureRuntime.connectionStores->map(conn|$conn.connection->meta::protocols::pure::v1_20_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$conn.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) ); ]) } @@ -39,21 +40,21 @@ function meta::protocols::pure::v1_20_0::transformation::fromPureGraph::runtime: $connection->match($extensions.serializerExtension('v1_20_0')->cast(@meta::protocols::pure::v1_20_0::extension::SerializerExtension_v1_20_0).transfers_store_transformConnection->concatenate( $extensions.serializerExtension('v1_20_0')->cast(@meta::protocols::pure::v1_20_0::extension::SerializerExtension_v1_20_0).transfers_store_transformConnection2->map(f | $f->eval($extensions)))->concatenate( [ - - model:meta::pure::mapping::modelToModel::ModelConnection[1] | $model->meta::protocols::pure::v1_20_0::transformation::fromPureGraph::connection::transformModelConnection(), - j:meta::pure::mapping::modelToModel::JsonModelConnection[1] | $j->meta::protocols::pure::v1_20_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), - x:meta::pure::mapping::modelToModel::XmlModelConnection[1] | $x->meta::protocols::pure::v1_20_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), - c:meta::pure::mapping::modelToModel::ModelChainConnection[1] | $c->meta::protocols::pure::v1_20_0::transformation::fromPureGraph::connection::transformChainConnection(), - - other: meta::pure::runtime::Connection[1] | let failureClass = $other->class()->toString(); + model:meta::external::store::model::ModelConnection[1] | $model->meta::protocols::pure::v1_20_0::transformation::fromPureGraph::connection::transformModelConnection(), + j:meta::external::store::model::JsonModelConnection[1] | $j->meta::protocols::pure::v1_20_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), + x:meta::external::store::model::XmlModelConnection[1] | $x->meta::protocols::pure::v1_20_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), + c:meta::external::store::model::ModelChainConnection[1] | $c->meta::protocols::pure::v1_20_0::transformation::fromPureGraph::connection::transformChainConnection(), + + + other: meta::core::runtime::Connection[1] | let failureClass = $other->class()->toString(); fail('' + $failureClass + ' Connection type not supported Yet!'); @meta::protocols::pure::v1_20_0::metamodel::runtime::Connection; ])->toOneMany() ); } -function meta::protocols::pure::v1_20_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::pure::mapping::modelToModel::ModelConnection[1]):meta::protocols::pure::v1_20_0::metamodel::mapping::modelToModel::ModelConnection[1] +function meta::protocols::pure::v1_20_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::external::store::model::ModelConnection[1]):meta::protocols::pure::v1_20_0::metamodel::mapping::modelToModel::ModelConnection[1] { let instances = $modelConnection.instances->keyValues(); ^meta::protocols::pure::v1_20_0::metamodel::mapping::modelToModel::ModelConnection( element = 'ModelStore', @@ -61,7 +62,7 @@ function meta::protocols::pure::v1_20_0::transformation::fromPureGraph::connecti input = ^meta::protocols::pure::v1_20_0::metamodel::mapping::modelToModel::ModelStringInput(_type='ModelStringInput', class=$instances->at(0).first->elementToPath(), instances=$instances.second.values->map(i| $i->toJsonBeta()))); } -function meta::protocols::pure::v1_20_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::pure::mapping::modelToModel::JsonModelConnection[1]):meta::protocols::pure::v1_20_0::metamodel::mapping::modelToModel::JsonModelConnection[1] +function meta::protocols::pure::v1_20_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::external::store::model::JsonModelConnection[1]):meta::protocols::pure::v1_20_0::metamodel::mapping::modelToModel::JsonModelConnection[1] { ^meta::protocols::pure::v1_20_0::metamodel::mapping::modelToModel::JsonModelConnection( element = 'ModelStore', @@ -71,7 +72,7 @@ function meta::protocols::pure::v1_20_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_20_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::pure::mapping::modelToModel::XmlModelConnection[1]):meta::protocols::pure::v1_20_0::metamodel::mapping::modelToModel::XmlModelConnection[1] +function meta::protocols::pure::v1_20_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::external::store::model::XmlModelConnection[1]):meta::protocols::pure::v1_20_0::metamodel::mapping::modelToModel::XmlModelConnection[1] { ^meta::protocols::pure::v1_20_0::metamodel::mapping::modelToModel::XmlModelConnection( element = 'ModelStore', @@ -81,11 +82,11 @@ function meta::protocols::pure::v1_20_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_20_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::pure::mapping::modelToModel::ModelChainConnection[1]):meta::protocols::pure::v1_20_0::metamodel::mapping::modelToModel::ModelChainConnection[1] +function meta::protocols::pure::v1_20_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::external::store::model::ModelChainConnection[1]):meta::protocols::pure::v1_20_0::metamodel::mapping::modelToModel::ModelChainConnection[1] { ^meta::protocols::pure::v1_20_0::metamodel::mapping::modelToModel::ModelChainConnection( element = 'ModelStore', _type = 'ModelChainConnection', mappings = $modelChainConnection.mappings->map(m | $m->elementToPath()) ) -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/transfers/valueSpecification.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/transfers/valueSpecification.pure index 6099ce7817c..ec91800d6b6 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/transfers/valueSpecification.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_20_0/transfers/valueSpecification.pure @@ -428,7 +428,7 @@ function <> meta::protocols::pure::v1_20_0::transformation::from _type = 'packageableElementPtr', fullPath = $m->elementToPath()->toOne() ), - r:meta::pure::runtime::Runtime[1]| + r:meta::core::runtime::Runtime[1]| ^meta::protocols::pure::v1_20_0::metamodel::valueSpecification::raw::RuntimeInstance ( _type = 'runtimeInstance', diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/extension/extension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/extension/extension.pure index 2c10371d13d..529203741d4 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/extension/extension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/extension/extension.pure @@ -14,6 +14,7 @@ import meta::pure::mapping::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -29,25 +30,25 @@ Class meta::protocols::pure::v1_21_0::extension::SerializerExtension_v1_21_0 ext } : ModuleSerializerExtension[0..1]; transfers_execute_transformActivity : Function<{Nil[1] -> meta::pure::mapping::Activity[1]}>[*]; - + transfers_mapping_transformMapping : Function<{SetImplementation[1]->Boolean[1]}>[*]; transfers_mapping_transformSetImplementation : Function<{Mapping[1]->Function<{Nil[1]->meta::protocols::pure::v1_21_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformSetImplementation2 : Function<{Mapping[1], meta::pure::extension::Extension[*] ->Function<{Nil[1]->meta::protocols::pure::v1_21_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformAssociationImplementation : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_21_0::metamodel::mapping::AssociationMapping[1]}>[*]}>[0..1]; transfers_valueSpecification_transformAny : Function<{String[*],Map>[1], Multiplicity[1], FunctionExpression[0..1], Boolean[1], meta::pure::extension::Extension[*]->Function<{Nil[1]->meta::protocols::pure::v1_21_0::metamodel::valueSpecification::ValueSpecification[1]}>[*]}>[0..1]; - + transfers_executionPlan_transformNode : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_21_0::metamodel::executionPlan::ExecutionNode[1]}>[*]}>[0..1]; transfers_executionPlan_transformNode_GraphFetchM2MExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_21_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformNode_StoreStreamReadingExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_21_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformResultType : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_21_0::metamodel::executionPlan::ResultType[1]}>[*]}>[0..1]; transfers_executionPlan_transformSetImplementation : PairBoolean[1]}>, Function<{PropertyMapping[1]->Map>[1]}>>[0..1]; - + transfers_store_transformStore : Function<{Nil[1]->meta::protocols::pure::v1_21_0::metamodel::store::Store[1]}>[*]; transfers_store_transformStore2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_21_0::metamodel::store::Store[1]}>[*]}>[0..1]; transfers_store_transformConnection : Function<{Nil[1]->meta::protocols::pure::v1_21_0::metamodel::runtime::Connection[1]}>[*]; transfers_store_transformConnection2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_21_0::metamodel::runtime::Connection[1]}>[*]}>[0..1]; - + scan_buildBasePureModel_buildPureModelFromMapping1 : Function<{Nil[1]->Store[*]}>[*]; scan_buildBasePureModel_buildPureModelFromMapping2 : Store[*]; @@ -58,7 +59,7 @@ Class meta::protocols::pure::v1_21_0::extension::SerializerExtension_v1_21_0 ext scan_buildBasePureModel_findAllTypesFromMapping : Function<{Nil[1]->Type[*]}>[*]; scan_buildBasePureModel_extractStores : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; scan_buildBasePureModel_processProperties : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; - + invocation_execution_execute1 : Function<{ExecutionContext[1]->Boolean[1]}>[*]; invocation_execution_execute2_pre : PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]; invocation_execution_execute2_pre2 : Function<{meta::pure::extension::Extension[*] -> PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]}>[0..1]; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/invocations/execution.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/invocations/execution.pure index 26841a3623e..3266acacfb4 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/invocations/execution.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/invocations/execution.pure @@ -19,6 +19,7 @@ import meta::protocols::pure::v1_21_0::transformation::fromPureGraph::runtime::* import meta::pure::functions::io::http::*; import meta::protocols::pure::v1_21_0::invocation::execution::execute::*; import meta::protocols::pure::v1_21_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -121,13 +122,13 @@ function meta::protocols::pure::v1_21_0::invocation::execution::execute::buildEx clientVersion = 'v1_21_0', function = transformLambda($f, $extensions), mapping = if($m.name->isEmpty(), |[], |$m->toOne()->elementToPath()), - runtime = if($runtime.connections->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), + runtime = if($runtime.connectionStores->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $runtime.connections.element->cast(@meta::pure::store::Store) + |let stores = $runtime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() - ->filter(s | !$s->instanceOf(meta::pure::mapping::modelToModel::ModelStore)) + ->filter(s | !$s->instanceOf(meta::external::store::model::ModelStore)) ->map(c|^meta::protocols::pure::v1_21_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_21_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); let transformedMappings = $mappings->map(m|^meta::protocols::pure::v1_21_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_21_0::metamodel::PackageableElementType.MAPPING,path=$m->elementToPath())); ^meta::protocols::pure::v1_21_0::metamodel::PureModelContextPointer diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/scan/buildBasePureModel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/scan/buildBasePureModel.pure index 7a908c28fdf..3bf7e9a7a6f 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/scan/buildBasePureModel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/scan/buildBasePureModel.pure @@ -16,6 +16,7 @@ import meta::protocols::*; import meta::json::*; import meta::pure::store::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::milestoning::*; import meta::pure::mapping::*; import meta::protocols::pure::v1_21_0::transformation::fromPureGraph::*; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/transfers/executionPlan.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/transfers/executionPlan.pure index f575976a6a6..e64ecf2c614 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/transfers/executionPlan.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/transfers/executionPlan.pure @@ -37,8 +37,8 @@ function meta::protocols::pure::v1_21_0::transformation::fromPureGraph::executio { let n = $node->match($extensions.serializerExtension('v1_21_0')->cast(@meta::protocols::pure::v1_21_0::extension::SerializerExtension_v1_21_0).transfers_executionPlan_transformNode->map(f|$f->eval($mapping, $extensions))->concatenate( [ - - rel:meta::pure::mapping::modelToModel::ModelToModelExecutionNode[1]| + + rel:meta::external::store::model::ModelToModelExecutionNode[1]| ^meta::protocols::pure::v1_21_0::metamodel::executionPlan::ModelToModelExecutionNode( _type = 'm2m', resultType = $rel.resultType->meta::protocols::pure::v1_21_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), @@ -47,7 +47,7 @@ function meta::protocols::pure::v1_21_0::transformation::fromPureGraph::executio jsonPropertyPaths = $rel.jsonPropertyPaths->map(j|$j->meta::protocols::pure::v1_21_0::transformation::fromPureGraph::transformLambda($extensions)), pathToMapping = $rel.mapping->elementToPath()->toOne(), pathToClasses = $rel.classes->map(c|$c->elementToPath()), - connection = $rel.connection->cast(@meta::pure::mapping::modelToModel::ModelConnection)->meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connection::transformModelConnection(), + connection = $rel.connection->cast(@meta::external::store::model::ModelConnection)->meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connection::transformModelConnection(), pureModelContextData = $rel.mapping->meta::protocols::pure::v1_21_0::transformation::fromPureGraph::buildBasePureModelFromMapping( {m:meta::pure::mapping::Mapping[1], p: meta::protocols::Protocol[1] |[]}, $extensions).second ), platform:meta::pure::executionPlan::PureExpressionPlatformExecutionNode[1]| @@ -253,7 +253,7 @@ function meta::protocols::pure::v1_21_0::transformation::fromPureGraph::executio enumMapping = $extensions.serializerExtension('v1_21_0')->cast(@meta::protocols::pure::v1_21_0::extension::SerializerExtension_v1_21_0).transfers_executionPlan_transformSetImplementation ->filter(v|$v.first->eval($p))->map(x|$x.second->eval($p))->first() ) - + ) ); diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/transfers/mapping.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/transfers/mapping.pure index ca4de42fd3c..aec9d9d8472 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/transfers/mapping.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/transfers/mapping.pure @@ -18,6 +18,7 @@ import meta::flatten::metamodel::*; import meta::protocols::pure::v1_21_0::transformation::fromPureGraph::mapping::modelToModel::*; import meta::pure::mapping::xStore::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_21_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_21_0::transformation::fromPureGraph::mapping::csv::*; import meta::protocols::pure::v1_21_0::transformation::fromPureGraph::mapping::*; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/transfers/metamodel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/transfers/metamodel.pure index 4069114b2f1..53ba59c86f9 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/transfers/metamodel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/transfers/metamodel.pure @@ -14,6 +14,7 @@ ###Pure import meta::pure::metamodel::serialization::grammar::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::metamodel::constraint::*; import meta::protocols::pure::v1_21_0::transformation::fromPureGraph::*; @@ -251,7 +252,7 @@ function meta::protocols::pure::v1_21_0::transformation::fromPureGraph::transfor package = if($p.package->isEmpty(),|[],|$p.package->toOne()->elementToPath()), stereotypes = $p.p_stereotypes->map(s|$s.value), tags = $p.p_tags->map(t|$t.value) - + ) - -} \ No newline at end of file + +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/transfers/store.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/transfers/store.pure index 72a34d7a39c..0924aa4b59d 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/transfers/store.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/transfers/store.pure @@ -14,6 +14,7 @@ import meta::pure::extension::*; import meta::json::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::protocols::pure::v1_21_0::transformation::fromPureGraph::runtime::transformRuntime(pureRuntime:Runtime[1], extensions:Extension[*]):meta::protocols::pure::v1_21_0::metamodel::Runtime[1] @@ -21,7 +22,7 @@ function meta::protocols::pure::v1_21_0::transformation::fromPureGraph::runtime: $pureRuntime->match([ legacy:Runtime[1] | ^meta::protocols::pure::v1_21_0::metamodel::LegacyRuntime( _type = 'legacyRuntime', - connections = $pureRuntime.connections->map(con|$con->meta::protocols::pure::v1_21_0::transformation::fromPureGraph::runtime::transformConnection($extensions)) + connections = $pureRuntime.connectionStores->map(conn|$conn.connection->meta::protocols::pure::v1_21_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$conn.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) ); ]) } @@ -39,21 +40,21 @@ function meta::protocols::pure::v1_21_0::transformation::fromPureGraph::runtime: $connection->match($extensions.serializerExtension('v1_21_0')->cast(@meta::protocols::pure::v1_21_0::extension::SerializerExtension_v1_21_0).transfers_store_transformConnection->concatenate( $extensions.serializerExtension('v1_21_0')->cast(@meta::protocols::pure::v1_21_0::extension::SerializerExtension_v1_21_0).transfers_store_transformConnection2->map(f | $f->eval($extensions)))->concatenate( [ - - model:meta::pure::mapping::modelToModel::ModelConnection[1] | $model->meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connection::transformModelConnection(), - j:meta::pure::mapping::modelToModel::JsonModelConnection[1] | $j->meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), - x:meta::pure::mapping::modelToModel::XmlModelConnection[1] | $x->meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), - c:meta::pure::mapping::modelToModel::ModelChainConnection[1] | $c->meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connection::transformChainConnection(), - - other: meta::pure::runtime::Connection[1] | let failureClass = $other->class()->toString(); + model:meta::external::store::model::ModelConnection[1] | $model->meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connection::transformModelConnection(), + j:meta::external::store::model::JsonModelConnection[1] | $j->meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), + x:meta::external::store::model::XmlModelConnection[1] | $x->meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), + c:meta::external::store::model::ModelChainConnection[1] | $c->meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connection::transformChainConnection(), + + + other: meta::core::runtime::Connection[1] | let failureClass = $other->class()->toString(); fail('' + $failureClass + ' Connection type not supported Yet!'); @meta::protocols::pure::v1_21_0::metamodel::runtime::Connection; ])->toOneMany() ); } -function meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::pure::mapping::modelToModel::ModelConnection[1]):meta::protocols::pure::v1_21_0::metamodel::mapping::modelToModel::ModelConnection[1] +function meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::external::store::model::ModelConnection[1]):meta::protocols::pure::v1_21_0::metamodel::mapping::modelToModel::ModelConnection[1] { let instances = $modelConnection.instances->keyValues(); ^meta::protocols::pure::v1_21_0::metamodel::mapping::modelToModel::ModelConnection( element = 'ModelStore', @@ -61,7 +62,7 @@ function meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connecti input = ^meta::protocols::pure::v1_21_0::metamodel::mapping::modelToModel::ModelStringInput(_type='ModelStringInput', class=$instances->at(0).first->elementToPath(), instances=$instances.second.values->map(i| $i->toJsonBeta()))); } -function meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::pure::mapping::modelToModel::JsonModelConnection[1]):meta::protocols::pure::v1_21_0::metamodel::mapping::modelToModel::JsonModelConnection[1] +function meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::external::store::model::JsonModelConnection[1]):meta::protocols::pure::v1_21_0::metamodel::mapping::modelToModel::JsonModelConnection[1] { ^meta::protocols::pure::v1_21_0::metamodel::mapping::modelToModel::JsonModelConnection( element = 'ModelStore', @@ -71,7 +72,7 @@ function meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::pure::mapping::modelToModel::XmlModelConnection[1]):meta::protocols::pure::v1_21_0::metamodel::mapping::modelToModel::XmlModelConnection[1] +function meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::external::store::model::XmlModelConnection[1]):meta::protocols::pure::v1_21_0::metamodel::mapping::modelToModel::XmlModelConnection[1] { ^meta::protocols::pure::v1_21_0::metamodel::mapping::modelToModel::XmlModelConnection( element = 'ModelStore', @@ -81,11 +82,11 @@ function meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::pure::mapping::modelToModel::ModelChainConnection[1]):meta::protocols::pure::v1_21_0::metamodel::mapping::modelToModel::ModelChainConnection[1] +function meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::external::store::model::ModelChainConnection[1]):meta::protocols::pure::v1_21_0::metamodel::mapping::modelToModel::ModelChainConnection[1] { ^meta::protocols::pure::v1_21_0::metamodel::mapping::modelToModel::ModelChainConnection( element = 'ModelStore', _type = 'ModelChainConnection', mappings = $modelChainConnection.mappings->map(m | $m->elementToPath()) ) -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/transfers/valueSpecification.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/transfers/valueSpecification.pure index 7c5c791b684..60c23bb63ca 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/transfers/valueSpecification.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_21_0/transfers/valueSpecification.pure @@ -429,7 +429,7 @@ function <> meta::protocols::pure::v1_21_0::transformation::from _type = 'packageableElementPtr', fullPath = $m->elementToPath()->toOne() ), - r:meta::pure::runtime::Runtime[1]| + r:meta::core::runtime::Runtime[1]| ^meta::protocols::pure::v1_21_0::metamodel::valueSpecification::raw::RuntimeInstance ( _type = 'runtimeInstance', diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/extension/extension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/extension/extension.pure index 8a7a7e09665..59732301818 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/extension/extension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/extension/extension.pure @@ -14,6 +14,7 @@ import meta::pure::mapping::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -29,25 +30,25 @@ Class meta::protocols::pure::v1_22_0::extension::SerializerExtension_v1_22_0 ext } : ModuleSerializerExtension[0..1]; transfers_execute_transformActivity : Function<{Nil[1] -> meta::pure::mapping::Activity[1]}>[*]; - + transfers_mapping_transformMapping : Function<{SetImplementation[1]->Boolean[1]}>[*]; transfers_mapping_transformSetImplementation : Function<{Mapping[1]->Function<{Nil[1]->meta::protocols::pure::v1_22_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformSetImplementation2 : Function<{Mapping[1], meta::pure::extension::Extension[*] ->Function<{Nil[1]->meta::protocols::pure::v1_22_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformAssociationImplementation : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_22_0::metamodel::mapping::AssociationMapping[1]}>[*]}>[0..1]; transfers_valueSpecification_transformAny : Function<{String[*],Map>[1], Multiplicity[1], FunctionExpression[0..1], Boolean[1], meta::pure::extension::Extension[*]->Function<{Nil[1]->meta::protocols::pure::v1_22_0::metamodel::valueSpecification::ValueSpecification[1]}>[*]}>[0..1]; - + transfers_executionPlan_transformNode : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_22_0::metamodel::executionPlan::ExecutionNode[1]}>[*]}>[0..1]; transfers_executionPlan_transformNode_GraphFetchM2MExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_22_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformNode_StoreStreamReadingExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_22_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformResultType : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_22_0::metamodel::executionPlan::ResultType[1]}>[*]}>[0..1]; transfers_executionPlan_transformSetImplementation : PairBoolean[1]}>, Function<{PropertyMapping[1]->Map>[1]}>>[0..1]; - + transfers_store_transformStore : Function<{Nil[1]->meta::protocols::pure::v1_22_0::metamodel::store::Store[1]}>[*]; transfers_store_transformStore2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_22_0::metamodel::store::Store[1]}>[*]}>[0..1]; transfers_store_transformConnection : Function<{Nil[1]->meta::protocols::pure::v1_22_0::metamodel::runtime::Connection[1]}>[*]; transfers_store_transformConnection2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_22_0::metamodel::runtime::Connection[1]}>[*]}>[0..1]; - + scan_buildBasePureModel_buildPureModelFromMapping1 : Function<{Nil[1]->Store[*]}>[*]; scan_buildBasePureModel_buildPureModelFromMapping2 : Store[*]; @@ -58,7 +59,7 @@ Class meta::protocols::pure::v1_22_0::extension::SerializerExtension_v1_22_0 ext scan_buildBasePureModel_findAllTypesFromMapping : Function<{Nil[1]->Type[*]}>[*]; scan_buildBasePureModel_extractStores : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; scan_buildBasePureModel_processProperties : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; - + invocation_execution_execute1 : Function<{ExecutionContext[1]->Boolean[1]}>[*]; invocation_execution_execute2_pre : PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]; invocation_execution_execute2_pre2 : Function<{meta::pure::extension::Extension[*] -> PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]}>[0..1]; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/invocations/execution.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/invocations/execution.pure index e50c7360355..5b2912aab84 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/invocations/execution.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/invocations/execution.pure @@ -19,6 +19,7 @@ import meta::protocols::pure::v1_22_0::transformation::fromPureGraph::runtime::* import meta::pure::functions::io::http::*; import meta::protocols::pure::v1_22_0::invocation::execution::execute::*; import meta::protocols::pure::v1_22_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -121,13 +122,13 @@ function meta::protocols::pure::v1_22_0::invocation::execution::execute::buildEx clientVersion = 'v1_22_0', function = transformLambda($f, $extensions), mapping = if($m.name->isEmpty(), |[], |$m->toOne()->elementToPath()), - runtime = if($runtime.connections->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), + runtime = if($runtime.connectionStores->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $runtime.connections.element->cast(@meta::pure::store::Store) + |let stores = $runtime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() - ->filter(s | !$s->instanceOf(meta::pure::mapping::modelToModel::ModelStore)) + ->filter(s | !$s->instanceOf(meta::external::store::model::ModelStore)) ->map(c|^meta::protocols::pure::v1_22_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_22_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); let transformedMappings = $mappings->map(m|^meta::protocols::pure::v1_22_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_22_0::metamodel::PackageableElementType.MAPPING,path=$m->elementToPath())); ^meta::protocols::pure::v1_22_0::metamodel::PureModelContextPointer diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/scan/buildBasePureModel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/scan/buildBasePureModel.pure index 8a794b8690f..2493fda7d39 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/scan/buildBasePureModel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/scan/buildBasePureModel.pure @@ -16,6 +16,7 @@ import meta::protocols::*; import meta::json::*; import meta::pure::store::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::milestoning::*; import meta::pure::mapping::*; import meta::protocols::pure::v1_22_0::transformation::fromPureGraph::*; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/transfers/executionPlan.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/transfers/executionPlan.pure index 67e4b2f9212..7480a71984e 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/transfers/executionPlan.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/transfers/executionPlan.pure @@ -37,8 +37,8 @@ function meta::protocols::pure::v1_22_0::transformation::fromPureGraph::executio { let n = $node->match($extensions.serializerExtension('v1_22_0')->cast(@meta::protocols::pure::v1_22_0::extension::SerializerExtension_v1_22_0).transfers_executionPlan_transformNode->map(f|$f->eval($mapping, $extensions))->concatenate( [ - - rel:meta::pure::mapping::modelToModel::ModelToModelExecutionNode[1]| + + rel:meta::external::store::model::ModelToModelExecutionNode[1]| ^meta::protocols::pure::v1_22_0::metamodel::executionPlan::ModelToModelExecutionNode( _type = 'm2m', resultType = $rel.resultType->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), @@ -47,7 +47,7 @@ function meta::protocols::pure::v1_22_0::transformation::fromPureGraph::executio jsonPropertyPaths = $rel.jsonPropertyPaths->map(j|$j->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::transformLambda($extensions)), pathToMapping = $rel.mapping->elementToPath()->toOne(), pathToClasses = $rel.classes->map(c|$c->elementToPath()), - connection = $rel.connection->cast(@meta::pure::mapping::modelToModel::ModelConnection)->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connection::transformModelConnection(), + connection = $rel.connection->cast(@meta::external::store::model::ModelConnection)->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connection::transformModelConnection(), pureModelContextData = $rel.mapping->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::buildBasePureModelFromMapping( {m:meta::pure::mapping::Mapping[1], p: meta::protocols::Protocol[1] |[]}, $extensions).second ), platform:meta::pure::executionPlan::PureExpressionPlatformExecutionNode[1]| @@ -253,7 +253,7 @@ function meta::protocols::pure::v1_22_0::transformation::fromPureGraph::executio enumMapping = $extensions.serializerExtension('v1_22_0')->cast(@meta::protocols::pure::v1_22_0::extension::SerializerExtension_v1_22_0).transfers_executionPlan_transformSetImplementation ->filter(v|$v.first->eval($p))->map(x|$x.second->eval($p))->first() ) - + ) ); diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/transfers/mapping.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/transfers/mapping.pure index 2c19591c454..ce77edab2e2 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/transfers/mapping.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/transfers/mapping.pure @@ -18,6 +18,7 @@ import meta::flatten::metamodel::*; import meta::protocols::pure::v1_22_0::transformation::fromPureGraph::mapping::modelToModel::*; import meta::pure::mapping::xStore::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_22_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_22_0::transformation::fromPureGraph::mapping::csv::*; import meta::protocols::pure::v1_22_0::transformation::fromPureGraph::mapping::*; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/transfers/metamodel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/transfers/metamodel.pure index 5b392586636..6e8d80791e3 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/transfers/metamodel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/transfers/metamodel.pure @@ -14,6 +14,7 @@ ###Pure import meta::pure::metamodel::serialization::grammar::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::metamodel::constraint::*; import meta::protocols::pure::v1_22_0::transformation::fromPureGraph::*; @@ -251,7 +252,7 @@ function meta::protocols::pure::v1_22_0::transformation::fromPureGraph::transfor package = if($p.package->isEmpty(),|[],|$p.package->toOne()->elementToPath()), stereotypes = $p.p_stereotypes->map(s|$s.value), tags = $p.p_tags->map(t|$t.value) - + ) - -} \ No newline at end of file + +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/transfers/store.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/transfers/store.pure index 21df2d28e83..226ec74cb08 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/transfers/store.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/transfers/store.pure @@ -14,6 +14,7 @@ import meta::pure::extension::*; import meta::json::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::protocols::pure::v1_22_0::transformation::fromPureGraph::runtime::transformRuntime(pureRuntime:Runtime[1], extensions:Extension[*]):meta::protocols::pure::v1_22_0::metamodel::Runtime[1] @@ -21,7 +22,7 @@ function meta::protocols::pure::v1_22_0::transformation::fromPureGraph::runtime: $pureRuntime->match([ legacy:Runtime[1] | ^meta::protocols::pure::v1_22_0::metamodel::LegacyRuntime( _type = 'legacyRuntime', - connections = $pureRuntime.connections->map(con|$con->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::runtime::transformConnection($extensions)) + connections = $pureRuntime.connectionStores->map(conn|$conn.connection->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$conn.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) ); ]) } @@ -39,21 +40,21 @@ function meta::protocols::pure::v1_22_0::transformation::fromPureGraph::runtime: $connection->match($extensions.serializerExtension('v1_22_0')->cast(@meta::protocols::pure::v1_22_0::extension::SerializerExtension_v1_22_0).transfers_store_transformConnection->concatenate( $extensions.serializerExtension('v1_22_0')->cast(@meta::protocols::pure::v1_22_0::extension::SerializerExtension_v1_22_0).transfers_store_transformConnection2->map(f | $f->eval($extensions)))->concatenate( [ - - model:meta::pure::mapping::modelToModel::ModelConnection[1] | $model->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connection::transformModelConnection(), - j:meta::pure::mapping::modelToModel::JsonModelConnection[1] | $j->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), - x:meta::pure::mapping::modelToModel::XmlModelConnection[1] | $x->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), - c:meta::pure::mapping::modelToModel::ModelChainConnection[1] | $c->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connection::transformChainConnection(), - - other: meta::pure::runtime::Connection[1] | let failureClass = $other->class()->toString(); + model:meta::external::store::model::ModelConnection[1] | $model->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connection::transformModelConnection(), + j:meta::external::store::model::JsonModelConnection[1] | $j->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), + x:meta::external::store::model::XmlModelConnection[1] | $x->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), + c:meta::external::store::model::ModelChainConnection[1] | $c->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connection::transformChainConnection(), + + + other: meta::core::runtime::Connection[1] | let failureClass = $other->class()->toString(); fail('' + $failureClass + ' Connection type not supported Yet!'); @meta::protocols::pure::v1_22_0::metamodel::runtime::Connection; ])->toOneMany() ); } -function meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::pure::mapping::modelToModel::ModelConnection[1]):meta::protocols::pure::v1_22_0::metamodel::mapping::modelToModel::ModelConnection[1] +function meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::external::store::model::ModelConnection[1]):meta::protocols::pure::v1_22_0::metamodel::mapping::modelToModel::ModelConnection[1] { let instances = $modelConnection.instances->keyValues(); ^meta::protocols::pure::v1_22_0::metamodel::mapping::modelToModel::ModelConnection( element = 'ModelStore', @@ -61,7 +62,7 @@ function meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connecti input = ^meta::protocols::pure::v1_22_0::metamodel::mapping::modelToModel::ModelStringInput(_type='ModelStringInput', class=$instances->at(0).first->elementToPath(), instances=$instances.second.values->map(i| $i->toJsonBeta()))); } -function meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::pure::mapping::modelToModel::JsonModelConnection[1]):meta::protocols::pure::v1_22_0::metamodel::mapping::modelToModel::JsonModelConnection[1] +function meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::external::store::model::JsonModelConnection[1]):meta::protocols::pure::v1_22_0::metamodel::mapping::modelToModel::JsonModelConnection[1] { ^meta::protocols::pure::v1_22_0::metamodel::mapping::modelToModel::JsonModelConnection( element = 'ModelStore', @@ -71,7 +72,7 @@ function meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::pure::mapping::modelToModel::XmlModelConnection[1]):meta::protocols::pure::v1_22_0::metamodel::mapping::modelToModel::XmlModelConnection[1] +function meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::external::store::model::XmlModelConnection[1]):meta::protocols::pure::v1_22_0::metamodel::mapping::modelToModel::XmlModelConnection[1] { ^meta::protocols::pure::v1_22_0::metamodel::mapping::modelToModel::XmlModelConnection( element = 'ModelStore', @@ -81,11 +82,11 @@ function meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::pure::mapping::modelToModel::ModelChainConnection[1]):meta::protocols::pure::v1_22_0::metamodel::mapping::modelToModel::ModelChainConnection[1] +function meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::external::store::model::ModelChainConnection[1]):meta::protocols::pure::v1_22_0::metamodel::mapping::modelToModel::ModelChainConnection[1] { ^meta::protocols::pure::v1_22_0::metamodel::mapping::modelToModel::ModelChainConnection( element = 'ModelStore', _type = 'ModelChainConnection', mappings = $modelChainConnection.mappings->map(m | $m->elementToPath()) ) -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/transfers/valueSpecification.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/transfers/valueSpecification.pure index 97973a460ea..44dd4ed7e98 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/transfers/valueSpecification.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_22_0/transfers/valueSpecification.pure @@ -429,7 +429,7 @@ function <> meta::protocols::pure::v1_22_0::transformation::from _type = 'packageableElementPtr', fullPath = $m->elementToPath()->toOne() ), - r:meta::pure::runtime::Runtime[1]| + r:meta::core::runtime::Runtime[1]| ^meta::protocols::pure::v1_22_0::metamodel::valueSpecification::raw::RuntimeInstance ( _type = 'runtimeInstance', diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/extension/extension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/extension/extension.pure index 82bd9c6e7e9..20d1dd7337b 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/extension/extension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/extension/extension.pure @@ -14,6 +14,7 @@ import meta::pure::mapping::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -29,25 +30,25 @@ Class meta::protocols::pure::v1_23_0::extension::SerializerExtension_v1_23_0 ext } : ModuleSerializerExtension[0..1]; transfers_execute_transformActivity : Function<{Nil[1] -> meta::pure::mapping::Activity[1]}>[*]; - + transfers_mapping_transformMapping : Function<{SetImplementation[1]->Boolean[1]}>[*]; transfers_mapping_transformSetImplementation : Function<{Mapping[1]->Function<{Nil[1]->meta::protocols::pure::v1_23_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformSetImplementation2 : Function<{Mapping[1], meta::pure::extension::Extension[*] ->Function<{Nil[1]->meta::protocols::pure::v1_23_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformAssociationImplementation : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_23_0::metamodel::mapping::AssociationMapping[1]}>[*]}>[0..1]; transfers_valueSpecification_transformAny : Function<{String[*],Map>[1], Multiplicity[1], FunctionExpression[0..1], Boolean[1], meta::pure::extension::Extension[*]->Function<{Nil[1]->meta::protocols::pure::v1_23_0::metamodel::valueSpecification::ValueSpecification[1]}>[*]}>[0..1]; - + transfers_executionPlan_transformNode : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_23_0::metamodel::executionPlan::ExecutionNode[1]}>[*]}>[0..1]; transfers_executionPlan_transformNode_GraphFetchM2MExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_23_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformNode_StoreStreamReadingExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_23_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformResultType : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_23_0::metamodel::executionPlan::ResultType[1]}>[*]}>[0..1]; transfers_executionPlan_transformSetImplementation : PairBoolean[1]}>, Function<{PropertyMapping[1]->Map>[1]}>>[0..1]; - + transfers_store_transformStore : Function<{Nil[1]->meta::protocols::pure::v1_23_0::metamodel::store::Store[1]}>[*]; transfers_store_transformStore2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_23_0::metamodel::store::Store[1]}>[*]}>[0..1]; transfers_store_transformConnection : Function<{Nil[1]->meta::protocols::pure::v1_23_0::metamodel::runtime::Connection[1]}>[*]; transfers_store_transformConnection2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_23_0::metamodel::runtime::Connection[1]}>[*]}>[0..1]; - + scan_buildBasePureModel_buildPureModelFromMapping1 : Function<{Nil[1]->Store[*]}>[*]; scan_buildBasePureModel_buildPureModelFromMapping2 : Store[*]; @@ -58,7 +59,7 @@ Class meta::protocols::pure::v1_23_0::extension::SerializerExtension_v1_23_0 ext scan_buildBasePureModel_findAllTypesFromMapping : Function<{Nil[1]->Type[*]}>[*]; scan_buildBasePureModel_extractStores : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; scan_buildBasePureModel_processProperties : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; - + invocation_execution_execute1 : Function<{ExecutionContext[1]->Boolean[1]}>[*]; invocation_execution_execute2_pre : PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]; invocation_execution_execute2_pre2 : Function<{meta::pure::extension::Extension[*] -> PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]}>[0..1]; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/invocations/execution.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/invocations/execution.pure index 6332024f16e..89051313127 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/invocations/execution.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/invocations/execution.pure @@ -19,6 +19,7 @@ import meta::protocols::pure::v1_23_0::transformation::fromPureGraph::runtime::* import meta::pure::functions::io::http::*; import meta::protocols::pure::v1_23_0::invocation::execution::execute::*; import meta::protocols::pure::v1_23_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -121,13 +122,13 @@ function meta::protocols::pure::v1_23_0::invocation::execution::execute::buildEx clientVersion = 'v1_23_0', function = transformLambda($f, $extensions), mapping = if($m.name->isEmpty(), |[], |$m->toOne()->elementToPath()), - runtime = if($runtime.connections->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), + runtime = if($runtime.connectionStores->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $runtime.connections.element->cast(@meta::pure::store::Store) + |let stores = $runtime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() - ->filter(s | !$s->instanceOf(meta::pure::mapping::modelToModel::ModelStore)) + ->filter(s | !$s->instanceOf(meta::external::store::model::ModelStore)) ->map(c|^meta::protocols::pure::v1_23_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_23_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); let transformedMappings = $mappings->map(m|^meta::protocols::pure::v1_23_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_23_0::metamodel::PackageableElementType.MAPPING,path=$m->elementToPath())); ^meta::protocols::pure::v1_23_0::metamodel::PureModelContextPointer diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/scan/buildBasePureModel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/scan/buildBasePureModel.pure index ca9c23179f8..ade051ef15c 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/scan/buildBasePureModel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/scan/buildBasePureModel.pure @@ -16,6 +16,7 @@ import meta::protocols::*; import meta::json::*; import meta::pure::store::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::milestoning::*; import meta::pure::mapping::*; import meta::protocols::pure::v1_23_0::transformation::fromPureGraph::*; @@ -396,4 +397,4 @@ function meta::protocols::pure::v1_23_0::transformation::fromPureGraph::buildPur function meta::protocols::pure::v1_23_0::transformation::fromPureGraph::buildPureModelFromPackage(ps:Package[*], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_23_0::metamodel::PureModelContextData[1] { meta::protocols::pure::v1_23_0::transformation::fromPureGraph::buildBasePureModelFromPackage($ps, '-1', $extensions); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/transfers/executionPlan.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/transfers/executionPlan.pure index c37c2fbd97d..5633c5dfe4b 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/transfers/executionPlan.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/transfers/executionPlan.pure @@ -37,8 +37,8 @@ function meta::protocols::pure::v1_23_0::transformation::fromPureGraph::executio { let n = $node->match($extensions.serializerExtension('v1_23_0')->cast(@meta::protocols::pure::v1_23_0::extension::SerializerExtension_v1_23_0).transfers_executionPlan_transformNode->map(f|$f->eval($mapping, $extensions))->concatenate( [ - - rel:meta::pure::mapping::modelToModel::ModelToModelExecutionNode[1]| + + rel:meta::external::store::model::ModelToModelExecutionNode[1]| ^meta::protocols::pure::v1_23_0::metamodel::executionPlan::ModelToModelExecutionNode( _type = 'm2m', resultType = $rel.resultType->meta::protocols::pure::v1_23_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), @@ -47,7 +47,7 @@ function meta::protocols::pure::v1_23_0::transformation::fromPureGraph::executio jsonPropertyPaths = $rel.jsonPropertyPaths->map(j|$j->meta::protocols::pure::v1_23_0::transformation::fromPureGraph::transformLambda($extensions)), pathToMapping = $rel.mapping->elementToPath()->toOne(), pathToClasses = $rel.classes->map(c|$c->elementToPath()), - connection = $rel.connection->cast(@meta::pure::mapping::modelToModel::ModelConnection)->meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connection::transformModelConnection(), + connection = $rel.connection->cast(@meta::external::store::model::ModelConnection)->meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connection::transformModelConnection(), pureModelContextData = $rel.mapping->meta::protocols::pure::v1_23_0::transformation::fromPureGraph::buildBasePureModelFromMapping( {m:meta::pure::mapping::Mapping[1], p: meta::protocols::Protocol[1] |[]}, $extensions).second ), platform:meta::pure::executionPlan::PureExpressionPlatformExecutionNode[1]| @@ -254,7 +254,7 @@ function meta::protocols::pure::v1_23_0::transformation::fromPureGraph::executio enumMapping = $extensions.serializerExtension('v1_23_0')->cast(@meta::protocols::pure::v1_23_0::extension::SerializerExtension_v1_23_0).transfers_executionPlan_transformSetImplementation ->filter(v|$v.first->eval($p))->map(x|$x.second->eval($p))->first() ) - + ) ); diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/transfers/mapping.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/transfers/mapping.pure index dca33bb6ac7..c2b8167ecfb 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/transfers/mapping.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/transfers/mapping.pure @@ -18,6 +18,7 @@ import meta::flatten::metamodel::*; import meta::protocols::pure::v1_23_0::transformation::fromPureGraph::mapping::modelToModel::*; import meta::pure::mapping::xStore::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_23_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_23_0::transformation::fromPureGraph::mapping::csv::*; import meta::protocols::pure::v1_23_0::transformation::fromPureGraph::mapping::*; @@ -126,7 +127,7 @@ function meta::protocols::pure::v1_23_0::transformation::fromPureGraph::mapping: ) ) ); - + if($operation == meta::protocols::pure::v1_23_0::metamodel::mapping::MappingOperation.MERGE, | ^meta::protocols::pure::v1_23_0::metamodel::mapping::MergeOperationClassMapping ( diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/transfers/metamodel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/transfers/metamodel.pure index 5e5bdf327ea..74751964233 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/transfers/metamodel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/transfers/metamodel.pure @@ -14,6 +14,7 @@ ###Pure import meta::pure::metamodel::serialization::grammar::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::metamodel::constraint::*; import meta::protocols::pure::v1_23_0::transformation::fromPureGraph::*; @@ -251,7 +252,7 @@ function meta::protocols::pure::v1_23_0::transformation::fromPureGraph::transfor package = if($p.package->isEmpty(),|[],|$p.package->toOne()->elementToPath()), stereotypes = $p.p_stereotypes->map(s|$s.value), tags = $p.p_tags->map(t|$t.value) - + ) - -} \ No newline at end of file + +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/transfers/store.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/transfers/store.pure index 3b1e7492f19..48e818e46ad 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/transfers/store.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/transfers/store.pure @@ -14,6 +14,7 @@ import meta::pure::extension::*; import meta::json::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::protocols::pure::v1_23_0::transformation::fromPureGraph::runtime::transformRuntime(pureRuntime:Runtime[1], extensions:Extension[*]):meta::protocols::pure::v1_23_0::metamodel::Runtime[1] @@ -21,7 +22,7 @@ function meta::protocols::pure::v1_23_0::transformation::fromPureGraph::runtime: $pureRuntime->match([ legacy:Runtime[1] | ^meta::protocols::pure::v1_23_0::metamodel::LegacyRuntime( _type = 'legacyRuntime', - connections = $pureRuntime.connections->map(con|$con->meta::protocols::pure::v1_23_0::transformation::fromPureGraph::runtime::transformConnection($extensions)) + connections = $pureRuntime.connectionStores->map(conn|$conn.connection->meta::protocols::pure::v1_23_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$conn.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) ); ]) } @@ -39,21 +40,21 @@ function meta::protocols::pure::v1_23_0::transformation::fromPureGraph::runtime: $connection->match($extensions.serializerExtension('v1_23_0')->cast(@meta::protocols::pure::v1_23_0::extension::SerializerExtension_v1_23_0).transfers_store_transformConnection->concatenate( $extensions.serializerExtension('v1_23_0')->cast(@meta::protocols::pure::v1_23_0::extension::SerializerExtension_v1_23_0).transfers_store_transformConnection2->map(f | $f->eval($extensions)))->concatenate( [ - - model:meta::pure::mapping::modelToModel::ModelConnection[1] | $model->meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connection::transformModelConnection(), - j:meta::pure::mapping::modelToModel::JsonModelConnection[1] | $j->meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), - x:meta::pure::mapping::modelToModel::XmlModelConnection[1] | $x->meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), - c:meta::pure::mapping::modelToModel::ModelChainConnection[1] | $c->meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connection::transformChainConnection(), - - other: meta::pure::runtime::Connection[1] | let failureClass = $other->class()->toString(); + model:meta::external::store::model::ModelConnection[1] | $model->meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connection::transformModelConnection(), + j:meta::external::store::model::JsonModelConnection[1] | $j->meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), + x:meta::external::store::model::XmlModelConnection[1] | $x->meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), + c:meta::external::store::model::ModelChainConnection[1] | $c->meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connection::transformChainConnection(), + + + other: meta::core::runtime::Connection[1] | let failureClass = $other->class()->toString(); fail('' + $failureClass + ' Connection type not supported Yet!'); @meta::protocols::pure::v1_23_0::metamodel::runtime::Connection; ])->toOneMany() ); } -function meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::pure::mapping::modelToModel::ModelConnection[1]):meta::protocols::pure::v1_23_0::metamodel::mapping::modelToModel::ModelConnection[1] +function meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::external::store::model::ModelConnection[1]):meta::protocols::pure::v1_23_0::metamodel::mapping::modelToModel::ModelConnection[1] { let instances = $modelConnection.instances->keyValues(); ^meta::protocols::pure::v1_23_0::metamodel::mapping::modelToModel::ModelConnection( element = 'ModelStore', @@ -61,7 +62,7 @@ function meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connecti input = ^meta::protocols::pure::v1_23_0::metamodel::mapping::modelToModel::ModelStringInput(_type='ModelStringInput', class=$instances->at(0).first->elementToPath(), instances=$instances.second.values->map(i| $i->toJsonBeta()))); } -function meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::pure::mapping::modelToModel::JsonModelConnection[1]):meta::protocols::pure::v1_23_0::metamodel::mapping::modelToModel::JsonModelConnection[1] +function meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::external::store::model::JsonModelConnection[1]):meta::protocols::pure::v1_23_0::metamodel::mapping::modelToModel::JsonModelConnection[1] { ^meta::protocols::pure::v1_23_0::metamodel::mapping::modelToModel::JsonModelConnection( element = 'ModelStore', @@ -71,7 +72,7 @@ function meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::pure::mapping::modelToModel::XmlModelConnection[1]):meta::protocols::pure::v1_23_0::metamodel::mapping::modelToModel::XmlModelConnection[1] +function meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::external::store::model::XmlModelConnection[1]):meta::protocols::pure::v1_23_0::metamodel::mapping::modelToModel::XmlModelConnection[1] { ^meta::protocols::pure::v1_23_0::metamodel::mapping::modelToModel::XmlModelConnection( element = 'ModelStore', @@ -81,11 +82,11 @@ function meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::pure::mapping::modelToModel::ModelChainConnection[1]):meta::protocols::pure::v1_23_0::metamodel::mapping::modelToModel::ModelChainConnection[1] +function meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::external::store::model::ModelChainConnection[1]):meta::protocols::pure::v1_23_0::metamodel::mapping::modelToModel::ModelChainConnection[1] { ^meta::protocols::pure::v1_23_0::metamodel::mapping::modelToModel::ModelChainConnection( element = 'ModelStore', _type = 'ModelChainConnection', mappings = $modelChainConnection.mappings->map(m | $m->elementToPath()) ) -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/transfers/valueSpecification.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/transfers/valueSpecification.pure index 1912b3369a0..dcb9742a2b3 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/transfers/valueSpecification.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_23_0/transfers/valueSpecification.pure @@ -425,7 +425,7 @@ function <> meta::protocols::pure::v1_23_0::transformation::from _type = 'packageableElementPtr', fullPath = $m->elementToPath()->toOne() ), - r:meta::pure::runtime::Runtime[1]| + r:meta::core::runtime::Runtime[1]| ^meta::protocols::pure::v1_23_0::metamodel::valueSpecification::raw::RuntimeInstance ( _type = 'runtimeInstance', diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/extension/extension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/extension/extension.pure index 8394db79fa7..6b414733e5f 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/extension/extension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/extension/extension.pure @@ -14,6 +14,7 @@ import meta::pure::mapping::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -29,25 +30,25 @@ Class meta::protocols::pure::v1_24_0::extension::SerializerExtension_v1_24_0 ext } : ModuleSerializerExtension[0..1]; transfers_execute_transformActivity : Function<{Nil[1] -> meta::pure::mapping::Activity[1]}>[*]; - + transfers_mapping_transformMapping : Function<{SetImplementation[1]->Boolean[1]}>[*]; transfers_mapping_transformSetImplementation : Function<{Mapping[1]->Function<{Nil[1]->meta::protocols::pure::v1_24_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformSetImplementation2 : Function<{Mapping[1], meta::pure::extension::Extension[*] ->Function<{Nil[1]->meta::protocols::pure::v1_24_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformAssociationImplementation : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_24_0::metamodel::mapping::AssociationMapping[1]}>[*]}>[0..1]; transfers_valueSpecification_transformAny : Function<{String[*],Map>[1], Multiplicity[1], FunctionExpression[0..1], Boolean[1], meta::pure::extension::Extension[*]->Function<{Nil[1]->meta::protocols::pure::v1_24_0::metamodel::valueSpecification::ValueSpecification[1]}>[*]}>[0..1]; - + transfers_executionPlan_transformNode : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_24_0::metamodel::executionPlan::ExecutionNode[1]}>[*]}>[0..1]; transfers_executionPlan_transformNode_GraphFetchM2MExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_24_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformNode_StoreStreamReadingExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_24_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformResultType : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_24_0::metamodel::executionPlan::ResultType[1]}>[*]}>[0..1]; transfers_executionPlan_transformSetImplementation : PairBoolean[1]}>, Function<{PropertyMapping[1]->Map>[1]}>>[0..1]; - + transfers_store_transformStore : Function<{Nil[1]->meta::protocols::pure::v1_24_0::metamodel::store::Store[1]}>[*]; transfers_store_transformStore2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_24_0::metamodel::store::Store[1]}>[*]}>[0..1]; transfers_store_transformConnection : Function<{Nil[1]->meta::protocols::pure::v1_24_0::metamodel::runtime::Connection[1]}>[*]; transfers_store_transformConnection2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_24_0::metamodel::runtime::Connection[1]}>[*]}>[0..1]; - + scan_buildBasePureModel_buildPureModelFromMapping1 : Function<{Nil[1]->Store[*]}>[*]; scan_buildBasePureModel_buildPureModelFromMapping2 : Store[*]; @@ -58,7 +59,7 @@ Class meta::protocols::pure::v1_24_0::extension::SerializerExtension_v1_24_0 ext scan_buildBasePureModel_findAllTypesFromMapping : Function<{Nil[1]->Type[*]}>[*]; scan_buildBasePureModel_extractStores : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; scan_buildBasePureModel_processProperties : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; - + invocation_execution_execute1 : Function<{ExecutionContext[1]->Boolean[1]}>[*]; invocation_execution_execute2_pre : PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]; invocation_execution_execute2_pre2 : Function<{meta::pure::extension::Extension[*] -> PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]}>[0..1]; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/invocations/execution.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/invocations/execution.pure index 155d54beaaa..cdf98633a9a 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/invocations/execution.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/invocations/execution.pure @@ -19,6 +19,7 @@ import meta::protocols::pure::v1_24_0::transformation::fromPureGraph::runtime::* import meta::pure::functions::io::http::*; import meta::protocols::pure::v1_24_0::invocation::execution::execute::*; import meta::protocols::pure::v1_24_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -130,13 +131,13 @@ function meta::protocols::pure::v1_24_0::invocation::execution::execute::buildEx clientVersion = 'v1_24_0', function = transformLambda($f, $extensions), mapping = if($m.name->isEmpty(), |[], |$m->toOne()->elementToPath()), - runtime = if($runtime.connections->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), + runtime = if($runtime.connectionStores->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $runtime.connections.element->cast(@meta::pure::store::Store) + |let stores = $runtime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() - ->filter(s | !$s->instanceOf(meta::pure::mapping::modelToModel::ModelStore)) + ->filter(s | !$s->instanceOf(meta::external::store::model::ModelStore)) ->map(c|^meta::protocols::pure::v1_24_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_24_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); let transformedMappings = $mappings->map(m|^meta::protocols::pure::v1_24_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_24_0::metamodel::PackageableElementType.MAPPING,path=$m->elementToPath())); ^meta::protocols::pure::v1_24_0::metamodel::PureModelContextPointer @@ -207,7 +208,7 @@ function meta::protocols::pure::v1_24_0::invocation::execution::execute::legendE let resultClassType=$typeAndresultJSON.first; let res= legendBuildResultFromJSON($resultJSON, $resultClassType, $m, $pureRuntime, $context, $extensions); - + let values = $res.values->cast(@T); ^Result(values=$values, activities=$res.activities); } @@ -260,4 +261,4 @@ function meta::protocols::pure::v1_24_0::invocation::execution::execute::alloyEx assertEq(200, $resp.statusCode, | $resp.statusCode->toString()+' \''+$resp.entity+'\''); $resp.entity; -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/scan/buildBasePureModel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/scan/buildBasePureModel.pure index e0a5eead7d2..904047339ce 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/scan/buildBasePureModel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/scan/buildBasePureModel.pure @@ -16,6 +16,7 @@ import meta::protocols::*; import meta::json::*; import meta::pure::store::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::milestoning::*; import meta::pure::mapping::*; import meta::protocols::pure::v1_24_0::transformation::fromPureGraph::*; @@ -396,4 +397,4 @@ function meta::protocols::pure::v1_24_0::transformation::fromPureGraph::buildPur function meta::protocols::pure::v1_24_0::transformation::fromPureGraph::buildPureModelFromPackage(ps:Package[*], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_24_0::metamodel::PureModelContextData[1] { meta::protocols::pure::v1_24_0::transformation::fromPureGraph::buildBasePureModelFromPackage($ps, '-1', $extensions); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/transfers/executionPlan.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/transfers/executionPlan.pure index c5242aad261..e57e7b1d0e1 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/transfers/executionPlan.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/transfers/executionPlan.pure @@ -37,8 +37,8 @@ function meta::protocols::pure::v1_24_0::transformation::fromPureGraph::executio { let n = $node->match($extensions.serializerExtension('v1_24_0')->cast(@meta::protocols::pure::v1_24_0::extension::SerializerExtension_v1_24_0).transfers_executionPlan_transformNode->map(f|$f->eval($mapping, $extensions))->concatenate( [ - - rel:meta::pure::mapping::modelToModel::ModelToModelExecutionNode[1]| + + rel:meta::external::store::model::ModelToModelExecutionNode[1]| ^meta::protocols::pure::v1_24_0::metamodel::executionPlan::ModelToModelExecutionNode( _type = 'm2m', resultType = $rel.resultType->meta::protocols::pure::v1_24_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), @@ -47,7 +47,7 @@ function meta::protocols::pure::v1_24_0::transformation::fromPureGraph::executio jsonPropertyPaths = $rel.jsonPropertyPaths->map(j|$j->meta::protocols::pure::v1_24_0::transformation::fromPureGraph::transformLambda($extensions)), pathToMapping = $rel.mapping->elementToPath()->toOne(), pathToClasses = $rel.classes->map(c|$c->elementToPath()), - connection = $rel.connection->cast(@meta::pure::mapping::modelToModel::ModelConnection)->meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connection::transformModelConnection(), + connection = $rel.connection->cast(@meta::external::store::model::ModelConnection)->meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connection::transformModelConnection(), pureModelContextData = $rel.mapping->meta::protocols::pure::v1_24_0::transformation::fromPureGraph::buildBasePureModelFromMapping( {m:meta::pure::mapping::Mapping[1], p: meta::protocols::Protocol[1] |[]}, $extensions).second ), platform:meta::pure::executionPlan::PureExpressionPlatformExecutionNode[1]| @@ -264,7 +264,7 @@ function meta::protocols::pure::v1_24_0::transformation::fromPureGraph::executio enumMapping = $extensions.serializerExtension('v1_24_0')->cast(@meta::protocols::pure::v1_24_0::extension::SerializerExtension_v1_24_0).transfers_executionPlan_transformSetImplementation ->filter(v|$v.first->eval($p))->map(x|$x.second->eval($p))->first() ) - + ) ); diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/transfers/mapping.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/transfers/mapping.pure index 5dfc54c5653..7648e1285b4 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/transfers/mapping.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/transfers/mapping.pure @@ -18,6 +18,7 @@ import meta::flatten::metamodel::*; import meta::protocols::pure::v1_24_0::transformation::fromPureGraph::mapping::modelToModel::*; import meta::pure::mapping::xStore::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_24_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_24_0::transformation::fromPureGraph::mapping::csv::*; import meta::protocols::pure::v1_24_0::transformation::fromPureGraph::mapping::*; @@ -126,7 +127,7 @@ function meta::protocols::pure::v1_24_0::transformation::fromPureGraph::mapping: ) ) ); - + if($operation == meta::protocols::pure::v1_24_0::metamodel::mapping::MappingOperation.MERGE, | ^meta::protocols::pure::v1_24_0::metamodel::mapping::MergeOperationClassMapping ( diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/transfers/metamodel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/transfers/metamodel.pure index ad9a6cf1616..ec580fca790 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/transfers/metamodel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/transfers/metamodel.pure @@ -14,6 +14,7 @@ ###Pure import meta::pure::metamodel::serialization::grammar::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::metamodel::constraint::*; import meta::protocols::pure::v1_24_0::transformation::fromPureGraph::*; @@ -256,7 +257,7 @@ function meta::protocols::pure::v1_24_0::transformation::fromPureGraph::transfor package = if($p.package->isEmpty(),|[],|$p.package->toOne()->elementToPath()), stereotypes = $p.p_stereotypes->map(s|$s.value), tags = $p.p_tags->map(t|$t.value) - + ) - -} \ No newline at end of file + +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/transfers/store.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/transfers/store.pure index 05a778686c3..16b59535882 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/transfers/store.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/transfers/store.pure @@ -14,6 +14,7 @@ import meta::pure::extension::*; import meta::json::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::protocols::pure::v1_24_0::transformation::fromPureGraph::runtime::transformRuntime(pureRuntime:Runtime[1], extensions:Extension[*]):meta::protocols::pure::v1_24_0::metamodel::Runtime[1] @@ -21,7 +22,7 @@ function meta::protocols::pure::v1_24_0::transformation::fromPureGraph::runtime: $pureRuntime->match([ legacy:Runtime[1] | ^meta::protocols::pure::v1_24_0::metamodel::LegacyRuntime( _type = 'legacyRuntime', - connections = $pureRuntime.connections->map(con|$con->meta::protocols::pure::v1_24_0::transformation::fromPureGraph::runtime::transformConnection($extensions)) + connections = $pureRuntime.connectionStores->map(conn|$conn.connection->meta::protocols::pure::v1_24_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$conn.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) ); ]) } @@ -39,21 +40,21 @@ function meta::protocols::pure::v1_24_0::transformation::fromPureGraph::runtime: $connection->match($extensions.serializerExtension('v1_24_0')->cast(@meta::protocols::pure::v1_24_0::extension::SerializerExtension_v1_24_0).transfers_store_transformConnection->concatenate( $extensions.serializerExtension('v1_24_0')->cast(@meta::protocols::pure::v1_24_0::extension::SerializerExtension_v1_24_0).transfers_store_transformConnection2->map(f | $f->eval($extensions)))->concatenate( [ - - model:meta::pure::mapping::modelToModel::ModelConnection[1] | $model->meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connection::transformModelConnection(), - j:meta::pure::mapping::modelToModel::JsonModelConnection[1] | $j->meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), - x:meta::pure::mapping::modelToModel::XmlModelConnection[1] | $x->meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), - c:meta::pure::mapping::modelToModel::ModelChainConnection[1] | $c->meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connection::transformChainConnection(), - - other: meta::pure::runtime::Connection[1] | let failureClass = $other->class()->toString(); + model:meta::external::store::model::ModelConnection[1] | $model->meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connection::transformModelConnection(), + j:meta::external::store::model::JsonModelConnection[1] | $j->meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), + x:meta::external::store::model::XmlModelConnection[1] | $x->meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), + c:meta::external::store::model::ModelChainConnection[1] | $c->meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connection::transformChainConnection(), + + + other: meta::core::runtime::Connection[1] | let failureClass = $other->class()->toString(); fail('' + $failureClass + ' Connection type not supported Yet!'); @meta::protocols::pure::v1_24_0::metamodel::runtime::Connection; ])->toOneMany() ); } -function meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::pure::mapping::modelToModel::ModelConnection[1]):meta::protocols::pure::v1_24_0::metamodel::mapping::modelToModel::ModelConnection[1] +function meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::external::store::model::ModelConnection[1]):meta::protocols::pure::v1_24_0::metamodel::mapping::modelToModel::ModelConnection[1] { let instances = $modelConnection.instances->keyValues(); ^meta::protocols::pure::v1_24_0::metamodel::mapping::modelToModel::ModelConnection( element = 'ModelStore', @@ -61,7 +62,7 @@ function meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connecti input = ^meta::protocols::pure::v1_24_0::metamodel::mapping::modelToModel::ModelStringInput(_type='ModelStringInput', class=$instances->at(0).first->elementToPath(), instances=$instances.second.values->map(i| $i->toJsonBeta()))); } -function meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::pure::mapping::modelToModel::JsonModelConnection[1]):meta::protocols::pure::v1_24_0::metamodel::mapping::modelToModel::JsonModelConnection[1] +function meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::external::store::model::JsonModelConnection[1]):meta::protocols::pure::v1_24_0::metamodel::mapping::modelToModel::JsonModelConnection[1] { ^meta::protocols::pure::v1_24_0::metamodel::mapping::modelToModel::JsonModelConnection( element = 'ModelStore', @@ -71,7 +72,7 @@ function meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::pure::mapping::modelToModel::XmlModelConnection[1]):meta::protocols::pure::v1_24_0::metamodel::mapping::modelToModel::XmlModelConnection[1] +function meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::external::store::model::XmlModelConnection[1]):meta::protocols::pure::v1_24_0::metamodel::mapping::modelToModel::XmlModelConnection[1] { ^meta::protocols::pure::v1_24_0::metamodel::mapping::modelToModel::XmlModelConnection( element = 'ModelStore', @@ -81,11 +82,11 @@ function meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::pure::mapping::modelToModel::ModelChainConnection[1]):meta::protocols::pure::v1_24_0::metamodel::mapping::modelToModel::ModelChainConnection[1] +function meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::external::store::model::ModelChainConnection[1]):meta::protocols::pure::v1_24_0::metamodel::mapping::modelToModel::ModelChainConnection[1] { ^meta::protocols::pure::v1_24_0::metamodel::mapping::modelToModel::ModelChainConnection( element = 'ModelStore', _type = 'ModelChainConnection', mappings = $modelChainConnection.mappings->map(m | $m->elementToPath()) ) -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/transfers/valueSpecification.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/transfers/valueSpecification.pure index 5c1a020e5ca..5593a83a456 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/transfers/valueSpecification.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_24_0/transfers/valueSpecification.pure @@ -429,7 +429,7 @@ function <> meta::protocols::pure::v1_24_0::transformation::from _type = 'packageableElementPtr', fullPath = $m->elementToPath()->toOne() ), - r:meta::pure::runtime::Runtime[1]| + r:meta::core::runtime::Runtime[1]| ^meta::protocols::pure::v1_24_0::metamodel::valueSpecification::raw::RuntimeInstance ( _type = 'runtimeInstance', diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/extension/extension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/extension/extension.pure index 606b5eca878..da89dcefd8e 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/extension/extension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/extension/extension.pure @@ -14,6 +14,7 @@ import meta::pure::mapping::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -29,25 +30,25 @@ Class meta::protocols::pure::v1_25_0::extension::SerializerExtension_v1_25_0 ext } : ModuleSerializerExtension[0..1]; transfers_execute_transformActivity : Function<{Nil[1] -> meta::pure::mapping::Activity[1]}>[*]; - + transfers_mapping_transformMapping : Function<{SetImplementation[1]->Boolean[1]}>[*]; transfers_mapping_transformSetImplementation : Function<{Mapping[1]->Function<{Nil[1]->meta::protocols::pure::v1_25_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformSetImplementation2 : Function<{Mapping[1], meta::pure::extension::Extension[*] ->Function<{Nil[1]->meta::protocols::pure::v1_25_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformAssociationImplementation : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_25_0::metamodel::mapping::AssociationMapping[1]}>[*]}>[0..1]; transfers_valueSpecification_transformAny : Function<{String[*],Map>[1], Multiplicity[1], FunctionExpression[0..1], Boolean[1], meta::pure::extension::Extension[*]->Function<{Nil[1]->meta::protocols::pure::v1_25_0::metamodel::valueSpecification::ValueSpecification[1]}>[*]}>[0..1]; - + transfers_executionPlan_transformNode : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_25_0::metamodel::executionPlan::ExecutionNode[1]}>[*]}>[0..1]; transfers_executionPlan_transformNode_GraphFetchM2MExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_25_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformNode_StoreStreamReadingExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_25_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformResultType : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_25_0::metamodel::executionPlan::ResultType[1]}>[*]}>[0..1]; transfers_executionPlan_transformSetImplementation : PairBoolean[1]}>, Function<{PropertyMapping[1]->Map>[1]}>>[0..1]; - + transfers_store_transformStore : Function<{Nil[1]->meta::protocols::pure::v1_25_0::metamodel::store::Store[1]}>[*]; transfers_store_transformStore2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_25_0::metamodel::store::Store[1]}>[*]}>[0..1]; transfers_store_transformConnection : Function<{Nil[1]->meta::protocols::pure::v1_25_0::metamodel::runtime::Connection[1]}>[*]; transfers_store_transformConnection2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_25_0::metamodel::runtime::Connection[1]}>[*]}>[0..1]; - + scan_buildBasePureModel_buildPureModelFromMapping1 : Function<{Nil[1]->Store[*]}>[*]; scan_buildBasePureModel_buildPureModelFromMapping2 : Store[*]; @@ -58,7 +59,7 @@ Class meta::protocols::pure::v1_25_0::extension::SerializerExtension_v1_25_0 ext scan_buildBasePureModel_findAllTypesFromMapping : Function<{Nil[1]->Type[*]}>[*]; scan_buildBasePureModel_extractStores : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; scan_buildBasePureModel_processProperties : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; - + invocation_execution_execute1 : Function<{ExecutionContext[1]->Boolean[1]}>[*]; invocation_execution_execute2_pre : PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]; invocation_execution_execute2_pre2 : Function<{meta::pure::extension::Extension[*] -> PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]}>[0..1]; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/invocations/execution.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/invocations/execution.pure index 529287f846d..368b2c50052 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/invocations/execution.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/invocations/execution.pure @@ -19,6 +19,7 @@ import meta::protocols::pure::v1_25_0::transformation::fromPureGraph::runtime::* import meta::pure::functions::io::http::*; import meta::protocols::pure::v1_25_0::invocation::execution::execute::*; import meta::protocols::pure::v1_25_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -130,13 +131,13 @@ function meta::protocols::pure::v1_25_0::invocation::execution::execute::buildEx clientVersion = 'v1_25_0', function = transformLambda($f, $extensions), mapping = if($m.name->isEmpty(), |[], |$m->toOne()->elementToPath()), - runtime = if($runtime.connections->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), + runtime = if($runtime.connectionStores->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $runtime.connections.element->cast(@meta::pure::store::Store) + |let stores = $runtime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() - ->filter(s | !$s->instanceOf(meta::pure::mapping::modelToModel::ModelStore)) + ->filter(s | !$s->instanceOf(meta::external::store::model::ModelStore)) ->map(c|^meta::protocols::pure::v1_25_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_25_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); let transformedMappings = $mappings->map(m|^meta::protocols::pure::v1_25_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_25_0::metamodel::PackageableElementType.MAPPING,path=$m->elementToPath())); ^meta::protocols::pure::v1_25_0::metamodel::PureModelContextPointer @@ -207,7 +208,7 @@ function meta::protocols::pure::v1_25_0::invocation::execution::execute::legendE let resultClassType=$typeAndresultJSON.first; let res= legendBuildResultFromJSON($resultJSON, $resultClassType, $m, $pureRuntime, $context, $extensions); - + let values = $res.values->cast(@T); ^Result(values=$values, activities=$res.activities); } @@ -260,4 +261,4 @@ function meta::protocols::pure::v1_25_0::invocation::execution::execute::alloyEx assertEq(200, $resp.statusCode, | $resp.statusCode->toString()+' \''+$resp.entity+'\''); $resp.entity; -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/scan/buildBasePureModel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/scan/buildBasePureModel.pure index 6c3f8de3120..00dd1f67c9e 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/scan/buildBasePureModel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/scan/buildBasePureModel.pure @@ -16,6 +16,7 @@ import meta::protocols::*; import meta::json::*; import meta::pure::store::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::milestoning::*; import meta::pure::mapping::*; import meta::protocols::pure::v1_25_0::transformation::fromPureGraph::*; @@ -396,4 +397,4 @@ function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::buildPur function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::buildPureModelFromPackage(ps:Package[*], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_25_0::metamodel::PureModelContextData[1] { meta::protocols::pure::v1_25_0::transformation::fromPureGraph::buildBasePureModelFromPackage($ps, '-1', $extensions); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/transfers/executionPlan.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/transfers/executionPlan.pure index ef54d771654..c14cbe0d413 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/transfers/executionPlan.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/transfers/executionPlan.pure @@ -37,8 +37,8 @@ function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::executio { let n = $node->match($extensions.serializerExtension('v1_25_0')->cast(@meta::protocols::pure::v1_25_0::extension::SerializerExtension_v1_25_0).transfers_executionPlan_transformNode->map(f|$f->eval($mapping, $extensions))->concatenate( [ - - rel:meta::pure::mapping::modelToModel::ModelToModelExecutionNode[1]| + + rel:meta::external::store::model::ModelToModelExecutionNode[1]| ^meta::protocols::pure::v1_25_0::metamodel::executionPlan::ModelToModelExecutionNode( _type = 'm2m', resultType = $rel.resultType->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), @@ -47,7 +47,7 @@ function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::executio jsonPropertyPaths = $rel.jsonPropertyPaths->map(j|$j->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::transformLambda($extensions)), pathToMapping = $rel.mapping->elementToPath()->toOne(), pathToClasses = $rel.classes->map(c|$c->elementToPath()), - connection = $rel.connection->cast(@meta::pure::mapping::modelToModel::ModelConnection)->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connection::transformModelConnection(), + connection = $rel.connection->cast(@meta::external::store::model::ModelConnection)->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connection::transformModelConnection(), pureModelContextData = $rel.mapping->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::buildBasePureModelFromMapping( {m:meta::pure::mapping::Mapping[1], p: meta::protocols::Protocol[1] |[]}, $extensions).second ), platform:meta::pure::executionPlan::PureExpressionPlatformExecutionNode[1]| @@ -264,7 +264,7 @@ function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::executio enumMapping = $extensions.serializerExtension('v1_25_0')->cast(@meta::protocols::pure::v1_25_0::extension::SerializerExtension_v1_25_0).transfers_executionPlan_transformSetImplementation ->filter(v|$v.first->eval($p))->map(x|$x.second->eval($p))->first() ) - + ) ); diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/transfers/mapping.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/transfers/mapping.pure index e3276f6b3cf..58ba9fad6e1 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/transfers/mapping.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/transfers/mapping.pure @@ -18,6 +18,7 @@ import meta::flatten::metamodel::*; import meta::protocols::pure::v1_25_0::transformation::fromPureGraph::mapping::modelToModel::*; import meta::pure::mapping::xStore::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_25_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_25_0::transformation::fromPureGraph::mapping::csv::*; import meta::protocols::pure::v1_25_0::transformation::fromPureGraph::mapping::*; @@ -126,7 +127,7 @@ function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::mapping: ) ) ); - + if($operation == meta::protocols::pure::v1_25_0::metamodel::mapping::MappingOperation.MERGE, | ^meta::protocols::pure::v1_25_0::metamodel::mapping::MergeOperationClassMapping ( diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/transfers/metamodel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/transfers/metamodel.pure index 6ecbfdac8cb..6f8e9f28742 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/transfers/metamodel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/transfers/metamodel.pure @@ -14,6 +14,7 @@ ###Pure import meta::pure::metamodel::serialization::grammar::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::metamodel::constraint::*; import meta::protocols::pure::v1_25_0::transformation::fromPureGraph::*; @@ -56,7 +57,7 @@ function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::domain:: package = if($class.package->isEmpty(),|[],|$class.package->toOne()->elementToPath()), superTypes = $class.generalizations->map(g | $g.general.rawType->toOne()->elementToPath()), properties = $properties->map(p | $p->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::domain::transformProperty($extensions)), - qualifiedProperties = $qualifiedProperties->map(q|$q->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::domain::transformQualifiedProperty($useAppliedFunction, $extensions)), + qualifiedProperties = $qualifiedProperties->map(q|$q->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::domain::transformQualifiedProperty($useAppliedFunction, $extensions)), originalMilestonedProperties = $originalMilestonedProperties->map(p | $p->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::domain::transformProperty($extensions)), stereotypes = $class.stereotypes->map(s|$s->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::domain::transformStereotype()), taggedValues = $class.taggedValues->map(t|$t->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::domain::transformTaggedValue()) @@ -169,7 +170,7 @@ function <> meta::protocols::pure::v1_25_0::transformation::from parameters = $fType.parameters->tail()->map(p|$p->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification([], newMap([]->cast(@Pair>)), true, $extensions)->cast(@meta::protocols::pure::v1_25_0::metamodel::valueSpecification::Variable)), returnType = $fType.returnType.rawType->toOne()->elementToPath(), returnMultiplicity = $fType.returnMultiplicity->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::domain::transformMultiplicity()->toOne(), - body = $qualifiedProperty->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::valueSpecification::transformFunctionBody($useAppliedFunction, $extensions), + body = $qualifiedProperty->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::valueSpecification::transformFunctionBody($useAppliedFunction, $extensions), stereotypes = $qualifiedProperty.stereotypes->map(s|$s->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::domain::transformStereotype()), taggedValues = $qualifiedProperty.taggedValues->map(t|$t->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::domain::transformTaggedValue()) ); @@ -256,7 +257,7 @@ function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::transfor package = if($p.package->isEmpty(),|[],|$p.package->toOne()->elementToPath()), stereotypes = $p.p_stereotypes->map(s|$s.value), tags = $p.p_tags->map(t|$t.value) - + ) - -} \ No newline at end of file + +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/transfers/store.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/transfers/store.pure index cc8d7e08de5..504c4842334 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/transfers/store.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/transfers/store.pure @@ -14,6 +14,7 @@ import meta::pure::extension::*; import meta::json::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::runtime::transformRuntime(pureRuntime:Runtime[1], extensions:Extension[*]):meta::protocols::pure::v1_25_0::metamodel::Runtime[1] @@ -21,7 +22,7 @@ function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::runtime: $pureRuntime->match([ legacy:Runtime[1] | ^meta::protocols::pure::v1_25_0::metamodel::LegacyRuntime( _type = 'legacyRuntime', - connections = $pureRuntime.connections->map(con|$con->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::runtime::transformConnection($extensions)) + connections = $pureRuntime.connectionStores->map(conn|$conn.connection->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$conn.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) ); ]) } @@ -39,21 +40,21 @@ function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::runtime: $connection->match($extensions.serializerExtension('v1_25_0')->cast(@meta::protocols::pure::v1_25_0::extension::SerializerExtension_v1_25_0).transfers_store_transformConnection->concatenate( $extensions.serializerExtension('v1_25_0')->cast(@meta::protocols::pure::v1_25_0::extension::SerializerExtension_v1_25_0).transfers_store_transformConnection2->map(f | $f->eval($extensions)))->concatenate( [ - - model:meta::pure::mapping::modelToModel::ModelConnection[1] | $model->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connection::transformModelConnection(), - j:meta::pure::mapping::modelToModel::JsonModelConnection[1] | $j->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), - x:meta::pure::mapping::modelToModel::XmlModelConnection[1] | $x->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), - c:meta::pure::mapping::modelToModel::ModelChainConnection[1] | $c->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connection::transformChainConnection(), - - other: meta::pure::runtime::Connection[1] | let failureClass = $other->class()->toString(); + model:meta::external::store::model::ModelConnection[1] | $model->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connection::transformModelConnection(), + j:meta::external::store::model::JsonModelConnection[1] | $j->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), + x:meta::external::store::model::XmlModelConnection[1] | $x->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), + c:meta::external::store::model::ModelChainConnection[1] | $c->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connection::transformChainConnection(), + + + other: meta::core::runtime::Connection[1] | let failureClass = $other->class()->toString(); fail('' + $failureClass + ' Connection type not supported Yet!'); @meta::protocols::pure::v1_25_0::metamodel::runtime::Connection; ])->toOneMany() ); } -function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::pure::mapping::modelToModel::ModelConnection[1]):meta::protocols::pure::v1_25_0::metamodel::mapping::modelToModel::ModelConnection[1] +function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::external::store::model::ModelConnection[1]):meta::protocols::pure::v1_25_0::metamodel::mapping::modelToModel::ModelConnection[1] { let instances = $modelConnection.instances->keyValues(); ^meta::protocols::pure::v1_25_0::metamodel::mapping::modelToModel::ModelConnection( element = 'ModelStore', @@ -61,7 +62,7 @@ function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connecti input = ^meta::protocols::pure::v1_25_0::metamodel::mapping::modelToModel::ModelStringInput(_type='ModelStringInput', class=$instances->at(0).first->elementToPath(), instances=$instances.second.values->map(i| $i->toJsonBeta()))); } -function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::pure::mapping::modelToModel::JsonModelConnection[1]):meta::protocols::pure::v1_25_0::metamodel::mapping::modelToModel::JsonModelConnection[1] +function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::external::store::model::JsonModelConnection[1]):meta::protocols::pure::v1_25_0::metamodel::mapping::modelToModel::JsonModelConnection[1] { ^meta::protocols::pure::v1_25_0::metamodel::mapping::modelToModel::JsonModelConnection( element = 'ModelStore', @@ -71,7 +72,7 @@ function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::pure::mapping::modelToModel::XmlModelConnection[1]):meta::protocols::pure::v1_25_0::metamodel::mapping::modelToModel::XmlModelConnection[1] +function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::external::store::model::XmlModelConnection[1]):meta::protocols::pure::v1_25_0::metamodel::mapping::modelToModel::XmlModelConnection[1] { ^meta::protocols::pure::v1_25_0::metamodel::mapping::modelToModel::XmlModelConnection( element = 'ModelStore', @@ -81,11 +82,11 @@ function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::pure::mapping::modelToModel::ModelChainConnection[1]):meta::protocols::pure::v1_25_0::metamodel::mapping::modelToModel::ModelChainConnection[1] +function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::external::store::model::ModelChainConnection[1]):meta::protocols::pure::v1_25_0::metamodel::mapping::modelToModel::ModelChainConnection[1] { ^meta::protocols::pure::v1_25_0::metamodel::mapping::modelToModel::ModelChainConnection( element = 'ModelStore', _type = 'ModelChainConnection', mappings = $modelChainConnection.mappings->map(m | $m->elementToPath()) ) -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/transfers/valueSpecification.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/transfers/valueSpecification.pure index 4f9c4b4f500..b06e2eefdaf 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/transfers/valueSpecification.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_25_0/transfers/valueSpecification.pure @@ -429,7 +429,7 @@ function <> meta::protocols::pure::v1_25_0::transformation::from _type = 'packageableElementPtr', fullPath = $m->elementToPath()->toOne() ), - r:meta::pure::runtime::Runtime[1]| + r:meta::core::runtime::Runtime[1]| ^meta::protocols::pure::v1_25_0::metamodel::valueSpecification::raw::RuntimeInstance ( _type = 'runtimeInstance', diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/extension/extension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/extension/extension.pure index 81d240b848c..68d91b95b11 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/extension/extension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/extension/extension.pure @@ -14,6 +14,7 @@ import meta::pure::mapping::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -29,25 +30,25 @@ Class meta::protocols::pure::v1_26_0::extension::SerializerExtension_v1_26_0 ext } : ModuleSerializerExtension[0..1]; transfers_execute_transformActivity : Function<{Nil[1] -> meta::pure::mapping::Activity[1]}>[*]; - + transfers_mapping_transformMapping : Function<{SetImplementation[1]->Boolean[1]}>[*]; transfers_mapping_transformSetImplementation : Function<{Mapping[1]->Function<{Nil[1]->meta::protocols::pure::v1_26_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformSetImplementation2 : Function<{Mapping[1], meta::pure::extension::Extension[*] ->Function<{Nil[1]->meta::protocols::pure::v1_26_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformAssociationImplementation : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_26_0::metamodel::mapping::AssociationMapping[1]}>[*]}>[0..1]; transfers_valueSpecification_transformAny : Function<{String[*],Map>[1], Multiplicity[1], FunctionExpression[0..1], Boolean[1], meta::pure::extension::Extension[*]->Function<{Nil[1]->meta::protocols::pure::v1_26_0::metamodel::valueSpecification::ValueSpecification[1]}>[*]}>[0..1]; - + transfers_executionPlan_transformNode : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_26_0::metamodel::executionPlan::ExecutionNode[1]}>[*]}>[0..1]; transfers_executionPlan_transformNode_GraphFetchM2MExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_26_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformNode_StoreStreamReadingExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_26_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformResultType : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_26_0::metamodel::executionPlan::ResultType[1]}>[*]}>[0..1]; transfers_executionPlan_transformSetImplementation : PairBoolean[1]}>, Function<{PropertyMapping[1]->Map>[1]}>>[0..1]; - + transfers_store_transformStore : Function<{Nil[1]->meta::protocols::pure::v1_26_0::metamodel::store::Store[1]}>[*]; transfers_store_transformStore2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_26_0::metamodel::store::Store[1]}>[*]}>[0..1]; transfers_store_transformConnection : Function<{Nil[1]->meta::protocols::pure::v1_26_0::metamodel::runtime::Connection[1]}>[*]; transfers_store_transformConnection2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_26_0::metamodel::runtime::Connection[1]}>[*]}>[0..1]; - + scan_buildBasePureModel_buildPureModelFromMapping1 : Function<{Nil[1]->Store[*]}>[*]; scan_buildBasePureModel_buildPureModelFromMapping2 : Store[*]; @@ -58,7 +59,7 @@ Class meta::protocols::pure::v1_26_0::extension::SerializerExtension_v1_26_0 ext scan_buildBasePureModel_findAllTypesFromMapping : Function<{Nil[1]->Type[*]}>[*]; scan_buildBasePureModel_extractStores : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; scan_buildBasePureModel_processProperties : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; - + invocation_execution_execute1 : Function<{ExecutionContext[1]->Boolean[1]}>[*]; invocation_execution_execute2_pre : PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]; invocation_execution_execute2_pre2 : Function<{meta::pure::extension::Extension[*] -> PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]}>[0..1]; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/invocations/execution.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/invocations/execution.pure index db5a5626b8d..02cab933ff3 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/invocations/execution.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/invocations/execution.pure @@ -19,6 +19,7 @@ import meta::protocols::pure::v1_26_0::transformation::fromPureGraph::runtime::* import meta::pure::functions::io::http::*; import meta::protocols::pure::v1_26_0::invocation::execution::execute::*; import meta::protocols::pure::v1_26_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -130,13 +131,13 @@ function meta::protocols::pure::v1_26_0::invocation::execution::execute::buildEx clientVersion = 'v1_26_0', function = transformLambda($f, $extensions), mapping = if($m.name->isEmpty(), |[], |$m->toOne()->elementToPath()), - runtime = if($runtime.connections->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), + runtime = if($runtime.connectionStores->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $runtime.connections.element->cast(@meta::pure::store::Store) + |let stores = $runtime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() - ->filter(s | !$s->instanceOf(meta::pure::mapping::modelToModel::ModelStore)) + ->filter(s | !$s->instanceOf(meta::external::store::model::ModelStore)) ->map(c|^meta::protocols::pure::v1_26_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_26_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); let transformedMappings = $mappings->map(m|^meta::protocols::pure::v1_26_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_26_0::metamodel::PackageableElementType.MAPPING,path=$m->elementToPath())); ^meta::protocols::pure::v1_26_0::metamodel::PureModelContextPointer @@ -207,7 +208,7 @@ function meta::protocols::pure::v1_26_0::invocation::execution::execute::legendE let resultClassType=$typeAndresultJSON.first; let res= legendBuildResultFromJSON($resultJSON, $resultClassType, $m, $pureRuntime, $context, $extensions); - + let values = $res.values->cast(@T); ^Result(values=$values, activities=$res.activities); } @@ -260,4 +261,4 @@ function meta::protocols::pure::v1_26_0::invocation::execution::execute::alloyEx assertEq(200, $resp.statusCode, | $resp.statusCode->toString()+' \''+$resp.entity+'\''); $resp.entity; -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/scan/buildBasePureModel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/scan/buildBasePureModel.pure index 44f3a472d99..6d18567fa55 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/scan/buildBasePureModel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/scan/buildBasePureModel.pure @@ -16,6 +16,7 @@ import meta::protocols::*; import meta::json::*; import meta::pure::store::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::milestoning::*; import meta::pure::mapping::*; import meta::protocols::pure::v1_26_0::transformation::fromPureGraph::*; @@ -396,4 +397,4 @@ function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::buildPur function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::buildPureModelFromPackage(ps:Package[*], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_26_0::metamodel::PureModelContextData[1] { meta::protocols::pure::v1_26_0::transformation::fromPureGraph::buildBasePureModelFromPackage($ps, '-1', $extensions); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/transfers/executionPlan.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/transfers/executionPlan.pure index ed40bbdce41..b27780f76c6 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/transfers/executionPlan.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/transfers/executionPlan.pure @@ -37,8 +37,8 @@ function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::executio { let n = $node->match($extensions.serializerExtension('v1_26_0')->cast(@meta::protocols::pure::v1_26_0::extension::SerializerExtension_v1_26_0).transfers_executionPlan_transformNode->map(f|$f->eval($mapping, $extensions))->concatenate( [ - - rel:meta::pure::mapping::modelToModel::ModelToModelExecutionNode[1]| + + rel:meta::external::store::model::ModelToModelExecutionNode[1]| ^meta::protocols::pure::v1_26_0::metamodel::executionPlan::ModelToModelExecutionNode( _type = 'm2m', resultType = $rel.resultType->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), @@ -47,7 +47,7 @@ function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::executio jsonPropertyPaths = $rel.jsonPropertyPaths->map(j|$j->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::transformLambda($extensions)), pathToMapping = $rel.mapping->elementToPath()->toOne(), pathToClasses = $rel.classes->map(c|$c->elementToPath()), - connection = $rel.connection->cast(@meta::pure::mapping::modelToModel::ModelConnection)->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connection::transformModelConnection(), + connection = $rel.connection->cast(@meta::external::store::model::ModelConnection)->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connection::transformModelConnection(), pureModelContextData = $rel.mapping->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::buildBasePureModelFromMapping( {m:meta::pure::mapping::Mapping[1], p: meta::protocols::Protocol[1] |[]}, $extensions).second ), platform:meta::pure::executionPlan::PureExpressionPlatformExecutionNode[1]| @@ -152,7 +152,7 @@ function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::executio resultType = $f.resultType->transformResultType($mapping, $extensions), resultSizeRange = $f.resultSizeRange->isEmpty()->if(|[],|$f.resultSizeRange->toOne()->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::domain::transformMultiplicity()) ), - v:meta::pure::executionPlan::VariableResolutionExecutionNode[1]| + v:meta::pure::executionPlan::VariableResolutionExecutionNode[1]| ^meta::protocols::pure::v1_26_0::metamodel::executionPlan::VariableResolutionExecutionNode( _type = 'varResolution', resultType = $v.resultType->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), @@ -274,7 +274,7 @@ function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::executio enumMapping = $extensions.serializerExtension('v1_26_0')->cast(@meta::protocols::pure::v1_26_0::extension::SerializerExtension_v1_26_0).transfers_executionPlan_transformSetImplementation ->filter(v|$v.first->eval($p))->map(x|$x.second->eval($p))->first() ) - + ) ); diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/transfers/mapping.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/transfers/mapping.pure index 160b22c65a4..4626a1bd81c 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/transfers/mapping.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/transfers/mapping.pure @@ -18,6 +18,7 @@ import meta::flatten::metamodel::*; import meta::protocols::pure::v1_26_0::transformation::fromPureGraph::mapping::modelToModel::*; import meta::pure::mapping::xStore::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_26_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_26_0::transformation::fromPureGraph::mapping::csv::*; import meta::protocols::pure::v1_26_0::transformation::fromPureGraph::mapping::*; @@ -126,7 +127,7 @@ function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::mapping: ) ) ); - + if($operation == meta::protocols::pure::v1_26_0::metamodel::mapping::MappingOperation.MERGE, | ^meta::protocols::pure::v1_26_0::metamodel::mapping::MergeOperationClassMapping ( diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/transfers/metamodel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/transfers/metamodel.pure index 62374a7b913..55a7a7c9682 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/transfers/metamodel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/transfers/metamodel.pure @@ -14,6 +14,7 @@ ###Pure import meta::pure::metamodel::serialization::grammar::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::metamodel::constraint::*; import meta::protocols::pure::v1_26_0::transformation::fromPureGraph::*; @@ -56,7 +57,7 @@ function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::domain:: package = if($class.package->isEmpty(),|[],|$class.package->toOne()->elementToPath()), superTypes = $class.generalizations->map(g | $g.general.rawType->toOne()->elementToPath()), properties = $properties->map(p | $p->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::domain::transformProperty($extensions)), - qualifiedProperties = $qualifiedProperties->map(q|$q->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::domain::transformQualifiedProperty($useAppliedFunction, $extensions)), + qualifiedProperties = $qualifiedProperties->map(q|$q->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::domain::transformQualifiedProperty($useAppliedFunction, $extensions)), originalMilestonedProperties = $originalMilestonedProperties->map(p | $p->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::domain::transformProperty($extensions)), stereotypes = $class.stereotypes->map(s|$s->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::domain::transformStereotype()), taggedValues = $class.taggedValues->map(t|$t->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::domain::transformTaggedValue()) @@ -169,7 +170,7 @@ function <> meta::protocols::pure::v1_26_0::transformation::from parameters = $fType.parameters->tail()->map(p|$p->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification([], newMap([]->cast(@Pair>)), true, $extensions)->cast(@meta::protocols::pure::v1_26_0::metamodel::valueSpecification::Variable)), returnType = $fType.returnType.rawType->toOne()->elementToPath(), returnMultiplicity = $fType.returnMultiplicity->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::domain::transformMultiplicity()->toOne(), - body = $qualifiedProperty->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::valueSpecification::transformFunctionBody($useAppliedFunction, $extensions), + body = $qualifiedProperty->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::valueSpecification::transformFunctionBody($useAppliedFunction, $extensions), stereotypes = $qualifiedProperty.stereotypes->map(s|$s->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::domain::transformStereotype()), taggedValues = $qualifiedProperty.taggedValues->map(t|$t->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::domain::transformTaggedValue()) ); @@ -256,7 +257,7 @@ function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::transfor package = if($p.package->isEmpty(),|[],|$p.package->toOne()->elementToPath()), stereotypes = $p.p_stereotypes->map(s|$s.value), tags = $p.p_tags->map(t|$t.value) - + ) - -} \ No newline at end of file + +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/transfers/store.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/transfers/store.pure index db5e03b4272..64bb163ebe9 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/transfers/store.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/transfers/store.pure @@ -14,6 +14,7 @@ import meta::pure::extension::*; import meta::json::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::runtime::transformRuntime(pureRuntime:Runtime[1], extensions:Extension[*]):meta::protocols::pure::v1_26_0::metamodel::Runtime[1] @@ -21,7 +22,7 @@ function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::runtime: $pureRuntime->match([ legacy:Runtime[1] | ^meta::protocols::pure::v1_26_0::metamodel::LegacyRuntime( _type = 'legacyRuntime', - connections = $pureRuntime.connections->map(con|$con->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::runtime::transformConnection($extensions)) + connections = $pureRuntime.connectionStores->map(conn|$conn.connection->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$conn.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) ); ]) } @@ -39,21 +40,21 @@ function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::runtime: $connection->match($extensions.serializerExtension('v1_26_0')->cast(@meta::protocols::pure::v1_26_0::extension::SerializerExtension_v1_26_0).transfers_store_transformConnection->concatenate( $extensions.serializerExtension('v1_26_0')->cast(@meta::protocols::pure::v1_26_0::extension::SerializerExtension_v1_26_0).transfers_store_transformConnection2->map(f | $f->eval($extensions)))->concatenate( [ - - model:meta::pure::mapping::modelToModel::ModelConnection[1] | $model->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connection::transformModelConnection(), - j:meta::pure::mapping::modelToModel::JsonModelConnection[1] | $j->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), - x:meta::pure::mapping::modelToModel::XmlModelConnection[1] | $x->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), - c:meta::pure::mapping::modelToModel::ModelChainConnection[1] | $c->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connection::transformChainConnection(), - - other: meta::pure::runtime::Connection[1] | let failureClass = $other->class()->toString(); + model:meta::external::store::model::ModelConnection[1] | $model->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connection::transformModelConnection(), + j:meta::external::store::model::JsonModelConnection[1] | $j->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), + x:meta::external::store::model::XmlModelConnection[1] | $x->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), + c:meta::external::store::model::ModelChainConnection[1] | $c->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connection::transformChainConnection(), + + + other: meta::core::runtime::Connection[1] | let failureClass = $other->class()->toString(); fail('' + $failureClass + ' Connection type not supported Yet!'); @meta::protocols::pure::v1_26_0::metamodel::runtime::Connection; ])->toOneMany() ); } -function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::pure::mapping::modelToModel::ModelConnection[1]):meta::protocols::pure::v1_26_0::metamodel::mapping::modelToModel::ModelConnection[1] +function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::external::store::model::ModelConnection[1]):meta::protocols::pure::v1_26_0::metamodel::mapping::modelToModel::ModelConnection[1] { let instances = $modelConnection.instances->keyValues(); ^meta::protocols::pure::v1_26_0::metamodel::mapping::modelToModel::ModelConnection( element = 'ModelStore', @@ -61,7 +62,7 @@ function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connecti input = ^meta::protocols::pure::v1_26_0::metamodel::mapping::modelToModel::ModelStringInput(_type='ModelStringInput', class=$instances->at(0).first->elementToPath(), instances=$instances.second.values->map(i| $i->toJsonBeta()))); } -function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::pure::mapping::modelToModel::JsonModelConnection[1]):meta::protocols::pure::v1_26_0::metamodel::mapping::modelToModel::JsonModelConnection[1] +function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::external::store::model::JsonModelConnection[1]):meta::protocols::pure::v1_26_0::metamodel::mapping::modelToModel::JsonModelConnection[1] { ^meta::protocols::pure::v1_26_0::metamodel::mapping::modelToModel::JsonModelConnection( element = 'ModelStore', @@ -71,7 +72,7 @@ function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::pure::mapping::modelToModel::XmlModelConnection[1]):meta::protocols::pure::v1_26_0::metamodel::mapping::modelToModel::XmlModelConnection[1] +function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::external::store::model::XmlModelConnection[1]):meta::protocols::pure::v1_26_0::metamodel::mapping::modelToModel::XmlModelConnection[1] { ^meta::protocols::pure::v1_26_0::metamodel::mapping::modelToModel::XmlModelConnection( element = 'ModelStore', @@ -81,11 +82,11 @@ function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::pure::mapping::modelToModel::ModelChainConnection[1]):meta::protocols::pure::v1_26_0::metamodel::mapping::modelToModel::ModelChainConnection[1] +function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::external::store::model::ModelChainConnection[1]):meta::protocols::pure::v1_26_0::metamodel::mapping::modelToModel::ModelChainConnection[1] { ^meta::protocols::pure::v1_26_0::metamodel::mapping::modelToModel::ModelChainConnection( element = 'ModelStore', _type = 'ModelChainConnection', mappings = $modelChainConnection.mappings->map(m | $m->elementToPath()) ) -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/transfers/valueSpecification.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/transfers/valueSpecification.pure index 51e1f9f3c28..cc555ae6a41 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/transfers/valueSpecification.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_26_0/transfers/valueSpecification.pure @@ -429,7 +429,7 @@ function <> meta::protocols::pure::v1_26_0::transformation::from _type = 'packageableElementPtr', fullPath = $m->elementToPath()->toOne() ), - r:meta::pure::runtime::Runtime[1]| + r:meta::core::runtime::Runtime[1]| ^meta::protocols::pure::v1_26_0::metamodel::valueSpecification::raw::RuntimeInstance ( _type = 'runtimeInstance', diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/extension/extension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/extension/extension.pure index 3137c1978da..2dc66d1eb68 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/extension/extension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/extension/extension.pure @@ -14,6 +14,7 @@ import meta::pure::mapping::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -29,25 +30,25 @@ Class meta::protocols::pure::v1_27_0::extension::SerializerExtension_v1_27_0 ext } : ModuleSerializerExtension[0..1]; transfers_execute_transformActivity : Function<{Nil[1] -> meta::pure::mapping::Activity[1]}>[*]; - + transfers_mapping_transformMapping : Function<{SetImplementation[1]->Boolean[1]}>[*]; transfers_mapping_transformSetImplementation : Function<{Mapping[1]->Function<{Nil[1]->meta::protocols::pure::v1_27_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformSetImplementation2 : Function<{Mapping[1], meta::pure::extension::Extension[*] ->Function<{Nil[1]->meta::protocols::pure::v1_27_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformAssociationImplementation : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_27_0::metamodel::mapping::AssociationMapping[1]}>[*]}>[0..1]; transfers_valueSpecification_transformAny : Function<{String[*],Map>[1], Multiplicity[1], FunctionExpression[0..1], Boolean[1], meta::pure::extension::Extension[*]->Function<{Nil[1]->meta::protocols::pure::v1_27_0::metamodel::valueSpecification::ValueSpecification[1]}>[*]}>[0..1]; - + transfers_executionPlan_transformNode : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_27_0::metamodel::executionPlan::ExecutionNode[1]}>[*]}>[0..1]; transfers_executionPlan_transformNode_GraphFetchM2MExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_27_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformNode_StoreStreamReadingExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_27_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformResultType : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_27_0::metamodel::executionPlan::ResultType[1]}>[*]}>[0..1]; transfers_executionPlan_transformSetImplementation : PairBoolean[1]}>, Function<{PropertyMapping[1]->Map>[1]}>>[0..1]; - + transfers_store_transformStore : Function<{Nil[1]->meta::protocols::pure::v1_27_0::metamodel::store::Store[1]}>[*]; transfers_store_transformStore2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_27_0::metamodel::store::Store[1]}>[*]}>[0..1]; transfers_store_transformConnection : Function<{Nil[1]->meta::protocols::pure::v1_27_0::metamodel::runtime::Connection[1]}>[*]; transfers_store_transformConnection2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_27_0::metamodel::runtime::Connection[1]}>[*]}>[0..1]; - + scan_buildBasePureModel_buildPureModelFromMapping1 : Function<{Nil[1]->Store[*]}>[*]; scan_buildBasePureModel_buildPureModelFromMapping2 : Store[*]; @@ -58,7 +59,7 @@ Class meta::protocols::pure::v1_27_0::extension::SerializerExtension_v1_27_0 ext scan_buildBasePureModel_findAllTypesFromMapping : Function<{Nil[1]->Type[*]}>[*]; scan_buildBasePureModel_extractStores : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; scan_buildBasePureModel_processProperties : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; - + invocation_execution_execute1 : Function<{ExecutionContext[1]->Boolean[1]}>[*]; invocation_execution_execute2_pre : PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]; invocation_execution_execute2_pre2 : Function<{meta::pure::extension::Extension[*] -> PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]}>[0..1]; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/invocations/execution.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/invocations/execution.pure index 406a5548a7c..797cac163de 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/invocations/execution.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/invocations/execution.pure @@ -19,6 +19,7 @@ import meta::protocols::pure::v1_27_0::transformation::fromPureGraph::runtime::* import meta::pure::functions::io::http::*; import meta::protocols::pure::v1_27_0::invocation::execution::execute::*; import meta::protocols::pure::v1_27_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -130,13 +131,13 @@ function meta::protocols::pure::v1_27_0::invocation::execution::execute::buildEx clientVersion = 'v1_27_0', function = transformLambda($f, $extensions), mapping = if($m.name->isEmpty(), |[], |$m->toOne()->elementToPath()), - runtime = if($runtime.connections->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), + runtime = if($runtime.connectionStores->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $runtime.connections.element->cast(@meta::pure::store::Store) + |let stores = $runtime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() - ->filter(s | !$s->instanceOf(meta::pure::mapping::modelToModel::ModelStore)) + ->filter(s | !$s->instanceOf(meta::external::store::model::ModelStore)) ->map(c|^meta::protocols::pure::v1_27_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_27_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); let transformedMappings = $mappings->map(m|^meta::protocols::pure::v1_27_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_27_0::metamodel::PackageableElementType.MAPPING,path=$m->elementToPath())); ^meta::protocols::pure::v1_27_0::metamodel::PureModelContextPointer @@ -207,7 +208,7 @@ function meta::protocols::pure::v1_27_0::invocation::execution::execute::legendE let resultClassType=$typeAndresultJSON.first; let res= legendBuildResultFromJSON($resultJSON, $resultClassType, $m, $pureRuntime, $context, $extensions); - + let values = $res.values->cast(@T); ^Result(values=$values, activities=$res.activities); } @@ -260,4 +261,4 @@ function meta::protocols::pure::v1_27_0::invocation::execution::execute::alloyEx assertEq(200, $resp.statusCode, | $resp.statusCode->toString()+' \''+$resp.entity+'\''); $resp.entity; -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/scan/buildBasePureModel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/scan/buildBasePureModel.pure index da0987c65f4..2daaef4fe5f 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/scan/buildBasePureModel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/scan/buildBasePureModel.pure @@ -16,6 +16,7 @@ import meta::protocols::*; import meta::json::*; import meta::pure::store::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::milestoning::*; import meta::pure::mapping::*; import meta::protocols::pure::v1_27_0::transformation::fromPureGraph::*; @@ -396,4 +397,4 @@ function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::buildPur function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::buildPureModelFromPackage(ps:Package[*], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_27_0::metamodel::PureModelContextData[1] { meta::protocols::pure::v1_27_0::transformation::fromPureGraph::buildBasePureModelFromPackage($ps, '-1', $extensions); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/transfers/executionPlan.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/transfers/executionPlan.pure index 9561e620e2e..ce93b5060dc 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/transfers/executionPlan.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/transfers/executionPlan.pure @@ -36,8 +36,8 @@ function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::executio { let n = $node->match($extensions.serializerExtension('v1_27_0')->cast(@meta::protocols::pure::v1_27_0::extension::SerializerExtension_v1_27_0).transfers_executionPlan_transformNode->map(f|$f->eval($mapping, $extensions))->concatenate( [ - - rel:meta::pure::mapping::modelToModel::ModelToModelExecutionNode[1]| + + rel:meta::external::store::model::ModelToModelExecutionNode[1]| ^meta::protocols::pure::v1_27_0::metamodel::executionPlan::ModelToModelExecutionNode( _type = 'm2m', resultType = $rel.resultType->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), @@ -46,7 +46,7 @@ function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::executio jsonPropertyPaths = $rel.jsonPropertyPaths->map(j|$j->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::transformLambda($extensions)), pathToMapping = $rel.mapping->elementToPath()->toOne(), pathToClasses = $rel.classes->map(c|$c->elementToPath()), - connection = $rel.connection->cast(@meta::pure::mapping::modelToModel::ModelConnection)->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connection::transformModelConnection(), + connection = $rel.connection->cast(@meta::external::store::model::ModelConnection)->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connection::transformModelConnection(), pureModelContextData = $rel.mapping->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::buildBasePureModelFromMapping( {m:meta::pure::mapping::Mapping[1], p: meta::protocols::Protocol[1] |[]}, $extensions).second ), platform:meta::pure::executionPlan::PureExpressionPlatformExecutionNode[1]| @@ -152,7 +152,7 @@ function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::executio resultType = $f.resultType->transformResultType($mapping, $extensions), resultSizeRange = $f.resultSizeRange->isEmpty()->if(|[],|$f.resultSizeRange->toOne()->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::domain::transformMultiplicity()) ), - v:meta::pure::executionPlan::VariableResolutionExecutionNode[1]| + v:meta::pure::executionPlan::VariableResolutionExecutionNode[1]| ^meta::protocols::pure::v1_27_0::metamodel::executionPlan::VariableResolutionExecutionNode( _type = 'varResolution', resultType = $v.resultType->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), @@ -275,7 +275,7 @@ function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::executio enumMapping = $extensions.serializerExtension('v1_27_0')->cast(@meta::protocols::pure::v1_27_0::extension::SerializerExtension_v1_27_0).transfers_executionPlan_transformSetImplementation ->filter(v|$v.first->eval($p))->map(x|$x.second->eval($p))->first() ) - + ) ); diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/transfers/mapping.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/transfers/mapping.pure index 17f46290b13..a353941409b 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/transfers/mapping.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/transfers/mapping.pure @@ -18,6 +18,7 @@ import meta::flatten::metamodel::*; import meta::protocols::pure::v1_27_0::transformation::fromPureGraph::mapping::modelToModel::*; import meta::pure::mapping::xStore::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_27_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_27_0::transformation::fromPureGraph::mapping::csv::*; import meta::protocols::pure::v1_27_0::transformation::fromPureGraph::mapping::*; @@ -126,7 +127,7 @@ function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::mapping: ) ) ); - + if($operation == meta::protocols::pure::v1_27_0::metamodel::mapping::MappingOperation.MERGE, | ^meta::protocols::pure::v1_27_0::metamodel::mapping::MergeOperationClassMapping ( diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/transfers/metamodel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/transfers/metamodel.pure index b63afc12098..dc466ee3132 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/transfers/metamodel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/transfers/metamodel.pure @@ -14,6 +14,7 @@ ###Pure import meta::pure::metamodel::serialization::grammar::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::metamodel::constraint::*; import meta::protocols::pure::v1_27_0::transformation::fromPureGraph::*; @@ -56,7 +57,7 @@ function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::domain:: package = if($class.package->isEmpty(),|[],|$class.package->toOne()->elementToPath()), superTypes = $class.generalizations->map(g | $g.general.rawType->toOne()->elementToPath()), properties = $properties->map(p | $p->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::domain::transformProperty($extensions)), - qualifiedProperties = $qualifiedProperties->map(q|$q->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::domain::transformQualifiedProperty($useAppliedFunction, $extensions)), + qualifiedProperties = $qualifiedProperties->map(q|$q->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::domain::transformQualifiedProperty($useAppliedFunction, $extensions)), originalMilestonedProperties = $originalMilestonedProperties->map(p | $p->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::domain::transformProperty($extensions)), stereotypes = $class.stereotypes->map(s|$s->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::domain::transformStereotype()), taggedValues = $class.taggedValues->map(t|$t->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::domain::transformTaggedValue()) @@ -169,7 +170,7 @@ function <> meta::protocols::pure::v1_27_0::transformation::from parameters = $fType.parameters->tail()->map(p|$p->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification([], newMap([]->cast(@Pair>)), true, $extensions)->cast(@meta::protocols::pure::v1_27_0::metamodel::valueSpecification::Variable)), returnType = $fType.returnType.rawType->toOne()->elementToPath(), returnMultiplicity = $fType.returnMultiplicity->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::domain::transformMultiplicity()->toOne(), - body = $qualifiedProperty->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::valueSpecification::transformFunctionBody($useAppliedFunction, $extensions), + body = $qualifiedProperty->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::valueSpecification::transformFunctionBody($useAppliedFunction, $extensions), stereotypes = $qualifiedProperty.stereotypes->map(s|$s->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::domain::transformStereotype()), taggedValues = $qualifiedProperty.taggedValues->map(t|$t->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::domain::transformTaggedValue()) ); @@ -256,7 +257,7 @@ function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::transfor package = if($p.package->isEmpty(),|[],|$p.package->toOne()->elementToPath()), stereotypes = $p.p_stereotypes->map(s|$s.value), tags = $p.p_tags->map(t|$t.value) - + ) - -} \ No newline at end of file + +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/transfers/store.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/transfers/store.pure index cc77e5713b9..a0f0287ddc8 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/transfers/store.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/transfers/store.pure @@ -14,6 +14,7 @@ import meta::pure::extension::*; import meta::json::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::runtime::transformRuntime(pureRuntime:Runtime[1], extensions:Extension[*]):meta::protocols::pure::v1_27_0::metamodel::Runtime[1] @@ -21,7 +22,7 @@ function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::runtime: $pureRuntime->match([ legacy:Runtime[1] | ^meta::protocols::pure::v1_27_0::metamodel::LegacyRuntime( _type = 'legacyRuntime', - connections = $pureRuntime.connections->map(con|$con->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::runtime::transformConnection($extensions)) + connections = $pureRuntime.connectionStores->map(conn|$conn.connection->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$conn.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) ); ]) } @@ -39,21 +40,21 @@ function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::runtime: $connection->match($extensions.serializerExtension('v1_27_0')->cast(@meta::protocols::pure::v1_27_0::extension::SerializerExtension_v1_27_0).transfers_store_transformConnection->concatenate( $extensions.serializerExtension('v1_27_0')->cast(@meta::protocols::pure::v1_27_0::extension::SerializerExtension_v1_27_0).transfers_store_transformConnection2->map(f | $f->eval($extensions)))->concatenate( [ - - model:meta::pure::mapping::modelToModel::ModelConnection[1] | $model->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connection::transformModelConnection(), - j:meta::pure::mapping::modelToModel::JsonModelConnection[1] | $j->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), - x:meta::pure::mapping::modelToModel::XmlModelConnection[1] | $x->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), - c:meta::pure::mapping::modelToModel::ModelChainConnection[1] | $c->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connection::transformChainConnection(), - - other: meta::pure::runtime::Connection[1] | let failureClass = $other->class()->toString(); + model:meta::external::store::model::ModelConnection[1] | $model->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connection::transformModelConnection(), + j:meta::external::store::model::JsonModelConnection[1] | $j->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), + x:meta::external::store::model::XmlModelConnection[1] | $x->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), + c:meta::external::store::model::ModelChainConnection[1] | $c->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connection::transformChainConnection(), + + + other: meta::core::runtime::Connection[1] | let failureClass = $other->class()->toString(); fail('' + $failureClass + ' Connection type not supported Yet!'); @meta::protocols::pure::v1_27_0::metamodel::runtime::Connection; ])->toOneMany() ); } -function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::pure::mapping::modelToModel::ModelConnection[1]):meta::protocols::pure::v1_27_0::metamodel::mapping::modelToModel::ModelConnection[1] +function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::external::store::model::ModelConnection[1]):meta::protocols::pure::v1_27_0::metamodel::mapping::modelToModel::ModelConnection[1] { let instances = $modelConnection.instances->keyValues(); ^meta::protocols::pure::v1_27_0::metamodel::mapping::modelToModel::ModelConnection( element = 'ModelStore', @@ -61,7 +62,7 @@ function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connecti input = ^meta::protocols::pure::v1_27_0::metamodel::mapping::modelToModel::ModelStringInput(_type='ModelStringInput', class=$instances->at(0).first->elementToPath(), instances=$instances.second.values->map(i| $i->toJsonBeta()))); } -function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::pure::mapping::modelToModel::JsonModelConnection[1]):meta::protocols::pure::v1_27_0::metamodel::mapping::modelToModel::JsonModelConnection[1] +function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::external::store::model::JsonModelConnection[1]):meta::protocols::pure::v1_27_0::metamodel::mapping::modelToModel::JsonModelConnection[1] { ^meta::protocols::pure::v1_27_0::metamodel::mapping::modelToModel::JsonModelConnection( element = 'ModelStore', @@ -71,7 +72,7 @@ function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::pure::mapping::modelToModel::XmlModelConnection[1]):meta::protocols::pure::v1_27_0::metamodel::mapping::modelToModel::XmlModelConnection[1] +function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::external::store::model::XmlModelConnection[1]):meta::protocols::pure::v1_27_0::metamodel::mapping::modelToModel::XmlModelConnection[1] { ^meta::protocols::pure::v1_27_0::metamodel::mapping::modelToModel::XmlModelConnection( element = 'ModelStore', @@ -81,11 +82,11 @@ function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::pure::mapping::modelToModel::ModelChainConnection[1]):meta::protocols::pure::v1_27_0::metamodel::mapping::modelToModel::ModelChainConnection[1] +function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::external::store::model::ModelChainConnection[1]):meta::protocols::pure::v1_27_0::metamodel::mapping::modelToModel::ModelChainConnection[1] { ^meta::protocols::pure::v1_27_0::metamodel::mapping::modelToModel::ModelChainConnection( element = 'ModelStore', _type = 'ModelChainConnection', mappings = $modelChainConnection.mappings->map(m | $m->elementToPath()) ) -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/transfers/valueSpecification.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/transfers/valueSpecification.pure index a56b8662929..a69a53c7f15 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/transfers/valueSpecification.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_27_0/transfers/valueSpecification.pure @@ -429,7 +429,7 @@ function <> meta::protocols::pure::v1_27_0::transformation::from _type = 'packageableElementPtr', fullPath = $m->elementToPath()->toOne() ), - r:meta::pure::runtime::Runtime[1]| + r:meta::core::runtime::Runtime[1]| ^meta::protocols::pure::v1_27_0::metamodel::valueSpecification::raw::RuntimeInstance ( _type = 'runtimeInstance', diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/extension/extension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/extension/extension.pure index a5ddde45f4d..0552cccb65e 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/extension/extension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/extension/extension.pure @@ -14,6 +14,7 @@ import meta::pure::mapping::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -29,25 +30,25 @@ Class meta::protocols::pure::v1_28_0::extension::SerializerExtension_v1_28_0 ext } : ModuleSerializerExtension[0..1]; transfers_execute_transformActivity : Function<{Nil[1] -> meta::pure::mapping::Activity[1]}>[*]; - + transfers_mapping_transformMapping : Function<{SetImplementation[1]->Boolean[1]}>[*]; transfers_mapping_transformSetImplementation : Function<{Mapping[1]->Function<{Nil[1]->meta::protocols::pure::v1_28_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformSetImplementation2 : Function<{Mapping[1], meta::pure::extension::Extension[*] ->Function<{Nil[1]->meta::protocols::pure::v1_28_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformAssociationImplementation : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_28_0::metamodel::mapping::AssociationMapping[1]}>[*]}>[0..1]; transfers_valueSpecification_transformAny : Function<{String[*],Map>[1], Multiplicity[1], FunctionExpression[0..1], Boolean[1], meta::pure::extension::Extension[*]->Function<{Nil[1]->meta::protocols::pure::v1_28_0::metamodel::valueSpecification::ValueSpecification[1]}>[*]}>[0..1]; - + transfers_executionPlan_transformNode : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_28_0::metamodel::executionPlan::ExecutionNode[1]}>[*]}>[0..1]; transfers_executionPlan_transformNode_GraphFetchM2MExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_28_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformNode_StoreStreamReadingExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_28_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformResultType : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_28_0::metamodel::executionPlan::ResultType[1]}>[*]}>[0..1]; transfers_executionPlan_transformSetImplementation : PairBoolean[1]}>, Function<{PropertyMapping[1]->Map>[1]}>>[0..1]; - + transfers_store_transformStore : Function<{Nil[1]->meta::protocols::pure::v1_28_0::metamodel::store::Store[1]}>[*]; transfers_store_transformStore2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_28_0::metamodel::store::Store[1]}>[*]}>[0..1]; transfers_store_transformConnection : Function<{Nil[1]->meta::protocols::pure::v1_28_0::metamodel::runtime::Connection[1]}>[*]; transfers_store_transformConnection2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_28_0::metamodel::runtime::Connection[1]}>[*]}>[0..1]; - + scan_buildBasePureModel_buildPureModelFromMapping1 : Function<{Nil[1]->Store[*]}>[*]; scan_buildBasePureModel_buildPureModelFromMapping2 : Store[*]; @@ -58,7 +59,7 @@ Class meta::protocols::pure::v1_28_0::extension::SerializerExtension_v1_28_0 ext scan_buildBasePureModel_findAllTypesFromMapping : Function<{Nil[1]->Type[*]}>[*]; scan_buildBasePureModel_extractStores : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; scan_buildBasePureModel_processProperties : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; - + invocation_execution_execute1 : Function<{ExecutionContext[1]->Boolean[1]}>[*]; invocation_execution_execute2_pre : PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]; invocation_execution_execute2_pre2 : Function<{meta::pure::extension::Extension[*] -> PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]}>[0..1]; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/invocations/execution.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/invocations/execution.pure index 7d70e25d49f..44765df9bf0 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/invocations/execution.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/invocations/execution.pure @@ -19,6 +19,7 @@ import meta::protocols::pure::v1_28_0::transformation::fromPureGraph::runtime::* import meta::pure::functions::io::http::*; import meta::protocols::pure::v1_28_0::invocation::execution::execute::*; import meta::protocols::pure::v1_28_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -130,13 +131,13 @@ function meta::protocols::pure::v1_28_0::invocation::execution::execute::buildEx clientVersion = 'v1_28_0', function = transformLambda($f, $extensions), mapping = if($m.name->isEmpty(), |[], |$m->toOne()->elementToPath()), - runtime = if($runtime.connections->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), + runtime = if($runtime.connectionStores->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $runtime.connections.element->cast(@meta::pure::store::Store) + |let stores = $runtime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() - ->filter(s | !$s->instanceOf(meta::pure::mapping::modelToModel::ModelStore)) + ->filter(s | !$s->instanceOf(meta::external::store::model::ModelStore)) ->map(c|^meta::protocols::pure::v1_28_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_28_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); let transformedMappings = $mappings->map(m|^meta::protocols::pure::v1_28_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_28_0::metamodel::PackageableElementType.MAPPING,path=$m->elementToPath())); ^meta::protocols::pure::v1_28_0::metamodel::PureModelContextPointer @@ -207,7 +208,7 @@ function meta::protocols::pure::v1_28_0::invocation::execution::execute::legendE let resultClassType=$typeAndresultJSON.first; let res= legendBuildResultFromJSON($resultJSON, $resultClassType, $m, $pureRuntime, $context, $extensions); - + let values = $res.values->cast(@T); ^Result(values=$values, activities=$res.activities); } @@ -260,4 +261,4 @@ function meta::protocols::pure::v1_28_0::invocation::execution::execute::alloyEx assertEq(200, $resp.statusCode, | $resp.statusCode->toString()+' \''+$resp.entity+'\''); $resp.entity; -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/scan/buildBasePureModel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/scan/buildBasePureModel.pure index b56e3c1be6e..451054e88a9 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/scan/buildBasePureModel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/scan/buildBasePureModel.pure @@ -16,6 +16,7 @@ import meta::protocols::*; import meta::json::*; import meta::pure::store::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::milestoning::*; import meta::pure::mapping::*; import meta::protocols::pure::v1_28_0::transformation::fromPureGraph::*; @@ -396,4 +397,4 @@ function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::buildPur function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::buildPureModelFromPackage(ps:Package[*], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_28_0::metamodel::PureModelContextData[1] { meta::protocols::pure::v1_28_0::transformation::fromPureGraph::buildBasePureModelFromPackage($ps, '-1', $extensions); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/transfers/executionPlan.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/transfers/executionPlan.pure index dc96bdfec9b..7e8f9c97993 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/transfers/executionPlan.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/transfers/executionPlan.pure @@ -36,8 +36,8 @@ function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::executio { let n = $node->match($extensions.serializerExtension('v1_28_0')->cast(@meta::protocols::pure::v1_28_0::extension::SerializerExtension_v1_28_0).transfers_executionPlan_transformNode->map(f|$f->eval($mapping, $extensions))->concatenate( [ - - rel:meta::pure::mapping::modelToModel::ModelToModelExecutionNode[1]| + + rel:meta::external::store::model::ModelToModelExecutionNode[1]| ^meta::protocols::pure::v1_28_0::metamodel::executionPlan::ModelToModelExecutionNode( _type = 'm2m', resultType = $rel.resultType->meta::protocols::pure::v1_28_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), @@ -46,7 +46,7 @@ function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::executio jsonPropertyPaths = $rel.jsonPropertyPaths->map(j|$j->meta::protocols::pure::v1_28_0::transformation::fromPureGraph::transformLambda($extensions)), pathToMapping = $rel.mapping->elementToPath()->toOne(), pathToClasses = $rel.classes->map(c|$c->elementToPath()), - connection = $rel.connection->cast(@meta::pure::mapping::modelToModel::ModelConnection)->meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connection::transformModelConnection(), + connection = $rel.connection->cast(@meta::external::store::model::ModelConnection)->meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connection::transformModelConnection(), pureModelContextData = $rel.mapping->meta::protocols::pure::v1_28_0::transformation::fromPureGraph::buildBasePureModelFromMapping( {m:meta::pure::mapping::Mapping[1], p: meta::protocols::Protocol[1] |[]}, $extensions).second ), platform:meta::pure::executionPlan::PureExpressionPlatformExecutionNode[1]| @@ -152,7 +152,7 @@ function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::executio resultType = $f.resultType->transformResultType($mapping, $extensions), resultSizeRange = $f.resultSizeRange->isEmpty()->if(|[],|$f.resultSizeRange->toOne()->meta::protocols::pure::v1_28_0::transformation::fromPureGraph::domain::transformMultiplicity()) ), - v:meta::pure::executionPlan::VariableResolutionExecutionNode[1]| + v:meta::pure::executionPlan::VariableResolutionExecutionNode[1]| ^meta::protocols::pure::v1_28_0::metamodel::executionPlan::VariableResolutionExecutionNode( _type = 'varResolution', resultType = $v.resultType->meta::protocols::pure::v1_28_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), @@ -275,7 +275,7 @@ function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::executio enumMapping = $extensions.serializerExtension('v1_28_0')->cast(@meta::protocols::pure::v1_28_0::extension::SerializerExtension_v1_28_0).transfers_executionPlan_transformSetImplementation ->filter(v|$v.first->eval($p))->map(x|$x.second->eval($p))->first() ) - + ) ); diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/transfers/mapping.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/transfers/mapping.pure index a7d86a116ca..0760f53be24 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/transfers/mapping.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/transfers/mapping.pure @@ -18,6 +18,7 @@ import meta::flatten::metamodel::*; import meta::protocols::pure::v1_28_0::transformation::fromPureGraph::mapping::modelToModel::*; import meta::pure::mapping::xStore::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_28_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_28_0::transformation::fromPureGraph::mapping::csv::*; import meta::protocols::pure::v1_28_0::transformation::fromPureGraph::mapping::*; @@ -126,7 +127,7 @@ function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::mapping: ) ) ); - + if($operation == meta::protocols::pure::v1_28_0::metamodel::mapping::MappingOperation.MERGE, | ^meta::protocols::pure::v1_28_0::metamodel::mapping::MergeOperationClassMapping ( diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/transfers/metamodel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/transfers/metamodel.pure index ab8c66c5077..b54c42e23c7 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/transfers/metamodel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/transfers/metamodel.pure @@ -14,6 +14,7 @@ ###Pure import meta::pure::metamodel::serialization::grammar::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::metamodel::constraint::*; import meta::protocols::pure::v1_28_0::transformation::fromPureGraph::*; @@ -256,7 +257,7 @@ function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::transfor package = if($p.package->isEmpty(),|[],|$p.package->toOne()->elementToPath()), stereotypes = $p.p_stereotypes->map(s|$s.value), tags = $p.p_tags->map(t|$t.value) - + ) - -} \ No newline at end of file + +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/transfers/store.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/transfers/store.pure index 9a5f48ccbf9..25c4f089e7d 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/transfers/store.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/transfers/store.pure @@ -14,6 +14,7 @@ import meta::pure::extension::*; import meta::json::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::runtime::transformRuntime(pureRuntime:Runtime[1], extensions:Extension[*]):meta::protocols::pure::v1_28_0::metamodel::Runtime[1] @@ -21,7 +22,7 @@ function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::runtime: $pureRuntime->match([ legacy:Runtime[1] | ^meta::protocols::pure::v1_28_0::metamodel::LegacyRuntime( _type = 'legacyRuntime', - connections = $pureRuntime.connections->map(con|$con->meta::protocols::pure::v1_28_0::transformation::fromPureGraph::runtime::transformConnection($extensions)) + connections = $pureRuntime.connectionStores->map(conn|$conn.connection->meta::protocols::pure::v1_28_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$conn.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) ); ]) } @@ -39,21 +40,21 @@ function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::runtime: $connection->match($extensions.serializerExtension('v1_28_0')->cast(@meta::protocols::pure::v1_28_0::extension::SerializerExtension_v1_28_0).transfers_store_transformConnection->concatenate( $extensions.serializerExtension('v1_28_0')->cast(@meta::protocols::pure::v1_28_0::extension::SerializerExtension_v1_28_0).transfers_store_transformConnection2->map(f | $f->eval($extensions)))->concatenate( [ - - model:meta::pure::mapping::modelToModel::ModelConnection[1] | $model->meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connection::transformModelConnection(), - j:meta::pure::mapping::modelToModel::JsonModelConnection[1] | $j->meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), - x:meta::pure::mapping::modelToModel::XmlModelConnection[1] | $x->meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), - c:meta::pure::mapping::modelToModel::ModelChainConnection[1] | $c->meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connection::transformChainConnection(), - - other: meta::pure::runtime::Connection[1] | let failureClass = $other->class()->toString(); + model:meta::external::store::model::ModelConnection[1] | $model->meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connection::transformModelConnection(), + j:meta::external::store::model::JsonModelConnection[1] | $j->meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), + x:meta::external::store::model::XmlModelConnection[1] | $x->meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), + c:meta::external::store::model::ModelChainConnection[1] | $c->meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connection::transformChainConnection(), + + + other: meta::core::runtime::Connection[1] | let failureClass = $other->class()->toString(); fail('' + $failureClass + ' Connection type not supported Yet!'); @meta::protocols::pure::v1_28_0::metamodel::runtime::Connection; ])->toOneMany() ); } -function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::pure::mapping::modelToModel::ModelConnection[1]):meta::protocols::pure::v1_28_0::metamodel::mapping::modelToModel::ModelConnection[1] +function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::external::store::model::ModelConnection[1]):meta::protocols::pure::v1_28_0::metamodel::mapping::modelToModel::ModelConnection[1] { let instances = $modelConnection.instances->keyValues(); ^meta::protocols::pure::v1_28_0::metamodel::mapping::modelToModel::ModelConnection( element = 'ModelStore', @@ -61,7 +62,7 @@ function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connecti input = ^meta::protocols::pure::v1_28_0::metamodel::mapping::modelToModel::ModelStringInput(_type='ModelStringInput', class=$instances->at(0).first->elementToPath(), instances=$instances.second.values->map(i| $i->toJsonBeta()))); } -function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::pure::mapping::modelToModel::JsonModelConnection[1]):meta::protocols::pure::v1_28_0::metamodel::mapping::modelToModel::JsonModelConnection[1] +function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::external::store::model::JsonModelConnection[1]):meta::protocols::pure::v1_28_0::metamodel::mapping::modelToModel::JsonModelConnection[1] { ^meta::protocols::pure::v1_28_0::metamodel::mapping::modelToModel::JsonModelConnection( element = 'ModelStore', @@ -71,7 +72,7 @@ function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::pure::mapping::modelToModel::XmlModelConnection[1]):meta::protocols::pure::v1_28_0::metamodel::mapping::modelToModel::XmlModelConnection[1] +function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::external::store::model::XmlModelConnection[1]):meta::protocols::pure::v1_28_0::metamodel::mapping::modelToModel::XmlModelConnection[1] { ^meta::protocols::pure::v1_28_0::metamodel::mapping::modelToModel::XmlModelConnection( element = 'ModelStore', @@ -81,11 +82,11 @@ function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::pure::mapping::modelToModel::ModelChainConnection[1]):meta::protocols::pure::v1_28_0::metamodel::mapping::modelToModel::ModelChainConnection[1] +function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::external::store::model::ModelChainConnection[1]):meta::protocols::pure::v1_28_0::metamodel::mapping::modelToModel::ModelChainConnection[1] { ^meta::protocols::pure::v1_28_0::metamodel::mapping::modelToModel::ModelChainConnection( element = 'ModelStore', _type = 'ModelChainConnection', mappings = $modelChainConnection.mappings->map(m | $m->elementToPath()) ) -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/transfers/valueSpecification.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/transfers/valueSpecification.pure index 30a41e3e9b3..559601f1529 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/transfers/valueSpecification.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_28_0/transfers/valueSpecification.pure @@ -454,7 +454,7 @@ function <> meta::protocols::pure::v1_28_0::transformation::from _type = 'packageableElementPtr', fullPath = $m->elementToPath()->toOne() ), - r:meta::pure::runtime::Runtime[1]| + r:meta::core::runtime::Runtime[1]| ^meta::protocols::pure::v1_28_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/extension/extension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/extension/extension.pure index 681b1aed888..30789e712d7 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/extension/extension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/extension/extension.pure @@ -14,6 +14,7 @@ import meta::pure::mapping::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -29,25 +30,25 @@ Class meta::protocols::pure::v1_29_0::extension::SerializerExtension_v1_29_0 ext } : ModuleSerializerExtension[0..1]; transfers_execute_transformActivity : Function<{Nil[1] -> meta::pure::mapping::Activity[1]}>[*]; - + transfers_mapping_transformMapping : Function<{SetImplementation[1]->Boolean[1]}>[*]; transfers_mapping_transformSetImplementation : Function<{Mapping[1]->Function<{Nil[1]->meta::protocols::pure::v1_29_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformSetImplementation2 : Function<{Mapping[1], meta::pure::extension::Extension[*] ->Function<{Nil[1]->meta::protocols::pure::v1_29_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformAssociationImplementation : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_29_0::metamodel::mapping::AssociationMapping[1]}>[*]}>[0..1]; transfers_valueSpecification_transformAny : Function<{String[*],Map>[1], Multiplicity[1], FunctionExpression[0..1], Boolean[1], meta::pure::extension::Extension[*]->Function<{Nil[1]->meta::protocols::pure::v1_29_0::metamodel::valueSpecification::ValueSpecification[1]}>[*]}>[0..1]; - + transfers_executionPlan_transformNode : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_29_0::metamodel::executionPlan::ExecutionNode[1]}>[*]}>[0..1]; transfers_executionPlan_transformNode_GraphFetchM2MExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_29_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformNode_StoreStreamReadingExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_29_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformResultType : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_29_0::metamodel::executionPlan::ResultType[1]}>[*]}>[0..1]; transfers_executionPlan_transformSetImplementation : PairBoolean[1]}>, Function<{PropertyMapping[1]->Map>[1]}>>[0..1]; - + transfers_store_transformStore : Function<{Nil[1]->meta::protocols::pure::v1_29_0::metamodel::store::Store[1]}>[*]; transfers_store_transformStore2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_29_0::metamodel::store::Store[1]}>[*]}>[0..1]; transfers_store_transformConnection : Function<{Nil[1]->meta::protocols::pure::v1_29_0::metamodel::runtime::Connection[1]}>[*]; transfers_store_transformConnection2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_29_0::metamodel::runtime::Connection[1]}>[*]}>[0..1]; - + scan_buildBasePureModel_buildPureModelFromMapping1 : Function<{Nil[1]->Store[*]}>[*]; scan_buildBasePureModel_buildPureModelFromMapping2 : Store[*]; @@ -58,7 +59,7 @@ Class meta::protocols::pure::v1_29_0::extension::SerializerExtension_v1_29_0 ext scan_buildBasePureModel_findAllTypesFromMapping : Function<{Nil[1]->Type[*]}>[*]; scan_buildBasePureModel_extractStores : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; scan_buildBasePureModel_processProperties : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; - + invocation_execution_execute1 : Function<{ExecutionContext[1]->Boolean[1]}>[*]; invocation_execution_execute2_pre : PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]; invocation_execution_execute2_pre2 : Function<{meta::pure::extension::Extension[*] -> PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]}>[0..1]; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/invocations/execution.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/invocations/execution.pure index 9df0405c82e..0c8e4f3d0b0 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/invocations/execution.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/invocations/execution.pure @@ -19,6 +19,7 @@ import meta::protocols::pure::v1_29_0::transformation::fromPureGraph::runtime::* import meta::pure::functions::io::http::*; import meta::protocols::pure::v1_29_0::invocation::execution::execute::*; import meta::protocols::pure::v1_29_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -135,13 +136,13 @@ function meta::protocols::pure::v1_29_0::invocation::execution::execute::buildEx clientVersion = 'v1_29_0', function = transformLambda($f, $extensions), mapping = if($m.name->isEmpty(), |[], |$m->toOne()->elementToPath()), - runtime = if($runtime.connections->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), + runtime = if($runtime.connectionStores->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $runtime.connections.element->cast(@meta::pure::store::Store) + |let stores = $runtime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() - ->filter(s | !$s->instanceOf(meta::pure::mapping::modelToModel::ModelStore)) + ->filter(s | !$s->instanceOf(meta::external::store::model::ModelStore)) ->map(c|^meta::protocols::pure::v1_29_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_29_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); let transformedMappings = $mappings->map(m|^meta::protocols::pure::v1_29_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_29_0::metamodel::PackageableElementType.MAPPING,path=$m->elementToPath())); ^meta::protocols::pure::v1_29_0::metamodel::PureModelContextPointer @@ -213,7 +214,7 @@ function meta::protocols::pure::v1_29_0::invocation::execution::execute::legendE let resultClassType=$typeAndresultJSON.first; let res= legendBuildResultFromJSON($resultJSON, $resultClassType, $m, $pureRuntime, $context, $extensions); - + let values = $res.values->cast(@T); ^Result(values=$values, activities=$res.activities); } @@ -266,4 +267,4 @@ function meta::protocols::pure::v1_29_0::invocation::execution::execute::alloyEx assertEq(200, $resp.statusCode, | $resp.statusCode->toString()+' \''+$resp.entity+'\''); $resp.entity; -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/invocations/testBuildExecutionInput.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/invocations/testBuildExecutionInput.pure index 6c2f8906754..689c2eeab1a 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/invocations/testBuildExecutionInput.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/invocations/testBuildExecutionInput.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::extension::*; import meta::protocols::pure::v1_29_0::invocation::execution::*; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/scan/buildBasePureModel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/scan/buildBasePureModel.pure index a9c2e06dff4..38cd4ca7bb2 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/scan/buildBasePureModel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/scan/buildBasePureModel.pure @@ -16,6 +16,7 @@ import meta::protocols::*; import meta::json::*; import meta::pure::store::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::milestoning::*; import meta::pure::mapping::*; import meta::protocols::pure::v1_29_0::transformation::fromPureGraph::*; @@ -396,4 +397,4 @@ function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::buildPur function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::buildPureModelFromPackage(ps:Package[*], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_29_0::metamodel::PureModelContextData[1] { meta::protocols::pure::v1_29_0::transformation::fromPureGraph::buildBasePureModelFromPackage($ps, '-1', $extensions); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/transfers/executionPlan.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/transfers/executionPlan.pure index 9a166f95f01..04803fd8e06 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/transfers/executionPlan.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/transfers/executionPlan.pure @@ -36,8 +36,8 @@ function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::executio { let n = $node->match($extensions.serializerExtension('v1_29_0')->cast(@meta::protocols::pure::v1_29_0::extension::SerializerExtension_v1_29_0).transfers_executionPlan_transformNode->map(f|$f->eval($mapping, $extensions))->concatenate( [ - - rel:meta::pure::mapping::modelToModel::ModelToModelExecutionNode[1]| + + rel:meta::external::store::model::ModelToModelExecutionNode[1]| ^meta::protocols::pure::v1_29_0::metamodel::executionPlan::ModelToModelExecutionNode( _type = 'm2m', resultType = $rel.resultType->meta::protocols::pure::v1_29_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), @@ -46,7 +46,7 @@ function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::executio jsonPropertyPaths = $rel.jsonPropertyPaths->map(j|$j->meta::protocols::pure::v1_29_0::transformation::fromPureGraph::transformLambda($extensions)), pathToMapping = $rel.mapping->elementToPath()->toOne(), pathToClasses = $rel.classes->map(c|$c->elementToPath()), - connection = $rel.connection->cast(@meta::pure::mapping::modelToModel::ModelConnection)->meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connection::transformModelConnection(), + connection = $rel.connection->cast(@meta::external::store::model::ModelConnection)->meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connection::transformModelConnection(), pureModelContextData = $rel.mapping->meta::protocols::pure::v1_29_0::transformation::fromPureGraph::buildBasePureModelFromMapping( {m:meta::pure::mapping::Mapping[1], p: meta::protocols::Protocol[1] |[]}, $extensions).second ), platform:meta::pure::executionPlan::PureExpressionPlatformExecutionNode[1]| @@ -180,7 +180,7 @@ function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::executio resultType = $f.resultType->transformResultType($mapping, $extensions), resultSizeRange = $f.resultSizeRange->isEmpty()->if(|[],|$f.resultSizeRange->toOne()->meta::protocols::pure::v1_29_0::transformation::fromPureGraph::domain::transformMultiplicity()) ), - v:meta::pure::executionPlan::VariableResolutionExecutionNode[1]| + v:meta::pure::executionPlan::VariableResolutionExecutionNode[1]| ^meta::protocols::pure::v1_29_0::metamodel::executionPlan::VariableResolutionExecutionNode( _type = 'varResolution', resultType = $v.resultType->meta::protocols::pure::v1_29_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), @@ -303,7 +303,7 @@ function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::executio enumMapping = $extensions.serializerExtension('v1_29_0')->cast(@meta::protocols::pure::v1_29_0::extension::SerializerExtension_v1_29_0).transfers_executionPlan_transformSetImplementation ->filter(v|$v.first->eval($p))->map(x|$x.second->eval($p))->first() ) - + ) ); diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/transfers/mapping.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/transfers/mapping.pure index 832173c3845..decd10f594c 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/transfers/mapping.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/transfers/mapping.pure @@ -18,6 +18,7 @@ import meta::flatten::metamodel::*; import meta::protocols::pure::v1_29_0::transformation::fromPureGraph::mapping::modelToModel::*; import meta::pure::mapping::xStore::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_29_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_29_0::transformation::fromPureGraph::mapping::csv::*; import meta::protocols::pure::v1_29_0::transformation::fromPureGraph::mapping::*; @@ -126,7 +127,7 @@ function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::mapping: ) ) ); - + if($operation == meta::protocols::pure::v1_29_0::metamodel::mapping::MappingOperation.MERGE, | ^meta::protocols::pure::v1_29_0::metamodel::mapping::MergeOperationClassMapping ( diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/transfers/metamodel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/transfers/metamodel.pure index 48a70a4bb28..81ff5f3ce00 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/transfers/metamodel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/transfers/metamodel.pure @@ -14,6 +14,7 @@ ###Pure import meta::pure::metamodel::serialization::grammar::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::metamodel::constraint::*; import meta::protocols::pure::v1_29_0::transformation::fromPureGraph::*; @@ -256,7 +257,7 @@ function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::transfor package = if($p.package->isEmpty(),|[],|$p.package->toOne()->elementToPath()), stereotypes = $p.p_stereotypes->map(s|$s.value), tags = $p.p_tags->map(t|$t.value) - + ) - -} \ No newline at end of file + +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/transfers/store.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/transfers/store.pure index 8d3c272fae1..25b9be7d396 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/transfers/store.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/transfers/store.pure @@ -14,6 +14,7 @@ import meta::pure::extension::*; import meta::json::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::runtime::transformRuntime(pureRuntime:Runtime[1], extensions:Extension[*]):meta::protocols::pure::v1_29_0::metamodel::Runtime[1] @@ -21,7 +22,7 @@ function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::runtime: $pureRuntime->match([ legacy:Runtime[1] | ^meta::protocols::pure::v1_29_0::metamodel::LegacyRuntime( _type = 'legacyRuntime', - connections = $pureRuntime.connections->map(con|$con->meta::protocols::pure::v1_29_0::transformation::fromPureGraph::runtime::transformConnection($extensions)) + connections = $pureRuntime.connectionStores->map(conn|$conn.connection->meta::protocols::pure::v1_29_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$conn.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) ); ]) } @@ -39,21 +40,21 @@ function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::runtime: $connection->match($extensions.serializerExtension('v1_29_0')->cast(@meta::protocols::pure::v1_29_0::extension::SerializerExtension_v1_29_0).transfers_store_transformConnection->concatenate( $extensions.serializerExtension('v1_29_0')->cast(@meta::protocols::pure::v1_29_0::extension::SerializerExtension_v1_29_0).transfers_store_transformConnection2->map(f | $f->eval($extensions)))->concatenate( [ - - model:meta::pure::mapping::modelToModel::ModelConnection[1] | $model->meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connection::transformModelConnection(), - j:meta::pure::mapping::modelToModel::JsonModelConnection[1] | $j->meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), - x:meta::pure::mapping::modelToModel::XmlModelConnection[1] | $x->meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), - c:meta::pure::mapping::modelToModel::ModelChainConnection[1] | $c->meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connection::transformChainConnection(), - - other: meta::pure::runtime::Connection[1] | let failureClass = $other->class()->toString(); + model:meta::external::store::model::ModelConnection[1] | $model->meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connection::transformModelConnection(), + j:meta::external::store::model::JsonModelConnection[1] | $j->meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), + x:meta::external::store::model::XmlModelConnection[1] | $x->meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), + c:meta::external::store::model::ModelChainConnection[1] | $c->meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connection::transformChainConnection(), + + + other: meta::core::runtime::Connection[1] | let failureClass = $other->class()->toString(); fail('' + $failureClass + ' Connection type not supported Yet!'); @meta::protocols::pure::v1_29_0::metamodel::runtime::Connection; ])->toOneMany() ); } -function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::pure::mapping::modelToModel::ModelConnection[1]):meta::protocols::pure::v1_29_0::metamodel::mapping::modelToModel::ModelConnection[1] +function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::external::store::model::ModelConnection[1]):meta::protocols::pure::v1_29_0::metamodel::mapping::modelToModel::ModelConnection[1] { let instances = $modelConnection.instances->keyValues(); ^meta::protocols::pure::v1_29_0::metamodel::mapping::modelToModel::ModelConnection( element = 'ModelStore', @@ -61,7 +62,7 @@ function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connecti input = ^meta::protocols::pure::v1_29_0::metamodel::mapping::modelToModel::ModelStringInput(_type='ModelStringInput', class=$instances->at(0).first->elementToPath(), instances=$instances.second.values->map(i| $i->toJsonBeta()))); } -function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::pure::mapping::modelToModel::JsonModelConnection[1]):meta::protocols::pure::v1_29_0::metamodel::mapping::modelToModel::JsonModelConnection[1] +function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::external::store::model::JsonModelConnection[1]):meta::protocols::pure::v1_29_0::metamodel::mapping::modelToModel::JsonModelConnection[1] { ^meta::protocols::pure::v1_29_0::metamodel::mapping::modelToModel::JsonModelConnection( element = 'ModelStore', @@ -71,7 +72,7 @@ function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::pure::mapping::modelToModel::XmlModelConnection[1]):meta::protocols::pure::v1_29_0::metamodel::mapping::modelToModel::XmlModelConnection[1] +function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::external::store::model::XmlModelConnection[1]):meta::protocols::pure::v1_29_0::metamodel::mapping::modelToModel::XmlModelConnection[1] { ^meta::protocols::pure::v1_29_0::metamodel::mapping::modelToModel::XmlModelConnection( element = 'ModelStore', @@ -81,11 +82,11 @@ function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::pure::mapping::modelToModel::ModelChainConnection[1]):meta::protocols::pure::v1_29_0::metamodel::mapping::modelToModel::ModelChainConnection[1] +function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::external::store::model::ModelChainConnection[1]):meta::protocols::pure::v1_29_0::metamodel::mapping::modelToModel::ModelChainConnection[1] { ^meta::protocols::pure::v1_29_0::metamodel::mapping::modelToModel::ModelChainConnection( element = 'ModelStore', _type = 'ModelChainConnection', mappings = $modelChainConnection.mappings->map(m | $m->elementToPath()) ) -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/transfers/valueSpecification.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/transfers/valueSpecification.pure index b0eaf2e3401..598fbe726c3 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/transfers/valueSpecification.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_29_0/transfers/valueSpecification.pure @@ -454,7 +454,7 @@ function <> meta::protocols::pure::v1_29_0::transformation::from _type = 'packageableElementPtr', fullPath = $m->elementToPath()->toOne() ), - r:meta::pure::runtime::Runtime[1]| + r:meta::core::runtime::Runtime[1]| ^meta::protocols::pure::v1_29_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/extension/extension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/extension/extension.pure index d03f42f73e3..01d440d1bfa 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/extension/extension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/extension/extension.pure @@ -14,6 +14,7 @@ import meta::pure::mapping::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -29,25 +30,25 @@ Class meta::protocols::pure::v1_30_0::extension::SerializerExtension_v1_30_0 ext } : ModuleSerializerExtension[0..1]; transfers_execute_transformActivity : Function<{Nil[1] -> meta::pure::mapping::Activity[1]}>[*]; - + transfers_mapping_transformMapping : Function<{SetImplementation[1]->Boolean[1]}>[*]; transfers_mapping_transformSetImplementation : Function<{Mapping[1]->Function<{Nil[1]->meta::protocols::pure::v1_30_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformSetImplementation2 : Function<{Mapping[1], meta::pure::extension::Extension[*] ->Function<{Nil[1]->meta::protocols::pure::v1_30_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformAssociationImplementation : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_30_0::metamodel::mapping::AssociationMapping[1]}>[*]}>[0..1]; transfers_valueSpecification_transformAny : Function<{String[*],Map>[1], Multiplicity[1], FunctionExpression[0..1], Boolean[1], meta::pure::extension::Extension[*]->Function<{Nil[1]->meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ValueSpecification[1]}>[*]}>[0..1]; - + transfers_executionPlan_transformNode : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_30_0::metamodel::executionPlan::ExecutionNode[1]}>[*]}>[0..1]; transfers_executionPlan_transformNode_GraphFetchM2MExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_30_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformNode_StoreStreamReadingExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_30_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformResultType : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_30_0::metamodel::executionPlan::ResultType[1]}>[*]}>[0..1]; transfers_executionPlan_transformSetImplementation : PairBoolean[1]}>, Function<{PropertyMapping[1]->Map>[1]}>>[0..1]; - + transfers_store_transformStore : Function<{Nil[1]->meta::protocols::pure::v1_30_0::metamodel::store::Store[1]}>[*]; transfers_store_transformStore2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_30_0::metamodel::store::Store[1]}>[*]}>[0..1]; transfers_store_transformConnection : Function<{Nil[1]->meta::protocols::pure::v1_30_0::metamodel::runtime::Connection[1]}>[*]; transfers_store_transformConnection2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_30_0::metamodel::runtime::Connection[1]}>[*]}>[0..1]; - + scan_buildBasePureModel_buildPureModelFromMapping1 : Function<{Nil[1]->Store[*]}>[*]; scan_buildBasePureModel_buildPureModelFromMapping2 : Store[*]; @@ -58,7 +59,7 @@ Class meta::protocols::pure::v1_30_0::extension::SerializerExtension_v1_30_0 ext scan_buildBasePureModel_findAllTypesFromMapping : Function<{Nil[1]->Type[*]}>[*]; scan_buildBasePureModel_extractStores : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; scan_buildBasePureModel_processProperties : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; - + invocation_execution_execute1 : Function<{ExecutionContext[1]->Boolean[1]}>[*]; invocation_execution_execute2_pre : PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]; invocation_execution_execute2_pre2 : Function<{meta::pure::extension::Extension[*] -> PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]}>[0..1]; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/invocations/execution.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/invocations/execution.pure index 5cf4391a048..7c528e0ee4d 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/invocations/execution.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/invocations/execution.pure @@ -19,6 +19,7 @@ import meta::protocols::pure::v1_30_0::transformation::fromPureGraph::runtime::* import meta::pure::functions::io::http::*; import meta::protocols::pure::v1_30_0::invocation::execution::execute::*; import meta::protocols::pure::v1_30_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -135,13 +136,13 @@ function meta::protocols::pure::v1_30_0::invocation::execution::execute::buildEx clientVersion = 'v1_30_0', function = transformLambda($f, $extensions), mapping = if($m.name->isEmpty(), |[], |$m->toOne()->elementToPath()), - runtime = if($runtime.connections->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), + runtime = if($runtime.connectionStores->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $runtime.connections.element->cast(@meta::pure::store::Store) + |let stores = $runtime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() - ->filter(s | !$s->instanceOf(meta::pure::mapping::modelToModel::ModelStore)) + ->filter(s | !$s->instanceOf(meta::external::store::model::ModelStore)) ->map(c|^meta::protocols::pure::v1_30_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_30_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); let transformedMappings = $mappings->map(m|^meta::protocols::pure::v1_30_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_30_0::metamodel::PackageableElementType.MAPPING,path=$m->elementToPath())); ^meta::protocols::pure::v1_30_0::metamodel::PureModelContextPointer @@ -213,7 +214,7 @@ function meta::protocols::pure::v1_30_0::invocation::execution::execute::legendE let resultClassType=$typeAndresultJSON.first; let res= legendBuildResultFromJSON($resultJSON, $resultClassType, $m, $pureRuntime, $context, $extensions); - + let values = $res.values->cast(@T); ^Result(values=$values, activities=$res.activities); } @@ -266,4 +267,4 @@ function meta::protocols::pure::v1_30_0::invocation::execution::execute::alloyEx assertEq(200, $resp.statusCode, | $resp.statusCode->toString()+' \''+$resp.entity+'\''); $resp.entity; -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/invocations/testBuildExecutionInput.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/invocations/testBuildExecutionInput.pure index 48c8bd09e34..bbcc89d95c1 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/invocations/testBuildExecutionInput.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/invocations/testBuildExecutionInput.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::extension::*; import meta::protocols::pure::v1_30_0::invocation::execution::*; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/scan/buildBasePureModel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/scan/buildBasePureModel.pure index 1f1d0ceef31..db8352407dc 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/scan/buildBasePureModel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/scan/buildBasePureModel.pure @@ -16,6 +16,7 @@ import meta::protocols::*; import meta::json::*; import meta::pure::store::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::milestoning::*; import meta::pure::mapping::*; import meta::protocols::pure::v1_30_0::transformation::fromPureGraph::*; @@ -299,7 +300,7 @@ function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::buildBas let foundClasses = $gm->fold({x, y | let alltype = $x->findAllTypesFromMapping($extensions); ^$y(classes = $y.classes->concatenate($alltype.classes)->removeDuplicates(), enumerations = $y.enumerations->concatenate($alltype.enumerations)->removeDuplicates());}, ^AllTypes()); - + let associations = $foundClasses.classes->findAllAssociations(); let found = ^$foundClasses(classes = $foundClasses.classes->concatenate($associations.properties.genericType.rawType)->removeDuplicates()->cast(@Class)); @@ -396,4 +397,4 @@ function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::buildPur function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::buildPureModelFromPackage(ps:Package[*], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_30_0::metamodel::PureModelContextData[1] { meta::protocols::pure::v1_30_0::transformation::fromPureGraph::buildBasePureModelFromPackage($ps, '-1', $extensions); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/transfers/executionPlan.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/transfers/executionPlan.pure index 4a7df8afcc7..8b3ead371bd 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/transfers/executionPlan.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/transfers/executionPlan.pure @@ -36,8 +36,8 @@ function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::executio { let n = $node->match($extensions.serializerExtension('v1_30_0')->cast(@meta::protocols::pure::v1_30_0::extension::SerializerExtension_v1_30_0).transfers_executionPlan_transformNode->map(f|$f->eval($mapping, $extensions))->concatenate( [ - - rel:meta::pure::mapping::modelToModel::ModelToModelExecutionNode[1]| + + rel:meta::external::store::model::ModelToModelExecutionNode[1]| ^meta::protocols::pure::v1_30_0::metamodel::executionPlan::ModelToModelExecutionNode( _type = 'm2m', resultType = $rel.resultType->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), @@ -46,7 +46,7 @@ function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::executio jsonPropertyPaths = $rel.jsonPropertyPaths->map(j|$j->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::transformLambda($extensions)), pathToMapping = $rel.mapping->elementToPath()->toOne(), pathToClasses = $rel.classes->map(c|$c->elementToPath()), - connection = $rel.connection->cast(@meta::pure::mapping::modelToModel::ModelConnection)->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connection::transformModelConnection(), + connection = $rel.connection->cast(@meta::external::store::model::ModelConnection)->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connection::transformModelConnection(), pureModelContextData = $rel.mapping->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::buildBasePureModelFromMapping( {m:meta::pure::mapping::Mapping[1], p: meta::protocols::Protocol[1] |[]}, $extensions).second ), platform:meta::pure::executionPlan::PureExpressionPlatformExecutionNode[1]| @@ -180,7 +180,7 @@ function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::executio resultType = $f.resultType->transformResultType($mapping, $extensions), resultSizeRange = $f.resultSizeRange->isEmpty()->if(|[],|$f.resultSizeRange->toOne()->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::domain::transformMultiplicity()) ), - v:meta::pure::executionPlan::VariableResolutionExecutionNode[1]| + v:meta::pure::executionPlan::VariableResolutionExecutionNode[1]| ^meta::protocols::pure::v1_30_0::metamodel::executionPlan::VariableResolutionExecutionNode( _type = 'varResolution', resultType = $v.resultType->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), @@ -303,7 +303,7 @@ function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::executio enumMapping = $extensions.serializerExtension('v1_30_0')->cast(@meta::protocols::pure::v1_30_0::extension::SerializerExtension_v1_30_0).transfers_executionPlan_transformSetImplementation ->filter(v|$v.first->eval($p))->map(x|$x.second->eval($p))->first() ) - + ) ); diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/transfers/mapping.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/transfers/mapping.pure index be83f8cb969..4fdc4adf299 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/transfers/mapping.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/transfers/mapping.pure @@ -18,6 +18,7 @@ import meta::flatten::metamodel::*; import meta::protocols::pure::v1_30_0::transformation::fromPureGraph::mapping::modelToModel::*; import meta::pure::mapping::xStore::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_30_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_30_0::transformation::fromPureGraph::mapping::csv::*; import meta::protocols::pure::v1_30_0::transformation::fromPureGraph::mapping::*; @@ -126,7 +127,7 @@ function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::mapping: ) ) ); - + if($operation == meta::protocols::pure::v1_30_0::metamodel::mapping::MappingOperation.MERGE, | ^meta::protocols::pure::v1_30_0::metamodel::mapping::MergeOperationClassMapping ( diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/transfers/metamodel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/transfers/metamodel.pure index 0cf09532706..f9ece63ce39 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/transfers/metamodel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/transfers/metamodel.pure @@ -14,6 +14,7 @@ ###Pure import meta::pure::metamodel::serialization::grammar::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::metamodel::constraint::*; import meta::protocols::pure::v1_30_0::transformation::fromPureGraph::*; @@ -56,7 +57,7 @@ function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::domain:: package = if($class.package->isEmpty(),|[],|$class.package->toOne()->elementToPath()), superTypes = $class.generalizations->map(g | $g.general.rawType->toOne()->elementToPath()), properties = $properties->map(p | $p->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::domain::transformProperty($extensions)), - qualifiedProperties = $qualifiedProperties->map(q|$q->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::domain::transformQualifiedProperty($useAppliedFunction, $extensions)), + qualifiedProperties = $qualifiedProperties->map(q|$q->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::domain::transformQualifiedProperty($useAppliedFunction, $extensions)), originalMilestonedProperties = $originalMilestonedProperties->map(p | $p->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::domain::transformProperty($extensions)), stereotypes = $class.stereotypes->map(s|$s->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::domain::transformStereotype()), taggedValues = $class.taggedValues->map(t|$t->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::domain::transformTaggedValue()) @@ -169,7 +170,7 @@ function <> meta::protocols::pure::v1_30_0::transformation::from parameters = $fType.parameters->tail()->map(p|$p->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification([], newMap([]->cast(@Pair>)), true, $extensions)->cast(@meta::protocols::pure::v1_30_0::metamodel::valueSpecification::Variable)), returnType = $fType.returnType.rawType->toOne()->elementToPath(), returnMultiplicity = $fType.returnMultiplicity->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::domain::transformMultiplicity()->toOne(), - body = $qualifiedProperty->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::valueSpecification::transformFunctionBody($useAppliedFunction, $extensions), + body = $qualifiedProperty->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::valueSpecification::transformFunctionBody($useAppliedFunction, $extensions), stereotypes = $qualifiedProperty.stereotypes->map(s|$s->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::domain::transformStereotype()), taggedValues = $qualifiedProperty.taggedValues->map(t|$t->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::domain::transformTaggedValue()) ); @@ -254,7 +255,7 @@ function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::transfor package = if($p.package->isEmpty(),|[],|$p.package->toOne()->elementToPath()), stereotypes = $p.p_stereotypes->map(s|$s.value), tags = $p.p_tags->map(t|$t.value) - + ) - -} \ No newline at end of file + +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/transfers/store.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/transfers/store.pure index cf89268c6e3..d59f3e24b60 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/transfers/store.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/transfers/store.pure @@ -14,6 +14,7 @@ import meta::pure::extension::*; import meta::json::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::runtime::transformRuntime(pureRuntime:Runtime[1], extensions:Extension[*]):meta::protocols::pure::v1_30_0::metamodel::Runtime[1] @@ -21,7 +22,7 @@ function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::runtime: $pureRuntime->match([ legacy:Runtime[1] | ^meta::protocols::pure::v1_30_0::metamodel::LegacyRuntime( _type = 'legacyRuntime', - connections = $pureRuntime.connections->map(con|$con->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::runtime::transformConnection($extensions)) + connections = $pureRuntime.connectionStores->map(conn|$conn.connection->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$conn.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) ); ]) } @@ -39,21 +40,21 @@ function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::runtime: $connection->match($extensions.serializerExtension('v1_30_0')->cast(@meta::protocols::pure::v1_30_0::extension::SerializerExtension_v1_30_0).transfers_store_transformConnection->concatenate( $extensions.serializerExtension('v1_30_0')->cast(@meta::protocols::pure::v1_30_0::extension::SerializerExtension_v1_30_0).transfers_store_transformConnection2->map(f | $f->eval($extensions)))->concatenate( [ - - model:meta::pure::mapping::modelToModel::ModelConnection[1] | $model->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connection::transformModelConnection(), - j:meta::pure::mapping::modelToModel::JsonModelConnection[1] | $j->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), - x:meta::pure::mapping::modelToModel::XmlModelConnection[1] | $x->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), - c:meta::pure::mapping::modelToModel::ModelChainConnection[1] | $c->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connection::transformChainConnection(), - - other: meta::pure::runtime::Connection[1] | let failureClass = $other->class()->toString(); + model:meta::external::store::model::ModelConnection[1] | $model->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connection::transformModelConnection(), + j:meta::external::store::model::JsonModelConnection[1] | $j->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), + x:meta::external::store::model::XmlModelConnection[1] | $x->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), + c:meta::external::store::model::ModelChainConnection[1] | $c->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connection::transformChainConnection(), + + + other: meta::core::runtime::Connection[1] | let failureClass = $other->class()->toString(); fail('' + $failureClass + ' Connection type not supported Yet!'); @meta::protocols::pure::v1_30_0::metamodel::runtime::Connection; ])->toOneMany() ); } -function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::pure::mapping::modelToModel::ModelConnection[1]):meta::protocols::pure::v1_30_0::metamodel::mapping::modelToModel::ModelConnection[1] +function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::external::store::model::ModelConnection[1]):meta::protocols::pure::v1_30_0::metamodel::mapping::modelToModel::ModelConnection[1] { let instances = $modelConnection.instances->keyValues(); ^meta::protocols::pure::v1_30_0::metamodel::mapping::modelToModel::ModelConnection( element = 'ModelStore', @@ -61,7 +62,7 @@ function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connecti input = ^meta::protocols::pure::v1_30_0::metamodel::mapping::modelToModel::ModelStringInput(_type='ModelStringInput', class=$instances->at(0).first->elementToPath(), instances=$instances.second.values->map(i| $i->toJsonBeta()))); } -function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::pure::mapping::modelToModel::JsonModelConnection[1]):meta::protocols::pure::v1_30_0::metamodel::mapping::modelToModel::JsonModelConnection[1] +function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::external::store::model::JsonModelConnection[1]):meta::protocols::pure::v1_30_0::metamodel::mapping::modelToModel::JsonModelConnection[1] { ^meta::protocols::pure::v1_30_0::metamodel::mapping::modelToModel::JsonModelConnection( element = 'ModelStore', @@ -71,7 +72,7 @@ function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::pure::mapping::modelToModel::XmlModelConnection[1]):meta::protocols::pure::v1_30_0::metamodel::mapping::modelToModel::XmlModelConnection[1] +function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::external::store::model::XmlModelConnection[1]):meta::protocols::pure::v1_30_0::metamodel::mapping::modelToModel::XmlModelConnection[1] { ^meta::protocols::pure::v1_30_0::metamodel::mapping::modelToModel::XmlModelConnection( element = 'ModelStore', @@ -81,11 +82,11 @@ function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::pure::mapping::modelToModel::ModelChainConnection[1]):meta::protocols::pure::v1_30_0::metamodel::mapping::modelToModel::ModelChainConnection[1] +function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::external::store::model::ModelChainConnection[1]):meta::protocols::pure::v1_30_0::metamodel::mapping::modelToModel::ModelChainConnection[1] { ^meta::protocols::pure::v1_30_0::metamodel::mapping::modelToModel::ModelChainConnection( element = 'ModelStore', _type = 'ModelChainConnection', mappings = $modelChainConnection.mappings->map(m | $m->elementToPath()) ) -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/transfers/valueSpecification.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/transfers/valueSpecification.pure index 0fae40aae4d..130d957af6f 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/transfers/valueSpecification.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_30_0/transfers/valueSpecification.pure @@ -346,7 +346,7 @@ function <> meta::protocols::pure::v1_30_0::transformation::from ), v:ValueSpecification[1]|$v->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification($inScope, $open,false,$useAppliedFunction, $extensions), a:Path[1]| - ^meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'path', @@ -369,7 +369,7 @@ function <> meta::protocols::pure::v1_30_0::transformation::from ) ;, a:meta::pure::functions::collection::AggregateValue[1]| - ^meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'aggregateValue', @@ -380,7 +380,7 @@ function <> meta::protocols::pure::v1_30_0::transformation::from ) ), a:meta::pure::tds::AggregateValue[1]| - ^meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'tdsAggregateValue', @@ -394,7 +394,7 @@ function <> meta::protocols::pure::v1_30_0::transformation::from oo:meta::pure::tds::OlapOperation[1]| $oo->match([ oa : meta::pure::tds::TdsOlapAggregation[1]| - ^meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'tdsOlapAggregation', @@ -405,7 +405,7 @@ function <> meta::protocols::pure::v1_30_0::transformation::from ) ), or : meta::pure::tds::TdsOlapRank[1]| - ^meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'tdsOlapRank', @@ -416,7 +416,7 @@ function <> meta::protocols::pure::v1_30_0::transformation::from ) ]), si:meta::pure::tds::SortInformation[1]| - ^meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'tdsSortInformation', @@ -427,7 +427,7 @@ function <> meta::protocols::pure::v1_30_0::transformation::from ) ), co:meta::pure::tds::BasicColumnSpecification[1]| - ^meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'tdsColumnInformation', @@ -438,7 +438,7 @@ function <> meta::protocols::pure::v1_30_0::transformation::from ) ), pair:Pair[1]| - ^meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'pair', @@ -454,8 +454,8 @@ function <> meta::protocols::pure::v1_30_0::transformation::from _type = 'packageableElementPtr', fullPath = $m->elementToPath()->toOne() ), - r:meta::pure::runtime::Runtime[1]| - ^meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ClassInstance + r:meta::core::runtime::Runtime[1]| + ^meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'runtimeInstance', @@ -471,7 +471,7 @@ function <> meta::protocols::pure::v1_30_0::transformation::from values = $l.values->map(la|$la->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::valueSpecification::transformAny($inScope, $open, PureOne, $extensions)) ), a:AlloySerializationConfig[1] | - ^meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'alloySerializationConfig', @@ -487,7 +487,7 @@ function <> meta::protocols::pure::v1_30_0::transformation::from ) ), g:GraphFetchTree[1]| - ^meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'rootGraphFetchTree', @@ -679,11 +679,11 @@ function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::toPureGr let fControlToFunctionMapping = $imports.children->map(e|$e->match([c:Function[1]|$c, a:Any[*]|[]])) ->map(c|pair($c.name->toOne(), $c)) - ->concatenate(meta::pure::router::routing::shouldStopFunctions($extensions)->map(f | pair($f.name->toOne(), $f))) + ->concatenate(meta::pure::router::routing::shouldStopFunctions($extensions)->map(f | pair($f.name->toOne(), $f))) ->concatenate([ pair(meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__TabularDataSet_1_.name->toOne(), meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__TabularDataSet_1_), pair(meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__ExecutionContext_1__TabularDataSet_1_.name->toOne(), meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__ExecutionContext_1__TabularDataSet_1_), - pair(meta::pure::runtime::currentUserId__String_1_.name->toOne(), meta::pure::runtime::currentUserId__String_1_) + pair(meta::core::runtime::currentUserId__String_1_.name->toOne(), meta::core::runtime::currentUserId__String_1_) ]) ->removeDuplicatesBy(p | $p.second) ->newMultiValueMap(); diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/extension/extension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/extension/extension.pure index 8a722d23ec1..a403649c77c 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/extension/extension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/extension/extension.pure @@ -14,6 +14,7 @@ import meta::pure::mapping::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -29,28 +30,28 @@ Class meta::protocols::pure::v1_31_0::extension::SerializerExtension_v1_31_0 ext } : ModuleSerializerExtension[0..1]; transfers_execute_transformActivity : Function<{Nil[1] -> meta::pure::mapping::Activity[1]}>[*]; - + transfers_mapping_transformMapping : Function<{SetImplementation[1]->Boolean[1]}>[*]; transfers_mapping_transformSetImplementation : Function<{Mapping[1]->Function<{Nil[1]->meta::protocols::pure::v1_31_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformSetImplementation2 : Function<{Mapping[1], meta::pure::extension::Extension[*] ->Function<{Nil[1]->meta::protocols::pure::v1_31_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformAssociationImplementation : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_31_0::metamodel::mapping::AssociationMapping[1]}>[*]}>[0..1]; transfers_valueSpecification_transformAny : Function<{String[*],Map>[1], Multiplicity[1], FunctionExpression[0..1], Boolean[1], meta::pure::extension::Extension[*]->Function<{Nil[1]->meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ValueSpecification[1]}>[*]}>[0..1]; - + transfers_executionPlan_transformNode : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_31_0::metamodel::executionPlan::ExecutionNode[1]}>[*]}>[0..1]; transfers_executionPlan_transformNode_GraphFetchM2MExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_31_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformNode_StoreStreamReadingExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_31_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformResultType : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_31_0::metamodel::executionPlan::ResultType[1]}>[*]}>[0..1]; transfers_executionPlan_transformSetImplementation : PairBoolean[1]}>, Function<{PropertyMapping[1]->Map>[1]}>>[0..1]; - + transfers_store_transformStore : Function<{Nil[1]->meta::protocols::pure::v1_31_0::metamodel::store::Store[1]}>[*]; transfers_store_transformStore2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_31_0::metamodel::store::Store[1]}>[*]}>[0..1]; transfers_store_transformConnection : Function<{Nil[1]->meta::protocols::pure::v1_31_0::metamodel::runtime::Connection[1]}>[*]; transfers_store_transformConnection2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_31_0::metamodel::runtime::Connection[1]}>[*]}>[0..1]; - + scan_buildBasePureModel_buildPureModelFromMapping1 : Function<{Nil[1]->Store[*]}>[*]; scan_buildBasePureModel_buildPureModelFromMapping2 : Store[*]; - + scan_buildBasePureModel_getExtraElementsFromStores : Function<{Store[*], meta::pure::extension::Extension[*]->meta::protocols::pure::v1_31_0::metamodel::PackageableElement[*]}>[0..1]; scan_buildPureModelAsText_getAllElementsFromMapping : Function<{Store[*]->Store[*]}>[0..1]; @@ -60,7 +61,7 @@ Class meta::protocols::pure::v1_31_0::extension::SerializerExtension_v1_31_0 ext scan_buildBasePureModel_findAllTypesFromMapping : Function<{Nil[1]->Type[*]}>[*]; scan_buildBasePureModel_extractStores : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; scan_buildBasePureModel_processProperties : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; - + invocation_execution_execute1 : Function<{ExecutionContext[1]->Boolean[1]}>[*]; invocation_execution_execute2_pre : PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]; invocation_execution_execute2_pre2 : Function<{meta::pure::extension::Extension[*] -> PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]}>[0..1]; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/invocations/execution.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/invocations/execution.pure index 6ed4dd67217..6f3ebde6eea 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/invocations/execution.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/invocations/execution.pure @@ -19,6 +19,7 @@ import meta::protocols::pure::v1_31_0::transformation::fromPureGraph::runtime::* import meta::pure::functions::io::http::*; import meta::protocols::pure::v1_31_0::invocation::execution::execute::*; import meta::protocols::pure::v1_31_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -135,13 +136,13 @@ function meta::protocols::pure::v1_31_0::invocation::execution::execute::buildEx clientVersion = 'v1_31_0', function = transformLambda($f, $extensions), mapping = if($m.name->isEmpty(), |[], |$m->toOne()->elementToPath()), - runtime = if($runtime.connections->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), + runtime = if($runtime.connectionStores->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $runtime.connections.element->cast(@meta::pure::store::Store) + |let stores = $runtime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() - ->filter(s | !$s->instanceOf(meta::pure::mapping::modelToModel::ModelStore)) + ->filter(s | !$s->instanceOf(meta::external::store::model::ModelStore)) ->map(c|^meta::protocols::pure::v1_31_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_31_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); let transformedMappings = $mappings->map(m|^meta::protocols::pure::v1_31_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_31_0::metamodel::PackageableElementType.MAPPING,path=$m->elementToPath())); ^meta::protocols::pure::v1_31_0::metamodel::PureModelContextPointer @@ -213,7 +214,7 @@ function meta::protocols::pure::v1_31_0::invocation::execution::execute::legendE let resultClassType=$typeAndresultJSON.first; let res= legendBuildResultFromJSON($resultJSON, $resultClassType, $m, $pureRuntime, $context, $extensions); - + let values = $res.values->cast(@T); ^Result(values=$values, activities=$res.activities); } @@ -266,4 +267,4 @@ function meta::protocols::pure::v1_31_0::invocation::execution::execute::alloyEx assertEq(200, $resp.statusCode, | $resp.statusCode->toString()+' \''+$resp.entity+'\''); $resp.entity; -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/invocations/testBuildExecutionInput.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/invocations/testBuildExecutionInput.pure index 9f2dbc0ad7d..425668a9222 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/invocations/testBuildExecutionInput.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/invocations/testBuildExecutionInput.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::extension::*; import meta::protocols::pure::v1_31_0::invocation::execution::*; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/scan/buildBasePureModel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/scan/buildBasePureModel.pure index e62fdf7b5c4..b67da366d3a 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/scan/buildBasePureModel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/scan/buildBasePureModel.pure @@ -16,6 +16,7 @@ import meta::protocols::*; import meta::json::*; import meta::pure::store::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::milestoning::*; import meta::pure::mapping::*; import meta::protocols::pure::v1_31_0::transformation::fromPureGraph::*; @@ -299,7 +300,7 @@ function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::buildBas let foundClasses = $gm->fold({x, y | let alltype = $x->findAllTypesFromMapping($extensions); ^$y(classes = $y.classes->concatenate($alltype.classes)->removeDuplicates(), enumerations = $y.enumerations->concatenate($alltype.enumerations)->removeDuplicates());}, ^AllTypes()); - + let associations = $foundClasses.classes->findAllAssociations(); let found = ^$foundClasses(classes = $foundClasses.classes->concatenate($associations.properties.genericType.rawType)->removeDuplicates()->cast(@Class)); @@ -397,4 +398,4 @@ function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::buildPur function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::buildPureModelFromPackage(ps:Package[*], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_31_0::metamodel::PureModelContextData[1] { meta::protocols::pure::v1_31_0::transformation::fromPureGraph::buildBasePureModelFromPackage($ps, '-1', $extensions); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/transfers/executionPlan.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/transfers/executionPlan.pure index c71f48de717..1d7aa5ac4f1 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/transfers/executionPlan.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/transfers/executionPlan.pure @@ -36,8 +36,8 @@ function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::executio { let n = $node->match($extensions.serializerExtension('v1_31_0')->cast(@meta::protocols::pure::v1_31_0::extension::SerializerExtension_v1_31_0).transfers_executionPlan_transformNode->map(f|$f->eval($mapping, $extensions))->concatenate( [ - - rel:meta::pure::mapping::modelToModel::ModelToModelExecutionNode[1]| + + rel:meta::external::store::model::ModelToModelExecutionNode[1]| ^meta::protocols::pure::v1_31_0::metamodel::executionPlan::ModelToModelExecutionNode( _type = 'm2m', resultType = $rel.resultType->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), @@ -46,7 +46,7 @@ function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::executio jsonPropertyPaths = $rel.jsonPropertyPaths->map(j|$j->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::transformLambda($extensions)), pathToMapping = $rel.mapping->elementToPath()->toOne(), pathToClasses = $rel.classes->map(c|$c->elementToPath()), - connection = $rel.connection->cast(@meta::pure::mapping::modelToModel::ModelConnection)->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connection::transformModelConnection(), + connection = $rel.connection->cast(@meta::external::store::model::ModelConnection)->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connection::transformModelConnection(), pureModelContextData = $rel.mapping->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::buildBasePureModelFromMapping( {m:meta::pure::mapping::Mapping[1], p: meta::protocols::Protocol[1] |[]}, $extensions).second ), platform:meta::pure::executionPlan::PureExpressionPlatformExecutionNode[1]| @@ -180,7 +180,7 @@ function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::executio resultType = $f.resultType->transformResultType($mapping, $extensions), resultSizeRange = $f.resultSizeRange->isEmpty()->if(|[],|$f.resultSizeRange->toOne()->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::domain::transformMultiplicity()) ), - v:meta::pure::executionPlan::VariableResolutionExecutionNode[1]| + v:meta::pure::executionPlan::VariableResolutionExecutionNode[1]| ^meta::protocols::pure::v1_31_0::metamodel::executionPlan::VariableResolutionExecutionNode( _type = 'varResolution', resultType = $v.resultType->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), @@ -303,7 +303,7 @@ function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::executio enumMapping = $extensions.serializerExtension('v1_31_0')->cast(@meta::protocols::pure::v1_31_0::extension::SerializerExtension_v1_31_0).transfers_executionPlan_transformSetImplementation ->filter(v|$v.first->eval($p))->map(x|$x.second->eval($p))->first() ) - + ) ); @@ -346,7 +346,7 @@ function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::executio enumMapping = if($c.enumMappingId->isEmpty(),|[],|meta::protocols::pure::v1_31_0::transformation::fromPureGraph::executionPlan::transformEnumMapping($mapping->enumerationMappingByName($c.enumMappingId->toOne())->toOne())) ) ) - ), + ), rt:meta::pure::executionPlan::ResultType[1]|^meta::protocols::pure::v1_31_0::metamodel::executionPlan::DataTypeResultType ( _type='dataType', diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/transfers/mapping.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/transfers/mapping.pure index e847b1f3a1d..25f66e351b0 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/transfers/mapping.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/transfers/mapping.pure @@ -18,6 +18,7 @@ import meta::flatten::metamodel::*; import meta::protocols::pure::v1_31_0::transformation::fromPureGraph::mapping::modelToModel::*; import meta::pure::mapping::xStore::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_31_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_31_0::transformation::fromPureGraph::mapping::csv::*; import meta::protocols::pure::v1_31_0::transformation::fromPureGraph::mapping::*; @@ -126,7 +127,7 @@ function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::mapping: ) ) ); - + if($operation == meta::protocols::pure::v1_31_0::metamodel::mapping::MappingOperation.MERGE, | ^meta::protocols::pure::v1_31_0::metamodel::mapping::MergeOperationClassMapping ( diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/transfers/metamodel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/transfers/metamodel.pure index b3ee1680044..2f9e63817a1 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/transfers/metamodel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/transfers/metamodel.pure @@ -14,6 +14,7 @@ ###Pure import meta::pure::metamodel::serialization::grammar::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::metamodel::constraint::*; import meta::protocols::pure::v1_31_0::transformation::fromPureGraph::*; @@ -56,7 +57,7 @@ function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::domain:: package = if($class.package->isEmpty(),|[],|$class.package->toOne()->elementToPath()), superTypes = $class.generalizations->map(g | $g.general.rawType->toOne()->elementToPath()), properties = $properties->map(p | $p->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::domain::transformProperty($extensions)), - qualifiedProperties = $qualifiedProperties->map(q|$q->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::domain::transformQualifiedProperty($useAppliedFunction, $extensions)), + qualifiedProperties = $qualifiedProperties->map(q|$q->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::domain::transformQualifiedProperty($useAppliedFunction, $extensions)), originalMilestonedProperties = $originalMilestonedProperties->map(p | $p->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::domain::transformProperty($extensions)), stereotypes = $class.stereotypes->map(s|$s->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::domain::transformStereotype()), taggedValues = $class.taggedValues->map(t|$t->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::domain::transformTaggedValue()) @@ -169,7 +170,7 @@ function <> meta::protocols::pure::v1_31_0::transformation::from parameters = $fType.parameters->tail()->map(p|$p->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification([], newMap([]->cast(@Pair>)), true, $extensions)->cast(@meta::protocols::pure::v1_31_0::metamodel::valueSpecification::Variable)), returnType = $fType.returnType.rawType->toOne()->elementToPath(), returnMultiplicity = $fType.returnMultiplicity->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::domain::transformMultiplicity()->toOne(), - body = $qualifiedProperty->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::valueSpecification::transformFunctionBody($useAppliedFunction, $extensions), + body = $qualifiedProperty->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::valueSpecification::transformFunctionBody($useAppliedFunction, $extensions), stereotypes = $qualifiedProperty.stereotypes->map(s|$s->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::domain::transformStereotype()), taggedValues = $qualifiedProperty.taggedValues->map(t|$t->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::domain::transformTaggedValue()) ); @@ -254,7 +255,7 @@ function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::transfor package = if($p.package->isEmpty(),|[],|$p.package->toOne()->elementToPath()), stereotypes = $p.p_stereotypes->map(s|$s.value), tags = $p.p_tags->map(t|$t.value) - + ) - -} \ No newline at end of file + +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/transfers/store.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/transfers/store.pure index a736f90fc7b..d1a24769de6 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/transfers/store.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/transfers/store.pure @@ -14,6 +14,7 @@ import meta::pure::extension::*; import meta::json::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::runtime::transformRuntime(pureRuntime:Runtime[1], extensions:Extension[*]):meta::protocols::pure::v1_31_0::metamodel::Runtime[1] @@ -21,7 +22,7 @@ function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::runtime: $pureRuntime->match([ legacy:Runtime[1] | ^meta::protocols::pure::v1_31_0::metamodel::LegacyRuntime( _type = 'legacyRuntime', - connections = $pureRuntime.connections->map(con|$con->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::runtime::transformConnection($extensions)) + connections = $pureRuntime.connectionStores->map(conn|$conn.connection->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$conn.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) ); ]) } @@ -39,21 +40,21 @@ function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::runtime: $connection->match($extensions.serializerExtension('v1_31_0')->cast(@meta::protocols::pure::v1_31_0::extension::SerializerExtension_v1_31_0).transfers_store_transformConnection->concatenate( $extensions.serializerExtension('v1_31_0')->cast(@meta::protocols::pure::v1_31_0::extension::SerializerExtension_v1_31_0).transfers_store_transformConnection2->map(f | $f->eval($extensions)))->concatenate( [ - - model:meta::pure::mapping::modelToModel::ModelConnection[1] | $model->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connection::transformModelConnection(), - j:meta::pure::mapping::modelToModel::JsonModelConnection[1] | $j->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), - x:meta::pure::mapping::modelToModel::XmlModelConnection[1] | $x->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), - c:meta::pure::mapping::modelToModel::ModelChainConnection[1] | $c->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connection::transformChainConnection(), - - other: meta::pure::runtime::Connection[1] | let failureClass = $other->class()->toString(); + model:meta::external::store::model::ModelConnection[1] | $model->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connection::transformModelConnection(), + j:meta::external::store::model::JsonModelConnection[1] | $j->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), + x:meta::external::store::model::XmlModelConnection[1] | $x->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), + c:meta::external::store::model::ModelChainConnection[1] | $c->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connection::transformChainConnection(), + + + other: meta::core::runtime::Connection[1] | let failureClass = $other->class()->toString(); fail('' + $failureClass + ' Connection type not supported Yet!'); @meta::protocols::pure::v1_31_0::metamodel::runtime::Connection; ])->toOneMany() ); } -function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::pure::mapping::modelToModel::ModelConnection[1]):meta::protocols::pure::v1_31_0::metamodel::mapping::modelToModel::ModelConnection[1] +function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::external::store::model::ModelConnection[1]):meta::protocols::pure::v1_31_0::metamodel::mapping::modelToModel::ModelConnection[1] { let instances = $modelConnection.instances->keyValues(); ^meta::protocols::pure::v1_31_0::metamodel::mapping::modelToModel::ModelConnection( element = 'ModelStore', @@ -61,7 +62,7 @@ function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connecti input = ^meta::protocols::pure::v1_31_0::metamodel::mapping::modelToModel::ModelStringInput(_type='ModelStringInput', class=$instances->at(0).first->elementToPath(), instances=$instances.second.values->map(i| $i->toJsonBeta()))); } -function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::pure::mapping::modelToModel::JsonModelConnection[1]):meta::protocols::pure::v1_31_0::metamodel::mapping::modelToModel::JsonModelConnection[1] +function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::external::store::model::JsonModelConnection[1]):meta::protocols::pure::v1_31_0::metamodel::mapping::modelToModel::JsonModelConnection[1] { ^meta::protocols::pure::v1_31_0::metamodel::mapping::modelToModel::JsonModelConnection( element = 'ModelStore', @@ -71,7 +72,7 @@ function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::pure::mapping::modelToModel::XmlModelConnection[1]):meta::protocols::pure::v1_31_0::metamodel::mapping::modelToModel::XmlModelConnection[1] +function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::external::store::model::XmlModelConnection[1]):meta::protocols::pure::v1_31_0::metamodel::mapping::modelToModel::XmlModelConnection[1] { ^meta::protocols::pure::v1_31_0::metamodel::mapping::modelToModel::XmlModelConnection( element = 'ModelStore', @@ -81,11 +82,11 @@ function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::pure::mapping::modelToModel::ModelChainConnection[1]):meta::protocols::pure::v1_31_0::metamodel::mapping::modelToModel::ModelChainConnection[1] +function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::external::store::model::ModelChainConnection[1]):meta::protocols::pure::v1_31_0::metamodel::mapping::modelToModel::ModelChainConnection[1] { ^meta::protocols::pure::v1_31_0::metamodel::mapping::modelToModel::ModelChainConnection( element = 'ModelStore', _type = 'ModelChainConnection', mappings = $modelChainConnection.mappings->map(m | $m->elementToPath()) ) -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/transfers/valueSpecification.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/transfers/valueSpecification.pure index 0f2e22c14fe..07b7bcc664e 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/transfers/valueSpecification.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_31_0/transfers/valueSpecification.pure @@ -346,7 +346,7 @@ function <> meta::protocols::pure::v1_31_0::transformation::from ), v:ValueSpecification[1]|$v->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::valueSpecification::transformValueSpecification($inScope, $open,false,$useAppliedFunction, $extensions), a:Path[1]| - ^meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'path', @@ -369,7 +369,7 @@ function <> meta::protocols::pure::v1_31_0::transformation::from ) ;, a:meta::pure::functions::collection::AggregateValue[1]| - ^meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'aggregateValue', @@ -380,7 +380,7 @@ function <> meta::protocols::pure::v1_31_0::transformation::from ) ), a:meta::pure::tds::AggregateValue[1]| - ^meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'tdsAggregateValue', @@ -394,7 +394,7 @@ function <> meta::protocols::pure::v1_31_0::transformation::from oo:meta::pure::tds::OlapOperation[1]| $oo->match([ oa : meta::pure::tds::TdsOlapAggregation[1]| - ^meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'tdsOlapAggregation', @@ -405,7 +405,7 @@ function <> meta::protocols::pure::v1_31_0::transformation::from ) ), or : meta::pure::tds::TdsOlapRank[1]| - ^meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'tdsOlapRank', @@ -416,7 +416,7 @@ function <> meta::protocols::pure::v1_31_0::transformation::from ) ]), si:meta::pure::tds::SortInformation[1]| - ^meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'tdsSortInformation', @@ -427,7 +427,7 @@ function <> meta::protocols::pure::v1_31_0::transformation::from ) ), co:meta::pure::tds::BasicColumnSpecification[1]| - ^meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'tdsColumnInformation', @@ -438,7 +438,7 @@ function <> meta::protocols::pure::v1_31_0::transformation::from ) ), pair:Pair[1]| - ^meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'pair', @@ -454,8 +454,8 @@ function <> meta::protocols::pure::v1_31_0::transformation::from _type = 'packageableElementPtr', fullPath = $m->elementToPath()->toOne() ), - r:meta::pure::runtime::Runtime[1]| - ^meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ClassInstance + r:meta::core::runtime::Runtime[1]| + ^meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'runtimeInstance', @@ -471,7 +471,7 @@ function <> meta::protocols::pure::v1_31_0::transformation::from values = $l.values->map(la|$la->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::valueSpecification::transformAny($inScope, $open, PureOne, $extensions)) ), a:AlloySerializationConfig[1] | - ^meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'alloySerializationConfig', @@ -487,7 +487,7 @@ function <> meta::protocols::pure::v1_31_0::transformation::from ) ), g:GraphFetchTree[1]| - ^meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'rootGraphFetchTree', @@ -679,11 +679,11 @@ function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::toPureGr let fControlToFunctionMapping = $imports.children->map(e|$e->match([c:Function[1]|$c, a:Any[*]|[]])) ->map(c|pair($c.name->toOne(), $c)) - ->concatenate(meta::pure::router::routing::shouldStopFunctions($extensions)->map(f | pair($f.name->toOne(), $f))) + ->concatenate(meta::pure::router::routing::shouldStopFunctions($extensions)->map(f | pair($f.name->toOne(), $f))) ->concatenate([ pair(meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__TabularDataSet_1_.name->toOne(), meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__TabularDataSet_1_), pair(meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__ExecutionContext_1__TabularDataSet_1_.name->toOne(), meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__ExecutionContext_1__TabularDataSet_1_), - pair(meta::pure::runtime::currentUserId__String_1_.name->toOne(), meta::pure::runtime::currentUserId__String_1_) + pair(meta::core::runtime::currentUserId__String_1_.name->toOne(), meta::core::runtime::currentUserId__String_1_) ]) ->removeDuplicatesBy(p | $p.second) ->newMultiValueMap(); diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/extension/extension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/extension/extension.pure index fe5dd20d947..b55f60b6b19 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/extension/extension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/extension/extension.pure @@ -14,6 +14,7 @@ import meta::pure::mapping::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -29,28 +30,28 @@ Class meta::protocols::pure::v1_32_0::extension::SerializerExtension_v1_32_0 ext } : ModuleSerializerExtension[0..1]; transfers_execute_transformActivity : Function<{Nil[1] -> meta::pure::mapping::Activity[1]}>[*]; - + transfers_mapping_transformMapping : Function<{SetImplementation[1]->Boolean[1]}>[*]; transfers_mapping_transformSetImplementation : Function<{Mapping[1]->Function<{Nil[1]->meta::protocols::pure::v1_32_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformSetImplementation2 : Function<{Mapping[1], meta::pure::extension::Extension[*] ->Function<{Nil[1]->meta::protocols::pure::v1_32_0::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformAssociationImplementation : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_32_0::metamodel::mapping::AssociationMapping[1]}>[*]}>[0..1]; transfers_valueSpecification_transformAny : Function<{String[*],Map>[1], Multiplicity[1], FunctionExpression[0..1], Boolean[1], meta::pure::extension::Extension[*]->Function<{Nil[1]->meta::protocols::pure::v1_32_0::metamodel::valueSpecification::ValueSpecification[1]}>[*]}>[0..1]; - + transfers_executionPlan_transformNode : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_32_0::metamodel::executionPlan::ExecutionNode[1]}>[*]}>[0..1]; transfers_executionPlan_transformNode_GraphFetchM2MExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_32_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformNode_StoreStreamReadingExecutionNode : Function<{Nil[1]->meta::protocols::pure::v1_32_0::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformResultType : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_32_0::metamodel::executionPlan::ResultType[1]}>[*]}>[0..1]; transfers_executionPlan_transformSetImplementation : PairBoolean[1]}>, Function<{PropertyMapping[1]->Map>[1]}>>[0..1]; - + transfers_store_transformStore : Function<{Nil[1]->meta::protocols::pure::v1_32_0::metamodel::store::Store[1]}>[*]; transfers_store_transformStore2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_32_0::metamodel::store::Store[1]}>[*]}>[0..1]; transfers_store_transformConnection : Function<{Nil[1]->meta::protocols::pure::v1_32_0::metamodel::runtime::Connection[1]}>[*]; transfers_store_transformConnection2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::v1_32_0::metamodel::runtime::Connection[1]}>[*]}>[0..1]; - + scan_buildBasePureModel_buildPureModelFromMapping1 : Function<{Nil[1]->Store[*]}>[*]; scan_buildBasePureModel_buildPureModelFromMapping2 : Store[*]; - + scan_buildBasePureModel_getExtraElementsFromStores : Function<{Store[*], meta::pure::extension::Extension[*]->meta::protocols::pure::v1_32_0::metamodel::PackageableElement[*]}>[0..1]; scan_buildPureModelAsText_getAllElementsFromMapping : Function<{Store[*]->Store[*]}>[0..1]; @@ -60,7 +61,7 @@ Class meta::protocols::pure::v1_32_0::extension::SerializerExtension_v1_32_0 ext scan_buildBasePureModel_findAllTypesFromMapping : Function<{Nil[1]->Type[*]}>[*]; scan_buildBasePureModel_extractStores : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; scan_buildBasePureModel_processProperties : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; - + invocation_execution_execute1 : Function<{ExecutionContext[1]->Boolean[1]}>[*]; invocation_execution_execute2_pre : PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]; invocation_execution_execute2_pre2 : Function<{meta::pure::extension::Extension[*] -> PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]}>[0..1]; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/invocations/execution.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/invocations/execution.pure index d96bd81915c..97d4d788ff2 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/invocations/execution.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/invocations/execution.pure @@ -19,6 +19,7 @@ import meta::protocols::pure::v1_32_0::transformation::fromPureGraph::runtime::* import meta::pure::functions::io::http::*; import meta::protocols::pure::v1_32_0::invocation::execution::execute::*; import meta::protocols::pure::v1_32_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -135,13 +136,13 @@ function meta::protocols::pure::v1_32_0::invocation::execution::execute::buildEx clientVersion = 'v1_32_0', function = transformLambda($f, $extensions), mapping = if($m.name->isEmpty(), |[], |$m->toOne()->elementToPath()), - runtime = if($runtime.connections->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), + runtime = if($runtime.connectionStores->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $runtime.connections.element->cast(@meta::pure::store::Store) + |let stores = $runtime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() - ->filter(s | !$s->instanceOf(meta::pure::mapping::modelToModel::ModelStore)) + ->filter(s | !$s->instanceOf(meta::external::store::model::ModelStore)) ->map(c|^meta::protocols::pure::v1_32_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_32_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); let transformedMappings = $mappings->map(m|^meta::protocols::pure::v1_32_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_32_0::metamodel::PackageableElementType.MAPPING,path=$m->elementToPath())); ^meta::protocols::pure::v1_32_0::metamodel::PureModelContextPointer @@ -213,7 +214,7 @@ function meta::protocols::pure::v1_32_0::invocation::execution::execute::legendE let resultClassType=$typeAndresultJSON.first; let res= legendBuildResultFromJSON($resultJSON, $resultClassType, $m, $pureRuntime, $context, $extensions); - + let values = $res.values->cast(@T); ^Result(values=$values, activities=$res.activities); } @@ -266,4 +267,4 @@ function meta::protocols::pure::v1_32_0::invocation::execution::execute::alloyEx assertEq(200, $resp.statusCode, | $resp.statusCode->toString()+' \''+$resp.entity+'\''); $resp.entity; -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/invocations/testBuildExecutionInput.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/invocations/testBuildExecutionInput.pure index 8d8fa10344b..e3135cd356f 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/invocations/testBuildExecutionInput.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/invocations/testBuildExecutionInput.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::extension::*; import meta::protocols::pure::v1_32_0::invocation::execution::*; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/scan/buildBasePureModel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/scan/buildBasePureModel.pure index 0cbfd08eb63..6994a3ee7ee 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/scan/buildBasePureModel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/scan/buildBasePureModel.pure @@ -16,6 +16,7 @@ import meta::protocols::*; import meta::json::*; import meta::pure::store::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::milestoning::*; import meta::pure::mapping::*; import meta::protocols::pure::v1_32_0::transformation::fromPureGraph::*; @@ -299,7 +300,7 @@ function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::buildBas let foundClasses = $gm->fold({x, y | let alltype = $x->findAllTypesFromMapping($extensions); ^$y(classes = $y.classes->concatenate($alltype.classes)->removeDuplicates(), enumerations = $y.enumerations->concatenate($alltype.enumerations)->removeDuplicates());}, ^AllTypes()); - + let associations = $foundClasses.classes->findAllAssociations(); let found = ^$foundClasses(classes = $foundClasses.classes->concatenate($associations.properties.genericType.rawType)->removeDuplicates()->cast(@Class)); @@ -397,4 +398,4 @@ function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::buildPur function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::buildPureModelFromPackage(ps:Package[*], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_32_0::metamodel::PureModelContextData[1] { meta::protocols::pure::v1_32_0::transformation::fromPureGraph::buildBasePureModelFromPackage($ps, '-1', $extensions); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/transfers/executionPlan.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/transfers/executionPlan.pure index ca2d2d3d1c0..c9dce4d34e3 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/transfers/executionPlan.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/transfers/executionPlan.pure @@ -36,8 +36,8 @@ function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::executio { let n = $node->match($extensions.serializerExtension('v1_32_0')->cast(@meta::protocols::pure::v1_32_0::extension::SerializerExtension_v1_32_0).transfers_executionPlan_transformNode->map(f|$f->eval($mapping, $extensions))->concatenate( [ - - rel:meta::pure::mapping::modelToModel::ModelToModelExecutionNode[1]| + + rel:meta::external::store::model::ModelToModelExecutionNode[1]| ^meta::protocols::pure::v1_32_0::metamodel::executionPlan::ModelToModelExecutionNode( _type = 'm2m', resultType = $rel.resultType->meta::protocols::pure::v1_32_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), @@ -46,7 +46,7 @@ function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::executio jsonPropertyPaths = $rel.jsonPropertyPaths->map(j|$j->meta::protocols::pure::v1_32_0::transformation::fromPureGraph::transformLambda($extensions)), pathToMapping = $rel.mapping->elementToPath()->toOne(), pathToClasses = $rel.classes->map(c|$c->elementToPath()), - connection = $rel.connection->cast(@meta::pure::mapping::modelToModel::ModelConnection)->meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connection::transformModelConnection(), + connection = $rel.connection->cast(@meta::external::store::model::ModelConnection)->meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connection::transformModelConnection(), pureModelContextData = $rel.mapping->meta::protocols::pure::v1_32_0::transformation::fromPureGraph::buildBasePureModelFromMapping( {m:meta::pure::mapping::Mapping[1], p: meta::protocols::Protocol[1] |[]}, $extensions).second ), platform:meta::pure::executionPlan::PureExpressionPlatformExecutionNode[1]| @@ -180,7 +180,7 @@ function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::executio resultType = $f.resultType->transformResultType($mapping, $extensions), resultSizeRange = $f.resultSizeRange->isEmpty()->if(|[],|$f.resultSizeRange->toOne()->meta::protocols::pure::v1_32_0::transformation::fromPureGraph::domain::transformMultiplicity()) ), - v:meta::pure::executionPlan::VariableResolutionExecutionNode[1]| + v:meta::pure::executionPlan::VariableResolutionExecutionNode[1]| ^meta::protocols::pure::v1_32_0::metamodel::executionPlan::VariableResolutionExecutionNode( _type = 'varResolution', resultType = $v.resultType->meta::protocols::pure::v1_32_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), @@ -304,7 +304,7 @@ function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::executio enumMapping = $extensions.serializerExtension('v1_32_0')->cast(@meta::protocols::pure::v1_32_0::extension::SerializerExtension_v1_32_0).transfers_executionPlan_transformSetImplementation ->filter(v|$v.first->eval($p))->map(x|$x.second->eval($p))->first() ) - + ) ); @@ -347,7 +347,7 @@ function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::executio enumMapping = if($c.enumMappingId->isEmpty(),|[],|meta::protocols::pure::v1_32_0::transformation::fromPureGraph::executionPlan::transformEnumMapping($mapping->enumerationMappingByName($c.enumMappingId->toOne())->toOne())) ) ) - ), + ), rt:meta::pure::executionPlan::ResultType[1]|^meta::protocols::pure::v1_32_0::metamodel::executionPlan::DataTypeResultType ( _type='dataType', diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/transfers/mapping.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/transfers/mapping.pure index a23305b8770..cb6175baa30 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/transfers/mapping.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/transfers/mapping.pure @@ -18,6 +18,7 @@ import meta::flatten::metamodel::*; import meta::protocols::pure::v1_32_0::transformation::fromPureGraph::mapping::modelToModel::*; import meta::pure::mapping::xStore::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_32_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_32_0::transformation::fromPureGraph::mapping::csv::*; import meta::protocols::pure::v1_32_0::transformation::fromPureGraph::mapping::*; @@ -126,7 +127,7 @@ function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::mapping: ) ) ); - + if($operation == meta::protocols::pure::v1_32_0::metamodel::mapping::MappingOperation.MERGE, | ^meta::protocols::pure::v1_32_0::metamodel::mapping::MergeOperationClassMapping ( diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/transfers/metamodel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/transfers/metamodel.pure index 1403cb20b7b..506b9538457 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/transfers/metamodel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/transfers/metamodel.pure @@ -14,6 +14,7 @@ ###Pure import meta::pure::metamodel::serialization::grammar::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::metamodel::constraint::*; import meta::protocols::pure::v1_32_0::transformation::fromPureGraph::*; @@ -254,7 +255,7 @@ function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::transfor package = if($p.package->isEmpty(),|[],|$p.package->toOne()->elementToPath()), stereotypes = $p.p_stereotypes->map(s|$s.value), tags = $p.p_tags->map(t|$t.value) - + ) - -} \ No newline at end of file + +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/transfers/store.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/transfers/store.pure index 6273fbd0ada..d467cb1c10e 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/transfers/store.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/transfers/store.pure @@ -14,6 +14,7 @@ import meta::pure::extension::*; import meta::json::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::runtime::transformRuntime(pureRuntime:Runtime[1], extensions:Extension[*]):meta::protocols::pure::v1_32_0::metamodel::Runtime[1] @@ -21,7 +22,7 @@ function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::runtime: $pureRuntime->match([ legacy:Runtime[1] | ^meta::protocols::pure::v1_32_0::metamodel::LegacyRuntime( _type = 'legacyRuntime', - connections = $pureRuntime.connections->map(con|$con->meta::protocols::pure::v1_32_0::transformation::fromPureGraph::runtime::transformConnection($extensions)) + connections = $pureRuntime.connectionStores->map(conn|$conn.connection->meta::protocols::pure::v1_32_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$conn.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) ); ]) } @@ -39,21 +40,21 @@ function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::runtime: $connection->match($extensions.serializerExtension('v1_32_0')->cast(@meta::protocols::pure::v1_32_0::extension::SerializerExtension_v1_32_0).transfers_store_transformConnection->concatenate( $extensions.serializerExtension('v1_32_0')->cast(@meta::protocols::pure::v1_32_0::extension::SerializerExtension_v1_32_0).transfers_store_transformConnection2->map(f | $f->eval($extensions)))->concatenate( [ - - model:meta::pure::mapping::modelToModel::ModelConnection[1] | $model->meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connection::transformModelConnection(), - j:meta::pure::mapping::modelToModel::JsonModelConnection[1] | $j->meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), - x:meta::pure::mapping::modelToModel::XmlModelConnection[1] | $x->meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), - c:meta::pure::mapping::modelToModel::ModelChainConnection[1] | $c->meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connection::transformChainConnection(), - - other: meta::pure::runtime::Connection[1] | let failureClass = $other->class()->toString(); + model:meta::external::store::model::ModelConnection[1] | $model->meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connection::transformModelConnection(), + j:meta::external::store::model::JsonModelConnection[1] | $j->meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), + x:meta::external::store::model::XmlModelConnection[1] | $x->meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), + c:meta::external::store::model::ModelChainConnection[1] | $c->meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connection::transformChainConnection(), + + + other: meta::core::runtime::Connection[1] | let failureClass = $other->class()->toString(); fail('' + $failureClass + ' Connection type not supported Yet!'); @meta::protocols::pure::v1_32_0::metamodel::runtime::Connection; ])->toOneMany() ); } -function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::pure::mapping::modelToModel::ModelConnection[1]):meta::protocols::pure::v1_32_0::metamodel::mapping::modelToModel::ModelConnection[1] +function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::external::store::model::ModelConnection[1]):meta::protocols::pure::v1_32_0::metamodel::mapping::modelToModel::ModelConnection[1] { let instances = $modelConnection.instances->keyValues(); ^meta::protocols::pure::v1_32_0::metamodel::mapping::modelToModel::ModelConnection( element = 'ModelStore', @@ -61,7 +62,7 @@ function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connecti input = ^meta::protocols::pure::v1_32_0::metamodel::mapping::modelToModel::ModelStringInput(_type='ModelStringInput', class=$instances->at(0).first->elementToPath(), instances=$instances.second.values->map(i| $i->toJsonBeta()))); } -function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::pure::mapping::modelToModel::JsonModelConnection[1]):meta::protocols::pure::v1_32_0::metamodel::mapping::modelToModel::JsonModelConnection[1] +function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::external::store::model::JsonModelConnection[1]):meta::protocols::pure::v1_32_0::metamodel::mapping::modelToModel::JsonModelConnection[1] { ^meta::protocols::pure::v1_32_0::metamodel::mapping::modelToModel::JsonModelConnection( element = 'ModelStore', @@ -71,7 +72,7 @@ function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::pure::mapping::modelToModel::XmlModelConnection[1]):meta::protocols::pure::v1_32_0::metamodel::mapping::modelToModel::XmlModelConnection[1] +function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::external::store::model::XmlModelConnection[1]):meta::protocols::pure::v1_32_0::metamodel::mapping::modelToModel::XmlModelConnection[1] { ^meta::protocols::pure::v1_32_0::metamodel::mapping::modelToModel::XmlModelConnection( element = 'ModelStore', @@ -81,11 +82,11 @@ function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::pure::mapping::modelToModel::ModelChainConnection[1]):meta::protocols::pure::v1_32_0::metamodel::mapping::modelToModel::ModelChainConnection[1] +function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::external::store::model::ModelChainConnection[1]):meta::protocols::pure::v1_32_0::metamodel::mapping::modelToModel::ModelChainConnection[1] { ^meta::protocols::pure::v1_32_0::metamodel::mapping::modelToModel::ModelChainConnection( element = 'ModelStore', _type = 'ModelChainConnection', mappings = $modelChainConnection.mappings->map(m | $m->elementToPath()) ) -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/transfers/valueSpecification.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/transfers/valueSpecification.pure index c3d2914cb00..ab16cb84cd9 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/transfers/valueSpecification.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_32_0/transfers/valueSpecification.pure @@ -454,7 +454,7 @@ function <> meta::protocols::pure::v1_32_0::transformation::from _type = 'packageableElementPtr', fullPath = $m->elementToPath()->toOne() ), - r:meta::pure::runtime::Runtime[1]| + r:meta::core::runtime::Runtime[1]| ^meta::protocols::pure::v1_32_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', @@ -689,11 +689,11 @@ function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::toPureGr let fControlToFunctionMapping = $imports.children->map(e|$e->match([c:Function[1]|$c, a:Any[*]|[]])) ->map(c|pair($c.name->toOne(), $c)) - ->concatenate(meta::pure::router::routing::shouldStopFunctions($extensions)->map(f | pair($f.name->toOne(), $f))) + ->concatenate(meta::pure::router::routing::shouldStopFunctions($extensions)->map(f | pair($f.name->toOne(), $f))) ->concatenate([ pair(meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__TabularDataSet_1_.name->toOne(), meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__TabularDataSet_1_), pair(meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__ExecutionContext_1__TabularDataSet_1_.name->toOne(), meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__ExecutionContext_1__TabularDataSet_1_), - pair(meta::pure::runtime::currentUserId__String_1_.name->toOne(), meta::pure::runtime::currentUserId__String_1_) + pair(meta::core::runtime::currentUserId__String_1_.name->toOne(), meta::core::runtime::currentUserId__String_1_) ]) ->removeDuplicatesBy(p | $p.second) ->newMultiValueMap(); diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/extension/extension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/extension/extension.pure index 82d846fbe59..7ef54750422 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/extension/extension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/extension/extension.pure @@ -15,6 +15,7 @@ import meta::pure::mapping::*; import meta::pure::store::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::json::*; import meta::protocols::pure::v1_33_0::extension::*; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/invocations/execution.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/invocations/execution.pure index 1adb756abeb..b368d8b0fc5 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/invocations/execution.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/invocations/execution.pure @@ -20,6 +20,7 @@ import meta::pure::functions::io::http::*; import meta::protocols::pure::v1_33_0::invocation::execution::execute::*; import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::context::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::json::*; @@ -135,13 +136,13 @@ function meta::protocols::pure::v1_33_0::invocation::execution::execute::buildEx clientVersion = 'v1_33_0', function = transformLambda($f, $extensions), mapping = if($m.name->isEmpty(), |[], |$m->toOne()->elementToPath()), - runtime = if($runtime.connections->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), + runtime = if($runtime.connectionStores->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $runtime.connections.element->cast(@meta::pure::store::Store) + |let stores = $runtime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() - ->filter(s | !$s->instanceOf(meta::pure::mapping::modelToModel::ModelStore)) + ->filter(s | !$s->instanceOf(meta::external::store::model::ModelStore)) ->map(c|^meta::protocols::pure::v1_33_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_33_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); let transformedMappings = $mappings->map(m|^meta::protocols::pure::v1_33_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_33_0::metamodel::PackageableElementType.MAPPING,path=$m->elementToPath())); ^meta::protocols::pure::v1_33_0::metamodel::PureModelContextPointer diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/invocations/testBuildExecutionInput.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/invocations/testBuildExecutionInput.pure index 3db8d7526c6..acd2efe75d3 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/invocations/testBuildExecutionInput.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/invocations/testBuildExecutionInput.pure @@ -14,6 +14,7 @@ import meta::pure::mapping::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::pure::extension::*; import meta::protocols::pure::v1_33_0::invocation::execution::*; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/scan/buildBasePureModel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/scan/buildBasePureModel.pure index 045d058decb..73e858b9399 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/scan/buildBasePureModel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/scan/buildBasePureModel.pure @@ -16,6 +16,7 @@ import meta::protocols::*; import meta::json::*; import meta::pure::store::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::milestoning::*; import meta::pure::mapping::*; import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::*; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/executionPlan.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/executionPlan.pure index 003d51f9f4b..fc3e84538c9 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/executionPlan.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/executionPlan.pure @@ -37,7 +37,7 @@ function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executio let n = $node->match($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).transfers_executionPlan_transformNode->map(f|$f->eval($mapping, $extensions))->concatenate( [ - rel:meta::pure::mapping::modelToModel::ModelToModelExecutionNode[1]| + rel:meta::external::store::model::ModelToModelExecutionNode[1]| ^meta::protocols::pure::v1_33_0::metamodel::executionPlan::ModelToModelExecutionNode( _type = 'm2m', resultType = $rel.resultType->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), @@ -46,7 +46,7 @@ function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::executio jsonPropertyPaths = $rel.jsonPropertyPaths->map(j|$j->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::transformLambda($extensions)), pathToMapping = $rel.mapping->elementToPath()->toOne(), pathToClasses = $rel.classes->map(c|$c->elementToPath()), - connection = $rel.connection->cast(@meta::pure::mapping::modelToModel::ModelConnection)->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformModelConnection(), + connection = $rel.connection->cast(@meta::external::store::model::ModelConnection)->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformModelConnection(), pureModelContextData = $rel.mapping->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::buildBasePureModelFromMapping( {m:meta::pure::mapping::Mapping[1], p: meta::protocols::Protocol[1] |[]}, $extensions).second ), platform:meta::pure::executionPlan::PureExpressionPlatformExecutionNode[1]| diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/mapping.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/mapping.pure index 7ef1b027569..de39c05d533 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/mapping.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/mapping.pure @@ -18,6 +18,7 @@ import meta::flatten::metamodel::*; import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::mapping::modelToModel::*; import meta::pure::mapping::xStore::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::mapping::csv::*; import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::mapping::*; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/metamodel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/metamodel.pure index dce789108fe..ac0322d93c1 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/metamodel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/metamodel.pure @@ -15,6 +15,7 @@ ###Pure import meta::pure::metamodel::serialization::grammar::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::pure::metamodel::constraint::*; import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::model::*; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/store.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/store.pure index 7c07e31c3fd..b6838ea9a10 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/store.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/store.pure @@ -15,13 +15,14 @@ import meta::pure::extension::*; import meta::json::*; import meta::pure::runtime::*; +import meta::core::runtime::*; function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::runtime::transformRuntime(pureRuntime:Runtime[1], extensions:Extension[*]):meta::protocols::pure::v1_33_0::metamodel::Runtime[1] { $pureRuntime->match([ legacy:Runtime[1] | ^meta::protocols::pure::v1_33_0::metamodel::LegacyRuntime( _type = 'legacyRuntime', - connections = $pureRuntime.connections->map(con|$con->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::runtime::transformConnection($extensions)) + connections = $pureRuntime.connectionStores->map(conn|$conn.connection->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$conn.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) ); ]) } @@ -40,20 +41,20 @@ function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::runtime: $extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).transfers_store_transformConnection2->map(f | $f->eval($extensions)))->concatenate( [ - model:meta::pure::mapping::modelToModel::ModelConnection[1] | $model->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformModelConnection(), - j:meta::pure::mapping::modelToModel::JsonModelConnection[1] | $j->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), - x:meta::pure::mapping::modelToModel::XmlModelConnection[1] | $x->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), - c:meta::pure::mapping::modelToModel::ModelChainConnection[1] | $c->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformChainConnection(), + model:meta::external::store::model::ModelConnection[1] | $model->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformModelConnection(), + j:meta::external::store::model::JsonModelConnection[1] | $j->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformJsonModelConnection(), + x:meta::external::store::model::XmlModelConnection[1] | $x->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformXmlModelConnection(), + c:meta::external::store::model::ModelChainConnection[1] | $c->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformChainConnection(), - other: meta::pure::runtime::Connection[1] | let failureClass = $other->class()->toString(); + other: meta::core::runtime::Connection[1] | let failureClass = $other->class()->toString(); fail('' + $failureClass + ' Connection type not supported Yet!'); @meta::protocols::pure::v1_33_0::metamodel::runtime::Connection; ])->toOneMany() ); } -function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::pure::mapping::modelToModel::ModelConnection[1]):meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::ModelConnection[1] +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::external::store::model::ModelConnection[1]):meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::ModelConnection[1] { let instances = $modelConnection.instances->keyValues(); ^meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::ModelConnection( element = 'ModelStore', @@ -61,7 +62,7 @@ function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connecti input = ^meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::ModelStringInput(_type='ModelStringInput', class=$instances->at(0).first->elementToPath(), instances=$instances.second.values->map(i| $i->toJsonBeta()))); } -function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::pure::mapping::modelToModel::JsonModelConnection[1]):meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::JsonModelConnection[1] +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::external::store::model::JsonModelConnection[1]):meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::JsonModelConnection[1] { ^meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::JsonModelConnection( element = 'ModelStore', @@ -71,7 +72,7 @@ function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::pure::mapping::modelToModel::XmlModelConnection[1]):meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::XmlModelConnection[1] +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::external::store::model::XmlModelConnection[1]):meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::XmlModelConnection[1] { ^meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::XmlModelConnection( element = 'ModelStore', @@ -81,7 +82,7 @@ function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connecti ); } -function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::pure::mapping::modelToModel::ModelChainConnection[1]):meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::ModelChainConnection[1] +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::external::store::model::ModelChainConnection[1]):meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::ModelChainConnection[1] { ^meta::protocols::pure::v1_33_0::metamodel::mapping::modelToModel::ModelChainConnection( element = 'ModelStore', diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/valueSpecification.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/valueSpecification.pure index 172a0235754..69959487d37 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/valueSpecification.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/v1_33_0/transfers/valueSpecification.pure @@ -454,7 +454,7 @@ function <> meta::protocols::pure::v1_33_0::transformation::from _type = 'packageableElementPtr', fullPath = $m->elementToPath()->toOne() ), - r:meta::pure::runtime::Runtime[1]| + r:meta::core::runtime::Runtime[1]| ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', @@ -693,7 +693,7 @@ function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::toPureGr ->concatenate([ pair(meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__TabularDataSet_1_.name->toOne(), meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__TabularDataSet_1_), pair(meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__ExecutionContext_1__TabularDataSet_1_.name->toOne(), meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__ExecutionContext_1__TabularDataSet_1_), - pair(meta::pure::runtime::currentUserId__String_1_.name->toOne(), meta::pure::runtime::currentUserId__String_1_), + pair(meta::core::runtime::currentUserId__String_1_.name->toOne(), meta::core::runtime::currentUserId__String_1_), pair(meta::pure::functions::hash::hash_String_1__HashType_1__String_1_.name->toOne(), meta::pure::functions::hash::hash_String_1__HashType_1__String_1_) ]) ->removeDuplicatesBy(p | $p.second) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/extension/extension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/extension/extension.pure index 0aac211a9d5..846b9ff4cb1 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/extension/extension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/extension/extension.pure @@ -14,6 +14,7 @@ import meta::pure::mapping::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -29,28 +30,28 @@ Class meta::protocols::pure::vX_X_X::extension::SerializerExtension_vX_X_X exten } : ModuleSerializerExtension[0..1]; transfers_execute_transformActivity : Function<{Nil[1] -> meta::pure::mapping::Activity[1]}>[*]; - + transfers_mapping_transformMapping : Function<{SetImplementation[1]->Boolean[1]}>[*]; transfers_mapping_transformSetImplementation : Function<{Mapping[1]->Function<{Nil[1]->meta::protocols::pure::vX_X_X::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformSetImplementation2 : Function<{Mapping[1], meta::pure::extension::Extension[*] ->Function<{Nil[1]->meta::protocols::pure::vX_X_X::metamodel::mapping::ClassMapping[1]}>[*]}>[0..1]; transfers_mapping_transformAssociationImplementation : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::vX_X_X::metamodel::mapping::AssociationMapping[1]}>[*]}>[0..1]; transfers_valueSpecification_transformAny : Function<{String[*],Map>[1], Multiplicity[1], FunctionExpression[0..1], Boolean[1], meta::pure::extension::Extension[*]->Function<{Nil[1]->meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ValueSpecification[1]}>[*]}>[0..1]; - + transfers_executionPlan_transformNode : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::vX_X_X::metamodel::executionPlan::ExecutionNode[1]}>[*]}>[0..1]; transfers_executionPlan_transformNode_GraphFetchM2MExecutionNode : Function<{Nil[1]->meta::protocols::pure::vX_X_X::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformNode_StoreStreamReadingExecutionNode : Function<{Nil[1]->meta::protocols::pure::vX_X_X::metamodel::store::Store[1]}>[*]; transfers_executionPlan_transformResultType : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::vX_X_X::metamodel::executionPlan::ResultType[1]}>[*]}>[0..1]; transfers_executionPlan_transformSetImplementation : PairBoolean[1]}>, Function<{PropertyMapping[1]->Map>[1]}>>[0..1]; - + transfers_store_transformStore : Function<{Nil[1]->meta::protocols::pure::vX_X_X::metamodel::store::Store[1]}>[*]; transfers_store_transformStore2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::vX_X_X::metamodel::store::Store[1]}>[*]}>[0..1]; transfers_store_transformConnection : Function<{Nil[1]->meta::protocols::pure::vX_X_X::metamodel::runtime::Connection[1]}>[*]; transfers_store_transformConnection2 : Function<{meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::protocols::pure::vX_X_X::metamodel::runtime::Connection[1]}>[*]}>[0..1]; - + scan_buildBasePureModel_buildPureModelFromMapping1 : Function<{Nil[1]->Store[*]}>[*]; scan_buildBasePureModel_buildPureModelFromMapping2 : Store[*]; - + scan_buildBasePureModel_getExtraElementsFromStores : Function<{Store[*], meta::pure::extension::Extension[*]->meta::protocols::pure::vX_X_X::metamodel::PackageableElement[*]}>[0..1]; scan_buildPureModelAsText_getAllElementsFromMapping : Function<{Store[*]->Store[*]}>[0..1]; @@ -60,7 +61,7 @@ Class meta::protocols::pure::vX_X_X::extension::SerializerExtension_vX_X_X exten scan_buildBasePureModel_findAllTypesFromMapping : Function<{Nil[1]->Type[*]}>[*]; scan_buildBasePureModel_extractStores : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; scan_buildBasePureModel_processProperties : Function<{Mapping[1], meta::pure::extension::Extension[*] -> Function<{Nil[1]->meta::pure::store::Store[*]}>[*]}>[0..1]; - + invocation_execution_execute1 : Function<{ExecutionContext[1]->Boolean[1]}>[*]; invocation_execution_execute2_pre : PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]; invocation_execution_execute2_pre2 : Function<{meta::pure::extension::Extension[*] -> PairBoolean[1]}>, Function<{String[1], JSONObject[1], Mapping[1], Runtime[1],ExtendedJSONDeserializationConfig[1],ExecutionContext[0..1]->Pair,List>[1]}>>[*]}>[0..1]; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/invocations/execution.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/invocations/execution.pure index 004aaa34d97..f6c158891ba 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/invocations/execution.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/invocations/execution.pure @@ -19,6 +19,7 @@ import meta::protocols::pure::vX_X_X::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; import meta::protocols::pure::vX_X_X::invocation::execution::execute::*; import meta::protocols::pure::vX_X_X::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; @@ -135,13 +136,13 @@ function meta::protocols::pure::vX_X_X::invocation::execution::execute::buildExe clientVersion = 'vX_X_X', function = transformLambda($f, $extensions), mapping = if($m.name->isEmpty(), |[], |$m->toOne()->elementToPath()), - runtime = if($runtime.connections->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), + runtime = if($runtime.connectionStores->isEmpty(), |[], |transformRuntime($runtime->toOne(), $extensions)), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $runtime.connections.element->cast(@meta::pure::store::Store) + |let stores = $runtime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() - ->filter(s | !$s->instanceOf(meta::pure::mapping::modelToModel::ModelStore)) + ->filter(s | !$s->instanceOf(meta::external::store::model::ModelStore)) ->map(c|^meta::protocols::pure::vX_X_X::metamodel::PackageableElementPointer(type=meta::protocols::pure::vX_X_X::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); let transformedMappings = $mappings->map(m|^meta::protocols::pure::vX_X_X::metamodel::PackageableElementPointer(type=meta::protocols::pure::vX_X_X::metamodel::PackageableElementType.MAPPING,path=$m->elementToPath())); ^meta::protocols::pure::vX_X_X::metamodel::PureModelContextPointer @@ -213,7 +214,7 @@ function meta::protocols::pure::vX_X_X::invocation::execution::execute::legendEx let resultClassType=$typeAndresultJSON.first; let res= legendBuildResultFromJSON($resultJSON, $resultClassType, $m, $pureRuntime, $context, $extensions); - + let values = $res.values->cast(@T); ^Result(values=$values, activities=$res.activities); } @@ -266,4 +267,4 @@ function meta::protocols::pure::vX_X_X::invocation::execution::execute::alloyExe assertEq(200, $resp.statusCode, | $resp.statusCode->toString()+' \''+$resp.entity+'\''); $resp.entity; -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/invocations/testBuildExecutionInput.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/invocations/testBuildExecutionInput.pure index 1c28ee6d6b6..4a960cd9940 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/invocations/testBuildExecutionInput.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/invocations/testBuildExecutionInput.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::extension::*; import meta::protocols::pure::vX_X_X::invocation::execution::*; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/models/metamodel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/models/metamodel.pure index 56dbceff7d2..acd140a3ab6 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/models/metamodel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/models/metamodel.pure @@ -103,6 +103,7 @@ Class meta::protocols::pure::vX_X_X::metamodel::EngineRuntime extends meta::prot { mappings:meta::protocols::pure::vX_X_X::metamodel::PackageableElementPointer[*]; connections: meta::protocols::pure::vX_X_X::metamodel::StoreConnections[*]; + connectionStores: meta::protocols::pure::vX_X_X::metamodel::ConnectionStores[*]; } Class meta::protocols::pure::vX_X_X::metamodel::StoreConnections @@ -111,6 +112,12 @@ Class meta::protocols::pure::vX_X_X::metamodel::StoreConnections storeConnections: meta::protocols::pure::vX_X_X::metamodel::IdentifiedConnection[*]; } +Class meta::protocols::pure::vX_X_X::metamodel::ConnectionStores +{ + connection: meta::protocols::pure::vX_X_X::metamodel::PackageableElementPointer[1]; + storeConnections: meta::protocols::pure::vX_X_X::metamodel::PackageableElementPointer[*]; +} + Class meta::protocols::pure::vX_X_X::metamodel::IdentifiedConnection { id: String[1]; @@ -508,7 +515,7 @@ Class meta::protocols::pure::vX_X_X::metamodel::valueSpecification::raw::AlloySe Enum meta::protocols::pure::vX_X_X::metamodel::objectReference::AlloyObjectReferenceType { - Relational + Relational } Class meta::protocols::pure::vX_X_X::metamodel::objectReference::AlloyObjectReference @@ -605,7 +612,7 @@ Class meta::protocols::pure::vX_X_X::metamodel::mapping::OperationClassMapping e Class meta::protocols::pure::vX_X_X::metamodel::mapping::MergeOperationClassMapping extends meta::protocols::pure::vX_X_X::metamodel::mapping::OperationClassMapping { - + validationFunction : meta::protocols::pure::vX_X_X::metamodel::valueSpecification::raw::Lambda[1]; } diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/scan/buildBasePureModel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/scan/buildBasePureModel.pure index 6cd43b0fac5..e527c72953c 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/scan/buildBasePureModel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/scan/buildBasePureModel.pure @@ -16,6 +16,7 @@ import meta::protocols::*; import meta::json::*; import meta::pure::store::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::milestoning::*; import meta::pure::mapping::*; import meta::protocols::pure::vX_X_X::transformation::fromPureGraph::*; @@ -299,7 +300,7 @@ function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::buildBase let foundClasses = $gm->fold({x, y | let alltype = $x->findAllTypesFromMapping($extensions); ^$y(classes = $y.classes->concatenate($alltype.classes)->removeDuplicates(), enumerations = $y.enumerations->concatenate($alltype.enumerations)->removeDuplicates());}, ^AllTypes()); - + let associations = $foundClasses.classes->findAllAssociations(); let found = ^$foundClasses(classes = $foundClasses.classes->concatenate($associations.properties.genericType.rawType)->removeDuplicates()->cast(@Class)); @@ -397,4 +398,4 @@ function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::buildPure function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::buildPureModelFromPackage(ps:Package[*], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::vX_X_X::metamodel::PureModelContextData[1] { meta::protocols::pure::vX_X_X::transformation::fromPureGraph::buildBasePureModelFromPackage($ps, '-1', $extensions); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/transfers/executionPlan.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/transfers/executionPlan.pure index fc04906322f..7f3deca94a3 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/transfers/executionPlan.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/transfers/executionPlan.pure @@ -36,8 +36,8 @@ function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::execution { let n = $node->match($extensions.serializerExtension('vX_X_X')->cast(@meta::protocols::pure::vX_X_X::extension::SerializerExtension_vX_X_X).transfers_executionPlan_transformNode->map(f|$f->eval($mapping, $extensions))->concatenate( [ - - rel:meta::pure::mapping::modelToModel::ModelToModelExecutionNode[1]| + + rel:meta::external::store::model::ModelToModelExecutionNode[1]| ^meta::protocols::pure::vX_X_X::metamodel::executionPlan::ModelToModelExecutionNode( _type = 'm2m', resultType = $rel.resultType->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), @@ -46,7 +46,7 @@ function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::execution jsonPropertyPaths = $rel.jsonPropertyPaths->map(j|$j->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::transformLambda($extensions)), pathToMapping = $rel.mapping->elementToPath()->toOne(), pathToClasses = $rel.classes->map(c|$c->elementToPath()), - connection = $rel.connection->cast(@meta::pure::mapping::modelToModel::ModelConnection)->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connection::transformModelConnection(), + connection = $rel.connection->cast(@meta::external::store::model::ModelConnection)->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connection::transformModelConnection(), pureModelContextData = $rel.mapping->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::buildBasePureModelFromMapping( {m:meta::pure::mapping::Mapping[1], p: meta::protocols::Protocol[1] |[]}, $extensions).second ), platform:meta::pure::executionPlan::PureExpressionPlatformExecutionNode[1]| @@ -180,7 +180,7 @@ function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::execution resultType = $f.resultType->transformResultType($mapping, $extensions), resultSizeRange = $f.resultSizeRange->isEmpty()->if(|[],|$f.resultSizeRange->toOne()->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::domain::transformMultiplicity()) ), - v:meta::pure::executionPlan::VariableResolutionExecutionNode[1]| + v:meta::pure::executionPlan::VariableResolutionExecutionNode[1]| ^meta::protocols::pure::vX_X_X::metamodel::executionPlan::VariableResolutionExecutionNode( _type = 'varResolution', resultType = $v.resultType->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::executionPlan::transformResultType($mapping, $extensions), @@ -304,7 +304,7 @@ function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::execution enumMapping = $extensions.serializerExtension('vX_X_X')->cast(@meta::protocols::pure::vX_X_X::extension::SerializerExtension_vX_X_X).transfers_executionPlan_transformSetImplementation ->filter(v|$v.first->eval($p))->map(x|$x.second->eval($p))->first() ) - + ) ); @@ -347,7 +347,7 @@ function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::execution enumMapping = if($c.enumMappingId->isEmpty(),|[],|meta::protocols::pure::vX_X_X::transformation::fromPureGraph::executionPlan::transformEnumMapping($mapping->enumerationMappingByName($c.enumMappingId->toOne())->toOne())) ) ) - ), + ), rt:meta::pure::executionPlan::ResultType[1]|^meta::protocols::pure::vX_X_X::metamodel::executionPlan::DataTypeResultType ( _type='dataType', diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/transfers/mapping.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/transfers/mapping.pure index 85be2c59a85..04296a27723 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/transfers/mapping.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/transfers/mapping.pure @@ -18,6 +18,7 @@ import meta::flatten::metamodel::*; import meta::protocols::pure::vX_X_X::transformation::fromPureGraph::mapping::modelToModel::*; import meta::pure::mapping::xStore::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::vX_X_X::transformation::fromPureGraph::*; import meta::protocols::pure::vX_X_X::transformation::fromPureGraph::mapping::csv::*; import meta::protocols::pure::vX_X_X::transformation::fromPureGraph::mapping::*; @@ -126,7 +127,7 @@ function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::mapping:: ) ) ); - + if($operation == meta::protocols::pure::vX_X_X::metamodel::mapping::MappingOperation.MERGE, | ^meta::protocols::pure::vX_X_X::metamodel::mapping::MergeOperationClassMapping ( diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/transfers/metamodel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/transfers/metamodel.pure index 7be30e99e10..4307f52694c 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/transfers/metamodel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/transfers/metamodel.pure @@ -14,6 +14,7 @@ ###Pure import meta::pure::metamodel::serialization::grammar::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::metamodel::constraint::*; import meta::protocols::pure::vX_X_X::transformation::fromPureGraph::*; @@ -56,7 +57,7 @@ function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::domain::t package = if($class.package->isEmpty(),|[],|$class.package->toOne()->elementToPath()), superTypes = $class.generalizations->map(g | $g.general.rawType->toOne()->elementToPath()), properties = $properties->map(p | $p->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::domain::transformProperty($extensions)), - qualifiedProperties = $qualifiedProperties->map(q|$q->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::domain::transformQualifiedProperty($useAppliedFunction, $extensions)), + qualifiedProperties = $qualifiedProperties->map(q|$q->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::domain::transformQualifiedProperty($useAppliedFunction, $extensions)), originalMilestonedProperties = $originalMilestonedProperties->map(p | $p->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::domain::transformProperty($extensions)), stereotypes = $class.stereotypes->map(s|$s->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::domain::transformStereotype()), taggedValues = $class.taggedValues->map(t|$t->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::domain::transformTaggedValue()) @@ -169,7 +170,7 @@ function <> meta::protocols::pure::vX_X_X::transformation::fromP parameters = $fType.parameters->tail()->map(p|$p->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::valueSpecification::transformValueSpecification([], newMap([]->cast(@Pair>)), true, $extensions)->cast(@meta::protocols::pure::vX_X_X::metamodel::valueSpecification::Variable)), returnType = $fType.returnType.rawType->toOne()->elementToPath(), returnMultiplicity = $fType.returnMultiplicity->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::domain::transformMultiplicity()->toOne(), - body = $qualifiedProperty->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::valueSpecification::transformFunctionBody($useAppliedFunction, $extensions), + body = $qualifiedProperty->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::valueSpecification::transformFunctionBody($useAppliedFunction, $extensions), stereotypes = $qualifiedProperty.stereotypes->map(s|$s->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::domain::transformStereotype()), taggedValues = $qualifiedProperty.taggedValues->map(t|$t->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::domain::transformTaggedValue()) ); @@ -254,7 +255,7 @@ function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::transform package = if($p.package->isEmpty(),|[],|$p.package->toOne()->elementToPath()), stereotypes = $p.p_stereotypes->map(s|$s.value), tags = $p.p_tags->map(t|$t.value) - + ) - -} \ No newline at end of file + +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/transfers/store.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/transfers/store.pure index 9cc39a005af..ebbc86dcf6e 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/transfers/store.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/transfers/store.pure @@ -14,6 +14,7 @@ import meta::pure::extension::*; import meta::json::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::runtime::transformRuntime(pureRuntime:Runtime[1], extensions:Extension[*]):meta::protocols::pure::vX_X_X::metamodel::Runtime[1] @@ -21,7 +22,7 @@ function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::runtime:: $pureRuntime->match([ legacy:Runtime[1] | ^meta::protocols::pure::vX_X_X::metamodel::LegacyRuntime( _type = 'legacyRuntime', - connections = $pureRuntime.connections->map(con|$con->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::runtime::transformConnection($extensions)) + connections = $pureRuntime.connectionStores->map(conn|$conn.connection->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$conn.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) ); ]) } @@ -39,21 +40,21 @@ function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::runtime:: $connection->match($extensions.serializerExtension('vX_X_X')->cast(@meta::protocols::pure::vX_X_X::extension::SerializerExtension_vX_X_X).transfers_store_transformConnection->concatenate( $extensions.serializerExtension('vX_X_X')->cast(@meta::protocols::pure::vX_X_X::extension::SerializerExtension_vX_X_X).transfers_store_transformConnection2->map(f | $f->eval($extensions)))->concatenate( [ - - model:meta::pure::mapping::modelToModel::ModelConnection[1] | $model->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connection::transformModelConnection(), - j:meta::pure::mapping::modelToModel::JsonModelConnection[1] | $j->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connection::transformJsonModelConnection(), - x:meta::pure::mapping::modelToModel::XmlModelConnection[1] | $x->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connection::transformXmlModelConnection(), - c:meta::pure::mapping::modelToModel::ModelChainConnection[1] | $c->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connection::transformChainConnection(), - - other: meta::pure::runtime::Connection[1] | let failureClass = $other->class()->toString(); + model:meta::external::store::model::ModelConnection[1] | $model->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connection::transformModelConnection(), + j:meta::external::store::model::JsonModelConnection[1] | $j->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connection::transformJsonModelConnection(), + x:meta::external::store::model::XmlModelConnection[1] | $x->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connection::transformXmlModelConnection(), + c:meta::external::store::model::ModelChainConnection[1] | $c->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connection::transformChainConnection(), + + + other: meta::core::runtime::Connection[1] | let failureClass = $other->class()->toString(); fail('' + $failureClass + ' Connection type not supported Yet!'); @meta::protocols::pure::vX_X_X::metamodel::runtime::Connection; ])->toOneMany() ); } -function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::pure::mapping::modelToModel::ModelConnection[1]):meta::protocols::pure::vX_X_X::metamodel::mapping::modelToModel::ModelConnection[1] +function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connection::transformModelConnection(modelConnection: meta::external::store::model::ModelConnection[1]):meta::protocols::pure::vX_X_X::metamodel::mapping::modelToModel::ModelConnection[1] { let instances = $modelConnection.instances->keyValues(); ^meta::protocols::pure::vX_X_X::metamodel::mapping::modelToModel::ModelConnection( element = 'ModelStore', @@ -61,7 +62,7 @@ function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connectio input = ^meta::protocols::pure::vX_X_X::metamodel::mapping::modelToModel::ModelStringInput(_type='ModelStringInput', class=$instances->at(0).first->elementToPath(), instances=$instances.second.values->map(i| $i->toJsonBeta()))); } -function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::pure::mapping::modelToModel::JsonModelConnection[1]):meta::protocols::pure::vX_X_X::metamodel::mapping::modelToModel::JsonModelConnection[1] +function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connection::transformJsonModelConnection(jsonModelConnection: meta::external::store::model::JsonModelConnection[1]):meta::protocols::pure::vX_X_X::metamodel::mapping::modelToModel::JsonModelConnection[1] { ^meta::protocols::pure::vX_X_X::metamodel::mapping::modelToModel::JsonModelConnection( element = 'ModelStore', @@ -71,7 +72,7 @@ function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connectio ); } -function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::pure::mapping::modelToModel::XmlModelConnection[1]):meta::protocols::pure::vX_X_X::metamodel::mapping::modelToModel::XmlModelConnection[1] +function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connection::transformXmlModelConnection(xmlModelConnection: meta::external::store::model::XmlModelConnection[1]):meta::protocols::pure::vX_X_X::metamodel::mapping::modelToModel::XmlModelConnection[1] { ^meta::protocols::pure::vX_X_X::metamodel::mapping::modelToModel::XmlModelConnection( element = 'ModelStore', @@ -81,11 +82,11 @@ function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connectio ); } -function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::pure::mapping::modelToModel::ModelChainConnection[1]):meta::protocols::pure::vX_X_X::metamodel::mapping::modelToModel::ModelChainConnection[1] +function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connection::transformChainConnection(modelChainConnection: meta::external::store::model::ModelChainConnection[1]):meta::protocols::pure::vX_X_X::metamodel::mapping::modelToModel::ModelChainConnection[1] { ^meta::protocols::pure::vX_X_X::metamodel::mapping::modelToModel::ModelChainConnection( element = 'ModelStore', _type = 'ModelChainConnection', mappings = $modelChainConnection.mappings->map(m | $m->elementToPath()) ) -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/transfers/valueSpecification.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/transfers/valueSpecification.pure index b62703c5df5..3c094164469 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/transfers/valueSpecification.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/protocol/vX_X_X/transfers/valueSpecification.pure @@ -346,7 +346,7 @@ function <> meta::protocols::pure::vX_X_X::transformation::fromP ), v:ValueSpecification[1]|$v->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::valueSpecification::transformValueSpecification($inScope, $open,false,$useAppliedFunction, $extensions), a:Path[1]| - ^meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'path', @@ -369,7 +369,7 @@ function <> meta::protocols::pure::vX_X_X::transformation::fromP ) ;, a:meta::pure::functions::collection::AggregateValue[1]| - ^meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'aggregateValue', @@ -380,7 +380,7 @@ function <> meta::protocols::pure::vX_X_X::transformation::fromP ) ), a:meta::pure::tds::AggregateValue[1]| - ^meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'tdsAggregateValue', @@ -394,7 +394,7 @@ function <> meta::protocols::pure::vX_X_X::transformation::fromP oo:meta::pure::tds::OlapOperation[1]| $oo->match([ oa : meta::pure::tds::TdsOlapAggregation[1]| - ^meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'tdsOlapAggregation', @@ -405,7 +405,7 @@ function <> meta::protocols::pure::vX_X_X::transformation::fromP ) ), or : meta::pure::tds::TdsOlapRank[1]| - ^meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'tdsOlapRank', @@ -416,7 +416,7 @@ function <> meta::protocols::pure::vX_X_X::transformation::fromP ) ]), si:meta::pure::tds::SortInformation[1]| - ^meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'tdsSortInformation', @@ -427,7 +427,7 @@ function <> meta::protocols::pure::vX_X_X::transformation::fromP ) ), co:meta::pure::tds::BasicColumnSpecification[1]| - ^meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'tdsColumnInformation', @@ -438,7 +438,7 @@ function <> meta::protocols::pure::vX_X_X::transformation::fromP ) ), pair:Pair[1]| - ^meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'pair', @@ -454,8 +454,8 @@ function <> meta::protocols::pure::vX_X_X::transformation::fromP _type = 'packageableElementPtr', fullPath = $m->elementToPath()->toOne() ), - r:meta::pure::runtime::Runtime[1]| - ^meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ClassInstance + r:meta::core::runtime::Runtime[1]| + ^meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'runtimeInstance', @@ -471,7 +471,7 @@ function <> meta::protocols::pure::vX_X_X::transformation::fromP values = $l.values->map(la|$la->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::valueSpecification::transformAny($inScope, $open, PureOne, $extensions)) ), a:AlloySerializationConfig[1] | - ^meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'alloySerializationConfig', @@ -488,7 +488,7 @@ function <> meta::protocols::pure::vX_X_X::transformation::fromP ) ), g:GraphFetchTree[1]| - ^meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'rootGraphFetchTree', @@ -689,11 +689,11 @@ function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::toPureGra let fControlToFunctionMapping = $imports.children->map(e|$e->match([c:Function[1]|$c, a:Any[*]|[]])) ->map(c|pair($c.name->toOne(), $c)) - ->concatenate(meta::pure::router::routing::shouldStopFunctions($extensions)->map(f | pair($f.name->toOne(), $f))) + ->concatenate(meta::pure::router::routing::shouldStopFunctions($extensions)->map(f | pair($f.name->toOne(), $f))) ->concatenate([ pair(meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__TabularDataSet_1_.name->toOne(), meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__TabularDataSet_1_), pair(meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__ExecutionContext_1__TabularDataSet_1_.name->toOne(), meta::pure::mapping::from_TabularDataSet_1__Mapping_1__Runtime_1__ExecutionContext_1__TabularDataSet_1_), - pair(meta::pure::runtime::currentUserId__String_1_.name->toOne(), meta::pure::runtime::currentUserId__String_1_), + pair(meta::core::runtime::currentUserId__String_1_.name->toOne(), meta::core::runtime::currentUserId__String_1_), pair(meta::pure::functions::hash::hash_String_1__HashType_1__String_1_.name->toOne(), meta::pure::functions::hash::hash_String_1__HashType_1__String_1_) ]) ->removeDuplicatesBy(p | $p.second) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/deprecated/deprecated.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/deprecated/deprecated.pure index 6e201be2362..e8595f8cab3 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/deprecated/deprecated.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/deprecated/deprecated.pure @@ -15,6 +15,7 @@ import meta::pure::mapping::*; import meta::pure::router::routing::*; import meta::pure::router::store::routing::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function <> meta::pure::router::routeFunction(f:FunctionDefinition[1], mapping:Mapping[1], runtime:Runtime[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):FunctionDefinition[1] @@ -25,4 +26,4 @@ function <> meta::pure::router::routeFunction(f:FunctionDefiniti function <> meta::pure::router::routeFunction(f:FunctionDefinition[1], mapping:Mapping[1], runtime:Runtime[1], exeCtx: ExecutionContext[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):FunctionDefinition[1] { routeFunction($f, getRoutingStrategyFromMappingAndRuntime($mapping, $runtime), $exeCtx, [], $extensions, $debug) -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/extension/router_extension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/extension/router_extension.pure index 493a7eff5f1..95be391df8b 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/extension/router_extension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/extension/router_extension.pure @@ -14,6 +14,7 @@ import meta::pure::router::metamodel::*; import meta::pure::router::routing::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; @@ -27,5 +28,5 @@ Class meta::pure::router::extension::RouterExtension connectionEquality : Function<{Connection[1] -> Function<{Nil[1]->Boolean[1]}>[*]}>[0..1]; splitGraphFetchTreeForPropertyUnion : Boolean[1] = false; // Execution - traceQueryInfoBuilder : Function<{FunctionDefinition[1], Mapping[1], meta::pure::runtime::Runtime[1] -> String[1]}>[0..1]; -} \ No newline at end of file + traceQueryInfoBuilder : Function<{FunctionDefinition[1], Mapping[1], meta::core::runtime::Runtime[1] -> String[1]}>[0..1]; +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/externalFormat/routing.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/externalFormat/routing.pure index 5911c2bb5a9..fa0bdbc2b6f 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/externalFormat/routing.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/externalFormat/routing.pure @@ -22,6 +22,7 @@ import meta::pure::router::metamodel::*; import meta::pure::router::metamodel::clustering::*; import meta::pure::router::printer::*; import meta::pure::router::routing::*; +import meta::core::runtime::*; import meta::pure::runtime::*; // ========================================================================================= @@ -123,7 +124,7 @@ function meta::pure::router::externalFormat::routing::specializedFunctionExpress binding = $binding, value = $processedExternalize ); - print(if($debug.debug,|$debug.space+'~>Externalize Routing Done',|'')); + print(if($debug.debug,|$debug.space+'~>Externalize Routing Done',|'')); ^$processedFirstParam(routingStrategy = getExternalFormatRoutingStrategy($binding), value = $routedExternalize); } @@ -147,7 +148,7 @@ function meta::pure::router::externalFormat::routing::specializedFunctionExpress binding = $binding, value = $processedInternalize ); - print(if($debug.debug,|$debug.space+'~>Internalize Routing Done',|'')); + print(if($debug.debug,|$debug.space+'~>Internalize Routing Done',|'')); ^$processedFirstParam(routingStrategy = $routingStrategy, value = $routedInternalize); } @@ -161,7 +162,7 @@ function meta::pure::router::externalFormat::routing::specializedFunctionExpress function meta::pure::router::externalFormat::routing::enrichExternalFormatRoutedValueSpecification(v:ValueSpecification[1], exeCtx:ExecutionContext[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):ValueSpecification[1] { - $v->match([f:FunctionExpression[1] | ^$f(parametersValues = $f.parametersValues->evaluateAndDeactivate()->map(v|$v->enrichExternalFormatRoutedValueSpecification($exeCtx, $extensions, $debug))), + $v->match([f:FunctionExpression[1] | ^$f(parametersValues = $f.parametersValues->evaluateAndDeactivate()->map(v|$v->enrichExternalFormatRoutedValueSpecification($exeCtx, $extensions, $debug))), i:InstanceValue[1] | let updatedValues = $i.values->map(val | $val->match([ v:ValueSpecification[1] | $v->enrichExternalFormatRoutedValueSpecification($exeCtx, $extensions, $debug), f:FunctionDefinition[1] | ^$f(expressionSequence = $f.expressionSequence->map(e | $e->enrichExternalFormatRoutedValueSpecification($exeCtx, $extensions, $debug))), @@ -180,7 +181,7 @@ function meta::pure::router::externalFormat::routing::enrichExternalFormatRouted function meta::pure::router::externalFormat::clustering::cluster(v:ValueSpecification[1], binding:meta::external::format::shared::binding::Binding[1], openVariables:Map>[1], exeCtx:ExecutionContext[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):ValueSpecification[*] { - $v->match([f:FunctionExpression[1] | let params = $f.parametersValues->evaluateAndDeactivate()->map(v|$v->cluster($binding, $openVariables, $exeCtx, $extensions, ^$debug(space = $debug.space+' '))); + $v->match([f:FunctionExpression[1] | let params = $f.parametersValues->evaluateAndDeactivate()->map(v|$v->cluster($binding, $openVariables, $exeCtx, $extensions, ^$debug(space = $debug.space+' '))); if($f->externalFormatSupportsFunction(), |wrapValueSpecByExternalFormatCluster(^$f(parametersValues = $params->map(p | $p->match([ef:ExternalFormatClusteredValueSpecification[1]|$ef.val, vs:ValueSpecification[1]| $vs]))), $binding, $openVariables, $exeCtx), |let unwrappedPlatformClusterParams = $params->map(p | $p->match([pf:meta::pure::router::platform::metamodel::clustering::PlatformClusteredValueSpecification[1] | $pf.val, vs:ValueSpecification[1]|$vs])); @@ -227,7 +228,7 @@ function meta::pure::router::externalFormat::clustering::cluster(v:ValueSpecific );, v:VariableExpression[1] | $v, e:ExtendedRoutedValueSpecification[1] | $e->clusterFunctionExpressions($openVariables, $exeCtx, $extensions, $debug), - c:ClusteredValueSpecification[1] | $c + c:ClusteredValueSpecification[1] | $c ] ); } @@ -255,4 +256,4 @@ function meta::pure::router::externalFormat::clustering::externalFormatSupportsF ->concatenate(meta::external::format::shared::functions::externalizeTDSFunctions() ); $f.func->in($supportedFunctions); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/metamodel/clustering.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/metamodel/clustering.pure index a753d34ca83..f39ae0e0eed 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/metamodel/clustering.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/metamodel/clustering.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::core::runtime::*; import meta::pure::runtime::*; Class meta::pure::router::metamodel::clustering::ClusteredValueSpecification extends ValueSpecification @@ -38,6 +39,7 @@ import meta::pure::router::printer::*; import meta::pure::router::store::metamodel::clustering::*; import meta::pure::router::store::clustering::*; import meta::pure::router::utils::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::pure::router::clustering::generateExecutionNodeFromCluster(cluster:ClusteredValueSpecification[1], inScopeVars:Map>[1], context:ExecutionContext[1], extensions:meta::pure::extension::Extension[*], debugContext:DebugContext[1]):ExecutionNode[1] @@ -49,7 +51,7 @@ function meta::pure::router::clustering::generateExecutionNodeFromCluster(cluste //This is required to populate the setup sql for test connections where csv data has been supplied. It is done here to ensure that the plan generation is always //the only place where sql is generated for this case. let rt = $sc.runtime->match([ - r:Runtime[1] | ^$r(connections = $r.connections->map(c | if ($sc.s.reprocessConnection->isEmpty(),|$c,|$sc.s.reprocessConnection->toOne()->eval($c)))), + r:Runtime[1] | ^$r(connectionStores = $r.connectionStores->map(c | if ($sc.s.reprocessConnection->isEmpty(),|$c,|^$c(connection=$sc.s.reprocessConnection->toOne()->eval($c))))), r:Runtime[0..1] | $r ]); @@ -143,6 +145,7 @@ function meta::pure::router::clustering::toString(cluster:ClusteredValueSpecific ###Pure import meta::pure::graphFetch::*; import meta::pure::graphFetch::routing::*; +import meta::core::runtime::*; import meta::pure::runtime::*; Class <> meta::pure::graphFetch::routing::ClusteredGraphFetchTree extends GraphFetchTree @@ -159,4 +162,4 @@ function meta::pure::graphFetch::routing::clusteredGraphFetchTreeToString(c: Clu s:StoreMappingClusteredGraphFetchTree[1] | $space + '{'+$s.store->toOne()->elementToPath()+'> ' + $c.tree->asString($space, $multiLine) + '}', p:PlatformClusteredGraphFetchTree[1] | $space + '{Platform> ' + $c.tree->asString($space, $multiLine) + '}' ]); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/metamodel/routing.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/metamodel/routing.pure index 7c9b79ced4b..13f69edab3e 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/metamodel/routing.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/metamodel/routing.pure @@ -14,6 +14,7 @@ import meta::pure::router::metamodel::*; import meta::pure::router::routing::*; +import meta::core::runtime::*; import meta::pure::runtime::*; Class <> meta::pure::router::metamodel::ExtendedRoutedValueSpecification extends RoutedValueSpecification @@ -31,6 +32,7 @@ Class <> meta::pure::router::metamodel::ExtendedRoutedVa import meta::pure::extension::*; import meta::pure::router::metamodel::*; import meta::pure::router::routing::*; +import meta::core::runtime::*; import meta::pure::runtime::*; Class <> meta::pure::router::metamodel::RoutingStrategy @@ -39,21 +41,21 @@ Class <> meta::pure::router::metamodel::RoutingStrategy processClass : Function<{Class[1], InstanceValue[1], RoutingState[1], ExecutionContext[1], DebugContext[1] -> RoutingState[1]}>[1]; processClass(c:Class[1], i:InstanceValue[1], state:RoutingState[1], executionContext:ExecutionContext[1], debug:DebugContext[1]) { - $this.processClass->eval($c, $i, $state, $executionContext, $debug) + $this.processClass->eval($c, $i, $state, $executionContext, $debug) }: RoutingState[1]; // Process Property processProperty : Function<{Property[1], FunctionExpression[1], RoutingState[1], ExecutionContext[1], Map[1], Map>[1], Extension[*], DebugContext[1] -> RoutingState[1]}>[1]; processProperty(p:Property[1], fe:FunctionExpression[1], state:RoutingState[1], executionContext:ExecutionContext[1], vars:Map[1], inScopeVars:Map>[1], extensions:Extension[*], debug:DebugContext[1]) { - $this.processProperty->evaluate([list($p), list($fe), list($state), list($executionContext), list($vars), list($inScopeVars), list($extensions), list($debug)])->toOne()->cast(@RoutingState); + $this.processProperty->evaluate([list($p), list($fe), list($state), list($executionContext), list($vars), list($inScopeVars), list($extensions), list($debug)])->toOne()->cast(@RoutingState); }: RoutingState[1]; // Wrap VS into ExtendedRoutedValueSpecification wrapValueSpec : Function<{ValueSpecification[1], RoutingStrategy[1], String[1], ExecutionContext[1], Extension[*], DebugContext[1] -> ExtendedRoutedValueSpecification[1]}>[1]; wrapValueSpec(value:ValueSpecification[1], id:String[1], executionContext:ExecutionContext[1], extensions:Extension[*], debug:DebugContext[1]) { - $this.wrapValueSpec->eval($value, $this, $id, $executionContext, $extensions, $debug); + $this.wrapValueSpec->eval($value, $this, $id, $executionContext, $extensions, $debug); }:ExtendedRoutedValueSpecification[1]; toString : Function<{RoutingStrategy[1]->String[1]}>[1]; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/platform/routing.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/platform/routing.pure index 5d7304f6880..dae39d49efc 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/platform/routing.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/platform/routing.pure @@ -21,6 +21,7 @@ import meta::pure::router::platform::metamodel::*; import meta::pure::router::platform::metamodel::clustering::*; import meta::pure::router::printer::*; import meta::pure::router::routing::*; +import meta::core::runtime::*; import meta::pure::runtime::*; // ========================================================================================= @@ -95,8 +96,8 @@ function meta::pure::router::platform::routing::enrichPlatformRoutedValueSpecifi function meta::pure::router::platform::clustering::cluster(v:ValueSpecification[1], openVariables:Map>[1], exeCtx:ExecutionContext[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):ValueSpecification[*] { - $v->match([f:FunctionExpression[1] | let params = $f.parametersValues->evaluateAndDeactivate()->map(v|$v->cluster($openVariables, $exeCtx, $extensions, ^$debug(space = $debug.space+' '))); - let uniqueClusters = $params->filter(p | $p->instanceOf(ClusteredValueSpecification))->cast(@ClusteredValueSpecification)->removeDuplicates({x, y | areClustersCompatible($x, $y, $extensions)}); + $v->match([f:FunctionExpression[1] | let params = $f.parametersValues->evaluateAndDeactivate()->map(v|$v->cluster($openVariables, $exeCtx, $extensions, ^$debug(space = $debug.space+' '))); + let uniqueClusters = $params->filter(p | $p->instanceOf(ClusteredValueSpecification))->cast(@ClusteredValueSpecification)->removeDuplicates({x, y | areClustersCompatible($x, $y, $extensions)}); if($uniqueClusters->size() == 1 && $uniqueClusters->toOne()->isFunctionSupportedByCluster($f), |let uniqueCluster = $uniqueClusters->toOne(); ^$uniqueCluster @@ -149,7 +150,7 @@ function meta::pure::router::platform::clustering::cluster(v:ValueSpecification[ );, v:VariableExpression[1] | $v, e:ExtendedRoutedValueSpecification[1] | $e->clusterFunctionExpressions($openVariables, $exeCtx, $extensions, $debug), - c:ClusteredValueSpecification[1] | $c + c:ClusteredValueSpecification[1] | $c ] ); } diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/preeval/preeval.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/preeval/preeval.pure index c132f44d392..65fa9e1bbfb 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/preeval/preeval.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/preeval/preeval.pure @@ -121,14 +121,14 @@ function <> meta::pure::router::preeval::prevalInternal(item : A path = if(!$item->instanceOf(FunctionDefinition), | $origState.path, | $origState.path->concatenate($item->cast(@FunctionDefinition)))); - $state->printDebugWithDepth(|'Processing ' + $item->type()->makeString() + ' ' + $state->printDebugWithDepth(|'Processing ' + $item->type()->makeString() + ' ' + $item->evaluateAndDeactivate() ->match([ - iv:InstanceValue[1] | $iv.values->map(x|$x->type())->makeString(), - sfe:SimpleFunctionExpression[1] | '(' + $sfe.func->elementToPath() + ')', - ve:VariableExpression[1] | '(' + $ve.name + ')', + iv:InstanceValue[1] | $iv.values->map(x|$x->type())->makeString(), + sfe:SimpleFunctionExpression[1] | '(' + $sfe.func->elementToPath() + ')', + ve:VariableExpression[1] | '(' + $ve.name + ')', a:Any[*]|''] - ) + ) + ', inScopeVars: ' + $state.inScopeVars->keys()->joinStrings('[', ',', ']')); let newItem = $item->evaluateAndDeactivate() @@ -253,11 +253,11 @@ function <> meta::pure::router::preeval::prevalInternal(item : A | ^PrevalWrapper(value = $av, canPreval = true, modified = false), | ^PrevalWrapper(value = ^$av(mapFn = $newFuncWrapper_map.value->cast($mapFn), aggregateFn = $newFuncWrapper_agg.value->cast($aggFn)), canPreval = true, modified = true); ); - }, + }, {av : meta::pure::functions::collection::AggregateValue[1]| let mapFn = $av.mapFn->evaluateAndDeactivate(); let aggFn = $av.aggregateFn->evaluateAndDeactivate(); - + let newFuncWrapper_map = prevalInternal($mapFn, $state, $extensions); let newFuncWrapper_agg = prevalInternal($aggFn, $state, $extensions); @@ -265,8 +265,8 @@ function <> meta::pure::router::preeval::prevalInternal(item : A | ^PrevalWrapper(value = $av, canPreval = true, modified = false), | ^PrevalWrapper(value = ^$av(mapFn = $newFuncWrapper_map.value->cast($mapFn), aggregateFn = $newFuncWrapper_agg.value->cast($aggFn)), canPreval = true, modified = true); ); - }, - {s: meta::pure::tds::schema::SchemaState[1] | ^PrevalWrapper(value = $s, canPreval = true, modified = false);}, + }, + {s: meta::pure::tds::schema::SchemaState[1] | ^PrevalWrapper(value = $s, canPreval = true, modified = false);}, {r: meta::pure::graphFetch::RootGraphFetchTree[1] | ^PrevalWrapper(value = $r, canPreval = true, modified = false);}, {b: meta::external::format::shared::binding::Binding[1] | ^PrevalWrapper(value = $b, canPreval = true, modified = false);}, {s: meta::pure::store::Store[1] | ^PrevalWrapper(value = $s, canPreval = true, modified = false);}, @@ -322,27 +322,27 @@ function <> meta::pure::router::preeval::prevalFunctionDefinitio $state->printDebugWithDepth(|'adding variable ' + $varName + ' to rolling scope, with value ' + $varValue->makeString()); - let shouldInlineVariableExpression = ($varValue->match([v:VariableExpression[1]|true, a: Any[*]|false])) + let shouldInlineVariableExpression = ($varValue->match([v:VariableExpression[1]|true, a: Any[*]|false])) || ($r->canPreval() && $r->areAllInScope($state.inScopeVars) && !$varValue->match([v:LambdaFunction[1]|true, a: Any[*]|false])); let newRollingInScopeVars = $state.rollingInScopeVars->put($varName, list($varValue)); let newInScopeVars = if(!$shouldInlineVariableExpression, - | $state.inScopeVars, + | $state.inScopeVars, | $state.inScopeVars->put($varName, list($varValue)) ); let newState = ^$state(inScopeVars = $newInScopeVars, rollingInScopeVars = $newRollingInScopeVars); - let expValue = if($isLastExpression, - | ^PrevalWrapper(canPreval = $r.canPreval, modified = true, openVars =$r.openVars, value = $varValue->match([vs:ValueSpecification[1]|$vs, a:Any[*]|^InstanceValue(genericType = $fe.genericType, multiplicity = $a->size()->toMultiplicity(), values = $a)])), - | if($shouldInlineVariableExpression, - | [], + let expValue = if($isLastExpression, + | ^PrevalWrapper(canPreval = $r.canPreval, modified = true, openVars =$r.openVars, value = $varValue->match([vs:ValueSpecification[1]|$vs, a:Any[*]|^InstanceValue(genericType = $fe.genericType, multiplicity = $a->size()->toMultiplicity(), values = $a)])), + | if($shouldInlineVariableExpression, + | [], | $r ) ); - if($expValue->isEmpty(), - | pair($newState, $p.second), + if($expValue->isEmpty(), + | pair($newState, $p.second), | pair($newState, list(if($p.second.values->isEmpty(), | $expValue, | $p.second.values->concatenate($expValue)))) - ); + ); ); ); }, [pair($origState, list([]->cast(@PrevalWrapper)))] @@ -412,8 +412,8 @@ function <> meta::pure::router::preeval::prevalBooleanSimpleFunc function <> meta::pure::router::preeval::prevalGenericSimpleFunctionExpression(sfe : SimpleFunctionExpression[1], state : meta::pure::router::preeval::State[1], extensions:Extension[*]):PrevalWrapper[1] { - let newParamWrappers = if($sfe.parametersValues->isEmpty(), - | [], + let newParamWrappers = if($sfe.parametersValues->isEmpty(), + | [], | $sfe.func->match([p:Property[1]|'this', f:Function[1]|$f->functionType().parameters.name]) ->zip($sfe.parametersValues) ->evaluateAndDeactivate() @@ -491,12 +491,12 @@ function <> meta::pure::router::preeval::prevalGenericSimpleFunc ->concatenate([ pair( {theSfe:SimpleFunctionExpression[1]| - $newSfe.func.name == 'columns' + $newSfe.func.name == 'columns' && $newSfe.func->instanceOf(AbstractProperty) && $newSfe.func->cast(@AbstractProperty).owner == TabularDataSet && $newParamWrappers->areAllInScope($state.rollingInScopeVars) - }, - {theSfe:SimpleFunctionExpression[1]| + }, + {theSfe:SimpleFunctionExpression[1]| /* Simplistically we could just re-activate the expression here as well, however there are some TDS functions that are not implemented in the "Pure" implementation and only work in relational @@ -506,10 +506,10 @@ function <> meta::pure::router::preeval::prevalGenericSimpleFunc let val = meta::pure::tds::schema::resolveSchema($newSfe.parametersValues->toOne(), $state.rollingInScopeVars, $extensions); let iv = ^InstanceValue(genericType = $newSfe.genericType,multiplicity = $val->size()->toMultiplicity(), values = $val)->evaluateAndDeactivate(); - ^PrevalWrapper(value = $iv, canPreval = true, modified = true); - }), + ^PrevalWrapper(value = $iv, canPreval = true, modified = true); + }), pair( - {theSfe:SimpleFunctionExpression[1]|$newSfe.func->in([map_T_m__Function_1__V_m_, map_T_$0_1$__Function_1__V_$0_1$_, map_T_MANY__Function_1__V_MANY_]) && $newSfe.parametersValues->forAll(pv|$pv->isInstanceValue($state.inScopeVars))}, + {theSfe:SimpleFunctionExpression[1]|$newSfe.func->in([map_T_m__Function_1__V_m_, map_T_$0_1$__Function_1__V_$0_1$_, map_T_MANY__Function_1__V_MANY_]) && $newSfe.parametersValues->forAll(pv|$pv->isInstanceValue($state.inScopeVars))}, {theSfe:SimpleFunctionExpression[1]| // This special handling is required to cover cases where 'fixed'/ InstanceValue inputs are being mapped // using a function that can't be pre-evalled (because it has external input), so wouldn't normally be modified. @@ -519,7 +519,7 @@ function <> meta::pure::router::preeval::prevalGenericSimpleFunc let inputVals = $newSfe.parametersValues->at(0)->reactivate($state.inScopeVars) ->map(v|$v->match([ - vs:ValueSpecification[1]|$vs, + vs:ValueSpecification[1]|$vs, a:Any[*]| ^InstanceValue( genericType = $newSfe.parametersValues->at(0).genericType, multiplicity = PureOne, @@ -549,16 +549,16 @@ function <> meta::pure::router::preeval::prevalGenericSimpleFunc multiplicity = $resultVals->size()->toMultiplicity(), values = $resultVals )->evaluateAndDeactivate(); - + ^PrevalWrapper( value = $r, canPreval = $resultValWrappers->canPreval(), openVars = $resultValWrappers->openVars($state.inScopeVars), modified = true - ); - }), + ); + }), pair( - {theSfe:SimpleFunctionExpression[1]|$newSfe.func == fold_T_MANY__Function_1__V_m__V_m_ && $newSfe.parametersValues->forAll(pv|$pv->isInstanceValue($state.inScopeVars))}, + {theSfe:SimpleFunctionExpression[1]|$newSfe.func == fold_T_MANY__Function_1__V_m__V_m_ && $newSfe.parametersValues->forAll(pv|$pv->isInstanceValue($state.inScopeVars))}, {theSfe:SimpleFunctionExpression[1]| // This special handling is required to cover cases where 'fixed'/ InstanceValue inputs are being folded // using a function that can't be pre-evalled (because it has external input), so wouldn't normally be modified. @@ -567,7 +567,7 @@ function <> meta::pure::router::preeval::prevalGenericSimpleFunc let inputVals = $newSfe.parametersValues->at(0)->reactivate($state.inScopeVars) ->map(v| $v->match([ - vs:ValueSpecification[1]|$vs, + vs:ValueSpecification[1]|$vs, a:Any[1]| ^InstanceValue( genericType = $newSfe.parametersValues->at(0).genericType, @@ -575,7 +575,7 @@ function <> meta::pure::router::preeval::prevalGenericSimpleFunc values = $v->toOne() ) ])); - + let lambda = $newSfe.parametersValues->at(1)->cast(@InstanceValue).values->toOne()->cast(@FunctionDefinition);//->evaluateAndDeactivate(); //TODO: This should really be pre-checked as part of the If condition to get here (so that the assertion never fails) assert($lambda->instanceOf(FunctionDefinition) && $lambda->cast(@FunctionDefinition).expressionSequence->size() == 1); @@ -592,18 +592,18 @@ function <> meta::pure::router::preeval::prevalGenericSimpleFunc }, $intialAccumlatorVal->prevalInternal($state, $extensions)); $resultVal->markModified(); - }), + }), pair( {theSfe:SimpleFunctionExpression[1]| - ($newSfe.func == concatenate_T_MANY__T_MANY__T_MANY_) + ($newSfe.func == concatenate_T_MANY__T_MANY__T_MANY_) && ($newSfe.parametersValues.multiplicity->forAll(m|$m->in([PureOne, PureZero]) || $m->isMultiplicityConcrete() && $m->hasUpperBound() && $m->hasLowerBound() && ($m.lowerBound.value == $m.upperBound.value))) - /* + /* This last condition should not be needed, but there are circumstances where the inferred type of some lambdas is incorrect. - So this is guard to avoid trying to pre-optimise in those situations (where in the example below, we'd optimised to the lambda + So this is guard to avoid trying to pre-optimise in those situations (where in the example below, we'd optimised to the lambda simply return $index because accumulator is detected as a PureZero) - + let input = {| - [1,2]->fold({index, accumulator| + [1,2]->fold({index, accumulator| $accumulator->concatenate($index); }, []) }; @@ -620,18 +620,18 @@ function <> meta::pure::router::preeval::prevalGenericSimpleFunc assertEquals($foldLambda->functionReturnType().rawType, $input->functionReturnType().rawType, | 'Fold lambda matchs original lambda return type'); //fails assertEquals($foldLambda->functionReturnType().rawType, $foldLambdaAccumulatorParam.genericType.rawType, 'Accumulator parameter matches lambda return type: %r vs %r', [$foldLambda->functionReturnType().rawType->toOne(), $foldLambdaAccumulatorParam.genericType.rawType->toOne()]); - - */ - && $newParamWrappers->filter(pw|$pw.value->match([v:VariableExpression[1]|$v.multiplicity == PureZero, a:Any[*]|false]))->areAllInScope($state.inScopeVars) + + */ + && $newParamWrappers->filter(pw|$pw.value->match([v:VariableExpression[1]|$v.multiplicity == PureZero, a:Any[*]|false]))->areAllInScope($state.inScopeVars) }, - {theSfe:SimpleFunctionExpression[1]| + {theSfe:SimpleFunctionExpression[1]| $state->printDebugWithDepth(|'Handling expand: ' + $newSfe.func->elementToPath()); $state->printDebugWithDepth(|'Parameter multiplicities: ' + $newSfe.parametersValues.multiplicity->map(x|$x->makeString())->joinStrings('[',',',']')); - let r = if($newSfe.parametersValues->at(0).multiplicity == PureZero, - | $newSfe.parametersValues->at(1);, + let r = if($newSfe.parametersValues->at(0).multiplicity == PureZero, + | $newSfe.parametersValues->at(1);, | if($newSfe.parametersValues->at(1).multiplicity == PureZero, - | $newSfe.parametersValues->at(0);, + | $newSfe.parametersValues->at(0);, | let parametersValues = $newSfe.parametersValues ->map(x|$x->match([iv:InstanceValue[*]| $iv.values;, a:Any[*]| $a])); @@ -650,21 +650,21 @@ function <> meta::pure::router::preeval::prevalGenericSimpleFunc openVars = $newParamWrappers->openVars($state.inScopeVars), modified = true ); - }), + }), pair( {theSfe:SimpleFunctionExpression[1]|$newSfe.func == meta::pure::functions::lang::cast_Any_m__T_1__T_m_ && $newParamWrappers.value->at(0)->map(x|$x->instanceOf(InstanceValue) && $x->cast(@InstanceValue).values->isEmpty())}, - {theSfe:SimpleFunctionExpression[1]| + {theSfe:SimpleFunctionExpression[1]| //This special handling should not be required but []->cast(@MyType) seems to fail in compiled mode - + $state->printDebugWithDepth(|'Handling cast of empty collection: ' + $newSfe.func->elementToPath()); - - + + let r = ^InstanceValue( genericType = $newSfe.genericType->resolveGenericType($state).value, - multiplicity = $newSfe.multiplicity, + multiplicity = $newSfe.multiplicity, values = [] )->evaluateAndDeactivate(); - + ^PrevalWrapper( value = $r, canPreval = true, @@ -673,30 +673,30 @@ function <> meta::pure::router::preeval::prevalGenericSimpleFunc ); }), pair( - {theSfe:SimpleFunctionExpression[1] | + {theSfe:SimpleFunctionExpression[1] | //TODO getAll check is only needed as router does not route FunctionDefinition wth constant result. isFilterFunctionReturningConstant($theSfe, false) && !isGetAll($theSfe.parametersValues->at(0))}, {theSfe:SimpleFunctionExpression[1] | $state->printDebugWithDepth(|'Handling filter which returns false: ' + $newSfe.func->elementToPath()); - + let r = ^InstanceValue( genericType = ^GenericType(rawType = Nil), multiplicity = PureZero - )->evaluateAndDeactivate(); - + )->evaluateAndDeactivate(); + ^PrevalWrapper( value = $r, canPreval = true, openVars = [], modified = true - ); + ); } ), pair( {theSfe:SimpleFunctionExpression[1] | isFilterFunctionReturningConstant($theSfe, true)}, {theSfe:SimpleFunctionExpression[1] | - $state->printDebugWithDepth(|'Handling filter which returns true: ' + $newSfe.func->elementToPath()); - + $state->printDebugWithDepth(|'Handling filter which returns true: ' + $newSfe.func->elementToPath()); + ^PrevalWrapper( value = $theSfe.parametersValues->at(0), canPreval = true, @@ -706,31 +706,31 @@ function <> meta::pure::router::preeval::prevalGenericSimpleFunc } ), pair( - {theSfe:SimpleFunctionExpression[1] | ($theSfe.func == toOneMany_T_MANY__T_$1_MANY$_) && + {theSfe:SimpleFunctionExpression[1] | ($theSfe.func == toOneMany_T_MANY__T_$1_MANY$_) && $theSfe.parametersValues->match([ vs:ValueSpecification[1]|$vs.multiplicity->isMultiplicityConcrete() && $vs.multiplicity->hasLowerBound() - && ($vs.multiplicity->getLowerBound() > 0), + && ($vs.multiplicity->getLowerBound() > 0), a:Any[*]|false ])}, {theSfe:SimpleFunctionExpression[1] | - $state->printDebugWithDepth(|'Handling toOneMany'); + $state->printDebugWithDepth(|'Handling toOneMany'); $newParamWrappers->toOne()->map(pw|^$pw(modified=true)); } ), pair( - {theSfe:SimpleFunctionExpression[1] | ($theSfe.func == toOne_T_MANY__T_1_) && + {theSfe:SimpleFunctionExpression[1] | ($theSfe.func == toOne_T_MANY__T_1_) && $theSfe.parametersValues->match([ - vs:VariableExpression[1]|$vs.multiplicity->isMultiplicityConcrete() - && $vs.multiplicity == PureOne, + vs:VariableExpression[1]|$vs.multiplicity->isMultiplicityConcrete() + && $vs.multiplicity == PureOne, a:Any[*]|false ])}, {theSfe:SimpleFunctionExpression[1] | - $state->printDebugWithDepth(|'Handling toOne'); + $state->printDebugWithDepth(|'Handling toOne'); $newParamWrappers->toOne()->map(pw|^$pw(modified=true)); - } - ) + } + ) ]); let handler = $handlers->filter(p|$p.first->eval($newSfe))->first(); @@ -780,9 +780,9 @@ function meta::pure::router::preeval::isGetAll(v:ValueSpecification[0..1]):Boole function <> meta::pure::router::preeval::isFilterFunctionReturningConstant(sfe:SimpleFunctionExpression[1], value:Boolean[1]) : Boolean[1] { let isFilter = $sfe.func == filter_T_MANY__Function_1__T_MANY_; - - if ($isFilter, - | + + if ($isFilter, + | let es = $sfe.parametersValues->last()->cast(@InstanceValue).values->cast(@LambdaFunction).expressionSequence->evaluateAndDeactivate(); $es->last()->toOne()->instanceOf(InstanceValue) && $es->last()->toOne()->cast(@InstanceValue).values == $value;, | false); @@ -820,7 +820,7 @@ function meta::pure::router::preeval::getPreevalStateWithAdditionalStopInlineFun function <> meta::pure::router::preeval::stopPreeval(value : Any[*], extensions:Extension[*]) : Boolean[1] { - $extensions.routerExtensions().shouldStopPreeval->exists(p | $p->eval($value)) || + $extensions.routerExtensions().shouldStopPreeval->exists(p | $p->eval($value)) || $value->match([ p : String[*]| true, p : Float[*]| true, @@ -840,8 +840,9 @@ function <> meta::pure::router::preeval::stopPreeval(value : Any p : Path[*]|true, p : meta::pure::mapping::Mapping[1]| true, p : meta::pure::runtime::PackageableRuntime[1]| true, - p : meta::pure::runtime::Runtime[1]| true, - p : meta::pure::runtime::Connection[1] | true, + p : meta::core::runtime::Runtime[1]| true, + p : meta::core::runtime::Connection[1] | true, + p : meta::core::runtime::ConnectionStore[1] | true, p : meta::pure::runtime::ExecutionContext[1]| true, p : meta::pure::tds::TDSColumn[*]| true, p : TdsOlapRank[*]| true, @@ -910,14 +911,14 @@ function <> meta::pure::router::preeval::shouldInline(f:Function function <> meta::pure::router::preeval::canInlineEvalFunctionExpression(fe:SimpleFunctionExpression[1]):Boolean[1] { - $fe.func->in([eval_Function_1__V_m_, - eval_Function_1__T_n__V_m_, - eval_Function_1__T_n__U_p__V_m_, - eval_Function_1__T_n__U_p__W_q__V_m_, - eval_Function_1__T_n__U_p__W_q__X_r__V_m_, - eval_Function_1__T_n__U_p__W_q__X_r__Y_s__V_m_, - eval_Function_1__T_n__U_p__W_q__X_r__Y_s__Z_t__V_m_, - eval_Function_1__S_n__T_o__U_p__W_q__X_r__Y_s__Z_t__V_m_]) + $fe.func->in([eval_Function_1__V_m_, + eval_Function_1__T_n__V_m_, + eval_Function_1__T_n__U_p__V_m_, + eval_Function_1__T_n__U_p__W_q__V_m_, + eval_Function_1__T_n__U_p__W_q__X_r__V_m_, + eval_Function_1__T_n__U_p__W_q__X_r__Y_s__V_m_, + eval_Function_1__T_n__U_p__W_q__X_r__Y_s__Z_t__V_m_, + eval_Function_1__S_n__T_o__U_p__W_q__X_r__Y_s__Z_t__V_m_]) && $fe.parametersValues->at(0)->match([ iv:InstanceValue[1]|$iv.values->toOne(), vs:ValueSpecification[1]|$vs @@ -971,7 +972,7 @@ function <> meta::pure::router::preeval::addToScope(state : meta $p; ]); }); - + if($cleanupInScopeVarsAndTypeParams, |^$state(inScopeVars=newMap([]), inScopeTypeParams=newMap([])), |$state)->addToScope($additionalInScopeVars, $typeParams); } @@ -1063,7 +1064,7 @@ function <> meta::pure::router::preeval::isInstanceValue(v: Any function <> meta::pure::router::preeval::printDebugWithDepth(state: meta::pure::router::preeval::State[1], func:Function<{->String[1]}>[1]):Nil[0] { printDebug($state, | ('[' + toString($state.depth->orElse(''))->map(s|'0000'->substring(0, max(0, 3-$s->length())) + $s) + ']' + range($state.depth->orElse(0) + 1)->map(d|'')->joinStrings('', '-', ' ') + $func->eval())); -} +} function <> meta::pure::router::preeval::printDebug(state: meta::pure::router::preeval::State[1], func:Function<{->Any[*]}>[1]):Nil[0] { @@ -1089,4 +1090,4 @@ function <> meta::pure::router::preeval::printDebug(debugContext | print(''), | println($param); ); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/preeval/tests.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/preeval/tests.pure index 39515a0b3e7..319ce84473b 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/preeval/tests.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/preeval/tests.pure @@ -26,14 +26,15 @@ import meta::pure::mapping::modelToModel::test::shared::dest::*; import meta::pure::mapping::modelToModel::test::shared::src::*; import meta::pure::router::preeval::*; import meta::pure::router::preeval::tests::*; +import meta::core::runtime::*; import meta::pure::runtime::*; -Class meta::pure::router::preeval::tests::Person +Class meta::pure::router::preeval::tests::Person { firstName : String[1]; lastName : String[1]; otherNames : String[*]; - + name(){$this.firstName+' '+$this.lastName}:String[1]; nameWithTitle(title:String[1]){$title+' '+$this.firstName+' '+$this.lastName}:String[1]; nameWithPrefixAndSuffix(prefix:String[0..1], suffixes:String[*]) @@ -385,9 +386,9 @@ function <> meta::pure::router::preeval::tests::testPrerouting_mapOnI let input = {| range(1, $c+1, 1)->map(index|$index->toString() + currentUserId()->toString()) ;}; let expected = {|[ - ('1' + meta::pure::runtime::currentUserId()->toString()), - ('2' + meta::pure::runtime::currentUserId()->toString()), - ('3' + meta::pure::runtime::currentUserId()->toString()) + ('1' + meta::core::runtime::currentUserId()->toString()), + ('2' + meta::core::runtime::currentUserId()->toString()), + ('3' + meta::core::runtime::currentUserId()->toString()) ] }; assertRoundTrip($input, $expected); @@ -398,13 +399,13 @@ function <> meta::pure::router::preeval::tests::testPrerouting_foldOn let c = 2; let input = {| - range(1, $c+1, 1)->fold({index, r| + range(1, $c+1, 1)->fold({index, r| $r + ($index->toString() + currentUserId() + ';'); }, 'Values: ') }; let expected = {| - 'Values: ' + '1' + meta::pure::runtime::currentUserId() + ';' + '2' + meta::pure::runtime::currentUserId() + ';' + 'Values: ' + '1' + meta::core::runtime::currentUserId() + ';' + '2' + meta::core::runtime::currentUserId() + ';' }; assertRoundTrip($input, $expected); @@ -415,14 +416,14 @@ function <> meta::pure::router::preeval::tests::testPrerouting_foldOn let c = 2; let input = {| - range(1, $c+1, 1)->fold({index, r| + range(1, $c+1, 1)->fold({index, r| $r->concatenate(($index->toString() + currentUserId())); }, []) }; let expected = {| [('1' + currentUserId()), ('2' + currentUserId())] - ///[('1' + meta::pure::runtime::currentUserId())] ->concatenate('2' + meta::pure::runtime::currentUserId()) + ///[('1' + meta::core::runtime::currentUserId())] ->concatenate('2' + meta::core::runtime::currentUserId()) }; assertRoundTrip($input, $expected); @@ -458,7 +459,7 @@ function <> meta::pure::router::preeval::tests::testPrerouting_concat let g = currentUserId()->concatenate(currentUserId()); let h = ['hello', currentUserId()]->concatenate(['hello', currentUserId()]); - let i = ['hello', currentUserId(), (currentUserId() + $x->toString())]->concatenate(['hello', currentUserId(), (currentUserId() + $x->toString())]); + let i = ['hello', currentUserId(), (currentUserId() + $x->toString())]->concatenate(['hello', currentUserId(), (currentUserId() + $x->toString())]); let j = myCollectionFunc($x->toString())->concatenate(currentUserId()); @@ -473,15 +474,15 @@ function <> meta::pure::router::preeval::tests::testPrerouting_concat let expected = {| let a = currentUserId(); let b = ['hello', currentUserId()]; - let c = ['hello',meta::pure::runtime::currentUserId(),(meta::pure::runtime::currentUserId() + '2')]; + let c = ['hello',meta::core::runtime::currentUserId(),(meta::core::runtime::currentUserId() + '2')]; let d = currentUserId(); let e = ['hello', currentUserId()]; - let f = ['hello',meta::pure::runtime::currentUserId(),(meta::pure::runtime::currentUserId() + '2')]; + let f = ['hello',meta::core::runtime::currentUserId(),(meta::core::runtime::currentUserId() + '2')]; - let g = [meta::pure::runtime::currentUserId(),meta::pure::runtime::currentUserId()]; - let h = ['hello',meta::pure::runtime::currentUserId(),'hello',meta::pure::runtime::currentUserId()]; - let i = ['hello',meta::pure::runtime::currentUserId(),(meta::pure::runtime::currentUserId() + '2'),'hello',meta::pure::runtime::currentUserId(),(meta::pure::runtime::currentUserId() + '2')]; + let g = [meta::core::runtime::currentUserId(),meta::core::runtime::currentUserId()]; + let h = ['hello',meta::core::runtime::currentUserId(),'hello',meta::core::runtime::currentUserId()]; + let i = ['hello',meta::core::runtime::currentUserId(),(meta::core::runtime::currentUserId() + '2'),'hello',meta::core::runtime::currentUserId(),(meta::core::runtime::currentUserId() + '2')]; let j= ['2', currentUserId()]; @@ -770,7 +771,7 @@ function <> meta::pure::router::preeval::tests::myExpandableFunc function <> meta::pure::router::preeval::tests::testPrerouting30():Boolean[1] { - let input = {| + let input = {| range(3)->map(index|[$index, today()]); }; @@ -954,11 +955,11 @@ function <> meta::pure::router::preeval::tests::testPrerouting_parame { let input = {item:Pair[1]| let other = $item; - $other.first->isNotEmpty(); + $other.first->isNotEmpty(); }; let expected = {item:Pair[1]| - $item.first->isNotEmpty(); + $item.first->isNotEmpty(); }; assertRoundTrip($input, $expected); @@ -1068,7 +1069,7 @@ function <> meta::pure::router::preeval::tests::testPrerouting_Proper { let prop = meta::pure::router::preeval::tests::Person.properties->at(0); let name = $prop.name; - + let input = {| $prop.name;}; let expected = {| $name}; @@ -1079,7 +1080,7 @@ function <> meta::pure::router::preeval::tests::testPrerouting_Proper function <> meta::pure::router::preeval::tests::testPrerouting_OptionalLimit1():Boolean[1] { let limit = 5; - + let input = {| meta::pure::router::preeval::tests::Person.all() ->project([ @@ -1088,7 +1089,7 @@ function <> meta::pure::router::preeval::tests::testPrerouting_Option ->meta::pure::router::preeval::tests::optionalLimit($limit) }; - let expected = {| + let expected = {| meta::pure::router::preeval::tests::Person.all() ->project([ ^BasicColumnSpecification(name = 'firstName', func = {p:meta::pure::router::preeval::tests::Person[1]|$p.firstName}) @@ -1102,7 +1103,7 @@ function <> meta::pure::router::preeval::tests::testPrerouting_Option function <> meta::pure::router::preeval::tests::testPrerouting_OptionalLimit2():Boolean[1] { let limit = []; - + let input = {| meta::pure::router::preeval::tests::Person.all() ->project([ @@ -1111,7 +1112,7 @@ function <> meta::pure::router::preeval::tests::testPrerouting_Option ->meta::pure::router::preeval::tests::optionalLimit($limit) }; - let expected = {| + let expected = {| meta::pure::router::preeval::tests::Person.all() ->project([ ^BasicColumnSpecification(name = 'firstName', func = {p:meta::pure::router::preeval::tests::Person[1]|$p.firstName}) @@ -1130,7 +1131,7 @@ function meta::pure::router::preeval::tests::optionalLimit(t: TabularDataSet[1], function <> meta::pure::router::preeval::tests::testPrerouting_mappedTdsAgg():Boolean[1] { let v = [pair('name', '6')]; - + let input = {|meta::pure::router::preeval::tests::Person.all() ->project([ col({p:meta::pure::router::preeval::tests::Person[1]|$p.age}, 'age') @@ -1149,10 +1150,10 @@ function <> meta::pure::router::preeval::tests::testPrerouting_mapped function <> meta::pure::router::preeval::tests::testPrerouting_mappedModelAgg():Boolean[1] { let v = [pair('name', '6')]; - + let input = {|meta::pure::router::preeval::tests::Person.all() - ->groupBy([], - $v->map(pv|agg({p:meta::pure::router::preeval::tests::Person[1]|if($p.age->toOne()->toString() == $pv.second, | 1, | 0)}, y|$y->sum())), + ->groupBy([], + $v->map(pv|agg({p:meta::pure::router::preeval::tests::Person[1]|if($p.age->toOne()->toString() == $pv.second, | 1, | 0)}, y|$y->sum())), $v->map(pv|'sumAgg_' + $pv.first) ) }; @@ -1165,7 +1166,7 @@ function <> meta::pure::router::preeval::tests::testPrerouting_mapped } function <> meta::pure::router::preeval::tests::testPrerouting_constantInAgg():Boolean[1] -{ +{ let lambda = {| let businessDate = %2023-01-01; let x = 'a'; @@ -1199,7 +1200,7 @@ function <> meta::pure::router::preeval::tests::testPrerouting_consta let newGroupBy = ^$groupBy(parametersValues = [$groupBy.parametersValues->at(0), $groupBy.parametersValues->at(1), $newAggregateValueInstance, $groupBy.parametersValues->at(3)]); let newLambda = ^$lambda(expressionSequence = [$expressionSequence->at(0), $expressionSequence->at(1), $newGroupBy]); - + let expected = {| meta::pure::router::preeval::tests::Position.all(%2023-01-01)->groupBy([], ^meta::pure::functions::collection::AggregateValue(mapFn={x:meta::pure::router::preeval::tests::Position[1] | $x.client(%2023-01-01).name + $x->toString()},aggregateFn={y:String[*]|$y->count()}), ['ID Count']) }; @@ -1220,8 +1221,8 @@ function <> meta::pure::router::preeval::tests::testDecimalType():Boo ->project([ ^BasicColumnSpecification(name = 'price', func={f:meta::pure::router::preeval::tests::FinancialInstrument[1]| $f.price }), ^BasicColumnSpecification(name = 'decimal_constant_col', func={f:meta::pure::router::preeval::tests::FinancialInstrument[1]| 3.14}) - ]) - }; + ]) + }; assertRoundTrip($input,$expected); } @@ -1266,7 +1267,7 @@ function <> meta::pure::router::preeval::tests::testEvalWithArgs3():B let expected = {a:Integer[1]| $a+1 }; assertRoundTrip($input, $expected); -} +} function <> meta::pure::router::preeval::tests::testProjectWithInferredParameterType():Boolean[1] { @@ -1286,7 +1287,7 @@ function meta::pure::router::preeval::tests::myFunc888() : TabularDataSet[1] meta::pure::router::preeval::tests::Person.all() ->project([ col({p:meta::pure::router::preeval::tests::Person[1]|$p.age}, 'age') - ]) + ]) } @@ -1294,7 +1295,7 @@ function meta::pure::router::preeval::tests::myFunc888() : TabularDataSet[1] function <> meta::pure::router::preeval::tests::testPreroutingRemoveUnnecessaryStatements():Boolean[1] { - let input = {| + let input = {| range(5)->map(x|$x+1)->map(index|'i' + $index->toString()); 123; }; @@ -1362,7 +1363,7 @@ function <> meta::pure::router::preeval::tests::testFilterFalseSimpli { let input = {o:OrganizationalEntity[1]| $o.positions(%2023-01-01)->filter(p | false).id;}; let result = $input->preval([]); - + assertEquals(Integer, $result->functionReturnType().rawType); } @@ -1461,11 +1462,11 @@ function <> meta::pure::router::preeval::tests::testToOneElimination3 function <> meta::pure::router::preeval::tests::testRecursiveSimpleConcreteFunctionDefinition():Boolean[1] { // This is specially selected to be a single function that is recursive on itself - // The test is to validate that we don't keep trying to inline ad infinitum + // The test is to validate that we don't keep trying to inline ad infinitum let input = {s:Class[1]|meta::pure::functions::meta::hierarchicalProperties($s)}; - let expected = {s:Class[1]| + let expected = {s:Class[1]| if($s == Any, {|[]}, {|$s.properties->concatenate($s.generalizations->map({g|$g.general.rawType->cast(Any) ->toOne() ->hierarchicalProperties()})) @@ -1504,7 +1505,7 @@ function <> meta::pure::router::preeval::tests::testSchemaStateUnfurl function <> meta::pure::router::preeval::tests::testLambdaParamOverride2():Boolean[1] { - let val = 1; + let val = 1; let input = { | let x = 1; {p:Integer[1]|$p->map(x|$x+$val)};}; let expected = { | {p:Integer[1]|$p->map(x|$x+1)}}; @@ -1520,7 +1521,7 @@ function <> meta::pure::router::preeval::tests::myFunc2():String function meta::pure::router::preeval::tests::getTestRuntimeWithModelConnection(sourceClass:Class[1], inputs:Any[*]):Runtime[1] { // Need element as string to allow roundtrip to pass. When using ^ModelStore(), preeval evaluates it to a instance, however expected as it as a new function - ^Runtime(connections=^meta::pure::mapping::modelToModel::ModelConnection(element = 'DummyStore', instances=newMap(pair($sourceClass, list($inputs))))); + ^Runtime(connectionStores=^ConnectionStore(element = 'DummyStore', connection=^meta::external::store::model::ModelConnection(instances=newMap(pair($sourceClass, list($inputs)))))); } function <> meta::pure::router::preeval::tests::assertRoundTrip(input : FunctionDefinition[1], expectedOrig : FunctionDefinition[1]):Boolean[1] @@ -1566,7 +1567,7 @@ function <> meta::pure::router::preeval::tests::assertRoundTrip( // Open variables on lambdas should have been inlined / eliminated if (!$result->instanceOf(LambdaFunction), - | true, + | true, | assertEmpty($result->cast(@LambdaFunction).openVariables) ); @@ -1600,4 +1601,4 @@ function <> meta::pure::router::preeval::tests::assertRoundTrip( ); true; -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/router_entry.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/router_entry.pure index b983f4e0106..69a77ba9e59 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/router_entry.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/router_entry.pure @@ -16,7 +16,7 @@ import meta::pure::executionPlan::*; import meta::pure::executionPlan::toString::*; import meta::pure::functions::tracing::*; import meta::pure::mapping::*; -import meta::pure::router::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::pure::router::execute(f:FunctionDefinition<{->T[y]}>[1], m:Mapping[1], runtime:Runtime[1], extensions:meta::pure::extension::Extension[*]):Result[1] @@ -74,4 +74,4 @@ function meta::pure::router::executePlan(plan:ExecutionPlan[1], exeCtx:Execution ) ), 'plan execution in test database'); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/router_execution.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/router_execution.pure index 120ccabf414..293fded1ef2 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/router_execution.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/router_execution.pure @@ -23,6 +23,7 @@ import meta::pure::router::printer::*; import meta::pure::router::store::metamodel::*; import meta::pure::router::store::metamodel::clustering::*; import meta::pure::router::utils::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::store::*; @@ -60,7 +61,7 @@ function meta::pure::router::execution::executeExpression(clusters:ClusteredValu { let current = $clusters->head()->toOne()->evaluateAndDeactivate(); print(if($debug.debug,|'\n'+$debug.space+'Start Execution: '+$current.val->asString()+'\n',|'')); - + let fe = $current.val->byPassValueSpecificationWrapper()->cast(@FunctionExpression); if($fe.func == letFunction_String_1__T_m__T_m_, | let params = $fe.parametersValues->evaluateAndDeactivate(); @@ -70,25 +71,25 @@ function meta::pure::router::execution::executeExpression(clusters:ClusteredValu let newVars = $inScopeVars->put($paramName, ^List(values=$fullyRes)); let allActivities = $activities->concatenate($paramResult.activities); let tail = $clusters->tail(); - if($tail->isEmpty(), - | ^Result(values = $fullyRes, activities=$allActivities), + if($tail->isEmpty(), + | ^Result(values = $fullyRes, activities=$allActivities), | executeExpression($tail, $newVars, $allActivities, $exeCtx, $extensions, ^$debug(space = $debug.space)); - );, - | + );, + | if($current->instanceOf(StoreMappingClusteredValueSpecification), | let storeCluster = $current->cast(@StoreMappingClusteredValueSpecification); let storeQuery = getStoreQuery($storeCluster.store, $fe, $inScopeVars); let result = $storeCluster.s.executeStoreQuery->toOne()->eval($storeQuery, $storeCluster.val->match([r:RoutedValueSpecification[1]|$r, a:Any[*]|[]])->cast(@RoutedValueSpecification), $storeCluster.mapping, $storeCluster.runtime, $exeCtx, $extensions, ^$debug(space = $debug.space+' ')); let allActivities = $activities->concatenate($result.activities); let tail = $clusters->tail(); - if($tail->isEmpty(), + if($tail->isEmpty(), | ^Result(values=$result.values, activities=$allActivities), | executeExpression($tail, $inScopeVars, $allActivities, $exeCtx, $extensions, ^$debug(space = $debug.space)); );, | let result = meta::pure::router::platform::execution::execute($fe, $inScopeVars, $extensions, ^$debug(space = $debug.space+' ')); let allActivities = $activities->concatenate($result.activities); let tail = $clusters->tail(); - if($tail->isEmpty(), + if($tail->isEmpty(), | ^Result(values=$result.values, activities=$allActivities), | executeExpression($tail, $inScopeVars, $allActivities, $exeCtx, $extensions, ^$debug(space = $debug.space)); ); diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/router_main.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/router_main.pure index 6e4922ee69d..7d458751631 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/router_main.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/router_main.pure @@ -25,6 +25,7 @@ import meta::pure::router::metamodel::clustering::*; import meta::pure::router::printer::*; import meta::pure::router::routing::*; import meta::pure::router::utils::*; +import meta::core::runtime::*; import meta::pure::runtime::*; Class meta::pure::router::RoutedVariablePlaceHolder @@ -52,10 +53,10 @@ function meta::pure::router::routeFunction(f:FunctionDefinition[1], exeCtx: let unavailableVars = $reqVars.name->removeAllOptimized($inScopeVars.first->concatenate($funcParams)); assert($unavailableVars->isEmpty(), 'Unable to resolve var(s): ' + $unavailableVars->joinStrings(',')); - + let unResolvedVars = $reqVars->filter(v|let resolved = $a.second->get($v.name); $resolved.values->isEmpty() || $resolved.values->at(0)->instanceOf(RoutedVariablePlaceHolder);); - + if($unResolvedVars->isNotEmpty(), {| let unRoutedFunction = ^$l(expressionSequence = $vs, openVariables=$a.second->keys()); @@ -63,7 +64,7 @@ function meta::pure::router::routeFunction(f:FunctionDefinition[1], exeCtx: let vars = $a.second->put($varName->toOne(), ^List(values=^RoutedVariablePlaceHolder(name=$varName->toOne()))); ^$a ( - first = ^$routedFunction(expressionSequence = $a.first.expressionSequence->concatenate($routedFunction.expressionSequence)->evaluateAndDeactivate()->toOneMany())->cast(@FunctionDefinition), + first = ^$routedFunction(expressionSequence = $a.first.expressionSequence->concatenate($routedFunction.expressionSequence)->evaluateAndDeactivate()->toOneMany())->cast(@FunctionDefinition), second = $vars ); }, @@ -95,7 +96,7 @@ function meta::pure::router::routeFunction(f:FunctionDefinition[1], exeCtx: ); }, pair($l->cast(@FunctionDefinition), $f->openVariableValues()) - ); + ); let vs = $expressions->last()->toOne(); let varName = $vs->extractLetVariableName(); @@ -117,7 +118,7 @@ function meta::pure::router::routeFunction(f:FunctionDefinition[1], routing | assert($fOpenVariables->keys()->intersection($inScopeVars)->isEmpty(),'Routing : unable to determine open variables for FunctionDefinition, suplied inScopeVars and FunctionDefinitionOpenVariables intersect'); $fOpenVariables->putAll($inScopeVars->toOne()->keyValues());, | $fOpenVariables); - + let functionExpressions = $f.expressionSequence->evaluateAndDeactivate()->cast(@FunctionExpression); // Enriching Function Expressions with relevant info (mapping / binding / platform) @@ -127,7 +128,7 @@ function meta::pure::router::routeFunction(f:FunctionDefinition[1], routing // Enriching Function Expressions with more information based on type of expression (subTypes of ExtendedRoutedValueSpecification) print(if($debug.debug,|'\n'+$debug.space+'Enriching Function Expressions with strategy based info (mapping / binding / platform):\n',|'')); let enrichedExpressionsAfterStrategyBasedEnrichment = $enrichedExpressions->map(exp | $exp->enrichExpressionWithStrategyBasedEnrichment($exeCtx, $extensions, $debug)); - + // Clustering Function Expressions into clusters print(if($debug.debug,|'\n'+$debug.space+'Clustering Function Expressions:\n',|'')); let clusters = $enrichedExpressionsAfterStrategyBasedEnrichment->map(exp| $exp->clusterFunctionExpressions($openVariables, $exeCtx, $extensions, ^$debug(space = $debug.space + ' '))); @@ -145,7 +146,7 @@ function meta::pure::router::enrichExpressionWithStrategyBasedEnrichment(vs: Ext sm: StoreMappingRoutedValueSpecification[1] | $sm->enrichStoreMappingRoutedValueSpecification($exeCtx, $extensions, $debug), ef: ExternalFormatRoutedValueSpecification[1] | ^$ef(value = $ef.value->enrichExternalFormatRoutedValueSpecification($exeCtx, $extensions, $debug)), pl: PlatformRoutedValueSpecification[1] | ^$pl(value = $pl.value->enrichPlatformRoutedValueSpecification($exeCtx, $extensions, $debug)), - er: ExtendedRoutedValueSpecification[1] | fail('Unexpected ExtendedRoutedValueSpecification encountered. Please raise the issue with dev team!'); @ExtendedRoutedValueSpecification; + er: ExtendedRoutedValueSpecification[1] | fail('Unexpected ExtendedRoutedValueSpecification encountered. Please raise the issue with dev team!'); @ExtendedRoutedValueSpecification; ]) } @@ -165,6 +166,6 @@ function meta::pure::router::clusterFunctionExpressions(vs:ExtendedRoutedValueSp |let cluster = $clusteredVal->cast(@ClusteredValueSpecification); ^$cluster(val = ^$pl(value = $cluster.val));, |meta::pure::router::platform::clustering::wrapValueSpecByPlatformCluster($pl, $openVariables, $exeCtx));, - er: ExtendedRoutedValueSpecification[1] | fail('Unexpected ExtendedRoutedValueSpecification encountered. Please raise the issue with dev team!'); @ClusteredValueSpecification; + er: ExtendedRoutedValueSpecification[1] | fail('Unexpected ExtendedRoutedValueSpecification encountered. Please raise the issue with dev team!'); @ClusteredValueSpecification; ]); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/routing/router_routing.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/routing/router_routing.pure index e21a30fc15d..9e1c0747789 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/routing/router_routing.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/routing/router_routing.pure @@ -22,6 +22,7 @@ import meta::pure::router::metamodel::*; import meta::pure::router::printer::*; import meta::pure::router::routing::*; import meta::pure::router::operations::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::store::*; @@ -36,7 +37,7 @@ Class meta::pure::router::routing::RoutingState depth : String[1]; lambdaContext : String[0..1]; pathPrefix : String[*]; - propertyMap : PropertyMap[1]; + propertyMap : PropertyMap[1]; routed : ExtendedRoutedValueSpecification[*]; routingStrategy : RoutingStrategy[1]; shouldBeRouted : Boolean[1]; @@ -132,7 +133,7 @@ function <> meta::pure::router::routing::routeValueSpecification |let processedValues = processCollection($state, $i.values->evaluateAndDeactivate(), $executionContext, $vars, $inScopeVars, v:Any[1]|true, $extensions, $debug); let last = $processedValues->last()->toOne(); let shouldClean = $processedValues.value->evaluateAndDeactivate()->forAll(p|$p->instanceOf(InstanceValue) && $p->cast(@InstanceValue).genericType.rawType != LambdaFunction); - + ^$last(value = if ($shouldClean, | ^$i(values = $processedValues.value->evaluateAndDeactivate()->cast(@InstanceValue)->map(e|$e.values)), | ^$i(values = $processedValues.value))); @@ -166,7 +167,7 @@ function meta::pure::router::routing::prevalFunctionExpressionIfRequired(fe:Func { $fe.func->match( [ - f : FunctionDefinition[1] | if($f->hasStereotype('NormalizeRequiredFunction', functionType), + f : FunctionDefinition[1] | if($f->hasStereotype('NormalizeRequiredFunction', functionType), | $fe->meta::pure::router::preeval::preval($inScopeVars->putAll($f->openVariableValues()), $extensions, noDebug()), | $fe), a:Any[*] | $fe; @@ -206,15 +207,15 @@ function meta::pure::router::routing::routeFunctionExpressionFunctionDefinition( $executionContext, $vars, $inScopeVars, - v:Any[1]| let vs = $v->cast(@ValueSpecification); + v:Any[1]| let vs = $v->cast(@ValueSpecification); (!$vs->isFunction() || $vs->isPath()) && !$vs.genericType.rawType->in([ - meta::pure::functions::collection::AggregateValue, - meta::pure::tds::BasicColumnSpecification, - meta::pure::tds::WindowColumnSpecification, + meta::pure::functions::collection::AggregateValue, + meta::pure::tds::BasicColumnSpecification, + meta::pure::tds::WindowColumnSpecification, meta::pure::tds::ColumnSpecification ]);, - $extensions, + $extensions, ^$debug(space = $debug.space+' ')); let firstPass = $firstPassResults.value->evaluateAndDeactivate()->cast(@ValueSpecification); @@ -325,9 +326,9 @@ function meta::pure::router::routing::routeFunctionExpressionFunctionDefinition( let newSet = $routed->concatenate($secondPass.value->filter(p|$p->instanceOf(ExtendedRoutedValueSpecification))->cast(@ExtendedRoutedValueSpecification)); - let routedValueSpecForReturnClass = - if($returnClass->isEmpty(), - | [], + let routedValueSpecForReturnClass = + if($returnClass->isEmpty(), + | [], | if(isGetAllFunction($f), |$routed->filter(v|let ta = $v.value.genericType.typeArguments; $ta->isNotEmpty() && $ta->at(0).rawType->toOne()->_subTypeOf($returnClass->toOne());), @@ -366,7 +367,7 @@ function meta::pure::router::routing::routeFunctionExpressionFunctionDefinition( ^$routedExprSeq(value=^$fullRes(func=$newQp), pathPrefix=$state.pathPrefix);, e:ExtendedRoutedValueSpecification[1] | let qpSrcState = $firstPassResults->at(0); //rebuild Qp with routed expressionSequence let newQp = ^$qp(expressionSequence=$e, owner=^PropertyOwner()); - let qpVal = ^$e(genericType = $fe.genericType, + let qpVal = ^$e(genericType = $fe.genericType, multiplicity = $fe.multiplicity, value = ^$fullRes(func=$newQp)); ^$routedExprSeq(value=$qpVal, pathPrefix=$state.pathPrefix); @@ -462,7 +463,7 @@ function meta::pure::router::routing::processColumnSpecification(v:ValueSpecific f:FunctionExpression[1]| ^InstanceValue(genericType=$f.genericType, multiplicity=$f.multiplicity, values=$f)->evaluateAndDeactivate()]); $i.values->fold({v,a| $v->match([ - cs: BasicColumnSpecification[1] | + cs: BasicColumnSpecification[1] | let colSpecState = $cs.func->processAggregationValueFunction($a.routed->cast(@ExtendedRoutedValueSpecification), $a, $executionContext, $vars, $inScopeVars, $extensions, ^$debug(space = $debug.space+' ')); let colSpec = ^$cs(func = $colSpecState.value->match([ e:ExtendedRoutedValueSpecification[1]|$e.value, @@ -475,25 +476,25 @@ function meta::pure::router::routing::processColumnSpecification(v:ValueSpecific let iv = $a.value->cast(@InstanceValue)->toOne(); ^$colSpecState(value=^$iv(values+=$colSpec->evaluateAndDeactivate()));, fe: FunctionExpression[1] | - // By default we would expect to be able to reactive the $fe directly at this point, but we can't - // because it may have been partially modified / inlined and so not directly "executable" so we need to + // By default we would expect to be able to reactive the $fe directly at this point, but we can't + // because it may have been partially modified / inlined and so not directly "executable" so we need to // route the function to let this complete // //let colSpec = $fe->reactivate($inScopeVars)->evaluateAndDeactivate()->cast(@ColumnSpecification)->toOne(); let colSpec = $fe->processColSpecParams($a, $executionContext, $vars, $inScopeVars, $extensions, $debug); let niv = ^InstanceValue(genericType=$fe.genericType, multiplicity=$fe.multiplicity, values=$colSpec)->evaluateAndDeactivate(); let subState = processColumnSpecification($niv, $a, $executionContext, $vars, $inScopeVars, $extensions, $debug); - + let iv = $a.value->cast(@InstanceValue)->toOne(); let r = ^$subState(value=^$iv(values+=$subState.value));, x:InstanceValue[1]| let subState = processColumnSpecification($x, $a, $executionContext, $vars, $inScopeVars, $extensions, $debug); let iv = $a.value->cast(@InstanceValue)->toOne(); ^$subState(value=^$iv(values+=$subState.value)); , - other: Any[*] | + other: Any[*] | let iv = $a.value->cast(@InstanceValue)->toOne(); ^$a(value=^$iv(values+=$other)); - ]) + ]) }, ^$state(value=^$i(values=[]))); } @@ -563,7 +564,7 @@ function meta::pure::router::routing::propToString(v:ValueSpecification[1], vars function meta::pure::router::routing::varToString(a:Any[1]):String[1] { - $a->match([s:SimpleFunctionExpression[1]|$s.func.name->toOne()+ if($s.func->in([meta::pure::functions::lang::subType_Any_m__T_1__T_m_, meta::pure::functions::lang::whenSubType_Any_1__T_1__T_$0_1$_, meta::pure::functions::lang::whenSubType_Any_$0_1$__T_1__T_$0_1$_, meta::pure::functions::lang::whenSubType_Any_MANY__T_1__T_MANY_]),| $s.parametersValues->at(1)->genericType().rawType->toOne()->cast(@Class).name->toOne(),| $s.parametersValues->map(p|$p->varToString()))->makeString('(',',',')'), + $a->match([s:SimpleFunctionExpression[1]|$s.func.name->toOne()+ if($s.func->in([meta::pure::functions::lang::subType_Any_m__T_1__T_m_, meta::pure::functions::lang::whenSubType_Any_1__T_1__T_$0_1$_, meta::pure::functions::lang::whenSubType_Any_$0_1$__T_1__T_$0_1$_, meta::pure::functions::lang::whenSubType_Any_MANY__T_1__T_MANY_]),| $s.parametersValues->at(1)->genericType().rawType->toOne()->cast(@Class).name->toOne(),| $s.parametersValues->map(p|$p->varToString()))->makeString('(',',',')'), e:RoutedValueSpecification[1]|$e.value->varToString(), a:meta::pure::functions::collection::AggregateValue[1]|$a.mapFn->varToString()+$a.aggregateFn->varToString(), a:meta::pure::tds::AggregateValue[1]|$a.name+$a.mapFn->varToString()+$a.aggregateFn->varToString(), @@ -772,7 +773,7 @@ function meta::pure::router::routing::shouldStopFunctions(extensions:meta::pure: meta::pure::graphFetch::execution::graphFetch_T_MANY__RootGraphFetchTree_1__T_MANY_, meta::pure::graphFetch::execution::graphFetch_T_MANY__RootGraphFetchTree_1__Integer_1__T_MANY_, meta::pure::graphFetch::execution::graphFetchChecked_T_MANY__RootGraphFetchTree_1__Checked_MANY_, - meta::pure::graphFetch::execution::graphFetchChecked_T_MANY__RootGraphFetchTree_1__Integer_1__Checked_MANY_, + meta::pure::graphFetch::execution::graphFetchChecked_T_MANY__RootGraphFetchTree_1__Integer_1__Checked_MANY_, meta::pure::graphFetch::execution::graphFetchUnexpanded_T_MANY__RootGraphFetchTree_1__T_MANY_, meta::pure::graphFetch::execution::graphFetchCheckedUnexpanded_T_MANY__RootGraphFetchTree_1__Checked_MANY_, meta::pure::dataQuality::checked_T_MANY__Checked_MANY_, diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/store/analytics.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/store/analytics.pure index 97ad96371f2..7cc08e1977c 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/store/analytics.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/store/analytics.pure @@ -21,7 +21,7 @@ import meta::pure::router::store::metamodel::*; // TODO: package should be changed to meta::pure::router::store::analytics? -Class meta::pure::router::analytics::AnalyticsExecutionContext extends meta::pure::runtime::ExtendedExecutionContext +Class meta::pure::router::analytics::AnalyticsExecutionContext extends meta::core::runtime::ExtendedExecutionContext { useAnalytics : Boolean[1]; // To use the analytics feature or not toFlowSetFunction : LambdaFunction<{PropertyAccess[1]->String[1]}>[1]; // Will give back the set id which must flow over to the other side @@ -45,7 +45,7 @@ Class meta::pure::router::analytics::AnalyticsState Class meta::pure::router::analytics::PropertyAccessState { <> inFilterFunction : Boolean[1]; - <> inProjectFunctions : Boolean[1]; + <> inProjectFunctions : Boolean[1]; } Class meta::pure::router::analytics::PropertyAccess @@ -63,7 +63,7 @@ function meta::pure::router::analytics::filterCrossPropertyAccesses(accesses: Pr $accesses ->filter(a | $a.sourceStore != 'AGGREGATION_AWARE') ->filter(a | !$a.targetStore->in(['PRIMITIVE_PROPERTY', 'EMBEDDED', 'AGGREGATION_AWARE'])) - ->filter(a | $a.sourceStore != $a.targetStore); + ->filter(a | $a.sourceStore != $a.targetStore); } @@ -83,12 +83,12 @@ function meta::pure::router::analytics::getAllCrossPropertyAccesses(v:ValueSpeci function meta::pure::router::analytics::scanPropertyAccesses(vs:ValueSpecification[1], state:AnalyticsState[1], extensions:meta::pure::extension::Extension[*]):PropertyAccess[*] { $vs->evaluateAndDeactivate()->match([ - + fe : FunctionExpression[1] | let parameters = $fe.parametersValues->evaluateAndDeactivate(); $fe.func->evaluateAndDeactivate()->match([ p : Property[1] | - $state.propertyMappings->map(pm | + $state.propertyMappings->map(pm | ^PropertyAccess ( property = $pm.property, @@ -109,11 +109,11 @@ function meta::pure::router::analytics::scanPropertyAccesses(vs:ValueSpecificati | $parameters->at(0)->scanPropertyAccesses(^$state(propertyMappings=[]), $extensions)->concatenate($parameters->tail()->map(x | $x->scanPropertyAccesses(^$state(propertyMappings=[], inFilterFunction=!$state.inProjectFunctions), $extensions))), | if($fe.functionName == 'project', | $parameters->at(0)->scanPropertyAccesses(^$state(propertyMappings=[]), $extensions)->concatenate($parameters->tail()->map(x | $x->scanPropertyAccesses(^$state(propertyMappings=[], inProjectFunctions=true), $extensions))), - | $parameters->map(x | $x->scanPropertyAccesses(^$state(propertyMappings=[]), $extensions)))) + | $parameters->map(x | $x->scanPropertyAccesses(^$state(propertyMappings=[]), $extensions)))) ]);, e: StoreMappingRoutedValueSpecification[1] | if($e.sets->isNotEmpty() && $e.sets->at(0)->instanceOf(CrossSetImplementation), | [], | $e.value->evaluateAndDeactivate()->scanPropertyAccesses(^$state(propertyMappings=$e.propertyMapping), $extensions)), - + e : RoutedValueSpecification[1] | $e.value->evaluateAndDeactivate()->scanPropertyAccesses(^$state(propertyMappings=[]), $extensions), iv : InstanceValue[1] | @@ -126,8 +126,8 @@ function meta::pure::router::analytics::scanPropertyAccesses(vs:ValueSpecificati ), v : ValueSpecification[1] | [] - - ]) ->removeDuplicates() + + ]) ->removeDuplicates() } function meta::pure::router::analytics::getStore(setId: String[1], mapping:Mapping[1], extensions:meta::pure::extension::Extension[*]):String[1] diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/store/builder.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/store/builder.pure index a22ad4bb264..9153f44fa23 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/store/builder.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/store/builder.pure @@ -20,41 +20,42 @@ import meta::pure::router::operations::*; import meta::pure::router::printer::*; import meta::pure::router::routing::*; import meta::pure::router::utils::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::milestoning::*; // To Remove ------------------------------------------ import meta::pure::graphFetch::execution::*; import meta::pure::mapping::modelToModel::inMemory::*; -// ------------------------------------------ To Remove +// ------------------------------------------ To Remove // TODO: Should be made private -Class meta::pure::router::store::routing::Void extends ValueSpecification +Class meta::pure::router::store::routing::Void extends ValueSpecification { } function meta::pure::router::store::routing::enrichStoreMappingRoutedValueSpecification(routedVs: StoreMappingRoutedValueSpecification[1], exeCtx: ExecutionContext[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):StoreMappingRoutedValueSpecification[1] -{ +{ let setsInScope = $routedVs.routingStrategy->cast(@StoreMappingRoutingStrategy).sets; let mapping = $routedVs.mapping; let runtime = $routedVs.runtime; if(!$setsInScope->isEmpty(), - | + | // Sets print(if($debug.debug,|'\n'+$debug.space+'Sets found:\n', |'')); print(if($debug.debug,|$setsInScope->map(s|$debug.space+' ['+$s.id->toString()+'|'+$s.sets->map(si|$si.id)->joinStrings(',')+']')->joinStrings('\n')+'\n',|'')); - + // Permutation print(if($debug.debug,|'\n'+$debug.space+'Process Permutations ('+$setsInScope.id->size()->toString()+')\n', |'')); let permutations = $setsInScope->permute(); print(if($debug.debug,|$permutations->map(l|$l.values->map(p|$debug.space + ' ['+$p.id->toString()+'|'+$p.sets->toOne().id->toString()+']')->makeString(', '))->makeString('\n')+'\n', |'')); - + // Build print(if($debug.debug,|'\n'+$debug.space+'Building new queries\n', |'')); let built = $permutations->map(p|print(if($debug.debug,|' Query '+$permutations->indexOf($p)->toString()+'\n', |'')); $routedVs->evaluateAndDeactivate()->build($p, [], $mapping, $exeCtx, $extensions, $debug);); - + print(if($debug.debug,|'\n'+$debug.space+'Built queries:'+$built->size()->toString()+'\n', |'')); print(if($debug.debug,|$built->map(b|$debug.space+' - '+$b->asString())->makeString('\n')+'\n',|'')); @@ -79,12 +80,12 @@ function meta::pure::router::store::routing::enrichStoreMappingRoutedValueSpecif } function meta::pure::router::store::routing::build(v:ValueSpecification[1], l:List[*], last:SetImplementation[0..1], mapping:Mapping[1], exeCtx: ExecutionContext[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1]):ValueSpecification[1] -{ +{ $v->match([ f:FunctionExpression[1]| if($f->isSerialize(), | // Not routing tree part in serialize function call - if ($f.parametersValues->size() > 2 , - | ^$f(parametersValues = [$f.parametersValues->evaluateAndDeactivate()->at(0)->build($l, $last, $mapping, $exeCtx, $extensions, $debug), $f.parametersValues->evaluateAndDeactivate()->at(1), $f.parametersValues->evaluateAndDeactivate()->at(2)]), + if ($f.parametersValues->size() > 2 , + | ^$f(parametersValues = [$f.parametersValues->evaluateAndDeactivate()->at(0)->build($l, $last, $mapping, $exeCtx, $extensions, $debug), $f.parametersValues->evaluateAndDeactivate()->at(1), $f.parametersValues->evaluateAndDeactivate()->at(2)]), | ^$f(parametersValues = [$f.parametersValues->evaluateAndDeactivate()->at(0)->build($l, $last, $mapping, $exeCtx, $extensions, $debug), $f.parametersValues->evaluateAndDeactivate()->at(1)])), | let params = $f.parametersValues->evaluateAndDeactivate()->map(v|$v->build($l, $last, $mapping, $exeCtx, $extensions, $debug)); @@ -132,7 +133,7 @@ function meta::pure::router::store::routing::build(v:ValueSpecification[1], l:Li | $propMappings->filter(pm|$pm.targetSetImplementationId == $t.id && $pm.property.name == $propReturnTypePair.first->edgePointPropertyName()->toOne()), | $propMappings->filter(pm|$pm.targetSetImplementationId == $t.id && $pm.property.name == $propertyName));, | $resByProperty); - + let res = if($resWithAssoc->isEmpty() && $f.func->instanceOf(Property) && $s->isPropertyAutoMapped($f.func->cast(@Property), $extensions), |$s->cast(@InstanceSetImplementation)->meta::pure::mapping::propertyMappingsByPropertyName($propertyName), |$resWithAssoc); @@ -167,9 +168,9 @@ function meta::pure::router::store::routing::build(v:ValueSpecification[1], l:Li let property = $f.func->cast(@Property); let propertyMappings = $setImplementation->match([ i:InstanceSetImplementation[1]|let pMapping = $i->propertyMappingsByPropertyName($propertyName); - if($pMapping->isEmpty() && ($i->isPropertyAutoMapped($property, $extensions) || $i->isNoMappingDefaultToEmpty($property) || $i->isPartOfMerge() ), + if($pMapping->isEmpty() && ($i->isPropertyAutoMapped($property, $extensions) || $i->isNoMappingDefaultToEmpty($property) || $i->isPartOfMerge() ), | [], - {| + {| assert(!$pMapping->isEmpty(), | 'No property mapping found for: "'+$propertyName+'" in "'+$setImplementation.id+'" in the mapping "'+$setImplementation.parent->elementToPath()+'"'); assert($pMapping->size() == 1, | 'Found ' + $pMapping->size()->toString() + ' property mappings found for: "'+$propertyName+'" in "'+$setImplementation.id+'" in the mapping "'+$setImplementation.parent->elementToPath()+'"'); $pMapping->toOne(); @@ -177,9 +178,9 @@ function meta::pure::router::store::routing::build(v:ValueSpecification[1], l:Li );, o:OperationSetImplementation[1]| $o->resolveOperation($e.mapping)->map(i| let pMapping = $i->match([e:EmbeddedSetImplementation[1]| $e->propertyMappingsByPropertyName($propertyName), a:InstanceSetImplementation[1]| $i->_propertyMappingsByPropertyName($propertyName) - ]); + ]); if($pMapping->isEmpty() && ($i->isPropertyAutoMapped($property, $extensions) || $i->isNoMappingDefaultToEmpty($property) || $o->instanceOf(MergeOperationSetImplementation)), - | [], + | [], {| assert(!$pMapping->isEmpty(), | 'No property mapping found for: ' + $propertyName + ' in mapping ' + $i.class.name->toOne() + '[' + $i.id + ']'); $pMapping->toOne(); } diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/store/cluster.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/store/cluster.pure index 1cb68b26449..b341f47866a 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/store/cluster.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/store/cluster.pure @@ -27,6 +27,7 @@ import meta::pure::router::store::clustering::*; import meta::pure::router::store::metamodel::*; import meta::pure::router::store::metamodel::clustering::*; import meta::pure::router::utils::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::store::*; @@ -96,20 +97,20 @@ function meta::pure::router::clustering::cluster(v:ValueSpecification[1], mappin let expr = $func.expressionSequence->evaluateAndDeactivate()->toOne(); let y = $expr->reactivate(newMap($func->openVariableValues()->keyValues()->concatenate(pair($func->functionType().parameters->evaluateAndDeactivate().name->toOne(), list($ac))))); if($y == $ac.sourceSetId, |$ac.targetStore, |$ac.sourceStore);); - + assert($tgtStores->removeDuplicates()->size() == 1, 'More than 1 data flow target stores, Not supported!'); - + let tgtStore = $tgtStores->removeDuplicates()->toOne(); let setIdStoreIdPairs = $crossPropertyAccesses->map(ac | [pair($ac.sourceSetId, $ac.sourceStore), pair($ac.targetSetId, $ac.targetStore)])->removeDuplicates(); let targetStorePairs = $setIdStoreIdPairs->filter(x | $x.second == $tgtStore); let otherStorePairs = $setIdStoreIdPairs->filter(x | $x.second != $tgtStore); - + let replacedSets = $otherStorePairs->map(p | let setId = $p.first; let storeId = $p.second; $mapping->classMappingById($setId)->toOne()->createCrossSetImplementation($mapping, $mapping->classMappingById($targetStorePairs.first->at(0))->toOne()->meta::pure::router::routing::getStoreFromSet($mapping, $extensions), $setId + '_gen_replaced_' + toString($otherStorePairs->indexOf($p)), $crossPropertyAccesses->filter(x | $x.sourceSetId == $setId)->removeDuplicates(), $crossPropertyAccesses->filter(x | $x.targetSetId == $setId)->removeDuplicates(), $allPropertyAccesses->filter(x | $x.sourceSetId == $setId)); ); - + let modifiedSets = $targetStorePairs->map(p | let setId = $p.first; let storeId = $p.second; @@ -124,9 +125,9 @@ function meta::pure::router::clustering::cluster(v:ValueSpecification[1], mappin let crossMapping = $set->propertyMappingByPropertyNameAndTargetId($ca.property.name->toOne(), $ca.targetSetId)->toOne()->cast(@XStorePropertyMapping); ^CrossSetImplementationReverseComplexPropertyMapping ( - property = $ca.property->cast(@Property), + property = $ca.property->cast(@Property), crossExperssionPropertyPairs = $crossMapping.crossExpression.expressionSequence->evaluateAndDeactivate()->at(0)->propertyPairsInMultiEqual(), - sourceSetImplementationId = $newSetId, + sourceSetImplementationId = $newSetId, targetSetImplementationId = $newTargetSet.id, targetSet = $newTargetSet, sourcePropertyMapping = $crossMapping @@ -137,24 +138,24 @@ function meta::pure::router::clustering::cluster(v:ValueSpecification[1], mappin let newPropMappingsWithOwner = $newPropMappings->map(pm | ^$pm(owner=$newSet)); $newSet->mutateAdd('propertyMappings', $newPropMappingsWithOwner); pair($set, $newSet);, - | [] + | [] ); ); - + let otherStoreSets = $replacedSets.first; let finalCluster = cluster($v, $mapping, $openVariables, $exeCtx, $debug, ^AnalyticsDecision(replacedSets=$replacedSets, modifiedSets=$modifiedSets, targetStoreId=$tgtStore), $extensions); - + let executables = $finalCluster.executableSetOperations; let createdLetFns = $otherStoreSets->cast(@InstanceSetImplementation)->map(os | let execs = $executables->filter(e | $e.first.id == $os.id); let pre_cls = if($execs->size() == 1, | $execs->at(0).second, | $os->clusteredGetAll($mapping, $runtime, $exeCtx, $extensions)); - + let newSetId = $os.id + '_gen_modified_flowing_' + toString($otherStoreSets->indexOf($os)); let propertiesAccessed = $allPropertyAccesses->filter(s | $s.sourceSetId == $os.id).property; let propertiesInSourceCrossExpressions = $crossPropertyAccesses->filter(s | $s.sourceSetId == $os.id)->map(cross | $os->cast(@InstanceSetImplementation)->propertyMappingByPropertyNameAndTargetId($cross.property.name->toOne(), $cross.targetSetId)->toOne()->cast(@XStorePropertyMapping).crossExpression.expressionSequence->evaluateAndDeactivate()->at(0)->propertyPairsInMultiEqual().first); let propertiesInTargetCrossExpressions = $crossPropertyAccesses->filter(s | $s.targetSetId == $os.id)->map(cross | $mapping->classMappingById($cross.sourceSetId)->cast(@InstanceSetImplementation)->toOne()->propertyMappingByPropertyNameAndTargetId($cross.property.name->toOne(), $cross.targetSetId)->toOne()->cast(@XStorePropertyMapping).crossExpression.expressionSequence->evaluateAndDeactivate()->at(0)->propertyPairsInMultiEqual().second); let requiredSimpleProperties = $propertiesAccessed->concatenate($propertiesInSourceCrossExpressions)->concatenate($propertiesInTargetCrossExpressions)->removeDuplicates(); - + let allPropertyMappings = $os->allPropertyMappings()->filter(pm | $requiredSimpleProperties->contains($pm.property))->map(pm | ^$pm(sourceSetImplementationId = $newSetId)); let newSet = ^$os(superSetImplementationId='', id=$newSetId, propertyMappings=[]); let newPropMappingsWithOwner = $allPropertyMappings->map(pm | ^$pm(owner=$newSet)); @@ -200,7 +201,7 @@ function meta::pure::router::clustering::cluster(v:ValueSpecification[1], mappin ^$finalCluster(letFunctions = $createdLetFns->concatenate($finalCluster.letFunctions)); );, | cluster($v, $mapping, $openVariables, $exeCtx, $debug, [], $extensions); - ); + ); } function meta::pure::router::clustering::specializedFunctionExpressionClustering() : PairBoolean[1]}>, Function<{FunctionExpression[1], Mapping[1], Map>[1], ExecutionContext[1], DebugContext[1], AnalyticsDecision[0..1], meta::pure::extension::Extension[*]->ClusterResponse[1]}>>[*] @@ -212,7 +213,7 @@ function meta::pure::router::clustering::specializedFunctionExpressionClustering let params = $childClustersResponse.cluster->evaluateAndDeactivate(); let runtime = $f.parametersValues->at(3)->cast(@InstanceValue).values->cast(@Runtime)->toOne(); - let store = $runtime.connections.element->cast(@meta::pure::store::Store)->toOne(); + let store = $runtime.connectionStores.element->cast(@meta::pure::store::Store)->toOne(); ^ClusterResponse( cluster = ^StoreMappingClusteredValueSpecification( openVars = $openVariables, @@ -254,7 +255,7 @@ function meta::pure::router::clustering::cluster(v:ValueSpecification[1], mappin let pre_params = $childClustersResponse.cluster->evaluateAndDeactivate(); let paramsExecutablePairs = if($analyticsDecision->isNotEmpty(), | let crossPropertyAccesses = meta::pure::router::analytics::getAllCrossPropertyAccesses($f, $mapping, $extensions); - if($crossPropertyAccesses->isNotEmpty(), + if($crossPropertyAccesses->isNotEmpty(), | let newExecutables = $pre_params->map(p | $p->match([ c:StoreMappingClusteredValueSpecification[1] | if($c.executable && $c.val->instanceOf(StoreMappingRoutedValueSpecification) && $c.val->cast(@StoreMappingRoutedValueSpecification).sets->size() == 1 && $analyticsDecision.replacedSets.first.id->contains($c.val->cast(@StoreMappingRoutedValueSpecification).sets.id->toOne()), | pair($c.val->cast(@StoreMappingRoutedValueSpecification).sets->toOne(), $c);, @@ -262,10 +263,10 @@ function meta::pure::router::clustering::cluster(v:ValueSpecification[1], mappin v:ValueSpecification[1] | [] ])); let rewrittenParams = $f.parametersValues->evaluateAndDeactivate()->map(p | $p->doReplacementWithPairsForVS($analyticsDecision.replacedSets->concatenate($analyticsDecision.modifiedSets))->cluster($mapping, $openVariables, $exeCtx, $debug, [], $extensions)).cluster->evaluateAndDeactivate(); - pair(list($rewrittenParams), list($newExecutables));, + pair(list($rewrittenParams), list($newExecutables));, | pair(list($pre_params), list([])); );, - | pair(list($pre_params), list([])); + | pair(list($pre_params), list([])); ); let params = $paramsExecutablePairs.first.values; let executables = $paramsExecutablePairs.second.values->cast(@Pair); @@ -293,7 +294,7 @@ function meta::pure::router::clustering::cluster(v:ValueSpecification[1], mappin | let varName = meta::pure::router::clustering::createVarExpName($paramSuffix); meta::pure::router::clustering::createVariableExpression($p,$varName);, | $p)->cast(@ValueSpecification)); - + print(if($debug.debug,| $updatedParams->map(l|$l->evaluateAndDeactivate()->asString()->debug($debug.space+' '))->joinStrings(' ')->debug($debug.space+'updated Function Parameters:'),|'')); let updatedUnique = getDistinctClusterVSByStore($updatedParams, $extensions); if($updatedUnique->size()==1, @@ -310,7 +311,7 @@ function meta::pure::router::clustering::cluster(v:ValueSpecification[1], mappin executable = true );, | [];)); - + print(if($debug.debug, |$newLetFns->map(l|$l->evaluateAndDeactivate()->asString()->debug($debug.space+'Generated Lets:'))->joinStrings(''), |'')); let updatedOne = $updatedUnique->toOne(); let updatedCluster = ^$updatedOne( @@ -329,7 +330,7 @@ function meta::pure::router::clustering::cluster(v:ValueSpecification[1], mappin |$p))), executable=true )); - + );, | ^ClusterResponse(cluster=^PlatformClusteredValueSpecification( genericType = $f.genericType, @@ -443,7 +444,7 @@ function meta::pure::router::clustering::cluster(v:ValueSpecification[1], mappin executable = true )), e:ExtendedRoutedValueSpecification[1] | ^ClusterResponse(cluster=$e->clusterFunctionExpressions($openVariables, $exeCtx, $extensions, $debug)->toOne()) - + ] )->cast(@ClusterResponse); } @@ -496,8 +497,8 @@ function meta::pure::router::clustering::getDistinctClusterVSByStore(params:Valu let allClusters = if($recurse, | $params->filter(p|$p->instanceOf(SimpleFunctionExpression))->fold({x, y | $x->cast(@SimpleFunctionExpression).parametersValues->getDistinctClusterVSByStore($recurse, $extensions)->concatenate($y->cast(@SimpleFunctionExpression).parametersValues->getDistinctClusterVSByStore($recurse, $extensions))},[]), | []); - - let p_unique = $allClusters->concatenate($params)->filter(p|$p->instanceOf(ClusteredValueSpecification))->cast(@ClusteredValueSpecification)->removeDuplicates({x, y | ($x->instanceOf(PlatformClusteredValueSpecification) && $y->instanceOf(PlatformClusteredValueSpecification)) + + let p_unique = $allClusters->concatenate($params)->filter(p|$p->instanceOf(ClusteredValueSpecification))->cast(@ClusteredValueSpecification)->removeDuplicates({x, y | ($x->instanceOf(PlatformClusteredValueSpecification) && $y->instanceOf(PlatformClusteredValueSpecification)) || ($x->instanceOf(StoreMappingClusteredValueSpecification) && $y->instanceOf(StoreMappingClusteredValueSpecification) && areStoreMappingClustersCompatible($x->cast(@StoreMappingClusteredValueSpecification), $y->cast(@StoreMappingClusteredValueSpecification), $extensions))}); let n_unique = if ($p_unique->size() > 1,|$p_unique->filter(p|!$p.val->isOneFunction()),|$p_unique); $n_unique; @@ -505,7 +506,7 @@ function meta::pure::router::clustering::getDistinctClusterVSByStore(params:Valu function meta::pure::router::store::clustering::areStoreMappingClustersCompatible(cluster1:StoreMappingClusteredValueSpecification[1], cluster2:StoreMappingClusteredValueSpecification[1], extensions:meta::pure::extension::Extension[*]):Boolean[1] { - ($cluster1.store->elementToPath() == $cluster2.store->elementToPath()) && meta::pure::runtime::runtimeEquality($cluster1.runtime, $cluster2.runtime, $extensions) && ($cluster1.exeCtx == $cluster2.exeCtx); + ($cluster1.store->elementToPath() == $cluster2.store->elementToPath()) && meta::core::runtime::runtimeEquality($cluster1.runtime, $cluster2.runtime, $extensions) && ($cluster1.exeCtx == $cluster2.exeCtx); } function <> meta::pure::router::clustering::createLetFunction(orginalFunction:FunctionExpression[1], varExpressionName:String[1], parentCluster:StoreMappingClusteredValueSpecification[1], extensions:meta::pure::extension::Extension[*]):SimpleFunctionExpression[1] @@ -552,7 +553,7 @@ function <> meta::pure::router::clustering::clusteredVSToBeRepla if($clusteredVSToBeReplaced->forAll(c | $c.val->byPassValueSpecificationWrapper()->instanceOf(FunctionExpression) && $c.val->byPassValueSpecificationWrapper()->cast(@FunctionExpression).func->functionReturnType().rawType->isNotEmpty() && $c.val->byPassValueSpecificationWrapper()->cast(@FunctionExpression).func->functionReturnType().rawType->toOne()->_subTypeOf(TabularDataSet)), - | $clusteredVSToBeReplaced, + | $clusteredVSToBeReplaced, | []); } @@ -588,8 +589,8 @@ function <> meta::pure::router::clustering::propertyPairsInMulti );, a: Any[*] | assert(false, 'Complex cross expressions not supported yet!'); []; ]), - | if($f.functionName == 'and', - | $params->at(0)->propertyPairsInMultiEqual()->concatenate($params->at(1)->propertyPairsInMultiEqual()), + | if($f.functionName == 'and', + | $params->at(0)->propertyPairsInMultiEqual()->concatenate($params->at(1)->propertyPairsInMultiEqual()), | assert(false, 'Complex cross expressions not supported yet!'); []; ); ); @@ -599,20 +600,20 @@ function <> meta::pure::router::clustering::propertyPairsInMulti function <> meta::pure::router::clustering::createCrossSetImplementation(set:SetImplementation[1], mapping:Mapping[1], store: Store[1], varName: String[1], sourceCrossAcceses: meta::pure::router::analytics::PropertyAccess[*], targetCrossAcceses: meta::pure::router::analytics::PropertyAccess[*], allPropertyAccesses: PropertyAccess[*]):Pair[1] { let newSetId = $varName; - + let propertiesAccessed = $allPropertyAccesses.property; let propertiesInSourceCrossExpressions = $sourceCrossAcceses->map(cross | $set->cast(@InstanceSetImplementation)->propertyMappingByPropertyNameAndTargetId($cross.property.name->toOne(), $cross.targetSetId)->toOne()->cast(@XStorePropertyMapping).crossExpression.expressionSequence->evaluateAndDeactivate()->at(0)->propertyPairsInMultiEqual().first); let propertiesInTargetCrossExpressions = $targetCrossAcceses->map(cross | $mapping->classMappingById($cross.sourceSetId)->cast(@InstanceSetImplementation)->toOne()->propertyMappingByPropertyNameAndTargetId($cross.property.name->toOne(), $cross.targetSetId)->toOne()->cast(@XStorePropertyMapping).crossExpression.expressionSequence->evaluateAndDeactivate()->at(0)->propertyPairsInMultiEqual().second); let requiredSimpleProperties = $propertiesAccessed->concatenate($propertiesInSourceCrossExpressions)->concatenate($propertiesInTargetCrossExpressions)->removeDuplicates(); - + let simplePropertyMappings = $set->cast(@InstanceSetImplementation)->allPropertyMappings() ->filter(s| $s.property->genericType().typeArguments->at(1).rawType->toOne()->instanceOf(DataType)) ->filter(s | $requiredSimpleProperties->contains($s.property)) ->map(pm | ^CrossSetImplementationPrimtivePropertyMapping ( - property = $pm.property->cast(@Property), - propertyPlaceHolder = $pm.property.name->toOne(), - sourceSetImplementationId = $newSetId, + property = $pm.property->cast(@Property), + propertyPlaceHolder = $pm.property.name->toOne(), + sourceSetImplementationId = $newSetId, targetSetImplementationId = '', sourcePropertyMapping = $pm ) @@ -620,16 +621,16 @@ function <> meta::pure::router::clustering::createCrossSetImplem let complexPropertyMappings = $sourceCrossAcceses->map(cross | ^CrossSetImplementationComplexPropertyMapping ( - property = $cross.property->cast(@Property), + property = $cross.property->cast(@Property), crossExperssionPropertyPairs = $set->cast(@InstanceSetImplementation)->propertyMappingByPropertyNameAndTargetId($cross.property.name->toOne(), $cross.targetSetId)->toOne()->cast(@XStorePropertyMapping).crossExpression.expressionSequence->evaluateAndDeactivate()->at(0)->propertyPairsInMultiEqual(), - sourceSetImplementationId = $newSetId, + sourceSetImplementationId = $newSetId, targetSetImplementationId = $cross.targetSetId, sourcePropertyMapping = $set->cast(@InstanceSetImplementation)->propertyMappingByPropertyNameAndTargetId($cross.property.name->toOne(), $cross.targetSetId)->toOne() ) ); - + let allPropertyMappings = $simplePropertyMappings->concatenate($complexPropertyMappings); - + let crossSet = ^CrossSetImplementation ( targetStore = $store, @@ -639,10 +640,10 @@ function <> meta::pure::router::clustering::createCrossSetImplem parent = $set.parent, varName = $varName ); - + let allPropertyMappingsWithAddedOwner = $allPropertyMappings->map(a | ^$a(owner = $crossSet)); $crossSet->mutateAdd('propertyMappings', $allPropertyMappingsWithAddedOwner); - + pair($set, $crossSet); } @@ -655,9 +656,9 @@ function meta::pure::router::clustering::doReplacementWithPairsForVS(vs: ValueSp | $vs, | ^$evs ( - value = $evs.value->doReplacementWithPairsForVS($pairs), + value = $evs.value->doReplacementWithPairsForVS($pairs), sets = $evs.sets->map(ss | if($pairs.first.id->contains($ss.id), |$pairs->filter(s|$s.first.id == $ss.id)->at(0).second, |$ss)), - propertyMapping = $evs.propertyMapping->map(pm | + propertyMapping = $evs.propertyMapping->map(pm | let set = $pm.owner.parent->toOne()->classMappingById(if($pm.sourceSetImplementationId == '',|$pm.owner->cast(@InstanceSetImplementation).id->toOne(), |$pm.sourceSetImplementationId)); if($set->isEmpty(), | $pm, | let parent = $set->toOne(); @@ -708,7 +709,7 @@ function meta::pure::router::clustering::clusteredGetAll(set: SetImplementation[ ), routingStrategy = meta::pure::router::store::routing::getRoutingStrategyFromMappingAndRuntime($mapping, $runtime) )->evaluateAndDeactivate(); - + let clustered = list($newExpr)->doCluster(^LambdaFunction<{->Any[1]}>(expressionSequence=^InstanceValue(values='', genericType=^GenericType(rawType=String), multiplicity=PureOne)), $mapping, $runtime, @@ -731,7 +732,7 @@ function meta::pure::router::doCluster(built:List[*], f:Func ->map( c| print(if($clusteringDebug.debug,|'\n'+$c->asString()->debug($clusteringDebug.space+'Processing: '),|'')); let res = $c->cluster($mapping, $runtime, $openVariables, $exeCtx, $extensions, $clusteringDebug); - + $res->map(clusterResult| if($clusterResult.cluster->instanceOf(ClusteredValueSpecification), |$clusterResult.letFunctions->concatenate($clusterResult.cluster), @@ -745,7 +746,7 @@ function meta::pure::router::doCluster(built:List[*], f:Func ) ); );); - + let result = ^$f(expressionSequence = $res->toOneMany()); print(if($debug.debug,|$result->asString()+'\n',|'')); $result; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/store/metamodel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/store/metamodel.pure index a2297259791..88f99a06b20 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/store/metamodel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/store/metamodel.pure @@ -19,6 +19,7 @@ import meta::pure::router::metamodel::clustering::*; import meta::pure::router::routing::*; import meta::pure::router::store::metamodel::*; import meta::pure::router::store::metamodel::clustering::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::store::*; @@ -53,7 +54,7 @@ Class meta::pure::router::store::metamodel::StoreMappingRoutingStrategy extends sets : PermutationSet[*]; setsByDepth : Map[1]; toChooseSet : SetImplementation[0..1]; - + classMappingsByClass:Map,List>[1]; //TODO: Move to mapping classMappingsForClass(class:Class[1]) @@ -71,7 +72,7 @@ Class meta::pure::router::store::metamodel::clustering::StoreClusteredValueSpeci Class meta::pure::router::store::metamodel::clustering::StoreMappingClusteredValueSpecification extends StoreClusteredValueSpecification { - mapping : Mapping[1]; + mapping : Mapping[1]; } // ========================================================================================= @@ -111,6 +112,7 @@ Class meta::pure::router::ClassSetImplementationHolder extends RoutedValueSpecif import meta::pure::graphFetch::*; import meta::pure::graphFetch::routing::*; import meta::pure::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::store::*; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/store/routing.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/store/routing.pure index 8d27eefcfd3..bb57daf24cc 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/store/routing.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/store/routing.pure @@ -22,6 +22,7 @@ import meta::pure::router::operations::*; import meta::pure::router::preeval::*; import meta::pure::router::printer::*; import meta::pure::router::routing::*; +import meta::core::runtime::*; import meta::pure::runtime::*; // ========================================================================================= @@ -30,9 +31,9 @@ import meta::pure::runtime::*; function meta::pure::router::store::routing::getRoutingStrategyFromMappingAndRuntime(mapping:Mapping[1], runtime:Runtime[1]):StoreMappingRoutingStrategy[1] { - ^StoreMappingRoutingStrategy(mapping = $mapping, - runtime = $runtime, - setsByDepth = ^Map(), + ^StoreMappingRoutingStrategy(mapping = $mapping, + runtime = $runtime, + setsByDepth = ^Map(), classMappingsByClass = $mapping->buildClassMappingsByClassMap(), processClass = processClass_Class_1__InstanceValue_1__RoutingState_1__ExecutionContext_1__DebugContext_1__RoutingState_1_, processProperty = routeFunctionExpressionProperty_Property_1__FunctionExpression_1__RoutingState_1__ExecutionContext_1__Map_1__Map_1__Extension_MANY__DebugContext_1__RoutingState_1_, @@ -45,7 +46,7 @@ function <> meta::pure::router::store::routing::processClass(c:C let strategy = $s.routingStrategy->cast(@StoreMappingRoutingStrategy); let mapping = $strategy.mapping; let runtime = $strategy.runtime; - + let state = ^$s(depth = $s.depth + $c->varToString()); let classMapping = if($strategy.toChooseSet->isEmpty(), |$mapping->rootClassMappingByClass($c)->potentiallyResolveOperation($mapping), |$strategy.toChooseSet); // Possible when the mapping is 'embedded' @@ -61,9 +62,9 @@ function <> meta::pure::router::store::routing::processClass(c:C let newSet = if (!$existingSetCanBeUsed,|^PermutationSet(id = $state.counter+1, sets = $classMapping),|[]); let currentRoutingStrategy = $state.routingStrategy->cast(@StoreMappingRoutingStrategy)->toOne(); let updatedRoutingStrategy = ^$currentRoutingStrategy(setsByDepth = if (!$existingSetCanBeUsed, - |let setByD = $state.routingStrategy->cast(@StoreMappingRoutingStrategy).setsByDepth; + |let setByD = $state.routingStrategy->cast(@StoreMappingRoutingStrategy).setsByDepth; $setByD->put(getSetPath($state), $newSet->toOne());, - |$state.routingStrategy->cast(@StoreMappingRoutingStrategy).setsByDepth + |$state.routingStrategy->cast(@StoreMappingRoutingStrategy).setsByDepth ), sets = if (!$existingSetCanBeUsed,|$state.routingStrategy->cast(@StoreMappingRoutingStrategy).sets->add($newSet->toOne()),|$state.routingStrategy->cast(@StoreMappingRoutingStrategy).sets)); let routed = ^StoreMappingRoutedValueSpecification(genericType = $i.genericType, @@ -147,20 +148,20 @@ function <> meta::pure::router::store::routing::routeFunctionExp ^$last( value= $routed );, - | + | let foundSets = $p->findMappingsFromProperty($mapping, $srcSets, $v, $extensions);//is this for embedded? if ($foundSets->isEmpty(), |^$last(value=^$fe(parametersValues = $newPV)), | // Can't assert because of embedded //assert(!$foundSets->isEmpty(), $targetType.name+' :('); - + let existingSet = $last->findExistingPemutationSet($debug); let existingSetCanBeUsed = $existingSet->permutationSetOnlyHasImplementation($foundSets); let newID = if($existingSetCanBeUsed, |$existingSet->toOne().id, |$last.counter+1 )->toString(); - + let oldPropertyMap = $last.propertyMap->toOne(); let newSet = if (!$existingSetCanBeUsed,|^PermutationSet(id = $last.counter+1, sets = $foundSets),|[]); @@ -181,8 +182,8 @@ function <> meta::pure::router::store::routing::routeFunctionExp ); ^$last( counter = if (!$existingSetCanBeUsed,|$last.counter+1,|$last.counter), - routingStrategy = $updatedRoutingStrategy, - propertyMap = ^$oldPropertyMap(v += pair($propId, $added->cast(@Any))), + routingStrategy = $updatedRoutingStrategy, + propertyMap = ^$oldPropertyMap(v += pair($propId, $added->cast(@Any))), value= $added ); ); @@ -249,7 +250,7 @@ function meta::pure::router::store::routing::specializedFunctionExpressionRoute let processedFunction = routeFunctionExpressionFunctionDefinition($f, $fe, $state, $executionContext, $vars, $inScopeVars, $extensions, $debug); let valueSpec = $processedFunction.value->toOne(); - + let x = if($valueSpec->meta::pure::functions::meta::instanceOf(StoreMappingRoutedValueSpecification), | let funcExpression = $valueSpec->cast(@StoreMappingRoutedValueSpecification)->evaluateAndDeactivate().value; @@ -277,19 +278,19 @@ function meta::pure::router::store::routing::specializedFunctionExpressionRoute pair(fe:FunctionExpression[1] | $fe.func->in(meta::pure::mutation::mutationFunctions()), {f:Function[1], fe:FunctionExpression[1], state:RoutingState[1], executionContext:ExecutionContext[1], vars:Map[1], inScopeVars:Map>[1], extensions:meta::pure::extension::Extension[*], debug:DebugContext[1] | let prevalFunc = $fe->preval($inScopeVars, $extensions, $debug)->cast(@SimpleFunctionExpression); - + let mapping = $prevalFunc.parametersValues->at(2)->cast(@InstanceValue).values->toOne()->cast(@Mapping); let runtime = $prevalFunc.parametersValues->at(3)->cast(@InstanceValue).values->toOne()->cast(@Runtime); - + let currentRoutingStrategy = $state.routingStrategy; let newRoutingStrategy = if($currentRoutingStrategy->instanceOf(StoreMappingRoutingStrategy), | let storeMapStrategy = $currentRoutingStrategy->cast(@StoreMappingRoutingStrategy); ^$storeMapStrategy(mapping = $mapping, runtime = $runtime, classMappingsByClass = $mapping->buildClassMappingsByClassMap(), setsByDepth = ^Map());, | getRoutingStrategyFromMappingAndRuntime($mapping, $runtime)); - + let processedFirstParam = processCollection($state, $fe.parametersValues->at(0), $executionContext, $vars, $inScopeVars, {x:Any[1] | true}, $extensions, $debug)->toOne(); let processedSave = ^$fe(parametersValues = $processedFirstParam.value->cast(@ValueSpecification)->concatenate($fe.parametersValues->tail())); - let routedSave = + let routedSave = ^StoreMappingRoutedValueSpecification( executionContext = $executionContext, routingStrategy = $newRoutingStrategy, @@ -335,12 +336,12 @@ function meta::pure::router::store::routing::processProperty(p:AbstractProperty< let currentRoutingStrategy = $state.routingStrategy->cast(@StoreMappingRoutingStrategy)->toOne(); let updatedRoutingStrategy = ^$currentRoutingStrategy(setsByDepth = if($existingSet->isEmpty(), - | let setByD = $state.routingStrategy->cast(@StoreMappingRoutingStrategy).setsByDepth; + | let setByD = $state.routingStrategy->cast(@StoreMappingRoutingStrategy).setsByDepth; $setByD->put(getSetPath($state), $newSet->toOne());, | $state.routingStrategy->cast(@StoreMappingRoutingStrategy)->toOne().setsByDepth ), sets = if ($existingSet->isEmpty(),|$state.routingStrategy->cast(@StoreMappingRoutingStrategy).sets->add($newSet->toOne()),|$state.routingStrategy->cast(@StoreMappingRoutingStrategy).sets)); - + let routed = ^StoreMappingRoutedValueSpecification( genericType = $i.genericType, multiplicity = $i.multiplicity, @@ -372,7 +373,7 @@ function meta::pure::router::store::routing::isPropertyAutoMapped(srcSets:SetImp function meta::pure::router::routing::getClassMappings(c:Class[1], r:RoutingState[1]):SetImplementation[*] { - let classMappings = $r.routingStrategy->cast(@StoreMappingRoutingStrategy).classMappingsForClass($c)->concatenate($c.generalizations.general.rawType->cast(@Class)->map(g|$g->getClassMappings($r))); + let classMappings = $r.routingStrategy->cast(@StoreMappingRoutingStrategy).classMappingsForClass($c)->concatenate($c.generalizations.general.rawType->cast(@Class)->map(g|$g->getClassMappings($r))); assert($classMappings.class->removeDuplicates()->size() <= 1, 'Expected class mapping for only 1 class [Class: ' + $c.name->toOne() + ']'); $classMappings; } diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/runtime/runtimeExtension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/runtime/runtimeExtension.pure index ceea31ca68c..af4e0994f5a 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/runtime/runtimeExtension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/runtime/runtimeExtension.pure @@ -12,12 +12,14 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::store::*; import meta::pure::mapping::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; -Class meta::pure::runtime::EngineRuntime extends Runtime +Class meta::core::runtime::EngineRuntime extends Runtime { mappings: Mapping[*]; // NOTE: we don't need to process the rest of engine runtime for now @@ -25,47 +27,47 @@ Class meta::pure::runtime::EngineRuntime extends Runtime Class meta::pure::runtime::PackageableRuntime extends PackageableElement { - runtimeValue: meta::pure::runtime::EngineRuntime[1]; + runtimeValue: meta::core::runtime::EngineRuntime[1]; } Class meta::pure::runtime::PackageableConnection extends PackageableElement { - + } -Class meta::pure::runtime::ExtendedExecutionContext extends meta::pure::runtime::ExecutionContext +Class meta::core::runtime::ExtendedExecutionContext extends meta::pure::runtime::ExecutionContext { constraintsManager : Function<{Any[1]->Any[1]}>[0..1]; } -function meta::pure::runtime::runtimeEquality(a:Runtime[0..1], b:Runtime[0..1], extensions : meta::pure::extension::Extension[*]):Boolean[1] -{ - if($a->isEmpty() && $b->isEmpty(), +function meta::core::runtime::runtimeEquality(a:Runtime[0..1], b:Runtime[0..1], extensions : meta::pure::extension::Extension[*]):Boolean[1] +{ + if($a->isEmpty() && $b->isEmpty(), |true, |if($a->isNotEmpty() && $b->isNotEmpty(), - | let r = $a.connections->removeAll($b.connections, { connA,connB | connectionEquality($connA, $connB, $extensions)}); - let r2 = $a.connections->removeAll($r, { connA,connB | connectionEquality($connA, $connB, $extensions)}); - $r2->size() == $a.connections->size();, + | let r = $a.connectionStores->removeAll($b.connectionStores, { connA,connB | $connA.element==$connB.element && connectionEquality($connA.connection, $connB.connection, $extensions)}); + let r2 = $a.connectionStores->removeAll($r, { connA,connB | $connA.element==$connB.element && connectionEquality($connA.connection, $connB.connection, $extensions)}); + $r2->size() == $a.connectionStores->size();, |false)); } -function meta::pure::runtime::connectionEquality(a:Connection[1], b:Connection[1], extensions : meta::pure::extension::Extension[*]):Boolean[1] +function meta::core::runtime::connectionEquality(a:Connection[1], b:Connection[1], extensions : meta::pure::extension::Extension[*]):Boolean[1] { //TODO post processors are currently ignored in the equality - + if( $a->type() == $b->type(), |$a->match( $extensions.routerExtensions().connectionEquality->map(e | $e->eval($b))->concatenate([ a:Connection[1] | true ])->toOneMany() - ), + ), |false - ); + ); } -function meta::pure::runtime::getConstraintsManager(exeCtx:ExecutionContext[1]):Function<{Any[1]->Any[1]}>[0..1] +function meta::core::runtime::getConstraintsManager(exeCtx:ExecutionContext[1]):Function<{Any[1]->Any[1]}>[0..1] { if ($exeCtx.enableConstraints->isNotEmpty() && $exeCtx.enableConstraints == false, |meta::pure::constraints::functions::noOpConstraintHandler_Any_1__Any_1_, @@ -76,56 +78,67 @@ function meta::pure::runtime::getConstraintsManager(exeCtx:ExecutionContext[1]): ); } -function meta::pure::runtime::connectionByElement(runtime:Runtime[1], store:Store[1]):Connection[1] +function meta::core::runtime::connectionByElement(runtime:Runtime[1], store:Store[1]):Connection[1] { - assert($runtime.connections->size() >= 1, | 'No connections were found in runtime.'); + assert($runtime.connectionStores->size() >= 1, | 'No connections were found in runtime.'); if ($store->instanceOf(ModelStore), - |let connections = $runtime.connections->filter(c|$c.element->instanceOf(ModelStore)); + |let connections = $runtime.connectionStores->filter(c|$c.element->instanceOf(ModelStore)).connection; $connections->toOne($connections->size()->toString()+' connection(s) for "ModelStore" were found in the runtime. Expected 1 connection.');, - |let connections = $runtime.connections->filter(c|$c.element == $store); + |let connections = $runtime.connectionStores->filter(c|$c.element == $store).connection; //meta::pure::functions::asserts::assertSize($connection, 1, |$connection->size()->toString()+' connection(s) for store "'+$store.name->toOne()+'" were found in the runtime'); if ($connections->size() == 0, - | $runtime.connections->at(0), + | $runtime.connectionStores.connection->at(0), | $connections->toOne($connections->size()->toString()+' connection(s) for store "'+$store.name->toOne()+'" were found in the runtime. Expected 1 connection.') ); ); } -function meta::pure::runtime::getMappingsFromRuntime(runtime:Runtime[0..1]):Mapping[*] +function meta::core::runtime::getMappingsFromRuntime(runtime:Runtime[0..1]):Mapping[*] { - if($runtime->isNotEmpty(),|$runtime.connections->filter(c | $c->instanceOf(ModelChainConnection))->cast(@ModelChainConnection).mappings,|[]); + if($runtime->isNotEmpty(),|$runtime.connectionStores->filter(c | $c.connection->instanceOf(ModelChainConnection)).connection->cast(@ModelChainConnection).mappings,|[]); } -function meta::pure::runtime::getRuntimeWithModelConnection(sourceClass:Class[1], inputs:Any[*]):Runtime[1] +function meta::core::runtime::getRuntimeWithModelConnection(sourceClass:Class[1], inputs:Any[*]):Runtime[1] { - ^Runtime(connections=^ModelConnection(element = ^ModelStore(), instances=newMap(pair($sourceClass, list($inputs))))); + ^Runtime( + connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection= ^ModelConnection(instances=newMap(pair($sourceClass, list($inputs)))))); } -function meta::pure::runtime::getRuntimeWithModelQueryConnection(sourceClass:Class[1], binding:meta::external::format::shared::binding::Binding[1], input:Byte[*]):Runtime[1] +function meta::core::runtime::getRuntimeWithModelQueryConnection(sourceClass:Class[1], binding:meta::external::format::shared::binding::Binding[1], input:Byte[*]):Runtime[1] { - ^Runtime(connections = ^ModelQueryConnection(element = ^ModelStore(), instancesProvider=newMap(pair($sourceClass, {tree:meta::pure::graphFetch::RootGraphFetchTree[1] | $sourceClass->meta::external::format::shared::functions::internalize($binding, $input)->meta::pure::graphFetch::execution::graphFetch($tree)})))); + ^Runtime(connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection= ^ModelQueryConnection(instancesProvider=newMap(pair($sourceClass, {tree:meta::pure::graphFetch::RootGraphFetchTree[1] | $sourceClass->meta::external::format::shared::functions::internalize($binding, $input)->meta::pure::graphFetch::execution::graphFetch($tree)}))))); } -function meta::pure::runtime::getRuntimeWithModelQueryConnection(sourceClass:Class[1], binding:meta::external::format::shared::binding::Binding[1], input:String[1]):Runtime[1] +function meta::core::runtime::getRuntimeWithModelQueryConnection(sourceClass:Class[1], binding:meta::external::format::shared::binding::Binding[1], input:String[1]):Runtime[1] { - ^Runtime(connections = ^ModelQueryConnection(element = ^ModelStore(), instancesProvider=newMap(pair($sourceClass, {tree:meta::pure::graphFetch::RootGraphFetchTree[1] | $sourceClass->meta::external::format::shared::functions::internalize($binding, $input)->meta::pure::graphFetch::execution::graphFetch($tree)})))); + ^Runtime(connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection= ^ModelQueryConnection(instancesProvider=newMap(pair($sourceClass, {tree:meta::pure::graphFetch::RootGraphFetchTree[1] | $sourceClass->meta::external::format::shared::functions::internalize($binding, $input)->meta::pure::graphFetch::execution::graphFetch($tree)}))))); } -function meta::pure::runtime::getRuntimeWithModelQueryConnection(sourceClass:Class[1], contentType:String[1], input:Byte[*]):Runtime[1] +function meta::core::runtime::getRuntimeWithModelQueryConnection(sourceClass:Class[1], contentType:String[1], input:Byte[*]):Runtime[1] { - ^Runtime(connections = ^ModelQueryConnection(element = ^ModelStore(), instancesProvider=newMap(pair($sourceClass, {tree:meta::pure::graphFetch::RootGraphFetchTree[1] | $sourceClass->meta::external::format::shared::functions::internalize($contentType, $input)->meta::pure::graphFetch::execution::graphFetch($tree)})))); + ^Runtime(connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection= ^ModelQueryConnection(instancesProvider=newMap(pair($sourceClass, {tree:meta::pure::graphFetch::RootGraphFetchTree[1] | $sourceClass->meta::external::format::shared::functions::internalize($contentType, $input)->meta::pure::graphFetch::execution::graphFetch($tree)}))))); } -function meta::pure::runtime::getRuntimeWithModelQueryConnection(sourceClass:Class[1], contentType:String[1], input:String[1]):Runtime[1] +function meta::core::runtime::getRuntimeWithModelQueryConnection(sourceClass:Class[1], contentType:String[1], input:String[1]):Runtime[1] { - ^Runtime(connections = ^ModelQueryConnection(element = ^ModelStore(), instancesProvider=newMap(pair($sourceClass, {tree:meta::pure::graphFetch::RootGraphFetchTree[1] | $sourceClass->meta::external::format::shared::functions::internalize($contentType, $input)->meta::pure::graphFetch::execution::graphFetch($tree)})))); + ^Runtime(connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection= ^ModelQueryConnection(instancesProvider=newMap(pair($sourceClass, {tree:meta::pure::graphFetch::RootGraphFetchTree[1] | $sourceClass->meta::external::format::shared::functions::internalize($contentType, $input)->meta::pure::graphFetch::execution::graphFetch($tree)}))))); } // Function signature takes Any to incorporate both Runtime & PackageableRuntime -function meta::pure::runtime::mergeRuntimes(runtimes:Any[1..*]):Runtime[1] +function meta::core::runtime::mergeRuntimes(runtimes:Any[1..*]):Runtime[1] { $runtimes->forAll(r | $r->instanceOf(PackageableRuntime) || $r->instanceOf(Runtime)); let updatedRuntimes = $runtimes->filter(r | $r->instanceOf(Runtime))->concatenate($runtimes->filter(r | $r->instanceOf(PackageableRuntime))->cast(@PackageableRuntime).runtimeValue)->cast(@Runtime); - ^Runtime(connections = $updatedRuntimes.connections); -} \ No newline at end of file + ^Runtime(connectionStores = $updatedRuntimes.connectionStores); +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/store/storeContract.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/store/storeContract.pure index 5d63029b555..cd79361bd1a 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/store/storeContract.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/store/storeContract.pure @@ -2,7 +2,9 @@ import meta::pure::mapping::*; import meta::pure::router::systemMapping::tests::*; import meta::pure::extension::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::executionPlan::*; @@ -24,17 +26,17 @@ Class meta::pure::store::StoreContract extends meta::pure::router::extension::Ro |{f:FunctionExpression[1]|false} ); } : Function<{FunctionExpression[1]->Boolean[1]}>[1]; - // ------------------------------------------------------------------------------------ ExecutionPlan + // ------------------------------------------------------------------------------------ ExecutionPlan // Platform Binding --------------------------------------------------------------------------------- extractSourceClassFromSetImplementation : Function<{Nil[1] -> meta::pure::metamodel::type::Class[1]}>[*]; - // --------------------------------------------------------------------------------- Platform Binding + // --------------------------------------------------------------------------------- Platform Binding // Core --------------------------------------------------------------------------------------------- supportsSetImplementation : Function<{InstanceSetImplementation[1]->Boolean[1]}>[1]; supportsStore : Function<{Store[1]->Boolean[1]}>[1]; resolveStoreFromSetImplementation : Function<{InstanceSetImplementation[1]->Store[1]}>[0..1]; - // --------------------------------------------------------------------------------------------- Core + // --------------------------------------------------------------------------------------------- Core // Execution -- Deprecated as Pure should not execute anymore and generate plans for Engine to execute <> executeStoreQuery : Function<{StoreQuery[1], RoutedValueSpecification[0..1], Mapping[1], Runtime[1], ExecutionContext[1], Extension[*], DebugContext[1] -> Result[1]}>[0..1]; @@ -42,4 +44,4 @@ Class meta::pure::store::StoreContract extends meta::pure::router::extension::Ro <> localGetterOverrideNonMapped : Function<{Any[1], Property[1] -> Any[*]}>[0..1]; <> instance_equals : Function<{Any[1], Any[1] -> Boolean[1]}>[0..1]; // ----------------------------------------------------------------------------------------- Execution -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/aggregationAware/aggregationAware.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/aggregationAware/aggregationAware.pure index 2590e9861fb..6e551d0e304 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/aggregationAware/aggregationAware.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/aggregationAware/aggregationAware.pure @@ -18,6 +18,7 @@ import meta::pure::metamodel::path::*; import meta::pure::router::clustering::*; import meta::pure::router::printer::*; import meta::pure::mapping::aggregationAware::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::pure::router::metamodel::*; @@ -383,4 +384,4 @@ function meta::pure::mapping::aggregationAware::getProjectPathString(s:ProjectPa | '' ) + ']'; -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/aggregationAware/storeContract.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/aggregationAware/storeContract.pure index 94650acff15..5be81c72d0f 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/aggregationAware/storeContract.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/aggregationAware/storeContract.pure @@ -16,7 +16,9 @@ import meta::pure::mapping::*; import meta::pure::router::systemMapping::tests::*; import meta::pure::extension::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::executionPlan::*; import meta::pure::mapping::aggregationAware::*; @@ -61,4 +63,4 @@ function meta::pure::mapping::aggregationAware::contract::execution(f:meta::pure function meta::pure::mapping::aggregationAware::contract::supports(f:FunctionExpression[1]):Boolean[1] { true; -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/chain.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/chain.pure index 41939544453..1786223b545 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/chain.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/chain.pure @@ -20,10 +20,12 @@ import meta::pure::router::store::metamodel::*; import meta::pure::mapping::modelToModel::chain::*; import meta::pure::metamodel::serialization::grammar::*; import meta::pure::mapping::modelToModel::inMemory::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::modelToModel::chain::*; import meta::pure::mapping::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::router::printer::*; import meta::pure::router::store::metamodel::clustering::*; import meta::pure::router::utils::*; @@ -43,7 +45,7 @@ function meta::pure::mapping::modelToModel::chain::executeChain(f:StoreQuery[1], let rightSide = ^InstanceValue(values = $rightValue, genericType= $genericType, multiplicity = $multiplicity); let leftSide = ^InstanceValue(values = $keyVS, multiplicity = PureOne, genericType = $keyVS->genericType()); let placeholderLet = {| let placeHolder = $rightSide } ->evaluateAndDeactivate().expressionSequence ->cast(@SimpleFunctionExpression)->toOne(); - ^$placeholderLet( parametersValues = [ $leftSide, $rightSide ] ); + ^$placeholderLet( parametersValues = [ $leftSide, $rightSide ] ); ,| [] ) ; ); @@ -104,14 +106,14 @@ function meta::pure::mapping::modelToModel::chain::planExecutionChain(sq:StoreQu { let returnType = $sq.fe.genericType.rawType->toOne(); assert($returnType->_subTypeOf(TabularDataSet), 'Non TDS return type not supported for Model Connections'); - + print(if(!$debug.debug, |'',|$debug.space+'Mappings: ['+$mapping->concatenate($mcc.mappings->init())->makeString(', ')+']\n')); - + let processed = $sq.fe->allReprocess($e, $mapping->concatenate($mcc.mappings->init()), $extensions, $debug); let f = ^LambdaFunction<{->Any[*]}>(expressionSequence = $processed.res->cast(@FunctionExpression))->toOne()->cast(@FunctionDefinition); - + let m = $mcc.mappings->last()->toOne(); - + let routed = $f->routeFunction($m, $runtime->toOne(), $exeCtx, $extensions, $debug); let routedFunction = $routed->evaluateAndDeactivate()->toOne(); let clusters = $routedFunction.expressionSequence->evaluateAndDeactivate()->cast(@StoreMappingClusteredValueSpecification); @@ -181,7 +183,7 @@ function meta::pure::mapping::modelToModel::chain::reprocess(vs:ValueSpecificati |$setImpl->_propertyMappingsByPropertyName($fe.func.name->toOne())->cast(@PurePropertyMapping)->toOne();, |$setImpl->propertyMappingByPropertyNameAndTargetId($fe.func.name->toOne(), $e.sets.id->toOne())->cast(@PurePropertyMapping)->toOne() ); - + let srcValueSpecification = $results.newExpression->at(0)->cast(@ValueSpecification); let modelTransformLambda = $pm.transform->manageEnumeration([]); let modelTransformLambdaEvalExpression = createEvalFunctionExpression($modelTransformLambda, $srcValueSpecification, $fe); @@ -192,14 +194,14 @@ function meta::pure::mapping::modelToModel::chain::reprocess(vs:ValueSpecificati );, | let newTypeParams = $fe.genericType.typeArguments->map(t| let typeParam = $t.rawType->toOne(); - if($typeParam->instanceOf(DataType), + if($typeParam->instanceOf(DataType), | if($typeParam->instanceOf(Enumeration),| ^GenericType(rawType=String),| $t), | let sc = sourceClassFromFunction($fe); if($sc->isNotEmpty(),|^GenericType(rawType=$sc.srcClass),|$t); ); ); let type = $fe.genericType.rawType->toOne(); - ^$fe(genericType=if($e.sets->isEmpty() || $type->instanceOf(DataType), + ^$fe(genericType=if($e.sets->isEmpty() || $type->instanceOf(DataType), | if($type->instanceOf(Enumeration), | ^GenericType(rawType=String), | if($fe.genericType.typeArguments->isNotEmpty(),| ^GenericType(rawType=$fe.genericType.rawType,typeArguments = $newTypeParams),|$fe.genericType); @@ -248,7 +250,7 @@ function meta::pure::mapping::modelToModel::chain::reprocess(vs:ValueSpecificati let results = $f.expressionSequence->map(vs|$vs->reprocess($e, $mapping, $mappings, [], $extensions)); let varMap = if($results.vars->isEmpty(),|[],|newMap($results.vars->map(r|$r->keyValues()))); let fType = $f->functionType(); - + let fInputType = ^GenericType(rawType=$agg.mapFn.expressionSequence->cast(@StoreMappingRoutedValueSpecification).sets->at(0)->cast(@PureInstanceSetImplementation).srcClass); let dummyLambda = {x:Any[1]| $x}; let gen = ^GenericType @@ -258,7 +260,7 @@ function meta::pure::mapping::modelToModel::chain::reprocess(vs:ValueSpecificati ( rawType = ^$fType ( - parameters = $fType.parameters->map(p|^$p(genericType=$fInputType)), + parameters = $fType.parameters->map(p|^$p(genericType=$fInputType)), returnType = $f->functionReturnType(), returnMultiplicity= $f->functionReturnMultiplicity() ) @@ -273,7 +275,7 @@ function meta::pure::mapping::modelToModel::chain::reprocess(vs:ValueSpecificati typeArguments=[$fInputType, $agg.mapFn->functionReturnType(), $agg.aggregateFn->functionReturnType()]), - multiplicity = PureOne, + multiplicity = PureOne, parametersValues = [ ^InstanceValue(values=^$dummyLambda(classifierGenericType=$gen, expressionSequence=$results.newExpression->cast(@ValueSpecification)), @@ -287,7 +289,7 @@ function meta::pure::mapping::modelToModel::chain::reprocess(vs:ValueSpecificati $agg.mapFn->functionReturnType(), $agg.aggregateFn->functionReturnType()] )->evaluateAndDeactivate();, - s:SortInformation[1] |$s, + s:SortInformation[1] |$s, i:Integer[1]|$i, s:String[1]|$s, d:Date[1]|$d, @@ -308,11 +310,11 @@ function meta::pure::mapping::modelToModel::chain::reprocess(vs:ValueSpecificati );}; let newGTs = $values - ->map(v|$genericTypeGenerator->eval($v)) - ->removeDuplicates(meta::pure::mapping::modelToModel::chain::isSameGenericType_GenericType_1__GenericType_1__Boolean_1_); + ->map(v|$genericTypeGenerator->eval($v)) + ->removeDuplicates(meta::pure::mapping::modelToModel::chain::isSameGenericType_GenericType_1__GenericType_1__Boolean_1_); let genericType = if($newGTs->size() == 1, - | $newGTs->at(0);, + | $newGTs->at(0);, |^GenericType(rawType=Any)); let newInstanceValue = ^$i(genericType = $genericType, values=$values)->evaluateAndDeactivate(); let vars = $results->map(r|$r->match([v:Res[1]|$v.vars,a:Any[1]|[]])); @@ -323,9 +325,9 @@ function meta::pure::mapping::modelToModel::chain::reprocess(vs:ValueSpecificati function <> meta::pure::mapping::modelToModel::chain::isSameGenericType(a:GenericType[1], b:GenericType[1]):Boolean[1] { - ($a.rawType == $b.rawType) && + ($a.rawType == $b.rawType) && ($a.typeArguments->size() == $b.typeArguments->size()) && - ($a.typeArguments->zip($b.typeArguments)->map(p| isSameGenericType($p.first,$p.second))->and()); + ($a.typeArguments->zip($b.typeArguments)->map(p| isSameGenericType($p.first,$p.second))->and()); } function meta::pure::mapping::modelToModel::chain::reprocessVar(v:Any[1], oldVar:Pair[0..1]):Any[1] @@ -391,8 +393,8 @@ function meta::pure::mapping::modelToModel::chain::createEvalFunctionExpression( { let returnType = $lambdaFunction->genericType().typeArguments->at(0).rawType->cast(@FunctionType).returnType->toOne(); let lambdaFunctionInstanceValue = ^InstanceValue(genericType = $lambdaFunction->genericType(), multiplicity = PureOne, values = $lambdaFunction); - ^$functionExpression(func = meta::pure::functions::lang::eval_Function_1__T_n__V_m_, - genericType = $returnType, + ^$functionExpression(func = meta::pure::functions::lang::eval_Function_1__T_n__V_m_, + genericType = $returnType, parametersValues = [$lambdaFunctionInstanceValue->evaluateAndDeactivate(), $secondParameter->evaluateAndDeactivate()] ); } @@ -474,7 +476,7 @@ function meta::pure::mapping::modelToModel::chain::manageEnumerationVS(vs:ValueS function meta::pure::mapping::modelToModel::chain::manageEnumerationMapping(transformer:ValueTransformer[1], variableName:String[1]):LambdaFunction[1] { let enumValueMappings = $transformer->cast(@EnumerationMapping).enumValueMappings; - let sourceValuesType = $enumValueMappings.sourceValues->genericType().rawType->toOne(); + let sourceValuesType = $enumValueMappings.sourceValues->genericType().rawType->toOne(); let inputVariable = createVariableExpression($sourceValuesType, $variableName); createNestedIfElseLambdaFunction($enumValueMappings, $inputVariable, true); } @@ -535,12 +537,12 @@ function meta::pure::mapping::modelToModel::chain::manageMilestoning(func:Functi function meta::pure::mapping::modelToModel::chain::createNestedIfElseLambdaFunction(enumValueMappings:EnumValueMapping[*], inputVariable:VariableExpression[1], root:Boolean[1]):LambdaFunction[1] { - let classifierGenericType = ^GenericType(rawType = LambdaFunction, typeArguments = ^GenericType(rawType = ^FunctionType(returnMultiplicity = PureOne, returnType = ^GenericType(rawType = String), parameters = if ($root,| $inputVariable,| [])))); + let classifierGenericType = ^GenericType(rawType = LambdaFunction, typeArguments = ^GenericType(rawType = ^FunctionType(returnMultiplicity = PureOne, returnType = ^GenericType(rawType = String), parameters = if ($root,| $inputVariable,| [])))); let expressionSequence = createNestedIfElseFunctionExpression($enumValueMappings, $inputVariable); let lambdaFunction = ^LambdaFunction(expressionSequence = $expressionSequence, openVariables = if ($root,| [],| $inputVariable.name)); ^$lambdaFunction(classifierGenericType = $classifierGenericType); } - + function meta::pure::mapping::modelToModel::chain::createNestedIfElseFunctionExpression(enumValueMappings:EnumValueMapping[*], inputVariable:VariableExpression[1]):SimpleFunctionExpression[1] { ^SimpleFunctionExpression(func = if_Boolean_1__Function_1__Function_1__T_m_, @@ -575,7 +577,7 @@ function meta::pure::mapping::modelToModel::chain::createInFunctionExpression(in parametersValues = [$inputVariable, createInstanceValue($sourceValues)] )->evaluateAndDeactivate() } - + function meta::pure::mapping::modelToModel::chain::createNestedIfElseInstanceValue(enumValueMappings:EnumValueMapping[*], inputVariable:VariableExpression[1]):InstanceValue[1] { ^InstanceValue(genericType = ^GenericType(rawType = LambdaFunction, typeArguments = ^GenericType(rawType = ^FunctionType(returnMultiplicity = PureOne, returnType = ^GenericType(rawType = String)))), @@ -583,15 +585,15 @@ function meta::pure::mapping::modelToModel::chain::createNestedIfElseInstanceVal values = createNestedIfElseLambdaFunction($enumValueMappings, $inputVariable, false) ) } - + function meta::pure::mapping::modelToModel::chain::createInstanceValue(values:Any[*]):InstanceValue[1] { ^InstanceValue(genericType = ^GenericType(rawType = $values->match([e:Enum[*] | String, a:Any[*] | $a->genericType().rawType->toOne()])), - multiplicity = PureOne, + multiplicity = PureOne, values = $values->match([e:Enum[*] | $e.name, a:Any[*] | $a]) ) } - + function meta::pure::mapping::modelToModel::chain::createVariableExpression(type:Type[1], name:String[1]):VariableExpression[1] { ^VariableExpression(genericType = ^GenericType(rawType = $type->match([e:Enumeration[1] | String, t:Type[1] | $t])), diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/inMemory.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/inMemory.pure index 7026031a1f9..4a801b362f8 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/inMemory.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/inMemory.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::executionPlan::*; import meta::pure::router::routing::*; @@ -19,6 +20,7 @@ import meta::pure::router::store::metamodel::*; import meta::pure::mapping::modelToModel::inMemory::*; import meta::pure::mapping::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; Class meta::pure::mapping::modelToModel::inMemory::ModelPayload extends MappingInstanceData { @@ -45,19 +47,19 @@ function <> meta::pure::mapping::modelToModel::inMemory::setOper { let operationFunctions = newMap(pair(meta::pure::router::operations::merge_OperationSetImplementation_1__SetImplementation_MANY_, meta::pure::mapping::modelToModel::inMemory::mergeResult_Any_MANY__Any_$0_1$_)); if($e->isEmpty(), - |$sets, + |$sets, |let operation = $e->toOne().sets->filter(s| $s->instanceOf(OperationSetImplementation))->cast(@OperationSetImplementation); if($operation->size()!=1, |$sets, - | let fn = $operationFunctions->get($operation->toOne().operation->toOne()); + | let fn = $operationFunctions->get($operation->toOne().operation->toOne()); if($fn->isEmpty(), |$sets, |$fn->toOne()->eval($sets) - ); + ); ); - ); - - + ); + + } @@ -115,7 +117,7 @@ function meta::pure::mapping::modelToModel::inMemory::internal_getter(o:Any[1], let modelPayload = $o->getHiddenPayload()->cast(@ModelPayload); let mapping = $modelPayload.static.mapping->toOne(); let targetGenericType = $property->functionReturnType(); - + let pms = if ($propertyMappings->isEmpty(), |if ($modelPayload.static.setImplementation->isEmpty(), |[], @@ -149,7 +151,7 @@ function meta::pure::mapping::modelToModel::inMemory::internal_getter(o:Any[1], debug = $modelPayload.static.debug, extensions = $modelPayload.static.extensions ); - $srcRes->map(v| transformNoMappingPassThru($v, $targetGenericType, $static));, + $srcRes->map(v| transformNoMappingPassThru($v, $targetGenericType, $static));, |let static = ^StaticMappingInstanceData ( @@ -244,10 +246,10 @@ function meta::pure::mapping::modelToModel::inMemory::transformWithMapping(src:A value = $pm.transform->evaluate($sval)->map(x | $pm->valueTransform($x)) ); ); - + let sourceType = $src->genericType(); - - //dont fill in if part of a merged set + + //dont fill in if part of a merged set let nonMappedPropertiesValues = if ($sourceType.rawType->toOne()->instanceOf(DataType) || $impl.id->toOne()-> setIsPartOfMerge($e) , |[], |let srcPropertiesByName = $sourceType->properties()->groupBy(p|$p.name->toOne()); @@ -260,7 +262,7 @@ function meta::pure::mapping::modelToModel::inMemory::transformWithMapping(src:A value = $srcProperty.values->toOne()->evaluate($sval) );, |[] - ); + ); ); ); @@ -288,7 +290,7 @@ function meta::pure::mapping::modelToModel::inMemory::transformWithMapping(src:A function meta::pure::mapping::modelToModel::inMemory::setIsPartOfMerge(id:String[1], ev:StoreMappingRoutedValueSpecification[0..1]):Boolean[1] { - + if($ev->isMerge(), | let mergeSets = $ev->toOne().sets->filter(s| $s->instanceOf(OperationSetImplementation))->cast(@OperationSetImplementation)->filter(o |$o.operation == meta::pure::router::operations::merge_OperationSetImplementation_1__SetImplementation_MANY_ ); @@ -296,7 +298,7 @@ function meta::pure::mapping::modelToModel::inMemory::setIsPartOfMerge(id:String |true, |false );, - + |false ); } @@ -308,7 +310,7 @@ function meta::pure::mapping::modelToModel::inMemory::transformNoMappingPassThru let srcPropertiesByName = $src->genericType()->properties()->groupBy(p|$p.name->toOne()); let targetProperties = $targetGenericType->properties()->filter(p|$p->functionReturnType().rawType->toOne()->instanceOf(DataType)); - + let keyVals = $targetProperties->map(p|let srcProperty = $srcPropertiesByName->get($p.name->toOne()); if ($srcProperty->isNotEmpty()&& $srcProperty.values->toOne().genericType.rawType->toOne()->subTypeOf($p.genericType.rawType->toOne()) && $p.multiplicity->toOne()->multiplicitySubsumes($srcProperty.values->toOne().multiplicity), | @@ -317,9 +319,9 @@ function meta::pure::mapping::modelToModel::inMemory::transformNoMappingPassThru value = $srcProperty.values->toOne()->evaluate($sval) );, |[] - ); - - + ); + + ); $targetGenericType->dynamicNew($keyVals, meta::pure::mapping::xStore::crossGetterOverrideToOne_Any_1__Property_1__Any_$0_1$_, @@ -349,28 +351,28 @@ function meta::pure::mapping::modelToModel::inMemory::planExecutionInMemory(sq:m ^JsonFeWithPropertyPaths(fe=$inputFeToJson, jsonPropertyPaths=$jsonPropertyPaths);, | ^JsonFeWithPropertyPaths(fe=$sq.fe) ); - + let fe = $jsonFeWithPpt.fe; - + let fd = ^LambdaFunction<{->Any[*]}>(expressionSequence = $fe); - + let possibleClass = $fe.genericType.rawType->toOne(); let class = if ($possibleClass == Any, | let getAllClass = findMainClassInGetAllExpression($fe); if($getAllClass->isEmpty(), | $possibleClass, | $getAllClass);, | $possibleClass ); assert(!$class->genericType().typeArguments->at(0)->instanceOf(TabularDataSet),'ExecutionPlan not supported for Alloy ModelToModel queries returning \'TabularDataSet\''); - + let setImplementation = if ($e->isEmpty(), |$mapping->toOne()->rootClassMappingByClass($possibleClass->cast(@Class))->toOne()->cast(@SetImplementation);, |$e.sets->toOne()->cast(@SetImplementation)); - - let connection = $runtime->toOne().connections->at(0); - + + let connection = $runtime->toOne().connectionStores.connection->at(0); + let resultType = ^ClassResultType ( type = $class, setImplementations = $setImplementation ); - + ^ModelToModelExecutionNode(fd=$fd, classes=$mapping->toOne()->classMappings().class, resultType=$resultType, resultSizeRange=ZeroMany, connection=$connection, jsonPropertyPaths=$jsonFeWithPpt.jsonPropertyPaths, mapping=$mapping->toOne()); } @@ -400,11 +402,11 @@ function <> meta::pure::mapping::modelToModel::inMemory::mergeRe ,|[] ,|$set->at(0)->class()->allProperties()->cast(@Property) ->map(p: Property[1] | - let propertyToMutate = $set->at(0)->getPropertyValues($p.name->toOne()); + let propertyToMutate = $set->at(0)->getPropertyValues($p.name->toOne()); let propertyValuesFromOtherInstances = $set->filter(r|$r->getPropertyValues($p.name->toOne())->isNotEmpty()); if($propertyValuesFromOtherInstances->size()==1 && $propertyToMutate->isEmpty() ,|$set->at(0)->mutateAdd($p.name->toOne(), $propertyValuesFromOtherInstances->toOne()->getPropertyValues($p.name->toOne())) - ,| assert($propertyValuesFromOtherInstances->size()<=1,'Property '+ $p.name->toOne()+' is mapped more than once.'); + ,| assert($propertyValuesFromOtherInstances->size()<=1,'Property '+ $p.name->toOne()+' is mapped more than once.'); [];); ); $set->at(0); diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/storeContract.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/storeContract.pure index 43f23800e06..d32658a5f14 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/storeContract.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/storeContract.pure @@ -6,7 +6,9 @@ import meta::pure::router::store::metamodel::*; import meta::pure::router::utils::*; import meta::pure::extension::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::modelToModel::inMemory::*; import meta::pure::mapping::modelToModel::chain::*; @@ -15,6 +17,7 @@ import meta::pure::graphFetch::executionPlan::*; import meta::pure::mapping::modelToModel::graphFetch::executionPlan::*; import meta::pure::executionPlan::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::graphFetch::routing::*; function meta::pure::mapping::modelToModel::contract::modelStoreContract():StoreContract[1] @@ -32,13 +35,13 @@ function meta::pure::mapping::modelToModel::contract::modelStoreContract():Store printConnectionToString = {extensions:meta::pure::extension::Extension[*]| [ mc:PureModelConnection[1] | modelToModelConnectionToString($mc, $extensions) - ]}, + ]}, localGetterOverrideMapped = meta::pure::mapping::modelToModel::contract::getterOverrideMapped_Any_1__PropertyMapping_1__Any_MANY_, localGetterOverrideNonMapped = meta::pure::mapping::modelToModel::contract::getterOverrideNonMapped_Any_1__Property_1__Any_MANY_, supportsSetImplementation = s:InstanceSetImplementation[1]|$s->instanceOf(PureInstanceSetImplementation) || $s->instanceOf(M2MEmbeddedSetImplementation), - supportsStore = s:Store[1]|$s->instanceOf(meta::pure::mapping::modelToModel::ModelStore), - resolveStoreFromSetImplementation = s:InstanceSetImplementation[1]|^meta::pure::mapping::modelToModel::ModelStore(name='MODEL', package=::), + supportsStore = s:Store[1]|$s->instanceOf(meta::external::store::model::ModelStore), + resolveStoreFromSetImplementation = s:InstanceSetImplementation[1]|^meta::external::store::model::ModelStore(name='MODEL', package=::), supportsNativeJoinAmongElements = false ) } @@ -77,7 +80,7 @@ function meta::pure::mapping::modelToModel::contract::isPropertyAutoMapped(prope | // We stop routing complex properties further if complexProperties is mapped to a transform which returns result of type matching property type. // We also ensure user has not explicitly attached a setImplementation to be used for the complex property. If its provoided we use the explicit set $purePropertyMappings->size() == 1 && $purePropertyMappings->toOne()->instanceOf(PurePropertyMapping) - && $purePropertyMappings->toOne().targetSetImplementationId == '' + && $purePropertyMappings->toOne().targetSetImplementationId == '' && $purePropertyMappings->toOne()->cast(@PurePropertyMapping).transform.expressionSequence->last()->evaluateAndDeactivate().genericType.rawType->toOne()->_subTypeOf($propertyType); );, | false); @@ -110,4 +113,4 @@ function meta::pure::mapping::modelToModel::contract::getterOverrideMapped(o:Any function meta::pure::mapping::modelToModel::contract::getterOverrideNonMapped(o:Any[1], property:Property[1]):Any[*] { getter($o, $property, []); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/createInstances.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/createInstances.pure index 59b60db85f7..c68313d49f0 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/createInstances.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/createInstances.pure @@ -15,7 +15,9 @@ import meta::pure::mapping::modelToModel::test::createInstances::*; import meta::pure::mapping::modelToModel::test::filter::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::test::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::modelToModel::test::shared::src::*; import meta::pure::mapping::modelToModel::test::shared::dest::*; @@ -25,14 +27,21 @@ function <> meta::pure::mapping::modelToModel:: let res = execute( |Firm.all()->filter(f|$f.employees->exists(e|$e.lastName == 'efgh')), createInstancesModelMapping, - ^Runtime(connections = ^ModelConnection(element=^ModelStore(), instances= newMap( - pair(_Firm , list([ - ^_Firm (name='A') - ]) - ) - ) - ) - ), + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection = ^ModelConnection( + instances= newMap( + pair(_Firm , list([ + ^_Firm (name='A') + ]) + ) + ) + ) + ) + ] + ), meta::pure::extension::defaultExtensions() ); assertSameElements(['abcd','efgh'], $res.values->at(0).employees.lastName); @@ -45,13 +54,20 @@ function <> meta::pure::mapping::modelToModel:: let res = execute( |FirmEmployee.all() , createInstancesModelMappingOneMany, - ^Runtime(connections = ^ModelConnection(element=^ModelStore(), instances= newMap( - pair(_Firm , list([ - ^_Firm (name='Firm Name', employees = [^_Person(fullName='Person 1'),^_Person(fullName='Person 2')] ) - ]) - ) - ) - ) + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection = ^ModelConnection( + instances= newMap( + pair(_Firm , list([ + ^_Firm (name='Firm Name', employees = [^_Person(fullName='Person 1'),^_Person(fullName='Person 2')] ) + ]) + ) + ) + ) + ) + ] ), meta::pure::extension::defaultExtensions() ); @@ -64,13 +80,20 @@ function <> meta::pure::mapping::modelToModel:: let res = execute( |FirmEmployee.all() , createInstancesModelMappingOneManyMultiProperty, - ^Runtime(connections = ^ModelConnection(element=^ModelStore(), instances= newMap( - pair(_Firm , list([ - ^_Firm (name='Firm Name', employees = [^_Person(fullName='Person 1',addresses=^Address(street='first')),^_Person(fullName='Person 2',addresses=^Address(street='second'))] ) - ]) - ) - ) - ) + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection = ^ModelConnection( + instances= newMap( + pair(_Firm , list([ + ^_Firm (name='Firm Name', employees = [^_Person(fullName='Person 1',addresses=^Address(street='first')),^_Person(fullName='Person 2',addresses=^Address(street='second'))] ) + ]) + ) + ) + ) + ) + ] ), meta::pure::extension::defaultExtensions() ); @@ -85,13 +108,18 @@ function <> meta::pure::mapping::modelToModel:: let res = execute( |FirmEmployee.all() , createInstancesModelMappingOneManyMultiProperty, - ^Runtime(connections = ^ModelConnection(element=^ModelStore(), instances= newMap( - pair(_Firm , list([ - ^_Firm (name='Firm Name', employees = [^_Person(fullName='Person 1', addresses=^Address(street='first')),^_Person(fullName='Person 2')] ) - ]) - ) - ) - ) + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection = ^ModelConnection( + instances= newMap( + pair(_Firm , list([ + ^_Firm (name='Firm Name', employees = [^_Person(fullName='Person 1', addresses=^Address(street='first')),^_Person(fullName='Person 2')] ) + ]) + ) + ) + ))] ), meta::pure::extension::defaultExtensions() ); @@ -131,13 +159,13 @@ Mapping meta::pure::mapping::modelToModel::test::createInstances::createInstance ~src _Firm lastName : 'abcd' } - + Person[p2] : Pure { ~src _Firm lastName : 'efgh' } - + Firm : Pure { ~src _Firm @@ -145,12 +173,13 @@ Mapping meta::pure::mapping::modelToModel::test::createInstances::createInstance employees[p1] : $src, employees[p2] : $src } - + ) ###Mapping import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::test::createInstances::*; import meta::pure::mapping::modelToModel::test::union::*; import meta::pure::mapping::modelToModel::test::shared::src::*; @@ -159,20 +188,21 @@ import meta::pure::mapping::modelToModel::test::*; Mapping meta::pure::mapping::modelToModel::test::createInstances::createInstancesModelMappingOneMany ( - + FirmEmployee : Pure { ~src _Firm firmName : getName($src), fullName* : getFullName($src) } - + ) ###Mapping import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::test::union::*; import meta::pure::mapping::modelToModel::test::shared::src::*; import meta::pure::mapping::modelToModel::test::shared::dest::*; @@ -180,7 +210,7 @@ import meta::pure::mapping::modelToModel::test::*; Mapping meta::pure::mapping::modelToModel::test::createInstances::createInstancesModelMappingOneManyMultiProperty ( - + FirmEmployee : Pure { ~src _Firm @@ -189,5 +219,5 @@ Mapping meta::pure::mapping::modelToModel::test::createInstances::createInstance streetAddress* : $src.employees.addresses.street } - + ) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/delta.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/delta.pure index 42dbe9e1789..83eaef223d0 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/delta.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/delta.pure @@ -13,7 +13,9 @@ // limitations under the License. import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::test::delta::v1::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::modelToModel::test::delta::*; @@ -22,7 +24,7 @@ function <> meta::pure::mapping::modelToModel:: let res = execute( |meta::pure::mapping::modelToModel::test::delta::v2::Firm.all()->filter(f|$f.newLegalName == 'GS'), simpleDeltaMapping, - ^Runtime(connections = ^ModelConnection(element=^ModelStore(), instances= newMap( + ^Runtime(connectionStores = ^ConnectionStore(element=^ModelStore(), connection=^ModelConnection(instances= newMap( pair(meta::pure::mapping::modelToModel::test::delta::v1::Firm , list([ ^meta::pure::mapping::modelToModel::test::delta::v1::Firm (legalName='GS', region = meta::pure::mapping::modelToModel::test::delta::v1::RegionEnumToString.NewYork, @@ -42,10 +44,10 @@ function <> meta::pure::mapping::modelToModel:: ) ) ) - ), + )), meta::pure::extension::defaultExtensions() ); - + assertSameElements(10, $res.values->at(0).count); assertSameElements([], $res.values->at(0).useless); assertSameElements([], $res.values->at(0).nameNoSubsume); @@ -72,7 +74,7 @@ Class meta::pure::mapping::modelToModel::test::delta::v1::Firm count : Integer[1]; region: meta::pure::mapping::modelToModel::test::delta::v1::RegionEnumToString[1]; region2: String[1]; - + } Class meta::pure::mapping::modelToModel::test::delta::v1::Person @@ -161,10 +163,10 @@ Mapping meta::pure::mapping::modelToModel::test::delta::simpleDeltaMapping ~src meta::pure::mapping::modelToModel::test::delta::v1::Firm newLegalName : $src.legalName } - + meta::pure::mapping::modelToModel::test::delta::v2::Address : Pure { ~src meta::pure::mapping::modelToModel::test::delta::v1::Address newAdd : $src.add+'ok' } -) \ No newline at end of file +) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/filter.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/filter.pure index 0e95990d008..3fa707d04b0 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/filter.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/filter.pure @@ -17,9 +17,11 @@ import meta::pure::executionPlan::profiles::*; import meta::pure::mapping::modelToModel::test::filter::*; import meta::pure::mapping::modelToModel::test::shared::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::test::*; import meta::pure::mapping::modelToModel::test::shared::src::*; import meta::pure::mapping::modelToModel::test::shared::dest::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function <> meta::pure::mapping::modelToModel::test::filter::testTypeFilterThoughGetter():Any[*] @@ -27,14 +29,14 @@ function <> meta::pure::mapping::modelToModel:: let res = execute( |Firm.all(), filterMapping, - ^Runtime(connections = ^ModelConnection(element=^ModelStore(), instances= newMap( + ^Runtime(connectionStores = ^ConnectionStore(element=^ModelStore(), connection=^ModelConnection(instances= newMap( pair(_Firm , list([ ^_Firm (name='A', employees = [^_Person(fullName='Pierre Doe'), ^_Person(fullName='A. Only One')] ) ])) ) ) - ), + )), meta::pure::extension::defaultExtensions() ); testTypeFilterThoughGetterAsserts($res); @@ -51,14 +53,14 @@ function <> meta::pure::mapping::modelToModel:: let res = execute( |Firm.all()->project([f|$f.legalName, f|$f.employees.lastName],['legalName','employeeNames']), filterMapping, - ^Runtime(connections = ^ModelConnection(element=^ModelStore(), instances= newMap( + ^Runtime(connectionStores = ^ConnectionStore(element=^ModelStore(), connection=^ModelConnection(instances= newMap( pair(_Firm , list([ ^_Firm (name='A', employees = [^_Person(fullName='Pierre Doe'), ^_Person(fullName='A. Only One')] ) ])) ) ) - ), + )), meta::pure::extension::defaultExtensions() ); testTypeFilterThoughProjectAsserts($res); @@ -77,14 +79,14 @@ function <> meta::pure::mapping::modelToModel:: let res = execute( |Person.all()->project([f|$f.lastName],['lastName']), filterMapping, - ^Runtime(connections = ^ModelConnection(element=^ModelStore(), instances= newMap( + ^Runtime(connectionStores = ^ConnectionStore(element=^ModelStore(), connection=^ModelConnection(instances= newMap( pair(_Person , list([^_Person(fullName='Pierre Doe', firm=^_Firm(name='X')), ^_Person(fullName='A. Only One', firm=^_Firm(name='X'))] ) ) ) ) - ), + )), meta::pure::extension::defaultExtensions() ); testTypeFilterAsserts($res); @@ -108,7 +110,7 @@ Mapping meta::pure::mapping::modelToModel::test::filter::filterMapping ~filter $src.fullName->startsWith('A') lastName : $src.fullName } - + Firm : Pure { ~src _Firm diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/autoMapping.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/autoMapping.pure index 707ac6dd5d5..3aa938d65f0 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/autoMapping.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/autoMapping.pure @@ -17,17 +17,19 @@ import meta::json::*; import meta::pure::executionPlan::profiles::*; import meta::pure::graphFetch::execution::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::test::alloy::simple::automap::*; import meta::pure::mapping::modelToModel::test::alloy::simple::automap::src::*; import meta::pure::mapping::modelToModel::test::alloy::simple::automap::dest::*; +import meta::core::runtime::*; import meta::pure::runtime::*; -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a simple graph using an association', doc.doc='When: a mapping is executed using graphFetch and serialize.', doc.doc='Then: the mapping is applied and the result of the mapping is serialized demonstrating the translated graph.' -} +} meta::pure::mapping::modelToModel::test::alloy::simple::mapSourceToTargetBasedOnNameAndType() : Boolean[1] { let tree = #{Firm {name, employees {firstName, lastName, age}} }#; @@ -35,12 +37,11 @@ meta::pure::mapping::modelToModel::test::alloy::simple::mapSourceToTargetBasedOn let result = execute( |Firm.all()->graphFetch($tree)->serialize($tree), firmMappings, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), - class=_Firm, + ^Runtime(connectionStores = ^ConnectionStore(element=^ModelStore(), connection=^JsonModelConnection( + class=_Firm, url='data:application/json,{"name":"Acme Corp", "employees":[{"firstName":"Fred","lastName":"Bloggs", "age":37}, {"firstName":"John","lastName":"Doe", "age": 43}]}' ) - ), + )), meta::pure::extension::defaultExtensions() ); @@ -66,7 +67,7 @@ Class meta::pure::mapping::modelToModel::test::alloy::simple::automap::src::_Per Association meta::pure::mapping::modelToModel::test::alloy::simple::automap::src::_Firm__Person { - firm : _Firm[1]; + firm : _Firm[1]; employees : _Person[*]; } @@ -84,7 +85,7 @@ Class meta::pure::mapping::modelToModel::test::alloy::simple::automap::dest::Per Association meta::pure::mapping::modelToModel::alloy::test::simple::automap::dest::Firm_Person { - firm : Firm[1]; + firm : Firm[1]; employees : Person[*]; } @@ -99,10 +100,10 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::simple::automap::firmMap ~src _Firm employees: $src.employees } - + Person : Pure { ~src _Person firstName: $src.firstName } -) \ No newline at end of file +) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/chain/dataQualityChain.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/chain/dataQualityChain.pure index 9d3de621fe9..37ec19a2c0a 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/chain/dataQualityChain.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/chain/dataQualityChain.pure @@ -17,10 +17,12 @@ import meta::json::*; import meta::pure::executionPlan::profiles::*; import meta::pure::graphFetch::execution::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::test::alloy::chain::dataQuality::*; import meta::pure::mapping::modelToModel::test::alloy::chain::dataQuality::src::*; import meta::pure::mapping::modelToModel::test::alloy::chain::dataQuality::bridge::*; import meta::pure::mapping::modelToModel::test::alloy::chain::dataQuality::dest::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function <> {serverVersion.start='v1_19_0'} @@ -33,14 +35,13 @@ meta::pure::mapping::modelToModel::test::alloy::chain::dataQuality::constraintFa }#; let sourceFirms = '[{"name":"Firm1"},{"name":"Firm2"},{"name":"Firm3"},{"name":"Firm4"}]'; - + let result = execute( {|Firm.all()->graphFetchChecked($tree)->serialize($tree)}, BridgeToDestMapping, - ^Runtime( - connections = [ - ^ModelChainConnection(element = ^ModelStore(), mappings = [SrcToBridgeMapping]), - ^JsonModelConnection(element = ^ModelStore(), class = __Firm, url = 'data:application/json,' + $sourceFirms) + ^Runtime(connectionStores= [ + ^ConnectionStore(element = ^ModelStore(),connection=^ModelChainConnection( mappings = [SrcToBridgeMapping])), + ^ConnectionStore(element = ^ModelStore(),connection=^JsonModelConnection( class = __Firm, url = 'data:application/json,' + $sourceFirms)) ] ), meta::pure::extension::defaultExtensions() @@ -225,14 +226,13 @@ meta::pure::mapping::modelToModel::test::alloy::chain::dataQuality::constraintFa }#; let sourceFirms = '{"name":"Firm1", "employees": [{"fullName": "Person1"}, {"fullName": "Person2"}, {"fullName": "Person3"}]}'; - + let result = execute( {|Firm.all()->graphFetchChecked($tree)->serialize($tree)}, BridgeToDestMapping, - ^Runtime( - connections = [ - ^ModelChainConnection(element = ^ModelStore(), mappings = [SrcToBridgeMapping]), - ^JsonModelConnection(element = ^ModelStore(), class = __Firm, url = 'data:application/json,' + $sourceFirms) + ^Runtime(connectionStores= [ + ^ConnectionStore(element = ^ModelStore(),connection=^ModelChainConnection( mappings = [SrcToBridgeMapping])), + ^ConnectionStore(element = ^ModelStore(),connection=^JsonModelConnection( class = __Firm, url = 'data:application/json,' + $sourceFirms)) ] ), meta::pure::extension::defaultExtensions() @@ -334,7 +334,7 @@ Class meta::pure::mapping::modelToModel::test::alloy::chain::dataQuality::src::_ Association meta::pure::mapping::modelToModel::test::alloy::chain::dataQuality::src::__Firm___Person { - firm : __Firm[1]; + firm : __Firm[1]; employees : __Person[*]; } @@ -356,7 +356,7 @@ Class meta::pure::mapping::modelToModel::test::alloy::chain::dataQuality::bridge Association meta::pure::mapping::modelToModel::test::alloy::chain::dataQuality::bridge::_Firm__Person { - firm : _Firm[1]; + firm : _Firm[1]; employees : _Person[*]; } @@ -375,7 +375,7 @@ Class meta::pure::mapping::modelToModel::test::alloy::chain::dataQuality::dest:: Association meta::pure::mapping::modelToModel::test::alloy::chain::dataQuality::dest::Firm_Person { - firm : Firm[1]; + firm : Firm[1]; employees : Person[*]; } @@ -391,7 +391,7 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::chain::dataQuality::Brid name : '|' + $src.name + '|', employees : $src.employees } - + Person: Pure { ~src _Person fullName : '|' + $src.fullName + '|' @@ -405,9 +405,9 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::chain::dataQuality::SrcT name : '$' + $src.name + '$', employees : $src.employees } - + _Person: Pure { ~src __Person fullName : '$' + $src.fullName + '$' } -) \ No newline at end of file +) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/chain/filterChain.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/chain/filterChain.pure index 6fda8c94b85..eab7e72c6dc 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/chain/filterChain.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/chain/filterChain.pure @@ -17,10 +17,12 @@ import meta::json::*; import meta::pure::executionPlan::profiles::*; import meta::pure::graphFetch::execution::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::test::alloy::chain::filter::*; import meta::pure::mapping::modelToModel::test::alloy::chain::filter::src::*; import meta::pure::mapping::modelToModel::test::alloy::chain::filter::bridge::*; import meta::pure::mapping::modelToModel::test::alloy::chain::filter::dest::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function <> {serverVersion.start='v1_19_0'} @@ -33,14 +35,19 @@ meta::pure::mapping::modelToModel::test::alloy::chain::filter::filterOnSourceToB }#; let sourceFirms = '[{"name":"Firm1"},{"name":"Firm2"}]'; - + let result = execute( {|Firm.all()->graphFetchChecked($tree)->serialize($tree)}, BridgeToDestMapping, ^Runtime( - connections = [ - ^ModelChainConnection(element = ^ModelStore(), mappings = [SrcToBridgeMappingWithFilter]), - ^JsonModelConnection(element = ^ModelStore(), class = __Firm, url = 'data:application/json,' + $sourceFirms) + connectionStores = [ + ^ConnectionStore( + connection=^ModelChainConnection(mappings = [SrcToBridgeMappingWithFilter]), + element=^ModelStore()), + ^ConnectionStore( + connection=^JsonModelConnection(class = __Firm, url = 'data:application/json,' + $sourceFirms), + element=^ModelStore() + ) ] ), meta::pure::extension::defaultExtensions() @@ -88,14 +95,19 @@ meta::pure::mapping::modelToModel::test::alloy::chain::filter::filterOnBridgeToD }#; let sourceFirms = '[{"name":"Firm1", "employees":[{"fullName":"Person1"}, {"fullName":"Person2"}]},{"name":"Firm2", "employees":[{"fullName":"Person3"}]}]'; - + let result = execute( {|Firm.all()->graphFetchChecked($tree)->serialize($tree)}, BridgeToDestMappingWithFilter, ^Runtime( - connections = [ - ^ModelChainConnection(element = ^ModelStore(), mappings = [SrcToBridgeMapping]), - ^JsonModelConnection(element = ^ModelStore(), class = __Firm, url = 'data:application/json,' + $sourceFirms) + connectionStores = [ + ^ConnectionStore( + connection=^ModelChainConnection(mappings = [SrcToBridgeMapping]), + element=^ModelStore()), + ^ConnectionStore( + connection=^JsonModelConnection(class = __Firm, url = 'data:application/json,' + $sourceFirms), + element=^ModelStore() + ) ] ), meta::pure::extension::defaultExtensions() @@ -203,14 +215,19 @@ meta::pure::mapping::modelToModel::test::alloy::chain::filter::filterOnBothMappi }#; let sourceFirms = '[{"name":"Firm1", "employees":[{"fullName":"Person1"}, {"fullName":"Person2"}]},{"name":"Firm2", "employees":[{"fullName":"Person3"}]}]'; - + let result = execute( {|Firm.all()->graphFetchChecked($tree)->serialize($tree)}, BridgeToDestMappingWithFilter, ^Runtime( - connections = [ - ^ModelChainConnection(element = ^ModelStore(), mappings = [SrcToBridgeMappingWithFilter]), - ^JsonModelConnection(element = ^ModelStore(), class = __Firm, url = 'data:application/json,' + $sourceFirms) + connectionStores = [ + ^ConnectionStore( + connection=^ModelChainConnection(mappings = [SrcToBridgeMappingWithFilter]), + element=^ModelStore()), + ^ConnectionStore( + connection=^JsonModelConnection(class = __Firm, url = 'data:application/json,' + $sourceFirms), + element=^ModelStore() + ) ] ), meta::pure::extension::defaultExtensions() @@ -283,7 +300,7 @@ Class meta::pure::mapping::modelToModel::test::alloy::chain::filter::src::__Pers Association meta::pure::mapping::modelToModel::test::alloy::chain::filter::src::__Firm___Person { - firm : __Firm[1]; + firm : __Firm[1]; employees : __Person[*]; } @@ -299,7 +316,7 @@ Class meta::pure::mapping::modelToModel::test::alloy::chain::filter::bridge::_Pe Association meta::pure::mapping::modelToModel::test::alloy::chain::filter::bridge::_Firm__Person { - firm : _Firm[1]; + firm : _Firm[1]; employees : _Person[*]; } @@ -315,7 +332,7 @@ Class meta::pure::mapping::modelToModel::test::alloy::chain::filter::dest::Perso Association meta::pure::mapping::modelToModel::test::alloy::chain::filter::dest::Firm_Person { - firm : Firm[1]; + firm : Firm[1]; employees : Person[*]; } @@ -331,7 +348,7 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::chain::filter::BridgeToD name : '|' + $src.name + '|', employees : $src.employees } - + Person: Pure { ~src _Person fullName : '|' + $src.fullName + '|' @@ -345,7 +362,7 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::chain::filter::BridgeToD name : '|' + $src.name + '|', employees : $src.employees } - + Person: Pure { ~src _Person ~filter $src.fullName->endsWith('1$') @@ -360,7 +377,7 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::chain::filter::SrcToBrid name : '$' + $src.name + '$', employees : $src.employees } - + _Person: Pure { ~src __Person fullName : '$' + $src.fullName + '$' @@ -375,9 +392,9 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::chain::filter::SrcToBrid name : '$' + $src.name + '$', employees : $src.employees } - + _Person: Pure { ~src __Person fullName : '$' + $src.fullName + '$' } -) \ No newline at end of file +) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/chain/parametersChain.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/chain/parametersChain.pure index 1e8ef9dd1ac..a0917c9b35a 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/chain/parametersChain.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/chain/parametersChain.pure @@ -17,10 +17,12 @@ import meta::json::*; import meta::pure::executionPlan::profiles::*; import meta::pure::graphFetch::execution::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::test::alloy::chain::parameters::*; import meta::pure::mapping::modelToModel::test::alloy::chain::parameters::src::*; import meta::pure::mapping::modelToModel::test::alloy::chain::parameters::bridge::*; import meta::pure::mapping::modelToModel::test::alloy::chain::parameters::dest::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function <> {serverVersion.start='v1_19_0'} @@ -37,14 +39,20 @@ meta::pure::mapping::modelToModel::test::alloy::chain::parameters::qualifiedProp }#; let sourceFirms = '[{"name":"Firm1", "employees":[{"fullName":"Person1"}, {"fullName":"Person2"}]},{"name":"Firm2", "employees":[{"fullName":"Person3"}]}]'; - + let result = execute( {|Firm.all()->graphFetchChecked($tree)->serialize($tree)}, BridgeToDestMapping, ^Runtime( - connections = [ - ^ModelChainConnection(element = ^ModelStore(), mappings = [SrcToBridgeMapping]), - ^JsonModelConnection(element = ^ModelStore(), class = __Firm, url = 'data:application/json,' + $sourceFirms) + connectionStores =[ + ^ConnectionStore( + connection=^ModelChainConnection( + mappings = [SrcToBridgeMapping] + ), + element=^ModelStore()), + ^ConnectionStore( + connection=^JsonModelConnection(class = __Firm, url = 'data:application/json,' + $sourceFirms), + element=^ModelStore()) ] ), meta::pure::extension::defaultExtensions() @@ -152,7 +160,7 @@ function <> {serverVersion.start='v1_19_0'} @@ -34,14 +36,20 @@ meta::pure::mapping::modelToModel::test::alloy::chain::simple::simpleChainSerial }#; let sourceFirms = '{"name":"Firm1"}'; - + let result = execute( {|Firm.all()->graphFetch($tree)->serialize($tree)}, BridgeToDestMapping, ^Runtime( - connections = [ - ^ModelChainConnection(element = ^ModelStore(), mappings = [SrcToBridgeMapping]), - ^JsonModelConnection(element = ^ModelStore(), class = __Firm, url = 'data:application/json,' + $sourceFirms) + connectionStores = [ + ^ConnectionStore( + connection= ^ModelChainConnection(mappings = [SrcToBridgeMapping]), + element = ^ModelStore() + ), + ^ConnectionStore( + connection=^JsonModelConnection(class = __Firm, url = 'data:application/json,' + $sourceFirms), + element = ^ModelStore() + ) ] ), meta::pure::extension::defaultExtensions() @@ -61,20 +69,26 @@ meta::pure::mapping::modelToModel::test::alloy::chain::simple::simpleChainSerial }#; let sourceFirms = '{"name":"Firm1"}'; - + let result = execute( {|Firm.all()->graphFetchChecked($tree)->serialize($tree)}, BridgeToDestMapping, ^Runtime( - connections = [ - ^ModelChainConnection(element = ^ModelStore(), mappings = [SrcToBridgeMapping]), - ^JsonModelConnection(element = ^ModelStore(), class = __Firm, url = 'data:application/json,' + $sourceFirms) + connectionStores = [ + ^ConnectionStore( + connection= ^ModelChainConnection(mappings = [SrcToBridgeMapping]), + element = ^ModelStore() + ), + ^ConnectionStore( + connection=^JsonModelConnection(class = __Firm, url = 'data:application/json,' + $sourceFirms), + element = ^ModelStore() + ) ] ), meta::pure::extension::defaultExtensions() ); - let expected = + let expected = '{' + ' "defects": [' + ' ],' + @@ -116,14 +130,20 @@ meta::pure::mapping::modelToModel::test::alloy::chain::simple::simpleChainSerial }#; let sourceFirms = '{"name":"Firm1", "employees":[{"fullName":"Person1"}, {"fullName":"Person2"}]}'; - + let result = execute( {|Firm.all()->graphFetch($tree)->serialize($tree)}, BridgeToDestMapping, ^Runtime( - connections = [ - ^ModelChainConnection(element = ^ModelStore(), mappings = [SrcToBridgeMapping]), - ^JsonModelConnection(element = ^ModelStore(), class = __Firm, url = 'data:application/json,' + $sourceFirms) + connectionStores = [ + ^ConnectionStore( + connection= ^ModelChainConnection(mappings = [SrcToBridgeMapping]), + element = ^ModelStore() + ), + ^ConnectionStore( + connection=^JsonModelConnection(class = __Firm, url = 'data:application/json,' + $sourceFirms), + element = ^ModelStore() + ) ] ), meta::pure::extension::defaultExtensions() @@ -146,14 +166,20 @@ meta::pure::mapping::modelToModel::test::alloy::chain::simple::simpleChainSerial }#; let sourceFirms = '{"name":"Firm1", "employees":[{"fullName":"Person1"}, {"fullName":"Person2"}]}'; - + let result = execute( {|Firm.all()->graphFetchChecked($tree)->serialize($tree)}, BridgeToDestMapping, ^Runtime( - connections = [ - ^ModelChainConnection(element = ^ModelStore(), mappings = [SrcToBridgeMapping]), - ^JsonModelConnection(element = ^ModelStore(), class = __Firm, url = 'data:application/json,' + $sourceFirms) + connectionStores = [ + ^ConnectionStore( + connection= ^ModelChainConnection(mappings = [SrcToBridgeMapping]), + element = ^ModelStore() + ), + ^ConnectionStore( + connection=^JsonModelConnection(class = __Firm, url = 'data:application/json,' + $sourceFirms), + element = ^ModelStore() + ) ] ), meta::pure::extension::defaultExtensions() @@ -225,14 +251,20 @@ meta::pure::mapping::modelToModel::test::alloy::chain::simple::simpleChainSerial }#; let sourceFirms = '[{"name":"Firm1", "employees":[{"fullName":"Person1"}, {"fullName":"Person2"}]},{"name":"Firm2", "employees":[{"fullName":"Person3"}]}]'; - + let result = execute( {|Firm.all()->graphFetch($tree)->serialize($tree)}, BridgeToDestMapping, ^Runtime( - connections = [ - ^ModelChainConnection(element = ^ModelStore(), mappings = [SrcToBridgeMapping]), - ^JsonModelConnection(element = ^ModelStore(), class = __Firm, url = 'data:application/json,' + $sourceFirms) + connectionStores = [ + ^ConnectionStore( + connection= ^ModelChainConnection(mappings = [SrcToBridgeMapping]), + element = ^ModelStore() + ), + ^ConnectionStore( + connection=^JsonModelConnection(class = __Firm, url = 'data:application/json,' + $sourceFirms), + element = ^ModelStore() + ) ] ), meta::pure::extension::defaultExtensions() @@ -276,14 +308,20 @@ meta::pure::mapping::modelToModel::test::alloy::chain::simple::simpleChainSerial }#; let sourceFirms = '[{"name":"Firm1", "employees":[{"fullName":"Person1"}, {"fullName":"Person2"}]},{"name":"Firm2", "employees":[{"fullName":"Person3"}]}]'; - + let result = execute( {|Firm.all()->graphFetchChecked($tree)->serialize($tree)}, BridgeToDestMapping, ^Runtime( - connections = [ - ^ModelChainConnection(element = ^ModelStore(), mappings = [SrcToBridgeMapping]), - ^JsonModelConnection(element = ^ModelStore(), class = __Firm, url = 'data:application/json,' + $sourceFirms) + connectionStores = [ + ^ConnectionStore( + connection= ^ModelChainConnection(mappings = [SrcToBridgeMapping]), + element = ^ModelStore() + ), + ^ConnectionStore( + connection=^JsonModelConnection(class = __Firm, url = 'data:application/json,' + $sourceFirms), + element = ^ModelStore() + ) ] ), meta::pure::extension::defaultExtensions() @@ -404,10 +442,16 @@ meta::pure::mapping::modelToModel::test::alloy::chain::simple::testJsonModelConn let sourceFirms = '{"name":"Firm1"}'; let runtime = ^Runtime( - connections = [ - ^ModelChainConnection(element = ^ModelStore(), mappings = [SrcToBridgeMapping]), - ^JsonModelConnection(element = ^ModelStore(), class = __Firm, url = 'data:application/json,' + $sourceFirms) - ] + connectionStores = [ + ^ConnectionStore( + connection= ^ModelChainConnection(mappings = [SrcToBridgeMapping]), + element = ^ModelStore() + ), + ^ConnectionStore( + connection=^JsonModelConnection(class = __Firm, url = 'data:application/json,' + $sourceFirms), + element = ^ModelStore() + ) + ] ); let simpleQueryResult = execute($simpleQuery, SrcToBridgeMapping, $runtime, meta::pure::extension::defaultExtensions()).values; @@ -437,13 +481,19 @@ meta::pure::mapping::modelToModel::test::alloy::chain::simple::chainWithFilter() }#; let sourceFirms = '[{"name":"Firm1", "employees":[{"fullName":"Person1"}, {"fullName":"Person2"}]},{"name":"Firm2", "employees":[{"fullName":"Person3"}]}]'; - + let result = meta::legend::executeLegendQuery( {|Firm.all()->filter(f|$f.name=='Firm1')->graphFetch($tree)->from(BridgeToDestMapping, ^Runtime( - connections = [ - ^ModelChainConnection(element = ^ModelStore(), mappings = [SrcToBridgeMapping]), - ^JsonModelConnection(element = ^ModelStore(), class = __Firm, url = 'data:application/json,' + $sourceFirms) + connectionStores = [ + ^ConnectionStore( + connection= ^ModelChainConnection(mappings = [SrcToBridgeMapping]), + element = ^ModelStore() + ), + ^ConnectionStore( + connection=^JsonModelConnection(class = __Firm, url = 'data:application/json,' + $sourceFirms), + element = ^ModelStore() + ) ] )) ->serialize($tree)},[], ^ExecutionContext(), meta::pure::extension::defaultExtensions() @@ -484,7 +534,7 @@ Class meta::pure::mapping::modelToModel::test::alloy::chain::simple::src::__Pers Association meta::pure::mapping::modelToModel::test::alloy::chain::simple::src::__Firm___Person { - firm : __Firm[1]; + firm : __Firm[1]; employees : __Person[*]; } @@ -500,7 +550,7 @@ Class meta::pure::mapping::modelToModel::test::alloy::chain::simple::bridge::_Pe Association meta::pure::mapping::modelToModel::test::alloy::chain::simple::bridge::_Firm__Person { - firm : _Firm[1]; + firm : _Firm[1]; employees : _Person[*]; } @@ -516,7 +566,7 @@ Class meta::pure::mapping::modelToModel::test::alloy::chain::simple::dest::Perso Association meta::pure::mapping::modelToModel::test::alloy::chain::simple::dest::Firm_Person { - firm : Firm[1]; + firm : Firm[1]; employees : Person[*]; } @@ -532,7 +582,7 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::chain::simple::BridgeToD name : '|' + $src.name + '|', employees : $src.employees } - + Person: Pure { ~src _Person fullName : '|' + $src.fullName + '|' @@ -546,9 +596,9 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::chain::simple::SrcToBrid name : '$' + $src.name + '$', employees : $src.employees } - + _Person: Pure { ~src __Person fullName : '$' + $src.fullName + '$' } -) \ No newline at end of file +) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/constraints.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/constraints.pure index 13eb2ca0c1c..5655669e235 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/constraints.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/constraints.pure @@ -16,22 +16,27 @@ import meta::pure::executionPlan::engine::java::roadmap::*; import meta::json::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::graphFetch::execution::*; import meta::pure::executionPlan::profiles::*; import meta::pure::mapping::modelToModel::test::alloy::constraints::*; -function <> +function <> { serverVersion.start='v1_19_0' } meta::pure::mapping::modelToModel::test::alloy::constraints::testTargetConstraintsWhenRequiredPropertiesAreNotSpecifiedOnGraphFetchTree():Boolean[1] { let result = execute( |Firm.all()->graphFetchChecked(#{Firm {name} }#)->serialize(#{Firm {name} }#), m2mconstraintmapping1, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), - class=_Firm, + ^Runtime( + connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( + class=_Firm, url='data:application/json,{"name":"FirmX"}' ) + ) ), meta::pure::extension::defaultExtensions() ); @@ -39,16 +44,18 @@ meta::pure::mapping::modelToModel::test::alloy::constraints::testTargetConstrain assert(jsonEquivalent('{"defects":[{"path":[],"enforcementLevel":"Error","ruleType":"ClassConstraint","externalId":null,"id":"0","ruleDefinerPath":"meta::pure::mapping::modelToModel::test::alloy::constraints::Firm","message":"Constraint :[0] violated in the Class Firm"}],"source":{"defects":[],"source":{"number":1,"record":"{\\"name\\":\\"FirmX\\"}"},"value":{"name":"FirmX","employees":[]}},"value":{"name":"FirmX"}}'->parseJSON(), $result.values->toOne()->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0' } meta::pure::mapping::modelToModel::test::alloy::constraints::testQueryOnTypeWithFailingConstraintSucceedsWithConstraintsDisabled():Boolean[1] { let result = execute( |Firm.all()->graphFetch(#{Firm {name} }#)->serialize(#{Firm {name} }#), m2mconstraintmapping1, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), - class=_Firm, - url='data:application/json,{"name":"FirmX"}')), + ^Runtime( + connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( + class=_Firm, + url='data:application/json,{"name":"FirmX"}'))), ^ExecutionContext(enableConstraints=false), meta::pure::extension::defaultExtensions() ); @@ -56,38 +63,42 @@ meta::pure::mapping::modelToModel::test::alloy::constraints::testQueryOnTypeWith assert(jsonEquivalent('{"name":"FirmX"}'->parseJSON(), $result.values->toOne()->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0' } meta::pure::mapping::modelToModel::test::alloy::constraints::testQueryOnSourceTypeWithFailingConstraintSucceedsWithConstraintsDisabled():Boolean[1] { let result = execute( |Firm2.all()->graphFetch(#{Firm2 {name} }#)->serialize(#{Firm2 {name} }#), m2mconstraintmapping2, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), - class=_Firm2, - url='data:application/json,{"name":"FirmX"}')), + ^Runtime( + connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( + class=_Firm2, + url='data:application/json,{"name":"FirmX"}'))), ^ExecutionContext(enableConstraints=false), meta::pure::extension::defaultExtensions() ); - + assert(jsonEquivalent('{"name":"FirmX"}'->parseJSON(), $result.values->toOne()->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0' } meta::pure::mapping::modelToModel::test::alloy::constraints::testSourceConstraintsWhenRelatedTargetPropertiesAreNotSpecifiedOnGraphFetchTree():Boolean[1] { let result = execute( |Firm2.all()->graphFetchChecked(#{Firm2 {name} }#)->serialize(#{Firm2 {name} }#), m2mconstraintmapping2, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), - class=_Firm2, + ^Runtime( + connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( + class=_Firm2, url='data:application/json,{"name":"FirmX","employees":[{"firstName":"David","lastName":"Roe"}]}' - ) + )) ), meta::pure::extension::defaultExtensions() ); - + assert(jsonEquivalent('{"defects":[],"source":{"defects":[{"path":[],"enforcementLevel":"Error","ruleType":"ClassConstraint","externalId":null,"id":"0","ruleDefinerPath":"meta::pure::mapping::modelToModel::test::alloy::constraints::_Firm2","message":"Constraint :[0] violated in the Class _Firm2"},{"path":[{"propertyName":"employees","index":0}],"enforcementLevel":"Error","ruleType":"ClassConstraint","externalId":null,"id":"0","ruleDefinerPath":"meta::pure::mapping::modelToModel::test::alloy::constraints::_Person2","message":"Constraint :[0] violated in the Class _Person2"}],"source":{"number":1,"record":"{\\"name\\":\\"FirmX\\",\\"employees\\":[{\\"firstName\\":\\"David\\",\\"lastName\\":\\"Roe\\"}]}"},"value":{"name":"FirmX","employees":[{"firm":null,"address":null}]}},"value":{"name":"FirmX"}}'->parseJSON(), $result.values->toOne()->parseJSON())); } @@ -97,11 +108,13 @@ meta::pure::mapping::modelToModel::test::alloy::constraints::testSourceConstrain { let result = execute( |Car.all()->graphFetchChecked(#{Car {engineSize}}#)->serialize(#{Car {engineSize}}#), m2mconstraintnewmapping, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), + ^Runtime( + connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( class=_Car, url='data:application/json,{"make" : "Ford", "engineSize" : "big", "numOfDoors" : 1}' - ) + )) ), meta::pure::extension::defaultExtensions() ); @@ -115,15 +128,17 @@ meta::pure::mapping::modelToModel::test::alloy::constraints::testSourceConstrain { let result = execute( |ProductTaxonomy.all()->graphFetchChecked(#{ProductTaxonomy {id}}#)->serialize(#{ProductTaxonomy {id}}#), m2mconstraintnewmapping2, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), + ^Runtime( + connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( class=ProductTaxonomy, url='data:application/json,{"id":"1"}' - ) + )) ), meta::pure::extension::defaultExtensions() ); - + assert(jsonEquivalent('{"defects":[],"source":{"defects":[],"source":{"number":1,"record":"{\\"id\\":\\"1\\"}"},"value":{"id":"1"}},"value":{"id":"1"}}'->parseJSON(), $result.values->toOne()->parseJSON())); } @@ -133,11 +148,13 @@ meta::pure::mapping::modelToModel::test::alloy::constraints::testIsEqualConstrai { let result = execute(|B.all()->graphFetchChecked(#{B { b }}#)->serialize(#{B { b }}#), meta::pure::mapping::modelToModel::test::alloy::constraints::isEqualTest, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), + ^Runtime( + connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( class=_B, url='data:application/json,{"b":true}' - ) + )) ), meta::pure::extension::defaultExtensions() ); @@ -151,11 +168,14 @@ meta::pure::mapping::modelToModel::test::alloy::constraints::testIsDistinctConst { let result = execute(|C.all()->graphFetchChecked(#{C { b }}#)->serialize(#{C { b }}#), meta::pure::mapping::modelToModel::test::alloy::constraints::isDistinctTest, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), + ^Runtime( + connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( class=_C, url='data:application/json,{"b":true}' ) + ) ), meta::pure::extension::defaultExtensions() ); @@ -169,11 +189,14 @@ meta::pure::mapping::modelToModel::test::alloy::constraints::constraintOnOptiona { let result = execute(|D.all()->graphFetchChecked(#{D { maybe, i }}#)->serialize(#{D { maybe, i }}#), meta::pure::mapping::modelToModel::test::alloy::constraints::n2dMaybeNotMapped, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), + ^Runtime( + connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( class=_Num, url='data:application/json,{"n":5}' ) + ) ), meta::pure::extension::defaultExtensions() ); @@ -187,11 +210,14 @@ meta::pure::mapping::modelToModel::test::alloy::constraints::constraintOnOptiona { let result = execute(|D.all()->graphFetchChecked(#{D { maybe, i }}#)->serialize(#{D { maybe, i }}#), meta::pure::mapping::modelToModel::test::alloy::constraints::n2dMaybeNotMapped, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), + ^Runtime( + connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( class=_Num, url='data:application/json,{"n":20}' ) + ) ), meta::pure::extension::defaultExtensions() ); @@ -205,11 +231,14 @@ meta::pure::mapping::modelToModel::test::alloy::constraints::constraintOnUnmappe { let result = execute(|E.all()->graphFetchChecked(#{E { i }}#)->serialize(#{E { i }}#), meta::pure::mapping::modelToModel::test::alloy::constraints::n2eExpectedNotMapped, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), + ^Runtime( + connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( class=_Num, url='data:application/json,{"n":5}' ) + ) ), meta::pure::extension::defaultExtensions() ); @@ -223,11 +252,14 @@ meta::pure::mapping::modelToModel::test::alloy::constraints::constraintOnUnmappe { let result = execute(|E.all()->graphFetchChecked(#{E { i }}#)->serialize(#{E { i }}#), meta::pure::mapping::modelToModel::test::alloy::constraints::n2eExpectedNotMapped, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), + ^Runtime( + connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( class=_Num, url='data:application/json,{"n":20}' ) + ) ), meta::pure::extension::defaultExtensions() ); @@ -242,11 +274,14 @@ meta::pure::mapping::modelToModel::test::alloy::constraints::constraintOnUnmappe { let result = execute(|F.all()->graphFetchChecked(#{F { i }}#)->serialize(#{F { i }}#), meta::pure::mapping::modelToModel::test::alloy::constraints::n2fExpectedNotMapped, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), + ^Runtime( + connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( class=_Num, url='data:application/json,{"n":20}' ) + ) ), meta::pure::extension::defaultExtensions() ); @@ -260,11 +295,14 @@ meta::pure::mapping::modelToModel::test::alloy::constraints::constraintOnUnmappe { let result = execute(|F.all()->graphFetchChecked(#{F { i }}#)->serialize(#{F { i }}#), meta::pure::mapping::modelToModel::test::alloy::constraints::n2fExpectedNotMapped, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), + ^Runtime( + connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( class=_Num, url='data:application/json,{"n":5}' ) + ) ), meta::pure::extension::defaultExtensions() ); @@ -278,11 +316,13 @@ meta::pure::mapping::modelToModel::test::alloy::constraints::constraintOnUnmappe { let result = execute(|meta::pure::mapping::modelToModel::test::alloy::constraints::Loan.all()->graphFetchChecked(#{meta::pure::mapping::modelToModel::test::alloy::constraints::Loan {id}}#)->serialize(#{meta::pure::mapping::modelToModel::test::alloy::constraints::Loan {id}}#), meta::pure::mapping::modelToModel::test::alloy::constraints::LoanMapping, - ^Runtime(connections = ^JsonModelConnection( - element = ^ModelStore(), + ^Runtime( + connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( class = meta::pure::mapping::modelToModel::test::alloy::constraints::From, url='data:application/json,{"id":20}' - )), + ))), meta::pure::extension::defaultExtensions() ); @@ -298,7 +338,10 @@ meta::pure::mapping::modelToModel::test::alloy::constraints::testIsDistinctConst let result = execute( |Product.all()->graphFetchChecked(#{Product{id,name,synonyms{type,name}}}#)->serialize(#{Product{id,name,synonyms{type,name}}}#), meta::pure::mapping::modelToModel::test::alloy::constraints::ProductMapping, - ^Runtime(connections = ^JsonModelConnection(element =^ ModelStore(), class = _Product, url = 'data:application/json,' + $inputData)), + ^Runtime( + connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection(class = _Product, url = 'data:application/json,' + $inputData))), meta::pure::extension::defaultExtensions() ); @@ -357,7 +400,7 @@ Class meta::pure::mapping::modelToModel::test::alloy::constraints::Person } Class meta::pure::mapping::modelToModel::test::alloy::constraints::_Firm -{ +{ name: String[1]; employees:meta::pure::mapping::modelToModel::test::alloy::constraints::_Person[*]; } @@ -366,7 +409,7 @@ Class meta::pure::mapping::modelToModel::test::alloy::constraints::_Firm2 [ $this.employees.address.street->isNotEmpty() ] -{ +{ name: String[1]; employees:meta::pure::mapping::modelToModel::test::alloy::constraints::_Person2[*]; } @@ -404,7 +447,7 @@ Class meta::pure::mapping::modelToModel::test::alloy::constraints::CurrentCarDat { allowed : CarManufacturer[*]; numAllowed(){$this.allowed->size();}:Integer[1]; - + } @@ -525,7 +568,7 @@ Class meta::pure::mapping::modelToModel::test::alloy::constraints::Country Class meta::pure::mapping::modelToModel::test::alloy::constraints::From { id:Integer[1]; -} +} Class meta::pure::mapping::modelToModel::test::alloy::constraints::Product [ @@ -554,7 +597,7 @@ Class meta::pure::mapping::modelToModel::test::alloy::constraints::_Product Class meta::pure::mapping::modelToModel::test::alloy::constraints::_Synonym { value: String[1]; -} +} ###Mapping Mapping meta::pure::mapping::modelToModel::test::alloy::constraints::isEqualTest @@ -625,7 +668,7 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::constraints::m2mconstrai { ~src meta::pure::mapping::modelToModel::test::alloy::constraints::ProductTaxonomy id : $src.id - } + } ) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/dataQuality.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/dataQuality.pure index a93406fd2f7..414f0070aba 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/dataQuality.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/dataQuality.pure @@ -25,6 +25,8 @@ import meta::pure::mapping::modelToModel::test::dataQuality::*; import meta::pure::mapping::modelToModel::test::dataQuality::graphFetch::dest::*; import meta::pure::mapping::modelToModel::test::dataQuality::graphFetch::src::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function <> @@ -39,11 +41,11 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::canUseGraphFetchChe let func = {|WithoutConstraints.all()->graphFetchChecked($tree)->serialize($tree)}; let mapping = copyIntegerMapping; let runtime = testJsonRuntime(_Num, '{"i":3}'); - + let result = execute($func, $mapping, $runtime, meta::pure::extension::defaultExtensions()); let json = $result.values->toOne(); - let expected= + let expected= '{'+ ' "defects":[],'+ ' "value":{"i":3},'+ @@ -69,11 +71,11 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::canUseGraphFetchChe let func = {|WithoutConstraintsInheritsNoConstriants.all()->graphFetchChecked($tree)->serialize($tree)}; let mapping = copyIntegerMapping; let runtime = testJsonRuntime(_Num, '{"i":3}'); - + let result = execute($func, $mapping, $runtime, meta::pure::extension::defaultExtensions()); let json = $result.values->toOne(); - let expected= + let expected= '{'+ ' "defects":[],'+ ' "value":{"i":3},'+ @@ -98,13 +100,14 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::constraintsPassWhen let func = {|SomeDataConstrained.all()->graphFetch($tree)->serialize($tree)}; let mapping = simpleConstrainedDataMapping; let runtime = ^Runtime( - connections = ^JsonModelConnection( - element=^ModelStore(), + connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( class = _SomeDataConstrained, url = 'data:application/json,{"i":3, "b":false, "child": {"s":"Hello"}}' - ) + )) ); - + let result = execute($func, $mapping, $runtime, meta::pure::extension::defaultExtensions()); assert(true); @@ -122,10 +125,10 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::constraintsPassForV let func = {|WithConstraints.all()->graphFetchChecked($tree)->serialize($tree)}; let mapping = doubleIntegerMapping; let runtime = testJsonRuntime(_Num, '{"i":3, "child" : {"s": "Hello"}}'); - + let result = execute($func, $mapping, $runtime, meta::pure::extension::defaultExtensions()); let json = $result.values->toOne(); - let expected= + let expected= '{'+ ' "defects":[],'+ ' "value":{"i":6,"child":{"s":"Hello"}},'+ @@ -150,10 +153,10 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::unmappedConstraintP let func = {|WithConstraints.all()->graphFetchChecked($tree)->serialize($tree)}; let mapping = noIMapping; let runtime = testJsonRuntime(_Num2, '{"int":3, "child" : {"s": "Hello"}}'); - + let result = execute($func, $mapping, $runtime, meta::pure::extension::defaultExtensions()); let json = $result.values->toOne(); - let expected= + let expected= '{'+ ' "defects":['+ ' {'+ @@ -198,10 +201,10 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::unmappedConstraintP let func = {|WithConstraintsViaQualifier.all()->graphFetchChecked($tree)->serialize($tree)}; let mapping = noIViaQualifierMapping; let runtime = testJsonRuntime(_Num2, '{"int":3}'); - + let result = execute($func, $mapping, $runtime, meta::pure::extension::defaultExtensions()); let json = $result.values->toOne(); - let expected= + let expected= '{'+ ' "defects":['+ ' {'+ @@ -220,29 +223,29 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::unmappedConstraintP ' "value":{},'+ ' "source":{"number":1, "record":"{\\"int\\":3}"}'+ ' }'+ - '}'; + '}'; assert(jsonEquivalent($expected->parseJSON(), $json->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a class that defines constraints.', doc.doc='Given: data that fails one constraint.', doc.doc='When: the mapping is executed using graphFetch.', doc.doc='Then: the inherited constaints should be evaluated and a defect returned.' -} +} meta::pure::mapping::modelToModel::test::alloy::dataQuality::constraintsFailForInvalidDataOneDefect() : Boolean[1] { let tree = #{WithConstraints {i}}#; let func = {|WithConstraints.all()->graphFetchChecked($tree)->serialize($tree)}; let mapping = copyIntegerMapping; let runtime = testJsonRuntime(_Num, '{"i":2}'); - + let result = execute($func, $mapping, $runtime, meta::pure::extension::defaultExtensions()); let json = $result.values->toOne(); - let expected= + let expected= '{'+ ' "defects":['+ ' {'+ @@ -265,24 +268,24 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::constraintsFailForI assert(jsonEquivalent($expected->parseJSON(), $json->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a class that defines constraints.', doc.doc='Given: data that fails two constraints.', doc.doc='When: the mapping is executed using graphFetch.', doc.doc='Then: the inherited constaints should be evaluated and defects returned.' -} +} meta::pure::mapping::modelToModel::test::alloy::dataQuality::constraintsFailForInvalidDataTwoDefects() : Boolean[1] { let tree = #{WithConstraints {i}}#; let func = {|WithConstraints.all()->graphFetchChecked($tree)->serialize($tree)}; let mapping = copyIntegerMapping; let runtime = testJsonRuntime(_Num, '{"i":1}'); - + let result = execute($func, $mapping, $runtime, meta::pure::extension::defaultExtensions()); let json = $result.values->toOne(); - let expected= + let expected= '{'+ ' "defects":['+ ' {'+ @@ -315,24 +318,24 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::constraintsFailForI assert(jsonEquivalent($expected->parseJSON(), $json->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a class that inherits constraints.', doc.doc='Given: data that meets those constraints.', doc.doc='When: the mapping is executed using graphFetch.', doc.doc='Then: the inherited constaints should be evaluated and no defects returned.' -} +} meta::pure::mapping::modelToModel::test::alloy::dataQuality::constraintsAreInheritedAndPassForValidData() : Boolean[1] { let tree = #{InheritsConstriants {i}}#; let func = {|InheritsConstriants.all()->graphFetchChecked($tree)->serialize($tree)}; let mapping = copyIntegerMapping; let runtime = testJsonRuntime(_Num, '{"i":6}'); - + let result = execute($func, $mapping, $runtime, meta::pure::extension::defaultExtensions()); let json = $result.values->toOne(); - let expected= + let expected= '{'+ ' "defects":[],'+ ' "value":{"i":6},'+ @@ -345,24 +348,24 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::constraintsAreInher assert(jsonEquivalent($expected->parseJSON(), $json->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a class that inherits constraints.', doc.doc='Given: data that fails a constraint on the superclass and one on the subclass.', doc.doc='When: the mapping is executed using graphFetch.', doc.doc='Then: the inherited constaints should be evaluated and a defect returned.' -} +} meta::pure::mapping::modelToModel::test::alloy::dataQuality::constraintsAreInheritedAndFailForInvalidData() : Boolean[1] { let tree = #{InheritsConstriants {i}}#; let func = {|InheritsConstriants.all()->graphFetchChecked($tree)->serialize($tree)}; let mapping = copyIntegerMapping; let runtime = testJsonRuntime(_Num, '{"i":2}'); - + let result = execute($func, $mapping, $runtime, meta::pure::extension::defaultExtensions()); let json = $result.values->toOne(); - let expected= + let expected= '{'+ ' "defects":['+ ' {'+ @@ -391,7 +394,7 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::constraintsAreInher ' "source":{"number":1,"record":"{\\"i\\":2}"}'+ ' }'+ '}'; - + assert(jsonEquivalent($expected->parseJSON(), $json->parseJSON())); } @@ -410,7 +413,7 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::returnCheckResultWi let result = execute($func, $mapping, $runtime, meta::pure::extension::defaultExtensions()); let json = $result.values->toOne(); - let expected = + let expected = '{'+ ' "defects":['+ ' {'+ @@ -445,10 +448,10 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::returnCheckResultWi let func = {|AuthorWithConstraints.all()->graphFetchChecked($tree)->serialize($tree)}; let mapping = constraintsLiteratureMapping; let runtime = testJsonRuntime(_Author, '{"name":"Plato", "books":[{"title": "Euthyphro", "pages": 20, "marketing": { "reviews": [{"by": "Socretes"},{"by": "Plato"}] }}, {"title": "Phaedo", "pages":61}]}'); - + let result = execute($func, $mapping, $runtime, meta::pure::extension::defaultExtensions()); let json = $result.values->toOne(); - let expected= + let expected= '{'+ ' "defects":['+ ' {'+ @@ -530,7 +533,7 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::returnCheckResultWi ' "source":{"number":1, "record":"{\\"name\\":\\"Plato\\",\\"books\\":[{\\"title\\":\\"Euthyphro\\",\\"pages\\":20,\\"marketing\\":{\\"reviews\\":[{\\"by\\":\\"Socretes\\"},{\\"by\\":\\"Plato\\"}]}},{\\"title\\":\\"Phaedo\\",\\"pages\\":61}]}"}'+ ' }'+ '}'; - + assert(jsonEquivalent($expected->parseJSON(), $json->parseJSON())); } @@ -549,7 +552,7 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::returnCheckResultWi let result = execute($func, $mapping, $runtime, meta::pure::extension::defaultExtensions()); let json = $result.values->toOne(); - let expected = + let expected = '{'+ ' "defects":['+ ' {'+ @@ -582,25 +585,25 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::returnCheckResultWi assert(jsonEquivalent($expected->parseJSON(), $json->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a class that defines a constraint.', doc.doc='Given: a superclass without constraints.', doc.doc='Given: data that meets the constraint.', doc.doc='When: the mapping is executed using graphFetch.', doc.doc='Then: the constaint should be evaluated and no defects returned.' -} +} meta::pure::mapping::modelToModel::test::alloy::dataQuality::canDefineConstraintAndInheritFromAClassThatDoesNotDefineConstraintsAndPassForValidData() : Boolean[1] { let tree = #{WithConstraintInheritsNoConstriants {i}}#; let func = {|WithConstraintInheritsNoConstriants.all()->graphFetchChecked($tree)->serialize($tree)}; let mapping = copyIntegerMapping; let runtime = testJsonRuntime(_Num, '{"i":6}'); - + let result = execute($func, $mapping, $runtime, meta::pure::extension::defaultExtensions()); let json = $result.values->toOne(); - let expected= + let expected= '{'+ ' "defects":[],'+ ' "value":{"i":6},'+ @@ -613,25 +616,25 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::canDefineConstraint assert(jsonEquivalent($expected->parseJSON(), $json->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a class that defines a constraint.', doc.doc='Given: a superclass without constraints.', doc.doc='Given: data that fails the constraint.', doc.doc='When: the mapping is executed using graphFetch.', doc.doc='Then: the constaint should be evaluated and a defect returned.' -} +} meta::pure::mapping::modelToModel::test::alloy::dataQuality::canDefineConstraintAndInheritFromAClassThatDoesNotDefineConstraintsAndFailForInvalidData() : Boolean[1] { let tree = #{WithConstraintInheritsNoConstriants {i}}#; let func = {|WithConstraintInheritsNoConstriants.all()->graphFetchChecked($tree)->serialize($tree)}; let mapping = copyIntegerMapping; let runtime = testJsonRuntime(_Num, '{"i":2}'); - + let result = execute($func, $mapping, $runtime, meta::pure::extension::defaultExtensions()); let json = $result.values->toOne(); - let expected= + let expected= '{'+ ' "defects":['+ ' {'+ @@ -666,10 +669,10 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::returnCheckResultWi let func = {|WithConstraints.all()->graphFetchChecked($tree)->serialize($tree)}; let mapping = doubleIntegerMapping; let runtime = testJsonRuntime(_Num, '{"child":{}}'); - + let result = execute($func, $mapping, $runtime, meta::pure::extension::defaultExtensions()); let json = $result.values->toOne(); - let expected= + let expected= '{'+ ' "defects":['+ ' {'+ @@ -728,11 +731,11 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::returnCheckResultWi let func = {|SomeDataConstrained.all()->graphFetchChecked($tree)->serialize($tree)}; let mapping = simpleConstrainedDataMapping; let runtime = testJsonRuntime(_SomeDataConstrained, '{"i":"NaN", "b":[1, false], "child":{"s":false, "d":"notadate"}}'); - + let result = execute($func, $mapping, $runtime, meta::pure::extension::defaultExtensions()); let json = $result.values->toOne(); - - let expected= + + let expected= '{'+ ' "defects":['+ ' {'+ @@ -841,7 +844,7 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::returnCheckResultWi let result = execute($func, $mapping, $runtime, ^ExecutionContext(enableConstraints=false), meta::pure::extension::defaultExtensions()); let json = $result.values->toOne(); - let expected = + let expected = '{'+ ' "defects":[],'+ ' "value":{"i":1,"b":false},'+ @@ -890,7 +893,7 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::returnCheckResultWi let result = execute($func, $mapping, $runtime, ^ExecutionContext(enableConstraints=false), meta::pure::extension::defaultExtensions()); let json = $result.values->toOne(); - let expected = + let expected = '{'+ ' "defects":[],'+ ' "value":{"i":4,"b":false},'+ @@ -899,7 +902,7 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::returnCheckResultWi ' "value":{"i":2,"b":false},'+ ' "source":{"number":1,"record":"{\\"i\\":2,\\"b\\":false}"}'+ ' }'+ - '}'; + '}'; assert(jsonEquivalent($expected->parseJSON(), $json->parseJSON())); } @@ -936,10 +939,10 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::fetchGraphIsExpande let func = {|AuthorWithConstraints.all()->graphFetchChecked($tree)->serialize($tree)}; let mapping = constraintsLiteratureMapping; let runtime = testJsonRuntime(_Author, '{"name":"Plato", "books":[{"title": "Euthyphro", "pages": 20, "marketing": { "reviews": [{"by": "Socretes"},{"by": "Plato"}] }}, {"title": "Phaedo", "pages":61}]}'); - + let result = execute($func, $mapping, $runtime, meta::pure::extension::defaultExtensions()); let json = $result.values->toOne(); - let expected= + let expected= '{'+ ' "defects":['+ ' {'+ @@ -999,7 +1002,7 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::fetchGraphIsExpande ' "source":{"number":1, "record":"{\\"name\\":\\"Plato\\",\\"books\\":[{\\"title\\":\\"Euthyphro\\",\\"pages\\":20,\\"marketing\\":{\\"reviews\\":[{\\"by\\":\\"Socretes\\"},{\\"by\\":\\"Plato\\"}]}},{\\"title\\":\\"Phaedo\\",\\"pages\\":61}]}"}'+ ' }'+ '}'; - + assert(jsonEquivalent($expected->parseJSON(), $json->parseJSON())); } @@ -1019,7 +1022,7 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::fetchGraphIsExpande let result = execute($func, $mapping, $runtime, meta::pure::extension::defaultExtensions()); let json = $result.values->toOne(); - let expected = + let expected = '{'+ ' "defects":[],'+ ' "value":{"b":false},'+ @@ -1055,10 +1058,10 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::testWordCountForM2M let runtime = testJsonRuntime(_Book, '{"pages":5}'); let result = execute($func, $mapping, $runtime,meta::pure::extension::defaultExtensions()); let json = $result.values->toOne(); - + let expected = '{"wordCount":250}'; - - assert(jsonEquivalent($expected->parseJSON(), $json->parseJSON())); + + assert(jsonEquivalent($expected->parseJSON(), $json->parseJSON())); } @@ -1072,7 +1075,7 @@ Class meta::pure::mapping::modelToModel::test::dataQuality::graphFetch::src::_So [ TestConstraint( ~function:(1 < $this.i) - ) + ) ] { i : Integer[1]; @@ -1160,7 +1163,7 @@ Class meta::pure::mapping::modelToModel::test::dataQuality::graphFetch::dest::Wi TestConstraint( ~function:(3 < $this.i) ), - + MoreThanOne( ~externalId: 'TEST' ~function:(1 < $this.i) @@ -1342,14 +1345,14 @@ import meta::pure::mapping::modelToModel::test::alloy::dataQuality::dest::*; Mapping meta::pure::mapping::modelToModel::test::alloy::dataQuality::mapping::simpleLiteratureMapping ( - Author : Pure + Author : Pure { ~src _Author name : $src.name, books : $src.books } - Book : Pure + Book : Pure { ~src _Book title : $src.title, @@ -1364,14 +1367,14 @@ import meta::pure::mapping::modelToModel::test::alloy::dataQuality::dest::*; Mapping meta::pure::mapping::modelToModel::test::alloy::dataQuality::mapping::constraintsLiteratureMapping ( - AuthorWithConstraints : Pure + AuthorWithConstraints : Pure { ~src _Author name : $src.name, books : $src.books } - BookWithConstraints : Pure + BookWithConstraints : Pure { ~src _Book title : $src.title, @@ -1379,13 +1382,13 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::dataQuality::mapping::co marketing : $src.marketing } - Marketing : Pure + Marketing : Pure { ~src _Marketing reviews : $src.reviews } - Review : Pure + Review : Pure { ~src _Review by : $src.by @@ -1398,7 +1401,7 @@ import meta::pure::mapping::modelToModel::test::dataQuality::graphFetch::dest::* Mapping meta::pure::mapping::modelToModel::test::dataQuality::simpleConstrainedDataMapping ( - SomeDataConstrained : Pure + SomeDataConstrained : Pure { ~src _SomeDataConstrained i : $src.i*$src.i, @@ -1420,7 +1423,7 @@ import meta::pure::mapping::modelToModel::test::dataQuality::graphFetch::dest::* Mapping meta::pure::mapping::modelToModel::test::dataQuality::simpleUnconstrainedDataMapping ( - SomeDataUnconstrained : Pure + SomeDataUnconstrained : Pure { ~src _SomeDataConstrained i : $src.i*$src.i, @@ -1445,7 +1448,7 @@ Mapping meta::pure::mapping::modelToModel::test::dataQuality::copyIntegerMapping ~src _Num i:$src.i } - + WithConstraintInheritsNoConstriants : Pure { ~src _Num @@ -1457,7 +1460,7 @@ Mapping meta::pure::mapping::modelToModel::test::dataQuality::copyIntegerMapping ~src _Num i:$src.i } - + WithoutConstraintsInheritsNoConstriants : Pure { ~src _Num @@ -1526,7 +1529,7 @@ Mapping meta::pure::mapping::modelToModel::test::dataQuality::simpleConstrainedW ~src _Y i:$src.i*$src.i, b:$src.b - + } ) @@ -1540,8 +1543,8 @@ import meta::pure::mapping::modelToModel::test::dataQuality::*; Class meta::pure::mapping::modelToModel::test::dataQuality::SourceWidget { - name: String[0..1]; -} + name: String[0..1]; +} Class meta::pure::mapping::modelToModel::test::dataQuality::Parent [ @@ -1553,8 +1556,8 @@ Class meta::pure::mapping::modelToModel::test::dataQuality::Parent ~message: 'Name is missing on the widget' ) ] -{ - name: String[0..1]; +{ + name: String[0..1]; isValid() {$this.name->isNotEmpty()}: Boolean[1]; } @@ -1569,7 +1572,7 @@ function <graphFetchChecked($tree)->serialize($tree), SourceWidgetToWidget, @@ -1577,7 +1580,7 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::fetchGraphIsExpande meta::pure::extension::defaultExtensions() ); let json = $result.values->toOne(); - let expected = + let expected = '{'+ ' "defects":[],'+ ' "value":{"name":"Dave"},'+ @@ -1586,7 +1589,7 @@ meta::pure::mapping::modelToModel::test::alloy::dataQuality::fetchGraphIsExpande ' "value":{"name":"Dave"},'+ ' "source":{"number":1,"record":"{\\"name\\":\\"Dave\\"}"}'+ ' }'+ - '}'; + '}'; assert(jsonEquivalent($expected->parseJSON(), $json->parseJSON())); } @@ -1598,7 +1601,7 @@ Mapping meta::pure::mapping::modelToModel::test::dataQuality::SourceWidgetToWidg ( *Widget[alloy_mastery_sourcing_testModel_vendors_sourceCreate_Widget]: Pure { - ~src SourceWidget + ~src SourceWidget name: $src.name } ) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/filterGraphFetch.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/filterGraphFetch.pure index 78d2befc690..fb419d76b82 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/filterGraphFetch.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/filterGraphFetch.pure @@ -17,107 +17,124 @@ import meta::pure::mapping::*; import meta::pure::mapping::modelToModel::test::alloy::filterGraphFetch::*; import meta::pure::mapping::modelToModel::test::shared::src::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::modelToModel::test::simple::*; import meta::pure::graphFetch::execution::*; import meta::pure::mapping::modelToModel::test::shared::dest::*; -function <> +function <> meta::pure::mapping::modelToModel::test::alloy::filterGraphFetch::filterOnAssociationChecked() : Boolean[1] { let tree = #{Firm {legalName }}#; let result = executeGraphFetchWithParameters( |Firm.all()->filter(f|$f.employees->exists(p|$p.lastName=='T'))->graphFetchChecked($tree)->meta::pure::mapping::from( simpleModelMappingWithAssociation, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), - class=_Firm, + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( + class=_Firm, url='data:application/json,[{"name":"CORP"},{"name":"FINOS","employees": [{"fullName" : "Robert T", "address": {"name" : "n", "street" : "Digby"}, "aName" : "A", "vehicle": {"wheelCount" : 5}, "@type":"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA"}, {"fullName" : "John T", "address": {"name" : "n", "street" : "HighBury"}, "aName" : "A", "vehicle": {"wheelCount" : 7}, "@type":"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA"}, {"fullName" : "Den B", "address": {"name" : "n", "street" : "Cresent"}, "aName" : "B", "@type":"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonB"} ]}]' - ) + ))] ))->serialize($tree), - []); + []); + - assertEq('{"builder":{"_type":"json"},"values":{"defects":[],"source":{"defects":[],"source":{"number":2,"record":"{\\"name\\":\\"FINOS\\",\\"employees\\":[{\\"fullName\\":\\"Robert T\\",\\"address\\":{\\"name\\":\\"n\\",\\"street\\":\\"Digby\\"},\\"aName\\":\\"A\\",\\"vehicle\\":{\\"wheelCount\\":5},\\"@type\\":\\"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA\\"},{\\"fullName\\":\\"John T\\",\\"address\\":{\\"name\\":\\"n\\",\\"street\\":\\"HighBury\\"},\\"aName\\":\\"A\\",\\"vehicle\\":{\\"wheelCount\\":7},\\"@type\\":\\"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA\\"},{\\"fullName\\":\\"Den B\\",\\"address\\":{\\"name\\":\\"n\\",\\"street\\":\\"Cresent\\"},\\"aName\\":\\"B\\",\\"@type\\":\\"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonB\\"}]}"},"value":{"employees":[{"fullName":"Robert T"},{"fullName":"John T"},{"fullName":"Den B"}],"name":"FINOS"}},"value":{"legalName":"FINOS"}}}', $result); } -function <> +function <> meta::pure::mapping::modelToModel::test::alloy::filterGraphFetch::filterOnAssociationNonChecked() : Boolean[1] { let tree = #{Firm {legalName }}#; let result = executeGraphFetchWithParameters( |Firm.all()->filter(f|$f.employees->exists(p|$p.lastName=='T'))->graphFetch($tree)->meta::pure::mapping::from( simpleModelMappingWithAssociation, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), - class=_Firm, + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( + class=_Firm, url='data:application/json,[{"name":"CORP"},{"name":"FINOS","employees": [{"fullName" : "Robert T", "address": {"name" : "n", "street" : "Digby"}, "aName" : "A", "vehicle": {"wheelCount" : 5}, "@type":"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA"}, {"fullName" : "John T", "address": {"name" : "n", "street" : "HighBury"}, "aName" : "A", "vehicle": {"wheelCount" : 7}, "@type":"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA"}, {"fullName" : "Den B", "address": {"name" : "n", "street" : "Cresent"}, "aName" : "B", "@type":"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonB"} ]}]' - ) + ))] ))->serialize($tree), - []); + []); assert(jsonEquivalent('{"builder":{"_type":"json"},"values":{"legalName":"FINOS"}}'->parseJSON(), $result->parseJSON())); } -function <> +function <> meta::pure::mapping::modelToModel::test::alloy::filterGraphFetch::simpleFilter() : Boolean[1] { let tree = #{Person {firstName }}#; let result = executeGraphFetchWithParameters( |Person.all()->filter(f|$f.lastName=='B')->graphFetch($tree)->from( simpleModelMappingWithAssociation, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), - class=_Person, - url='data:application/json,[{"fullName" : "Robert T"},{"fullName" : "Robert B"}]' - ) + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( + class=_Person, + url='data:application/json,[{"fullName" : "Robert T"},{"fullName" : "Robert B"}]' + ))] ))->serialize($tree), [] - ); + ); assert(jsonEquivalent('{"builder":{"_type":"json"},"values":{"firstName":"Robert"}}'->parseJSON(), $result->parseJSON())); } -function <> +function <> meta::pure::mapping::modelToModel::test::alloy::filterGraphFetch::FilterOnEnum() : Boolean[1] { let tree = #{Trade {productName }}#; let result = executeGraphFetchWithParameters( |meta::pure::mapping::modelToModel::test::shared::dest::Trade.all()->filter(f|$f.side==Side.Sell)->graphFetch($tree)->from( meta::pure::mapping::modelToModel::test::simple::ModelMappingWithJoinToExtendedProperty, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), - class=_Trade, + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( + class=_Trade, url='data:application/json,[{ "side":1, "product":{"name": "FINOS", "region":"NewYork"}} ,{ "side":0, "product":{"name": "ACME", "region":"NewYork"} }]' - ) + ))] ))->serialize($tree), [] - ); + ); assert(jsonEquivalent('{"builder":{"_type":"json"},"values":{"productName":"FINOS"}}'->parseJSON(), $result->parseJSON())); } -function <> +function <> meta::pure::mapping::modelToModel::test::alloy::filterGraphFetch::simpleFilterWithParameter() : Boolean[1] { let tree = #{Firm {legalName }}#; let result = executeGraphFetchWithParameters( - name:String[1]|Firm.all()->filter(f|$f.employees->exists(p|$p.lastName==$name))->graphFetch($tree)->meta::pure::mapping::from(simpleModelMappingWithAssociation,^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), - class=_Firm, - url='data:application/json,[{"name":"CORP"},{"name":"FINOS","employees": [{"fullName" : "Robert T", "address": {"name" : "n", "street" : "Digby"}, "aName" : "A", "vehicle": {"wheelCount" : 5}, "@type":"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA"}, {"fullName" : "John T", "address": {"name" : "n", "street" : "HighBury"}, "aName" : "A", "vehicle": {"wheelCount" : 7}, "@type":"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA"}, {"fullName" : "Den B", "address": {"name" : "n", "street" : "Cresent"}, "aName" : "B", "@type":"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonB"} ]}]' - )))->serialize($tree), - - + name:String[1]|Firm.all()->filter(f|$f.employees->exists(p|$p.lastName==$name))->graphFetch($tree)->meta::pure::mapping::from(simpleModelMappingWithAssociation,^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( + class=_Firm, + url='data:application/json,[{"name":"CORP"},{"name":"FINOS","employees": [{"fullName" : "Robert T", "address": {"name" : "n", "street" : "Digby"}, "aName" : "A", "vehicle": {"wheelCount" : 5}, "@type":"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA"}, {"fullName" : "John T", "address": {"name" : "n", "street" : "HighBury"}, "aName" : "A", "vehicle": {"wheelCount" : 7}, "@type":"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA"}, {"fullName" : "Den B", "address": {"name" : "n", "street" : "Cresent"}, "aName" : "B", "@type":"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonB"} ]}]' + ))]))->serialize($tree), + + pair('name','T') - ); + ); assert(jsonEquivalent('{"builder":{"_type":"json"},"values":{"legalName":"FINOS"}}'->parseJSON(), $result->parseJSON())); } - + function <> meta::pure::mapping::modelToModel::test::alloy::filterGraphFetch::executeGraphFetchWithParameters(f: FunctionDefinition[1], vars: Pair[*]): String[1] { let fStr = 'meta::legend::execute_FunctionDefinition_1__Pair_MANY__ExecutionContext_1__Extension_MANY__String_1_'; diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/graphWithAssociations.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/graphWithAssociations.pure index bf46ee3acc0..a018118ec29 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/graphWithAssociations.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/graphWithAssociations.pure @@ -17,17 +17,19 @@ import meta::json::*; import meta::pure::executionPlan::profiles::*; import meta::pure::graphFetch::execution::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::test::alloy::simple::graphWithAssociations::*; import meta::pure::mapping::modelToModel::test::alloy::simple::graphWithAssociations::src::*; import meta::pure::mapping::modelToModel::test::alloy::simple::graphWithAssociations::dest::*; +import meta::core::runtime::*; import meta::pure::runtime::*; -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a simple graph using an association', doc.doc='When: a mapping is executed using graphFetch and serialize.', doc.doc='Then: the mapping is applied and the result of the mapping is serialized demonstrating the translated graph.' -} +} meta::pure::mapping::modelToModel::test::alloy::simple::serializeGraphWithAssociations() : Boolean[1] { let tree = #{Firm {name, employees {fullName}} }#; @@ -35,12 +37,11 @@ meta::pure::mapping::modelToModel::test::alloy::simple::serializeGraphWithAssoci let result = execute( |Firm.all()->graphFetch($tree)->serialize($tree), firmMappings, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), - class=_Firm, + ^Runtime(connectionStores = ^ConnectionStore(element=^ModelStore(), connection=^JsonModelConnection( + class=_Firm, url='data:application/json,{"name":"Metallurgy Inc.", "employees":[{"firstName":"Pierre","lastName":"Doe"}, {"firstName":"Dave","lastName":"Miles"}]}' ) - ), + )), meta::pure::extension::defaultExtensions() ); @@ -64,7 +65,7 @@ Class meta::pure::mapping::modelToModel::test::alloy::simple::graphWithAssociati Association meta::pure::mapping::modelToModel::test::alloy::simple::graphWithAssociations::src::_Firm__Person { - firm : _Firm[1]; + firm : _Firm[1]; employees : _Person[*]; } @@ -80,7 +81,7 @@ Class meta::pure::mapping::modelToModel::test::alloy::simple::graphWithAssociati Association meta::pure::mapping::modelToModel::alloy::test::simple::graphWithAssociations::dest::Firm_Person { - firm : Firm[1]; + firm : Firm[1]; employees : Person[*]; } @@ -96,10 +97,10 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::simple::graphWithAssocia name : $src.name, employees: $src.employees } - + Person : Pure { ~src _Person fullName : $src.firstName + ' ' + $src.lastName } -) \ No newline at end of file +) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/graphWithSubTypes/testOnSourceRoot.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/graphWithSubTypes/testOnSourceRoot.pure index 6a40e564ea3..5c40f96f7da 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/graphWithSubTypes/testOnSourceRoot.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/graphWithSubTypes/testOnSourceRoot.pure @@ -13,30 +13,35 @@ // limitations under the License. import meta::pure::extension::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::graphFetch::execution::*; import meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::*; -import meta::pure::mapping::modelToModel::*; +import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; function <> {meta::pure::executionPlan::profiles::serverVersion.start='v1_29_0'} meta::pure::mapping::modelToModel::test::alloy::simple::withSubType::rootLevel::sourceRoot::testSingleSubType():Boolean[1] { let tree = #{ Target{ - targetZipCode, + targetZipCode, targetAddress } }#; let query = {|Target.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::rootLevel::sourceRoot::testMappingWithSingleSubType; - let runtime = ^Runtime( connections= [ - ^JsonModelConnection(element = ^ModelStore(), - class = meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location, - url = 'data:application/json,\n'+ - '{ "zipCode": "10000000", "coordinates": "111.1111"}\n' + - '{ "zipCode": "20000000", "coordinates": "111.2222" , "street" : "myStreet" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street"}\n' - ) - ]); + let runtime = ^Runtime( + connectionStores = [ + ^ConnectionStore( + element = ^ModelStore(), + connection= ^JsonModelConnection( + class = meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location, + url = 'data:application/json,\n'+ + '{ "zipCode": "10000000", "coordinates": "111.1111"}\n' + + '{ "zipCode": "20000000", "coordinates": "111.2222" , "street" : "myStreet" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street"}\n' + ) + )]); let result = execute($query, $mapping, $runtime, defaultExtensions()).values; assertJsonStringsEqual( @@ -50,22 +55,25 @@ function <graphFetch($tree)->serialize($tree)}; - let runtime = ^Runtime( connections= [ - ^JsonModelConnection(element = ^ModelStore(), + let runtime = ^Runtime( + connectionStores = [ + ^ConnectionStore( + element = ^ModelStore(), + connection= ^JsonModelConnection( class = meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location, - url = 'data:application/json,\n'+ - '{ "zipCode": "10000000", "coordinates": "111.1111"}\n' + + url = 'data:application/json,\n'+ + '{ "zipCode": "10000000", "coordinates": "111.1111"}\n' + '{ "zipCode": "20000000", "coordinates": "222.2222" , "street" : "myStreet" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street"}\n'+ '{ "zipCode": "20000000", "coordinates": "333.3333" , "road" : "myRoad" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Road"}\n' ) - ]); + )]); let result = execute($query, $mapping, $runtime, defaultExtensions()).values; assertJsonStringsEqual( @@ -80,21 +88,24 @@ function <graphFetch($tree)->serialize($tree)}; - let runtime = ^Runtime( connections= [ - ^JsonModelConnection(element = ^ModelStore(), - class = meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location, - url = 'data:application/json,\n'+ - '{ "zipCode": "10000000", "coordinates": "111.1111"}\n' + - '{ "zipCode": "20000000", "coordinates": "222.2222" , "street" : "myStreet" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street"}\n'+ - '{ "zipCode": "20000000", "coordinates": "333.333" , "road" : "myRoad" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Road"}\n' - ) - ]); + let runtime = ^Runtime( + connectionStores = [ + ^ConnectionStore( + element = ^ModelStore(), + connection= ^JsonModelConnection( + class = meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location, + url = 'data:application/json,\n'+ + '{ "zipCode": "10000000", "coordinates": "111.1111"}\n' + + '{ "zipCode": "20000000", "coordinates": "222.2222" , "street" : "myStreet" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street"}\n'+ + '{ "zipCode": "20000000", "coordinates": "333.333" , "road" : "myRoad" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Road"}\n' + ) + )]); let result = execute($query, $mapping, $runtime, defaultExtensions()).values; assertJsonStringsEqual( @@ -109,22 +120,25 @@ function <graphFetch($tree)->serialize($tree)}; - let runtime = ^Runtime( connections= [ - ^JsonModelConnection(element = ^ModelStore(), - class = meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location, - url = 'data:application/json,\n'+ - '{ "zipCode": "10000000", "coordinates": "111.1111"}\n' + - '{ "zipCode": "20000000", "coordinates": "222.2222" , "street" : "myStreet" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street"}\n'+ - '{ "zipCode": "20000000", "coordinates": "333.3333" , "road" : "myRoad" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Road"}\n' - ) - ]); + let runtime = ^Runtime( + connectionStores = [ + ^ConnectionStore( + element = ^ModelStore(), + connection= ^JsonModelConnection( + class = meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location, + url = 'data:application/json,\n'+ + '{ "zipCode": "10000000", "coordinates": "111.1111"}\n' + + '{ "zipCode": "20000000", "coordinates": "222.2222" , "street" : "myStreet" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street"}\n'+ + '{ "zipCode": "20000000", "coordinates": "333.3333" , "road" : "myRoad" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Road"}\n' + ) + )]); let result = execute($query, $mapping, $runtime, defaultExtensions()).values; assertJsonStringsEqual( @@ -139,59 +153,62 @@ function <graphFetchChecked($tree)->serialize($tree)}; let mapping = meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::rootLevel::sourceRoot::testMappingWithSingleSubType; - let runtime = ^Runtime( connections= [ - ^JsonModelConnection(element = ^ModelStore(), - class = meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location, - url = 'data:application/json,\n'+ - '{ "zipCode": "10000000", "coordinates": "111.1111"}\n' + - '{ "zipCode": "20000000", "coordinates": "111.2222" , "street" : "myStreet" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street"}\n' - ) - ]); + let runtime = ^Runtime( + connectionStores = [ + ^ConnectionStore( + element = ^ModelStore(), + connection= ^JsonModelConnection( + class = meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location, + url = 'data:application/json,\n'+ + '{ "zipCode": "10000000", "coordinates": "111.1111"}\n' + + '{ "zipCode": "20000000", "coordinates": "111.2222" , "street" : "myStreet" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street"}\n' + ) + )]); let result = execute($query, $mapping, $runtime, defaultExtensions()).values; - let expected= '[\n' + - ' {\n' + - ' "defects": [],\n' + - ' "source": {\n' + - ' "defects": [],\n' + - ' "source": {\n' + - ' "number": 1,\n' + - ' "record": "{\\"zipCode\\":\\"10000000\\",\\"coordinates\\":\\"111.1111\\"}"\n' + - ' },\n' + - ' "value": {\n' + - ' "zipCode": "10000000"\n' + - ' }\n' + - ' },\n' + - ' "value": {\n' + - ' "targetAddress": "unknown",\n' + - ' "targetZipCode": "10000000"\n' + - ' }\n' + - ' },\n' + - ' {\n' + - ' "defects": [],\n' + - ' "source": {\n' + - ' "defects": [],\n' + - ' "source": {\n' + - ' "number": 2,\n' + - ' "record": "{\\"zipCode\\":\\"20000000\\",\\"coordinates\\":\\"111.2222\\",\\"street\\":\\"myStreet\\",\\"@type\\":\\"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street\\"}"\n' + - ' },\n' + - ' "value": {\n' + - ' "zipCode": "20000000"\n' + - ' "street": "myStreet"\n' + // fix to add this filed - ' }\n' + - ' },\n' + - ' "value": {\n' + - ' "targetAddress": "myStreet",\n' + - ' "targetZipCode": "20000000"\n' + - ' }\n' + - ' }\n' + + let expected= '[\n' + + ' {\n' + + ' "defects": [],\n' + + ' "source": {\n' + + ' "defects": [],\n' + + ' "source": {\n' + + ' "number": 1,\n' + + ' "record": "{\\"zipCode\\":\\"10000000\\",\\"coordinates\\":\\"111.1111\\"}"\n' + + ' },\n' + + ' "value": {\n' + + ' "zipCode": "10000000"\n' + + ' }\n' + + ' },\n' + + ' "value": {\n' + + ' "targetAddress": "unknown",\n' + + ' "targetZipCode": "10000000"\n' + + ' }\n' + + ' },\n' + + ' {\n' + + ' "defects": [],\n' + + ' "source": {\n' + + ' "defects": [],\n' + + ' "source": {\n' + + ' "number": 2,\n' + + ' "record": "{\\"zipCode\\":\\"20000000\\",\\"coordinates\\":\\"111.2222\\",\\"street\\":\\"myStreet\\",\\"@type\\":\\"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street\\"}"\n' + + ' },\n' + + ' "value": {\n' + + ' "zipCode": "20000000"\n' + + ' "street": "myStreet"\n' + // fix to add this filed + ' }\n' + + ' },\n' + + ' "value": {\n' + + ' "targetAddress": "myStreet",\n' + + ' "targetZipCode": "20000000"\n' + + ' }\n' + + ' }\n' + ']\n'; assertJsonStringsEqual($expected , $result); } @@ -200,81 +217,84 @@ function <graphFetchChecked($tree)->serialize($tree)}; - let runtime = ^Runtime( connections= [ - ^JsonModelConnection(element = ^ModelStore(), - class = meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location, - url = 'data:application/json,\n'+ - '{ "zipCode": "10000000", "coordinates": "111.1111"}\n' + - '{ "zipCode": "20000000", "coordinates": "222.2222" , "street" : "myStreet" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street"}\n'+ - '{ "zipCode": "30000000", "coordinates": "333.3333" , "road" : "myRoad" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Road"}\n' - ) - ]); + let runtime = ^Runtime( + connectionStores = [ + ^ConnectionStore( + element = ^ModelStore(), + connection= ^JsonModelConnection( + class = meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location, + url = 'data:application/json,\n'+ + '{ "zipCode": "10000000", "coordinates": "111.1111"}\n' + + '{ "zipCode": "20000000", "coordinates": "222.2222" , "street" : "myStreet" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street"}\n'+ + '{ "zipCode": "30000000", "coordinates": "333.3333" , "road" : "myRoad" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Road"}\n' + ) + )]); let result = execute($query, $mapping, $runtime, defaultExtensions()).values; - let expected= '[\n' + - ' {\n' + - ' "defects": [],\n' + - ' "source": {\n' + - ' "defects": [],\n' + - ' "source": {\n' + - ' "number": 1,\n' + - ' "record": "{\\"zipCode\\":\\"10000000\\",\\"coordinates\\":\\"111.1111\\"}"\n' + - ' },\n' + - ' "value": {\n' + - ' "zipCode": "10000000",\n' + - ' "coordinates": "111.1111"\n' + - ' }\n' + - ' },\n' + - ' "value": {\n' + - ' "targetAddress": "111.1111",\n' + - ' "targetZipCode": "10000000"\n' + - ' }\n' + - ' },\n' + - ' {\n' + - ' "defects": [],\n' + - ' "source": {\n' + - ' "defects": [],\n' + - ' "source": {\n' + - ' "number": 2,\n' + - ' "record": "{\\"zipCode\\":\\"20000000\\",\\"coordinates\\":\\"222.2222\\",\\"street\\":\\"myStreet\\",\\"@type\\":\\"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street\\"}"\n' + - ' },\n' + - ' "value": {\n' + - ' "zipCode": "20000000",\n' + - ' "street": "myStreet"\n' + // fix to add this filed + let expected= '[\n' + + ' {\n' + + ' "defects": [],\n' + + ' "source": {\n' + + ' "defects": [],\n' + + ' "source": {\n' + + ' "number": 1,\n' + + ' "record": "{\\"zipCode\\":\\"10000000\\",\\"coordinates\\":\\"111.1111\\"}"\n' + + ' },\n' + + ' "value": {\n' + + ' "zipCode": "10000000",\n' + + ' "coordinates": "111.1111"\n' + + ' }\n' + + ' },\n' + + ' "value": {\n' + + ' "targetAddress": "111.1111",\n' + + ' "targetZipCode": "10000000"\n' + + ' }\n' + + ' },\n' + + ' {\n' + + ' "defects": [],\n' + + ' "source": {\n' + + ' "defects": [],\n' + + ' "source": {\n' + + ' "number": 2,\n' + + ' "record": "{\\"zipCode\\":\\"20000000\\",\\"coordinates\\":\\"222.2222\\",\\"street\\":\\"myStreet\\",\\"@type\\":\\"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street\\"}"\n' + + ' },\n' + + ' "value": {\n' + + ' "zipCode": "20000000",\n' + + ' "street": "myStreet"\n' + // fix to add this filed ' "coordinates": "222.2222"\n' + - ' }\n' + - ' },\n' + - ' "value": {\n' + - ' "targetAddress": "myStreet",\n' + - ' "targetZipCode": "20000000"\n' + - ' }\n' + - ' },\n' + - ' {\n' + - ' "defects": [],\n' + - ' "source": {\n' + - ' "defects": [],\n' + - ' "source": {\n' + - ' "number": 3,\n' + - ' "record": "{\\"zipCode\\":\\"30000000\\",\\"coordinates\\":\\"333.3333\\",\\"road\\":\\"myRoad\\",\\"@type\\":\\"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Road\\"}"\n' + - ' },\n' + - ' "value": {\n' + - ' "zipCode": "30000000",\n' + - ' "road": "myRoad"\n' + // fix to add this filed + ' }\n' + + ' },\n' + + ' "value": {\n' + + ' "targetAddress": "myStreet",\n' + + ' "targetZipCode": "20000000"\n' + + ' }\n' + + ' },\n' + + ' {\n' + + ' "defects": [],\n' + + ' "source": {\n' + + ' "defects": [],\n' + + ' "source": {\n' + + ' "number": 3,\n' + + ' "record": "{\\"zipCode\\":\\"30000000\\",\\"coordinates\\":\\"333.3333\\",\\"road\\":\\"myRoad\\",\\"@type\\":\\"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Road\\"}"\n' + + ' },\n' + + ' "value": {\n' + + ' "zipCode": "30000000",\n' + + ' "road": "myRoad"\n' + // fix to add this filed ' "coordinates": "333.3333"\n' + - ' }\n' + - ' },\n' + - ' "value": {\n' + - ' "targetAddress": "myRoad",\n' + - ' "targetZipCode": "30000000"\n' + - ' }\n' + + ' }\n' + + ' },\n' + + ' "value": {\n' + + ' "targetAddress": "myRoad",\n' + + ' "targetZipCode": "30000000"\n' + + ' }\n' + ' }\n' + ']\n'; @@ -287,22 +307,25 @@ function <graphFetch($tree)->serialize($tree)}; - let runtime = ^Runtime( connections= [ - ^JsonModelConnection(element = ^ModelStore(), - class = meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location, - url = 'data:application/json,\n'+ - '{ "zipCode": "10000000", "coordinates": "111.1111"}\n' + - '{ "zipCode": "20000000", "coordinates": "222.2222" , "street" : "myStreet" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street"}\n'+ - '{ "zipCode": "30000000", "coordinates": "333.3333" , "road" : "myRoad" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Road"}\n' - ) - ]); + let runtime = ^Runtime( + connectionStores = [ + ^ConnectionStore( + element = ^ModelStore(), + connection= ^JsonModelConnection( + class = meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location, + url = 'data:application/json,\n'+ + '{ "zipCode": "10000000", "coordinates": "111.1111"}\n' + + '{ "zipCode": "20000000", "coordinates": "222.2222" , "street" : "myStreet" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street"}\n'+ + '{ "zipCode": "30000000", "coordinates": "333.3333" , "road" : "myRoad" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Road"}\n' + ) + )]); let result = execute($query, $mapping, $runtime, defaultExtensions()).values; assertJsonStringsEqual( @@ -317,7 +340,7 @@ function <graphFetch($tree)->serialize($tree)}; - let runtime = ^Runtime( connections= [ - ^JsonModelConnection(element = ^ModelStore(), + let runtime = ^Runtime( + connectionStores = [ + ^ConnectionStore( + element = ^ModelStore(), + connection= ^JsonModelConnection( class = meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location, - url = 'data:application/json,\n'+ - '{ "zipCode": "10000000", "coordinates": "111.1111"}\n' + + url = 'data:application/json,\n'+ + '{ "zipCode": "10000000", "coordinates": "111.1111"}\n' + '{ "zipCode": "20000000", "coordinates": "222.2222" , "street" : "myStreet" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street"}\n'+ '{ "zipCode": "30000000", "coordinates": "333.3333" , "road" : "myRoad" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Road"}\n' ) - ]); + )]); let result = execute($query, $mapping, $runtime, defaultExtensions()).values; assertJsonStringsEqual( @@ -348,22 +374,25 @@ function <graphFetch($tree)->serialize($tree)}; - let runtime = ^Runtime( connections= [ - ^JsonModelConnection(element = ^ModelStore(), + let runtime = ^Runtime( + connectionStores = [ + ^ConnectionStore( + element = ^ModelStore(), + connection= ^JsonModelConnection( class = meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location, - url = 'data:application/json,\n'+ - '{ "zipCode": "10000000", "coordinates": "111.1111"}\n' + + url = 'data:application/json,\n'+ + '{ "zipCode": "10000000", "coordinates": "111.1111"}\n' + '{ "zipCode": "20000000", "coordinates": "222.2222" , "street" : "myStreet" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street"}\n'+ '{ "zipCode": "30000000", "coordinates": "333.333" , "road" : "myRoad" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Road"}\n' ) - ]); + )]); let result = execute($query, $mapping, $runtime, defaultExtensions()).values; assertJsonStringsEqual( @@ -378,22 +407,25 @@ function <graphFetch($tree)->serialize($tree)}; - let runtime = ^Runtime( connections= [ - ^JsonModelConnection(element = ^ModelStore(), + let runtime = ^Runtime( + connectionStores = [ + ^ConnectionStore( + element = ^ModelStore(), + connection= ^JsonModelConnection( class = meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location, - url = 'data:application/json,\n'+ - '{ "zipCode": "10000000", "coordinates": "111.1111"}\n' + + url = 'data:application/json,\n'+ + '{ "zipCode": "10000000", "coordinates": "111.1111"}\n' + '{ "zipCode": "20000000", "coordinates": "222.2222" , "street" : "myStreet" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street"}\n'+ '{ "zipCode": "30000000", "coordinates": "333.3333" , "road" : "myRoad" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Road"}\n' ) - ]); + )]); let result = execute($query, $mapping, $runtime, defaultExtensions()).values; assertJsonStringsEqual( @@ -409,76 +441,79 @@ function <graphFetchChecked($tree)->serialize($tree)}; - let runtime = ^Runtime( connections= [ - ^JsonModelConnection(element = ^ModelStore(), + let runtime = ^Runtime( + connectionStores = [ + ^ConnectionStore( + element = ^ModelStore(), + connection= ^JsonModelConnection( class = meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location, - url = 'data:application/json,\n'+ - '{ "zipCode": "10000000", "coordinates": "111.1111"}\n' + + url = 'data:application/json,\n'+ + '{ "zipCode": "10000000", "coordinates": "111.1111"}\n' + '{ "zipCode": "20000000", "coordinates": "222.2222" , "street" : "myStreet" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street"}\n'+ '{ "zipCode": "30000000", "coordinates": "333.3333" , "road" : "myRoad" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Road"}\n' ) - ]); + )]); let result = execute($query, $mapping, $runtime, defaultExtensions()).values; - let expected= '[\n' + - ' {\n' + - ' "defects": [],\n' + - ' "source": {\n' + - ' "defects": [],\n' + - ' "source": {\n' + - ' "number": 1,\n' + - ' "record": "{\\"zipCode\\":\\"10000000\\",\\"coordinates\\":\\"111.1111\\"}"\n' + - ' },\n' + - ' "value": {\n' + - ' "zipCode": "10000000",\n' + - ' }\n' + - ' },\n' + - ' "value": {\n' + - ' "targetAddress": "location_valueFromMapping",\n' + - ' "targetZipCode": "10000000"\n' + - ' }\n' + - ' },\n' + - ' {\n' + - ' "defects": [],\n' + - ' "source": {\n' + - ' "defects": [],\n' + - ' "source": {\n' + - ' "number": 2,\n' + - ' "record": "{\\"zipCode\\":\\"20000000\\",\\"coordinates\\":\\"222.2222\\",\\"street\\":\\"myStreet\\",\\"@type\\":\\"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street\\"}"\n' + - ' },\n' + - ' "value": {\n' + - ' "zipCode": "20000000",\n' + - ' "street": "myStreet"\n' + // fix to add this filed - ' }\n' + - ' },\n' + - ' "value": {\n' + - ' "targetAddress": "myStreet",\n' + - ' "targetZipCode": "20000000"\n' + - ' }\n' + - ' },\n' + - ' {\n' + - ' "defects": [],\n' + - ' "source": {\n' + - ' "defects": [],\n' + - ' "source": {\n' + - ' "number": 3,\n' + - ' "record": "{\\"zipCode\\":\\"30000000\\",\\"coordinates\\":\\"333.3333\\",\\"road\\":\\"myRoad\\",\\"@type\\":\\"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Road\\"}"\n' + - ' },\n' + - ' "value": {\n' + - ' "zipCode": "30000000",\n' + - ' }\n' + - ' },\n' + - ' "value": {\n' + - ' "targetAddress": "road_valueFromMapping",\n' + - ' "targetZipCode": "30000000"\n' + - ' }\n' + + let expected= '[\n' + + ' {\n' + + ' "defects": [],\n' + + ' "source": {\n' + + ' "defects": [],\n' + + ' "source": {\n' + + ' "number": 1,\n' + + ' "record": "{\\"zipCode\\":\\"10000000\\",\\"coordinates\\":\\"111.1111\\"}"\n' + + ' },\n' + + ' "value": {\n' + + ' "zipCode": "10000000",\n' + + ' }\n' + + ' },\n' + + ' "value": {\n' + + ' "targetAddress": "location_valueFromMapping",\n' + + ' "targetZipCode": "10000000"\n' + + ' }\n' + + ' },\n' + + ' {\n' + + ' "defects": [],\n' + + ' "source": {\n' + + ' "defects": [],\n' + + ' "source": {\n' + + ' "number": 2,\n' + + ' "record": "{\\"zipCode\\":\\"20000000\\",\\"coordinates\\":\\"222.2222\\",\\"street\\":\\"myStreet\\",\\"@type\\":\\"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street\\"}"\n' + + ' },\n' + + ' "value": {\n' + + ' "zipCode": "20000000",\n' + + ' "street": "myStreet"\n' + // fix to add this filed + ' }\n' + + ' },\n' + + ' "value": {\n' + + ' "targetAddress": "myStreet",\n' + + ' "targetZipCode": "20000000"\n' + + ' }\n' + + ' },\n' + + ' {\n' + + ' "defects": [],\n' + + ' "source": {\n' + + ' "defects": [],\n' + + ' "source": {\n' + + ' "number": 3,\n' + + ' "record": "{\\"zipCode\\":\\"30000000\\",\\"coordinates\\":\\"333.3333\\",\\"road\\":\\"myRoad\\",\\"@type\\":\\"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Road\\"}"\n' + + ' },\n' + + ' "value": {\n' + + ' "zipCode": "30000000",\n' + + ' }\n' + + ' },\n' + + ' "value": {\n' + + ' "targetAddress": "road_valueFromMapping",\n' + + ' "targetZipCode": "30000000"\n' + + ' }\n' + ' }\n' + ']\n'; @@ -490,77 +525,80 @@ function <graphFetchChecked($tree)->serialize($tree)}; - let runtime = ^Runtime( connections= [ - ^JsonModelConnection(element = ^ModelStore(), + let runtime = ^Runtime( + connectionStores = [ + ^ConnectionStore( + element = ^ModelStore(), + connection= ^JsonModelConnection( class = meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Location, - url = 'data:application/json,\n'+ - '{ "zipCode": "10000000", "coordinates": "111.1111"}\n' + + url = 'data:application/json,\n'+ + '{ "zipCode": "10000000", "coordinates": "111.1111"}\n' + '{ "zipCode": "20000000", "coordinates": "222.2222" , "street" : "myStreet" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street"}\n'+ '{ "zipCode": "30000000", "coordinates": "333.3333" , "road" : "myRoad" , "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Road"}\n' ) - ]); + )]); let result = execute($query, $mapping, $runtime, defaultExtensions()).values; - let expected= '[\n' + - ' {\n' + - ' "defects": [],\n' + - ' "source": {\n' + - ' "defects": [],\n' + - ' "source": {\n' + - ' "number": 1,\n' + - ' "record": "{\\"zipCode\\":\\"10000000\\",\\"coordinates\\":\\"111.1111\\"}"\n' + - ' },\n' + - ' "value": {\n' + - ' "zipCode": "10000000",\n' + - ' }\n' + - ' },\n' + - ' "value": {\n' + - ' "targetAddress": "location_valueFromMapping",\n' + - ' "targetZipCode": "10000000"\n' + - ' }\n' + - ' },\n' + - ' {\n' + - ' "defects": [],\n' + - ' "source": {\n' + - ' "defects": [],\n' + - ' "source": {\n' + - ' "number": 2,\n' + - ' "record": "{\\"zipCode\\":\\"20000000\\",\\"coordinates\\":\\"222.2222\\",\\"street\\":\\"myStreet\\",\\"@type\\":\\"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street\\"}"\n' + - ' },\n' + - ' "value": {\n' + - ' "zipCode": "20000000",\n' + - ' }\n' + - ' },\n' + - ' "value": {\n' + - ' "targetAddress": "street_valueFromMapping",\n' + - ' "targetZipCode": "20000000"\n' + - ' }\n' + - ' },\n' + - ' {\n' + - ' "defects": [],\n' + - ' "source": {\n' + - ' "defects": [],\n' + - ' "source": {\n' + - ' "number": 3,\n' + - ' "record": "{\\"zipCode\\":\\"30000000\\",\\"coordinates\\":\\"333.3333\\",\\"road\\":\\"myRoad\\",\\"@type\\":\\"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Road\\"}"\n' + - ' },\n' + - ' "value": {\n' + - ' "zipCode": "30000000",\n' + - ' }\n' + - ' },\n' + - ' "value": {\n' + - ' "targetAddress": "road_valueFromMapping",\n' + - ' "targetZipCode": "30000000"\n' + - ' }\n' + + let expected= '[\n' + + ' {\n' + + ' "defects": [],\n' + + ' "source": {\n' + + ' "defects": [],\n' + + ' "source": {\n' + + ' "number": 1,\n' + + ' "record": "{\\"zipCode\\":\\"10000000\\",\\"coordinates\\":\\"111.1111\\"}"\n' + + ' },\n' + + ' "value": {\n' + + ' "zipCode": "10000000",\n' + + ' }\n' + + ' },\n' + + ' "value": {\n' + + ' "targetAddress": "location_valueFromMapping",\n' + + ' "targetZipCode": "10000000"\n' + + ' }\n' + + ' },\n' + + ' {\n' + + ' "defects": [],\n' + + ' "source": {\n' + + ' "defects": [],\n' + + ' "source": {\n' + + ' "number": 2,\n' + + ' "record": "{\\"zipCode\\":\\"20000000\\",\\"coordinates\\":\\"222.2222\\",\\"street\\":\\"myStreet\\",\\"@type\\":\\"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street\\"}"\n' + + ' },\n' + + ' "value": {\n' + + ' "zipCode": "20000000",\n' + + ' }\n' + + ' },\n' + + ' "value": {\n' + + ' "targetAddress": "street_valueFromMapping",\n' + + ' "targetZipCode": "20000000"\n' + + ' }\n' + + ' },\n' + + ' {\n' + + ' "defects": [],\n' + + ' "source": {\n' + + ' "defects": [],\n' + + ' "source": {\n' + + ' "number": 3,\n' + + ' "record": "{\\"zipCode\\":\\"30000000\\",\\"coordinates\\":\\"333.3333\\",\\"road\\":\\"myRoad\\",\\"@type\\":\\"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Road\\"}"\n' + + ' },\n' + + ' "value": {\n' + + ' "zipCode": "30000000",\n' + + ' }\n' + + ' },\n' + + ' "value": {\n' + + ' "targetAddress": "road_valueFromMapping",\n' + + ' "targetZipCode": "30000000"\n' + + ' }\n' + ' }\n' + ']\n'; assertJsonStringsEqual($expected , $result); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/graphWithoutAssociations.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/graphWithoutAssociations.pure index 9b2fdf98e07..1f711030539 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/graphWithoutAssociations.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/graphWithoutAssociations.pure @@ -17,17 +17,19 @@ import meta::json::*; import meta::pure::executionPlan::profiles::*; import meta::pure::graphFetch::execution::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::test::alloy::simple::graphWithoutAssociations::*; import meta::pure::mapping::modelToModel::test::alloy::simple::graphWithoutAssociations::src::*; import meta::pure::mapping::modelToModel::test::alloy::simple::graphWithoutAssociations::dest::*; +import meta::core::runtime::*; import meta::pure::runtime::*; -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a simple graph using direct (not via association) relationship', doc.doc='When: a mapping is executed using graphFetch and serialize.', doc.doc='Then: the mapping is applied and the result of the mapping is serialized demonstrating the translated graph.' -} +} meta::pure::mapping::modelToModel::test::alloy::simple::serializeGraphWithoutAssociations() : Boolean[1] { let tree = #{Firm {name, employees {fullName}} }#; @@ -35,11 +37,13 @@ meta::pure::mapping::modelToModel::test::alloy::simple::serializeGraphWithoutAss let result = execute( |Firm.all()->graphFetch($tree)->serialize($tree), firmMappings, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), - class=_Firm, - url='data:application/json,{"name":"Metallurgy Inc.", "employees":[{"firstName":"Pierre","lastName":"Doe"}, {"firstName":"Dave","lastName":"Miles"}]}' - ) + ^Runtime( + connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection=^JsonModelConnection( + class=_Firm, + url='data:application/json,{"name":"Metallurgy Inc.", "employees":[{"firstName":"Pierre","lastName":"Doe"}, {"firstName":"Dave","lastName":"Miles"}]}' + )) ), meta::pure::extension::defaultExtensions() ); @@ -87,7 +91,7 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::simple::graphWithoutAsso name : $src.name, employees: $src.employees } - + Person : Pure { ~src _Person diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/merge.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/merge.pure index 0f433cb1cfe..8b069c3e156 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/merge.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/merge.pure @@ -15,6 +15,8 @@ import meta::pure::mapping::*; import meta::pure::executionPlan::profiles::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::json::*; import meta::pure::mapping::modelToModel::test::alloy::utils::*; @@ -79,8 +81,8 @@ Class meta::pure::mapping::modelToModel::test::alloy::merge::Person { firstName : String[1]; lastName : String[0..1]; - age:Integer[1]; - address:meta::pure::mapping::modelToModel::test::alloy::merge::Address[0..1]; + age:Integer[1]; + address:meta::pure::mapping::modelToModel::test::alloy::merge::Address[0..1]; nickName:String[*]; } @@ -94,25 +96,30 @@ meta::pure::mapping::modelToModel::test::alloy::merge::testSimplemerge():Any[*] |meta::pure::mapping::modelToModel::test::alloy::merge::Person.all()->graphFetch($tree)->serialize($tree), meta::pure::mapping::modelToModel::test::alloy::merge::SimpleMergeModelMapping, ^Runtime( - connections =[ ^JsonModelConnection( - element=^ModelStore(), - class = meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithFirstName, - url = 'data:application/json,{"id":1,"sourceFirstName":"John","nickName":["Jo","Johnny"],"sourceAddress":{"id":1, "sourceStreet":"Main st"}}' - ), - ^JsonModelConnection( - element=^ModelStore(), - class = meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithLastName, - url = 'data:application/json,{"id":1,"sourceLastName":"Smith"}' - ), - ^JsonModelConnection( - element=^ModelStore(), - class = meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithAge, - url = 'data:application/json,{"id":1,"sourceAge":10}' - ) - - ] + connectionStores= [ + ^ConnectionStore( + connection=^JsonModelConnection( + class = meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithFirstName, + url = 'data:application/json,{"id":1,"sourceFirstName":"John","nickName":["Jo","Johnny"],"sourceAddress":{"id":1, "sourceStreet":"Main st"}}' + ), + element=^ModelStore() + ), + ^ConnectionStore( + connection= ^JsonModelConnection( + class = meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithLastName, + url = 'data:application/json,{"id":1,"sourceLastName":"Smith"}' + ), + element=^ModelStore() + ), + ^ConnectionStore( + connection=^JsonModelConnection( + class = meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithAge, + url = 'data:application/json,{"id":1,"sourceAge":10}' + ), + element=^ModelStore() + )] ), - + meta::pure::extension::defaultExtensions()); let json = $result.values->toOne(); @@ -122,31 +129,35 @@ meta::pure::mapping::modelToModel::test::alloy::merge::testSimplemerge():Any[*] function <> {serverVersion.start='v1_24_0'} meta::pure::mapping::modelToModel::test::alloy::merge::testMergeNonRoot():Any[*] { - let tree = #{meta::pure::mapping::modelToModel::test::alloy::merge::Firm {ceo{firstName,lastName,address{street,postCode}}}}#; + let tree = #{meta::pure::mapping::modelToModel::test::alloy::merge::Firm {ceo{firstName,lastName,address{street,postCode}}}}#; let result = execute( |meta::pure::mapping::modelToModel::test::alloy::merge::Firm.all()->graphFetch($tree)->serialize($tree), meta::pure::mapping::modelToModel::test::alloy::merge::SimpleMergeModelMappingNonRoot, ^Runtime( - connections =[ ^JsonModelConnection( - element=^ModelStore(), + connectionStores= [ + ^ConnectionStore( + connection=^JsonModelConnection( class = meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithFirstName, url = 'data:application/json,{"id":1,"sourceFirstName":"John","sourceAddress":{"id":1, "sourceStreet":"Main st"}}' - ), - ^JsonModelConnection( - element=^ModelStore(), + ), + element=^ModelStore() + ), + ^ConnectionStore( + connection= ^JsonModelConnection( class = meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithLastName, url = 'data:application/json,{"id":1,"sourceLastName":"Smith","sourceAddress":{"id":1, "sourcePostCode":"ABCD"}}' - ), - ^JsonModelConnection( - element=^ModelStore(), + ), + element=^ModelStore() + ), + ^ConnectionStore( + connection=^JsonModelConnection( class = meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithAge, url = 'data:application/json,{"id":1,"sourceAge":10}' - ) + ), + element=^ModelStore() + )]), - ] - ), - meta::pure::extension::defaultExtensions() ); @@ -158,26 +169,30 @@ meta::pure::mapping::modelToModel::test::alloy::merge::testMergeNonRoot():Any[*] function <> {serverVersion.start='v1_24_0'} meta::pure::mapping::modelToModel::test::alloy::merge::testPartialMerge():Any[*] { - let tree = #{meta::pure::mapping::modelToModel::test::alloy::merge::Person {firstName,lastName,address{street,postCode}}}#; + let tree = #{meta::pure::mapping::modelToModel::test::alloy::merge::Person {firstName,lastName,address{street,postCode}}}#; let result = meta::legend::executeLegendQuery( |meta::pure::mapping::modelToModel::test::alloy::merge::Person.all()->graphFetch($tree)->serialize($tree)->from( meta::pure::mapping::modelToModel::test::alloy::merge::PartialMerge, ^Runtime( - connections =[ ^JsonModelConnection( - element=^ModelStore(), - class = meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithFirstName, - url = 'data:application/json,{"id":1,"sourceFirstName":"John","sourceAddress":{"id":1, "sourceStreet":"Main st"}}' - ), - ^JsonModelConnection( - element=^ModelStore(), - class = meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithLastName, - url = 'data:application/json,{"id":1,"sourceLastName":"Smith"}' - ) + connectionStores= [ + ^ConnectionStore( + connection=^JsonModelConnection( + class = meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithFirstName, + url = 'data:application/json,{"id":1,"sourceFirstName":"John","sourceAddress":{"id":1, "sourceStreet":"Main st"}}' + ), + element=^ModelStore() + ), + ^ConnectionStore( + connection= ^JsonModelConnection( + class = meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithLastName, + url = 'data:application/json,{"id":1,"sourceLastName":"Smith"}' + ), + element=^ModelStore() + ) + ] + )),[],^ExecutionContext(), - ] - )),[],^ExecutionContext(), - meta::pure::extension::defaultExtensions() ); let expected = '{"builder":{"_type":"json"},"values":{"firstName":"John","lastName":"Smith","address":{"street":"Main st","postCode":null}}}'; @@ -196,27 +211,32 @@ meta::pure::mapping::modelToModel::test::alloy::merge::mergeObjectsModelChainMap |meta::pure::mapping::modelToModel::test::alloy::merge::PersonCombined.all()->graphFetch($tree)->serialize($tree), meta::pure::mapping::modelToModel::test::alloy::merge::MergeObjectsModelMappingChain, ^Runtime( - connections =[ - ^ModelChainConnection(element = ^ModelStore(), mappings = [meta::pure::mapping::modelToModel::test::alloy::merge::SimpleMergeModelMappingNonRoot]), - - ^JsonModelConnection( - element=^ModelStore(), + connectionStores= [ + ^ConnectionStore( + connection=^ModelChainConnection(mappings = [meta::pure::mapping::modelToModel::test::alloy::merge::SimpleMergeModelMappingNonRoot]), + element=^ModelStore() + ), + ^ConnectionStore( + connection= ^JsonModelConnection( class = meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithFirstName, url = 'data:application/json,{"id":1,"sourceFirstName":"John","sourceAddress":{"id":1, "sourceStreet":"Main st"}}' - ), - ^JsonModelConnection( - element=^ModelStore(), - class = meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithLastName, - url = 'data:application/json,{"id":1,"sourceLastName":"Smith","sourceAddress":{"id":1, "sourcePostCode":"ABCD"}}' - ), - ^JsonModelConnection( - element=^ModelStore(), + ), + element=^ModelStore() + ), + ^ConnectionStore( + connection= ^JsonModelConnection( class = meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithAge, url = 'data:application/json,{"id":1,"sourceAge":10}' - ) - ] - - ),meta::pure::extension::defaultExtensions()); + ), + element=^ModelStore() + ), + ^ConnectionStore( + connection=^JsonModelConnection( + class = meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithLastName, + url = 'data:application/json,{"id":1,"sourceLastName":"Smith","sourceAddress":{"id":1, "sourcePostCode":"ABCD"}}' + ), + element=^ModelStore() + )]),meta::pure::extension::defaultExtensions()); let json = $result.values->toOne(); let expected = '{"fullName":"John Smith"}'; @@ -231,7 +251,7 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::merge::SimpleMergeModelM { meta::pure::router::operations::merge_OperationSetImplementation_1__SetImplementation_MANY_([p1,p2,p3],{s1:meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithFirstName[1], s2:meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithLastName[1], - s3:meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithAge[1]| $s1.id == $s2.id && $s1.id == $s3.id + s3:meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithAge[1]| $s1.id == $s2.id && $s1.id == $s3.id }) } @@ -248,7 +268,7 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::merge::SimpleMergeModelM ~src meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithLastName lastName : $src.sourceLastName } - + meta::pure::mapping::modelToModel::test::alloy::merge::Person[p3] : Pure { ~src meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithAge @@ -260,7 +280,7 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::merge::SimpleMergeModelM ~src meta::pure::mapping::modelToModel::test::alloy::merge::SourceAddress street : $src.sourceStreet } - + ) @@ -271,28 +291,28 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::merge::SimpleMergeModelM *meta::pure::mapping::modelToModel::test::alloy::merge::Firm : Operation { meta::pure::router::operations::merge_OperationSetImplementation_1__SetImplementation_MANY_([f1,f2],{s1:meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithFirstName[1], - s2:meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithLastName[1]| $s1.id == $s2.id }) + s2:meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithLastName[1]| $s1.id == $s2.id }) } *meta::pure::mapping::modelToModel::test::alloy::merge::Person : Operation { meta::pure::router::operations::merge_OperationSetImplementation_1__SetImplementation_MANY_([p1,p2],{s1:meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithFirstName[1], - s2:meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithLastName[1]| $s1.id == $s2.id }) + s2:meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithLastName[1]| $s1.id == $s2.id }) } - - + + *meta::pure::mapping::modelToModel::test::alloy::merge::Address : Operation { meta::pure::router::operations::merge_OperationSetImplementation_1__SetImplementation_MANY_([a1,a2],{s1:meta::pure::mapping::modelToModel::test::alloy::merge::SourceAddress[1], - s2:meta::pure::mapping::modelToModel::test::alloy::merge::SourceAddressWithPostCode[1]| $s1.id == $s2.id }) + s2:meta::pure::mapping::modelToModel::test::alloy::merge::SourceAddressWithPostCode[1]| $s1.id == $s2.id }) } - + meta::pure::mapping::modelToModel::test::alloy::merge::Firm[f1] : Pure { ~src meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithFirstName ceo[p1]:$src - - } + + } meta::pure::mapping::modelToModel::test::alloy::merge::Person[p1] : Pure { ~src meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithFirstName @@ -300,7 +320,7 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::merge::SimpleMergeModelM address[a1] : $src.sourceAddress } - + meta::pure::mapping::modelToModel::test::alloy::merge::Address[a1] : Pure { ~src meta::pure::mapping::modelToModel::test::alloy::merge::SourceAddress @@ -311,7 +331,7 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::merge::SimpleMergeModelM { ~src meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithLastName ceo[p2]:$src - + } meta::pure::mapping::modelToModel::test::alloy::merge::Person[p2] : Pure { @@ -337,9 +357,9 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::merge::PartialMerge *meta::pure::mapping::modelToModel::test::alloy::merge::Person : Operation { meta::pure::router::operations::merge_OperationSetImplementation_1__SetImplementation_MANY_([p1,p2],{s1:meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithFirstName[1], - s2:meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithLastName[1]| $s1.id == $s2.id }) + s2:meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithLastName[1]| $s1.id == $s2.id }) } - + meta::pure::mapping::modelToModel::test::alloy::merge::Person[p1] : Pure @@ -349,14 +369,14 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::merge::PartialMerge address[a1] : $src } - + meta::pure::mapping::modelToModel::test::alloy::merge::Address[a1] : Pure { ~src meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithFirstName street : $src.sourceAddress.sourceStreet } - + meta::pure::mapping::modelToModel::test::alloy::merge::Person[p2] : Pure { ~src meta::pure::mapping::modelToModel::test::alloy::merge::SourcePersonWithLastName diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/milestoning/MilestonedM2M.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/milestoning/MilestonedM2M.pure index 48ebd2e858e..268f3cfe640 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/milestoning/MilestonedM2M.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/milestoning/MilestonedM2M.pure @@ -17,8 +17,10 @@ import meta::pure::executionPlan::*; import meta::pure::mapping::*; import meta::json::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::graphFetch::execution::*; import meta::pure::runtime::*; +import meta::core::runtime::*; function <> {serverVersion.start='v1_32_0'}meta::pure::mapping::modelToModel::test::alloy::milestoning::model::testM2MMappingWithMilestonedModelsWithAllVersions():Boolean[1] { @@ -30,15 +32,16 @@ function <graphFetch($tree)->serialize($tree)}; let mapping = meta::pure::mapping::modelToModel::test::alloy::milestoning::model::M2MMapping; - let runtime = ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), - class=meta::pure::mapping::modelToModel::test::alloy::milestoning::model::S_VehicleOwner, + let runtime = ^Runtime(connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection=^JsonModelConnection( + class=meta::pure::mapping::modelToModel::test::alloy::milestoning::model::S_VehicleOwner, url='data:application/json,{"businessDate": "2020-10-15","name" : "Ram", "vehicleAllVersions": [{"name": "B", "businessDate" : "2020-10-15", "id" : "1"}]}' - ) + )) ); let result = meta::pure::router::execute($query, $mapping, $runtime, meta::pure::extension::configuration::coreExtensions()); let json = $result.values->toOne(); let expected = '{"personName":"Ram","vehicleName":"B"}'; - assert(jsonEquivalent($expected->parseJSON(), $json->parseJSON())); + assert(jsonEquivalent($expected->parseJSON(), $json->parseJSON())); } diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/multiStepFunctions.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/multiStepFunctions.pure index a390a16074c..c2612ca5fc1 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/multiStepFunctions.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/multiStepFunctions.pure @@ -17,13 +17,15 @@ import meta::pure::executionPlan::profiles::*; import meta::pure::graphFetch::execution::*; import meta::pure::mapping::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::test::multiStep::*; import meta::pure::mapping::modelToModel::test::multiStep::src::*; import meta::pure::mapping::modelToModel::test::multiStep::bridge::*; import meta::pure::mapping::modelToModel::test::multiStep::dest::*; +import meta::core::runtime::*; import meta::pure::runtime::*; -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a multi step function', @@ -34,9 +36,9 @@ meta::pure::mapping::modelToModel::test::alloy::multiStep::testMultiLevelModelTo { let sourceData = '[{"sName": "S1", "sEmployees": [{"sFirstName": "F1", "sLastName": "L1"}, {"sFirstName": "F2", "sLastName": "L2"}]},' + '{"sName": "S2", "sEmployees": [{"sFirstName": "F3", "sLastName": "L3"}, {"sFirstName": "F4", "sLastName": "L4"}]}]'; - - let sourceRuntime = ^Runtime(connections = ^JsonModelConnection(element = ^ModelStore(), class = SourceFirm, url = 'data:application/json,' + $sourceData)); - + + let sourceRuntime = ^Runtime(connectionStores = ^ConnectionStore(element=^ModelStore(), connection=^JsonModelConnection(class = SourceFirm, url = 'data:application/json,' + $sourceData))); + let bridgeTree = #{ BridgeFirm { bName, @@ -44,9 +46,9 @@ meta::pure::mapping::modelToModel::test::alloy::multiStep::testMultiLevelModelTo bFirstName, bLastName } - } + } }#; - + let destTree = #{ DestFirm { dName, @@ -54,9 +56,9 @@ meta::pure::mapping::modelToModel::test::alloy::multiStep::testMultiLevelModelTo dFirstName, dLastName } - } + } }#; - + let result = execute( {| let bridgeFirms = BridgeFirm.all()->graphFetch($bridgeTree)->from(SourceToBridgeMapping, $sourceRuntime); @@ -66,7 +68,7 @@ meta::pure::mapping::modelToModel::test::alloy::multiStep::testMultiLevelModelTo ^Runtime(), meta::pure::extension::defaultExtensions() ); - + let expected = '['+ '{"dName":"S1_B_D","dEmployees":[{"dLastName":"L1_B_D","dFirstName":"F1_B_D"},{"dLastName":"L2_B_D","dFirstName":"F2_B_D"}]},'+ '{"dName":"S2_B_D","dEmployees":[{"dLastName":"L3_B_D","dFirstName":"F3_B_D"},{"dLastName":"L4_B_D","dFirstName":"F4_B_D"}]}'+ @@ -75,7 +77,7 @@ meta::pure::mapping::modelToModel::test::alloy::multiStep::testMultiLevelModelTo assert(jsonEquivalent($expected->parseJSON(), $result.values->toOne()->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a multi step function using graphFetchChecked', @@ -86,9 +88,9 @@ meta::pure::mapping::modelToModel::test::alloy::multiStep::testMultiLevelModelTo { let sourceData = '[{"sName": "S1", "sEmployees": [{"sFirstName": "F1", "sLastName": "L1"}, {"sFirstName": "F2", "sLastName": "L2"}]},' + '{"sName": "S2", "sEmployees": [{"sFirstName": "F3", "sLastName": "L3"}, {"sFirstName": "F4", "sLastName": "L4"}]}]'; - - let sourceRuntime = ^Runtime(connections = ^JsonModelConnection(element = ^ModelStore(), class = SourceFirm, url = 'data:application/json,' + $sourceData)); - + + let sourceRuntime = ^Runtime(connectionStores = ^ConnectionStore(element=^ModelStore(), connection=^JsonModelConnection(class = SourceFirm, url = 'data:application/json,' + $sourceData))); + let bridgeTree = #{ BridgeFirm { bName, @@ -96,9 +98,9 @@ meta::pure::mapping::modelToModel::test::alloy::multiStep::testMultiLevelModelTo bFirstName, bLastName } - } + } }#; - + let destTree = #{ DestFirm { dName, @@ -106,9 +108,9 @@ meta::pure::mapping::modelToModel::test::alloy::multiStep::testMultiLevelModelTo dFirstName, dLastName } - } + } }#; - + let result = execute( {| let bridgeFirms = BridgeFirm.all()->graphFetch($bridgeTree)->from(SourceToBridgeMapping, $sourceRuntime); @@ -118,7 +120,7 @@ meta::pure::mapping::modelToModel::test::alloy::multiStep::testMultiLevelModelTo ^Runtime(), meta::pure::extension::defaultExtensions() ); - + let expected = '['+ '{"defects":[],"source":{"defects":[],"source":null,"value":{"bName":"S1_B","bEmployees":[{"bFirstName":"F1_B","bLastName":"L1_B"},{"bFirstName":"F2_B","bLastName":"L2_B"}]}},"value":{"dName":"S1_B_D","dEmployees":[{"dLastName":"L1_B_D","dFirstName":"F1_B_D"},{"dLastName":"L2_B_D","dFirstName":"F2_B_D"}]}},'+ '{"defects":[],"source":{"defects":[],"source":null,"value":{"bName":"S2_B","bEmployees":[{"bFirstName":"F3_B","bLastName":"L3_B"},{"bFirstName":"F4_B","bLastName":"L4_B"}]}},"value":{"dName":"S2_B_D","dEmployees":[{"dLastName":"L3_B_D","dFirstName":"F3_B_D"},{"dLastName":"L4_B_D","dFirstName":"F4_B_D"}]}}'+ @@ -179,7 +181,7 @@ Mapping meta::pure::mapping::modelToModel::test::multiStep::SourceToBridgeMappin bName : $src.sName + '_B', bEmployees : $src.sEmployees } - + BridgePerson : Pure { ~src SourcePerson bFirstName : $src.sFirstName + '_B', @@ -194,10 +196,10 @@ Mapping meta::pure::mapping::modelToModel::test::multiStep::BridgeToDestMapping dName : $src.bName + '_D', dEmployees : $src.bEmployees } - + DestPerson : Pure { ~src BridgePerson dFirstName : $src.bFirstName + '_D', dLastName : $src.bLastName + '_D' } -) \ No newline at end of file +) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/multiplicities.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/multiplicities.pure index cbd5f8fae06..6cdeafa0194 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/multiplicities.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/multiplicities.pure @@ -17,12 +17,14 @@ import meta::json::*; import meta::pure::executionPlan::profiles::*; import meta::pure::graphFetch::execution::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::test::alloy::simple::multiplicities::*; import meta::pure::mapping::modelToModel::test::alloy::simple::multiplicities::objects::dest::*; import meta::pure::mapping::modelToModel::test::alloy::simple::multiplicities::objects::src::*; +import meta::core::runtime::*; import meta::pure::runtime::*; -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: an M2M mapping that uses toOne() from multiplicities of [0..1], [1], [*] to a target multiplicity of [1]', doc.doc='When: the mapping is executed using graphFetch and serialize.', @@ -35,24 +37,23 @@ meta::pure::mapping::modelToModel::test::alloy::simple::multiplicities::multipli let result = execute( |TargetOnes.all()->graphFetch($tree)->serialize($tree), mapToOneTargetOnes, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), + ^Runtime(connectionStores = ^ConnectionStore(element=^ModelStore(), connection=^JsonModelConnection( class=SourceData, url='data:application/json,{"sOne": "A", "sZeroOne": "B", "sMany": "C"}' ) - ), + )), meta::pure::extension::defaultExtensions() ); assert(jsonEquivalent('{"s1": "A", "s2": "B", "s3": "C"}'->parseJSON(), $result.values->toOne()->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: an M2M mapping that uses toOne() from multiplicities of [0..1], [1], [*] to a target multiplicity of [0..1]', doc.doc='When: the mapping is executed using graphFetch and serialize.', doc.doc='Then: the mapping is applied and the result of the mapping is serialized.' -} +} meta::pure::mapping::modelToModel::test::alloy::simple::multiplicities::multiplicityZeroOneIsSupportedForOneValue() : Boolean[1] { let tree = #{TargetZeroOnes {s1, s2, s3} }#; @@ -60,24 +61,23 @@ meta::pure::mapping::modelToModel::test::alloy::simple::multiplicities::multipli let result = execute( |TargetZeroOnes.all()->graphFetch($tree)->serialize($tree), mapToOneTargetZeroOnes, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), + ^Runtime(connectionStores = ^ConnectionStore(element=^ModelStore(), connection=^JsonModelConnection( class=SourceData, url='data:application/json,{"sOne": "A", "sZeroOne": "B", "sMany": "C"}' ) - ), + )), meta::pure::extension::defaultExtensions() ); assert(jsonEquivalent('{"s1": "A", "s2": "B", "s3": "C"}'->parseJSON(), $result.values->toOne()->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: an M2M mapping that uses toOne() from multiplicities of [0..1], [1], [*] to a target multiplicity of [*]', doc.doc='When: the mapping is executed using graphFetch and serialize.', doc.doc='Then: the mapping is applied and the result of the mapping is serialized.' -} +} meta::pure::mapping::modelToModel::test::alloy::simple::multiplicities::multiplicityManyIsSupportedForOneValue() : Boolean[1] { let tree = #{TargetOneManys {s1, s2, s3} }#; @@ -85,12 +85,11 @@ meta::pure::mapping::modelToModel::test::alloy::simple::multiplicities::multipli let result = execute( |TargetOneManys.all()->graphFetch($tree)->serialize($tree), mapToOneTargetOneManys, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), + ^Runtime(connectionStores = ^ConnectionStore(element=^ModelStore(), connection=^JsonModelConnection( class=SourceData, url='data:application/json,{"sOne": "A", "sZeroOne": "B", "sMany": "C"}' ) - ), + )), meta::pure::extension::defaultExtensions() ); @@ -173,4 +172,4 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::simple::multiplicities:: s2 : $src.sZeroOne->toOne(), s3 : $src.sMany->toOne() } -) \ No newline at end of file +) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/simpleObject.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/simpleObject.pure index 98eb9805069..0010e348197 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/simpleObject.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/simpleObject.pure @@ -18,6 +18,7 @@ import meta::pure::dataQuality::*; import meta::pure::executionPlan::profiles::*; import meta::pure::graphFetch::execution::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::*; import meta::pure::mapping::modelToModel::test::alloy::simple::objects::dest::*; import meta::pure::mapping::modelToModel::test::alloy::simple::*; @@ -25,14 +26,15 @@ import meta::pure::mapping::modelToModel::test::alloy::utils::*; import meta::pure::mapping::modelToModel::test::shared::src::*; import meta::pure::mapping::modelToModel::test::shared::dest::*; import meta::pure::mapping::modelToModel::test::simple::*; +import meta::core::runtime::*; import meta::pure::runtime::*; -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a single JSON object that matches a source defintion, and an M2M mapping', doc.doc='When: the mapping is executed using graphFetch and serialize.', doc.doc='Then: the mapping is applied and the result of the mapping is serialized.' -} +} meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeOfOneObject() : Boolean[1] { let tree = #{Person {firstName,lastName} }#; @@ -40,11 +42,15 @@ meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeOfOneObje let result = execute( |Person.all()->graphFetch($tree)->serialize($tree), simpleModelMapping, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), - class=_S_Person, + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( + class=_S_Person, url='data:application/json,{"fullName":"Pierre Doe"}' ) + )] ), meta::pure::extension::defaultExtensions() ); @@ -52,12 +58,12 @@ meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeOfOneObje assert(jsonEquivalent('{"firstName":"Pierre","lastName":"Doe"}'->parseJSON(), $result.values->toOne()->parseJSON())); } -function <> +function <> { serverVersion.start='v1_20_0', doc.doc='Given: a single JSON object that matches a source defintion, and an M2M mapping', doc.doc='When: the mapping is executed using graphFetch with subType and serialize.', doc.doc='Then: the mapping is applied and the result of the mapping is serialized.' -} +} meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeOfOneObjectWithSubType() : Boolean[1] { let tree = #{Firm {legalName, employees{firstName}} }#; @@ -65,25 +71,29 @@ meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeOfOneObje let result = execute( |Firm.all()->graphFetch($tree)->serialize($tree), simpleModelMappingWithSubType, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), - class=_S_Firm, + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( + class=_S_Firm, url='data:application/json,[{"name":"GS","employees": [{"fullName" : "Robert T", "aName" : "A", "@type":"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA"}, {"fullName" : "John T", "aName" : "A", "@type":"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA"}, {"fullName" : "Den T", "aName" : "B", "@type":"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonB"}, {"fullName" : "Den T", "@type":"meta::pure::mapping::modelToModel::test::shared::src::_S_Person"}]}]' ) + )] ), meta::pure::extension::defaultExtensions() - ); - + ); + assert(jsonEquivalent('{"legalName":"GS","employees":[{"firstName":"RobertA"},{"firstName":"JohnA"}]}'->parseJSON(), $result.values->toOne()->parseJSON())); } -function <> +function <> { serverVersion.start='v1_20_0', doc.doc='Given: a single JSON object that matches a source defintion, and an M2M mapping', doc.doc='When: the mapping is executed using graphFetch with Subtype and serialize.', doc.doc='Then: the mapping is applied and the result of the mapping is serialized.' -} +} meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeOfOneObjectWithSubTypeChecked() : Boolean[1] { let tree = #{Firm {legalName, employees{firstName}} }#; @@ -91,24 +101,28 @@ meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeOfOneObje let result = execute( |Firm.all()->graphFetchChecked($tree)->serialize($tree), simpleModelMappingWithSubType, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), - class=_S_Firm, + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( + class=_S_Firm, url='data:application/json,[{"name":"GS","employees": [{"fullName" : "Robert T", "aName" : "A", "@type":"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA"}, {"fullName" : "John T", "aName" : "A", "@type":"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA"}, {"fullName" : "Den T", "aName" : "B", "@type":"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonB"}, {"fullName" : "Den T", "@type":"meta::pure::mapping::modelToModel::test::shared::src::_S_Person"}]}]' ) + )] ), meta::pure::extension::defaultExtensions() - ); - + ); + assert(jsonEquivalent('{"defects":[],"source":{"defects":[],"source":{"number":1,"record":"{\\"name\\":\\"GS\\",\\"employees\\":[{\\"fullName\\":\\"Robert T\\",\\"aName\\":\\"A\\",\\"@type\\":\\"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA\\"},{\\"fullName\\":\\"John T\\",\\"aName\\":\\"A\\",\\"@type\\":\\"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA\\"},{\\"fullName\\":\\"Den T\\",\\"aName\\":\\"B\\",\\"@type\\":\\"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonB\\"},{\\"fullName\\":\\"Den T\\",\\"@type\\":\\"meta::pure::mapping::modelToModel::test::shared::src::_S_Person\\"}]}"},"value":{"name":"GS","employees":[{"aName":"A","fullName":"Robert T"},{"aName":"A","fullName":"John T"},{"fullName":"Den T"},{"fullName":"Den T"}]}},"value":{"legalName":"GS","employees":[{"firstName":"RobertA"},{"firstName":"JohnA"}]}}'->parseJSON(), $result.values->toOne()->parseJSON())); } -function <> +function <> { serverVersion.start='v1_20_0', doc.doc='Given: a single JSON object that matches a source defintion, and an M2M mapping', doc.doc='When: the mapping is executed using graphFetch with Subtype and serialize.', doc.doc='Then: the mapping is applied and the result of the mapping is serialized.' -} +} meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeOfOneObjectWithSubTypeWithNestedAssosiationChecked() : Boolean[1] { let tree = #{Firm {legalName, employees{firstName, lastName, description}} }#; @@ -116,24 +130,28 @@ meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeOfOneObje let result = execute( |Firm.all()->graphFetchChecked($tree)->serialize($tree), simpleModelMappingWithSubTypeWithNestedAssociation, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), - class=_S_Firm, + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( + class=_S_Firm, url='data:application/json,[{"name":"GS","employees": [{"fullName" : "Robert T", "address": {"name" : "n", "street" : "Digby"}, "aName" : "A", "vehicle": {"wheelCount" : 5}, "@type":"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA"}, {"fullName" : "John T", "address": {"name" : "n", "street" : "HighBury"}, "aName" : "A", "vehicle": {"wheelCount" : 7}, "@type":"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA"}, {"fullName" : "Den T", "address": {"name" : "n", "street" : "Cresent"}, "aName" : "B", "@type":"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonB"}, {"fullName" : "Den T", "address": {"name" : "n", "street" : "Test"}, "@type":"meta::pure::mapping::modelToModel::test::shared::src::_S_Person"}]}]' ) + )] ), meta::pure::extension::defaultExtensions() - ); - + ); + assert(jsonEquivalent('{"defects":[],"source":{"defects":[],"source":{"number":1,"record":"{\\"name\\":\\"GS\\",\\"employees\\":[{\\"fullName\\":\\"Robert T\\",\\"address\\":{\\"name\\":\\"n\\",\\"street\\":\\"Digby\\"},\\"aName\\":\\"A\\",\\"vehicle\\":{\\"wheelCount\\":5},\\"@type\\":\\"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA\\"},{\\"fullName\\":\\"John T\\",\\"address\\":{\\"name\\":\\"n\\",\\"street\\":\\"HighBury\\"},\\"aName\\":\\"A\\",\\"vehicle\\":{\\"wheelCount\\":7},\\"@type\\":\\"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA\\"},{\\"fullName\\":\\"Den T\\",\\"address\\":{\\"name\\":\\"n\\",\\"street\\":\\"Cresent\\"},\\"aName\\":\\"B\\",\\"@type\\":\\"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonB\\"},{\\"fullName\\":\\"Den T\\",\\"address\\":{\\"name\\":\\"n\\",\\"street\\":\\"Test\\"},\\"@type\\":\\"meta::pure::mapping::modelToModel::test::shared::src::_S_Person\\"}]}"},"value":{"name":"GS","employees":[{"address":{"street":"Digby"},"aName":"A","fullName":"Robert T","vehicle":{"wheelCount":5}},{"address":{"street":"HighBury"},"aName":"A","fullName":"John T","vehicle":{"wheelCount":7}},{"address":{"street":"Cresent"},"fullName":"Den T"},{"address":{"street":"Test"},"fullName":"Den T"}]}},"value":{"legalName":"GS","employees":[{"firstName":"Robert","lastName":"T","description":"aName:A lives at Digby and has road vehicle with wheel count:5"},{"firstName":"John","lastName":"T","description":"aName:A lives at HighBury and has road vehicle with wheel count:7"}]}}'->parseJSON(), $result.values->toOne()->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: multiple JSON objects in an array that matches a source defintion, and an M2M mapping', doc.doc='When: the mapping is executed using graphFetch and serialize.', doc.doc='Then: the mapping is applied and the result of the mapping is serialized as a JSON array.' -} +} meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeOfMultipleObjects() : Boolean[1] { let tree = #{Person {firstName,lastName} }#; @@ -141,11 +159,15 @@ meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeOfMultipl let result = execute( |Person.all()->graphFetch($tree)->serialize($tree), simpleModelMapping, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), - class=_S_Person, + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( + class=_S_Person, url='data:application/json,[{"fullName":"Pierre Doe"},{"fullName":"Dave Miles"}]' ) + )] ), meta::pure::extension::defaultExtensions() ); @@ -154,11 +176,11 @@ meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeOfMultipl } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Parse a simple JSON object, process it through an M2M mapping and serialize the result as JSON.', - doc.todo='This does not test any more of the basic functionality but is a proxy until independent tests of the expression functions provide coverage at which point this can be removed.' -} + doc.todo='This does not test any more of the basic functionality but is a proxy until independent tests of the expression functions provide coverage at which point this can be removed.' +} meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeOneObjectReverse() : Boolean[1] { let tree = #{_S_Person {fullName} }#; @@ -166,11 +188,15 @@ meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeOneObject let result = execute( |_S_Person.all()->graphFetch($tree)->serialize($tree), simpleModelMappingReverse, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), - class=Person, + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( + class=Person, url='data:application/json,{"firstName":"Pierre","lastName":"Doe"}' ) + )] ), meta::pure::extension::defaultExtensions() ); @@ -178,10 +204,10 @@ meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeOneObject assert(jsonEquivalent('{"fullName":"Pierre Doe"}'->parseJSON(), $result.values->toOne()->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Parse a simple JSON object with missing source property, process it through an M2M mapping and serialize the result as JSON.' -} +} meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeMissingProperty() : Boolean[1] { let tree = #{_S_Person {fullName} }#; @@ -189,11 +215,15 @@ meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeMissingPr let result = execute( |_S_Person.all()->graphFetch($tree)->serialize($tree), simpleModelMappingMissingProperty, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), - class=Person, + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( + class=Person, url='data:application/json,{"lastName":"Doe"}' ) + )] ), meta::pure::extension::defaultExtensions() ); @@ -201,12 +231,12 @@ meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeMissingPr assert(jsonEquivalent('{"fullName":"Somebody Doe"}'->parseJSON(), $result.values->toOne()->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a JSON object (matching a source class) that contains data for all primitive data types and an enumeration, and an M2M mapping', doc.doc='When: the mapping is executed using graphFetch and serialize.', doc.doc='Then: the mapping is applied and the result of the mapping is serialized handling all datatypes appropriately.' -} +} meta::pure::mapping::modelToModel::test::alloy::simple::supportForPrimitivesAndEnumerations() : Boolean[1] { let tree = #{SomeData {i, f, d, sd, dt, b, c, c2, c3} }#; @@ -214,11 +244,15 @@ meta::pure::mapping::modelToModel::test::alloy::simple::supportForPrimitivesAndE let result = execute( |SomeData.all()->graphFetch($tree)->serialize($tree), simpleDataMapping, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( class=_SomeData, url='data:application/json,{"i":2, "f": 2.5, "d": [0.1, 0.2], "sd": ["2018-03-12", "2019-05-30"], "dt": ["2018-03-12T13:20:21.000", "2019-05-30T04:29:01.234"], "b": [true, false, true], "c":"ROUGE", "s":["BLEU", "VERT"]}' ) + )] ), meta::pure::extension::defaultExtensions() ); @@ -228,12 +262,12 @@ meta::pure::mapping::modelToModel::test::alloy::simple::supportForPrimitivesAndE assert(jsonEquivalent($expected->parseJSON(), $result.values->toOne()->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a JSON object (matching a source class) that contains data for all primitive data types and an enumeration, and an M2M mapping', doc.doc='When: the mapping is executed using graphFetch and serialize.', doc.doc='Then: the mapping is applied and the result of the mapping is serialized handling all datatypes appropriately checked.' -} +} meta::pure::mapping::modelToModel::test::alloy::simple::supportForPrimitivesAndEnumerationsChecked() : Boolean[1] { let tree = #{SomeData {i, f, d, sd, dt, b, c, c2, c3} }#; @@ -241,11 +275,15 @@ meta::pure::mapping::modelToModel::test::alloy::simple::supportForPrimitivesAndE let result = execute( |SomeData.all()->graphFetch($tree)->serialize($tree), simpleDataMapping, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( class=_SomeData, url='data:application/json,{"i":2, "f": 2.5, "d": [0.1, 0.2], "sd": ["2018-03-12", "2019-05-30"], "dt": ["2018-03-12T13:20:21.000", "2019-05-30T04:29:01.234"], "b": [true, false, true], "c":"ROUGE", "s":["BLEU", "VERT"]}' ) + )] ), meta::pure::extension::defaultExtensions() ); @@ -255,12 +293,12 @@ meta::pure::mapping::modelToModel::test::alloy::simple::supportForPrimitivesAndE assert(jsonEquivalent($expected->parseJSON(), $result.values->toOne()->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a JSON object (matching a source class) that contains an empty property signaled by an empty array, and an M2M mapping', doc.doc='When: the mapping is executed using graphFetch and serialize.', doc.doc='Then: the mapping is applied and the result of the mapping is serialized demonstrating support for empty properties.' -} +} meta::pure::mapping::modelToModel::test::alloy::simple::supportForEmptyValues() : Boolean[1] { let tree = #{SomeData {i, f, d} }#; @@ -268,11 +306,15 @@ meta::pure::mapping::modelToModel::test::alloy::simple::supportForEmptyValues() let result = execute( |SomeData.all()->graphFetch($tree)->serialize($tree), simpleDataMapping, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( class=_SomeData, url='data:application/json,{"i":null, "f": 2.5, "d": [], "b": [false, true], "c":"ROUGE"}' ) + )] ), meta::pure::extension::defaultExtensions() ); @@ -280,73 +322,81 @@ meta::pure::mapping::modelToModel::test::alloy::simple::supportForEmptyValues() assert(jsonEquivalent('{"i":null, "f": 0.4, "d": []}'->parseJSON(), $result.values->toOne()->parseJSON())); } -function <> +function <> { serverVersion.start='v1_20_0', doc.doc='Given: a single JSON object that matches a source defintion, and an M2M mapping', doc.doc='When: the mapping is executed using graphFetch with subType and serialize.', doc.doc='Then: the mapping is applied and the result of the mapping is serialized.' -} +} meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeOfOneObjectWithSubTypeWithoutAssoc() : Boolean[1] -{ +{ let tree = #{ - meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Target{ + meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Target{ targetAddress } }#; - + let result = execute( |meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Target.all()->graphFetch($tree)->serialize($tree), meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::testMappingWithSingleSubType, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), - class=meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Person, + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( + class=meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Person, url='data:application/json,[{"address": [{"zipCode" : "10282", "coordinates" : "1", "street": "200 west", "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Street"}]}]' ) + )] ), meta::pure::extension::defaultExtensions() - ); - + ); + assert(jsonEquivalent('{"targetAddress":"200 west"}'->parseJSON(), $result.values->toOne()->parseJSON())); } //TODO - moved to engine to run in compiled mode -function <> +function <> { serverVersion.start='v1_20_0', doc.doc='Given: a single JSON object that matches a source defintion, and an M2M mapping', doc.doc='When: the mapping is executed using graphFetch with subType and serialize.', doc.doc='Then: the mapping is applied and the result of the mapping is serialized.' -} +} meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeOfOneObjectWithMultiSubTypesWithoutAssoc() : Boolean[1] -{ +{ let tree = #{ - meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Target{ + meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Target{ targetAddress } }#; - + let result = execute( |meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Target.all()->graphFetch($tree)->serialize($tree), meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::testMappingWithMultipleSubTypes, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), - class=meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Person, + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( + class=meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Person, url='data:application/json,[{"address": [{"zipCode" : "10282", "coordinates" : "1", "road": "200 west", "@type":"meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::Road"}]}]' ) + )] ), meta::pure::extension::defaultExtensions() - ); - + ); + assert(jsonEquivalent('{"targetAddress":"200 west"}'->parseJSON(), $result.values->toOne()->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a source class', doc.doc='Given: data with unused fields', doc.doc='When: a mapping is executed.', doc.doc='Then: the additional fields should be ignored.', doc.todo='Make this behaviour configurable and have it distinguish modelled/unmodelled unused data.' -} +} meta::pure::mapping::modelToModel::test::alloy::simple::ignoresUnwantedValues() : Boolean[1] { let tree = #{Person {firstName,lastName} }#; @@ -363,13 +413,13 @@ meta::pure::mapping::modelToModel::test::alloy::simple::ignoresUnwantedValues() assert(jsonEquivalent($expected->parseJSON(), $json->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a source object containing an enumeration', doc.doc='Given: a mapping that maps a String to the name of the enumeration', doc.doc='When: the mapping is executed using graphFetch and serialize.', doc.doc='Then: the result is the name of the enumeration value.' -} +} meta::pure::mapping::modelToModel::test::alloy::simple::canMapToAnEnumerationName() : Boolean[1] { let tree = #{Name {name} }#; @@ -386,13 +436,13 @@ meta::pure::mapping::modelToModel::test::alloy::simple::canMapToAnEnumerationNam assert(jsonEquivalent($expected->parseJSON(), $json->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a source object containing an enumeration', doc.doc='Given: a mapping that maps a String to the name of the enumeration and use', doc.doc='When: the mapping is executed using graphFetch and serialize.', doc.doc='Then: the result is the name mapped based on external enum.' -} +} meta::pure::mapping::modelToModel::test::alloy::simple::canUseExternalEnumInMapping() : Boolean[1] { let tree = #{Name {name} }#; @@ -405,18 +455,18 @@ meta::pure::mapping::modelToModel::test::alloy::simple::canUseExternalEnumInMapp ); let json = $result.values->toOne(); - + let expected= '{"name":"ROUGE on FRIDAY"}'; assert(jsonEquivalent($expected->parseJSON(), $json->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a source object containing an enumeration', doc.doc='Given: a mapping that maps a String to the name of the enumeration and use', doc.doc='When: the mapping is executed using graphFetch and serialize.', doc.doc='Then: the result is the name mapped based on external enum values.' -} +} meta::pure::mapping::modelToModel::test::alloy::simple::canUseExternalEnumValuesInMapping() : Boolean[1] { let tree = #{Name {name} }#; @@ -429,7 +479,7 @@ meta::pure::mapping::modelToModel::test::alloy::simple::canUseExternalEnumValues ); let json = $result.values->toOne(); - + let expected= '{"name":"VERT on MONDAY-TUESDAY-FRIDAY"}'; assert(jsonEquivalent($expected->parseJSON(), $json->parseJSON())); } @@ -447,11 +497,15 @@ meta::pure::mapping::modelToModel::test::alloy::simple::unmappedOptionalProperti let result = execute( |SomeOptionalData.all()->graphFetch($tree)->serialize($tree), sparseDataMapping, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( class=_AString, url='data:application/json,{"s":"Hello"}' ) + )] ), meta::pure::extension::defaultExtensions() ); @@ -467,7 +521,7 @@ function <graphFetch($tree)->serialize($tree), meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::testMappingWithSuperTypeProperties, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), - class=meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::SourceStreetCluster, + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( + class=meta::pure::graphFetch::tests::sourceTreeCalc::withSubType::SourceStreetCluster, url='data:application/json,[{"streetCluster": [{"coordinates":"22.22.22.22","zipCode":"123456","street":"Oxford"}]}]' ) + )] ), meta::pure::extension::defaultExtensions() ); @@ -531,11 +589,15 @@ meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeOfOneObje let result = execute( |Firm.all()->graphFetch($tree)->serialize($tree), simpleModelMappingWithSubType, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( class=_S_Firm, url='data:application/json,[{"name":"GS","employees": [{"fullName" : "Robert T", "aName" : "A", "@type":"_S_PersonA"}, {"fullName" : "John T", "aName" : "A", "@type":"_S_PersonA"}, {"fullName" : "Den T", "aName" : "B", "@type":"_S_PersonB"}, {"fullName" : "Den T", "@type":"_S_Person"}]}]' ) + )] ), meta::pure::extension::defaultExtensions() ); @@ -556,11 +618,15 @@ meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeOfOneObje let result = execute( |Firm.all()->graphFetchChecked($tree)->serialize($tree), simpleModelMappingWithSubType, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( class=_S_Firm, url='data:application/json,[{"name":"GS","employees": [{"fullName" : "Robert T", "aName" : "A", "@type":"_S_PersonA"}, {"fullName" : "John T", "aName" : "A", "@type":"_S_PersonA"}, {"fullName" : "Den T", "aName" : "B", "@type":"_S_PersonB"}, {"fullName" : "Den T", "@type":"_S_Person"}]}]' ) + )] ), meta::pure::extension::defaultExtensions() ); @@ -568,13 +634,13 @@ meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeOfOneObje assert(jsonEquivalent('{"defects":[],"source":{"defects":[],"source":{"number":1,"record":"{\\"name\\":\\"GS\\",\\"employees\\":[{\\"fullName\\":\\"Robert T\\",\\"aName\\":\\"A\\",\\"@type\\":\\"_S_PersonA\\"},{\\"fullName\\":\\"John T\\",\\"aName\\":\\"A\\",\\"@type\\":\\"_S_PersonA\\"},{\\"fullName\\":\\"Den T\\",\\"aName\\":\\"B\\",\\"@type\\":\\"_S_PersonB\\"},{\\"fullName\\":\\"Den T\\",\\"@type\\":\\"_S_Person\\"}]}"},"value":{"name":"GS","employees":[{"aName":"A","fullName":"Robert T"},{"aName":"A","fullName":"John T"},{"fullName":"Den T"},{"fullName":"Den T"}]}},"value":{"legalName":"GS","employees":[{"firstName":"RobertA"},{"firstName":"JohnA"}]}}'->parseJSON(), $result.values->toOne()->parseJSON())); } -function <> +function <> { serverVersion.start='v1_20_0', doc.doc='Given: a single JSON object that matches a source definition, and an M2M mapping', doc.doc='Given: a class with subtypes with same name, different package', doc.doc='When: the mapping is executed using graphFetchChecked with Subtype names only and serialize.', doc.doc='Then: the Subtype is fail to be discover and a defect is highlighted' -} +} meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeOfOneObjectWithSubTypeNameOnlyTypeReferenceHasDefectsIfMultipleClassesMatch() : Boolean[1] { let tree = #{Friendship {friendA {firstName}, friendB {firstName} }}#; @@ -582,11 +648,15 @@ meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeOfOneObje let result = execute( |meta::pure::mapping::modelToModel::test::alloy::simple::objects::dest::Friendship.all()->graphFetchChecked($tree)->serialize($tree), meta::pure::mapping::modelToModel::test::alloy::simpleModelMappingWithMultipleSubType, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( class=meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::_S_Friendship, url='data:application/json,[{"friendA" : {"fullName" : "Robert T", "aName" : "A", "@type":"_S_PersonA"}, "friendB" : {"fullName" : "John T", "aName" : "A", "@type":"_S_PersonA"}}]' ) + )] ), meta::pure::extension::defaultExtensions() ); @@ -608,11 +678,15 @@ meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeOfOneObje let result = execute( |meta::pure::mapping::modelToModel::test::alloy::simple::objects::dest::Friendship.all()->graphFetchChecked($tree)->serialize($tree), meta::pure::mapping::modelToModel::test::alloy::simpleModelMappingWithMultipleSubType, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( class=meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::_S_Friendship, url='data:application/json,[{"friendA" : {"fullName" : "Robert T", "aName" : "A", "@type":"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA"}, "friendB" : {"fullName" : "John T", "aName" : "A", "@type":"meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::_S_PersonA"}}]' ) + )] ), meta::pure::extension::defaultExtensions() ); @@ -634,11 +708,15 @@ meta::pure::mapping::modelToModel::test::alloy::simple::simpleSerializeOfOneObje let result = execute( |meta::pure::mapping::modelToModel::test::alloy::simple::objects::dest::Friendship.all()->graphFetch($tree)->serialize($tree), meta::pure::mapping::modelToModel::test::alloy::simpleModelMappingWithMultipleSubType, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( class=meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::_S_Friendship, url='data:application/json,[{"friendA" : {"fullName" : "Robert T", "aName" : "A", "@type":"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA"}, "friendB" : {"fullName" : "John T", "aName" : "A", "@type":"meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::_S_PersonA"}, "friendC" : {"friendC" : {"fullName" : "John T", "aName" : "A", "bName" : "B", "@type":"meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::_S_PersonB"}}}]' ) + )] ), meta::pure::extension::defaultExtensions() ); @@ -653,15 +731,19 @@ function <graphFetchChecked($tree)->serialize($tree), meta::pure::mapping::modelToModel::test::alloy::simple::simpleModelMappingWithExplicitAssert, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( class = meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::_AString, url = 'data:application/json,{"s":"test string data"}' ) + )] ), meta::pure::extension::defaultExtensions() ); @@ -676,15 +758,19 @@ function <graphFetchChecked($tree)->serialize($tree), meta::pure::mapping::modelToModel::test::alloy::simple::simpleModelMappingWithImplicitAssert, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( class = meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::_AString, url = 'data:application/json,{"s":"test string data"}' ) + )] ), meta::pure::extension::defaultExtensions() ); @@ -699,15 +785,19 @@ function <graphFetchChecked($tree)->serialize($tree), meta::pure::mapping::modelToModel::test::alloy::simple::simpleEpochToDate, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( class = meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::EpochDate, url = 'data:application/json,{"epochDate":1624268257499000000}' ) + )] ), meta::pure::extension::defaultExtensions() ); @@ -715,7 +805,7 @@ meta::pure::mapping::modelToModel::test::alloy::simple::simpleM2MMappingEpochDat let expected = '{"defects":[],"source":{"defects":[],"source":{"number":1,"record":"{\\"epochDate\\":1624268257499000000}"},"value":{"epochDate":1624268257499000000}},"value":{"d":"2021-06-21T09:37:37.4990000"}}'; assert(jsonEquivalent($expected->parseJSON(), $result.values->toOne()->parseJSON())); - + } function <> meta::pure::mapping::modelToModel::test::alloy::simple::simpleGraphFetchAndSerialize() : Boolean[1] @@ -725,11 +815,15 @@ function <> meta::pure::mapping::modelToModel:: let res = meta::pure::executionPlan::executionPlan( |meta::pure::mapping::modelToModel::test::shared::dest::Person.all()->graphFetch($tree)->serialize($tree), meta::pure::mapping::modelToModel::test::simple::simpleModelMapping, - ^Runtime(connections = ^meta::pure::mapping::modelToModel::JsonModelConnection( - element=^meta::pure::mapping::modelToModel::ModelStore(), + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( class=_S_Person, url='data:application/json,[{"fullName":"John Doe"},{"fullName":"Pierre XE"},{"fullName":"_Hey Yo"}' ) + )] ), meta::pure::extension::defaultExtensions() ); @@ -782,17 +876,20 @@ function <graphFetch($tree)->meta::pure::mapping::from($mapping, $runtime)->serialize($tree), [], ^ExecutionContext(), meta::pure::extension::defaultExtensions()); - + let expected = '{"builder":{"_type":"json"},"values":[{"firstName":"Pierre","lastName":"Doe","type":"_S_Person","description":"meta::pure::mapping::modelToModel::test::shared::src::_S_Person"},'+ '{"firstName":"John","lastName":"DoeA","type":"_S_PersonA","description":"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA"},'+ '{"firstName":"John","lastName":"DoeB","type":"_S_PersonB","description":"meta::pure::mapping::modelToModel::test::shared::src::_S_PersonB"},'+ @@ -805,16 +902,19 @@ function <graphFetch($tree)->meta::pure::mapping::from($mapping, $runtime)->serialize($tree), [], ^ExecutionContext(), meta::pure::extension::defaultExtensions()); - + let expected = '{"builder":{"_type":"json"},"values":{"taxonomy":"FxForward[meta::pure::mapping::modelToModel::test::shared::src::FxForward]"}}'; - + assert(jsonEquivalent($expected->parseJSON(), $result->parseJSON())); } @@ -822,14 +922,17 @@ function <graphFetch(#{TradeExtended {side, productName, productRegion} }#)->meta::pure::mapping::from($mapping, $runtime)->serialize(#{TradeExtended {side, sideDescription, productName, productRegion} }#), [], ^ExecutionContext(), meta::pure::extension::defaultExtensions()); - + let expected = '{"builder":{"_type":"json"},"values":{"side":"Buy","sideDescription()":"Side[meta::pure::mapping::modelToModel::test::shared::dest::Side]","productName":"Product A","productRegion":"Product A region"}}'; assert(jsonEquivalent($expected->parseJSON(), $result->parseJSON())); @@ -841,11 +944,15 @@ function meta::pure::mapping::modelToModel::test::alloy::simple::testUnionMappin let res = meta::pure::executionPlan::executionPlan( |meta::pure::mapping::modelToModel::test::shared::dest::UnionTarget.all()->meta::pure::graphFetch::execution::graphFetchChecked($tree)->meta::pure::graphFetch::execution::serialize($tree), meta::pure::mapping::modelToModel::test::alloy::M, - ^meta::pure::runtime::Runtime(connections = ^meta::pure::mapping::modelToModel::JsonModelConnection( - element=^meta::pure::mapping::modelToModel::ModelStore(), + ^meta::core::runtime::Runtime( + connectionStores = [ + ^meta::core::runtime::ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( class=meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::UnionSource, url='data:application/json,{a : {id : "a"}, { b : { id : "b"}}}' ) + )] ), meta::pure::extension::defaultExtensions() ); @@ -884,7 +991,7 @@ Class meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::_Som dt : DateTime[*]; b : Boolean[2..4]; c : _Colour[1]; - s : String[*]; + s : String[*]; cs : String[0..1]; } @@ -1008,23 +1115,23 @@ Class meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::Unio fld : String[1]; } -Class meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::UnionB +Class meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::UnionB { fld : String[1]; } -Class meta::pure::mapping::modelToModel::test::shared::dest::UnionTarget +Class meta::pure::mapping::modelToModel::test::shared::dest::UnionTarget { c : meta::pure::mapping::modelToModel::test::shared::dest::UnionC[*]; } -Class meta::pure::mapping::modelToModel::test::shared::dest::UnionC +Class meta::pure::mapping::modelToModel::test::shared::dest::UnionC { fld : String[1]; } -###Mapping +###Mapping import meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::*; import meta::pure::mapping::modelToModel::test::alloy::simple::objects::dest::*; @@ -1084,21 +1191,21 @@ Mapping meta::pure::mapping::modelToModel::test::simple::simpleDataMapping c2 : EnumerationMapping ColourMappingInt: $src.i, c3 : EnumerationMapping ColourMappingString: $src.s } - + Colour : EnumerationMapping ColourMapping { RED : _Colour.ROUGE, BLUE : _Colour.BLEU, GREEN : _Colour.VERT } - + Colour : EnumerationMapping ColourMappingInt { RED : 1, BLUE : 2, GREEN : 3 } - + Colour : EnumerationMapping ColourMappingString { RED : 'ROUGE', @@ -1171,32 +1278,32 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::simpleModelMappingWithMu friendB[B] : $src.friendB->cast(@meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::_S_PersonA), friendC[C] : if($src.friendC.friendC->isNotEmpty() && $src.friendC.friendC->toOne()->instanceOf(meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::_S_PersonB), |$src.friendC.friendC->cast(@meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::_S_PersonB), |[]) } - + meta::pure::mapping::modelToModel::test::shared::dest::Person[A] : Pure { - ~src meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA + ~src meta::pure::mapping::modelToModel::test::shared::src::_S_PersonA firstName : $src.fullName->substring(0, $src.fullName->indexOf(' ')) + $src.aName, - lastName : $src.fullName->substring($src.fullName->indexOf(' ') + 1, $src.fullName->length()) + lastName : $src.fullName->substring($src.fullName->indexOf(' ') + 1, $src.fullName->length()) } - + meta::pure::mapping::modelToModel::test::shared::dest::Person[B] : Pure { - ~src meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::_S_PersonA + ~src meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::_S_PersonA firstName : $src.fullName->substring(0, $src.fullName->indexOf(' ')) + $src.aName, - lastName : $src.fullName->substring($src.fullName->indexOf(' ') + 1, $src.fullName->length()) + lastName : $src.fullName->substring($src.fullName->indexOf(' ') + 1, $src.fullName->length()) } - + meta::pure::mapping::modelToModel::test::shared::dest::Person[C] : Pure { - ~src meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::_S_PersonB + ~src meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::_S_PersonB firstName : $src.fullName->substring(0, $src.fullName->indexOf(' ')) + $src.bName, - lastName : $src.fullName->substring($src.fullName->indexOf(' ') + 1, $src.fullName->length()) + lastName : $src.fullName->substring($src.fullName->indexOf(' ') + 1, $src.fullName->length()) } - + *meta::pure::mapping::modelToModel::test::shared::dest::Person[union]:Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(A, B) - } + } ) @@ -1209,7 +1316,7 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::simple::simpleModelMappi } ) -// isNoShorterThan uses an assert in its definition: this is testing out translation of the isNoShorterThan body +// isNoShorterThan uses an assert in its definition: this is testing out translation of the isNoShorterThan body // and translation of the assert to make sure we pick up the right defintion Mapping meta::pure::mapping::modelToModel::test::alloy::simple::simpleModelMappingWithImplicitAssert ( @@ -1224,25 +1331,25 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::M ( *meta::pure::mapping::modelToModel::test::shared::dest::UnionTarget : Pure { - ~src meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::UnionSource + ~src meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::UnionSource c[c1] : $src.a , - c[c2] : $src.b + c[c2] : $src.b } - *meta::pure::mapping::modelToModel::test::shared::dest::UnionC[c_value] : Operation + *meta::pure::mapping::modelToModel::test::shared::dest::UnionC[c_value] : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(c1,c2) } - meta::pure::mapping::modelToModel::test::shared::dest::UnionC[c1] : Pure + meta::pure::mapping::modelToModel::test::shared::dest::UnionC[c1] : Pure { ~src meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::UnionA ~filter $src.fld->isNotEmpty() fld : $src.fld+'_a' } - meta::pure::mapping::modelToModel::test::shared::dest::UnionC[c2] : Pure + meta::pure::mapping::modelToModel::test::shared::dest::UnionC[c2] : Pure { ~src meta::pure::mapping::modelToModel::test::alloy::simple::objects::src::UnionB fld : $src.fld+'_b' diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/simpleObjectXml.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/simpleObjectXml.pure index 69d3e339f2e..cb07f44a758 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/simpleObjectXml.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/simpleObjectXml.pure @@ -20,19 +20,21 @@ import meta::pure::mapping::modelToModel::test::alloy::simple::*; import meta::json::*; import meta::pure::mapping::modelToModel::test::shared::src::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::modelToModel::test::simple::*; import meta::pure::graphFetch::execution::*; import meta::pure::mapping::modelToModel::test::shared::dest::*; import meta::pure::executionPlan::profiles::*; -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a single XML object that matches a source defintion, and an M2M mapping', doc.doc='When: the mapping is executed using graphFetch and serialize.', doc.doc='Then: the mapping is applied and the result of the mapping is serialized.' -} +} meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlSerializeOfOneObject() : Boolean[1] { let tree = #{Person {firstName,lastName,type} }#; @@ -40,27 +42,26 @@ meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlSerializeOfOneObje let result = execute( |Person.all()->graphFetch($tree)->serialize($tree), simpleModelMapping, - ^Runtime(connections = ^XmlModelConnection( - element=^ModelStore(), - class=_S_Person, - url='data:application/xml,' + + ^Runtime(connectionStores = ^ConnectionStore(element=^ModelStore(), connection=^XmlModelConnection( + class=_S_Person, + url='data:application/xml,' + '<_S_Person version=\'1.1\' type=\'md\'>\n' + 'Pierre DeBelen\n' + - '
\n' + + '
\n' + '' ) - ), + )), meta::pure::extension::defaultExtensions() ); assert(jsonEquivalent('{"firstName":"Pierre","lastName":"DeBelen","type":"md"}'->parseJSON(), $result.values->toOne()->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Parse a multiple xml object, process it through an M2M mapping and serialize the result as JSON.' -} +} meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlSerializeOfMultipleObjects() : Boolean[1] { let tree = #{Person {firstName,lastName} }#; @@ -68,31 +69,30 @@ meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlSerializeOfMultipl let result = execute( |Person.all()->graphFetch($tree)->serialize($tree), simpleModelMapping, - ^Runtime(connections = ^XmlModelConnection( - element=^ModelStore(), - class=_S_Person, - url='data:application/xml,' + + ^Runtime(connectionStores = ^ConnectionStore(element=^ModelStore(), connection=^XmlModelConnection( + class=_S_Person, + url='data:application/xml,' + '\n' + '<_S_Person>\n' + - 'Pierre DeBelen\n' + + 'Pierre DeBelen\n' + '' + '<_S_Person>\n' + - 'Dave Wathen\n' + + 'Dave Wathen\n' + '' + '\n' ) - ), + )), meta::pure::extension::defaultExtensions() ); assert(jsonEquivalent('[{"firstName":"Pierre","lastName":"DeBelen"},{"firstName":"Dave","lastName":"Wathen"}]'->parseJSON(), $result.values->toOne()->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Parse a multiple xml object, process it through an M2M mapping and serialize the result as JSON with defects.' -} +} meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlSerializeOfMultipleObjectsChecked() : Boolean[1] { let tree = #{Person {firstName,lastName} }#; @@ -100,20 +100,19 @@ meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlSerializeOfMultipl let result = execute( |Person.all()->graphFetchChecked($tree)->serialize($tree), simpleModelMapping, - ^Runtime(connections = ^XmlModelConnection( - element=^ModelStore(), - class=_S_Person, - url='data:application/xml,' + + ^Runtime(connectionStores = ^ConnectionStore(element=^ModelStore(), connection=^XmlModelConnection( + class=_S_Person, + url='data:application/xml,' + '\n' + '<_S_Person>\n' + - 'Pierre DeBelen\n' + + 'Pierre DeBelen\n' + '' + '<_S_Person>\n' + - 'Dave Wathen\n' + + 'Dave Wathen\n' + '' + '\n' ) - ), + )), meta::pure::extension::defaultExtensions() ); @@ -153,15 +152,15 @@ meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlSerializeOfMultipl ' }' + ' }' + ']'; - + assert(jsonEquivalent($expected->parseJSON(), $result.values->toOne()->parseJSON())); } -function <> -{ +function <> +{ serverVersion.start='v1_19_0', doc.doc='Parse a simple Xml object, process it through an M2M mapping and serialize the result as JSON.' -} +} meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlSerializeOneObjectReverse() : Boolean[1] { let tree = #{_S_Person {fullName} }#; @@ -169,29 +168,28 @@ meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlSerializeOneObject let result = execute( |_S_Person.all()->graphFetch($tree)->serialize($tree), simpleModelMappingReverse, - ^Runtime(connections = ^XmlModelConnection( - element=^ModelStore(), + ^Runtime(connectionStores = ^ConnectionStore(element=^ModelStore(), connection=^XmlModelConnection( class=Person, - url='data:application/xml,' + + url='data:application/xml,' + '\n' + - 'Pierre\n' + - 'DeBelen\n' + + 'Pierre\n' + + 'DeBelen\n' + '' ) - ), + )), meta::pure::extension::defaultExtensions() ); assert(jsonEquivalent('{"fullName":"Pierre DeBelen"}'->parseJSON(), $result.values->toOne()->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a Xml object (matching a source class) that contains data for all primitive data types and an enumeration, and an M2M mapping', doc.doc='When: the mapping is executed using graphFetch and serialize.', doc.doc='Then: the mapping is applied and the result of the mapping is serialized handling all datatypes appropriately.' -} +} meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlSupportForPrimitivesAndEnumerations() : Boolean[1] { let tree = #{SomeData {i, f, d, sd, dt, b, c, c2, c3} }#; @@ -199,8 +197,7 @@ meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlSupportForPrimitiv let result = execute( |SomeData.all()->graphFetch($tree)->serialize($tree), simpleDataMapping, - ^Runtime(connections = ^XmlModelConnection( - element=^ModelStore(), + ^Runtime(connectionStores = ^ConnectionStore(element=^ModelStore(), connection=^XmlModelConnection( class=_SomeData, url='data:application/xml,' + '<_SomeData>' + @@ -218,22 +215,22 @@ meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlSupportForPrimitiv 'ROUGE'+ 'BLEU'+ 'VERT'+ - '' + '' ) - ), + )), meta::pure::extension::defaultExtensions() ); assert(jsonEquivalent('{"i":4, "f": 0.4, "d": [0.2, 0.4],"sd": ["2018-03-13", "2019-05-31"], "dt": ["2018-03-12T15:20:21.000", "2019-05-30T06:29:01.234"], "b": [false, true, false], "c":"RED", "c2":"BLUE", "c3":["BLUE", "GREEN"]}'->parseJSON(), $result.values->toOne()->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a Xml object (matching a source class) that contains an empty tags, and an M2M mapping', doc.doc='When: the mapping is executed using graphFetch and serialize.', doc.doc='Then: the mapping is applied and the result of the mapping is serialized demonstrating support for empty properties.' -} +} meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlSupportForEmptyValues() : Boolean[1] { let tree = #{SomeData {i, f, d} }#; @@ -241,9 +238,8 @@ meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlSupportForEmptyVal let result = execute( |SomeData.all()->graphFetch($tree)->serialize($tree), simpleDataMapping, - ^Runtime(connections = ^XmlModelConnection( - element=^ModelStore(), - class=_SomeData, + ^Runtime(connectionStores = ^ConnectionStore(element=^ModelStore(), connection=^XmlModelConnection( + class=_SomeData, url='data:application/xml,' + '<_SomeData>' + ''+ @@ -252,22 +248,22 @@ meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlSupportForEmptyVal 'false'+ 'true'+ 'ROUGE'+ - '' + '' ) - ), + )), meta::pure::extension::defaultExtensions() ); assert(jsonEquivalent('{"i":null, "f": 0.4, "d": []}'->parseJSON(), $result.values->toOne()->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a Xml object (matching a source class) that contains properties with hyphen/preriod, and an M2M mapping', doc.doc='When: the mapping is executed using graphFetch and serialize.', doc.doc='Then: the mapping is applied and the result of the mapping is serialized demonstrating support for reserver characters being removed.' -} +} meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlSupportForReplacementUnsupportedCharactersInNames() : Boolean[1] { let tree = #{SomeData {i, f, d} }#; @@ -275,9 +271,8 @@ meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlSupportForReplacem let result = execute( |SomeData.all()->graphFetch($tree)->serialize($tree), simpleDataMapping, - ^Runtime(connections = ^XmlModelConnection( - element=^ModelStore(), - class=_SomeData, + ^Runtime(connectionStores = ^ConnectionStore(element=^ModelStore(), connection=^XmlModelConnection( + class=_SomeData, url='data:application/xml,' + '<_.SomeData>' + ''+ @@ -286,23 +281,23 @@ meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlSupportForReplacem 'false'+ 'true'+ 'ROUGE'+ - '' + '' ) - ), + )), meta::pure::extension::defaultExtensions() ); - + assert(jsonEquivalent('{"i":null, "f": 0.4, "d": []}'->parseJSON(), $result.values->toOne()->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a source class', doc.doc='Given: data with unused fields', doc.doc='When: a mapping is executed.', doc.doc='Then: the additional fields should be ignored.' -} +} meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlIgnoresUnwantedValues() : Boolean[1] { let tree = #{Person {firstName,lastName} }#; @@ -310,20 +305,19 @@ meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlIgnoresUnwantedVal let result = execute( |Person.all()->graphFetch($tree)->serialize($tree), simpleModelMapping, - ^Runtime(connections = ^XmlModelConnection( - element=^ModelStore(), - class=_S_Person, + ^Runtime(connectionStores = ^ConnectionStore(element=^ModelStore(), connection=^XmlModelConnection( + class=_S_Person, url='data:application/xml,' + '<_S_Person>\n' + - 'Dave Wathen\n' + + 'Dave Wathen\n' + 'skiing' + 'books' + '
' + 'London' + '
' + - '' - ) - ), + '' + ) + )), meta::pure::extension::defaultExtensions() ); @@ -332,11 +326,11 @@ meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlIgnoresUnwantedVal assert(jsonEquivalent($expected->parseJSON(), $json->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', - doc.doc='Parse a complex XML object, process it through an M2M mapping and serialize the result as JSON.' -} + doc.doc='Parse a complex XML object, process it through an M2M mapping and serialize the result as JSON.' +} meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlDeserializeComplexObject() : Boolean[1] { let tree = #{Person {firstName, lastName, addresses {street}} }#; @@ -344,12 +338,11 @@ meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlDeserializeComplex let result = execute( |Person.all()->graphFetch($tree)->serialize($tree), complexModelMapping, - ^Runtime(connections = ^XmlModelConnection( - element=^ModelStore(), + ^Runtime(connectionStores = ^ConnectionStore(element=^ModelStore(), connection=^XmlModelConnection( class=_Person, - url='data:application/xml,' + + url='data:application/xml,' + '<_Person version="1.1">\n' + - 'Pierre DeBelen\n' + + 'Pierre DeBelen\n' + '' + 'Digby' + '' + @@ -358,18 +351,18 @@ meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlDeserializeComplex '' + '' ) - ), + )), meta::pure::extension::defaultExtensions() ); assert(jsonEquivalent('{"firstName":"Pierre","lastName":"DeBelen","addresses":[{"street":"Digby"},{"street":"Highbury"}]}'->parseJSON(), $result.values->toOne()->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Parse a complex XML object, process it through an M2M mapping and serialize the result as checked JSON.' -} +} meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlDeserializeComplexObjectChecked() : Boolean[1] { let tree = #{Person {firstName, lastName, addresses {street}} }#; @@ -377,12 +370,11 @@ meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlDeserializeComplex let result = execute( |Person.all()->graphFetchChecked($tree)->serialize($tree), complexModelMapping, - ^Runtime(connections = ^XmlModelConnection( - element=^ModelStore(), + ^Runtime(connectionStores = ^ConnectionStore(element=^ModelStore(), connection=^XmlModelConnection( class=_Person, - url='data:application/xml,' + + url='data:application/xml,' + '<_Person version="1.1">\n' + - 'Pierre DeBelen\n' + + 'Pierre DeBelen\n' + '' + 'Digby' + '' + @@ -391,7 +383,7 @@ meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlDeserializeComplex '' + '' ) - ), + )), meta::pure::extension::defaultExtensions() ); let expected = '{' + @@ -431,28 +423,27 @@ meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlDeserializeComplex assert(jsonEquivalent($expected->parseJSON(), $result.values->toOne()->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a single XML object that matches a source defintion, and an M2M mapping', doc.doc='When: the mapping is executed using graphFetch and serialize.', doc.doc='Then: the mapping is applied and the result of the mapping is serialized.' -} +} meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlSerializeOfObjectWithAttributes() : Boolean[1] -{ +{ let tree = #{Person {firstName,lastName,alternateName{value, lang}} }#; - let pureRuntime = ^Runtime(connections = ^XmlModelConnection( - element=^ModelStore(), - class=_S_Person, - url='data:application/xml,' + + let pureRuntime = ^Runtime(connectionStores = ^ConnectionStore(element=^ModelStore(), connection=^XmlModelConnection( + class=_S_Person, + url='data:application/xml,' + '<_S_Person version=\'1.1\' type=\'md\'>\n' + 'Pierre Doe\n' + 'John Doe\n' + '' - ) + )) ); - + let result = execute( {|Person.all()->graphFetch($tree)->serialize($tree)}, simpleModelMapping, @@ -460,15 +451,15 @@ meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlSerializeOfObjectW meta::pure::extension::defaultExtensions() ); - let actual = $result.values->toOne(); + let actual = $result.values->toOne(); assert(jsonEquivalent('{"firstName":"Pierre","lastName":"Doe","alternateName":{"value":"John Doe","lang":"en"}}'->parseJSON(), $actual->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', - doc.doc='Parse a XML object with attricute and value without a tag, process it through an M2M mapping and serialize the result as JSON.' -} + doc.doc='Parse a XML object with attricute and value without a tag, process it through an M2M mapping and serialize the result as JSON.' +} meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlDeserializeValueWithoutTagObject() : Boolean[1] { let tree = #{meta::pure::mapping::modelToModel::test::xmlStore::simple::Trade {_id, value__} }#; @@ -476,16 +467,15 @@ meta::pure::mapping::modelToModel::test::xmlStore::simple::xmlDeserializeValueWi let result = execute( |meta::pure::mapping::modelToModel::test::xmlStore::simple::Trade.all()->graphFetch($tree)->serialize($tree), complexModelMapping, - ^Runtime(connections = ^XmlModelConnection( - element=^ModelStore(), + ^Runtime(connectionStores = ^ConnectionStore(element=^ModelStore(), connection=^XmlModelConnection( class=meta::pure::mapping::modelToModel::test::xmlStore::simple::Trade, - url='data:application/xml,' + + url='data:application/xml,' + '\n' + - '100\n' + - '200' + + '100\n' + + '200' + '' ) - ), + )), meta::pure::extension::defaultExtensions() ); println($result.values->toOne()); diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/sourceAssociationRequiredByMapping.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/sourceAssociationRequiredByMapping.pure index fe02520ae97..0dde97016d5 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/sourceAssociationRequiredByMapping.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/sourceAssociationRequiredByMapping.pure @@ -17,16 +17,18 @@ import meta::json::*; import meta::pure::executionPlan::profiles::*; import meta::pure::graphFetch::execution::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::test::alloy::simple::sourceAssociationRequiredByMapping::mapping::*; import meta::pure::mapping::modelToModel::test::alloy::simple::sourceAssociationRequiredByMapping::model::*; +import meta::core::runtime::*; import meta::pure::runtime::*; -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a mapping that navigates an association on the source', doc.doc='When: a mapping is executed using graphFetch and serialize.', doc.doc='Then: the data is correctly transformed.' -} +} meta::pure::mapping::modelToModel::test::alloy::simple::canNavigateSourceAssociationToClassNotSeparatelyMapped() : Boolean[1] { let tree = #{NameList {names} }#; @@ -34,12 +36,14 @@ meta::pure::mapping::modelToModel::test::alloy::simple::canNavigateSourceAssocia let result = execute( |NameList.all()->graphFetch($tree)->serialize($tree), employeeNames, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), - class=Firm, + ^Runtime( + connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( + class=Firm, url='data:application/json,{"name":"Metallurgy Inc.", "employees":[{"firstName":"Pierre","lastName":"Doe"}, {"firstName":"Dave","lastName":"Miles"}]}' ) - ),meta::pure::extension::defaultExtensions() + )),meta::pure::extension::defaultExtensions() ); assert(jsonEquivalent('{"names":"Pierre,Dave"}'->parseJSON(), $result.values->toOne()->parseJSON())); @@ -61,7 +65,7 @@ Class meta::pure::mapping::modelToModel::test::alloy::simple::sourceAssociationR Association meta::pure::mapping::modelToModel::test::alloy::simple::sourceAssociationRequiredByMapping::model::FirmPerson { - firm : Firm[1]; + firm : Firm[1]; employees : Person[*]; } @@ -80,4 +84,4 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::simple::sourceAssociatio ~src Firm names : $src.employees.firstName->joinStrings(',') } -) \ No newline at end of file +) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/testComplexTypeAutoMapping.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/testComplexTypeAutoMapping.pure index 7830a3263b2..1a3f1d9e328 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/testComplexTypeAutoMapping.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/testComplexTypeAutoMapping.pure @@ -20,6 +20,7 @@ import meta::pure::graphFetch::*; import meta::pure::mapping::*; import meta::pure::graphFetch::execution::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::modelToModel::test::alloy::autoMapping::helper::*; import meta::pure::mapping::modelToModel::test::alloy::autoMapping::model::*; @@ -29,11 +30,10 @@ function <> meta::pure::mapping::modelToModel::test:: { let tree = #{Person{firstName, lastName, firm {id}}}#; let mapping = testComplexTypePassThroughSimple(); - let runtime = ^Runtime(connections = ^meta::pure::mapping::modelToModel::JsonModelConnection( - element=^meta::pure::mapping::modelToModel::ModelStore(), - class=SPerson, + let runtime = ^Runtime(connectionStores = ^ConnectionStore(element=^meta::external::store::model::ModelStore(), connection=^meta::external::store::model::JsonModelConnection( + class=SPerson, url='data:application/json,{"fullName":"John Doe", "firm" : {"id" : "Firm A", "address" : {"street": "A"}}}' - )); + ))); let query = {| Person.all()->graphFetch($tree)->from($mapping, $runtime)->serialize($tree)}; let result = executeReflectively($query); @@ -44,13 +44,12 @@ function <> meta::pure::mapping::modelToModel::test:: { let tree = #{Person{firstName, lastName, firm {id, address {street}}}}#; let mapping = testComplexTypePassThroughSimple(); - let runtime = ^Runtime(connections = ^meta::pure::mapping::modelToModel::JsonModelConnection( - element=^meta::pure::mapping::modelToModel::ModelStore(), - class=SPerson, + let runtime = ^Runtime(connectionStores = ^ConnectionStore(element=^meta::external::store::model::ModelStore(), connection=^meta::external::store::model::JsonModelConnection( + class=SPerson, url='data:application/json,{"fullName":"John Doe", "firm" : {"id" : "Firm A", "address" : {"street": "A"}}}' - )); + ))); let query = {| Person.all()->graphFetch($tree)->from($mapping, $runtime)->serialize($tree)}; - + let result = executeReflectively($query); assertEquals('{"builder":{"_type":"json"},"values":{"firstName":"John","lastName":"Doe","firm":{"id":"Firm A","address":{"street":"A"}}}}', $result); } @@ -59,13 +58,14 @@ function <> meta::pure::mapping::modelToModel::test:: { let tree = #{Person{firm {id, address {street}}}}#; let mapping = testComplexTypePassThroughSimple(); - let runtime = ^Runtime(connections = ^meta::pure::mapping::modelToModel::JsonModelConnection( - element=^meta::pure::mapping::modelToModel::ModelStore(), - class=SPerson, + let runtime = ^Runtime(connectionStores= ^ConnectionStore( + element=^meta::external::store::model::ModelStore(), + connection=^meta::external::store::model::JsonModelConnection( + class=SPerson, url='data:application/json,{"fullName":"John Doe", "firm" : {"id" : "Firm A", "address" : {"street": "A"}}}' - )); + ))); let query = {| Person.all()->graphFetch($tree)->from($mapping, $runtime)->serialize($tree)}; - + let result = executeReflectively($query); assertEquals('{"builder":{"_type":"json"},"values":{"firm":{"id":"Firm A","address":{"street":"A"}}}}', $result); } @@ -74,13 +74,12 @@ function <> meta::pure::mapping::modelToModel::test:: { let tree = #{Person{firstName, lastName, firm {id, address {street}}, addresses {street}}}#; let mapping = testComplexTypePassThroughWithMultipleProperties(); - let runtime = ^Runtime(connections = ^meta::pure::mapping::modelToModel::JsonModelConnection( - element=^meta::pure::mapping::modelToModel::ModelStore(), - class=SPerson, + let runtime = ^Runtime(connectionStores = ^ConnectionStore(element=^meta::external::store::model::ModelStore(), connection=^meta::external::store::model::JsonModelConnection( + class=SPerson, url='data:application/json,{"fullName":"John Doe", "firm" : {"id" : "Firm A", "address" : {"street": "A"}}, "address1": {"street": "Person Street A"}}' - )); + ))); let query = {| Person.all()->graphFetch($tree)->from($mapping, $runtime)->serialize($tree)}; - + let result = executeReflectively($query); assertEquals('{"builder":{"_type":"json"},"values":{"firstName":"John","lastName":"Doe","firm":{"id":"Firm A","address":{"street":"A"}},"addresses":[{"street":"Person Street A"}]}}', $result); } @@ -89,13 +88,12 @@ function <> meta::pure::mapping::modelToModel::test:: { let tree = #{Person{firstName, lastName, firm {id, address {street}}}}#; let mapping = testComplexTypePassThroughAtPropertyLevel(); - let runtime = ^Runtime(connections = ^meta::pure::mapping::modelToModel::JsonModelConnection( - element=^meta::pure::mapping::modelToModel::ModelStore(), - class=SPerson, + let runtime = ^Runtime(connectionStores = ^ConnectionStore(element=^meta::external::store::model::ModelStore(), connection=^meta::external::store::model::JsonModelConnection( + class=SPerson, url='data:application/json,{"fullName":"John Doe", "firm" : {"id" : "Firm A", "address" : {"street": "A"}}, "address1": {"street": "Person Street A"}}' - )); + ))); let query = {| Person.all()->graphFetch($tree)->from($mapping, $runtime)->serialize($tree)}; - + let result = executeReflectively($query); assertEquals('{"builder":{"_type":"json"},"values":{"firstName":"John","lastName":"Doe","firm":{"id":"Firm A updated","address":{"street":"A"}}}}', $result); } @@ -104,13 +102,12 @@ function <> meta::pure::mapping::modelToModel::test:: { let tree = #{Person{firstName, lastName, firm {id, address {street}}, addresses {street}}}#; let mapping = testComplexTypePassThroughWithConcatenateFunctionMapping(); - let runtime = ^Runtime(connections = ^meta::pure::mapping::modelToModel::JsonModelConnection( - element=^meta::pure::mapping::modelToModel::ModelStore(), - class=SPerson, + let runtime = ^Runtime(connectionStores = ^ConnectionStore(element=^meta::external::store::model::ModelStore(), connection=^meta::external::store::model::JsonModelConnection( + class=SPerson, url='data:application/json,{"fullName":"John Doe", "firm" : {"id" : "Firm A", "address" : {"street": "A"}}, "address1": {"street": "Person Street A"}, "address2": {"street": "Person Street B"}}' - )); + ))); let query = {| Person.all()->graphFetch($tree)->from($mapping, $runtime)->serialize($tree)}; - + let result = executeReflectively($query); assertEquals('{"builder":{"_type":"json"},"values":{"firstName":"John","lastName":"Doe","firm":{"id":"Firm A","address":{"street":"A"}},"addresses":[{"street":"Person Street A"},{"street":"Person Street B"}]}}', $result); } @@ -119,13 +116,12 @@ function <> meta::pure::mapping::modelToModel::test:: { let tree = #{Person{firstName, lastName, addresses {street}}}#; let mapping = testComplexTypePassThroughViaPropertyAccess(); - let runtime = ^Runtime(connections = ^meta::pure::mapping::modelToModel::JsonModelConnection( - element=^meta::pure::mapping::modelToModel::ModelStore(), - class=SPerson, + let runtime = ^Runtime(connectionStores = ^ConnectionStore(element=^meta::external::store::model::ModelStore(), connection=^meta::external::store::model::JsonModelConnection( + class=SPerson, url='data:application/json,{"fullName":"John Doe", "firm" : {"id" : "Firm A", "address" : {"street": "A"}}, "address1": {"street": "Person Street A"}, "address2": {"street": "Person Street B"}}' - )); + ))); let query = {| Person.all()->graphFetch($tree)->from($mapping, $runtime)->serialize($tree)}; - + let result = executeReflectively($query); assertEquals('{"builder":{"_type":"json"},"values":{"firstName":"John","lastName":"Doe","addresses":[{"street":"A"}]}}', $result); } @@ -134,13 +130,12 @@ function <> meta::pure::mapping::modelToModel::test:: { let tree = #{Person{firstName, lastName, addresses {street}}}#; let mapping = testComplexTypePassThroughViaUserDefinedFunction(); - let runtime = ^Runtime(connections = ^meta::pure::mapping::modelToModel::JsonModelConnection( - element=^meta::pure::mapping::modelToModel::ModelStore(), - class=SPerson, + let runtime = ^Runtime(connectionStores = ^ConnectionStore(element=^meta::external::store::model::ModelStore(), connection=^meta::external::store::model::JsonModelConnection( + class=SPerson, url='data:application/json,{"fullName":"John Doe", "firm" : {"id" : "Firm A", "address" : {"street": "A"}}, "address1": {"street": "Person Street A"}, "address2": {"street": "Person Street B"}}' - )); + ))); let query = {| Person.all()->graphFetch($tree)->from($mapping, $runtime)->serialize($tree)}; - + let result = executeReflectively($query); assertEquals('{"builder":{"_type":"json"},"values":{"firstName":"John","lastName":"Doe","addresses":[{"street":"A"}]}}', $result); } @@ -149,13 +144,12 @@ function <> meta::pure::mapping::modelToModel::test:: { let tree = #{Person{firstName, lastName, firm {id}}}#; let mapping = testComplexTypePassThroughWithSubType(); - let runtime = ^Runtime(connections = ^meta::pure::mapping::modelToModel::JsonModelConnection( - element=^meta::pure::mapping::modelToModel::ModelStore(), - class=SPerson1, + let runtime = ^Runtime(connectionStores = ^ConnectionStore(element=^meta::external::store::model::ModelStore(), connection=^meta::external::store::model::JsonModelConnection( + class=SPerson1, url='data:application/json,{"fullName":"John Doe", "firm" : {"id" : "Firm A", "address" : {"street": "A"}, "size" : 1000}}' - )); + ))); let query = {| Person.all()->graphFetch($tree)->from($mapping, $runtime)->serialize($tree)}; - + let result = executeReflectively($query); assertEquals('{"builder":{"_type":"json"},"values":{"firstName":"John","lastName":"Doe","firm":{"id":"Firm A"}}}', $result); } @@ -164,13 +158,12 @@ function <> meta::pure::mapping::modelToModel::test:: { let tree = #{Person{firstName, lastName, firm {id}}}#; let mapping = testComplexTypePassThroughWithNestedSubType(); - let runtime = ^Runtime(connections = ^meta::pure::mapping::modelToModel::JsonModelConnection( - element=^meta::pure::mapping::modelToModel::ModelStore(), - class=SPerson2, + let runtime = ^Runtime(connectionStores = ^ConnectionStore(element=^meta::external::store::model::ModelStore(), connection=^meta::external::store::model::JsonModelConnection( + class=SPerson2, url='data:application/json,{"fullName":"John Doe", "firm" : {"id" : "Firm A", "address" : {"street": "A"}, "size" : 1000, "legalName": "Firm legalName"}}' - )); + ))); let query = {| Person.all()->graphFetch($tree)->from($mapping, $runtime)->serialize($tree)}; - + let result = executeReflectively($query); assertEquals('{"builder":{"_type":"json"},"values":{"firstName":"John","lastName":"Doe","firm":{"id":"Firm A"}}}', $result); @@ -206,6 +199,7 @@ function <> meta::pure::mapping::modelToModel::test::alloy::autoMappi ###Pure import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::*; import meta::pure::mapping::modelToModel::test::alloy::autoMapping::model::*; import meta::pure::mapping::modelToModel::test::alloy::autoMapping::mapping::*; @@ -431,9 +425,10 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::autoMapping::mapping::te ###Pure import meta::pure::extension::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::pure::mapping::modelToModel::test::alloy::autoMapping::helper::executeReflectively(f: FunctionDefinition[1]): String[1] { meta::legend::executeLegendQuery($f, [], ^ExecutionContext(), meta::pure::extension::defaultExtensions()); -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/testEquality.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/testEquality.pure index 1606247ebb6..911dfd85c13 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/testEquality.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/testEquality.pure @@ -16,19 +16,22 @@ import meta::json::*; import meta::pure::executionPlan::profiles::*; import meta::pure::graphFetch::execution::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::test::alloy::simple::*; import meta::pure::runtime::*; +import meta::core::runtime::*; -function <> { serverVersion.start='v1_19_0' } +function <> { serverVersion.start='v1_19_0' } meta::pure::mapping::modelToModel::test::alloy::simple::testEqualityOperationsWithEmptyValues(): Boolean[1] { let tree = #{Target {accountNumber, isTestAccount, isAccountTypeMissing, trueExpressionField} }#; let mapping = EqualityTestMapping; - let runtime = ^Runtime(connections = ^JsonModelConnection( - element = ^ModelStore(), - class = Source, + let runtime = ^Runtime(connectionStores = ^ConnectionStore( + element = ^ModelStore(), + connection=^JsonModelConnection( + class = Source, url = 'data:application/json,[{"accountNumber":1}, {"accountNumber":1, "accountDetails": {"accountType": "TEST_ACCOUNT"}}]' - )); + ))); let result = execute( | Target.all()->graphFetch($tree)->serialize($tree), @@ -79,4 +82,4 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::simple::EqualityTestMapp isAccountTypeMissing: $src.accountDetails.accountType == [], trueExpressionField : $src.accountDetails.accountType == $src.accountDetails.accountType } -) \ No newline at end of file +) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/testExplosion.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/testExplosion.pure index b780bfbd100..9dc57d777f8 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/testExplosion.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/testExplosion.pure @@ -16,6 +16,8 @@ import meta::pure::mapping::modelToModel::test::shared::dest::*; import meta::json::*; import meta::pure::mapping::modelToModel::test::shared::src::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::modelToModel::test::alloy::explosion::*; import meta::pure::graphFetch::execution::*; @@ -29,11 +31,12 @@ meta::pure::mapping::modelToModel::test::alloy::explosion::testBasicExplosion(): let result = execute( |FirmEmployee.all()->graphFetch($tree)->serialize($tree), basicExplosionMapping, - ^Runtime(connections = ^JsonModelConnection( + ^Runtime(connectionStores= ^ConnectionStore( element=^ModelStore(), + connection=^JsonModelConnection( class=_SimpleFirm, url='data:application/json,{"name":"Anonymous Company","simpleEmployees":[{"fullName":"PersonA"},{"fullName":"PersonB"}]}' - ) + )) ), meta::pure::extension::defaultExtensions() ); @@ -50,12 +53,13 @@ meta::pure::mapping::modelToModel::test::alloy::explosion::testMultiplePropertyE let result = execute( |FirmEmployee.all()->graphFetch($tree)->serialize($tree), multipleExplosionMapping, - ^Runtime(connections = ^JsonModelConnection( + ^Runtime(connectionStores= ^ConnectionStore( element=^ModelStore(), + connection=^JsonModelConnection( class=_SimpleFirm, url='data:application/json,{"name":"Anonymous Company","simpleEmployees":[{"fullName":"PersonA","address":{"street":"first"}},{"fullName":"PersonB","address":{"street":"second"}}]}' ) - ), + )), meta::pure::extension::defaultExtensions() ); @@ -71,12 +75,13 @@ meta::pure::mapping::modelToModel::test::alloy::explosion::testTargetConstraints let result = execute( |FirmEmployeeWithConstraint.all()->graphFetchChecked($tree)->serialize($tree), explosionWithConstraintMapping, - ^Runtime(connections = ^JsonModelConnection( + ^Runtime(connectionStores= ^ConnectionStore( element=^ModelStore(), + connection=^JsonModelConnection( class=_SimpleFirm, url='data:application/json,{"name":"Anonymous Company","simpleEmployees":[{"fullName":"PersonA"},{"fullName":"PersonB"}]}' ) - ), + )), meta::pure::extension::defaultExtensions() ); @@ -88,7 +93,7 @@ function <graphFetch($tree)->serialize($tree), mappingWithSetsUsingAndNotUsingExplosion, - ^Runtime(connections = ^JsonModelConnection( - element=^ModelStore(), - class=_S_Person, + ^Runtime(connectionStores= ^ConnectionStore( + element=^ModelStore(), + connection=^JsonModelConnection( + class=_S_Person, url='data:application/json,{"fullName":"Pierre Doe"}' ) - ), + )), meta::pure::extension::defaultExtensions() ); assert(jsonEquivalent('{"firstName":"Pierre","lastName":"Doe"}'->parseJSON(), $result.values->toOne()->parseJSON())); @@ -120,12 +126,13 @@ meta::pure::mapping::modelToModel::test::alloy::explosion::testExplosionAtProper let result = execute( |TargetFirm.all()->graphFetch($tree)->serialize($tree), mappingWithSetsUsingAndNotUsingExplosion, - ^Runtime(connections = ^JsonModelConnection( + ^Runtime(connectionStores= ^ConnectionStore( element=^ModelStore(), + connection=^JsonModelConnection( class=_SimpleFirm, url='data:application/json,{"name":"Anonymous Company","simpleEmployees":[{"fullName":"PersonA","dateOfBirth":"2020-11-09","address":{"street":"first"}},{"fullName":"PersonB","dateOfBirth":"2020-11-10","address":{"street":"second"}}]}' ) - ), + )), meta::pure::extension::defaultExtensions() ); assert(jsonEquivalent('{"name": "Anonymous Company","firmEmployees": [{"firmName": "Anonymous Company","fullName": "PersonA","streetAddress": "first","dateOfBirth": "2020-11-09"},{"firmName": "Anonymous Company","fullName": "PersonB","streetAddress": "second","dateOfBirth": "2020-11-10"}]}'->parseJSON(), $result.values->toOne()->parseJSON())); @@ -144,12 +151,13 @@ meta::pure::mapping::modelToModel::test::alloy::explosion::testMappingWithExplos let result = execute( |TargetFirm.all()->graphFetch($tree)->serialize($tree), mappingWithSetsUsingAndNotUsingExplosion, - ^Runtime(connections = ^JsonModelConnection( + ^Runtime(connectionStores= ^ConnectionStore( element=^ModelStore(), + connection=^JsonModelConnection( class=_SimpleFirm, url='data:application/json,{"name":"Anonymous Company","simpleEmployees":[{"fullName":"PersonA","dateOfBirth":"2020-11-09","address":{"street":"first"}},{"fullName":"PersonB","dateOfBirth":"2020-11-10","address":{"street":"second"}}]}' ) - ), + )), meta::pure::extension::defaultExtensions() ); assert(jsonEquivalent('{"name": "Anonymous Company","firmEmployees": [{"firmName": "Anonymous Company"}, {"firmName": "Anonymous Company"}]}'->parseJSON(), $result.values->toOne()->parseJSON())); @@ -168,12 +176,13 @@ meta::pure::mapping::modelToModel::test::alloy::explosion::testExplosionAtProper let result = execute( |TargetFirm.all()->graphFetch($tree)->serialize($tree), mappingWithSetsUsingAndNotUsingExplosion, - ^Runtime(connections = ^JsonModelConnection( + ^Runtime(connectionStores= ^ConnectionStore( element=^ModelStore(), + connection=^JsonModelConnection( class=_SimpleFirm, url='data:application/json,{"name":"Anonymous Company","simpleEmployees":[{"fullName":"PersonA","dateOfBirth":"2020-11-09","address":{"street":"first"}},{"fullName":"PersonB","dateOfBirth":"2020-11-10","address":{"street":"second"}}]}' ) - ), + )), meta::pure::extension::defaultExtensions() ); assert(jsonEquivalent('{"name": "Anonymous Company","firmEmployees": [{"firmName": "Anonymous Company","fullName": "PersonA"},{"firmName": "Anonymous Company","fullName": "PersonB"}]}'->parseJSON(), $result.values->toOne()->parseJSON())); @@ -192,12 +201,13 @@ meta::pure::mapping::modelToModel::test::alloy::explosion::testExplosionAtProper let result = execute( |TargetFirm.all()->graphFetch($tree)->serialize($tree), mappingWithSetsUsingAndNotUsingExplosion, - ^Runtime(connections = ^JsonModelConnection( + ^Runtime(connectionStores= ^ConnectionStore( element=^ModelStore(), + connection=^JsonModelConnection( class=_SimpleFirm, url='data:application/json,{"name":"Anonymous Company","simpleEmployees":[{"fullName":"PersonA","address":{"street":"first"}},{"fullName":"PersonB","dateOfBirth":"2020-11-10"}]}' ) - ), + )), meta::pure::extension::defaultExtensions() ); assert(jsonEquivalent('{"name": "Anonymous Company","firmEmployees": [{"firmName": "Anonymous Company","fullName": "PersonA","streetAddress": "first","dateOfBirth": null},{"firmName": "Anonymous Company","fullName": "PersonB","streetAddress": null,"dateOfBirth": "2020-11-10"}]}'->parseJSON(), $result.values->toOne()->parseJSON())); @@ -211,7 +221,7 @@ meta::pure::mapping::modelToModel::test::alloy::explosion::testExplosionWithEnum let result = execute( |Trade.all()->graphFetch($tree)->serialize($tree), enumExplosionMapping, - ^Runtime(connections = ^JsonModelConnection(element=^ModelStore(), class=_Trade, url='data:application/json,{"side": 1}')), + ^Runtime(connectionStores= ^ConnectionStore(element=^ModelStore(),connection=^JsonModelConnection( class=_Trade, url='data:application/json,{"side": 1}'))), meta::pure::extension::defaultExtensions() ); assertJsonStringsEqual('[{"side":"Buy"},{"side":"Buy"},{"side":"Buy"}]', $result.values->toOne()); @@ -316,4 +326,4 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::explosion::mappingWithSe streetAddress* : $src.simpleEmployees.address.street, dateOfBirth* : $src.simpleEmployees.dateOfBirth } -) \ No newline at end of file +) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/testUnitMeasure.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/testUnitMeasure.pure index 686a68ffc5b..8b0e6e30ffb 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/testUnitMeasure.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/testUnitMeasure.pure @@ -16,6 +16,8 @@ import meta::pure::executionPlan::engine::java::roadmap::*; import meta::pure::mapping::modelToModel::test::alloy::units::*; import meta::json::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::graphFetch::execution::*; import meta::pure::mapping::modelToModel::test::units::src::*; @@ -32,11 +34,12 @@ meta::pure::mapping::modelToModel::test::alloy::units::testUnitToUnitIdentityMap let result = execute( |HealthProfile.all()->graphFetch($tree)->serialize($tree), instanceIdentityMapping, - ^Runtime(connections = ^JsonModelConnection( + ^Runtime(connectionStores= ^ConnectionStore( element=^ModelStore(), + connection=^JsonModelConnection( class=_HealthProfile, url='data:application/json,{"fullName":"Teddy Dean","weight":{"unit":[{"unitId":"meta::pure::unit::Mass~Kilogram","exponentValue":1}],"value":5.5}}' - ) + )) ),meta::pure::extension::defaultExtensions() ); @@ -52,11 +55,12 @@ meta::pure::mapping::modelToModel::test::alloy::units::testModelToModelMappingOf let result = execute( |DecomposedHealthProfile.all()->graphFetch($tree)->serialize($tree), unitDecomposeMapping, - ^Runtime(connections = ^JsonModelConnection( + ^Runtime(connectionStores= ^ConnectionStore( element=^ModelStore(), + connection=^JsonModelConnection( class=_HealthProfile, url='data:application/json,{"fullName":"Teddy Dean","weight":{"unit":[{"unitId":"meta::pure::unit::Mass~Kilogram","exponentValue":1}],"value":5.5}}' - ) + )) ),meta::pure::extension::defaultExtensions() ); @@ -72,11 +76,12 @@ meta::pure::mapping::modelToModel::test::alloy::units::testModelToModelMappingOf let result = execute( |HealthProfile.all()->graphFetch($tree)->serialize($tree), unitComposeMapping, - ^Runtime(connections = ^JsonModelConnection( + ^Runtime(connectionStores= ^ConnectionStore( element=^ModelStore(), + connection=^JsonModelConnection( class=_DecomposedHealthProfile, url='data:application/json,{"fullName":"Teddy Dean","weightUnit":"meta::pure::unit::Mass~Kilogram","weightValue":5.5}' - ) + )) ),meta::pure::extension::defaultExtensions() ); @@ -92,11 +97,12 @@ meta::pure::mapping::modelToModel::test::alloy::units::testModelToModelMappingOf let result = execute( |ClassWithPound.all()->graphFetch($tree)->serialize($tree), unitConvertMapping, - ^Runtime(connections = ^JsonModelConnection( + ^Runtime(connectionStores= ^ConnectionStore( element=^ModelStore(), + connection=^JsonModelConnection( class=_ClassWithKilogram, url='data:application/json,{"weight":{"unit":[{"unitId":"meta::pure::unit::Mass~Kilogram","exponentValue":1}],"value":5.5}}' - ) + )) ),meta::pure::extension::defaultExtensions() ); @@ -110,11 +116,12 @@ function <> meta::pure::mapping::modelToModel:: let res = meta::pure::executionPlan::executionPlan( |meta::pure::mapping::modelToModel::test::units::dest::HealthProfile.all()->graphFetch($tree)->serialize($tree), meta::pure::mapping::modelToModel::test::alloy::units::instanceIdentityMapping, - ^Runtime(connections = ^meta::pure::mapping::modelToModel::JsonModelConnection( - element=^meta::pure::mapping::modelToModel::ModelStore(), - class=meta::pure::mapping::modelToModel::test::units::src::_HealthProfile, - url='data:application/json,{"unit":[{"unitId":"meta::pure::unit::Mass~Kilogram","exponentValue":1}],"value":5}}' - ) + ^Runtime(connectionStores = ^ConnectionStore( + element=^meta::external::store::model::ModelStore(), + connection=^meta::external::store::model::JsonModelConnection( + class=meta::pure::mapping::modelToModel::test::units::src::_HealthProfile, + url='data:application/json,{"unit":[{"unitId":"meta::pure::unit::Mass~Kilogram","exponentValue":1}],"value":5}}' + )) ), meta::pure::extension::defaultExtensions() ); @@ -210,4 +217,4 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::units::unitConvertMappin ~src _ClassWithKilogram weight : $src.weight->convert(Mass~Pound)->cast(@Mass~Pound) } -) \ No newline at end of file +) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/toFromSameName.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/toFromSameName.pure index fd2aed7e07f..0e2996708ad 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/toFromSameName.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/toFromSameName.pure @@ -17,15 +17,16 @@ import meta::json::*; import meta::pure::executionPlan::profiles::*; import meta::pure::graphFetch::execution::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::test::alloy::utils::*; -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a source class', doc.doc='Given: a target class of the same name in a different package', doc.doc='When: a mapping is executed using graphFetch and serialize.', doc.doc='Then: the mapping conversion should succeed.' -} +} meta::pure::mapping::modelToModel::test::alloy::simple::canMapBetweenClassesWithTheSameName() : Boolean[1] { let tree = #{meta::pure::mapping::modelToModel::test::alloy::simple::toFromSameName::dest::domain::Person {newFirstName, newLastName, age}}#; @@ -41,13 +42,13 @@ meta::pure::mapping::modelToModel::test::alloy::simple::canMapBetweenClassesWith assert(jsonEquivalent('{"newFirstName":"Dave", "newLastName":"Miles", "age":25}'->parseJSON(), $json->parseJSON())); } -function <> +function <> { serverVersion.start='v1_19_0', doc.doc='Given: a source class', doc.doc='Given: a target class of the same name in a different package', doc.doc='When: a mapping is executed using graphFetchChecked and serialize.', doc.doc='Then: the mapping conversion should succeed.' -} +} meta::pure::mapping::modelToModel::test::alloy::simple::canMapBetweenClassesWithTheSameNameChecked() : Boolean[1] { let tree = #{meta::pure::mapping::modelToModel::test::alloy::simple::toFromSameName::dest::domain::Person {newFirstName, newLastName, age}}#; @@ -60,7 +61,7 @@ meta::pure::mapping::modelToModel::test::alloy::simple::canMapBetweenClassesWith ); let json = $result.values->toOne(); - let expected= + let expected= '{'+ ' "defects":[],'+ ' "value":{"newFirstName":"Dave", "newLastName":"Miles", "age":25},'+ diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/util.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/util.pure index 4e9835cfa78..c1683ef8cd6 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/util.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/util.pure @@ -13,15 +13,21 @@ // limitations under the License. import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::pure::mapping::modelToModel::test::alloy::utils::testJsonRuntime(class:Class[1], json:String[1]) : Runtime[1] { ^Runtime( - connections = ^JsonModelConnection( - element=^ModelStore(), - class = $class, - url = 'data:application/json,'+$json - ) + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection=^JsonModelConnection( + class = $class, + url = 'data:application/json,'+$json + ) + ) + ] ); } diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/merge.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/merge.pure index ccdb9bce173..110ccead380 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/merge.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/merge.pure @@ -15,6 +15,8 @@ import meta::pure::graphFetch::execution::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::modelToModel::test::merge::*; import meta::pure::router::operations::*; @@ -39,11 +41,15 @@ function <put(SourcePersonWithLastName, list([^SourcePersonWithLastName(lastName='Doe') ])) ; - + let res = execute( |Person.all(), meta::pure::mapping::modelToModel::test::merge::MergeModelMappingSource, - ^Runtime( connections = ^ModelConnection(element=^ModelStore(), instances=$instances)), + ^Runtime( + connectionStores = [ + ^ConnectionStore( + element=^ModelStore(), + connection=^ModelConnection(instances=$instances))]), meta::pure::extension::defaultExtensions() ); assertEquals(1, $res.values->size()); diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/primitives.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/primitives.pure index 65d782c9d61..60aee291b3e 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/primitives.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/primitives.pure @@ -15,7 +15,9 @@ import meta::pure::mapping::modelToModel::test::primitives::*; import meta::pure::mapping::modelToModel::test::filter::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::test::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::modelToModel::test::shared::src::*; import meta::pure::mapping::modelToModel::test::shared::dest::*; @@ -25,14 +27,14 @@ function <> meta::pure::mapping::modelToModel:: let res = execute( |Person.all()->filter(f|$f.addresses->exists(a|$a.street == 'MyStreet')), primitiveModelMapping, - ^Runtime(connections = ^ModelConnection(element=^ModelStore(), instances= newMap( + ^Runtime(connectionStores= ^ConnectionStore(element=^ModelStore(),connection=^ModelConnection( instances= newMap( pair(_Person_Address , list([ ^_Person_Address (name='ok', street='MyStreet') ]) ) ) ) - ), + )), meta::pure::extension::defaultExtensions() ); assertSameElements(['ok'], $res.values->at(0).lastName); @@ -54,10 +56,10 @@ Mapping meta::pure::mapping::modelToModel::test::primitives::primitiveModelMappi lastName : $src.name, addresses[add] : $src.street } - + Address[add] : Pure { ~src String street : $src } -) \ No newline at end of file +) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/shared.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/shared.pure index 83746baa21d..0a1687e605b 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/shared.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/shared.pure @@ -14,7 +14,9 @@ import meta::pure::mapping::modelToModel::test::shared::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::test::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::modelToModel::test::shared::src::*; import meta::pure::mapping::modelToModel::test::shared::dest::*; @@ -247,7 +249,7 @@ Class meta::pure::mapping::modelToModel::test::shared::dest::TradeExtended exten Enum meta::pure::mapping::modelToModel::test::shared::dest::Side { - Buy, Sell + Buy, Sell } Class meta::pure::mapping::modelToModel::test::shared::src::_FirmX @@ -345,4 +347,4 @@ Class meta::pure::mapping::modelToModel::test::shared::src::FxForward extends Co currencyPair: String[1]; valueDate: StrictDate[1]; placeholder2: String[1]; -} \ No newline at end of file +} diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/simple.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/simple.pure index 5da8802dee5..0c580742d03 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/simple.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/simple.pure @@ -21,7 +21,9 @@ import meta::pure::mapping::modelToModel::test::simple::*; import meta::pure::mapping::modelToModel::test::primitives::*; import meta::pure::mapping::modelToModel::test::filter::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::test::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::modelToModel::test::shared::src::*; import meta::pure::mapping::modelToModel::test::shared::dest::*; @@ -33,7 +35,7 @@ function <> meta::pure::mapping::modelToModel:: let res = execute( |Person.all(), simpleModelMapping, - ^Runtime(connections = ^ModelConnection(element=^ModelStore(), instances= newMap( + ^Runtime(connectionStores= ^ConnectionStore(element=^ModelStore(),connection=^ModelConnection( instances= newMap( pair(_S_Person, list([ ^_S_Person(fullName='Pierre Doe'), ^_S_Person(fullName='Pierre XE'), @@ -42,7 +44,7 @@ function <> meta::pure::mapping::modelToModel:: ) ) ) - ), + )), meta::pure::extension::defaultExtensions() ); testSimpleAsserts($res); @@ -61,7 +63,7 @@ function <> meta::pure::mapping::modelToModel:: let res = execute( |Person.all()->filter(p|$p.lastName == 'Yo'), simpleModelMapping, - ^Runtime(connections = ^ModelConnection(element=^ModelStore(), instances= newMap( + ^Runtime(connectionStores= ^ConnectionStore(element=^ModelStore(),connection=^ModelConnection( instances= newMap( pair(_S_Person, list([ ^_S_Person(fullName='Pierre Doe'), ^_S_Person(fullName='Pierre XE'), @@ -70,7 +72,7 @@ function <> meta::pure::mapping::modelToModel:: ) ) ) - ), + )), meta::pure::extension::defaultExtensions() ); testSimpleFilterAsserts($res); @@ -90,14 +92,14 @@ function <> meta::pure::mapping::modelToModel:: let res = execute( |Firm.all(), simpleModelMappingWithAssociation, - ^Runtime(connections = ^ModelConnection(element=^ModelStore(), instances= newMap( + ^Runtime(connectionStores= ^ConnectionStore(element=^ModelStore(),connection=^ModelConnection( instances= newMap( pair(_Firm , list([ ^_Firm (name='A', employees = [^_Person(fullName='Pierre Doe'),^_Person(fullName='A. Only One')] ) ]) ) ) ) - ), + )), meta::pure::extension::defaultExtensions() ); testSimpleAssociationAsserts($res); @@ -119,13 +121,13 @@ function <> meta::pure::mapping::modelToModel:: let res = execute( |Firm.all()->project([f|$f.legalName, f|$f.employees.lastName], ['legalName','lastName']), simpleModelMappingWithAssociation, - ^Runtime(connections = ^ModelConnection(element=^ModelStore(), instances= newMap( + ^Runtime(connectionStores= ^ConnectionStore(element=^ModelStore(),connection=^ModelConnection( instances= newMap( pair(_Firm , list([ ^_Firm (name='A', employees = [^_Person(fullName='Pierre Doe'),^_Person(fullName='A. Only One')] ) ])) ) ) - ), + )), meta::pure::extension::defaultExtensions() ); testSimpleProjectAssoAsserts($res); @@ -152,8 +154,8 @@ function <> meta::pure::mapping::modelToModel:: let res = execute( |Person.all()->project([p|$p.firstName, p|$p.lastName], ['firstName','lastName']), meta::pure::mapping::modelToModel::test::simple::simpleModelMapping, - ^Runtime(connections = [ - ^ModelConnection(element = ^ModelStore(), instances= newMap( + ^Runtime(connectionStores= [ + ^ConnectionStore(element = ^ModelStore(),connection=^ModelConnection( instances= newMap( pair(_S_Person, list([ ^_S_Person(fullName='Pierre Doe'), ^_S_Person(fullName='Pierre XE'), @@ -162,7 +164,7 @@ function <> meta::pure::mapping::modelToModel:: ) ) ) - ] + )] ), meta::pure::extension::defaultExtensions() ); @@ -184,7 +186,7 @@ function <> meta::pure::mapping::modelToModel:: let theMapping = meta::pure::mapping::modelToModel::test::createInstances::createInstancesModelMappingOneMany; let extensions = meta::pure::extension::defaultExtensions(); let domainElements = $theMapping->map(m|$m->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::mapping::transformMapping($extensions)); - let transform = $domainElements.classMappings->cast(@meta::protocols::pure::vX_X_X::metamodel::mapping::modelToModel::PureInstanceClassMapping).propertyMappings->map(m | $m.transform.body); + let transform = $domainElements.classMappings->cast(@meta::protocols::pure::vX_X_X::metamodel::mapping::modelToModel::PureInstanceClassMapping).propertyMappings->map(m | $m.transform.body); assertEmpty($transform->filter(t | $t->instanceOf(UnknownAppliedFunction))); assert($transform->map(t | $t->cast(@AppliedFunction).function)->contains('meta::pure::mapping::modelToModel::test::createInstances::getFullName'), 'meta::pure::mapping::modelToModel::test::createInstances::createInstancesModelMappingOneMany'); } @@ -234,8 +236,8 @@ Mapping meta::pure::mapping::modelToModel::test::simple::simpleModelMapping firstName : $src.fullName->substring(0, $src.fullName->indexOf(' ')), lastName : $src.fullName->substring($src.fullName->indexOf(' ')+1, $src.fullName->length()), type : $src._type, - alternateName : $src.alternateName->toOne() - + alternateName : $src.alternateName->toOne() + } NameWithLang : Pure { @@ -262,17 +264,17 @@ Mapping meta::pure::mapping::modelToModel::test::simple::simpleModelMappingWithS meta::pure::mapping::modelToModel::test::shared::dest::Firm : Pure { ~src meta::pure::mapping::modelToModel::test::shared::src::_S_Firm - + legalName : $src.name, employees[A] : $src.employees->filter(e | $e->instanceOf(_S_PersonA))->cast(@_S_PersonA) } - + Person[A] : Pure { - ~src _S_PersonA + ~src _S_PersonA firstName : $src.fullName->substring(0, $src.fullName->indexOf(' ')) + $src.aName, lastName : $src.fullName->substring($src.fullName->indexOf(' ') + 1, $src.fullName->length()) - + } ) @@ -286,11 +288,11 @@ Mapping meta::pure::mapping::modelToModel::test::simple::simpleModelMappingWithS meta::pure::mapping::modelToModel::test::shared::dest::Firm : Pure { ~src meta::pure::mapping::modelToModel::test::shared::src::_S_Firm - + legalName : $src.name, employees[A] : $src.employees->filter(e | $e->instanceOf(_S_PersonA))->cast(@_S_PersonA) } - + Person[A] : Pure { ~src _S_PersonA @@ -395,7 +397,7 @@ Mapping meta::pure::mapping::modelToModel::test::crossStore::crossStoreModelMapp ~src Firm name : $src.legalName } - + meta::pure::mapping::modelToModel::test::shared::src::_SimpleFirm_SimplePerson: XStore { simpleEmployees[firm_set, person_Set] : $this.name == $that.firmName, @@ -416,7 +418,7 @@ Mapping meta::pure::mapping::modelToModel::test::crossStore::crossStoreModelMapp ~src Firm name : $src.legalName } - + meta::pure::mapping::modelToModel::test::shared::src::_SimpleFirm_SimplePerson: XStore { simpleEmployees[firm_set, person_Set] : $this.name == $that.fullName, @@ -438,7 +440,7 @@ Mapping meta::pure::mapping::modelToModel::test::simple::mappingWithTypeName firstName : $src.fullName->substring(0, $src.fullName->indexOf(' ')), lastName : $src.fullName->substring($src.fullName->indexOf(' ')+1, $src.fullName->length()), type : $src->typeName(), - description : $src->typePath() + description : $src->typePath() } TradeExtended : Pure @@ -455,4 +457,4 @@ Mapping meta::pure::mapping::modelToModel::test::simple::mappingWithTypeName ~src ContractualTrade taxonomy: $src.product->typeName() + '[' + $src.product->typePath() + ']' } -) \ No newline at end of file +) diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/src/test/java/org/finos/legend/engine/pure/runtime/compiler/test/LegendCompileTest.java b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/src/test/java/org/finos/legend/engine/pure/runtime/compiler/test/LegendCompileTest.java index 2a1da1ec9d6..d47d1c2c2f0 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/src/test/java/org/finos/legend/engine/pure/runtime/compiler/test/LegendCompileTest.java +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/src/test/java/org/finos/legend/engine/pure/runtime/compiler/test/LegendCompileTest.java @@ -94,7 +94,7 @@ public void testAssociation() public void testMapping() { test("let x = meta::legend::compile('Class a::A{name:String[1];}\\n###Mapping\\nMapping a::M(a::A : Pure{~src a::A name : $src.name})')->filter(x | $x->instanceOf(meta::pure::mapping::Mapping))->cast(@meta::pure::mapping::Mapping);\n" + - "assertEquals('name', $x.classMappings->cast(@meta::pure::mapping::modelToModel::PureInstanceSetImplementation).propertyMappings.property.name);"); + "assertEquals('name', $x.classMappings->cast(@meta::external::store::model::PureInstanceSetImplementation).propertyMappings.property.name);"); } @Test diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/src/main/resources/core_external_execution/execution.pure b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/src/main/resources/core_external_execution/execution.pure index 1f066d624f6..91f0af7493c 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/src/main/resources/core_external_execution/execution.pure +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/src/main/resources/core_external_execution/execution.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::extension::*; diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/src/test/java/org/finos/legend/engine/pure/runtime/execution/LegendExecuteTest.java b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/src/test/java/org/finos/legend/engine/pure/runtime/execution/LegendExecuteTest.java index 7f8784618be..6563958e007 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/src/test/java/org/finos/legend/engine/pure/runtime/execution/LegendExecuteTest.java +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/src/test/java/org/finos/legend/engine/pure/runtime/execution/LegendExecuteTest.java @@ -267,11 +267,14 @@ private void test(String toExecute, String vars, String expectedPlanResult) lines.add("function test():Any[*]{"); lines.add(" let extensions = meta::pure::extension::defaultExtensions();"); lines.add(" let runtime = ^Runtime("); - lines.add(" connections = ["); - lines.add(" ^JsonModelConnection("); - lines.add(" element = ^ModelStore(),"); + lines.add(" connectionStores = ["); + lines.add(" ^ConnectionStore("); + lines.add(" element = ^ModelStore(),"); + lines.add(" connection="); + lines.add(" ^JsonModelConnection("); lines.add(" class = test::_S_Types,"); lines.add(" url = 'data:application/json,\\n{\"string\": \"string1\", \"float\": 123.123, \"int\": 123456, \"bool\": true, \"decimal\": \"789.123\", \"date\": \"2020-01-01\", \"dateTime\": \"2021-01-02T01:02:11.1223Z\"}\\n{\"string\": \"string2\", \"float\": 125.125, \"int\": 654321, \"bool\": false, \"decimal\": \"345.219\", \"date\": \"2019-01-01\", \"dateTime\": \"2023-01-02T05:02:11.1223Z\"}'"); + lines.add(" )"); lines.add(" )"); lines.add(" ]"); lines.add(" );"); diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/src/test/resources/testModels.txt b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/src/test/resources/testModels.txt index 2cbdbd0e6d1..c5e1c49d5af 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/src/test/resources/testModels.txt +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/src/test/resources/testModels.txt @@ -32,6 +32,8 @@ Mapping test::simpleModelMapping import meta::pure::graphFetch::execution::*; import meta::pure::mapping::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::executionPlan::*; @@ -87,4 +89,4 @@ Class test::Types seconds(asOf: DateTime[1]){ dateDiff($this.dateTime, $asOf, DurationUnit.SECONDS); }:Integer[1]; -} \ No newline at end of file +} diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/src/main/resources/core_analytics_lineage/fullAnalytics.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/src/main/resources/core_analytics_lineage/fullAnalytics.pure index 544811bb964..83513525b5f 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/src/main/resources/core_analytics_lineage/fullAnalytics.pure +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/src/main/resources/core_analytics_lineage/fullAnalytics.pure @@ -13,9 +13,11 @@ // limitations under the License. import meta::pure::executionPlan::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::lineage::scanRelations::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::lineage::scanProject::*; import meta::pure::lineage::scanColumns::*; import meta::pure::lineage::scanMapping::*; @@ -31,6 +33,7 @@ import meta::relational::mapping::*; import meta::relational::metamodel::*; import meta::analytics::lineage::graph::*; import meta::analytics::lineage::flow::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; Class meta::analytics::lineage::FunctionAnalytics @@ -129,7 +132,7 @@ Class meta::analytics::lineage::ReportColumnsWithState Class meta::analytics::lineage::ColumnLineage { name: String[1]; - columns: meta::analytics::lineage::Column[*]; + columns: meta::analytics::lineage::Column[*]; } Class meta::analytics::lineage::Column @@ -177,7 +180,7 @@ function meta::analytics::lineage::flowDatabase::toFlowDatabase(f:FunctionDefini function meta::analytics::lineage::flowDatabase::toFlowDatabase(f:FunctionDefinition[1], mappings:Mapping[*], propertyTree:PropertyPathTree[1], runtime:Runtime[0..1]):Flow[1] { let databaseConnection = if($runtime->isNotEmpty(), - | let connections = $runtime->toOne().connections->filter(c | $c->instanceOf(DatabaseConnection)); + | let connections = $runtime->toOne().connectionStores.connection->filter(c | $c->instanceOf(DatabaseConnection)); if($connections->size() == 1, | $connections->toOne()->cast(@DatabaseConnection), | []);, @@ -378,4 +381,4 @@ function meta::analytics::lineage::transformColumns(c: meta::analytics::lineage: ) ) ); -} \ No newline at end of file +} diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/src/main/resources/core_analytics_lineage/tests/scanExecutetTests.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/src/main/resources/core_analytics_lineage/tests/scanExecutetTests.pure index 8fc70a6b301..9ddcb853ace 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/src/main/resources/core_analytics_lineage/tests/scanExecutetTests.pure +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/src/main/resources/core_analytics_lineage/tests/scanExecutetTests.pure @@ -14,6 +14,7 @@ import meta::pure::lineage::scanExecutes::*; import meta::pure::lineage::scanMapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; @@ -49,6 +50,7 @@ Mapping meta::pure::lineage::scanExecutes::test::MyMapping // Test scanExecute together with scanProperties ###Pure +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::lineage::scanProperties::propertyTree::*; import meta::pure::lineage::scanProperties::*; @@ -57,8 +59,8 @@ import meta::pure::lineage::scanExecutes::*; function <> meta::pure::lineage::scanExecutes::test::testScanExecutes():Boolean[1] { let exec = meta::pure::lineage::scanExecutes::test::testFunction2__Any_1_->scanExecutes()->at(0); - let p = $exec.funcEntryPoint->scanProperties().result; - + let p = $exec.funcEntryPoint->scanProperties().result; + assertEquals('ClassA->b\n'+ 'ClassA->b, ClassB->c', $p->printPropertyNodeLists('')); let tree = $p->buildPropertyTree(); @@ -105,4 +107,4 @@ function meta::pure::lineage::scanExecutes::test::testFunction2():Any[1] Mapping meta::pure::lineage::scanExecutes::test::MappingForABC ( -) \ No newline at end of file +) diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/src/main/resources/core_analytics_lineage/tests/scanProjectTests.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/src/main/resources/core_analytics_lineage/tests/scanProjectTests.pure index 4298cc4be13..6b9eed7630e 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/src/main/resources/core_analytics_lineage/tests/scanProjectTests.pure +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/src/main/resources/core_analytics_lineage/tests/scanProjectTests.pure @@ -15,6 +15,7 @@ import meta::pure::lineage::scanExecutes::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::pure::lineage::scanProject::test::executeWithProject():Any[1] { @@ -33,7 +34,7 @@ function <> meta::pure::lineage::scanProject::test::executeWithP col(f|$f.legalName,'a'), col(f|$f.employees->map(e|$e.lastName),'b'), col(f|$f.employees->map(e|2 + $e.locations.place->count()),'c') - ] + ] ), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); } @@ -49,7 +50,7 @@ function <> meta::pure::lineage::scanProject::test::executeWithP col(f|$f.legalName,'a'), col(f|$f.employees->map(e|$e.lastName),'b'), col(f|$f.employees->map(e|2 + $e.locations.place->count()),'c') - ] + ] )} ); execute($holder.lambda, simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); @@ -61,7 +62,7 @@ function <> meta::pure::lineage::scanProject::test::executeWithP ^BasicColumnSpecification(name='a', func={f:Firm[1]|$f.legalName}), ^BasicColumnSpecification(name='b', func={f:Firm[1]|$f.employees->map(e|$e.lastName)}), ^BasicColumnSpecification(name='c', func={f:Firm[1]|$f.employees->map(e|2+$e.locations.place->count())}) - ] + ] ), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); } diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/analytics.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/analytics.pure index 5f7a2673d97..56b57e272d1 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/analytics.pure +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/analytics.pure @@ -20,6 +20,7 @@ import meta::analytics::mapping::modelCoverage::utility::*; import meta::analytics::class::modelCoverage::*; import meta::analytics::class::modelCoverage::utility::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::milestoning::*; @@ -47,7 +48,7 @@ Enum meta::analytics::mapping::modelCoverage::MappedPropertyType Unknown } -Class meta::analytics::mapping::modelCoverage::MappedEntityInfo +Class meta::analytics::mapping::modelCoverage::MappedEntityInfo { isRootEntity : Boolean[0..1]; classPath: String[1]; @@ -61,7 +62,7 @@ Class meta::analytics::mapping::modelCoverage::MappedEntity info: MappedEntityInfo[0..1]; } -Class meta::analytics::mapping::modelCoverage::MappedPropertyInfo +Class meta::analytics::mapping::modelCoverage::MappedPropertyInfo { type : MappedPropertyType[1]; multiplicity: Multiplicity[1]; diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/mappedEntityBuilder.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/mappedEntityBuilder.pure index 6531d0f599d..4272359f4aa 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/mappedEntityBuilder.pure +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/mappedEntityBuilder.pure @@ -16,6 +16,7 @@ import meta::relational::mapping::*; import meta::analytics::mapping::modelCoverage::*; import meta::pure::mapping::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::analytics::mapping::modelCoverage::utility::*; Class meta::analytics::mapping::modelCoverage::AnalysisConfiguration @@ -256,7 +257,7 @@ function meta::analytics::mapping::modelCoverage::buildEntity( !$pm.localMappingProperty->isTrue() && !$pm.property->meta::pure::milestoning::isRangeMilestoningProperty() && ($pm.property->isPrimitiveValueProperty() - || $pm->match([semi: meta::relational::mapping::SemiStructuredRelationalPropertyMapping[1] | false, rpm:InstanceSetImplementation[1] | true, a: PropertyMapping[1] | false]) + || $pm->match([semi: meta::relational::mapping::SemiStructuredRelationalPropertyMapping[1] | false, rpm:InstanceSetImplementation[1] | true, a: PropertyMapping[1] | false]) // handle SemiStructuredRelationalPropertyMapping manually to take care of automapped properties || $pm.targetSetImplementationId->in($rootClassMappings.id)) ); @@ -289,7 +290,7 @@ function meta::analytics::mapping::modelCoverage::buildEntity( ); //TODO check how types work with qp's.we n eed to filter on whether the type is root supported currently ); - // handle auto mapped properties + // handle auto mapped properties let autoMappedPropertyMappings = $propertyMappings->removeAll($supportedPropertyMappings) ->filter(pm| $pm.owner->isNotEmpty() && $pm.owner->toOne()->instanceOf(InstanceSetImplementation) && meta::pure::router::store::routing::isPropertyAutoMapped($pm.owner->toOne()->cast(@InstanceSetImplementation), $pm.property, meta::relational::extension::relationalExtensions())); @@ -322,24 +323,24 @@ function meta::analytics::mapping::modelCoverage::processAutoMappedPropertyMappi ): AutoMappedHelperClass[1] { if($property->isPrimitiveValueProperty(), - |let mappedProp = ^MappedProperty(name = $property.name->toOne(), - info = if($config.returnMappedPropertyInfo == true, - | ^MappedPropertyInfo(type = $property.genericType.rawType->toOne()->mapType(), multiplicity = $property.multiplicity->toOne()), - | [])); + |let mappedProp = ^MappedProperty(name = $property.name->toOne(), + info = if($config.returnMappedPropertyInfo == true, + | ^MappedPropertyInfo(type = $property.genericType.rawType->toOne()->mapType(), multiplicity = $property.multiplicity->toOne()), + | [])); ^AutoMappedHelperClass(mappedProperties = [$mappedProp], mappedEntities=[]);, - | + | if($visited->map(p|$p.first->elementToPath())->contains($property.genericType.rawType->toOne()->elementToPath()), |let entityMappedProp = ^EntityMappedProperty(entityPath=$visited->filter(p|$p.first->elementToPath()==$property.genericType.rawType->toOne()->elementToPath())->at(0).second, name=$property.name->toOne(), - info = if($config.returnMappedPropertyInfo == true, + info = if($config.returnMappedPropertyInfo == true, | ^MappedPropertyInfo(type = $property.genericType.rawType->toOne()->mapType(), multiplicity = $property.multiplicity->toOne()), | [])); - + ^AutoMappedHelperClass(mappedProperties = [$entityMappedProp], mappedEntities=[]);, |let entityPath = $prefix + $property.name->toOne(); let entityMappedProp = ^EntityMappedProperty(entityPath=$entityPath,name=$property.name->toOne(), - info = if($config.returnMappedPropertyInfo == true, + info = if($config.returnMappedPropertyInfo == true, | ^MappedPropertyInfo(type = $property.genericType.rawType->toOne()->mapType(), multiplicity = $property.multiplicity->toOne()), | [])); let newVisited = $visited->concatenate([^Pair, String>(first = $property.genericType.rawType->toOne()->cast(@Class), second = $entityPath)]); diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/src/main/resources/core_analytics_search/trans.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/src/main/resources/core_analytics_search/trans.pure index ddd0a003f4d..43a9f48ac7d 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/src/main/resources/core_analytics_search/trans.pure +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/src/main/resources/core_analytics_search/trans.pure @@ -232,7 +232,7 @@ function meta::analytics::search::transformation::getExtensions(): meta::pure::e meta::pure::extension::defaultExtensions()->concatenate(meta::relational::extension::relationalExtensions()); } -function meta::analytics::search::transformation::service::buildDatabaseColumnDocuments(funcDefinition: FunctionDefinition[1], mapping: meta::pure::mapping::Mapping[1], runtime: meta::pure::runtime::Runtime[1]): meta::analytics::search::metamodel::mapping::DatabaseColumn[*] +function meta::analytics::search::transformation::service::buildDatabaseColumnDocuments(funcDefinition: FunctionDefinition[1], mapping: meta::pure::mapping::Mapping[1], runtime: meta::core::runtime::Runtime[1]): meta::analytics::search::metamodel::mapping::DatabaseColumn[*] { let lineage = $funcDefinition->meta::analytics::lineage::computeLineage($mapping, $runtime, meta::analytics::search::transformation::getExtensions()); @@ -332,4 +332,4 @@ function meta::analytics::search::transformation::getName(element: PackageableEl function meta::analytics::search::transformation::getPackage(element: PackageableElement[1]): String[1] { $element.package->toOne()->elementToPath() -} \ No newline at end of file +} diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/src/main/resources/core_analytics_search/transTest.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/src/main/resources/core_analytics_search/transTest.pure index e4baa93e159..b6b2ff51bc8 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/src/main/resources/core_analytics_search/transTest.pure +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/src/main/resources/core_analytics_search/transTest.pure @@ -139,9 +139,8 @@ function meta::analytics::search::transformation::test::getTestDataSpaceWithoutD mapping = meta::analytics::search::transformation::test::sampleRelationalMapping, defaultRuntime = ^meta::pure::runtime::PackageableRuntime( name = 'meta::analytics::search::transformation::test::TestRuntime', - runtimeValue = ^meta::pure::runtime::EngineRuntime( - mappings = [meta::analytics::search::transformation::test::sampleRelationalMapping], - connections = [] + runtimeValue = ^meta::core::runtime::EngineRuntime( + mappings = [meta::analytics::search::transformation::test::sampleRelationalMapping] ) ) ); @@ -409,7 +408,7 @@ Mapping meta::analytics::search::transformation::test::sampleRelationalMapping ~mainTable [meta::analytics::search::transformation::test::sampleDB]PersonTable firstName: [meta::analytics::search::transformation::test::sampleDB]PersonTable.firstName, lastName: [meta::analytics::search::transformation::test::sampleDB]PersonTable.lastName - } + } *meta::analytics::search::transformation::test::LegalEntity: Operation { meta::pure::router::operations::inheritance_OperationSetImplementation_1__SetImplementation_MANY_() diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/src/main/java/org/finos/legend/engine/api/analytics/StoreEntitlementAnalytics.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/src/main/java/org/finos/legend/engine/api/analytics/StoreEntitlementAnalytics.java index d2a0583de22..3a171c09531 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/src/main/java/org/finos/legend/engine/api/analytics/StoreEntitlementAnalytics.java +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/src/main/java/org/finos/legend/engine/api/analytics/StoreEntitlementAnalytics.java @@ -37,7 +37,7 @@ import org.finos.legend.engine.shared.core.kerberos.ProfileManagerHelper; import org.finos.legend.engine.shared.core.operational.errorManagement.ExceptionTool; import org.finos.legend.engine.shared.core.operational.logs.LoggingEventType; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Runtime; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Runtime; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.Mapping; import org.pac4j.core.profile.CommonProfile; import org.pac4j.core.profile.ProfileManager; @@ -77,7 +77,7 @@ public Response generateDatasetSpecifications(StoreEntitlementAnalyticsInput inp MutableList profiles = ProfileManagerHelper.extractProfiles(pm); PureModel pureModel = modelManager.loadModel(input.model, input.clientVersion == null ? PureClientVersions.production : input.clientVersion, profiles, null); Mapping mapping = pureModel.getMapping(input.mappingPath); - Root_meta_pure_runtime_Runtime runtime = pureModel.getRuntime(input.runtimePath); + Root_meta_core_runtime_Runtime runtime = pureModel.getRuntime(input.runtimePath); try (Scope scope = GlobalTracer.get().buildSpan("generate dataset specifications").startActive(true)) { List datasets = LazyIterate.flatCollect(this.entitlementServiceExtensions, extension -> extension.generateDatasetSpecifications(input.query, input.runtimePath, runtime, input.mappingPath, mapping, input.model, pureModel)).toList(); @@ -100,7 +100,7 @@ public Response generateEntitlementReports(EntitlementReportAnalyticsInput input StoreEntitlementAnalyticsInput storeEntitlementAnalyticsInput = input.getStoreEntitlementAnalyticsInput(); PureModel pureModel = modelManager.loadModel(storeEntitlementAnalyticsInput.model, storeEntitlementAnalyticsInput.clientVersion == null ? PureClientVersions.production : storeEntitlementAnalyticsInput.clientVersion, profiles, null); Mapping mapping = pureModel.getMapping(storeEntitlementAnalyticsInput.mappingPath); - Root_meta_pure_runtime_Runtime runtime = pureModel.getRuntime(storeEntitlementAnalyticsInput.runtimePath); + Root_meta_core_runtime_Runtime runtime = pureModel.getRuntime(storeEntitlementAnalyticsInput.runtimePath); try (Scope scope = GlobalTracer.get().buildSpan("check entitlements").startActive(true)) { List reports = LazyIterate.flatCollect(this.entitlementServiceExtensions, extension -> extension.generateDatasetEntitlementReports(input.getReports(), storeEntitlementAnalyticsInput.query, storeEntitlementAnalyticsInput.runtimePath, runtime, storeEntitlementAnalyticsInput.mappingPath, mapping, storeEntitlementAnalyticsInput.model, pureModel, profiles)).toList(); @@ -111,4 +111,4 @@ public Response generateEntitlementReports(EntitlementReportAnalyticsInput input return ExceptionTool.exceptionManager(e, LoggingEventType.ANALYTICS_ERROR, Response.Status.BAD_REQUEST, profiles); } } -} \ No newline at end of file +} diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/src/main/java/org/finos/legend/engine/entitlement/services/EntitlementServiceExtension.java b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/src/main/java/org/finos/legend/engine/entitlement/services/EntitlementServiceExtension.java index 703363760e6..dd8d8e82300 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/src/main/java/org/finos/legend/engine/entitlement/services/EntitlementServiceExtension.java +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/src/main/java/org/finos/legend/engine/entitlement/services/EntitlementServiceExtension.java @@ -22,7 +22,7 @@ import org.finos.legend.engine.protocol.pure.v1.extension.ProtocolSubTypeInfo; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContext; import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.raw.Lambda; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Runtime; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Runtime; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.Mapping; import org.pac4j.core.profile.CommonProfile; @@ -31,12 +31,12 @@ public interface EntitlementServiceExtension { - default List generateDatasetSpecifications(Lambda query, String runtimePath, Root_meta_pure_runtime_Runtime runtime, String mappingPath, Mapping mapping, PureModelContext model, PureModel pureModel) + default List generateDatasetSpecifications(Lambda query, String runtimePath, Root_meta_core_runtime_Runtime runtime, String mappingPath, Mapping mapping, PureModelContext model, PureModel pureModel) { return Collections.emptyList(); } - default List generateDatasetEntitlementReports(List datasets, Lambda query, String runtimePath, Root_meta_pure_runtime_Runtime runtime, String mappingPath, Mapping mapping, PureModelContext model, PureModel pureModel, MutableList profiles) + default List generateDatasetEntitlementReports(List datasets, Lambda query, String runtimePath, Root_meta_core_runtime_Runtime runtime, String mappingPath, Mapping mapping, PureModelContext model, PureModel pureModel, MutableList profiles) { return Collections.emptyList(); } @@ -45,4 +45,4 @@ default List>>> getExtraProtocolSubTypeInf { return Collections.emptyList(); } -} \ No newline at end of file +} diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/src/test/java/TestArrowQueries.java b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/src/test/java/TestArrowQueries.java index 0b5af0ad195..2f0dfbb49c7 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/src/test/java/TestArrowQueries.java +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/src/test/java/TestArrowQueries.java @@ -42,7 +42,7 @@ import org.finos.legend.engine.shared.core.api.model.ExecuteInput; import org.finos.legend.engine.shared.core.deployment.DeploymentMode; import org.finos.legend.pure.generated.Root_meta_pure_extension_Extension; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Runtime; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Runtime; import org.finos.legend.pure.generated.core_pure_binding_extension; import org.finos.legend.pure.generated.core_relational_relational_extensions_extension; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.LambdaFunction; @@ -66,7 +66,7 @@ public void runTest() ExecuteInput input = objectMapper.readValue(getClass().getClassLoader().getResource("arrowService.json"), ExecuteInput.class); PureModel model = org.finos.legend.engine.language.pure.compiler.Compiler.compile((PureModelContextData) input.model, DeploymentMode.TEST, null); - Root_meta_pure_runtime_Runtime runtime = HelperRuntimeBuilder.buildPureRuntime(input.runtime, model.getContext()); + Root_meta_core_runtime_Runtime runtime = HelperRuntimeBuilder.buildPureRuntime(input.runtime, model.getContext()); LambdaFunction lambda = HelperValueSpecificationBuilder.buildLambda(input.function.body, input.function.parameters, model.getContext()); MutableList extensions = Lists.mutable.with(core_pure_binding_extension.Root_meta_external_format_shared_externalFormatExtension__Extension_1_(model.getExecutionSupport())); diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/authentication/compiler/toPureGraph/AuthenticationCompilerExtension.java b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/authentication/compiler/toPureGraph/AuthenticationCompilerExtension.java index e785b3c9fa7..208253663d0 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/authentication/compiler/toPureGraph/AuthenticationCompilerExtension.java +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/authentication/compiler/toPureGraph/AuthenticationCompilerExtension.java @@ -74,4 +74,4 @@ private static Root_meta_pure_runtime_connection_authentication_CredentialVaultS } -} \ No newline at end of file +} diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/resources/core_authentication.protocol.json b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/resources/core_authentication.protocol.json index 995ff280175..4087536379e 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/resources/core_authentication.protocol.json +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/src/main/resources/core_authentication.protocol.json @@ -3,4 +3,4 @@ "javaPackage": "org.finos.legend.engine.protocol.pure.v1.model.packageableElement.authentication.specification", "elementsToBeExcluded": [ ] -} \ No newline at end of file +} diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication.definition.json b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication.definition.json index 54970f2d8d5..20331ada188 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication.definition.json +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/src/main/resources/core_authentication.definition.json @@ -6,4 +6,4 @@ "platform_functions", "core" ] -} \ No newline at end of file +} diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/src/main/java/org/finos/legend/engine/generation/analytics/DataSpaceAnalyticsHelper.java b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/src/main/java/org/finos/legend/engine/generation/analytics/DataSpaceAnalyticsHelper.java index 186fcf8719b..22b5fe7c61d 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/src/main/java/org/finos/legend/engine/generation/analytics/DataSpaceAnalyticsHelper.java +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/src/main/java/org/finos/legend/engine/generation/analytics/DataSpaceAnalyticsHelper.java @@ -86,7 +86,7 @@ import org.finos.legend.pure.generated.Root_meta_pure_metamodel_dataSpace_analytics_DataSpaceExecutionContextAnalysisResult; import org.finos.legend.pure.generated.Root_meta_pure_metamodel_dataSpace_analytics_DataSpacePropertyDocumentationEntry; import org.finos.legend.pure.generated.Root_meta_pure_metamodel_diagram_analytics_modelCoverage_DiagramModelCoverageAnalysisResult; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Runtime; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Runtime; import org.finos.legend.pure.generated.core_analytics_binding_modelCoverage_analytics; import org.finos.legend.pure.generated.core_analytics_function_modelCoverage_analytics; import org.finos.legend.pure.generated.core_analytics_mapping_modelCoverage_serializer; @@ -439,7 +439,7 @@ else if (elementDoc instanceof Root_meta_pure_metamodel_dataSpace_analytics_Data } Service serviceProtocol = (Service) _el; Mapping mapping = null; - Root_meta_pure_runtime_Runtime runtime = null; + Root_meta_core_runtime_Runtime runtime = null; LambdaFunction lambdaFunc = null; if (service._execution() instanceof Root_meta_legend_service_metamodel_PureSingleExecution) { diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/src/main/resources/core_data_space/analytics/analytics.pure b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/src/main/resources/core_data_space/analytics/analytics.pure index b51e37d9a22..4639fdd86c3 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/src/main/resources/core_data_space/analytics/analytics.pure +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/src/main/resources/core_data_space/analytics/analytics.pure @@ -15,6 +15,7 @@ import meta::pure::milestoning::*; import meta::pure::metamodel::dataSpace::*; import meta::pure::metamodel::dataSpace::analytics::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::pure::functions::doc::*; diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/src/main/java/org/finos/legend/engine/language/stores/elasticsearch/v7/compiler/ElasticsearchCompilerExtension.java b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/src/main/java/org/finos/legend/engine/language/stores/elasticsearch/v7/compiler/ElasticsearchCompilerExtension.java index 48c4445bb22..d16e3f4712d 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/src/main/java/org/finos/legend/engine/language/stores/elasticsearch/v7/compiler/ElasticsearchCompilerExtension.java +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/src/main/java/org/finos/legend/engine/language/stores/elasticsearch/v7/compiler/ElasticsearchCompilerExtension.java @@ -34,7 +34,7 @@ import org.finos.legend.engine.protocol.store.elasticsearch.v7.metamodel.executionPlan.context.Elasticsearch7ExecutionContext; import org.finos.legend.engine.protocol.store.elasticsearch.v7.metamodel.runtime.Elasticsearch7StoreConnection; import org.finos.legend.engine.protocol.store.elasticsearch.v7.metamodel.store.Elasticsearch7Store; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Connection; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Connection; import org.finos.legend.pure.generated.Root_meta_pure_runtime_ExecutionContext; public class ElasticsearchCompilerExtension implements CompilerExtension @@ -52,7 +52,7 @@ public Iterable> getExtraProcessors() } @Override - public List> getExtraConnectionValueProcessors() + public List> getExtraConnectionValueProcessors() { return Lists.fixedSize.with( (connectionValue, context) -> diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/src/main/java/org/finos/legend/engine/language/stores/elasticsearch/v7/compiler/HelperElasticsearchBuilder.java b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/src/main/java/org/finos/legend/engine/language/stores/elasticsearch/v7/compiler/HelperElasticsearchBuilder.java index 39248b0f2ff..b0f024608c5 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/src/main/java/org/finos/legend/engine/language/stores/elasticsearch/v7/compiler/HelperElasticsearchBuilder.java +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/src/main/java/org/finos/legend/engine/language/stores/elasticsearch/v7/compiler/HelperElasticsearchBuilder.java @@ -92,8 +92,7 @@ public static Root_meta_external_store_elasticsearch_v7_metamodel_runtime_Elasti Root_meta_external_store_elasticsearch_v7_metamodel_runtime_Elasticsearch7StoreConnection conn = new Root_meta_external_store_elasticsearch_v7_metamodel_runtime_Elasticsearch7StoreConnection_Impl("", sourceInformation, context.pureModel.getClass("meta::external::store::elasticsearch::v7::metamodel::runtime::Elasticsearch7StoreConnection")) ._authSpec(authSpec) - ._sourceSpec(sourceSpec) - ._element(context.pureModel.getStore(srcConn.element, srcConn.elementSourceInformation)); + ._sourceSpec(sourceSpec); return conn._validate(true, sourceInformation, context.getExecutionSupport()); } diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/executionPlan/executionPlan_generation.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/executionPlan/executionPlan_generation.pure index f9d1b391a4c..06bd9dfb7fc 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/executionPlan/executionPlan_generation.pure +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/executionPlan/executionPlan_generation.pure @@ -19,6 +19,7 @@ import meta::external::store::elasticsearch::v7::metamodel::runtime::*; import meta::external::store::elasticsearch::v7::metamodel::executionPlan::*; import meta::external::store::elasticsearch::v7::metamodel::executionPlan::tds::*; import meta::pure::extension::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::pure::executionPlan::*; @@ -33,7 +34,7 @@ function meta::external::store::elasticsearch::v7::executionPlan::generation::pl let tdsDetailsIndexed = $processOutput.tdsESDetails->toIndexed()->toOneMany('TDS operations should have at least one output column'); - let esNode = ^Elasticsearch7RequestExecutionNode( + let esNode = ^Elasticsearch7RequestExecutionNode( resultSizeRange = ZeroMany, request = $request, connection = $runtime->toOne('missing required runtime for ES plan execution').connectionByElement($sq.store)->cast(@Elasticsearch7StoreConnection), @@ -42,7 +43,7 @@ function meta::external::store::elasticsearch::v7::executionPlan::generation::pl ); if ($processOutput.extraNodes->isEmpty(), - |$esNode, + |$esNode, |^SequenceExecutionNode(resultType = $esNode.resultType, executionNodes = $processOutput.extraNodes->removeDuplicates({x, y | $x.varName == $y.varName})->concatenate($esNode)) ); -} \ No newline at end of file +} diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/extensions/store_contract.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/extensions/store_contract.pure index 5f2da2e7f64..07301b6596d 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/extensions/store_contract.pure +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/extensions/store_contract.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::extension::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::pure::store::*; @@ -40,7 +41,7 @@ function meta::external::store::elasticsearch::v7::extension::elasticsearchV7Ext [ pair(meta::external::store::elasticsearch::v7::tds::indexToTDS_Elasticsearch7Store_1__String_1__TabularDataSet_1_->cast(@Function), {| meta::pure::tds::schema::createSchemaState($fe->reactivate()->cast(@TabularDataSet).columns); - }) + }) ] } ) @@ -91,7 +92,7 @@ function meta::external::store::elasticsearch::v7::contract::elasticsearchV7Stor // Execution Node - Print printPlanNodeToString = printPlanNodeToString_String_1__Extension_MANY__Function_MANY_, - printConnectionToString = ext: Extension[*] | + printConnectionToString = ext: Extension[*] | [ es: Elasticsearch7StoreConnection[1] | '%s, %s'->format([$es.sourceSpec->type().name->toOne(), $es.authSpec->type().name->toOne()]) ], @@ -128,7 +129,7 @@ function meta::external::store::elasticsearch::v7::contract::routeFunctionExpres function meta::external::store::elasticsearch::v7::contract::supports(): Function<{FunctionExpression[1]->Boolean[1]}>[1] { - let supportedFunctions = meta::external::store::elasticsearch::v7::pureToEs::supportedRoutingFunctions().first; + let supportedFunctions = meta::external::store::elasticsearch::v7::pureToEs::supportedRoutingFunctions().first; {f:FunctionExpression[1]| $supportedFunctions->exists(x | $x->eval($f.func, []))}; } @@ -147,4 +148,4 @@ function meta::external::store::elasticsearch::v7::contract::shouldStopPreeval() function meta::external::store::elasticsearch::v7::contract::elasticsearchV7StoreSerializerExtension(version:String[1]):String[1] { 'meta::external::store::elasticsearch::v7::protocol::%s::elasticsearchV7StoreExtension_String_1__SerializerExtension_1_'->format($version); -} \ No newline at end of file +} diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/functions/pure_to_elasticsearch.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/functions/pure_to_elasticsearch.pure index f5d185d6b19..6c9344f042b 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/functions/pure_to_elasticsearch.pure +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/functions/pure_to_elasticsearch.pure @@ -20,6 +20,7 @@ import meta::pure::router::utils::*; import meta::external::store::elasticsearch::v7::metamodel::property::*; import meta::pure::router::metamodel::*; import meta::pure::extension::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::pure::metamodel::serialization::grammar::*; @@ -73,7 +74,7 @@ Class meta::external::store::elasticsearch::v7::pureToEs::State } Class meta::external::store::elasticsearch::v7::pureToEs::TDSESDetail -{ +{ <> name: String[1]; type: DataType[1]; resultPath: ResultPath[1]; @@ -84,13 +85,13 @@ Class meta::external::store::elasticsearch::v7::pureToEs::TDSESDetail format: String[0..1]; } -function meta::external::store::elasticsearch::v7::pureToEs::processSelectAllTds(vs : FunctionExpression[1], req: State[1]): State[1] +function meta::external::store::elasticsearch::v7::pureToEs::processSelectAllTds(vs : FunctionExpression[1], req: State[1]): State[1] { $req.debug(|'Processing ->indexToTds'); let store = $vs.parametersValues->at(0)->cast(@InstanceValue).values->toOne()->cast(@Elasticsearch7Store); let indexName = $vs.parametersValues->at(1)->cast(@InstanceValue).values->toOne()->cast(@String); - - let index = $store.index($indexName)->toOne('No index found on store: ' + $indexName); + + let index = $store.index($indexName)->toOne('No index found on store: ' + $indexName); let primitiveProperties = $index.properties->collectPrimitiveTypeProperties(); @@ -101,15 +102,15 @@ function meta::external::store::elasticsearch::v7::pureToEs::processSelectAllTds ->concatenate(^_IDResultPath(property = ^KeywordProperty(), fieldPath = '_id')); let tdsDetails = $resultPaths->map(x | let type = $x.property->propertySupport().pureType->cast(@DataType); ^TDSESDetail(type = $type, name = $x.path(), resultPath = $x, format = if($type == Date, |'date_optional_time', |[]));); - + ^$req( - lazyIndex = $index, + lazyIndex = $index, search = resultPathToQuery($tdsDetails, $req.search), tdsESDetails = $tdsDetails ); } -function meta::external::store::elasticsearch::v7::pureToEs::getResultPath(property: PropertyBase[1], path: String[*]): ResultPath[1] +function meta::external::store::elasticsearch::v7::pureToEs::getResultPath(property: PropertyBase[1], path: String[*]): ResultPath[1] { if($property->propertySupport().pureType == Date, |^DocValueResultPath(property = $property, fieldPath = $path->toOneMany()), @@ -117,7 +118,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::getResultPath(prope ); } -function meta::external::store::elasticsearch::v7::pureToEs::resultPathToQuery(tdsDetails: TDSESDetail[*], search: SearchRequestBody[1]): SearchRequestBody[1] +function meta::external::store::elasticsearch::v7::pureToEs::resultPathToQuery(tdsDetails: TDSESDetail[*], search: SearchRequestBody[1]): SearchRequestBody[1] { let frps = $tdsDetails.resultPath->filter(x | $x->instanceOf(FieldResultPath))->cast(@FieldResultPath); let srps = $tdsDetails.resultPath->concatenate($frps.readFrom)->filter(x | $x->instanceOf(SourceFieldResultPath))->cast(@SourceFieldResultPath); @@ -134,19 +135,19 @@ function meta::external::store::elasticsearch::v7::pureToEs::resultPathToFieldAn ^FieldAndFormat(field = $resultPath.path()->literal(), format = $format->literal()); } -function meta::external::store::elasticsearch::v7::pureToEs::processExtend(vs : FunctionExpression[1], initReq: State[1]): State[1] +function meta::external::store::elasticsearch::v7::pureToEs::processExtend(vs : FunctionExpression[1], initReq: State[1]): State[1] { $initReq.debug(|'Processing ->extend'); processProject($vs, $initReq, true); } -function meta::external::store::elasticsearch::v7::pureToEs::processProject(vs : FunctionExpression[1], initReq: State[1]): State[1] +function meta::external::store::elasticsearch::v7::pureToEs::processProject(vs : FunctionExpression[1], initReq: State[1]): State[1] { $initReq.debug(|'Processing ->project'); processProject($vs, $initReq, false); } -function meta::external::store::elasticsearch::v7::pureToEs::processProject(vs : FunctionExpression[1], initReq: State[1], extend: Boolean[1]): State[1] +function meta::external::store::elasticsearch::v7::pureToEs::processProject(vs : FunctionExpression[1], initReq: State[1], extend: Boolean[1]): State[1] { let currReq = process($vs.parametersValues->at(0), $initReq); assert(!$currReq.inFilter); @@ -154,7 +155,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processProject(vs : let cols = $vs->instanceValuesAtParameter(1, $currReq.sq.inScopeVars); let fieldsStatePair = $cols->match([ tdsCols: BasicColumnSpecification[*] | $tdsCols->fold( - {col: BasicColumnSpecification[1], pair: Pair, State>[1] | + {col: BasicColumnSpecification[1], pair: Pair, State>[1] | let details = $col->processProjectColumn($pair.second); pair(list($pair.first.values->concatenate($details.first)), $details.second); }, pair(list([]->cast(@TDSESDetail)), ^$currReq(inProject = true))) @@ -169,14 +170,14 @@ function meta::external::store::elasticsearch::v7::pureToEs::processProject(vs : ); } -function meta::external::store::elasticsearch::v7::pureToEs::processProjectColumn(vs : BasicColumnSpecification[1], initReq: State[1]): Pair[1] +function meta::external::store::elasticsearch::v7::pureToEs::processProjectColumn(vs : BasicColumnSpecification[1], initReq: State[1]): Pair[1] { let expr = $vs.func->cast(@FunctionDefinition).expressionSequence->toOne('tds column projection only supports simple expressions'); let name = $vs.name; let type = $vs.func->functionReturnType().rawType->toOne()->cast(@DataType)->map(x | $x->_subTypeOf(Enum)->if(|String, |$x)); $initReq.debug(|'Processing project - %s = %s'->format([$vs.name, $expr->printValueSpecification('')])); - + $expr->extractSimpleValue($initReq).first.values->match([ tdsDetail: TDSESDetail[1] | pair(^$tdsDetail(name = $name, type = $type), $initReq), {fe: FunctionExpression[1] | @@ -188,7 +189,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processProjectColum ]); } -function meta::external::store::elasticsearch::v7::pureToEs::processLimit(vs : FunctionExpression[1], initReq: State[1]): State[1] +function meta::external::store::elasticsearch::v7::pureToEs::processLimit(vs : FunctionExpression[1], initReq: State[1]): State[1] { $initReq.debug(|'Processing ->limit'); let currReq = process($vs.parametersValues->at(0), $initReq); @@ -220,14 +221,14 @@ function meta::external::store::elasticsearch::v7::pureToEs::computeSize(currSiz v: PlanVarPlaceHolder[1] | ^LiteralOrExpression(expression = '${10000 - %s}'->format($v.name)) ]); , - | + | $currSize->toOne()->taggedUnionValue()->match([ size: Integer[1] | $from->match([ i: Integer[1] | literal($size - $i), v: PlanVarPlaceHolder[1] | ^LiteralOrExpression(expression = '${%d - %s}'->format([$size, $v.name])) ]), - exp: String[1] | + exp: String[1] | let rawExp = $exp->substring(2, $exp->length() - 1); $from->match([ i: Integer[1] | ^LiteralOrExpression(expression = '${%s - %d}'->format([$rawExp, $i])), @@ -237,7 +238,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::computeSize(currSiz ); } -function meta::external::store::elasticsearch::v7::pureToEs::processSlice(vs : FunctionExpression[1], initReq: State[1]): State[1] +function meta::external::store::elasticsearch::v7::pureToEs::processSlice(vs : FunctionExpression[1], initReq: State[1]): State[1] { $initReq.debug(|'Processing ->slice'); let currReq = process($vs.parametersValues->at(0), $initReq); @@ -275,12 +276,12 @@ function meta::external::store::elasticsearch::v7::pureToEs::processGroupBy(vs: let aggPairs = $aggregateValues->map({x | let rawToAggregate = processProjectColumn(^BasicColumnSpecification(func = $x.mapFn, name = $x.name), $groupedReq).first; let aggFunc = $x.aggregateFn->deepByPassRouterInfo()->cast(@FunctionDefinition).expressionSequence->toOne('tds aggregation only supports simple expressions: max, min, sum, etc.'); - + let container = if ($aggFunc->instanceOf(FunctionExpression), | $groupedReq.supportedAggregationFunctions->findAndEvalSupportedFunction($aggFunc->cast(@FunctionExpression), $rawToAggregate.path(), $groupedReq) , - | + | fail('Unsupported aggregation functions: ' + $aggFunc->printValueSpecification('')); ^AggregationContainer(); ); @@ -292,9 +293,9 @@ function meta::external::store::elasticsearch::v7::pureToEs::processGroupBy(vs: }); let aggregations = newMap($aggPairs->map(x | pair($x.first.name, $x.second))); - let aggregationsForSearch = if ($groupByCols->isEmpty(), + let aggregationsForSearch = if ($groupByCols->isEmpty(), | - // no group by field - just run the aggregations + // no group by field - just run the aggregations $aggregations , | @@ -306,7 +307,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processGroupBy(vs: newMap(pair('groupByComposite', ^AggregationContainer(composite = $composite, aggregations = $aggregations))); ); - let groupByTdsESDetailsAsAgg = $groupByTdsESDetails->map({x | + let groupByTdsESDetailsAsAgg = $groupByTdsESDetails->map({x | let resultPath = ^AggregateResultPath(fieldPath = $x.name, property = $x.resultPath.property); let toAggregate = ^$x(resultPath = $resultPath); }); @@ -335,15 +336,15 @@ function meta::external::store::elasticsearch::v7::pureToEs::processFilter(vs : ^$withFilterReq(inFilter = false, debug = $debug); } -function meta::external::store::elasticsearch::v7::pureToEs::processFilterLambda(vs : ValueSpecification[1], req: State[1]): State[1] +function meta::external::store::elasticsearch::v7::pureToEs::processFilterLambda(vs : ValueSpecification[1], req: State[1]): State[1] { $req.debug(|'-- processing filter lambda ' + $vs->type()->toString() + ': ' + $vs->printValueSpecification('\n')); $vs->match([ - fr: FunctionRoutedValueSpecification[1] | $fr.value->processFilterLambda($req), - iv: InstanceValue[1] | + fr: FunctionRoutedValueSpecification[1] | $fr.value->processFilterLambda($req), + iv: InstanceValue[1] | $iv.values->match([ f: FunctionDefinition[1] | $f.expressionSequence->at(0)->processFilterLambda($req), - any: Any[1] | fail('not supported: ' + $iv.values->type()->toString())->cast(@State) + any: Any[1] | fail('not supported: ' + $iv.values->type()->toString())->cast(@State) ]), fe: FunctionExpression[1] | $req.supportedFilterFunctions->findAndEvalSupportedFunction($fe, $req, $req), any: Any[1] | fail('not supported: ' + $any->printValueSpecification(''))->cast(@State) @@ -354,14 +355,14 @@ function meta::external::store::elasticsearch::v7::pureToEs::processDefaultSort( { let toSortPair = $vs.parametersValues->at(1)->extractSimpleValue($initReq); let toSort = $toSortPair.first.values->cast(@String)->toOneMany(); - $vs->processSort($toSort->map( x | ^SortInformation(column = $x, direction = SortDirection.ASC)), $toSortPair.second); + $vs->processSort($toSort->map( x | ^SortInformation(column = $x, direction = SortDirection.ASC)), $toSortPair.second); } function meta::external::store::elasticsearch::v7::pureToEs::processSortWithInformation(vs : FunctionExpression[1], initReq: State[1]): State[1] { let toSortPair = $vs.parametersValues->at(1)->extractSimpleValue($initReq); let toSort = $toSortPair.first.values->cast(@SortInformation)->toOneMany(); - $vs->processSort($toSort, $toSortPair.second); + $vs->processSort($toSort, $toSortPair.second); } function meta::external::store::elasticsearch::v7::pureToEs::processSortWithDirection(vs : FunctionExpression[1], initReq: State[1]): State[1] @@ -394,7 +395,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processSort(vs : Fu let newSearch = if($currReq.aggregationQuery, | let maybeGroupByContainer = $search.aggregations->toOne()->get('groupByComposite'); - + if ($maybeGroupByContainer->isNotEmpty(), | let container = $maybeGroupByContainer->toOne(); @@ -422,12 +423,12 @@ function meta::external::store::elasticsearch::v7::pureToEs::processSort(vs : Fu ); , | - let sortCombo = $toSort->map({x | + let sortCombo = $toSort->map({x | let fieldSort = ^FieldSort(order = $x.second); let fieldMap = newMap(pair($x.first.path(), $fieldSort)); ^SortCombinations(options = ^SortOptions(__additionalProperty = $fieldMap)); }); - + ^$search(sort = $sortCombo); ); @@ -441,7 +442,7 @@ function <> meta::external::store::elasticsearch::v7::pureToEs:: compositeSources : Pair[*] ): Map[1] { - let termsSorted = $toSort->map({x | + let termsSorted = $toSort->map({x | let compositeSourcePair = $compositeSources->filter(m | $m.first == $x.first)->toOne(); let sourceTerms = $compositeSourcePair.second.terms->toOne(); ^$compositeSourcePair(second = ^CompositeAggregationSource(terms = ^$sourceTerms(order = ^TermsAggregationSortOrder(order = $x.second)))); @@ -449,7 +450,7 @@ function <> meta::external::store::elasticsearch::v7::pureToEs:: let notSortedTerms = $compositeSources ->filter(m | $m.first->in($toSort.first)->not()) - ->map({m | + ->map({m | let sourceTerms = $m.second.terms->toOne(); ^$m(second = ^CompositeAggregationSource(terms = ^$sourceTerms(order = []))); }); @@ -484,7 +485,7 @@ function <> meta::external::store::elasticsearch::v7::pureToEs:: , | assertEmpty($compositeSourcesToSort, - | 'No supported: multiple sort fields, where the source of these fields is mixed between aggregate fields and group by fields. Either remove group by fields or aggregate fields from sort' + | 'No supported: multiple sort fields, where the source of these fields is mixed between aggregate fields and group by fields. Either remove group by fields or aggregate fields from sort' ); let terms = $compositeSources.second.terms->map(x | ^MultiTermLookup(field = $x.field->toOne(), missing = [] /*todo handle null / missing*/)); @@ -509,24 +510,24 @@ function meta::external::store::elasticsearch::v7::pureToEs::process(vs : ValueS fe: FunctionExpression[1] | $req.supportedRoutingFunctions->findAndEvalSupportedFunction($fe, $req, $req), tds: TDSRoutedValueSpecification[1] | $tds.value->process($req), ervs: ExtendedRoutedValueSpecification[1] | $ervs.value->process($req), - any: Any[1] | fail('not supported: ' + $any->type()->toString());$req; + any: Any[1] | fail('not supported: ' + $any->type()->toString());$req; ]); } -function meta::external::store::elasticsearch::v7::pureToEs::findAndEvalSupportedFunction(funcs: Pair[1],State[0..1]->Boolean[1]}>, Function<{FunctionExpression[1], P[n]->T[m]}>>[*], fe : FunctionExpression[1], req: P[n], state: State[1]): T[m] +function meta::external::store::elasticsearch::v7::pureToEs::findAndEvalSupportedFunction(funcs: Pair[1],State[0..1]->Boolean[1]}>, Function<{FunctionExpression[1], P[n]->T[m]}>>[*], fe : FunctionExpression[1], req: P[n], state: State[1]): T[m] { eval($funcs->filter(x|$x.first->eval($fe.func, $state))->first()->toOne('function not supported yet: ' + $fe.func->elementToPath()).second, $fe, $req); } -function meta::external::store::elasticsearch::v7::pureToEs::defaultSize(): Integer[1] +function meta::external::store::elasticsearch::v7::pureToEs::defaultSize(): Integer[1] { // need to default to a number since otherwise elastic defaults to 10, hence using the default max per search operation limit of 10,000 10000; } -function meta::external::store::elasticsearch::v7::pureToEs::process(sq:StoreQuery[1], ext:RoutedValueSpecification[0..1], m:Mapping[0..1], runtime:Runtime[0..1], exeCtx:Elasticsearch7ExecutionContext[1], extensions:Extension[*], debug:DebugContext[1]): State[1] +function meta::external::store::elasticsearch::v7::pureToEs::process(sq:StoreQuery[1], ext:RoutedValueSpecification[0..1], m:Mapping[0..1], runtime:Runtime[0..1], exeCtx:Elasticsearch7ExecutionContext[1], extensions:Extension[*], debug:DebugContext[1]): State[1] { - let req = ^State( + let req = ^State( search = ^SearchRequestBody(_source = ^SourceConfig(fetch = false->literal()), track_total_hits = ^TrackHits(enabled = true->literal())), inFilter = false, inProject = false, @@ -606,17 +607,17 @@ function meta::external::store::elasticsearch::v7::pureToEs::processEqual(leftSi let literalOrExpression = $eqInputs.second.values->literalOrExpression(true); let tdsESDetail = $eqInputs.first; - + let query = $literalOrExpression->match([ value: LiteralOrExpression[1] | $tdsESDetail.resultPath.property->match([ - p:KeywordProperty[1] | + p:KeywordProperty[1] | let string = $value->cast(@LiteralOrExpression); if($tdsESDetail.resultPath->instanceOf(_IDResultPath), | ^QueryContainer(ids = ^IdsQuery(values = $string)), | ^QueryContainer(term = newMap(pair($tdsESDetail.path(), ^TermQuery(value = ^FieldValue(any = $string))))) ); , - p:DateProperty[1] | + p:DateProperty[1] | let dateStr = $value->cast(@LiteralOrExpression); ^QueryContainer( range = newMap(pair( @@ -633,16 +634,16 @@ function meta::external::store::elasticsearch::v7::pureToEs::processEqual(leftSi )) ) ]), - none: Any[0] | + none: Any[0] | let exists = ^QueryContainer(exists = ^ExistsQuery(field = $tdsESDetail.path()->literal())); ^QueryContainer(bool = ^BoolQuery(must_not = $exists)); ]); // handle optional parameters (ie zero lower bound multiplicities) - let queryWithZeroMultHandling = if ($eqInputs.second.values->size() == 1 - && $eqInputs.second.values->toOne()->instanceOf(VariableExpression) + let queryWithZeroMultHandling = if ($eqInputs.second.values->size() == 1 + && $eqInputs.second.values->toOne()->instanceOf(VariableExpression) && $eqInputs.second.values->toOne()->cast(@VariableExpression).multiplicity->getLowerBound() == 0, - | + | let var = $eqInputs.second.values->toOne()->cast(@VariableExpression); // check param was not provided @@ -666,7 +667,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processEqual(leftSi // pseudo code: ($variable->isNotEmpty() && queryMatchingVariableValue()) || ($variable->isEmpty() && queryCheckingFieldIsMissing()) ^QueryContainer(bool = ^BoolQuery(should = [ $ifParamExists, $ifParamMissing ])); , - | + | $query ); @@ -677,7 +678,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processEqual(leftSi function meta::external::store::elasticsearch::v7::pureToEs::processIn(vs : FunctionExpression[1], initReq: State[1]): State[1] { assert($initReq.inFilter, 'in only supporter on filter context'); - + let leftSidePair = $vs.parametersValues->at(0)->extractSimpleValue($initReq); let leftSide = $leftSidePair.first.values; @@ -698,7 +699,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processIn(vs : Func let tdsESDetail = $inInputs.first; let query = $tdsESDetail.resultPath.property->match([ - p:KeywordProperty[1] | + p:KeywordProperty[1] | let string = $literalOrExpression->cast(@LiteralOrExpression); if($tdsESDetail.resultPath->instanceOf(_IDResultPath), | ^QueryContainer(ids = ^IdsQuery(values = $string)), @@ -708,7 +709,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processIn(vs : Func a:Any[1] | ^QueryContainer(terms = ^TermsQuery(__additionalProperty = newMap(pair($tdsESDetail.path(), ^TermsQueryField(value = $literalOrExpression->map(val | ^FieldValue(any = $val))))))) ]); - + let search = $req.search; ^$req(search = ^$search(query = ^QueryContainer(bool = ^BoolQuery(filter = $query)))); } @@ -717,11 +718,11 @@ function meta::external::store::elasticsearch::v7::pureToEs::processGreaterThan( { $vs->processRangeQuery([ pair( - x: LiteralOrExpression[1] | ^NumberRangeQuery(gt = $x), + x: LiteralOrExpression[1] | ^NumberRangeQuery(gt = $x), x: LiteralOrExpression[1] | ^DateRangeQuery(gt = $x, format = 'date_optional_time'->literal()) - ), + ), pair( - x: LiteralOrExpression[1] | ^NumberRangeQuery(lt = $x), + x: LiteralOrExpression[1] | ^NumberRangeQuery(lt = $x), x: LiteralOrExpression[1] | ^DateRangeQuery(lt = $x, format = 'date_optional_time'->literal()) ) ], $req); @@ -731,42 +732,42 @@ function meta::external::store::elasticsearch::v7::pureToEs::processGreaterThanE { $vs->processRangeQuery([ pair( - x: LiteralOrExpression[1] | ^NumberRangeQuery(gte = $x), + x: LiteralOrExpression[1] | ^NumberRangeQuery(gte = $x), x: LiteralOrExpression[1] | ^DateRangeQuery(gte = $x, format = 'date_optional_time'->literal()) - ), + ), pair( - x: LiteralOrExpression[1] | ^NumberRangeQuery(lte = $x), + x: LiteralOrExpression[1] | ^NumberRangeQuery(lte = $x), x: LiteralOrExpression[1] | ^DateRangeQuery(lte = $x, format = 'date_optional_time'->literal()) ) - ], $req); + ], $req); } function meta::external::store::elasticsearch::v7::pureToEs::processLessThan(vs : FunctionExpression[1], req: State[1]): State[1] { $vs->processRangeQuery([ pair( - x: LiteralOrExpression[1] | ^NumberRangeQuery(lt = $x), + x: LiteralOrExpression[1] | ^NumberRangeQuery(lt = $x), x: LiteralOrExpression[1] | ^DateRangeQuery(lt = $x, format = 'date_optional_time'->literal()) - ), + ), pair( - x: LiteralOrExpression[1] | ^NumberRangeQuery(gt = $x), + x: LiteralOrExpression[1] | ^NumberRangeQuery(gt = $x), x: LiteralOrExpression[1] | ^DateRangeQuery(gt = $x, format = 'date_optional_time'->literal()) ) - ], $req); + ], $req); } function meta::external::store::elasticsearch::v7::pureToEs::processLessThanEqual(vs : FunctionExpression[1], req: State[1]): State[1] { $vs->processRangeQuery([ pair( - x: LiteralOrExpression[1] | ^NumberRangeQuery(lte = $x), + x: LiteralOrExpression[1] | ^NumberRangeQuery(lte = $x), x: LiteralOrExpression[1] | ^DateRangeQuery(lte = $x, format = 'date_optional_time'->literal()) - ), + ), pair( - x: LiteralOrExpression[1] | ^NumberRangeQuery(gte = $x), + x: LiteralOrExpression[1] | ^NumberRangeQuery(gte = $x), x: LiteralOrExpression[1] | ^DateRangeQuery(gte = $x, format = 'date_optional_time'->literal()) ) - ], $req); + ], $req); } function meta::external::store::elasticsearch::v7::pureToEs::processRangeQuery(vs : FunctionExpression[1], options: Pair[1]->NumberRangeQuery[1]}>, Function<{LiteralOrExpression[1]->DateRangeQuery[1]}>>[2], initReq: State[1]): State[1] @@ -793,7 +794,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processRangeQuery(v let value = $inputs.second.second->literalOrExpression(false); let range = $tdsESDetail.resultPath.property->match([ - d:DateProperty[1] | + d:DateProperty[1] | let dateStr = $value->cast(@LiteralOrExpression); ^RangeQuery(date = $option.second->eval($dateStr));, n:NumberPropertyBase[1] | @@ -813,7 +814,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processRangeQuery(v function meta::external::store::elasticsearch::v7::pureToEs::processTdsIsNotNull(vs : FunctionExpression[1], initReq: State[1]): State[1] { assert($initReq.inFilter, 'TdsRow.isNotNull only supporter on filter context'); - + let columnForNullCheckPair = $vs->extractSimpleValue($initReq); let columnForNullCheck = $columnForNullCheckPair.first.values->cast(@TDSESDetail)->toOne(); @@ -841,7 +842,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processIsNotEmpty(v function meta::external::store::elasticsearch::v7::pureToEs::processTdsGetBoolean(vs : FunctionExpression[1], initReq: State[1]): State[1] { assert($initReq.inFilter, 'TdsRow.getBoolean only supporter on filter context'); - + let columnPair = $vs->extractSimpleValue($initReq); let column = $columnPair.first.values->cast(@TDSESDetail)->toOne(); @@ -853,7 +854,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processTdsGetBoolea function meta::external::store::elasticsearch::v7::pureToEs::processTdsIsNull(vs : FunctionExpression[1], initReq: State[1]): State[1] { assert($initReq.inFilter, 'TdsRow.isNull only supporter on filter context'); - + let columnForNullCheckPair = $vs->extractSimpleValue($initReq); let columnForNullCheck = $columnForNullCheckPair.first.values->cast(@TDSESDetail)->toOne(); @@ -868,7 +869,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processTdsIsNull(vs function meta::external::store::elasticsearch::v7::pureToEs::processIsEmpty(vs : FunctionExpression[1], initReq: State[1]): State[1] { assert($initReq.inFilter, 'TdsRow.isNull only supporter on filter context'); - + let columnForNullCheckPair = $vs.parametersValues->at(0)->extractSimpleValue($initReq); let columnForNullCheck = $columnForNullCheckPair.first.values->cast(@TDSESDetail)->toOne(); @@ -916,7 +917,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processEndsWith(vs let rightSidePair = $vs.parametersValues->at(1)->extractSimpleValue($leftSidePair.second); let rightSide = $rightSidePair.first.values->toOne(); - let req = $rightSidePair.second; + let req = $rightSidePair.second; assert($leftSide->instanceOf(TDSESDetail), 'at the moment, endsWith only works when source value comes from index property'); @@ -946,7 +947,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processContains(vs let rightSidePair = $vs.parametersValues->at(1)->extractSimpleValue($leftSidePair.second); let rightSide = $rightSidePair.first.values->toOne(); - let req = $rightSidePair.second; + let req = $rightSidePair.second; assert($leftSide->instanceOf(TDSESDetail), 'at the moment, contains only works when source value comes from index property'); @@ -954,14 +955,14 @@ function meta::external::store::elasticsearch::v7::pureToEs::processContains(vs // todo need to escape asterisk on value let query = $tdsESDetail.resultPath.property->match([ - {keyword: KeywordProperty[1] | + {keyword: KeywordProperty[1] | let literalOrExpression = $rightSide->match([ var: VariableExpression[1] | ^LiteralOrExpression(expression = '${\'"*\' + ' + $var.name + '?json_string + \'*"\'}'), other: String[1] | literal('*' + $other + '*') ]); ^QueryContainer(wildcard = newMap(pair($tdsESDetail.path(), ^WildcardQuery(wildcard = $literalOrExpression)))); }, - {text: TextProperty[1] | + {text: TextProperty[1] | let literalOrExpression = $rightSide->match([ var: VariableExpression[1] | ^LiteralOrExpression(expression = '${\'"\' + ' + $var.name + '?json_string + \'"\'}'), other: String[1] | literal($other) @@ -1025,10 +1026,10 @@ function meta::external::store::elasticsearch::v7::pureToEs::extractSimpleValue( | $fe.parametersValues->at(0)->extractSimpleValue($req), | $req.supportedSimpleValueFunctions->findAndEvalSupportedFunction($fe, $req, $req) ));, - iv: InstanceValue[1] | $iv.values->fold({x, currState | + iv: InstanceValue[1] | $iv.values->fold({x, currState | let r = $x->extractSimpleValue($currState.second); pair($currState.first.values->concatenate($r.first.values)->list(), $r.second); - }, + }, pair(list([]), $req) ), any: Any[*] | pair($any->list(), $req) @@ -1083,12 +1084,12 @@ function meta::external::store::elasticsearch::v7::pureToEs::supportedFilterFunc ,pair(supportedIfEqual(meta::pure::functions::boolean::lessThanEqual_Date_1__Date_1__Boolean_1_), processLessThanEqual_FunctionExpression_1__State_1__State_1_) ,pair({x: Function[1], req: State[1] | $x->instanceOf(QualifiedProperty) && $x->cast(@QualifiedProperty).name == 'getBoolean'}, processTdsGetBoolean_FunctionExpression_1__State_1__State_1_) - + ,pair({x: Function[1], req: State[1] | $x->instanceOf(QualifiedProperty) && $x->cast(@QualifiedProperty).name == 'isNull'}, processTdsIsNull_FunctionExpression_1__State_1__State_1_) ,pair(supportedIfEqual(meta::pure::functions::collection::isEmpty_Any_$0_1$__Boolean_1_), processIsEmpty_FunctionExpression_1__State_1__State_1_) ,pair({x: Function[1], req: State[1] | $x->instanceOf(QualifiedProperty) && $x->cast(@QualifiedProperty).name == 'isNotNull'}, processTdsIsNotNull_FunctionExpression_1__State_1__State_1_) ,pair(supportedIfEqual(meta::pure::functions::collection::isNotEmpty_Any_$0_1$__Boolean_1_), processIsNotEmpty_FunctionExpression_1__State_1__State_1_) - + ,pair(supportedIfEqual(meta::pure::functions::string::startsWith_String_1__String_1__Boolean_1_), processStartsWith_FunctionExpression_1__State_1__State_1_) ,pair(supportedIfEqual(meta::pure::functions::string::endsWith_String_1__String_1__Boolean_1_), processEndsWith_FunctionExpression_1__State_1__State_1_) ,pair(supportedIfEqual(meta::pure::functions::string::contains_String_$0_1$__String_1__Boolean_1_), processContains_FunctionExpression_1__State_1__State_1_) @@ -1110,20 +1111,20 @@ function meta::external::store::elasticsearch::v7::pureToEs::supportedSimpleValu ]; } -function meta::external::store::elasticsearch::v7::pureToEs::reactivateFE(fe: FunctionExpression[1], req: State[1]): Pair, State>[1] +function meta::external::store::elasticsearch::v7::pureToEs::reactivateFE(fe: FunctionExpression[1], req: State[1]): Pair, State>[1] { $req.debug(|'Reactivating FE: ' + $fe->printValueSpecification('')); pair($fe->cast(@FunctionExpression)->reactivate($req.sq.inScopeVars)->list(), $req); } -function meta::external::store::elasticsearch::v7::pureToEs::passthruForPainlessExpression(fe: FunctionExpression[1], req: State[1]): Pair, State>[1] +function meta::external::store::elasticsearch::v7::pureToEs::passthruForPainlessExpression(fe: FunctionExpression[1], req: State[1]): Pair, State>[1] { $req.debug(|'Passthru for painless: ' + $fe->printValueSpecification('')); - assert($req.inProject, |'Evaluation as runtime mapping expression only supported on project context'); + assert($req.inProject, |'Evaluation as runtime mapping expression only supported on project context'); pair(list($fe), $req); } -function meta::external::store::elasticsearch::v7::pureToEs::evaluateAsPureExpressionNode(fe: FunctionExpression[1], req: State[1]): Pair, State>[1] +function meta::external::store::elasticsearch::v7::pureToEs::evaluateAsPureExpressionNode(fe: FunctionExpression[1], req: State[1]): Pair, State>[1] { $req.debug(|'Converting to pure expression node: ' + $fe->printValueSpecification('')); assert($req.inFilter, |'Evaluation as pure expression only supported on filter context'); @@ -1149,11 +1150,11 @@ function meta::external::store::elasticsearch::v7::pureToEs::supportedAggregatio pair(supportedIfEqual(meta::pure::functions::math::sum_Integer_MANY__Integer_1_), {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(sum = ^SumAggregation(field = $y->literal()))}) ,pair(supportedIfEqual(meta::pure::functions::math::sum_Float_MANY__Float_1_), {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(sum = ^SumAggregation(field = $y->literal()))}) ,pair(supportedIfEqual(meta::pure::functions::math::sum_Number_MANY__Number_1_), {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(sum = ^SumAggregation(field = $y->literal()))}) - + ,pair(supportedIfEqual(meta::pure::functions::math::max_Integer_MANY__Integer_$0_1$_), {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(max = ^MaxAggregation(field = $y->literal()))}) ,pair(supportedIfEqual(meta::pure::functions::math::max_Float_MANY__Float_$0_1$_), {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(max = ^MaxAggregation(field = $y->literal()))}) ,pair(supportedIfEqual(meta::pure::functions::math::max_Number_MANY__Number_$0_1$_), {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(max = ^MaxAggregation(field = $y->literal()))}) - + ,pair(supportedIfEqual(meta::pure::functions::math::min_Integer_MANY__Integer_$0_1$_), {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(min = ^MinAggregation(field = $y->literal()))}) ,pair(supportedIfEqual(meta::pure::functions::math::min_Float_MANY__Float_$0_1$_), {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(min = ^MinAggregation(field = $y->literal()))}) ,pair(supportedIfEqual(meta::pure::functions::math::min_Number_MANY__Number_$0_1$_), {x: FunctionExpression[1], y: String[1] | ^AggregationContainer(min = ^MinAggregation(field = $y->literal()))}) @@ -1190,7 +1191,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::literalOrExpression function meta::external::store::elasticsearch::v7::pureToEs::expression(var : PlanVarPlaceHolder[1], supportZeroMult: Boolean[1]): LiteralOrExpression[1] { - assert($supportZeroMult || ($var.multiplicity->toOne()->getLowerBound() > 0), + assert($supportZeroMult || ($var.multiplicity->toOne()->getLowerBound() > 0), |'Operation does not support variable \'%s: %s[%s]\' with 0 lower bound multiplicity'->format([$var.name, $var.type->printType(), $var.multiplicity->toOne()->printMultiplicity()]) ); @@ -1201,9 +1202,9 @@ function meta::external::store::elasticsearch::v7::pureToEs::expression(var : Pl | if ( $varType->in([Float, Number, Decimal]), | ^LiteralOrExpression(expression = $var->varFreemarkerExpression(false)), | if ($varType->in([Date, DateTime, StrictDate]), | ^LiteralOrExpression(expression = $var->varFreemarkerExpression(true)), {| - fail('Type of variable \'%s: %s[%s]\' not supported'->format([$var.name, $var.type->printType(), $var.multiplicity->toOne()->printMultiplicity()])); - ^LiteralOrExpression(expression = $var.name); - } + fail('Type of variable \'%s: %s[%s]\' not supported'->format([$var.name, $var.type->printType(), $var.multiplicity->toOne()->printMultiplicity()])); + ^LiteralOrExpression(expression = $var.name); + } ) ) ) @@ -1218,7 +1219,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::varFreemarkerExpres if ($var.multiplicity->toOne()->isToMany(), | '${(' + $var.name + '??)?then((' + $var.name + '?is_enumerable)?then(' + $var.name + '?map(x -> x' + $toJson + ')?join(\', \'), ' + $var.name + $toJson + '), "")}', - | + | if ($var.multiplicity->toOne()->getLowerBound() == 0, | '${(' + $var.name + '??)?then(' + $var.name + $toJson + ', \'"\\\\r\\\\n"\')}', @@ -1228,12 +1229,12 @@ function meta::external::store::elasticsearch::v7::pureToEs::varFreemarkerExpres } function meta::external::store::elasticsearch::v7::pureToEs::toRuntimeMapping(vs: FunctionExpression[1], field: DocValueResultPath[1], initReq: State[1]): State[1] -{ - let p = processPainless($vs, ^$initReq(inProject = false, inFilter = true)); - +{ + let p = processPainless($vs, ^$initReq(inProject = false, inFilter = true)); + let script = $p.first; let req = $p.second; - + let type = $field.property->match([ b: BooleanProperty[1] | RuntimeFieldType._boolean, k: KeywordProperty[1] | RuntimeFieldType.keyword, @@ -1266,7 +1267,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processPainless(vs: { $vs->match([ fe: FunctionExpression[1] | $initReq.supportedForPainlessScriptFunctions->findAndEvalSupportedFunction($fe, $initReq, $initReq), - iv: InstanceValue[1] | + iv: InstanceValue[1] | $iv.values->match([ f: FunctionDefinition[1] | $f.expressionSequence->at(0)->processPainless($initReq), any: Any[1] | $any->processPainlessScalarValue($initReq) @@ -1310,7 +1311,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processPainlessIsEm text: TextProperty[1] | 'params[\'_source\'][\'%s\'] == null', any: Any[1] | 'doc[\'%s\'].size() == 0'; ])->format($field.path()); - + pair(^InlineScript(source = $script->literal(), params = newMap([])), $req); } @@ -1320,7 +1321,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processPainlessIsNo |$fe->qualifiedPropertyToTDSESDetail($initReq), |$fe.parametersValues->at(0)->extractSimpleValue($initReq) ); - + let field = $fieldPair.first.values->cast(@TDSESDetail)->toOne('isNotEmpty only works on tds columns for now'); let req = $fieldPair.second; @@ -1359,9 +1360,9 @@ function meta::external::store::elasticsearch::v7::pureToEs::processPainlessBool let operation = if($rightSide->size() == 1 && $rightSide->toOne()->instanceOf(TDSESDetail) && $maybeOperation != '==', | [ - pair('<=', '>='), - pair('<', '>'), - pair('>=', '<='), + pair('<=', '>='), + pair('<', '>'), + pair('>=', '<='), pair('>', '<') ]->filter(x | $x.first == $maybeOperation).second->toOne(), |$maybeOperation @@ -1383,7 +1384,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processPainlessBool ]); let paramScript = $newValue->match([ - pv: PlanVarPlaceHolder[1] | + pv: PlanVarPlaceHolder[1] | if($pv.type == StrictDate, |'LocalDate.parse(params[\'%s\']).atTime(0, 0).toInstant(ZoneOffset.UTC).toEpochMilli()', | if($pv.type == DateTime, @@ -1392,7 +1393,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processPainlessBool ) ), any: Any[*] | 'params[\'%s\']' - ])->format($param.first); + ])->format($param.first); let script = '%s.toInstant().toEpochMilli() %s %s'->format([painlessExtractField($tdsESDetail), $operation, $paramScript]); let literalOrExpression = $newValue->literalOrExpression(true)->toOne(); @@ -1408,7 +1409,7 @@ function meta::external::store::elasticsearch::v7::pureToEs::processPainlessBool function meta::external::store::elasticsearch::v7::pureToEs::processPainlessNot(fe: FunctionExpression[1], initReq: State[1]): Pair[1] { - let toNot = processPainless($fe.parametersValues->at(0), $initReq); + let toNot = processPainless($fe.parametersValues->at(0), $initReq); let toNotScript = $toNot.first; let script = '!(%s)'->format($toNotScript.source.value->toOne()); pair(^$toNotScript(source = $script->literal()), $toNot.second); @@ -1419,10 +1420,10 @@ function meta::external::store::elasticsearch::v7::pureToEs::processPainlessAndO let funcName = $fe.func.functionName->toOne(); let operation = [ pair('and', '&&'), - pair('or', '||') + pair('or', '||') ]->filter(x | $x.first == $funcName).second->toOne('Only support and/or but found: ' + $funcName); - let left = processPainless($fe.parametersValues->at(0), $initReq); + let left = processPainless($fe.parametersValues->at(0), $initReq); let right = processPainless($fe.parametersValues->at(1), $left.second); let leftScript = $left.first.source.value->toOne(); @@ -1436,14 +1437,14 @@ function meta::external::store::elasticsearch::v7::pureToEs::processPainlessAndO function meta::external::store::elasticsearch::v7::pureToEs::processPainlessIf(fe: FunctionExpression[1], initReq: State[1]): Pair[1] { - let condition = processPainless($fe.parametersValues->at(0), $initReq); + let condition = processPainless($fe.parametersValues->at(0), $initReq); let ifTrue = processPainless($fe.parametersValues->at(1), $condition.second); let ifFalse = processPainless($fe.parametersValues->at(2), $ifTrue.second); let conditionScript = $condition.first.source.value->toOne(); let ifTrueScript = $ifTrue.first.source.value->toOne(); let ifFalseScript = $ifFalse.first.source.value->toOne(); - + let params = $condition.first.params->toOne()->keyValues() ->concatenate($ifTrue.first.params->toOne()->keyValues()) ->concatenate($ifFalse.first.params->toOne()->keyValues()) @@ -1455,8 +1456,8 @@ function meta::external::store::elasticsearch::v7::pureToEs::processPainlessIf(f function meta::external::store::elasticsearch::v7::pureToEs::processPainlessDateTruncate(fe: FunctionExpression[1], initReq: State[1], unit: String[1]): Pair[1] { - let dateFieldPair = $fe.parametersValues->at(0)->extractSimpleValue($initReq); - + let dateFieldPair = $fe.parametersValues->at(0)->extractSimpleValue($initReq); + let dateField = $dateFieldPair.first.values->cast(@TDSESDetail)->toOne(); let req = $dateFieldPair.second; @@ -1466,8 +1467,8 @@ function meta::external::store::elasticsearch::v7::pureToEs::processPainlessDate function meta::external::store::elasticsearch::v7::pureToEs::processPainlessExtractDatePart(fe: FunctionExpression[1], initReq: State[1], field: String[1]): Pair[1] { - let dateFieldPair = $fe.parametersValues->at(0)->extractSimpleValue($initReq); - + let dateFieldPair = $fe.parametersValues->at(0)->extractSimpleValue($initReq); + let dateField = $dateFieldPair.first.values->cast(@TDSESDetail)->toOne(); let req = $dateFieldPair.second; @@ -1477,8 +1478,8 @@ function meta::external::store::elasticsearch::v7::pureToEs::processPainlessExtr function meta::external::store::elasticsearch::v7::pureToEs::processPainlessDateFormat(fe: FunctionExpression[1], initReq: State[1], format: String[1]): Pair[1] { - let dateFieldPair = $fe.parametersValues->at(0)->extractSimpleValue($initReq); - + let dateFieldPair = $fe.parametersValues->at(0)->extractSimpleValue($initReq); + let dateField = $dateFieldPair.first.values->cast(@TDSESDetail)->toOne(); let req = $dateFieldPair.second; @@ -1490,8 +1491,8 @@ function meta::external::store::elasticsearch::v7::pureToEs::processPainlessDate function meta::external::store::elasticsearch::v7::pureToEs::processPainlessFirstDayOfWeek(fe: FunctionExpression[1], initReq: State[1]): Pair[1] { - let dateFieldPair = $fe.parametersValues->at(0)->extractSimpleValue($initReq); - + let dateFieldPair = $fe.parametersValues->at(0)->extractSimpleValue($initReq); + let dateField = $dateFieldPair.first.values->cast(@TDSESDetail)->toOne(); let req = $dateFieldPair.second; @@ -1501,8 +1502,8 @@ function meta::external::store::elasticsearch::v7::pureToEs::processPainlessFirs function meta::external::store::elasticsearch::v7::pureToEs::processPainlessFirstDayOfMonth(fe: FunctionExpression[1], initReq: State[1]): Pair[1] { - let dateFieldPair = $fe.parametersValues->at(0)->extractSimpleValue($initReq); - + let dateFieldPair = $fe.parametersValues->at(0)->extractSimpleValue($initReq); + let dateField = $dateFieldPair.first.values->cast(@TDSESDetail)->toOne(); let req = $dateFieldPair.second; @@ -1512,8 +1513,8 @@ function meta::external::store::elasticsearch::v7::pureToEs::processPainlessFirs function meta::external::store::elasticsearch::v7::pureToEs::processPainlessFirstDayOfQuarter(fe: FunctionExpression[1], initReq: State[1]): Pair[1] { - let dateFieldPair = $fe.parametersValues->at(0)->extractSimpleValue($initReq); - + let dateFieldPair = $fe.parametersValues->at(0)->extractSimpleValue($initReq); + let dateField = $dateFieldPair.first.values->cast(@TDSESDetail)->toOne(); let req = $dateFieldPair.second; @@ -1530,43 +1531,43 @@ function meta::external::store::elasticsearch::v7::pureToEs::painlessDateFunctio function meta::external::store::elasticsearch::v7::pureToEs::painlessDateSupportedFunctions(): Pair, PainlessDateSupportedFunction>[*] { [ - pair(datePart_Date_1__Date_1_, + pair(datePart_Date_1__Date_1_, painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessDateTruncate($fe, $req, 'DAYS')}, 'yyyy-MM-dd')) - ,pair(firstMillisecondOfSecond_Date_1__DateTime_1_, + ,pair(firstMillisecondOfSecond_Date_1__DateTime_1_, painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessDateTruncate($fe, $req, 'SECONDS')}, 'yyyy-MM-dd\'T\'HH:mm:ss.SSSZ')) - ,pair(firstSecondOfMinute_Date_1__DateTime_1_, + ,pair(firstSecondOfMinute_Date_1__DateTime_1_, painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessDateTruncate($fe, $req, 'MINUTES')}, 'yyyy-MM-dd\'T\'HH:mm:ssZ')) - ,pair(firstMinuteOfHour_Date_1__DateTime_1_, + ,pair(firstMinuteOfHour_Date_1__DateTime_1_, painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessDateTruncate($fe, $req, 'HOURS')}, 'yyyy-MM-dd\'T\'HH:mmZ')) - ,pair(firstHourOfDay_Date_1__DateTime_1_, + ,pair(firstHourOfDay_Date_1__DateTime_1_, painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessDateTruncate($fe, $req, 'DAYS')}, 'yyyy-MM-dd\'T\'HH')) - - ,pair(firstDayOfMonth_Date_1__Date_1_, - painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessFirstDayOfMonth($fe, $req)}, 'yyyy-MM-dd')) - ,pair(firstDayOfWeek_Date_1__Date_1_, - painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessFirstDayOfWeek($fe, $req)}, 'yyyy-MM-dd')) - ,pair(firstDayOfQuarter_Date_1__StrictDate_1_, - painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessFirstDayOfQuarter($fe, $req)}, 'yyyy-MM-dd')) + + ,pair(firstDayOfMonth_Date_1__Date_1_, + painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessFirstDayOfMonth($fe, $req)}, 'yyyy-MM-dd')) + ,pair(firstDayOfWeek_Date_1__Date_1_, + painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessFirstDayOfWeek($fe, $req)}, 'yyyy-MM-dd')) + ,pair(firstDayOfQuarter_Date_1__StrictDate_1_, + painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessFirstDayOfQuarter($fe, $req)}, 'yyyy-MM-dd')) ,pair(year_Date_1__Integer_1_, painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessExtractDatePart($fe, $req, 'ChronoField.YEAR')}, [])) ,pair(weekOfYear_Date_1__Integer_1_, - painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessExtractDatePart($fe, $req, 'IsoFields.WEEK_OF_WEEK_BASED_YEAR')}, [])) - + painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessExtractDatePart($fe, $req, 'IsoFields.WEEK_OF_WEEK_BASED_YEAR')}, [])) + ,pair(monthNumber_Date_1__Integer_1_, painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessExtractDatePart($fe, $req, 'ChronoField.MONTH_OF_YEAR')}, [])) ,pair(month_Date_1__Month_1_, painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessDateFormat($fe, $req, 'MMMM')}, [])) - + ,pair(quarterNumber_Date_1__Integer_1_, - painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessExtractDatePart($fe, $req, 'IsoFields.QUARTER_OF_YEAR')}, [])) + painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessExtractDatePart($fe, $req, 'IsoFields.QUARTER_OF_YEAR')}, [])) ,pair(quarter_Date_1__Quarter_1_, painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessDateFormat($fe, $req, '\'Q\'q')}, [])) - + ,pair(dayOfWeekNumber_Date_1__Integer_1_, - painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessExtractDatePart($fe, $req, 'ChronoField.DAY_OF_WEEK')}, [])) + painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessExtractDatePart($fe, $req, 'ChronoField.DAY_OF_WEEK')}, [])) ,pair(dayOfWeek_Date_1__DayOfWeek_1_, - painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessDateFormat($fe, $req, 'EEEE')}, [])) + painlessDateSupportedFunction({fe: FunctionExpression[1], req: State[1] | processPainlessDateFormat($fe, $req, 'EEEE')}, [])) ] } @@ -1592,9 +1593,9 @@ function meta::external::store::elasticsearch::v7::pureToEs::supportedForPainles ,pair(supportedIfEqual(isEmpty_Any_$0_1$__Boolean_1_), processPainlessIsEmpty_FunctionExpression_1__State_1__Pair_1_) ,pair(supportedIfEqual(isNotEmpty_Any_$0_1$__Boolean_1_), processPainlessIsNotEmpty_FunctionExpression_1__State_1__Pair_1_) - ,pair({x: Function[1], req: State[1] | $x->instanceOf(QualifiedProperty) && $x->cast(@QualifiedProperty).name == 'isNull'}, + ,pair({x: Function[1], req: State[1] | $x->instanceOf(QualifiedProperty) && $x->cast(@QualifiedProperty).name == 'isNull'}, processPainlessIsEmpty_FunctionExpression_1__State_1__Pair_1_) - ,pair({x: Function[1], req: State[1] | $x->instanceOf(QualifiedProperty) && $x->cast(@QualifiedProperty).name == 'isNotNull'}, + ,pair({x: Function[1], req: State[1] | $x->instanceOf(QualifiedProperty) && $x->cast(@QualifiedProperty).name == 'isNotNull'}, processPainlessIsNotEmpty_FunctionExpression_1__State_1__Pair_1_) @@ -1615,10 +1616,10 @@ function meta::external::store::elasticsearch::v7::pureToEs::supportedForPainles ,pair(supportedIfEqual(lessThan_Date_1__Date_1__Boolean_1_), processPainlessBooleanComparison_FunctionExpression_1__State_1__Pair_1_) ,pair(supportedIfEqual(lessThanEqual_Date_1__Date_1__Boolean_1_), processPainlessBooleanComparison_FunctionExpression_1__State_1__Pair_1_) - + ,pair(supportedIfEqual(if_Boolean_1__Function_1__Function_1__T_m_), processPainlessIf_FunctionExpression_1__State_1__Pair_1_) ]->concatenate( painlessDateSupportedFunctions()->map(x | pair(supportedIfEqual($x.first), $x.second.processor)) ); -} \ No newline at end of file +} diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/protocol/v1_31_0/serialization.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/protocol/v1_31_0/serialization.pure index 3b0a0e55000..3887723a7cc 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/protocol/v1_31_0/serialization.pure +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/protocol/v1_31_0/serialization.pure @@ -37,7 +37,7 @@ function meta::external::store::elasticsearch::v7::protocol::v1_31_0::elasticsea _type = 'tDSMetadata', columnResultPaths = $tds.columnResultPaths ->map(c | ^meta::external::store::elasticsearch::v7::protocol::v1_31_0::executionPlan::tds::TDSColumnResultPath( - index = $c.index, + index = $c.index, resultPath = $c.resultPath->match([ src: SourceFieldResultPath[1] | ^meta::external::store::elasticsearch::v7::protocol::v1_31_0::tds::SourceFieldResultPath( _type = 'sourceFieldResultPath', @@ -50,11 +50,11 @@ function meta::external::store::elasticsearch::v7::protocol::v1_31_0::elasticsea agg: AggregateResultPath[1] | ^meta::external::store::elasticsearch::v7::protocol::v1_31_0::tds::AggregateResultPath( _type = 'aggregateResultPath', fieldPath = $agg.fieldPath - ) + ) ]) ) ) - ) + ) ]) ) ] @@ -66,8 +66,8 @@ function meta::external::store::elasticsearch::v7::protocol::v1_31_0::runtime::t { ^meta::external::store::elasticsearch::v7::protocol::v1_31_0::runtime::Elasticsearch7StoreConnection( _type = 'elasticsearch7StoreConnection', - element = $conn.element->cast(@PackageableElement)->elementToPath(), - sourceSpec = ^meta::external::store::elasticsearch::v7::protocol::v1_31_0::runtime::Elasticsearch7StoreURLSourceSpecification( + element = '', + sourceSpec = ^meta::external::store::elasticsearch::v7::protocol::v1_31_0::runtime::Elasticsearch7StoreURLSourceSpecification( url = '%s://%s:%d%s'->format([$conn.sourceSpec.url.scheme->defaultIfEmpty(URLScheme.http)->toOne(), $conn.sourceSpec.url.host, $conn.sourceSpec.url.port, $conn.sourceSpec.url.path]) ), authSpec = $conn.authSpec->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::authentication::transformAuthenticationSpecification($extensions) @@ -87,12 +87,12 @@ Class <> meta::external::store::elasticsearch::v7::proto } Class meta::external::store::elasticsearch::v7::protocol::v1_31_0::executionPlan::tds::TDSMetadata extends meta::external::store::elasticsearch::v7::protocol::v1_31_0::executionPlan::tds::RequestResultMetadata -{ +{ columnResultPaths: meta::external::store::elasticsearch::v7::protocol::v1_31_0::executionPlan::tds::TDSColumnResultPath[1..*]; } Class meta::external::store::elasticsearch::v7::protocol::v1_31_0::executionPlan::tds::TDSColumnResultPath -{ +{ index: Integer[1]; resultPath: meta::external::store::elasticsearch::v7::protocol::v1_31_0::tds::ResultPath[1]; } @@ -126,4 +126,4 @@ Class meta::external::store::elasticsearch::v7::protocol::v1_31_0::runtime::Elas Class meta::external::store::elasticsearch::v7::protocol::v1_31_0::runtime::Elasticsearch7StoreURLSourceSpecification { url: String[1]; -} \ No newline at end of file +} diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/protocol/v1_32_0/serialization.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/protocol/v1_32_0/serialization.pure index 01d4d558a13..8f54998f416 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/protocol/v1_32_0/serialization.pure +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/protocol/v1_32_0/serialization.pure @@ -39,26 +39,26 @@ function meta::external::store::elasticsearch::v7::protocol::v1_32_0::elasticsea transfers_store_transformStore2 = {extensions:meta::pure::extension::Extension[*] | [ - s:meta::external::store::elasticsearch::v7::metamodel::store::Elasticsearch7Store[1] | + s:meta::external::store::elasticsearch::v7::metamodel::store::Elasticsearch7Store[1] | ^meta::external::store::elasticsearch::v7::protocol::v1_32_0::store::Elasticsearch7Store( name = $s.name->toOne(), package = $s.package->map(p | $p->elementToPath()), - indices = $s.indices->map(i | + indices = $s.indices->map(i | ^meta::external::store::elasticsearch::v7::protocol::v1_32_0::store::Elasticsearch7StoreIndex( indexName = $i.indexName, - properties = $i.properties->map(p | + properties = $i.properties->map(p | ^meta::external::store::elasticsearch::v7::protocol::v1_32_0::store::Elasticsearch7StoreIndexProperty( propertyName = $p.propertyName, property = $p.property ) ) ) - ) + ) ) ] }, - invocation_execution_transformContext = + invocation_execution_transformContext = [ e: meta::external::store::elasticsearch::v7::metamodel::executionPlan::context::Elasticsearch7ExecutionContext[1] | ^meta::external::store::elasticsearch::v7::protocol::v1_32_0::executionPlan::context::Elasticsearch7ExecutionContext() ], @@ -79,11 +79,11 @@ function meta::external::store::elasticsearch::v7::protocol::v1_32_0::elasticsea _type = 'tDSMetadata', columnResultPaths = $tds.columnResultPaths ->map(c | ^meta::external::store::elasticsearch::v7::protocol::v1_32_0::executionPlan::tds::TDSColumnResultPath( - index = $c.index, + index = $c.index, resultPath = $c.resultPath->meta::external::store::elasticsearch::v7::protocol::v1_32_0::executionPlan::tds::transformResultPath($extensions) ) ) - ) + ) ]) ) ] @@ -114,7 +114,7 @@ function meta::external::store::elasticsearch::v7::protocol::v1_32_0::executionP id: _IDResultPath[1] | ^meta::external::store::elasticsearch::v7::protocol::v1_32_0::tds::_IDResultPath( _type = '_IDResultPath', fieldPath = $id.fieldPath - ) + ) ]); } @@ -122,7 +122,7 @@ function meta::external::store::elasticsearch::v7::protocol::v1_32_0::runtime::t { ^meta::external::store::elasticsearch::v7::protocol::v1_32_0::runtime::Elasticsearch7StoreConnection( _type = 'elasticsearch7StoreConnection', - element = $conn.element->cast(@PackageableElement)->elementToPath(), + element = '', sourceSpec = ^meta::external::store::elasticsearch::v7::protocol::v1_32_0::runtime::Elasticsearch7StoreURLSourceSpecification( url = '%s://%s:%d%s'->format([$conn.sourceSpec.url.scheme->defaultIfEmpty(URLScheme.http)->toOne(), $conn.sourceSpec.url.host, $conn.sourceSpec.url.port, $conn.sourceSpec.url.path]) ), @@ -143,12 +143,12 @@ Class <> meta::external::store::elasticsearch::v7::proto } Class meta::external::store::elasticsearch::v7::protocol::v1_32_0::executionPlan::tds::TDSMetadata extends meta::external::store::elasticsearch::v7::protocol::v1_32_0::executionPlan::tds::RequestResultMetadata -{ +{ columnResultPaths: meta::external::store::elasticsearch::v7::protocol::v1_32_0::executionPlan::tds::TDSColumnResultPath[1..*]; } Class meta::external::store::elasticsearch::v7::protocol::v1_32_0::executionPlan::tds::TDSColumnResultPath -{ +{ index: Integer[1]; resultPath: meta::external::store::elasticsearch::v7::protocol::v1_32_0::tds::ResultPath[1]; } diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/protocol/v1_33_0/serialization.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/protocol/v1_33_0/serialization.pure index c38608479e6..5ea22efa20a 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/protocol/v1_33_0/serialization.pure +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/protocol/v1_33_0/serialization.pure @@ -122,7 +122,7 @@ function meta::external::store::elasticsearch::v7::protocol::v1_33_0::runtime::t { ^meta::external::store::elasticsearch::v7::protocol::v1_33_0::runtime::Elasticsearch7StoreConnection( _type = 'elasticsearch7StoreConnection', - element = $conn.element->cast(@PackageableElement)->elementToPath(), + element = '', sourceSpec = ^meta::external::store::elasticsearch::v7::protocol::v1_33_0::runtime::Elasticsearch7StoreURLSourceSpecification( url = '%s://%s:%d%s'->format([$conn.sourceSpec.url.scheme->defaultIfEmpty(URLScheme.http)->toOne(), $conn.sourceSpec.url.host, $conn.sourceSpec.url.port, $conn.sourceSpec.url.path]) ), diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/protocol/vX_X_X/serialization.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/protocol/vX_X_X/serialization.pure index 50a7c4a8464..671be7132ef 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/protocol/vX_X_X/serialization.pure +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/protocol/vX_X_X/serialization.pure @@ -39,26 +39,26 @@ function meta::external::store::elasticsearch::v7::protocol::vX_X_X::elasticsear transfers_store_transformStore2 = {extensions:meta::pure::extension::Extension[*] | [ - s:meta::external::store::elasticsearch::v7::metamodel::store::Elasticsearch7Store[1] | + s:meta::external::store::elasticsearch::v7::metamodel::store::Elasticsearch7Store[1] | ^meta::external::store::elasticsearch::v7::protocol::vX_X_X::store::Elasticsearch7Store( name = $s.name->toOne(), package = $s.package->map(p | $p->elementToPath()), - indices = $s.indices->map(i | + indices = $s.indices->map(i | ^meta::external::store::elasticsearch::v7::protocol::vX_X_X::store::Elasticsearch7StoreIndex( indexName = $i.indexName, - properties = $i.properties->map(p | + properties = $i.properties->map(p | ^meta::external::store::elasticsearch::v7::protocol::vX_X_X::store::Elasticsearch7StoreIndexProperty( propertyName = $p.propertyName, property = $p.property ) ) ) - ) + ) ) ] }, - invocation_execution_transformContext = + invocation_execution_transformContext = [ e: meta::external::store::elasticsearch::v7::metamodel::executionPlan::context::Elasticsearch7ExecutionContext[1] | ^meta::external::store::elasticsearch::v7::protocol::vX_X_X::executionPlan::context::Elasticsearch7ExecutionContext() ], @@ -79,11 +79,11 @@ function meta::external::store::elasticsearch::v7::protocol::vX_X_X::elasticsear _type = 'tDSMetadata', columnResultPaths = $tds.columnResultPaths ->map(c | ^meta::external::store::elasticsearch::v7::protocol::vX_X_X::executionPlan::tds::TDSColumnResultPath( - index = $c.index, + index = $c.index, resultPath = $c.resultPath->meta::external::store::elasticsearch::v7::protocol::vX_X_X::executionPlan::tds::transformResultPath($extensions) ) ) - ) + ) ]) ) ] @@ -114,7 +114,7 @@ function meta::external::store::elasticsearch::v7::protocol::vX_X_X::executionPl id: _IDResultPath[1] | ^meta::external::store::elasticsearch::v7::protocol::vX_X_X::tds::_IDResultPath( _type = '_IDResultPath', fieldPath = $id.fieldPath - ) + ) ]); } @@ -122,8 +122,8 @@ function meta::external::store::elasticsearch::v7::protocol::vX_X_X::runtime::tr { ^meta::external::store::elasticsearch::v7::protocol::vX_X_X::runtime::Elasticsearch7StoreConnection( _type = 'elasticsearch7StoreConnection', - element = $conn.element->cast(@PackageableElement)->elementToPath(), - sourceSpec = ^meta::external::store::elasticsearch::v7::protocol::vX_X_X::runtime::Elasticsearch7StoreURLSourceSpecification( + element = '', + sourceSpec = ^meta::external::store::elasticsearch::v7::protocol::vX_X_X::runtime::Elasticsearch7StoreURLSourceSpecification( url = '%s://%s:%d%s'->format([$conn.sourceSpec.url.scheme->defaultIfEmpty(URLScheme.http)->toOne(), $conn.sourceSpec.url.host, $conn.sourceSpec.url.port, $conn.sourceSpec.url.path]) ), authSpec = $conn.authSpec->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::authentication::transformAuthenticationSpecification($extensions) @@ -143,12 +143,12 @@ Class <> meta::external::store::elasticsearch::v7::proto } Class meta::external::store::elasticsearch::v7::protocol::vX_X_X::executionPlan::tds::TDSMetadata extends meta::external::store::elasticsearch::v7::protocol::vX_X_X::executionPlan::tds::RequestResultMetadata -{ +{ columnResultPaths: meta::external::store::elasticsearch::v7::protocol::vX_X_X::executionPlan::tds::TDSColumnResultPath[1..*]; } Class meta::external::store::elasticsearch::v7::protocol::vX_X_X::executionPlan::tds::TDSColumnResultPath -{ +{ index: Integer[1]; resultPath: meta::external::store::elasticsearch::v7::protocol::vX_X_X::tds::ResultPath[1]; } diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/store/runtime.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/store/runtime.pure index e3e5b7eb177..1122ad52bc9 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/store/runtime.pure +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/src/main/resources/core_elasticsearch_seven_metamodel/store/runtime.pure @@ -12,10 +12,10 @@ // See the License for the specific language governing permissions and // limitations under the License. -Class meta::external::store::elasticsearch::v7::metamodel::runtime::Elasticsearch7StoreConnection extends meta::pure::runtime::Connection -[ - needsElasticStore: $this.element->instanceOf(meta::external::store::elasticsearch::v7::metamodel::store::Elasticsearch7Store) -] +Class meta::external::store::elasticsearch::v7::metamodel::runtime::Elasticsearch7StoreConnection extends meta::core::runtime::Connection +//[ +// needsElasticStore: $this.element->instanceOf(meta::external::store::elasticsearch::v7::metamodel::store::Elasticsearch7Store) +//] { sourceSpec: meta::external::store::elasticsearch::v7::metamodel::runtime::Elasticsearch7StoreURLSourceSpecification[1]; // todo generalize authSpec: meta::pure::runtime::connection::authentication::AuthenticationSpecification[1]; @@ -24,4 +24,4 @@ Class meta::external::store::elasticsearch::v7::metamodel::runtime::Elasticsearc Class meta::external::store::elasticsearch::v7::metamodel::runtime::Elasticsearch7StoreURLSourceSpecification { url: meta::pure::functions::io::http::URL[1]; -} \ No newline at end of file +} diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test.pure index c9910fe619f..a32fde2f051 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test.pure +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test.pure @@ -21,6 +21,7 @@ import meta::pure::extension::*; import meta::pure::functions::io::http::*; import meta::pure::test::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::external::store::elasticsearch::executionTest::testCase::*; @@ -89,14 +90,14 @@ function meta::external::store::elasticsearch::executionTest::testCase::omdbComm ): OmdbRecord[1] { ^OmdbRecord( - _id = $title->hash(HashType.MD5), - Title = $title, + _id = $title->hash(HashType.MD5), + Title = $title, Director = $director, - MPAA = $MPAA, - ReleaseDate = format('%t{yyyy-MM-dd hh:mm:ss.SSSa}', $releaseDate), + MPAA = $MPAA, + ReleaseDate = format('%t{yyyy-MM-dd hh:mm:ss.SSSa}', $releaseDate), ReleaseDateRaw = $releaseDate, - Budget = $budget, - Revenue = $revenue, + Budget = $budget, + Revenue = $revenue, Description = $description, MainActor = ^Actor(Name = $mainActor) ); @@ -106,11 +107,11 @@ function meta::external::store::elasticsearch::executionTest::testCase::omdbComm { // at the moment,dates are hard to distinguish between StrictDate or DateTime, hence we are testing using DateTime for now let records = [ - omdbCommonIndexRecord('Iron Man', 'Jon Favreau', 'PG-13', %2008-05-02T00:00:00.100, 140, 585.8, + omdbCommonIndexRecord('Iron Man', 'Jon Favreau', 'PG-13', %2008-05-02T00:00:00.100, 140, 585.8, 'Tells the story of Tony Stark, a billionaire industrialist and genius inventor who is kidnapped and forced to build a devastating weapon', 'Robert Downey Jr.' ), - omdbCommonIndexRecord('Iron Man 2', 'Jon Favreau', 'PG-13', %2010-04-26T00:00:00.200, 170, 623.9, + omdbCommonIndexRecord('Iron Man 2', 'Jon Favreau', 'PG-13', %2010-04-26T00:00:00.200, 170, 623.9, 'With the world now aware of his identity as Iron Man, Tony Stark must contend with both his declining health and a vengeful mad man with ties to his father\'s legacy.', 'Robert Downey Jr.' ), @@ -163,7 +164,7 @@ function meta::external::store::elasticsearch::executionTest::testCase::omdbComm function <> meta::external::store::elasticsearch::executionTest::testCase::startESCluster(config:TestConfig[1]):Boolean[1] { - let omdbSerializer = {x: OmdbRecord[1], state: JSONState[1] | + let omdbSerializer = {x: OmdbRecord[1], state: JSONState[1] | $x->toJSONElement([], 1000, $state.config)->cast(@JSONObject).keyValuePairs ->filter(kv | $kv.key.value->in(['_id', 'ReleaseDateRaw'])->not()) ->newJSONObject() @@ -227,7 +228,7 @@ function meta::external::store::elasticsearch::executionTest::testCase::tds::run let vars = $variables->filter(x | $x.second.second.values->isNotEmpty())->map(x | pair($x.first, $x.second.second->map(l | if($l.values->size() == 1, |$l.values, |$l)->toOne()))); let url = $config.tag->meta::external::store::elasticsearch::executionTest::utils::startElasticsearchTestServer(); - + let toCompile = $config.model->replace('%_url_%', 'http://%s:%d'->format([$url.host, $url.port])) + '\n\n' + '###Pure \n\n ' + 'function test::test(' + $varDefinitions + '): TabularDataSet[1] {\n' + @@ -242,29 +243,27 @@ function meta::external::store::elasticsearch::executionTest::testCase::tds::run function meta::external::store::elasticsearch::executionTest::testCase::execute(config: TestConfig[1], f: FunctionDefinition[1], vars: Pair[*]): TabularDataSet[1] { - // $f->printFunctionDefinition(' ')->println(); - let resultJson = meta::legend::execute( $f, $vars, ^ExecutionContext(), $config.extension ); - + // println($resultJson); let result = $resultJson->meta::json::parseJSON()->cast(@meta::json::JSONObject); let builderJson = $result->meta::json::getValue('builder')->toOne(); let builder = $builderJson->meta::json::fromJSON(meta::protocols::pure::vX_X_X::metamodel::invocation::execution::execute::TDSBuilder) ->cast(@meta::protocols::pure::vX_X_X::metamodel::invocation::execution::execute::TDSBuilder); - + let tdsColumns = $builder.columns->toIndexed()->map(c | ^TDSColumn(offset = $c.first, name=$c.second.name, type = $c.second.type->map(t | $t->stringToDataType()))); let rowsJson = $result->meta::json::getValue('result') ->cast(@meta::json::JSONObject)->toOne()->meta::json::getValue('rows') ->cast(@meta::json::JSONArray).values ->cast(@meta::json::JSONObject)->map(o | $o->meta::json::getValue('values')) - ->cast(@meta::json::JSONArray); + ->cast(@meta::json::JSONArray); let tds = ^TabularDataSet(columns = $tdsColumns); @@ -274,28 +273,23 @@ function meta::external::store::elasticsearch::executionTest::testCase::execute( function meta::external::store::elasticsearch::executionTest::testCase::assertTdsEquivalent(description: String[1], expected: TabularDataSet[1], actual: TabularDataSet[1]): Boolean[1] { - assertEquals($expected.columns.name, $actual.columns.name, - 'Columns are different. Expected %s, got %s', + assertEquals($expected.columns.name, $actual.columns.name, + 'Columns are different. Expected %s, got %s', [ $expected.columns.name->joinStrings('[', ', ', ']'), $actual.columns.name->joinStrings('[', ', ', ']') ] ); - assertEquals($expected.rows->size(), $actual.rows->size(), - 'Number of rows are different. Expected %d, got %d', + assertEquals($expected.rows->size(), $actual.rows->size(), + 'Number of rows are different. Expected %d, got %d', [ $expected.rows->size(), $actual.rows->size() ] ); - // println($expected.rows.values); - // println($actual.rows.values); - let zipped = if ($description->contains('sort('), | $expected.rows->map(r | $expected.columns.name->map(c | $r.get($c))) ->zip($actual.rows->map(r | $actual.columns.name->map(c | $r.get($c)))), | $expected->sort($expected.columns.name).rows->map(r | $expected.columns.name->map(c | $r.get($c))) - ->zip($actual->sort($actual.columns.name).rows->map(r | $actual.columns.name->map(c | $r.get($c)))) + ->zip($actual->sort($actual.columns.name).rows->map(r | $actual.columns.name->map(c | $r.get($c)))) ); - // $zipped->map(p | $p.first->toString() + ' == ' + $p.second->toString())->println(); - $zipped->forAll(x | assert(comparePrimitives($x.first, $x.second))); } diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_7.pure b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_7.pure index 40f3c46203b..9d4c2e19e3f 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_7.pure +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/src/main/resources/core_elasticsearch_execution_test/elasticsearch_plan_test_7.pure @@ -16,6 +16,7 @@ import meta::external::store::elasticsearch::v7::specification::utils::*; import meta::pure::functions::io::http::*; import meta::pure::test::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::runtime::connection::authentication::*; @@ -130,4 +131,4 @@ function <> meta::external::store::elasticsearch::execution function <> meta::external::store::elasticsearch::executionTest::test::v7::test_7_17_0(): PureTestCollection[1] { '7.17.7'->collectTest([]); -} \ No newline at end of file +} diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/src/main/resources/core_external_format_flatdata/binding/validation/tests/validation_test.pure b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/src/main/resources/core_external_format_flatdata/binding/validation/tests/validation_test.pure index 695e2484562..03c36b2d96f 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/src/main/resources/core_external_format_flatdata/binding/validation/tests/validation_test.pure +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/src/main/resources/core_external_format_flatdata/binding/validation/tests/validation_test.pure @@ -11,7 +11,9 @@ import meta::pure::executionPlan::*; import meta::pure::graphFetch::execution::*; import meta::pure::executionPlan::toString::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::model::unit::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::external::format::flatdata::binding::validation::test::*; @@ -49,7 +51,7 @@ Association meta::external::format::flatdata::binding::validation::test::FileRow function <> meta::external::format::flatdata::binding::validation::test::testFlatDataSchemaBindingWithImmaterialFooter():Boolean[1] { - let schema = + let schema = '###ExternalFormat\n' + 'Binding meta::external::format::flatdata::binding::validation::test::TestBinding\n' + '{\n' + @@ -82,11 +84,11 @@ function <filter(secToProp | $secToProp.property.name == 'row'); assertNotEmpty($rowSectionToProperty); assert($rowSectionToProperty->toOne().section.name == 'Row'); -} +} function meta::external::format::flatdata::binding::validation::test::compileGrammar(grammar:String[1]): PackageableElement[*] { let fStr = 'meta::legend::compile_String_1__PackageableElement_MANY_'; let func = $fStr->pathToElement()->cast(@Function<{String[1]->PackageableElement[*]}>); $func->eval($grammar); -} \ No newline at end of file +} diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/src/main/resources/core_external_format_flatdata/executionPlan/tests/dataTypes.pure b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/src/main/resources/core_external_format_flatdata/executionPlan/tests/dataTypes.pure index 38529e98202..19bedc485e9 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/src/main/resources/core_external_format_flatdata/executionPlan/tests/dataTypes.pure +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/src/main/resources/core_external_format_flatdata/executionPlan/tests/dataTypes.pure @@ -14,6 +14,7 @@ import meta::pure::dataQuality::*; import meta::pure::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::graphFetch::execution::*; import meta::external::format::shared::functions::*; @@ -208,7 +209,7 @@ import meta::external::format::flatdata::executionPlan::test::types::*; function meta::external::format::flatdata::executionPlan::test::types::getAllTypesBinding():Binding[1] { - let schema = + let schema = '###ExternalFormat\n' + 'Binding meta::external::format::flatdata::executionPlan::test::types::AllTypesBinding\n' + '{\n' + @@ -228,13 +229,13 @@ function meta::external::format::flatdata::executionPlan::test::types::getAllTyp ' }\n' + ' ];\n' + '}'; - + compileLegendGrammar($schema)->filter(ele | $ele->instanceOf(Binding))->cast(@Binding)->toOne(); } function meta::external::format::flatdata::executionPlan::test::types::getEnumClassBinding():Binding[1] { - let schema = + let schema = '###ExternalFormat\n' + 'Binding meta::external::format::flatdata::executionPlan::test::types::EnumClassBinding\n' + '{\n' + @@ -254,7 +255,7 @@ function meta::external::format::flatdata::executionPlan::test::types::getEnumCl ' }\n' + ' ];\n' + '}'; - + compileLegendGrammar($schema)->filter(ele | $ele->instanceOf(Binding))->cast(@Binding)->toOne(); } diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/src/main/resources/core_external_format_flatdata/executionPlan/tests/multiSection.pure b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/src/main/resources/core_external_format_flatdata/executionPlan/tests/multiSection.pure index cb5e0f4a87c..1f2f7c3921c 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/src/main/resources/core_external_format_flatdata/executionPlan/tests/multiSection.pure +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/src/main/resources/core_external_format_flatdata/executionPlan/tests/multiSection.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::graphFetch::execution::*; import meta::external::format::shared::functions::*; @@ -138,7 +139,7 @@ function <toOne(); - + let query = {data:Byte[*]|LoanPrice.all()->graphFetch($tree)->from(PriceRowToLoanPrice, getRuntimeWithModelQueryConnection(PricesRecord, $binding, $data))->serialize($tree)}; let result = executeFlatdataBindingQuery($query, pair('data', convertStringToBytes($data))); @@ -157,7 +158,7 @@ import meta::external::format::flatdata::executionPlan::test::multiSection::*; function meta::external::format::flatdata::executionPlan::test::multiSection::getWholeLoanPriceFileBinding():Binding[1] { - let schema = + let schema = '###ExternalFormat\n' + 'Binding meta::external::format::flatdata::executionPlan::test::multiSection::WholeLoanPriceFileBinding\n' + '{\n' + @@ -182,13 +183,13 @@ function meta::external::format::flatdata::executionPlan::test::multiSection::ge ' }\n' + ' ];\n' + '}\n'; - + compileLegendGrammar($schema)->filter(ele | $ele->instanceOf(Binding))->cast(@Binding)->toOne(); } function meta::external::format::flatdata::executionPlan::test::multiSection::getWholeLoanPriceFileWithFooterBinding():Binding[1] { - let schema = + let schema = '###ExternalFormat\n' + 'Binding meta::external::format::flatdata::executionPlan::test::multiSection::WholeLoanPriceFileBinding\n' + '{\n' + @@ -213,7 +214,7 @@ function meta::external::format::flatdata::executionPlan::test::multiSection::ge ' }\n' + ' ];\n' + '}\n'; - + compileLegendGrammar($schema)->filter(ele | $ele->instanceOf(Binding))->cast(@Binding)->toOne(); } @@ -277,4 +278,4 @@ Mapping meta::external::format::flatdata::executionPlan::test::multiSection::Pri currency: $src.currency, closePrice: $src.closePrice } -) \ No newline at end of file +) diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/src/main/resources/core_external_format_flatdata/executionPlan/tests/simple.pure b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/src/main/resources/core_external_format_flatdata/executionPlan/tests/simple.pure index f218b87e107..a2ea90cda2c 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/src/main/resources/core_external_format_flatdata/executionPlan/tests/simple.pure +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/src/main/resources/core_external_format_flatdata/executionPlan/tests/simple.pure @@ -26,7 +26,9 @@ import meta::pure::executionPlan::toString::*; import meta::pure::graphFetch::execution::*; import meta::pure::mapping::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::model::unit::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function <> meta::external::format::flatdata::executionPlan::test::testInternalizeExternalizeSimpleWithConstantString(): Boolean[1] @@ -80,7 +82,7 @@ function <internalize($binding, $data)->graphFetch($tree)->serialize($tree)}; let vars = pair('data', 'First Name,Last Name\nJohn,Doe\nOlive,Yew'); - + let result = executeFlatdataBindingQuery($query, $vars); assertEquals('{"builder":{"_type":"json"},"values":[{"firstName":"John","lastName":"Doe"},{"firstName":"Olive","lastName":"Yew"}]}', $result); @@ -92,7 +94,7 @@ function <internalize($binding, $data)->graphFetch($tree)->externalize($binding, $tree)}; let vars = pair('data', 'First Name,Last Name\nJohn,Doe\nOlive,Yew'); - + let result = executeFlatdataBindingQuery($query, $vars); assertEquals('First Name,Last Name\nJohn,Doe\nOlive,Yew', $result); @@ -104,7 +106,7 @@ function <internalize($binding, $data)->graphFetchChecked($tree)->serialize($tree)}; let vars = pair('data', 'First Name,Last Name\nJohn,Doe\nOlive,Yew'); - + let result = executeFlatdataBindingQuery($query, $vars); assertEquals('{"builder":{"_type":"json"},"values":[{"defects":[],"source":{"number":1,"lineNumber":2,"record":"John,Doe","recordValues":[{"address":"First Name","rawValue":"John"},{"address":"Last Name","rawValue":"Doe"}]},"value":{"firstName":"John","lastName":"Doe"}},{"defects":[],"source":{"number":2,"lineNumber":3,"record":"Olive,Yew","recordValues":[{"address":"First Name","rawValue":"Olive"},{"address":"Last Name","rawValue":"Yew"}]},"value":{"firstName":"Olive","lastName":"Yew"}}]}', $result); @@ -116,7 +118,7 @@ function <internalize($binding, $data)->graphFetchChecked($tree)->serialize($tree)}; let vars = pair('data', 'First Name,Last Name\nJ,Doe'); - + let result = executeFlatdataBindingQuery($query, $vars); assertEquals('{"builder":{"_type":"json"},"values":{"defects":[{"id":"0","externalId":null,"message":"Constraint :[0] violated in the Class Person","enforcementLevel":"Error","ruleType":"ClassConstraint","ruleDefinerPath":"meta::external::format::flatdata::executionPlan::test::Person","path":[]}],"source":{"number":1,"lineNumber":2,"record":"J,Doe","recordValues":[{"address":"First Name","rawValue":"J"},{"address":"Last Name","rawValue":"Doe"}]},"value":{"firstName":"J","lastName":"Doe"}}}', $result); @@ -128,7 +130,7 @@ function <internalize($binding, $data)->graphFetchChecked($tree)->serialize($tree)}; let vars = pair('data', 'First Name,Last Name\nJ,Doe'); - + let result = executeFlatdataBindingQuery($query, $vars); assertEquals('{"builder":{"_type":"json"},"values":{"defects":[{"id":"0","externalId":null,"message":"Constraint :[0] violated in the Class Person","enforcementLevel":"Error","ruleType":"ClassConstraint","ruleDefinerPath":"meta::external::format::flatdata::executionPlan::test::Person","path":[]}],"source":{"number":1,"lineNumber":2,"record":"J,Doe","recordValues":[{"address":"First Name","rawValue":"J"},{"address":"Last Name","rawValue":"Doe"}]},"value":{"lastName":"Doe"}}}', $result); @@ -140,7 +142,7 @@ function <internalize($binding, $data)->graphFetchChecked($tree)->serialize($tree)}; let vars = pair('data', 'First Name,Last Name\n,Doe\nOlive,Yew'); - + let result = executeFlatdataBindingQuery($query, $vars); assertEquals('{"builder":{"_type":"json"},"values":[{"defects":[{"id":null,"externalId":null,"message":"Failed to read \'First Name\' not present in the source","enforcementLevel":"Critical","ruleType":"InvalidInput","ruleDefinerPath":"meta::external::format::flatdata::executionPlan::test::TestSchema","path":[]}],"source":{"number":1,"lineNumber":2,"record":",Doe","recordValues":[{"address":"First Name","rawValue":""},{"address":"Last Name","rawValue":"Doe"}]},"value":null},{"defects":[],"source":{"number":2,"lineNumber":3,"record":"Olive,Yew","recordValues":[{"address":"First Name","rawValue":"Olive"},{"address":"Last Name","rawValue":"Yew"}]},"value":{"firstName":"Olive","lastName":"Yew"}}]}', $result); @@ -149,10 +151,10 @@ function <> meta::external::format::flatdata::executionPlan::test::testInternalizeWithBadHeadings(): Boolean[1] { let binding = getTestBinding(); - let tree = #{meta::external::format::flatdata::executionPlan::test::Person{firstName, lastName}}#; + let tree = #{meta::external::format::flatdata::executionPlan::test::Person{firstName, lastName}}#; let query = {data:String[1]|meta::external::format::flatdata::executionPlan::test::Person->internalize($binding, $data)->graphFetchChecked($tree)->serialize($tree)}; let vars = pair('data', 'First,Last\nJ,Doe'); - + let result = executeFlatdataBindingQuery($query, $vars); assertEquals('{"builder":{"_type":"json"},"values":{"defects":[{"id":null,"externalId":null,"message":"Heading First Name missing for mandatory column","enforcementLevel":"Critical","ruleType":"InvalidInput","ruleDefinerPath":"meta::external::format::flatdata::executionPlan::test::TestSchema","path":[]},{"id":null,"externalId":null,"message":"Heading Last Name missing for mandatory column","enforcementLevel":"Critical","ruleType":"InvalidInput","ruleDefinerPath":"meta::external::format::flatdata::executionPlan::test::TestSchema","path":[]},{"id":null,"externalId":null,"message":"Header row is invalid. Skipping all data in this section.","enforcementLevel":"Critical","ruleType":"InvalidInput","ruleDefinerPath":"meta::external::format::flatdata::executionPlan::test::TestSchema","path":[]}],"source":{"number":0,"lineNumber":1,"record":"First,Last","recordValues":[{"address":"First","rawValue":"First"},{"address":"Last","rawValue":"Last"}]},"value":null}}', $result); @@ -166,7 +168,7 @@ function <internalize($binding, $data)->checked()->serialize($tree)}; let vars = pair('data', 'First Name,Last Name\nJohn,Doe\nOlive,Yew'); - + let result = executeFlatdataBindingQuery($query, $vars); assertEquals('{"builder":{"_type":"json"},"values":[{"defects":[],"source":{"number":1,"lineNumber":2,"record":"John,Doe","recordValues":[{"address":"First Name","rawValue":"John"},{"address":"Last Name","rawValue":"Doe"}]},"value":{"firstName":"John","lastName":"Doe"}},{"defects":[],"source":{"number":2,"lineNumber":3,"record":"Olive,Yew","recordValues":[{"address":"First Name","rawValue":"Olive"},{"address":"Last Name","rawValue":"Yew"}]},"value":{"firstName":"Olive","lastName":"Yew"}}]}', $result); @@ -219,7 +221,7 @@ function <internalize($binding, $data)->checked()->serialize($tree)}; let vars = pair('data', 'First Name,Last Name\nJ,Doe'); - + let result = executeFlatdataBindingQuery($query, $vars); assertEquals('{"builder":{"_type":"json"},"values":{"defects":[{"id":"0","externalId":null,"message":"Constraint :[0] violated in the Class Person","enforcementLevel":"Error","ruleType":"ClassConstraint","ruleDefinerPath":"meta::external::format::flatdata::executionPlan::test::Person","path":[]}],"source":{"number":1,"lineNumber":2,"record":"J,Doe","recordValues":[{"address":"First Name","rawValue":"J"},{"address":"Last Name","rawValue":"Doe"}]},"value":{"firstName":"J","lastName":"Doe"}}}', $result); @@ -231,7 +233,7 @@ function <internalize($binding, $data)->graphFetch($tree)->externalize($binding, #{meta::external::format::flatdata::executionPlan::test::Person{firstName}}#)}; let vars = pair('data', 'First Name,Last Name\nJohn,Doe\nOlive,Yew'); - + let result = executeFlatdataBindingQuery($query, $vars); assertEquals('First Name\nJohn\nOlive', $result); @@ -243,7 +245,7 @@ function <graphFetch($tree)->from(meta::external::format::flatdata::executionPlan::test::M2MMapping, getRuntimeWithModelQueryConnection(meta::external::format::flatdata::executionPlan::test::Person, $binding, $data))->externalize(getTargetPersonTestBinding(), $tree);}; let vars = pair('data', 'First Name,Last Name\nJohn,Doe'); - + let result = executeFlatdataBindingQuery($query, $vars); assertEquals('Full Name\nJohn Doe', $result); @@ -255,7 +257,7 @@ function <graphFetchChecked($tree)->from(meta::external::format::flatdata::executionPlan::test::M2MMapping, getRuntimeWithModelQueryConnection(meta::external::format::flatdata::executionPlan::test::Person, $binding, $data))->serialize($tree);}; let vars = pair('data', 'First Name,Last Name\nJohn,Doe'); - + let result = executeFlatdataBindingQuery($query, $vars); assertEquals('{"builder":{"_type":"json"},"values":{"defects":[],"source":{"defects":[],"source":{"number":1,"lineNumber":2,"record":"John,Doe","recordValues":[{"address":"First Name","rawValue":"John"},{"address":"Last Name","rawValue":"Doe"}]},"value":{"lastName":"Doe","firstName":"John"}},"value":{"fullName":"John Doe"}}}', $result); @@ -299,7 +301,7 @@ Class meta::external::format::flatdata::executionPlan::test::TargetPerson function meta::external::format::flatdata::executionPlan::test::getTestBinding():Binding[1] { - let schema = + let schema = '###ExternalFormat\n' + 'Binding meta::external::format::flatdata::executionPlan::test::TestBinding\n' + '{\n' + @@ -318,13 +320,13 @@ function meta::external::format::flatdata::executionPlan::test::getTestBinding() ' }\n' + ' ];\n' + '}\n'; - + compileLegendGrammar($schema)->filter(ele | $ele->instanceOf(Binding))->cast(@Binding)->toOne(); } function meta::external::format::flatdata::executionPlan::test::getTargetPersonTestBinding():Binding[1] { - let schema = + let schema = '###ExternalFormat\n' + 'Binding meta::external::format::flatdata::executionPlan::test::TargetPersonTestBinding\n' + '{\n' + @@ -343,7 +345,7 @@ function meta::external::format::flatdata::executionPlan::test::getTargetPersonT ' }\n' + ' ];\n' + '}\n'; - + compileLegendGrammar($schema)->filter(ele | $ele->instanceOf(Binding))->cast(@Binding)->toOne(); } @@ -357,4 +359,4 @@ Mapping meta::external::format::flatdata::executionPlan::test::M2MMapping ~src Person fullName : $src.firstName + ' ' + $src.lastName; } -) \ No newline at end of file +) diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/src/main/resources/core_external_format_flatdata/executionPlan/tests/utils.pure b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/src/main/resources/core_external_format_flatdata/executionPlan/tests/utils.pure index 223d8b0ed40..4c35610af6f 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/src/main/resources/core_external_format_flatdata/executionPlan/tests/utils.pure +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/src/main/resources/core_external_format_flatdata/executionPlan/tests/utils.pure @@ -15,6 +15,7 @@ ###Pure import meta::legend::*; import meta::pure::extension::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::external::format::flatdata::executionPlan::test::convertStringToBytes(data:String[1]): InstanceValue[1] @@ -33,4 +34,4 @@ function meta::external::format::flatdata::executionPlan::test::flatDataExtensio meta::external::format::shared::externalFormatExtension(), meta::external::format::flatdata::extension::flatDataFormatExtension() ] -} \ No newline at end of file +} diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/transformation/transformation_graphFetch.pure b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/transformation/transformation_graphFetch.pure index 80d286f264e..d08b85c5fff 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/transformation/transformation_graphFetch.pure +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/transformation/transformation_graphFetch.pure @@ -28,10 +28,10 @@ function meta::external::query::graphQL::transformation::queryToPure::graphQLExe let types = $root->meta::external::query::graphQL::binding::fromPure::introspection::scanTypes([]); let fragments = $query.definitions->map(d| $d->match([ - + f : FragmentDefinition[1]| pair($f.name, list($f.selectionSet->transformSelectionToPure($types->filter(c|$c.name == $f.typeCondition)->toOne()->cast(@Class))));, o : OperationDefinition[1]| pair('__Query', list($o.selectionSet->transformSelectionToPure($root))); - ]) + ]) )->newMap(); ^RootGraphFetchTree @@ -106,7 +106,7 @@ import meta::external::query::graphQL::transformation::queryToPure::*; function meta::external::query::graphQL::transformation::queryToPure::getPlansFromGraphQL( cl:Class[1], mapping:meta::pure::mapping::Mapping[1], - runtime:meta::pure::runtime::Runtime[1], + runtime:meta::core::runtime::Runtime[1], query:meta::external::query::graphQL::metamodel::sdl::Document[1], extensions:meta::pure::extension::Extension[*] ):Pair[*] @@ -130,14 +130,14 @@ function meta::external::query::graphQL::transformation::queryToPure::graphQLExe cl:Class[1], query:meta::external::query::graphQL::metamodel::sdl::Document[1], mapping:meta::pure::mapping::Mapping[1], - runtime:meta::pure::runtime::Runtime[1], + runtime:meta::core::runtime::Runtime[1], extensions:meta::pure::extension::Extension[*] ):meta::external::query::graphQL::transformation::queryToPure::NamedExecutionPlan[*] { let pureWithParam = meta::external::query::graphQL::transformation::queryToPure::graphQLExecutableToPure($query, $cl); let res = $pureWithParam->meta::pure::graphFetch::domain::extractDomainTypeClassFromGraphFetchTree(true); - + $res->map(r| ^meta::external::query::graphQL::transformation::queryToPure::NamedExecutionPlan( name = $r.propertyName, @@ -154,7 +154,7 @@ function meta::external::query::graphQL::transformation::queryToPure::graphQLExe function meta::external::query::graphQL::transformation::queryToPure::getPlanForTotalCountDirective( cl:Class[1], mapping:meta::pure::mapping::Mapping[1], - runtime:meta::pure::runtime::Runtime[1], + runtime:meta::core::runtime::Runtime[1], query:meta::external::query::graphQL::metamodel::sdl::Document[1], extensions:meta::pure::extension::Extension[*] ):meta::external::query::graphQL::transformation::queryToPure::NamedExecutionPlan[*] diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/src/main/java/org/finos/legend/engine/query/graphQL/api/execute/GraphQLExecute.java b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/src/main/java/org/finos/legend/engine/query/graphQL/api/execute/GraphQLExecute.java index f62b46875c1..e152c9e9faf 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/src/main/java/org/finos/legend/engine/query/graphQL/api/execute/GraphQLExecute.java +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/src/main/java/org/finos/legend/engine/query/graphQL/api/execute/GraphQLExecute.java @@ -63,7 +63,7 @@ import org.finos.legend.pure.generated.Root_meta_external_query_graphQL_transformation_queryToPure_NamedExecutionPlan; import org.finos.legend.pure.generated.Root_meta_pure_executionPlan_ExecutionPlan; import org.finos.legend.pure.generated.Root_meta_pure_extension_Extension; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Runtime; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Runtime; import org.finos.legend.pure.generated.core_external_query_graphql_transformation_transformation_graphFetch; import org.finos.legend.pure.generated.core_external_query_graphql_transformation_transformation_introspection_query; import org.finos.legend.pure.generated.core_pure_executionPlan_executionPlan_print; @@ -133,7 +133,7 @@ private Response generateQueryPlans(String queryClassPath, String mappingPath, Q RichIterable extensions = this.extensionsFunc.apply(pureModel); org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.Class _class = pureModel.getClass(queryClassPath); Mapping mapping = pureModel.getMapping(mappingPath); - Root_meta_pure_runtime_Runtime runtime = HelperRuntimeBuilder.buildPureRuntime(ObjectMapperFactory.getNewStandardObjectMapperWithPureProtocolExtensionSupports().readValue(GraphQLExecute.class.getClassLoader().getResourceAsStream("exampleRuntime.json"), org.finos.legend.engine.protocol.pure.v1.model.packageableElement.runtime.Runtime.class), pureModel.getContext()); + Root_meta_core_runtime_Runtime runtime = HelperRuntimeBuilder.buildPureRuntime(ObjectMapperFactory.getNewStandardObjectMapperWithPureProtocolExtensionSupports().readValue(GraphQLExecute.class.getClassLoader().getResourceAsStream("exampleRuntime.json"), org.finos.legend.engine.protocol.pure.v1.model.packageableElement.runtime.Runtime.class), pureModel.getContext()); Document document = GraphQLGrammarParser.newInstance().parseDocument(query.query); org.finos.legend.pure.generated.Root_meta_external_query_graphQL_metamodel_sdl_Document queryDoc = toPureModel(document, pureModel); @@ -376,7 +376,7 @@ private List buildPlanWithParameter(String queryClassPath, RichIterable extensions = this.extensionsFunc.apply(pureModel); org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.Class _class = pureModel.getClass(queryClassPath); Mapping mapping = pureModel.getMapping(mappingPath); - Root_meta_pure_runtime_Runtime runtime = pureModel.getRuntime(runtimePath); + Root_meta_core_runtime_Runtime runtime = pureModel.getRuntime(runtimePath); org.finos.legend.pure.generated.Root_meta_external_query_graphQL_metamodel_sdl_Document queryDoc = toPureModel(document, pureModel); RichIterable purePlans = core_external_query_graphql_transformation_transformation_graphFetch.Root_meta_external_query_graphQL_transformation_queryToPure_graphQLExecutableToPlansWithParameters_Class_1__Document_1__Mapping_1__Runtime_1__Extension_MANY__NamedExecutionPlan_MANY_(_class, queryDoc, mapping, runtime, extensions, pureModel.getExecutionSupport()); List plans = purePlans.toList().stream().map(p -> diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/src/test/resources/org/finos/legend/engine/query/graphQL/api/test/Project1_Workspace1.pure b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/src/test/resources/org/finos/legend/engine/query/graphQL/api/test/Project1_Workspace1.pure index f284a01a3bd..2635bca3067 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/src/test/resources/org/finos/legend/engine/query/graphQL/api/test/Project1_Workspace1.pure +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/src/test/resources/org/finos/legend/engine/query/graphQL/api/test/Project1_Workspace1.pure @@ -77,6 +77,11 @@ Association simple::model::Firm_Employees employer: Firm[0..1]; } +###Relational +Database meta::relational::graphFetch::tests::domain::TestStore +( +) + ###Relational Database simple::store::DB ( @@ -196,4 +201,4 @@ Runtime simple::runtime::Runtime }# ] ]; -} \ No newline at end of file +} diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/src/main/java/org/finos/legend/engine/query/graphQL/extension/relational/directives/TotalCountDirective.java b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/src/main/java/org/finos/legend/engine/query/graphQL/extension/relational/directives/TotalCountDirective.java index f79ab0f3a96..1ddf7b144f4 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/src/main/java/org/finos/legend/engine/query/graphQL/extension/relational/directives/TotalCountDirective.java +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/src/main/java/org/finos/legend/engine/query/graphQL/extension/relational/directives/TotalCountDirective.java @@ -38,7 +38,7 @@ import org.finos.legend.pure.generated.Root_meta_external_query_graphQL_transformation_queryToPure_NamedExecutionPlan; import org.finos.legend.pure.generated.Root_meta_pure_executionPlan_ExecutionPlan; import org.finos.legend.pure.generated.Root_meta_pure_extension_Extension; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Runtime; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Runtime; import org.finos.legend.pure.generated.core_external_query_graphql_transformation_transformation_graphFetch; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.Mapping; import org.pac4j.core.profile.CommonProfile; @@ -63,7 +63,7 @@ public ExecutionPlan planDirective(Document document, PureModel pureModel, Strin { org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.type.Class _class = pureModel.getClass(rootClassPath); Mapping mapping = pureModel.getMapping(mappingPath); - Root_meta_pure_runtime_Runtime runtime = pureModel.getRuntime(runtimePath); + Root_meta_core_runtime_Runtime runtime = pureModel.getRuntime(runtimePath); org.finos.legend.pure.generated.Root_meta_external_query_graphQL_metamodel_sdl_Document queryDoc = GraphQLExecute.toPureModel(document, pureModel); RichIterable purePlans = core_external_query_graphql_transformation_transformation_graphFetch.Root_meta_external_query_graphQL_transformation_queryToPure_getPlanForTotalCountDirective_Class_1__Mapping_1__Runtime_1__Document_1__Extension_MANY__NamedExecutionPlan_MANY_(_class, mapping, runtime, queryDoc, extensions, pureModel.getExecutionSupport()); List plans = purePlans.toList().stream().map(p -> diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/src/main/java/org/finos/legend/engine/language/hostedService/compiler/toPureGraph/HelperHostedServiceBuilder.java b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/src/main/java/org/finos/legend/engine/language/hostedService/compiler/toPureGraph/HelperHostedServiceBuilder.java index dc76929df45..2b514e2bf0c 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/src/main/java/org/finos/legend/engine/language/hostedService/compiler/toPureGraph/HelperHostedServiceBuilder.java +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/src/main/java/org/finos/legend/engine/language/hostedService/compiler/toPureGraph/HelperHostedServiceBuilder.java @@ -70,7 +70,7 @@ import org.finos.legend.pure.generated.Root_meta_legend_service_metamodel_Test; import org.finos.legend.pure.generated.Root_meta_legend_service_metamodel_TestContainer; import org.finos.legend.pure.generated.Root_meta_legend_service_metamodel_TestContainer_Impl; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Runtime; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Runtime; import org.finos.legend.pure.generated.core_service_service_helperFunctions; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.Mapping; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.LambdaFunction; @@ -115,7 +115,7 @@ private static void inferEmbeddedRuntimeMapping(org.finos.legend.engine.protocol // { // PureSingleExecution pureSingleExecution = (PureSingleExecution) execution; // Mapping mapping = null; -// Root_meta_pure_runtime_Runtime runtime = null; +// Root_meta_core_runtime_Runtime runtime = null; // LambdaFunction lambda; // if (pureSingleExecution.mapping != null && pureSingleExecution.runtime != null) // { @@ -166,7 +166,7 @@ private static void inferEmbeddedRuntimeMapping(org.finos.legend.engine.protocol // { // Mapping mapping = context.resolveMapping(keyedExecutionParameter.mapping, keyedExecutionParameter.mappingSourceInformation); // inferEmbeddedRuntimeMapping(keyedExecutionParameter.runtime, keyedExecutionParameter.mapping); -// Root_meta_pure_runtime_Runtime runtime = HelperRuntimeBuilder.buildPureRuntime(keyedExecutionParameter.runtime, context); +// Root_meta_core_runtime_Runtime runtime = HelperRuntimeBuilder.buildPureRuntime(keyedExecutionParameter.runtime, context); // HelperRuntimeBuilder.checkRuntimeMappingCoverage(runtime, Lists.fixedSize.of(mapping), context, keyedExecutionParameter.runtime.sourceInformation); // if (!executionKeyValues.add(keyedExecutionParameter.key)) // { @@ -316,7 +316,7 @@ public static Root_meta_legend_service_metamodel_ExecutionParameters processExec SingleExecutionParameters execParams = (SingleExecutionParameters) params; Mapping mapping = context.resolveMapping(execParams.mapping, execParams.mappingSourceInformation); inferEmbeddedRuntimeMapping(execParams.runtime, execParams.mapping); - Root_meta_pure_runtime_Runtime runtime = HelperRuntimeBuilder.buildPureRuntime(execParams.runtime, context); + Root_meta_core_runtime_Runtime runtime = HelperRuntimeBuilder.buildPureRuntime(execParams.runtime, context); HelperRuntimeBuilder.checkRuntimeMappingCoverage(runtime, Lists.fixedSize.of(mapping), context, execParams.runtime.sourceInformation); return new Root_meta_legend_service_metamodel_SingleExecutionParameters_Impl("", null, context.pureModel.getClass("meta::legend::service::metamodel::SingleExecutionParameters")) ._key(execParams.key) diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/src/main/resources/core_hostedservice/generation/generation.pure b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/src/main/resources/core_hostedservice/generation/generation.pure index b5ac29ec51a..afd1c983fac 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/src/main/resources/core_hostedservice/generation/generation.pure +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/src/main/resources/core_hostedservice/generation/generation.pure @@ -1,5 +1,6 @@ import meta::pure::model::unit::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::pure::mapping::*; import meta::legend::service::*; import meta::external::format::shared::binding::*; @@ -29,14 +30,14 @@ function meta::external::function::activator::hostedService::validator::validate { if($s.function->functionReturnType().rawType->in(allowedReturnTypes()), | true;, - | assert($s.binding->isNotEmpty() || $s.contentType->isNotEmpty(), 'Service must return a serializable: '+ allowedReturnTypes().name->joinStrings('[',',',']')+ ', or must use binding/contentType to externalize') + | assert($s.binding->isNotEmpty() || $s.contentType->isNotEmpty(), 'Service must return a serializable: '+ allowedReturnTypes().name->joinStrings('[',',',']')+ ', or must use binding/contentType to externalize') ); } function meta::external::function::activator::hostedService::validator::validateFunction(func:Function[1]): Boolean[1] { $func->match([ - lf: LambdaFunction[1]| + lf: LambdaFunction[1]| $lf.expressionSequence->map(es| $es->evaluateAndDeactivate()->validateExpression()); , cd: ConcreteFunctionDefinition[1]| $cd.expressionSequence->map(es| $es->evaluateAndDeactivate()->validateExpression()); , @@ -49,8 +50,8 @@ function meta::external::function::activator::hostedService::validator::validate { $expression->match([ sfe:SimpleFunctionExpression[1]| - if($sfe.func == letFunction_String_1__T_m__T_m_ && $sfe.parametersValues->at(1)->instanceOf(SimpleFunctionExpression), - |assert($sfe.parametersValues->at(1)->cast(@SimpleFunctionExpression).func->in(allowedPlatformFunctions()), + if($sfe.func == letFunction_String_1__T_m__T_m_ && $sfe.parametersValues->at(1)->instanceOf(SimpleFunctionExpression), + |assert($sfe.parametersValues->at(1)->cast(@SimpleFunctionExpression).func->in(allowedPlatformFunctions()), 'Usage of platform function not allowed during service registration, Function: '+$sfe.parametersValues->at(1)->cast(@SimpleFunctionExpression).functionName->toOne()); , | true; );, @@ -100,7 +101,7 @@ function meta::external::function::activator::hostedService::generation::getTree { let functionReturn = $func->functionReturnType(); $func->match([ - cd: ConcreteFunctionDefinition[1]| + cd: ConcreteFunctionDefinition[1]| let expr = $cd.expressionSequence->evaluateAndDeactivate()->filter(es| $es->instanceOf(SimpleFunctionExpression) && $es->cast(@SimpleFunctionExpression).genericType.rawType == $functionReturn.rawType)->last()->cast(@SimpleFunctionExpression); assertEquals(1, $expr->size(), 'unexpected size'); assertEquals('from', $expr->cast(@SimpleFunctionExpression).functionName, 'unexpected function'); @@ -172,7 +173,7 @@ function meta::external::function::activator::hostedService::generation::rebuild let newFunc = rebuildFromExpression($h.function, $p->cast(@SingleExecutionParameters)); let newHostedService = ^$h(function=$newFunc); pair($p->cast(@SingleExecutionParameters).key, $newHostedService); - ); + ); } function meta::external::function::activator::hostedService::generation::rebuildFromExpression(func: PackageableFunction[1], executionParam:SingleExecutionParameters[1]): PackageableFunction[1] @@ -229,7 +230,7 @@ function meta::external::function::activator::hostedService::generation::getExec function meta::external::function::activator::hostedService::validator::allowedPlatformFunctions():Function[*] { - + [ today__StrictDate_1_, new_Class_1__String_1__KeyExpression_MANY__T_1_, @@ -239,7 +240,7 @@ function meta::external::function::activator::hostedService::validator::allowedP function meta::external::function::activator::hostedService::validator::allowedReturnTypes():Type[*] { - + [ TabularDataSet, String, diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/src/main/resources/core_hostedservice/showcase/showcaseModel.pure b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/src/main/resources/core_hostedservice/showcase/showcaseModel.pure index 2b3f244a2e5..d22a487cd78 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/src/main/resources/core_hostedservice/showcase/showcaseModel.pure +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/src/main/resources/core_hostedservice/showcase/showcaseModel.pure @@ -2,7 +2,9 @@ import meta::external::function::activator::hostedService::tests::*; import meta::external::function::activator::hostedService::tests::model::simple::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::metamodel::*; @@ -25,18 +27,20 @@ function meta::external::function::activator::hostedService::tests::testRuntime( testRuntime(testDatabaseConnection($db,[]->cast(@String))); } -function <> meta::external::function::activator::hostedService::tests::testRuntime(testConnection:TestDatabaseConnection[1]):Runtime[1] +function <> meta::external::function::activator::hostedService::tests::testRuntime(testConnection:ConnectionStore[1]):Runtime[1] { - ^Runtime(connections = $testConnection) + ^Runtime(connectionStores = $testConnection) } -function <> meta::external::function::activator::hostedService::tests::testDatabaseConnection(db:Database[1], timeZone:String[0..1]):TestDatabaseConnection[1] +function <> meta::external::function::activator::hostedService::tests::testDatabaseConnection(db:Database[1], timeZone:String[0..1]):ConnectionStore[1] { - ^TestDatabaseConnection( + ^ConnectionStore( element = $db, + connection= + ^TestDatabaseConnection( type = DatabaseType.H2, timeZone = if($timeZone->isEmpty(), |'GMT', |$timeZone) - ); + )); } @@ -48,7 +52,7 @@ import meta::external::function::activator::hostedService::tests::*; Mapping meta::external::function::activator::hostedService::tests::simpleRelationalMapping ( - + PersonX : Relational { scope([dbInc]) @@ -63,14 +67,14 @@ Mapping meta::external::function::activator::hostedService::tests::simpleRelatio manager : [dbInc]@Person_Manager } - + ) Mapping meta::external::function::activator::hostedService::tests::simpleRelationalMapping2 ( - + PersonX : Relational { scope([dbInc]) @@ -85,7 +89,7 @@ Mapping meta::external::function::activator::hostedService::tests::simpleRelatio manager : [dbInc]@Person_Manager } - + ) diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/src/test/java/org/finos/legend/tableformat/iceberg/testsupport/IceboxSparkTest.java b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/src/test/java/org/finos/legend/tableformat/iceberg/testsupport/IceboxSparkTest.java index 13af0a83ea9..40b060ec94d 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/src/test/java/org/finos/legend/tableformat/iceberg/testsupport/IceboxSparkTest.java +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/src/test/java/org/finos/legend/tableformat/iceberg/testsupport/IceboxSparkTest.java @@ -22,12 +22,10 @@ import org.apache.iceberg.catalog.Namespace; import org.apache.iceberg.catalog.SupportsNamespaces; import org.apache.iceberg.catalog.TableIdentifier; -import org.junit.Assert; -import org.junit.Assume; -import org.junit.ClassRule; -import org.junit.Test; +import org.junit.*; import org.testcontainers.DockerClientFactory; +@Ignore public class IceboxSparkTest { @ClassRule diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/src/test/java/org/finos/legend/tableformat/iceberg/testsupport/IceboxTrinoTest.java b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/src/test/java/org/finos/legend/tableformat/iceberg/testsupport/IceboxTrinoTest.java index 14a706a2335..30a3abfb1db 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/src/test/java/org/finos/legend/tableformat/iceberg/testsupport/IceboxTrinoTest.java +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/src/test/java/org/finos/legend/tableformat/iceberg/testsupport/IceboxTrinoTest.java @@ -15,20 +15,18 @@ package org.finos.legend.tableformat.iceberg.testsupport; -import java.sql.Connection; -import java.sql.Statement; import org.apache.iceberg.catalog.Catalog; import org.apache.iceberg.catalog.Namespace; import org.apache.iceberg.catalog.SupportsNamespaces; import org.apache.iceberg.catalog.TableIdentifier; -import org.junit.Assert; -import org.junit.Assume; -import org.junit.ClassRule; -import org.junit.Test; +import org.junit.*; import org.testcontainers.DockerClientFactory; import software.amazon.awssdk.services.s3.model.ListObjectsV2Request; import software.amazon.awssdk.services.s3.model.ListObjectsV2Response; +import java.sql.Connection; +import java.sql.Statement; +@Ignore public class IceboxTrinoTest { @ClassRule diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/src/main/resources/core_external_language_java/generation/conventions.pure b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/src/main/resources/core_external_language_java/generation/conventions.pure index 4b585fd2a63..cd9b5d2d9b8 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/src/main/resources/core_external_language_java/generation/conventions.pure +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/src/main/resources/core_external_language_java/generation/conventions.pure @@ -157,7 +157,7 @@ function meta::external::language::java::transform::pureTypeToJavaType(conventio function meta::external::language::java::transform::pureTypeToJavaType(conventions:Conventions[1], g:GenericType[1], mult:Multiplicity[1]): meta::external::language::java::metamodel::Type[1] { if($g.rawType->isEmpty(), - {| + {| let typeName = $g.typeParameter.name->toOne('Only one type parameter supported but found: ' + $g->printGenericType()); $typeName->javaTypeVar()->listIfMulti($mult); }, @@ -218,9 +218,9 @@ function meta::external::language::java::transform::pureTypeToJavaType(conventio | if($type == Map, | javaMap($typeArgs->at(0), $typeArgs->at(1))->listIfMulti($mult), - | + | if($type->instanceOf(meta::pure::metamodel::type::Enumeration) || $type->instanceOf(meta::pure::metamodel::type::Class) || $type->instanceOf(Unit) || $type->instanceOf(Measure), - {| + {| let class = $conventions->className($type); let classWithTypes = if($typeArgs->isEmpty(), |$class, @@ -1173,7 +1173,7 @@ function meta::external::language::java::transform::defaultProhibitedFunctions(e meta::vcs::metamodel::versionHistory_String_MANY__Revision_MANY_, profile_T_m__Boolean_1__ProfileResult_1_, readFile_String_1__String_$0_1$_, - + meta::json::escape_String_1__String_1_, meta::json::fromJsonDeprecated_String_1__Class_1__JSONDeserializationConfig_1__T_1_, meta::json::fromJson_String_1__Class_1__JSONDeserializationConfig_1__T_1_, @@ -1197,7 +1197,7 @@ function meta::external::language::java::transform::defaultProhibitedFunctions(e 'meta::pure::migration', 'meta::pure::milestoning', 'meta::pure::router', - 'meta::pure::runtime', + 'meta::core::runtime', 'meta::pure::service', 'meta::pure::store', 'meta::pure::tools', @@ -1304,4 +1304,4 @@ function <> meta::external::language::java::transform::startsWit function meta::external::language::java::transform::checkForReservedWordsForGet(propertyName : String[1]): Boolean[1] { ($propertyName == 'class') || ($propertyName =='Class') -} \ No newline at end of file +} diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/src/main/resources/core_external_language_java/generation/expressionGeneration.pure b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/src/main/resources/core_external_language_java/generation/expressionGeneration.pure index db34d7ebf60..7e05e0031a6 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/src/main/resources/core_external_language_java/generation/expressionGeneration.pure +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/src/main/resources/core_external_language_java/generation/expressionGeneration.pure @@ -22,6 +22,7 @@ import meta::external::language::java::transform::convention::*; import meta::external::language::java::transform::*; import meta::pure::executionPlan::*; import meta::pure::graphFetch::execution::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::router::metamodel::*; @@ -44,7 +45,7 @@ function <> meta::external::language::java::transform::statement $x->generateJavaInternal($conventions, $debug);); $generated->match([ {c0: Code[0] | []}, - {cs: Code[*] | + {cs: Code[*] | let toLast = $cs->init(); let last = $cs->last()->toOne(); @@ -68,7 +69,7 @@ function meta::external::language::java::transform::generateJava(vs:ValueSpecifi function meta::external::language::java::transform::generateJava(vs:ValueSpecification[1], conventions: Conventions[1], debug: meta::pure::tools::DebugContext[1]):Code[1] { let expr = $vs->generateJavaInternal($conventions, $debug); - + if($expr->isAssignment() || $expr->isDeclarationWithAssignment(), | $expr->expressionAssigned(), | $expr @@ -115,13 +116,13 @@ function <> meta::external::language::java::transform::processVa function <> meta::external::language::java::transform::extractTypeName(type:meta::external::language::java::metamodel::Type[1]):String[*] { - if($type->instanceOf(meta::external::language::java::metamodel::ParameterizedType), + if($type->instanceOf(meta::external::language::java::metamodel::ParameterizedType), | let clazz = $type->cast(@meta::external::language::java::metamodel::ParameterizedType); if($clazz.typeArguments->at(0)->instanceOf(meta::external::language::java::metamodel::ParameterizedType), | $clazz.typeArguments->at(0)->cast(@meta::external::language::java::metamodel::ParameterizedType).typeArguments->cast(@meta::external::language::java::metamodel::Class).simpleName, | $clazz.typeArguments->cast(@meta::external::language::java::metamodel::Class).simpleName; );, - | if($type->instanceOf(meta::external::language::java::metamodel::PrimitiveType), + | if($type->instanceOf(meta::external::language::java::metamodel::PrimitiveType), | $type->cast(@meta::external::language::java::metamodel::PrimitiveType).simpleName, | $type->cast(@meta::external::language::java::metamodel::Class).simpleName ) @@ -138,7 +139,7 @@ function meta::external::language::java::transform::validateVarType(v:Code[1], t function <> meta::external::language::java::transform::processVariableExpressionAsParameter(v: VariableExpression[1], conventions: Conventions[1], debug: meta::pure::tools::DebugContext[1]):Code[1] { print(if($debug.debug,|$debug.space+'processVariableExpressionAsParameter: \''+($v.name)+'\'\n',|'')); - let c = $v.genericType.rawType->toOne(); + let c = $v.genericType.rawType->toOne(); let javaType = $conventions->pureTypeToJavaType($c, $v.multiplicity)->toBoxed(); let varName = if($v.name == 'this', |$v.name, |$conventions->identifier($v.name)); j_parameter($javaType, $varName); @@ -155,7 +156,7 @@ function <> meta::external::language::java::transform::processIn print(if($debug.debug,|$debug.space+'InstanceValue: '+$i.values->size()->toString()+' values\n',|'')); let values = $i.values->map({v| $v->match([ - {s:String[1] | $conventions->stringLiteral($s);}, + {s:String[1] | $conventions->stringLiteral($s);}, {i:Integer[1] | $conventions->integerLiteral($i);}, {f:Float[1] | $conventions->floatLiteral($f);}, {d:Decimal[1] | $conventions->decimalLiteral($d);}, @@ -164,7 +165,7 @@ function <> meta::external::language::java::transform::processIn {d:Date[1] | $conventions->dateLiteral($d);}, {b:Boolean[1] | $conventions->booleanLiteral($b);}, {l:LambdaFunction[1] | $l->processLambda($conventions, $debug)}, - {e:Enum[1] | + {e:Enum[1] | let enumeration = $e->type()->cast(@meta::pure::metamodel::type::Enumeration); let javaType = $conventions->pureTypeToJavaType($enumeration, PureOne); $javaType->j_invoke('getEnumFromPureName', j_string($e.name), $javaType); @@ -175,7 +176,7 @@ function <> meta::external::language::java::transform::processIn {t:meta::pure::metamodel::type::Type[1] | j_null($conventions->pureTypeToJavaType($t, PureOne)); }, - {a:Any[1] | + {a:Any[1] | fail('Unhandled value type: ' + $v->type()->elementToPath()); j_null(); } @@ -183,32 +184,32 @@ function <> meta::external::language::java::transform::processIn }); let type = $conventions->pureTypeToJavaType($i.genericType, $i.multiplicity); - + let converted = if($i.genericType.rawType->toOne()->instanceOf(Unit), {| let unitImpl = $conventions->implClassName($i.genericType.rawType->toOne()->cast(@Unit)); - $values->map(v| $unitImpl->j_new($v)); + $values->map(v| $unitImpl->j_new($v)); }, | $values ); - + let result = $converted->match([ - {c0:Code[0] | if($type->isJavaList(), |j_emptyList($type), |j_null($type))}, - {c :Code[1] | + {c0:Code[0] | if($type->isJavaList(), |j_emptyList($type), |j_null($type))}, + {c :Code[1] | // TODO Simplify this once lambdas handled better above if($c.type->instanceOf(meta::external::language::java::metamodel::FunctionType), |$c, |$c->j_cast($type)); - }, - {cs:Code[*] | + }, + {cs:Code[*] | // If the types in the list differ to $type that the list iS being cast to, then we need to explicitly type the asList() function // otherwise Java generics falls over when trying to type unify the cast type and the type of the list returning by asList() // For example this is requried to type lists such as [1,2.0] where the list should be cast as Number but the elements of the list are subtypes of Number let types = $values.type->removeDuplicates(); - let typeArguments = if($types->size() == 1, - | [], + let typeArguments = if($types->size() == 1, + | [], | if($type->isJavaList(), | $type->elementTypeOfJavaList(), | $type) - ); + ); j_invoke(javaArrays(), $typeArguments, 'asList', $cs, $type)->j_cast($type); - } + } ]); $result->debugAndReturn($debug); } @@ -217,9 +218,9 @@ function <> meta::external::language::java::transform::processFu { let params = $fe.parametersValues->evaluateAndDeactivate(); let result = $fe.func->match([ - {p:Property[1] | + {p:Property[1] | print(if($debug.debug,|$debug.space+'Property: \''+($fe.func.name->toOne())+'\'\n',|'')); - let src = $params->at(0)->generateJava($conventions, $debug->indent()); + let src = $params->at(0)->generateJava($conventions, $debug->indent()); $src->j_invoke($conventions->getterName($p), [], $conventions->pureTypeToJavaType($p)); }, {q:QualifiedProperty[1] | @@ -228,11 +229,11 @@ function <> meta::external::language::java::transform::processFu let args = $params->tail()->map(p| $p->generateJava($conventions, $debug->indent())); $src->j_invoke($conventions->getterName($q), $args, $conventions->pureTypeToJavaType($q)); }, - {z:Any[1] | + {z:Any[1] | print(if($debug.debug,|$debug.space+'func: \''+($fe.func.name->toOne())+'\'\n',|'')); assert(!$conventions->isProhibitedFunction($fe.func), |$fe.func.name->toOne()+' is prohibited!'); let toEval = $conventions->getFunctionCoder($fe.func); - assert($toEval->isNotEmpty() || $fe.func->instanceOf(ConcreteFunctionDefinition), + assert($toEval->isNotEmpty() || $fe.func->instanceOf(ConcreteFunctionDefinition), {| let f = $fe.func->toOne(); let p = if($f->instanceOf(PackageableElement), |$f->cast(@PackageableElement).package, |[]); @@ -260,7 +261,7 @@ function <> meta::external::language::java::transform::processCo {i| let arg = $args->at($i); let argType = $argTypes->at($i); - + if($argType->isJavaList(), |$arg->j_listOf($argType), |$arg)->j_cast($argType); } ); @@ -272,7 +273,7 @@ function <> meta::external::language::java::transform::processCo $name, {state| print(if($debug.debug,|$debug.space+'Implementation of: \''+$fe.func->elementToPath()+'\'\n',|'')); - + let implBody = $fe.func->cast(@ConcreteFunctionDefinition).expressionSequence->evaluateAndDeactivate()->generateJavaMethodBody($newCon, $debug->indent()); let classesUsed = $signature.method->typesUsed()->concatenate($implBody->typesUsed())->typesToClasses(); let withImports = javaClass('public', $signature.class) @@ -285,9 +286,9 @@ function <> meta::external::language::java::transform::processCo $withDependencies->addDependencyProject($name, $project); } ); - + j_invoke($signature.class, $signature.method.name, $castArgs, $signature.method.returnType)->dependsOn($dependency);, - + |j_invoke($signature.class, $signature.method.name, $castArgs, $signature.method.returnType); ); } diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/binding/shared.pure b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/binding/shared.pure index 62ef87646da..20ad2335280 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/binding/shared.pure +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/binding/shared.pure @@ -44,6 +44,7 @@ import meta::pure::executionPlan::platformBinding::legendJava::shared::naming::* import meta::pure::graphFetch::routing::*; import meta::pure::router::routing::*; import meta::pure::graphFetch::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::functions::meta::*; import meta::pure::graphFetch::*; @@ -94,12 +95,12 @@ function meta::external::format::shared::executionPlan::platformBinding::legendJ let simpleType = ^SimpleJavaType(pureType=$class, javaType=$conventions->className($class)); let sourceRecordTree = $externalFormatContract.sourceRecordSerializeTree->toOne(); let returnType = if($node.checked, | ^CheckedJavaType(checkedOf=$simpleType, source=^SimpleJavaType(pureType=$sourceRecordTree.class, javaType=$conventions->className($sourceRecordTree.class))), | $simpleType); - let bindingDetail = if($externalFormatContract.externalFormatBindingValidator->isNotEmpty(), + let bindingDetail = if($externalFormatContract.externalFormatBindingValidator->isNotEmpty(), | $externalFormatContract.externalFormatBindingValidator->toOne()->eval($node.binding), | []); let nodeInfo = ^NodeInfo( - path = $path, - returnType = $returnType, + path = $path, + returnType = $returnType, graphFetchTrees = $node.tree->concatenate($sourceRecordTree), data = $bindingDetail ); @@ -123,11 +124,11 @@ function meta::external::format::shared::executionPlan::platformBinding::legendJ assert($externalFormatJavaBindingDescriptor->isNotEmpty(), | 'Java platform binding not found for - ' + $node.binding.contentType); assert($externalFormatJavaBindingDescriptor.externalizeDescriptor->size() == 1, | 'Expected 1 externalize descriptor for - ' + $node.binding.contentType + '. Found - ' + $externalFormatJavaBindingDescriptor.externalizeDescriptor->size()->toString()); - let bindingDetail = if($externalFormatContract.externalFormatBindingValidator->isNotEmpty(), + let bindingDetail = if($externalFormatContract.externalFormatBindingValidator->isNotEmpty(), | $externalFormatContract.externalFormatBindingValidator->toOne()->eval($node.binding), | []); let nodeInfo = ^NodeInfo( - path = $path, + path = $path, returnType = ^SimpleJavaType(pureType=String, javaType=javaString()), data = $bindingDetail ); @@ -135,7 +136,7 @@ function meta::external::format::shared::executionPlan::platformBinding::legendJ let tree = resolveCheckedWrapping($node.tree); let updatedTypeInfo = $context.typeInfos->addForGraphFetchTree($tree)->addConstraintsForGraphFetchTree($tree); - + let newTypeInfos = if($externalFormatJavaBindingDescriptor.externalizeDescriptor.externalizePreparator->isNotEmpty(), | $externalFormatJavaBindingDescriptor.externalizeDescriptor.externalizePreparator->toOne()->eval($node, $path, $contextWithNodeInfo->setTypeInfos($updatedTypeInfo), $debug), | $updatedTypeInfo); @@ -162,7 +163,7 @@ Class <> meta::external::format::shared::executionPlan::platform adderName : String[1]; adderParam : Code[1]; multiplicityCheck : Code[0..1]; - + name() {$this.property.name->toOne()}: String[1]; isViaAssociation() {$this.property.owner->instanceOf(Association)}: Boolean[1]; } @@ -175,7 +176,7 @@ function meta::external::format::shared::executionPlan::platformBinding::legendJ function meta::external::format::shared::executionPlan::platformBinding::legendJava::createDataClass(class:meta::pure::metamodel::type::Class[1], bindingDetail:SuccessfulBindingDetail[1], path:String[1], context:GenerationContext[1], constraintContext:ConstraintCheckingGenerationContext[1], debug:DebugContext[1]): Project[1] { print(if($debug.debug,|$debug.space+'('+$path+') createDataClass for '+$class->elementToPath()+'\n', |'')); - + let conventions = $context.conventions; let pureDate = $conventions->className(PureDate); let defects = j_variable(javaList($conventions->defectClass()), 'defects'); @@ -185,21 +186,21 @@ function meta::external::format::shared::executionPlan::platformBinding::legendJ let baseClass = $conventions->dataClass($class, $path)->addModifiers('public') ->implements($conventions->className($class)) ->addIExternalData($class, $context); - + let properties = $context.typeInfos->allProperties($class)->map(p| let fieldName = $conventions->fieldName($p); let sizeFieldName = $fieldName+'Size'; let javaType = $conventions->pureTypeToJavaType($p); let propType = $p->functionReturnType().rawType->toOne(); let itemType = if($javaType->isJavaList(), |$javaType->elementType(), |$javaType)->toUnboxed(); - + let occurs = occursFromMultiplicity($p.multiplicity); let getSize = j_this($baseClass)->j_field($sizeFieldName, javaInt()); let lowerBoundClause = $getSize->j_lt($occurs.first); let upperBoundClause = $getSize->j_gt($occurs.second); let expectedMultiplicity = $p.multiplicity->printMultiplicity(); let addMultiplicityDefect = $defects->j_invoke('add', $conventions->newClassStructureDefect(j_string('Invalid multiplicity for '+$p.name->toOne()+': expected ['+$expectedMultiplicity+'] found [')->j_plus($getSize)->j_plus(j_string(']')), j_string($class->elementToPath())), javaVoid()); - + ^PropertyDetails( property = $p, fieldName = $fieldName, @@ -254,10 +255,10 @@ function meta::external::format::shared::executionPlan::platformBinding::legendJ ->addMethods({cls| $cls->filter(c| $p.property->in($mappedProperties))->map(c| $c->adderMethods($p, $conventions)); }); - }, - $baseClass + }, + $baseClass ); - + let propertyName = j_parameter(javaString(), 'propertyName'); let objectParam = j_parameter($withFieldsAndGetters, 'object'); @@ -297,7 +298,7 @@ function meta::external::format::shared::executionPlan::platformBinding::legendJ ); } ))); - + pair(j_string($p.name), $adderImpl); } ); @@ -413,7 +414,7 @@ function <> meta::external::format::shared::executionPlan::platf let implName = $prop.adderName+'Impl'; let otherProp = $prop.property.owner->cast(@Association).properties->filter(p| $p != $prop.property)->toOne(); let otherImplName = '_' + $conventions->fieldName($otherProp) + 'AddImpl'; - + [ javaMethod([], javaVoid(), $implName, $prop.adderParam, $impl), javaMethod('public', javaVoid(), $prop.adderName, $prop.adderParam, diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/executionPlanNodes/graphFetch/inMemory/graphFetchInMemory.pure b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/executionPlanNodes/graphFetch/inMemory/graphFetchInMemory.pure index 17a005cf937..9b8d49db6a3 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/executionPlanNodes/graphFetch/inMemory/graphFetchInMemory.pure +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/executionPlanNodes/graphFetch/inMemory/graphFetchInMemory.pure @@ -33,12 +33,14 @@ import meta::pure::graphFetch::executionPlan::*; import meta::pure::graphFetch::routing::*; import meta::pure::mapping::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::graphFetch::executionPlan::*; import meta::pure::mapping::modelToModel::graphFetch::executionPlan::platformBinding::legendJava::*; import meta::pure::mapping::modelToModel::inMemory::*; import meta::pure::mapping::xStore::*; import meta::pure::milestoning::*; import meta::pure::extension::*; +import meta::core::runtime::*; import meta::pure::runtime::*; Class meta::pure::mapping::modelToModel::executionPlan::platformBinding::legendJava::graphFetch::LegendJavaInMemoryGraphFetchExtension extends LegendJavaPlatformBindingAdhocExtension @@ -66,13 +68,13 @@ function meta::pure::mapping::modelToModel::executionPlan::platformBinding::lege p : InMemoryPropertyGraphFetchExecutionNode[1] | ^NodeInfo(path = $path, returnType = $simpleType) ]); - + let newTypeInfos = $node->match([ c : InMemoryCrossStoreGraphFetchExecutionNode[1] | let xStorePropertyMapping = $c.xStorePropertyMapping; validateXStorePropertyMapping($xStorePropertyMapping); let equalityExpressions = $xStorePropertyMapping.crossExpression->findExpressionsForFunctionInFunctionDefinition([meta::pure::functions::boolean::equal_Any_MANY__Any_MANY__Boolean_1_])->toOneMany(); let newTypeInfos = $equalityExpressions->fold( - {exp, ti | + {exp, ti | let graphFetchTree = $node.graphFetchTree->cast(@RoutedPropertyGraphFetchTree); let isMilestonedProp = $graphFetchTree.property->instanceOf(QualifiedProperty) && $graphFetchTree.property->hasGeneratedMilestoningPropertyStereotype(); let property = if ($isMilestonedProp, @@ -89,21 +91,21 @@ function meta::pure::mapping::modelToModel::executionPlan::platformBinding::lege let childClass = $property.genericType.rawType->cast(@meta::pure::metamodel::type::Class)->toOne(); let childProperty = $allProperties->filter(x | $x.owner->cast(@meta::pure::metamodel::type::Class)->_subTypeOf($childClass) || $childClass->_subTypeOf($x.owner->cast(@meta::pure::metamodel::type::Class)))->cast(@Property)->toOne(); - + $ti->addProperties([$parentProperty, $childProperty]); }, $context.typeInfos );, - p : InMemoryGraphFetchExecutionNode[1] | if($p->nodeIsMerged(), + p : InMemoryGraphFetchExecutionNode[1] | if($p->nodeIsMerged(), | let classesUsedInMerge = $p.graphFetchTree.sets.parent.classMappings->filter(m|$m->instanceOf(MergeOperationSetImplementation))->cast(@MergeOperationSetImplementation).parameters.setImplementation->cast(@PureInstanceSetImplementation).srcClass->cast(@meta::pure::metamodel::type::Class); $context.typeInfos->addForClassesWithAllProperties($classesUsedInMerge);, | $context.typeInfos; ); - - + + ]); - + ^$context( typeInfos = $newTypeInfos, nodeInfos = $context.nodeInfos->concatenate($currentNodeInfo) @@ -167,7 +169,7 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl [ $keyVar->j_declare(javaArrays()->j_invoke([javaList(javaWildcard())], 'asList', $q->functionType().parameters->evaluateAndDeactivate()->tail()->map(p | let param = j_parameter($conventions->pureTypeToJavaType($p.genericType.rawType->toOne(), $p.multiplicity), $p.name); if($p.multiplicity->hasToOneUpperBound(), | javaArrays()->j_invoke('asList', $param, javaList(javaWildcard())), | $param);), $keyType)), j_return($mapField->j_invoke( - 'computeIfAbsent', + 'computeIfAbsent', [ $keyVar, j_lambda( @@ -241,7 +243,7 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl let resultPath = $path+'.n1'; let resultGraphImpl = $initialNode->graphImplClass($resultPath, $context); let rootSet = $node.graphFetchTree->cast(@RoutedRootGraphFetchTree).sets->cast(@OperationSetImplementation)->toOne(); - + let input = j_parameter(javaList(javaObject()), 'input'); @@ -291,7 +293,7 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl let conventions = $context.conventions; let graphFetchTree = $node.graphFetchTree->cast(@RoutedPropertyGraphFetchTree); - + let isMilestonedProp = $graphFetchTree.property->instanceOf(QualifiedProperty) && $graphFetchTree.property->hasGeneratedMilestoningPropertyStereotype(); let property = if ($isMilestonedProp, | let cl = $graphFetchTree.property->functionType().parameters->evaluateAndDeactivate()->at(0).genericType.rawType->toOne()->cast(@meta::pure::metamodel::type::Class); @@ -303,14 +305,14 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl $graphFetchTree.sets.parent->map(x|$x->rootClassMappingByClass($cl)->cast(@InstanceSetImplementation))->map(w|$w->_propertyMappingsByPropertyName($property.name->toOne()))->toOne();, | $graphFetchTree.propertyMapping ); - + let currentGraphImpl = $node->graphImplClass($path, $context); let parentPath = $path->substring(0, $path->lastIndexOf('.')); let parentNodeInfo = $context->nodeInfosForPath($parentPath)->toOne(); let parentIFace = $parentNodeInfo.returnType->match([c:CheckedJavaType[1]|$c.checkedOf, s:SimpleJavaType[1]|$s])->cast(@SimpleJavaType).javaType->cast(@meta::external::language::java::metamodel::Class); let parentGraphImpl = graphImplClass($node.parentIndex->toOne(), $parentIFace, $parentPath, $context); - - let executeClassWithImports = + + let executeClassWithImports = $context.conventions->planNodeClass('public', $path, 'Execute') ->usingKnownPackages($conventions->knownPackages()) ->imports($conventions->standardImports()) @@ -323,13 +325,13 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl let transform = $parentSet->generatePropertyMappingTransform($property, $pm, $parentSrc, $conventions, $extensions, $debug->indent()); j_lambda($parentSrc, $transform->toOne()); }); - + let targetSetTransformers = $propertyMappings->map({pm | let targetSet = $graphFetchTree.sets->filter(x | $x.id == $pm.targetSetImplementationId)->toOne()->cast(@InstanceSetImplementation); let input = j_parameter($conventions->className($targetSet->sourceClass($extensions)), 'input'); j_lambda($input, $input->setTransformerCodes($path,$targetSet, $graphFetchTree, $currentGraphImpl, false, false, $context, $extensions, $debug)->j_block()); }); - + let executeClassWithFields = $executeClassWithImports ->addFields($propMappingTransformers->toIndexed()->map({idxPmt | let idx = $idxPmt.first; @@ -355,7 +357,7 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl let graphObjects = j_parameter(javaList(javaWildcard()), 'graphObjects'); let graphObject = j_parameter($parentGraphImpl, 'graphObject'); let targetGraphObject = j_parameter($currentGraphImpl, 'targetGraphObject'); - + let singlePropMappingStreamGenerator = {pmIndex: Integer[1], pm : PropertyMapping[1] | let pmTransformer = $executeClassWithFields->j_field('propertyMappingTransformer_' + $pmIndex->toString()); let tsTransformer = $executeClassWithFields->j_field('targetSetTransformer_' + $pmIndex->toString()); @@ -428,7 +430,7 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl $allProjects->mergeProjects(); } function <> meta::pure::mapping::modelToModel::executionPlan::platformBinding::legendJava::graphFetch::addFilterForSubtype(input:Code[1],propertyType: Code[1],targetSRCType:meta::external::language::java::metamodel::Type[1], targetSet:InstanceSetImplementation[1],context: GenerationContext[1],extensions: Extension[*]):Code[1] -{ +{ //if source is a mappingclass skip the filter let sourceClass = $targetSet->sourceClass($extensions); let sourceClassMappings = $targetSet.parent->_classMappingByClass($sourceClass)->filter(i|$i->instanceOf(InstanceSetImplementation))->cast(@InstanceSetImplementation); @@ -436,11 +438,11 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl if($targetSet->instanceOf(PureInstanceSetImplementation) && $sourceClassMappings.mappingClass->isEmpty(), |let interParam = j_parameter(javaClassType(), 'interParam'); - $input->js_filter(j_lambda($propertyType, j_streamOf( $propertyType->j_invoke('getClass',[],javaClassType())->j_invoke('getInterfaces',[],javaClassType())) + $input->js_filter(j_lambda($propertyType, j_streamOf( $propertyType->j_invoke('getClass',[],javaClassType())->j_invoke('getInterfaces',[],javaClassType())) ->j_invoke('anyMatch', j_lambda($interParam, $interParam->j_invoke('equals',[$targetSrcJType-> j_field('class' ,$targetSrcJType)])),javaBoolean())));, |$input ); - + } function <> meta::pure::mapping::modelToModel::executionPlan::platformBinding::legendJava::graphFetch::validateXStorePropertyMapping(xStorePropertyMapping: XStorePropertyMapping[1]):Boolean[1] @@ -551,7 +553,7 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl let propertyFieldName = $conventions->fieldName($propertyName); let propertyField = $class->j_this()->j_field($propertyFieldName, $propertyType); let setterParameter = j_parameter($propertyType, $propertyName); - + $class ->addField( javaField(['private'], $propertyType, $propertyFieldName) @@ -565,7 +567,7 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl } function <> meta::pure::mapping::modelToModel::executionPlan::platformBinding::legendJava::graphFetch::setFilterCodes(input: Code[1], filter:LambdaFunction[0..1], parameters:VariableInput[*] , parameterContext: Code[1], set: InstanceSetImplementation[1], graphFetchTree: RoutedGraphFetchTree[1], graphImplClass: meta::external::language::java::metamodel::Class[1], wrapAsGraphInstance: Boolean[1], resolveToList: Boolean[1], context: GenerationContext[1], extensions: Extension[*], debug: DebugContext[1]): Code[*] -{ +{ let checkedType = $context.conventions->pureTypeToJavaType(meta::pure::dataQuality::Checked,PureOne); let targetInstance = j_conditional( $input ->j_instanceof( $checkedType), j_cast($input,$checkedType)->j_invoke('getValue',[],javaObject())->j_cast($graphImplClass), j_cast($input,$graphImplClass) ) ; @@ -578,11 +580,11 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl let typeArg = if($javaType->isJavaList(), |$parameterContext->j_invoke('listType', $javaType->elementType()->toBoxed()->j_classField()), |$javaType->toBoxed()->j_classField()); j_variable($javaType, $s.name)->j_declare($parameterContext->j_invoke('getResult', [j_string($s.name), $typeArg], javaObject()));); let lambdaParam = $filterFn->functionType().parameters; - let filtercodeExp = $filterFn.expressionSequence->at(0)->generateJava($context.conventions); + let filtercodeExp = $filterFn.expressionSequence->at(0)->generateJava($context.conventions); let filterExpression = j_return($filtercodeExp); let inputCast = j_declare( [],$graphImplClass, $lambdaParam.name->toOne(),j_cast($targetInstance,$graphImplClass )); let result = $parameterGetters ->concatenate($inputCast)->concatenate($filterExpression); - + $result; ); } @@ -600,7 +602,7 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl let isMerged = $set->isPartOfMerge(); let transform = if ($setHasExplosion, | $set->cast(@PureInstanceSetImplementation)->propertyExplosionCodes($requiredSubTrees, $result, $graphImplClass, $src, $wrapAsGraphInstance, $resolveToList, $conventions, $extensions, $debug), - | let inScopeSubTrees = $requiredSubTrees->filter( t| $set->propertyMappingsByPropertyName($t.property->cast(@Property).name->toOne())->head()->isNotEmpty() && $isMerged || !$isMerged ); + | let inScopeSubTrees = $requiredSubTrees->filter( t| $set->propertyMappingsByPropertyName($t.property->cast(@Property).name->toOne())->head()->isNotEmpty() && $isMerged || !$isMerged ); let propertyValues = $inScopeSubTrees->map({st | let prop = $st.property->cast(@Property); @@ -611,13 +613,13 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl let milestoneDateGetter = {strategy: SingleDateTemporalStrategy[1] | let propertyName = temporalStrategyToPropertyName($strategy); let property = $set.class->propertyByName($propertyName)->toOne()->cast(@Property); - pair($property, $src->j_invoke($conventions->getterName($propertyName), [], javaObject())); + pair($property, $src->j_invoke($conventions->getterName($propertyName), [], javaObject())); }; let milestoningDateValues = if ($set.class->isProcessingTemporal() && $srcClass->isProcessingTemporal(), - | $milestoneDateGetter->eval(^ProcessingTemporal()), + | $milestoneDateGetter->eval(^ProcessingTemporal()), | if ($set.class->isBusinessTemporal() && $srcClass->isBusinessTemporal(), - | $milestoneDateGetter->eval(^BusinessTemporal()), + | $milestoneDateGetter->eval(^BusinessTemporal()), | if ($set.class->isBiTemporal() && $srcClass->isBiTemporal(), | [$milestoneDateGetter->eval(^ProcessingTemporal()), $milestoneDateGetter->eval(^BusinessTemporal())], @@ -625,7 +627,7 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl ))); $result->objectCreationCodes($graphImplClass, $set, $src, $milestoningDateValues->concatenate($propertyValues), $wrapAsGraphInstance, $conventions); ); - + [$src->j_declare($input->j_cast($srcJavaClass))]->concatenate($set->applyTypeFilter($path,$src, $transform, $context, $extensions, $debug->indent()))->toOneMany(); } @@ -639,7 +641,7 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl ->j_throw()) ) ); - + let returnCodes = if($wrapAsGraphInstance, | $conventions->createGraphInstance($class, $var), | $var)->j_return(); $initializationCodes->concatenate($assignmentCodes)->concatenate($returnCodes)->toOneMany(); @@ -654,9 +656,9 @@ function meta::pure::mapping::modelToModel::executionPlan::platformBinding::lege } function meta::pure::mapping::modelToModel::executionPlan::platformBinding::legendJava::graphFetch::generatePropertyMappingTransform(setImpl: InstanceSetImplementation[1], property: Property[1], propertyMapping: PropertyMapping[0..1], src: Code[1], conventions: Conventions[1], extensions: Extension[*], explodeProperty: Boolean[1], debug: DebugContext[1]): Code[0..1] -{ +{ print(if($debug.debug,|$debug.space+'generatePropertyMappingTransform: \''+$property.name->toOne()+'\'\n', |'')); - + let isNoMappingPassThru = $propertyMapping->isEmpty() && $property.owner->instanceOf(meta::pure::metamodel::type::Class) && $setImpl->passThruProperty($property, $extensions); let isNoMappingDefaultToEmpty = $propertyMapping->isEmpty() && $property.owner->instanceOf(meta::pure::metamodel::type::Class) && $setImpl->isNoMappingDefaultToEmpty($property); let isMergedUnMappedProperty = $propertyMapping->isEmpty() && $setImpl ->isPartOfMerge(); @@ -664,7 +666,7 @@ function meta::pure::mapping::modelToModel::executionPlan::platformBinding::lege if ($isNoMappingPassThru, {| - let pureSetImpl = $setImpl->cast(@PureInstanceSetImplementation); + let pureSetImpl = $setImpl->cast(@PureInstanceSetImplementation); let sourceProperty = $pureSetImpl->noMappingPassThruSourceProperty($property)->toOne(); let sourceType = $conventions->pureTypeToJavaType($sourceProperty); let callGetter = $src->j_invoke($conventions->getterName($sourceProperty), [], $sourceType); @@ -674,8 +676,8 @@ function meta::pure::mapping::modelToModel::executionPlan::platformBinding::lege {| if($isNoMappingDefaultToEmpty || $isMergedUnMappedProperty, {| - if (isJavaList($propertyJavaType), - | $propertyJavaType->j_emptyList(), + if (isJavaList($propertyJavaType), + | $propertyJavaType->j_emptyList(), | $propertyJavaType->j_null() ) }, @@ -719,7 +721,7 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl function <> meta::pure::mapping::modelToModel::executionPlan::platformBinding::legendJava::graphFetch::applyTransformer(expression: Code[1], transformer: ValueTransformer[1], conventions: Conventions[1], explodeProperty: Boolean[1], debug: DebugContext[1]): Code[1] { assert($transformer->instanceOf(EnumerationMapping), |'Unsupported transformer type: ' + $transformer->type()->elementToPath()); - + print(if($debug.debug,|$debug.space+'applyTransformer\n', |'')); let enumerationType = $conventions->enumerationType($transformer); @@ -731,7 +733,7 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl | $transformerClass->j_invoke('toDomainValue', $expression) ) ); - + $transformrCode->dependsOn($transformerClass->typeToString()->newDependency($transformerClass)); } @@ -740,7 +742,7 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl assert($transformer->instanceOf(EnumerationMapping), |'Unsupported transformer type: ' + $transformer->type()->elementToPath()); let em = $transformer->cast(@EnumerationMapping); - + print(if($debug.debug,|$debug.space+'generateTransformer: \''+$em.name->toOne()+'\'\n', |'')); let enumType = $conventions->enumerationType($transformer); @@ -767,9 +769,9 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl javaIllegalArgumentException()->j_new([j_string('Unmapped value: ')->j_plus($in)])->j_throw() ) ); - + javaClass( - ['public'], $class, $fValuesField, + ['public'], $class, $fValuesField, [ pair(javaMethod(['private', 'static'], $mapType, 'initValues', []), $initCode), pair(javaMethod(['public', 'static'], $enumType,'toDomainValue', $in), $toDomainValueCode) @@ -815,13 +817,13 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl let explodePropertyVars = $explodeProperties->map(p | j_variable(javaList($conventions->pureTypeToJavaType($p)), $conventions->explodePropertyListName($p))); let explodeListLength = j_variable(javaInt(), 'explodeListlength'); let idx = j_parameter(javaInt(), 'idx'); - + let explodeListInitCodes = $explodeProperties->size()->range()->map({i | let property = $explodeProperties->at($i); let propertyMapping = $set->_propertyMappingsByPropertyName($property.name->toOne())->cast(@PurePropertyMapping)->at(0); - $explodePropertyVars->at($i)->j_declare($set->generatePropertyMappingTransform($property, $propertyMapping, $src, $conventions->updateConventionsForExplosion(), $extensions, true, $debug->indent())->toOne()); + $explodePropertyVars->at($i)->j_declare($set->generatePropertyMappingTransform($property, $propertyMapping, $src, $conventions->updateConventionsForExplosion(), $extensions, true, $debug->indent())->toOne()); }); - + let explodeListLengthCode = $explodeListLength->j_declare($explodePropertyVars->at(0)->j_invoke('size', [], javaInt())); let sameLengthCheckCodes = $explodeProperties->tail()->size()->range()->map({i | j_if( @@ -834,7 +836,7 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl let propertyValues = $primitiveSubTrees->map({st | let prop = $st.property->cast(@Property); if ($explodeProperties->contains($prop), - | $explodePropertyVars->at($explodeProperties->indexOf($prop))->j_invoke('get', [$idx], $conventions->pureTypeToJavaType($prop)), + | $explodePropertyVars->at($explodeProperties->indexOf($prop))->j_invoke('get', [$idx], $conventions->pureTypeToJavaType($prop)), | $set->generatePropertyMappingTransform($prop, $set->_propertyMappingsByPropertyName($prop.name->toOne())->head(), $src, $conventions, $extensions, $debug->indent()) ); }); @@ -844,7 +846,7 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl ->j_invoke('mapToObj', j_lambda($idx, $transformLambdaCodes->j_block()), $returnElementType->javaStream()) ->map(x | if($resolveToList, | $x->js_resolve($returnElementType->javaList()), | $x)) ->j_return(); - + $explodeListInitCodes->concatenate($explodeListLengthCode)->concatenate($sameLengthCheckCodes)->concatenate($mapToObjectCodes)->toOneMany(); } diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/executionPlanNodes/graphFetch/inMemory/graphFetchJson.pure b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/executionPlanNodes/graphFetch/inMemory/graphFetchJson.pure index c5d6725b199..1b4783f66ca 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/executionPlanNodes/graphFetch/inMemory/graphFetchJson.pure +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/executionPlanNodes/graphFetch/inMemory/graphFetchJson.pure @@ -30,6 +30,7 @@ import meta::pure::mapping::modelToModel::executionPlan::platformBinding::legend import meta::pure::executionPlan::platformBinding::typeInfo::*; import meta::pure::graphFetch::execution::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::metamodel::serialization::grammar::*; function meta::pure::mapping::modelToModel::executionPlan::platformBinding::legendJava::graphFetch::storeStreamReading::json::jsonReaderClass(conventions:Conventions[1], path:String[1], srcTreeClass:meta::pure::metamodel::type::Class[1]): meta::external::language::java::metamodel::Class[1] @@ -571,14 +572,14 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl function <> meta::pure::mapping::modelToModel::executionPlan::platformBinding::legendJava::graphFetch::storeStreamReading::json::addMethodExist(class:meta::external::language::java::metamodel::Class[1]): meta::external::language::java::metamodel::Class[1] { let methodName = j_parameter(javaString(), 'name'); - + $class->addMethod(javaMethod('private', javaBoolean(), 'readMethodExists', $methodName, - + 'Method[] methods = this.getClass().getDeclaredMethods();\n' + 'for (int i = 0; i < methods.length; i++) {\n' + ' if (methods[i].getName().equals(name)) return true;\n' + '};\n' + - 'return false;' + 'return false;' )); } @@ -586,17 +587,17 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl { let methodName = j_parameter(javaString(), 'name'); let jsonNode = j_parameter(jsonNode(), 'node'); - + $class->addMethod(javaMethod('private', javaObject(), 'readMethodInvoke', [$methodName, $jsonNode], 'Method m = null;\n' + 'try{\n' + ' m = this.getClass().getMethod(name, JsonNode.class);\n' + '}\n' + 'catch (NoSuchMethodException e){throw new RuntimeException(e.getMessage());}\n' + - 'try{\n' + + 'try{\n' + ' return m.invoke(this, node);\n' + '}\n' + - 'catch (IllegalAccessException e){throw new RuntimeException(e.getMessage());}catch (InvocationTargetException e){throw new RuntimeException(e.getMessage());}' + 'catch (IllegalAccessException e){throw new RuntimeException(e.getMessage());}catch (InvocationTargetException e){throw new RuntimeException(e.getMessage());}' )); } diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/executionPlanNodes/graphFetch/inMemory/graphFetchMege.pure b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/executionPlanNodes/graphFetch/inMemory/graphFetchMege.pure index b6183e8ab8c..95039456e4b 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/executionPlanNodes/graphFetch/inMemory/graphFetchMege.pure +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/executionPlanNodes/graphFetch/inMemory/graphFetchMege.pure @@ -14,6 +14,7 @@ import meta::pure::mapping::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::inMemory::*; import meta::pure::mapping::modelToModel::executionPlan::platformBinding::legendJava::graphFetch::*; import meta::pure::graphFetch::routing::*; @@ -27,13 +28,13 @@ import meta::external::language::java::metamodel::*; function <> meta::pure::mapping::modelToModel::executionPlan::platformBinding::legendJava::graphFetch::MergeOperationForProperty(property:PropertyMapping[0..1]):MergeOperationSetImplementation[0..1] { if($property->isNotEmpty(), - |let rootMapping = $property->toOne().owner.parent; + |let rootMapping = $property->toOne().owner.parent; $rootMapping.classMappings->filter(m|$m->instanceOf(MergeOperationSetImplementation))->cast(@MergeOperationSetImplementation)->filter(o| $property->toOne().targetSetImplementationId->in($o.parameters.id))->first(); ,|[]); } -function <> meta::pure::mapping::modelToModel::executionPlan::platformBinding::legendJava::graphFetch::MergeOperationForInstance(instance:meta::pure::mapping::modelToModel::PureInstanceSetImplementation[1]):MergeOperationSetImplementation[1] +function <> meta::pure::mapping::modelToModel::executionPlan::platformBinding::legendJava::graphFetch::MergeOperationForInstance(instance:meta::external::store::model::PureInstanceSetImplementation[1]):MergeOperationSetImplementation[1] { $instance.parent.classMappings->filter(m|$m->instanceOf(MergeOperationSetImplementation))->cast(@MergeOperationSetImplementation)->filter(o| $instance.id->in($o.parameters.id))->at(0); } @@ -52,7 +53,7 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl let interfaceClass = $context.conventions->className($initialNode->typeFromStoreLocalNode()); let result = j_variable($resultGraphImpl, 'result'); - + let propertySubtree = $graphFetchTree.subTrees->cast(@RoutedPropertyGraphFetchTree)->filter(st | $st.property->instanceOf(Property) ); let intialSet = $childSets->head().id; let interfaceGraphParameter = j_parameter($interfaceClass, 'graphObject'); @@ -78,7 +79,7 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl if($propertyMapping->isNotEmpty() && $possibleMergeForSet ->isNotEmpty(), | - assert($prop.multiplicity == PureOne ||$prop.multiplicity==ZeroOne ,'Merge only supported with an upper multiplicity of One'); + assert($prop.multiplicity == PureOne ||$prop.multiplicity==ZeroOne ,'Merge only supported with an upper multiplicity of One'); let propertyChildren = $subNodes.children->filter(n|$n.graphFetchTree.sets->first()->in($possibleMergeForSet->toOne().parameters.setImplementation)); let propertyClass = $context.conventions->className($propertyChildren->at(0)->typeFromStoreLocalNode()); let valuesForMerge = [$result->j_invoke($conventions->getterName($prop),[],javaVoid())]->concatenate( @@ -106,7 +107,7 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl let source = $src->j_declare( $input->j_streamOf() ->js_filter(j_lambda($interfaceGraphParameter, $interfaceGraphParameter->j_instanceof($setGraphIMPL ) )) ->js_filter(j_lambda($setGraphParameter, $setGraphParameter->j_invoke($conventions->getterName('setId$'), [], javaString())->j_eq(j_string($set.id->toOne()))))->js_resolve($setGraphIMPL)); - let propertyValues = $propertySubtree->map({st |let prop = $st.property->cast(@Property); + let propertyValues = $propertySubtree->map({st |let prop = $st.property->cast(@Property); let propertyMapping = $set->_propertyMappingsByPropertyName($prop.name->toOne())->head(); let possibleMergeForSet = $propertyMapping->MergeOperationForProperty(); @@ -115,25 +116,25 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl | let initialResult = $result->j_invoke($conventions->setterName($prop),$src->j_invoke($conventions->getterName($prop), [],javaVoid()),javaVoid()); ); }); - + let srcClassGet = $src->toOne()->j_invoke($conventions->getterName('src$'),[], javaObject())->j_cast($srcJavaClass); - ^MergedPropertySource(src= $srcClassGet, + ^MergedPropertySource(src= $srcClassGet, source=$source, propertyValues=$propertyValues); ); - let mergeOp = $graphFetchTree.sets->cast(@meta::pure::mapping::modelToModel::PureInstanceSetImplementation)->at(0)->MergeOperationForInstance(); + let mergeOp = $graphFetchTree.sets->cast(@meta::external::store::model::PureInstanceSetImplementation)->at(0)->MergeOperationForInstance(); let validationFunction = $mergeOp.validationFunction->evaluateAndDeactivate().expressionSequence->cast(@InstanceValue).values->toOne()->cast(@LambdaFunction); assert($validationFunction->functionType().returnType.rawType==Boolean,'Found a non- boolean return type for the merge function of Merge Mapping Operation for class: ' + $mergeOp.class->elementToPath()); assert($mergeOp.parameters.setImplementation->cast(@PureInstanceSetImplementation).srcClass->containsAll($validationFunction->functionType().parameters.genericType.rawType) ,'Found parameters to the merge function that are not a src class for class: ' + $mergeOp.class->elementToPath()); - let mergeParameters = $validationFunction->processLambda($conventions,$debug)->cast(@Lambda).parameters; - + let mergeParameters = $validationFunction->processLambda($conventions,$debug)->cast(@Lambda).parameters; + - let assert = j_if( j_not( $validationFunction.expressionSequence->toOne()->generateJava($conventions, $debug)), + let assert = j_if( j_not( $validationFunction.expressionSequence->toOne()->generateJava($conventions, $debug)), javaIllegalStateException()->j_new(j_string('Merge Mapping Validation function for class: '+ $mergeOp.class->elementToPath() + ' returned false. Please ensure the input data returns true for the validation function'))->j_throw()); let validationName = 'validate'+$updatedChildPath->replace('.','_'); @@ -151,7 +152,7 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl let returnCodes = $result->j_return(); - + let merge = $initializationCodes->concatenate($properties.combined())->concatenate($subMergeMethods.mergeOperation)->concatenate($invokeValidation)->concatenate($returnCodes)->toOneMany(); let mergeMethod = javaMethod([], $resultGraphImpl, 'merge'+$updatedChildPath->replace('.','_'), [$input], $merge); $mergeMethod->concatenate($subMergeMethods.mergeMethod)->concatenate($validationMethod); @@ -166,4 +167,4 @@ Class <> meta::pure::mapping::modelToModel::executionPlan::platf src:Code[0..1]; propertyValues:Code[*]; combined(){$this.source->concatenate($this.propertyValues)}:Code[*]; -} \ No newline at end of file +} diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/executionPlanNodes/graphFetch/inMemory/graphFetchStoreStreamReading.pure b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/executionPlanNodes/graphFetch/inMemory/graphFetchStoreStreamReading.pure index 5d2d8a395f4..83b28a4e784 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/executionPlanNodes/graphFetch/inMemory/graphFetchStoreStreamReading.pure +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/executionPlanNodes/graphFetch/inMemory/graphFetchStoreStreamReading.pure @@ -29,8 +29,10 @@ import meta::pure::mapping::modelToModel::executionPlan::platformBinding::legend import meta::pure::mapping::modelToModel::executionPlan::platformBinding::legendJava::graphFetch::storeStreamReading::xml::*; import meta::pure::executionPlan::platformBinding::typeInfo::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::graphFetch::executionPlan::*; import meta::pure::mapping::modelToModel::graphFetch::executionPlan::storeStreamReading::platformBinding::legendJava::*; +import meta::core::runtime::*; import meta::pure::runtime::*; // To be removed when external format is ready @@ -49,21 +51,21 @@ function meta::pure::mapping::modelToModel::executionPlan::platformBinding::lege let class = $node.graphFetchTree.class; let simpleType = ^SimpleJavaType(pureType = $class, javaType = $conventions->className($class)); let returnType = if($node.checked, | ^CheckedJavaType(checkedOf = $simpleType, source = $node.connection->sourceTypeFromConnection($conventions, $extensions)), | $simpleType); - + let newTypeInfos = $context.typeInfos ->addForGraphFetchTree($node.graphFetchTree) ->map(ti| if($node.enableConstraints, |$ti->addConstraintsForGraphFetchTree($node.graphFetchTree), |$ti)) - ->addForClassesWithAllProperties($node.connection->map({c | + ->addForClassesWithAllProperties($node.connection->map({c | $c->match([ json : JsonModelConnection[1] | JsonDataRecord, xml : XmlModelConnection[1] | XmlDataRecord, a : Any[1] | JsonDataRecord ]) })->removeDuplicates()); - + let streamReadingAdhocExtensions = $extensions->extractLegendJavaAdhocExtensionsOfType(LegendJavaGraphFetchStoreStreamReadingExtension); let connectionTree = $node.connection->match($streamReadingAdhocExtensions.dataRecordTreeFromConnectionExtractors->concatenate([a : Any[1] | []])->toOneMany()); - + let currentNodeInfo = ^NodeInfo(path = $path, returnType = $returnType, graphFetchTrees = [$node.graphFetchTree]->concatenate($connectionTree)); ^$context(typeInfos = $newTypeInfos, nodeInfos = $context.nodeInfos->concatenate($currentNodeInfo)); @@ -73,14 +75,14 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl { let streamReadingAdhocExtensions = $extensions->extractLegendJavaAdhocExtensionsOfType(LegendJavaGraphFetchStoreStreamReadingExtension); let dataRecordClass = $connection->match($streamReadingAdhocExtensions.dataRecordClassFromConnectionExtractors->concatenate([a : Any[1] | JsonDataRecord])->toOneMany()); - + ^SimpleJavaType(pureType = $dataRecordClass, javaType = $conventions->className($dataRecordClass)); } function meta::pure::mapping::modelToModel::executionPlan::platformBinding::legendJava::graphFetch::storeStreamReading::generateCodeForStoreStreamReadingExecutionNode(node: StoreStreamReadingExecutionNode[1], path: String[1], context: GenerationContext[1], extensions: meta::pure::extension::Extension[*], debug: DebugContext[1]):GeneratedCode[1] { print(if($debug.debug,|$debug.space+'('+$path+') generateStoreStreamReading\n', |'')); - + let conventions = $context.conventions; let pureClass = $node.graphFetchTree.class; let connection = $node.connection; @@ -92,9 +94,9 @@ function meta::pure::mapping::modelToModel::executionPlan::platformBinding::lege ]); let readableClasses = if($genReader, | $pureClass->concatenate($context.typeInfos->classDependenciesViaPropertiesWithSubTypes($pureClass, true)), | []); let readableEnums = if($genReader, | $context.typeInfos->enumDependenciesViaProperties($pureClass), | []); - + let constraintContext = if($node.checked || $node.enableConstraints, - |^ConstraintCheckingGenerationContext(enableConstraints=true, topLevelOnly=false), + |^ConstraintCheckingGenerationContext(enableConstraints=true, topLevelOnly=false), |[]); let dataClassesProject = $readableClasses->map(rc | $rc->createStreamReadingDataClass($path, $context, $constraintContext, $debug->indent())); @@ -105,11 +107,11 @@ function meta::pure::mapping::modelToModel::executionPlan::platformBinding::lege other : Any[1] | [] ]); - let storeStreamReadingContext = $conventions->iStoreStreamReadingExecutionNodeContextParam(); + let storeStreamReadingContext = $conventions->iStoreStreamReadingExecutionNodeContextParam(); let streamReadingAdhocExtensions = $extensions->extractLegendJavaAdhocExtensionsOfType(LegendJavaGraphFetchStoreStreamReadingExtension); let streamReaderMethodCodes = $connection->match($streamReadingAdhocExtensions.streamReaderMethodCodeGenerators->map(f| $f->eval($conventions, $path, $pureClass, $storeStreamReadingContext))->toOneMany()); - + let executeClassWithImports = $conventions->planNodeClass('public', $path, 'Execute') ->usingKnownPackages($conventions->knownPackages()) ->imports($conventions->standardImports()) @@ -126,7 +128,7 @@ function meta::pure::mapping::modelToModel::executionPlan::platformBinding::lege ->concatenate($storeReaderProject) ->concatenate($streamReaderMethodCodes->dependencies()->resolveAndGetProjects()) ->toOneMany(); - + $allProjects->mergeProjects()->generatedCode($executeClass); } @@ -153,14 +155,14 @@ function meta::pure::mapping::modelToModel::executionPlan::platformBinding::lege ->imports(if($constraintContext->isNotEmpty(), | $conventions->constrainedImports(), | [])) ->implements($conventions->className($class)) ->addConstructor(javaConstructor([], [], '')) - ->map({dc | + ->map({dc | $context.typeInfos->allProperties($class)->fold({p, c| let variable = $conventions->fieldName($p); let javaType = $conventions->pureTypeToJavaType($p); let withField = $c->addField(javaField([], $javaType, $variable)); let field = j_this($withField)->j_field($variable); - + $withField->addMethod( javaMethod( 'public', $javaType, $conventions->getterName($p), [], diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/executionPlanNodes/graphFetch/inMemory/graphFetchXml.pure b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/executionPlanNodes/graphFetch/inMemory/graphFetchXml.pure index 20e1e163d86..5bbdb8f42f5 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/executionPlanNodes/graphFetch/inMemory/graphFetchXml.pure +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/executionPlanNodes/graphFetch/inMemory/graphFetchXml.pure @@ -28,6 +28,7 @@ import meta::pure::mapping::modelToModel::executionPlan::platformBinding::legend import meta::pure::mapping::modelToModel::executionPlan::platformBinding::legendJava::graphFetch::storeStreamReading::*; import meta::pure::executionPlan::platformBinding::typeInfo::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::test::shared::src::*; import meta::pure::metamodel::serialization::grammar::*; @@ -36,32 +37,32 @@ function meta::pure::mapping::modelToModel::executionPlan::platformBinding::lege let pureDate = $conventions->className(PureDate); if($type == String, - | $parser+'.getLocalName()', - | + | $parser+'.getLocalName()', + | if($type == Boolean, | $conventions->codeType(javaClass('java.lang.Boolean'))->codeToString()+'.valueOf('+$parser+'.getLocalName())', - | + | if($type == Integer, | $conventions->codeType(javaClass('java.lang.Integer'))->codeToString()+'.valueOf('+$parser+'.getLocalName())', - | + | if($type == Float, | $conventions->codeType(javaClass('java.lang.Float'))->codeToString()+'.valueOf('+$parser+'.getLocalName())', - | + | if($type == Decimal, - | 'new '+$conventions->codeType(javaClass('java.math.BigDecimal'))->codeToString()+'('+$parser+'.getLocalName())', - | + | 'new '+$conventions->codeType(javaClass('java.math.BigDecimal'))->codeToString()+'('+$parser+'.getLocalName())', + | if($type == Number, | ' new '+$conventions->codeType(javaClass('java.math.BigDecimal'))->codeToString()+'('+$parser+'.getLocalName())', - | + | if($type == StrictDate, | $conventions->codeType($pureDate)->codeToString()+'.parsePureDate('+$parser+'.getLocalName())', - | + | if($type == DateTime, | $conventions->codeType($pureDate)->codeToString()+'.parsePureDate('+$parser+'.getLocalName())', - | + | if($type == Date, | $conventions->codeType($pureDate)->codeToString()+'.parsePureDate('+$parser+'.getLocalName())', - | + | if($type->instanceOf(meta::pure::metamodel::type::Enumeration), | $conventions->codeType($conventions->pureTypeToJavaType($type, PureOne))->codeToString()+'.getEnumFromPureName('+$parser+'.getLocalName())', | @@ -224,7 +225,7 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl }, {a: Any[1] | let propertyValue = j_variable($pgi.accept.type, 'propertyValue'); - + [ $propertyValue->j_declare($pgi.accept), j_if($propertyValue->j_ne(j_null()), @@ -260,7 +261,7 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl let pgi = $cgi.propertyGenInfoFor($p); let variableSize = $pgi.variable->j_invoke('size', []); let expected = $p.multiplicity->printMultiplicity(); - let errorMessage = j_string('Invalid multiplicity for '+$p.name->toOne()+': expected ['+$expected+'] found [')->j_plus($variableSize)->j_plus(j_string(']')); + let errorMessage = j_string('Invalid multiplicity for '+$p.name->toOne()+': expected ['+$expected+'] found [')->j_plus($variableSize)->j_plus(j_string(']')); let definer = j_string($cgi.class->elementToPath()); if($p.multiplicity->isToOne(), @@ -344,7 +345,7 @@ Class <> meta::pure::mapping::modelToModel::executionPlan::platf { $this.propertyGenInfos->filter(pgi| $pgi.property == $property)->toOne(); }: PropertyGenInfo[1]; - + jThis() { j_this($this.thisClass); @@ -411,13 +412,13 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl let propertyType = $p.genericType.rawType->toOne(); let xmlType = if($p.name->toOne() == 'value__', - | XmlType.Text, + | XmlType.Text, | if($p->isPrimitiveValueProperty() && $p.name->toOne()->startsWith('_'), | XmlType.Attribute, | XmlType.Element )); - + ^PropertyGenInfo ( property = $p, @@ -502,7 +503,7 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl ] )); - let parseException = $conventions->className(DataParsingException); + let parseException = $conventions->className(DataParsingException); let parseEx = j_parameter($parseException, 'ex'); let illegalArgEx = j_parameter(javaIllegalArgumentException(), 'ex'); @@ -727,15 +728,15 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl j_if( list([ pair( - $getCurrentToken->j_eq(xmlStartElement()), + $getCurrentToken->j_eq(xmlStartElement()), j_return($localName) ), pair( - $getCurrentToken->j_eq(xmlAttributeName()), + $getCurrentToken->j_eq(xmlAttributeName()), j_return(j_string('_')->j_plus($localName)) ), pair( - $getCurrentToken->j_eq(xmlText()), + $getCurrentToken->j_eq(xmlText()), j_return(j_string('value__')) ) ]), @@ -775,7 +776,7 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl let append = j_parameter(javaBoolean(), 'appendToRecord'); let jThis = j_this($self); let tokenStream = $jThis->j_field('xmlTokenStream'); - + $self->addMethod(javaMethod('private', javaVoid(), 'accept', [$append], [ j_if($append, @@ -795,7 +796,7 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl let currentToken = $tokenStream->j_invoke('getCurrentToken', [], javaInt()); let localName = $tokenStream->j_invoke('getLocalName', [], javaString()); let text = $tokenStream->j_invoke('getText', [], javaString()); - + $self->addMethod(javaMethod('private', javaVoid(), 'appendToRecord', [], [ j_if(list( @@ -843,7 +844,7 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl j_if( list([ pair( - $getCurrentToken->j_eq(xmlStartElement()), + $getCurrentToken->j_eq(xmlStartElement()), [ $depth->j_declare(j_int(0)), j_doWhile( @@ -861,14 +862,14 @@ function <> meta::pure::mapping::modelToModel::executionPlan::pl ]->j_block() ), pair( - $getCurrentToken->j_eq(xmlAttributeName()), + $getCurrentToken->j_eq(xmlAttributeName()), [ $accept, $accept ]->j_block() ), pair( - $getCurrentToken->j_eq(xmlText()), + $getCurrentToken->j_eq(xmlText()), $accept ) ]), diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/main.pure b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/main.pure index 4d53f05fa05..b47628032bd 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/main.pure +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/main.pure @@ -28,6 +28,7 @@ import meta::pure::graphFetch::*; import meta::pure::graphFetch::executionPlan::*; import meta::pure::mapping::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::graphFetch::executionPlan::*; import meta::pure::metamodel::constraint::*; @@ -85,9 +86,9 @@ Class meta::pure::executionPlan::platformBinding::legendJava::GeneratedNode function meta::pure::executionPlan::platformBinding::legendJava::projectToImplementation(project:Project[1]):JavaPlatformImplementation[1] -{ +{ let sfer = newStringifier($project); - + ^JavaPlatformImplementation ( classes = $project->allClasses()->map({cl | @@ -104,7 +105,7 @@ function meta::pure::executionPlan::platformBinding::legendJava::projectToImplem function meta::pure::executionPlan::platformBinding::legendJava::fillNewFunctionProhibitedList(context:GenerationContext[1]):GenerationContext[1] { let cls = $context.typeInfos.typeInfos->filter(t|$t->instanceOf(ClassTypeInfo))->cast(@ClassTypeInfo)->filter(c| !$c.isNewInstanceAllowed); //TODO: remove the not in the last filter - let oldConventions = $context.conventions; + let oldConventions = $context.conventions; ^$context(conventions = ^$oldConventions(newFunctionProhibitedList = $cls->map(c|$c.class()))); } @@ -123,7 +124,7 @@ function meta::pure::executionPlan::platformBinding::legendJava::generatedCode(p function meta::pure::executionPlan::platformBinding::legendJava::addNodeInfo(context:GenerationContext[1], nodeInfo:NodeInfo[1]): GenerationContext[1] { - ^$context(nodeInfos=$context.nodeInfos->concatenate($nodeInfo)); + ^$context(nodeInfos=$context.nodeInfos->concatenate($nodeInfo)); } function meta::pure::executionPlan::platformBinding::legendJava::nodeInfosForPath(context:GenerationContext[1], path:String[1]): NodeInfo[*] @@ -138,10 +139,10 @@ function meta::pure::executionPlan::platformBinding::legendJava::childNodeInfosF function meta::pure::executionPlan::platformBinding::legendJava::setTypeInfos(context:GenerationContext[1], typeInfos:TypeInfoSet[1]): GenerationContext[1] { - ^$context(typeInfos=$typeInfos); + ^$context(typeInfos=$typeInfos); } function meta::pure::executionPlan::platformBinding::legendJava::setConventions(context:GenerationContext[1], conventions:Conventions[1]): GenerationContext[1] { - ^$context(conventions=$conventions); + ^$context(conventions=$conventions); } diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/planConventions/collectionsLibrary.pure b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/planConventions/collectionsLibrary.pure index d9519460906..6cb0f936ce1 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/planConventions/collectionsLibrary.pure +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/planConventions/collectionsLibrary.pure @@ -48,22 +48,22 @@ function meta::pure::executionPlan::platformBinding::legendJava::library::collec fc1(max_X_MANY__X_$0_1$_, {ctx,collection | if( $collection.type->isJavaList(), | max($ctx, $collection, $library), | $collection )}), fc1(min_X_MANY__X_$0_1$_, {ctx,collection | if( $collection.type->isJavaList(), | min($ctx, $collection, $library), | $collection )}), - fc1(range_Integer_1__Integer_MANY_, {ctx,stop | javaLongStream()->j_invoke('range', [j_long(0), $stop])->j_invoke('boxed', [])}), - fc2(range_Integer_1__Integer_1__Integer_MANY_, {ctx,start,stop | javaLongStream()->j_invoke('range', [$start, $stop])->j_invoke('boxed', [])}), + fc1(range_Integer_1__Integer_MANY_, {ctx,stop | javaLongStream()->j_invoke('range', [j_long(0), $stop])->j_invoke('boxed', [])}), + fc2(range_Integer_1__Integer_1__Integer_MANY_, {ctx,start,stop | javaLongStream()->j_invoke('range', [$start, $stop])->j_invoke('boxed', [])}), fc3(range_Integer_1__Integer_1__Integer_1__Integer_MANY_, {ctx,start,stop,step | $library->j_invoke('range', [$start, $stop, $step], javaStream(javaLongBoxed()))}), fc (add_T_MANY__T_1__T_$1_MANY$_, fcAlias( concatenate_T_MANY__T_MANY__T_MANY_)), fc2(concatenate_T_MANY__T_MANY__T_MANY_, {ctx,collection1,collection2 | javaStream()->j_invoke('concat', [$collection1->j_streamOf(), $collection2->j_streamOf()], javaStream($ctx.returnType()->elementType()))}), fc1(distinct_T_MANY__T_MANY_, {ctx,collection | $collection->j_streamOf()->js_distinct()}), - + fc1(removeDuplicates_T_MANY__T_MANY_, {ctx,collection | if($collection.type->isJavaList(), |$library->j_invoke('removeDuplicates', [$collection, j_null(), j_null()], $collection.type), | j_null($ctx.returnType->elementType()))}), fc2(removeDuplicates_T_MANY__Function_1__T_MANY_, {ctx,collection,eqlf | if($collection.type->isJavaList(), |$library->j_invoke('removeDuplicates', [$collection, j_null(), $eqlf ], $collection.type), | j_null($ctx.returnType->elementType()))}), - fc2(removeDuplicatesBy_T_MANY__Function_1__T_MANY_, {ctx,collection,keyf | if($collection.type->isJavaList(), |$library->j_invoke('removeDuplicates', [$collection, $keyf, j_null()], $collection.type), | j_null($ctx.returnType->elementType()))}), + fc2(removeDuplicatesBy_T_MANY__Function_1__T_MANY_, {ctx,collection,keyf | if($collection.type->isJavaList(), |$library->j_invoke('removeDuplicates', [$collection, $keyf, j_null()], $collection.type), | j_null($ctx.returnType->elementType()))}), fc3(removeDuplicates_T_MANY__Function_$0_1$__Function_$0_1$__T_MANY_, {ctx,collection,keyf,eqlf | if($collection.type->isJavaList(), |$library->j_invoke('removeDuplicates', [$collection, $keyf, $eqlf ], $collection.type), | j_null($ctx.returnType->elementType()))}), - + fc2(removeAll_T_MANY__T_MANY__T_MANY_, {ctx,col1,col2 | removeAll($ctx, $col1, $col2, j_null(), $library)}), fc3(removeAll_T_MANY__T_MANY__Function_1__T_MANY_, {ctx,col1,col2,eqlf | removeAll($ctx, $col1, $col2, $eqlf, $library)}), - + fc1(init_T_MANY__T_MANY_, {ctx,collection | if($collection.type->isJavaList(), |$library->j_invoke('init', $collection, $collection.type), | j_null($ctx.returnType->elementType())) }), fc1(tail_T_MANY__T_MANY_, {ctx,collection | $collection->j_streamOf()->js_skip(j_long(1))}), fc1(last_T_MANY__T_$0_1$_, {ctx,collection | last($collection, $library)}), @@ -84,13 +84,13 @@ function meta::pure::executionPlan::platformBinding::legendJava::library::collec fc3(paginated_T_MANY__Integer_1__Integer_1__T_MANY_, {ctx,collection,pageNumber,pageSize | $collection->j_streamOf()->js_skip(pinToZero($pageSize)->j_multiply(pinToZero($pageNumber)->j_minus(j_int(1))))->js_limit($pageSize)}), fc2(take_T_MANY__Integer_1__T_MANY_, {ctx,collection,limit | $collection->j_streamOf()->js_limit($limit)}), fc2(union_T_MANY__T_MANY__T_MANY_, {ctx,collection1,collection2 | javaStream()->j_invoke('concat', [$collection1->j_streamOf(), $collection2->j_streamOf()], javaStream($ctx.returnType()->elementType()))->js_distinct()}), - fc2(intersection_T_MANY__T_MANY__T_MANY_, {ctx,collection1,collection2 | intersect($ctx, $collection1, $collection2)}), - + fc2(intersection_T_MANY__T_MANY__T_MANY_, {ctx,collection1,collection2 | intersect($ctx, $collection1, $collection2)}), + fc2(defaultIfEmpty_T_MANY__T_$1_MANY$__T_$1_MANY$_, {ctx,collection1,collection2 | j_conditional($collection1->j_streamOf()->js_count()->j_eq(j_int(0)), $library->j_invoke('toOneMany', $collection2, $ctx.returnType()), $library->j_invoke('toOneMany', $collection1, $ctx.returnType()))}), fc2(contains_Any_MANY__Any_1__Boolean_1_, {ctx,collection,obj | if($collection.type->isJavaList(), |$collection->j_invoke('contains', $obj), |javaObjects()->j_invoke('equals', [$collection, $obj]))}), fc3(contains_Z_MANY__Z_1__Function_1__Boolean_1_, {ctx,collection,obj,eqlf | $library->j_invoke('contains', [$collection, $obj, $eqlf], javaBoolean())}), - + fc2(exists_T_MANY__Function_1__Boolean_1_, {ctx,collection,func | $collection->j_streamOf()->js_anyMatch($func)}), fc2(forAll_T_MANY__Function_1__Boolean_1_, {ctx,collection,func | $collection->j_streamOf()->js_allMatch($func)}), fc2(in_Any_1__Any_MANY__Boolean_1_, {ctx,obj,collection | if($collection.type->isJavaList(), |$collection->j_invoke('contains', $obj), |javaObjects()->j_invoke('equals', [$collection, $obj]))}), @@ -121,23 +121,23 @@ function meta::pure::executionPlan::platformBinding::legendJava::library::collec } function meta::pure::executionPlan::platformBinding::legendJava::library::collection::dropAt(ctx:FuncCoderContext[1], collection:Code[1], index:Code[1], cnt:Code[1], library:meta::external::language::java::metamodel::Class[1]) : Code[1] -{ +{ let c = if($collection.type->isJavaList(), | $collection, | javaArrays()->j_invoke('asList', [$collection], $collection.type)); $library->j_invoke('dropAt', [$collection, $index, $cnt], $collection.type); } function meta::pure::executionPlan::platformBinding::legendJava::library::collection::removeAll(ctx:FuncCoderContext[1], collection1:Code[1], collection2:Code[1], eqlf:Code[1], library:meta::external::language::java::metamodel::Class[1]) : Code[1] -{ +{ let c1 = if($collection1.type->isJavaList(), | $collection1, | javaArrays()->j_invoke('asList', [$collection1], $collection1.type)); let c2 = if($collection2.type->isJavaList(), | $collection2, | javaArrays()->j_invoke('asList', [$collection2], $collection1.type)); $library->j_invoke('removeAll', [$c1, $c2, $eqlf], $c1.type); } function meta::pure::executionPlan::platformBinding::legendJava::library::collection::intersect(ctx:FuncCoderContext[1], collection1:Code[1], collection2:Code[1]) : Code[1] -{ +{ let c2 = if($collection2.type->isJavaList(), | $collection2, | javaArrays()->j_invoke('asList', [$collection2], $collection2.type)); let comp = $c2->j_methodReference('contains', javaFunctionType(javaObject(), javaBoolean())); - $collection1->j_streamOf()->js_filter($comp); + $collection1->j_streamOf()->js_filter($comp); } function meta::pure::executionPlan::platformBinding::legendJava::library::collection::maxComp(ctx:FuncCoderContext[1], collection:Code[1], comp:Code[1], library:meta::external::language::java::metamodel::Class[1]) : Code[1] @@ -175,7 +175,7 @@ function meta::pure::executionPlan::platformBinding::legendJava::library::collec function meta::pure::executionPlan::platformBinding::legendJava::library::collection::sortComp(ctx:FuncCoderContext[1], collection:Code[1], comp:Code[1], library:meta::external::language::java::metamodel::Class[1]) : Code[1] { let adapted = $library->j_invoke('adaptPureComparator',$comp, javaComparator($collection.type->elementType())); - $library->j_invoke($collection.type->elementType(), 'sort', [$collection, $adapted], javaList($collection.type->elementType())); + $library->j_invoke($collection.type->elementType(), 'sort', [$collection, $adapted], javaList($collection.type->elementType())); } function meta::pure::executionPlan::platformBinding::legendJava::library::collection::sortBy(collection:Code[1], key:Code[1], library:meta::external::language::java::metamodel::Class[1]) : Code[1] @@ -210,14 +210,14 @@ function meta::pure::executionPlan::platformBinding::legendJava::library::collec // The identity may be a subtype of the return type but we can treat it as the supertype and avoid Nil let safeIdentity = $identity->upcastIdentity($rtn)->j_listOf($rtn); print(if($ctx.debug.debug,|$ctx.debug.space+' safeIdentity: ('+ $safeIdentity.type->typeToString()+') '+$safeIdentity->codeToString()+'\n', |'')); - + //Same goes for the second parameter of the acc function let accType = $acc.type->cast(@meta::external::language::java::metamodel::FunctionType); let safeAcc = $acc->j_cast(javaFunctionType([$accType.parameterTypes->at(0), $rtn->toBoxed()], $rtn->toBoxed())); print(if($ctx.debug.debug,|$ctx.debug.space+' safeAcc: ('+ $safeAcc.type->typeToString()+') '+ $safeAcc->codeToString()+'\n', |'')); let safeCol = $collection->j_listOf(javaList($accType.parameterTypes->at(0))); - + $library->j_invoke('fold', [$safeCol, $safeAcc, $safeIdentity], $ctx.returnType()); } @@ -235,11 +235,11 @@ function <> meta::pure::executionPlan::platformBinding::legendJa } function meta::pure::executionPlan::platformBinding::legendJava::library::collection::IsDistinctFetchTreeCoder(fe:FunctionExpression[1], conventions:Conventions[1], debug:meta::pure::tools::DebugContext[1]):Code[1] -{ +{ let args = $fe.parametersValues->evaluateAndDeactivate(); let coll = $args->at(0)->generateJava($conventions, $debug); - let guid = meta::pure::runtime::generateGuid()->replace('-',''); + let guid = meta::core::runtime::generateGuid()->replace('-',''); let name = 'isDistinct'+$guid; let cls = javaClass(['public'], '_pure.internal.EqualityGraphFetch'+$guid); @@ -276,29 +276,29 @@ function meta::pure::executionPlan::platformBinding::legendJava::library::collec { print(if($debug.debug,|$debug.space+'process isEqual: \n',|'')); let args = $fe.parametersValues->evaluateAndDeactivate(); - + let cls1 = $args->at(0)->generateJava($conventions, $debug); let cls2 = $args->at(1)->generateJava($conventions, $debug); - let guid = meta::pure::runtime::generateGuid()->replace('-',''); + let guid = meta::core::runtime::generateGuid()->replace('-',''); let name = 'isEqual'+$guid; let cls = javaClass(['public'], '_pure.internal.EqualityGraphFetch'+$guid); let dep = newDependency( $name, - {state | + {state | let fetchTree = $args->at(2)->cast(@InstanceValue).values->cast(@meta::pure::graphFetch::RootGraphFetchTree)->toOne(); let javaClass = $cls1.type; let m = generateIsEqualMethod($javaClass, $fetchTree, $conventions); - + let cls1 = $cls->addMethod($m); let project = newProject()->addClass($cls1); $state->addDependencyProject($name, $project); } ); - + let invoke = $cls->j_invoke([javaObject(), javaObject()],'isEqualWithFetchTree', [$cls1, $cls2], javaBoolean()); $invoke->dependsOn($dep); } @@ -308,11 +308,11 @@ function <> meta::pure::executionPlan::platformBinding::legendJa let o1 = j_parameter($type, 'o1'); let o2 = j_parameter($type, 'o2'); - let fields = $gf.subTrees->map(st| assert($st.subTrees->isEmpty(), 'Nested property trees not supported yet'); + let fields = $gf.subTrees->map(st| assert($st.subTrees->isEmpty(), 'Nested property trees not supported yet'); assert($st->instanceOf(meta::pure::graphFetch::PropertyGraphFetchTree) && !$st->cast(@meta::pure::graphFetch::PropertyGraphFetchTree).isQualifiedProperty(), 'Qualified properties not supported'); $st->cast(@meta::pure::graphFetch::PropertyGraphFetchTree).property->toOne();); - + let bool_condition = $fields->fold({f,b| let fieldType = $conventions->pureTypeToJavaType($f); let o1getter = $o1->j_invoke([], $conventions->getterName($f), [], $conventions->pureTypeToJavaType($f)); @@ -320,9 +320,9 @@ function <> meta::pure::executionPlan::platformBinding::legendJa if(isPrimitive($fieldType), |j_and(j_eq($o1getter, $o2getter), $b), |j_and($o1getter->j_invoke('equals', $o2getter), $b)); }, j_true()); - + let body = $bool_condition->j_return(); let m = javaMethod(['public', 'static'], javaBoolean(), 'isEqualWithFetchTree', [$o1,$o2], $body->codeToString()); - + } diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/planConventions/runtimeLibrary.pure b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/planConventions/runtimeLibrary.pure index c404b26c72b..81388cfa78f 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/planConventions/runtimeLibrary.pure +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/planConventions/runtimeLibrary.pure @@ -21,9 +21,9 @@ function meta::pure::executionPlan::platformBinding::legendJava::library::runtim let library = $conventions->className(Library); let lib = newConventionsLibrary() - ->usesJavaPackage('java.util') + ->usesJavaPackage('java.util') ->addFunctionCoders([ - fc0(meta::pure::runtime::generateGuid__String_1_, {ctx | j_invoke(javaUUID(), 'randomUUID', [], javaUUID())->j_toString()}) + fc0(meta::core::runtime::generateGuid__String_1_, {ctx | j_invoke(javaUUID(), 'randomUUID', [], javaUUID())->j_toString()}) ]); $conventions->registerLibrary($lib); diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/planConventions/test/runtimeLibraryTests.pure b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/planConventions/test/runtimeLibraryTests.pure index f4e189c3d62..28eb381006b 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/planConventions/test/runtimeLibraryTests.pure +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/planConventions/test/runtimeLibraryTests.pure @@ -15,6 +15,7 @@ import meta::external::language::java::factory::*; import meta::pure::executionPlan::platformBinding::legendJava::*; import meta::pure::executionPlan::platformBinding::legendJava::tests::utils::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function <> diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/planConventions/test/testUtils.pure b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/planConventions/test/testUtils.pure index d48b406e237..dfe3c81c8b3 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/planConventions/test/testUtils.pure +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/planConventions/test/testUtils.pure @@ -25,6 +25,7 @@ import meta::pure::executionPlan::platformBinding::typeInfo::*; import meta::pure::executionPlan::toString::*; import meta::pure::mapping::*; import meta::pure::extension::*; +import meta::core::runtime::*; import meta::pure::runtime::*; Class meta::pure::executionPlan::platformBinding::legendJava::tests::utils::JavaExpressionTest @@ -52,8 +53,8 @@ function meta::pure::executionPlan::platformBinding::legendJava::tests::utils::a { let test = ^JavaExpressionTest( name = $name, - lambda = $lambda->cast(@FunctionDefinition<{->Any[*]}>), - codeAssertion = $expectedCode, + lambda = $lambda->cast(@FunctionDefinition<{->Any[*]}>), + codeAssertion = $expectedCode, conventions = $tests.conventions, project = newProject() ); @@ -65,8 +66,8 @@ function meta::pure::executionPlan::platformBinding::legendJava::tests::utils::a { let test = ^JavaExpressionTest( name = $name, - lambda = $lambda->cast(@FunctionDefinition<{->Any[*]}>), - codeAssertion = j_code($expectedCode, $expectedType), + lambda = $lambda->cast(@FunctionDefinition<{->Any[*]}>), + codeAssertion = j_code($expectedCode, $expectedType), conventions = $tests.conventions, project = newProject() ); @@ -114,18 +115,18 @@ function meta::pure::executionPlan::platformBinding::legendJava::tests::utils::r function meta::pure::executionPlan::platformBinding::legendJava::tests::utils::runTests(tests:JavaExpressionTest[*], extensions:Extension[*], debug:DebugContext[1]): Boolean[1] { - let failures = j_variable(javaStringBuilder(), 'failures'); - let result = j_variable(javaStringBuilder(), 'result'); + let failures = j_variable(javaStringBuilder(), 'failures'); + let result = j_variable(javaStringBuilder(), 'result'); let allAssertions = $tests->map( {test| let java = $test.lambda->cast(@FunctionDefinition<{->Any[*]}>)->evaluateAndDeactivate().expressionSequence->toOne()->cast(@ValueSpecification)->generateJava($test.conventions, $debug); let expectedCode = $test.codeAssertion->codeToString(); let actualCode = $java->codeToString()->split('\n')->map(x | $x->trim())->joinStrings(' ')->replace(' .', '.'); - assertEquals($expectedCode, $actualCode, |$test.name+' code is incorrect\nexpected: '+$expectedCode+'\nactual : '+$actualCode+'\n'); - assertEquals($test.codeAssertion.type, $java.type, |$test.name+' expected type of \''+$test.codeAssertion.type->typeToString()+'\' but got \''+$java.type->typeToString()+'\''); + assertEquals($expectedCode, $actualCode, |$test.name+' code is incorrect\nexpected: '+$expectedCode+'\nactual : '+$actualCode+'\n'); + assertEquals($test.codeAssertion.type, $java.type, |$test.name+' expected type of \''+$test.codeAssertion.type->typeToString()+'\' but got \''+$java.type->typeToString()+'\''); assert($test.assertionPatterns->isNotEmpty(), 'You must make some assertions'); - + let assertions = $test.assertionPatterns->map( {a | let assert = $a->format($actualCode); @@ -140,18 +141,18 @@ function meta::pure::executionPlan::platformBinding::legendJava::tests::utils::r $failures->j_invoke('append', $fail) ]->j_block() ); - + merge([$testAssert, $java]); } - ); + ); } ); - + let functionTests = newProject() ->addClass( testClass() ->addMethod( - javaMethod(['public', 'static'], javaString(), 'execute', [], + javaMethod(['public', 'static'], javaString(), 'execute', [], [ $result->j_declare(javaStringBuilder()->j_new(j_string('\n'))), $failures->j_declare(javaStringBuilder()->j_new([])) @@ -163,12 +164,12 @@ function meta::pure::executionPlan::platformBinding::legendJava::tests::utils::r javaIllegalStateException()->j_new($failures->j_invoke('toString', [])) ), $result->j_invoke('toString', [])->j_return() - ]) + ]) ) ) ) - ->addMavenDependency('junit', 'junit', '4.11'); - + ->addMavenDependency('junit', 'junit', '4.11'); + executeTests(mergeProjects($tests.project->concatenate($functionTests)->concatenate($allAssertions->dependencies()->resolveAndGetProjects())->toOneMany()), [], $debug); } @@ -186,7 +187,7 @@ function meta::pure::executionPlan::platformBinding::legendJava::tests::utils::j function meta::pure::executionPlan::platformBinding::legendJava::tests::utils::javaPureTests(conventions:Conventions[1], pureTests:FunctionDefinition<{->Boolean[1]}>[*]): JavaPureTestSet[1] { ^JavaPureTestSet( - pureTests = $pureTests, + pureTests = $pureTests, context = ^GenerationContext(typeInfos=newTypeInfoSet(), conventions=$conventions) ); } @@ -246,12 +247,12 @@ function meta::pure::executionPlan::platformBinding::legendJava::tests::utils::r } ); - let failures = j_variable(javaStringBuilder(), 'failures'); - let result = j_variable(javaStringBuilder(), 'result'); + let failures = j_variable(javaStringBuilder(), 'failures'); + let result = j_variable(javaStringBuilder(), 'result'); let typesProject = meta::pure::executionPlan::platformBinding::legendJava::shared::generateTypes($tests.context, $debug); - let executeCode = + let executeCode = [ $result->j_declare(javaStringBuilder()->j_new(j_string('\n'))), $failures->j_declare(javaStringBuilder()->j_new([])) @@ -261,14 +262,14 @@ function meta::pure::executionPlan::platformBinding::legendJava::tests::utils::r {p| let name = $p.first->cast(@PackageableElement)->elementToPath(); let call = $p.second; - + let ex = j_parameter(javaException(), 'e'); let pass = j_string('PASS '+$name+'\n'); let fail = j_string('FAIL '+$name+'\n')->j_plus($ex->j_invoke('getMessage', []))->j_plus(j_string('\n')); - + j_try( [ - $call, + $call, $result->j_invoke('append', $pass) ], j_catch($ex, @@ -289,8 +290,8 @@ function meta::pure::executionPlan::platformBinding::legendJava::tests::utils::r $result->j_invoke('toString', [])->j_return() ])->j_block(); - let functionTests = newProject()->addClass(javaClass(testClass(), pair(javaMethod(['public', 'static'], javaString(), 'execute', []), $executeCode))); - + let functionTests = newProject()->addClass(javaClass(testClass(), pair(javaMethod(['public', 'static'], javaString(), 'execute', []), $executeCode))); + let dependencies = $generatedTestCalls.second->dependencies(); let toMerge = [$typesProject, $functionTests]->concatenate($generatedTestCalls.second->dependencies()->resolveAndGetProjects()); let merged = mergeProjects($toMerge->toOneMany()); @@ -308,7 +309,7 @@ function <> meta::pure::executionPlan::platformBinding::legendJa executionMethodName = 'execute' ) ); - + let plan = ^ExecutionPlan ( func = {|true}, diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/platform/executionPlanNodes/platform/platform.pure b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/platform/executionPlanNodes/platform/platform.pure index 8bc59534f41..415a81acd46 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/platform/executionPlanNodes/platform/platform.pure +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/platform/executionPlanNodes/platform/platform.pure @@ -18,6 +18,7 @@ import meta::external::language::java::metamodel::*; import meta::external::language::java::metamodel::project::*; import meta::external::language::java::serialization::*; import meta::external::language::java::transform::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::executionPlan::*; import meta::pure::executionPlan::platformBinding::legendJava::*; @@ -58,7 +59,7 @@ function <> meta::pure::executionPlan::platformBinding::legendJa // Generate function meta::pure::executionPlan::platformBinding::legendJava::platform::generateImplementionForPlatformNode(p:PureExpressionPlatformExecutionNode[1], path:String[1], context:GenerationContext[1], extensions : meta::pure::extension::Extension[*], debug:DebugContext[1]):GeneratedCode[1] -{ +{ if($p.expression->cast(@FunctionExpression).func == now__DateTime_1_, | generateImplementionForNow($context.conventions), | @@ -75,14 +76,14 @@ function meta::pure::executionPlan::platformBinding::legendJava::platform::gener } function <> meta::pure::executionPlan::platformBinding::legendJava::platform::generateImplementionForNow(conventions:Conventions[1]):GeneratedCode[1] -{ +{ ^GeneratedCode( implementation = ^JavaPlatformImplementation ( executionClassFullName = $conventions->className(PredefinedExpressions)->typeToString(), executionMethodName = 'now' ) - ); + ); } function <> meta::pure::executionPlan::platformBinding::legendJava::platform::generateImplementionForCurrentUserId(conventions:Conventions[1]):GeneratedCode[1] @@ -110,4 +111,4 @@ function <> meta::pure::executionPlan::platformBinding::legendJa let body = $requiredVariableInputs->concatenate($expressionCode)->j_block(); let execClass = $body->buildExecuteClass($nodeContext, $path, $newContext.conventions); generatedCode(mergeProjects(newProject()->addClass($execClass)->concatenate($body->dependencies()->resolveAndGetProjects())->toOneMany()), $execClass); -} \ No newline at end of file +} diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/shared/common.pure b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/shared/common.pure index b31fdf460f1..f78fef94e49 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/shared/common.pure +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/shared/common.pure @@ -33,6 +33,7 @@ import meta::pure::metamodel::constraint::*; import meta::pure::graphFetch::*; import meta::pure::mapping::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::inMemory::*; import meta::pure::milestoning::*; @@ -57,30 +58,30 @@ function meta::pure::executionPlan::platformBinding::legendJava::shared::graphFe function meta::pure::executionPlan::platformBinding::legendJava::shared::buildExecuteClass(body:Code[1], param:Code[1], path:String[1], conventions:Conventions[1]):meta::external::language::java::metamodel::Class[1] { - let ex = j_parameter(javaException(), 'e'); + let ex = j_parameter(javaException(), 'e'); let fullBody = j_try( $body, j_catch($ex, javaRuntimeException()->j_new([j_string('Failed in node: '+$path), $ex])->j_throw() ) ); - + let classesUsed = $param.type->cast(@meta::external::language::java::metamodel::Class)->concatenate($fullBody->classesUsed())->removeDuplicates(); let withImports = $conventions->planNodeClass('public', $path, 'Execute')->imports($classesUsed); - + $withImports->addMethod(javaMethod(['public', 'static'], $body.type, 'execute', $param->cast(@meta::external::language::java::metamodel::Parameter), $fullBody)); } function meta::pure::executionPlan::platformBinding::legendJava::shared::graphInstanceOf(elementType:meta::external::language::java::metamodel::Type[1], conventions:Conventions[1]):meta::external::language::java::metamodel::ParameterizedType[1] -{ +{ javaParameterizedType($conventions->className(GraphInstance), $elementType); } - + function meta::pure::executionPlan::platformBinding::legendJava::shared::castExpressionToReturnType(expression:Code[1], returnType:meta::external::language::java::metamodel::Type[1]): Code[1] -{ - if($expression.type == $returnType, +{ + if($expression.type == $returnType, | - $expression, + $expression, | if($returnType->isJavaList(), | @@ -89,11 +90,11 @@ function meta::pure::executionPlan::platformBinding::legendJava::shared::castExp $expression->j_cast($returnType) )); } - + // ---------------------------------------------------------------------------------------------------------- // --- Implementation // ---------------------------------------------------------------------------------------------------------- - + function meta::pure::executionPlan::platformBinding::legendJava::shared::generateTypes(context:GenerationContext[1], debug:DebugContext[1]) : Project[1] { print(if($debug.debug,|$debug.space+'generateTypes\n', |'')); @@ -104,10 +105,10 @@ function meta::pure::executionPlan::platformBinding::legendJava::shared::generat createUnitClasses($context, $debug->indent()) ]); } - + function meta::pure::executionPlan::platformBinding::legendJava::shared::generateInterfacesAndEnums(context:GenerationContext[1], debug:DebugContext[1]) : Project[1] { - generateInterfacesAndEnums($context.conventions, $context.typeInfos, $debug); + generateInterfacesAndEnums($context.conventions, $context.typeInfos, $debug); } function meta::pure::executionPlan::platformBinding::legendJava::shared::generateInterfacesAndEnums(conventions:Conventions[1], typeInfos:TypeInfoSet[1], debug:DebugContext[1]) : Project[1] @@ -119,7 +120,7 @@ function meta::pure::executionPlan::platformBinding::legendJava::shared::generat let unitInfos = $typeInfos->allUnitInfos(); assert($unitInfos->forAll(ti| !$conventions->isProvidedType($ti.type)), 'Units cannot be provided until the Unit interface is a provded type'); - + let units = if($unitInfos->isEmpty(), | [], {| @@ -178,7 +179,7 @@ function meta::pure::executionPlan::platformBinding::legendJava::shared::createG ), $conventions->pureTypeToJavaType($mp) )->j_return(); - + let propertyMultiplicity = $mp.multiplicity; let bodyWithMultiplicityCast = if($propertyMultiplicity->isToOne(), | $conventions->className(Library)->j_invoke('toOne', $body, $returnType), @@ -225,7 +226,7 @@ Class meta::pure::executionPlan::platformBinding::legendJava::LegendJavaDataReco { {doc.doc = 'Data record classes (which should not extend IReferencedObject interface)'} dataRecordClasses: meta::pure::metamodel::type::Class[*]; -} +} function meta::pure::executionPlan::platformBinding::legendJava::shared::generateInterfaceForClass(typeInfo: ClassTypeInfo[1], conventions: Conventions[1], debug: DebugContext[1]): meta::external::language::java::metamodel::Class[1] { @@ -236,7 +237,7 @@ function meta::pure::executionPlan::platformBinding::legendJava::shared::generat ->implements($typeInfo.supertypes->map(c|$conventions->className($c))) ->imports($conventions->standardDataTypeImports()) ->imports($typeInfo.supertypes->map(st|$conventions->className($st))->filter(c| $c.package != $pkg)); - + let withTypeNameAndPath = $proto->addMethod(javaMethod(['default'], javaString(), typeNameMethod(), [], [j_return(j_string($typeInfo.class.name->toOne()))])) ->addMethod(javaMethod(['default'], javaString(), typePathMethod(), [], [j_return(j_string($typeInfo.class->elementToPath()))])); @@ -253,7 +254,7 @@ function meta::pure::executionPlan::platformBinding::legendJava::shared::generat }, $withPropertyGetters ); - + let dataRecordClass = $conventions.extensions->extractLegendJavaAdhocExtensionsOfType(LegendJavaDataRecordClassesExtension).dataRecordClasses; let iReferencedObject = $conventions->className(IReferencedObject); if($typeInfo.class->in($dataRecordClass), @@ -305,7 +306,7 @@ function meta::pure::executionPlan::platformBinding::legendJava::shared::updateI let jThis = j_this($implClass); let size = javaLong()->j_variable('size'); - + let classSizeMethod = javaMethod( ['private', 'static'], javaLong(), $conventions->getterName(classSizeIdentifier()), [], j_long( @@ -373,4 +374,4 @@ function meta::pure::executionPlan::platformBinding::legendJava::shared::instanc function meta::pure::executionPlan::platformBinding::legendJava::shared::dataClass(conventions:Conventions[1], class:meta::pure::metamodel::type::Class[1], path:String[1]): meta::external::language::java::metamodel::Class[1] { $conventions->planNodeClass([], $path, $conventions->identifier($class->elementToPath('_')) + '_Impl'); -} \ No newline at end of file +} diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/shared/constraints.pure b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/shared/constraints.pure index f78ee18015e..f28d16c1e8f 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/shared/constraints.pure +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/shared/constraints.pure @@ -35,6 +35,7 @@ import meta::pure::lineage::scanProperties::*; import meta::pure::lineage::scanProperties::propertyTree::*; import meta::pure::mapping::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::inMemory::*; import meta::pure::metamodel::constraint::*; import meta::pure::milestoning::*; @@ -128,7 +129,7 @@ function <> meta::pure::executionPlan::platformBinding::legendJa $infos->filter(c | !$c.constraint.name->in($constraintsToExclude))->fold( {info, project| let thisProject = $javaClass->generateConstraintMethod($info, $class, $conventions, $debug); - + mergeProjects([$project, $thisProject]); }, newProject() @@ -142,10 +143,10 @@ function <> meta::pure::executionPlan::platformBinding::legendJa let optionalDefect = javaOptional($conventions->defectClass()); let enfLevelClass = $conventions->enforcementLevelClass(); - + let messageVar = j_variable(javaString(), 'message'); let ex = j_parameter(javaException(), 'e'); - + let testExpr = $constraint.functionDefinition.expressionSequence->toOne()->evaluateAndDeactivate()->generateJava($conventions, $debug->indent()); let externalIdCode = if($constraint.externalId->isEmpty(), |j_null(), |j_string($constraint.externalId->toOne())); let message = if($constraint.messageFunction->isEmpty(), @@ -169,7 +170,7 @@ function <> meta::pure::executionPlan::platformBinding::legendJa j_catch($ex, [ $messageVar->j_declare(j_string('Unable to evaluate constraint ['+$info.id+']: ')->j_plus(j_conditional(j_eq($ex->j_invoke('getMessage', []), j_null()), j_string('data not available - check your mappings') , $ex->j_invoke('getMessage', [])))), - $returnDefect + $returnDefect ] ) ) @@ -256,7 +257,7 @@ function meta::pure::executionPlan::platformBinding::legendJava::shared::constra let jClass = $state.conventions->dataClass($state.class, $state.path); - let project = $constraints->map(c | $c.first->generateConstraintMethods($jClass, $c.second, [], $state.conventions, $debug))->concatenate(newProject())->toOneMany()->mergeProjects(); + let project = $constraints->map(c | $c.first->generateConstraintMethods($jClass, $c.second, [], $state.conventions, $debug))->concatenate(newProject())->toOneMany()->mergeProjects(); let complexSubTrees = $state.gfTree.subTrees ->cast(@PropertyGraphFetchTree) @@ -264,16 +265,16 @@ function meta::pure::executionPlan::platformBinding::legendJava::shared::constra ->groupBy(st| $st.property); let complexSubTreesKeyValues = $complexSubTrees->keyValues()->sortBy(p | $p.first); - let subTreeClauses = $complexSubTreesKeyValues->map( + let subTreeClauses = $complexSubTreesKeyValues->map( {kv| let childIndex = $complexSubTreesKeyValues->indexOf($kv); let childPath = $state.treePath + '_' + $childIndex->toString(); let prop = $kv.first; let subTrees = $kv.second.values; - + let propJType = $state.conventions->pureTypeToJavaType($prop); let getterName = $state.conventions->getterName($prop); - + if($propJType->isJavaList(), {| let i = j_variable(javaInt(), 'i'+$childPath); @@ -281,7 +282,7 @@ function meta::pure::executionPlan::platformBinding::legendJava::shared::constra let subToCheck = $state.toCheck->j_invoke($getterName, [], $propJType)->j_invoke('get', $i); let pathNode = $state.conventions->newRelativePathNode(j_string($prop.name->toOne()), $j); - let childConstraintCodes = getChildContraintCodes($subTrees, $state, $childPath, $pathNode,$subToCheck, $debug); + let childConstraintCodes = getChildContraintCodes($subTrees, $state, $childPath, $pathNode,$subToCheck, $debug); if($childConstraintCodes->isEmpty(), | [], | let getter = $state.toCheck->j_invoke($getterName, [], $propJType); @@ -296,8 +297,8 @@ function meta::pure::executionPlan::platformBinding::legendJava::shared::constra }, {| let subToCheck = $state.toCheck->j_invoke($getterName, [], $propJType); - let pathNode = $state.conventions->newRelativePathNode(j_string($prop.name->toOne())); - let childConstraintCodes = getChildContraintCodes($subTrees, $state, $childPath, $pathNode,$subToCheck, $debug); + let pathNode = $state.conventions->newRelativePathNode(j_string($prop.name->toOne())); + let childConstraintCodes = getChildContraintCodes($subTrees, $state, $childPath, $pathNode,$subToCheck, $debug); if($childConstraintCodes->isEmpty(), | [], | pair( @@ -322,9 +323,9 @@ function meta::pure::executionPlan::platformBinding::legendJava::shared::constra | $propTree.subType->toOne() ); let subDataType = $state.conventions->dataClass($propType, $state.path); - let subVar = j_variable($subDataType, 'child'+$childPath); + let subVar = j_variable($subDataType, 'child'+$childPath); let subState = ^$state( - gfTree = $propTree, + gfTree = $propTree, class = $propType, toCheck = $subVar, treePath = $childPath, @@ -332,7 +333,7 @@ function meta::pure::executionPlan::platformBinding::legendJava::shared::constra ); let childCode = $subState->createConstraintCheckingForTree_recurse($debug); let subVarDeclarationCode = $subVar->j_declare($subToCheck->j_cast($subDataType)); - + let subTypeCheck = $subToCheck->j_instanceof($subDataType); if($childCode->isEmpty(), | [], @@ -411,7 +412,7 @@ function meta::pure::executionPlan::platformBinding::legendJava::shared::constra ->concatenate( if($constraintContext.enableConstraints, {| - $allConstraints->filter(c | !$c.constraint.name->in($constraintContext.constraintsToExclude))->toNumbered() + $allConstraints->filter(c | !$c.constraint.name->in($constraintContext.constraintsToExclude))->toNumbered() ->map(nc| j_this($jClass)->j_invoke(constraintMethodName($nc.second), [], javaOptional($defect))->j_invoke('ifPresent', $result->j_methodReference('add', javaFunctionType($defect, javaVoid())), javaVoid())) ->concatenate($propertyConstraintCalls->sortBy(pc | $pc->codeToString($jClass))) }, diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/shared/units.pure b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/shared/units.pure index bfba7bfc81d..b275ab2f997 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/shared/units.pure +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/shared/units.pure @@ -31,6 +31,7 @@ import meta::pure::graphFetch::executionPlan::*; import meta::pure::graphFetch::routing::*; import meta::pure::mapping::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::inMemory::*; import meta::pure::metamodel::constraint::*; import meta::pure::milestoning::*; diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/store/m2m/m2mLegendJavaPlatformBindingExtension.pure b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/store/m2m/m2mLegendJavaPlatformBindingExtension.pure index fc237b21cf6..f7000c61bb5 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/store/m2m/m2mLegendJavaPlatformBindingExtension.pure +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/src/main/resources/core_java_platform_binding/legendJavaPlatformBinding/store/m2m/m2mLegendJavaPlatformBindingExtension.pure @@ -23,6 +23,7 @@ import meta::pure::executionPlan::platformBinding::legendJava::*; import meta::pure::extension::*; import meta::pure::mapping::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::mapping::modelToModel::graphFetch::executionPlan::*; import meta::pure::mapping::modelToModel::graphFetch::executionPlan::platformBinding::legendJava::*; import meta::pure::mapping::modelToModel::graphFetch::executionPlan::storeStreamReading::platformBinding::legendJava::*; @@ -139,27 +140,27 @@ function meta::pure::mapping::modelToModel::executionPlan::platformBinding::lege dataRecordTreeFromConnectionExtractors = [ json : JsonModelConnection[1] | #{JsonDataRecord {number, record}}#, - xml : XmlModelConnection[1] | #{XmlDataRecord {number, record}}# + xml : XmlModelConnection[1] | #{XmlDataRecord {number, record}}# ], streamReaderMethodCodeGenerators = {conventions: Conventions[1], path: String[1], pureClass: meta::pure::metamodel::type::Class[1], storeStreamReadingContext: Code[1] | [ { - json: JsonModelConnection[1] | + json: JsonModelConnection[1] | $conventions->meta::pure::mapping::modelToModel::executionPlan::platformBinding::legendJava::graphFetch::storeStreamReading::json::jsonReaderClass($path, $pureClass) ->j_new($storeStreamReadingContext->j_invoke('createUrl', j_string($json.url))->j_invoke('openStream', [])) ->j_return() ->j_ioExTryCatch() }, { - xml: XmlModelConnection[1] | + xml: XmlModelConnection[1] | $conventions->meta::pure::mapping::modelToModel::executionPlan::platformBinding::legendJava::graphFetch::storeStreamReading::xml::xmlReaderClass($path, $pureClass) ->j_new($storeStreamReadingContext->j_invoke('createUrl', j_string($xml.url))->j_invoke('openStream', [])) ->j_return() ->j_ioExTryCatch() }, { - model: ModelConnection[1] | + model: ModelConnection[1] | let varName = $model.instances->values()->at(0)->get(0)->cast(@RoutedVariablePlaceHolder).name; let typeArg = $storeStreamReadingContext->j_invoke('streamType', $conventions->className($pureClass)->j_field('class', javaClassType()), javaReflectType()); $conventions->meta::pure::mapping::modelToModel::executionPlan::platformBinding::legendJava::graphFetch::storeStreamReading::objectStream::streamReaderClass($path) @@ -183,7 +184,7 @@ function meta::pure::mapping::modelToModel::executionPlan::platformBinding::lege meta::pure::executionPlan::platformBinding::legendJava::legendJavaPlatformBinding([ meta::pure::mapping::modelToModel::executionPlan::platformBinding::legendJava::inMemoryLegendJavaPlatformBindingExtension() ]) - ]) + ]) ) } @@ -194,4 +195,4 @@ function meta::pure::mapping::modelToModel::executionPlan::platformBinding::lege meta::pure::mapping::modelToModel::executionPlan::platformBinding::legendJava::inMemoryLegendJavaPlatformBindingExtension() ]) ]) -} \ No newline at end of file +} diff --git a/legend-engine-xts-json/legend-engine-xt-json-pure/src/main/resources/core_external_format_json/executionPlan/tests/internalizeExternalizeWithContentType.pure b/legend-engine-xts-json/legend-engine-xt-json-pure/src/main/resources/core_external_format_json/executionPlan/tests/internalizeExternalizeWithContentType.pure index 969b34dfe0d..f4f54d031be 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-pure/src/main/resources/core_external_format_json/executionPlan/tests/internalizeExternalizeWithContentType.pure +++ b/legend-engine-xts-json/legend-engine-xt-json-pure/src/main/resources/core_external_format_json/executionPlan/tests/internalizeExternalizeWithContentType.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::dataQuality::*; import meta::pure::graphFetch::execution::*; @@ -120,7 +121,7 @@ Mapping meta::external::format::json::executionPlan::test::withContentType::M2MM meta::external::format::json::executionPlan::test::withContentType::TargetPerson: Pure { ~src meta::external::format::json::executionPlan::test::withContentType::Person - + fullName : $src.firstName + ' ' + $src.lastName, firm : $src.firm, addresses : $src.addresses @@ -139,4 +140,4 @@ Mapping meta::external::format::json::executionPlan::test::withContentType::M2MM street : $src.street } -) \ No newline at end of file +) diff --git a/legend-engine-xts-json/legend-engine-xt-json-pure/src/main/resources/core_external_format_json/executionPlan/tests/simple.pure b/legend-engine-xts-json/legend-engine-xt-json-pure/src/main/resources/core_external_format_json/executionPlan/tests/simple.pure index 0df808444f5..285687bd929 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-pure/src/main/resources/core_external_format_json/executionPlan/tests/simple.pure +++ b/legend-engine-xts-json/legend-engine-xt-json-pure/src/main/resources/core_external_format_json/executionPlan/tests/simple.pure @@ -15,6 +15,7 @@ import meta::pure::dataQuality::*; import meta::pure::graphFetch::execution::*; import meta::pure::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::external::format::shared::functions::*; import meta::external::format::json::executionPlan::model::*; @@ -131,7 +132,7 @@ function <internalize($binding, $data)->graphFetchChecked(#{Person{firstName, lastName, firm {legalName}, addresses{street}}}#)->externalize($binding, checked(#{Person{firstName, lastName, firm {legalName}, addresses{street}}}#, $binding))}; - + let result = meta::external::format::json::executionPlan::test::executeJsonSchemaBindingQuery($query, pair('data', '{"firstName": "John", "lastName":"Doe"}')); assertEquals('{"defects":[{"id":null,"externalId":null,"message":"Invalid multiplicity for firm: expected [1] found [0]","enforcementLevel":"Critical","ruleType":"ClassStructure","ruleDefinerPath":"meta::external::format::json::executionPlan::test::simple::Person","path":[]}],"source":{"number":1,"record":"{\\\"firstName\\\":\\\"John\\\",\\\"lastName\\\":\\\"Doe\\\"}"},"value":null}', $result); @@ -141,7 +142,7 @@ function <internalize($binding, $data)->graphFetchChecked(#{Person{firstName, lastName, firm {legalName}, addresses{street}}}#)->externalize($binding, checked(#{Person{firstName, lastName}}#, $binding))}; - + let result = meta::external::format::json::executionPlan::test::executeJsonSchemaBindingQuery($query, pair('data', '{"firstName": "John", "lastName":"Doe", "firm": {"legalName": "Firm A"}}')); assertEquals('{"defects":[],"source":{"number":1,"record":"{\\\"firstName\\\":\\\"John\\\",\\\"lastName\\\":\\\"Doe\\\",\\\"firm\\\":{\\\"legalName\\\":\\\"Firm A\\\"}}"},"value":{"firstName":"John","lastName":"Doe"}}', $result); @@ -198,7 +199,7 @@ function <> meta::external::format::json::executionPlan::test::simple::testMultiLevelM2MChainingWithJson(): Boolean[1] { let binding = getTestBinding(); - let runtime = ^Runtime(connections = ^meta::pure::mapping::modelToModel::ModelChainConnection(element=^meta::pure::mapping::modelToModel::ModelStore(), mappings = M2MMapping1)); + let runtime = ^Runtime(connectionStores = ^ConnectionStore(element=^meta::external::store::model::ModelStore(), connection=^meta::external::store::model::ModelChainConnection(mappings = M2MMapping1))); let query = {data:String[1]| RefinedPerson.all()->graphFetch(#{RefinedPerson{fullName, firm {legalName}, addresses{street}}}#)->from(M2MMapping2, mergeRuntimes([$runtime, getRuntimeWithModelQueryConnection(Person, 'application/json', $data)]))->externalize($binding, #{RefinedPerson{fullName, firm {legalName}, addresses{street}}}#)}; let result = meta::external::format::json::executionPlan::test::executeJsonSchemaBindingQuery($query, pair('data', '{"firstName": "John", "lastName":"Doe", "firm": {"legalName": "Firm A"}}')); @@ -209,7 +210,7 @@ function <> meta::external::format::json::executionPlan::test::simple::testMultiLevelM2MChainingWithJsonAndChecked(): Boolean[1] { let binding = getTestBinding(); - let runtime = ^Runtime(connections = ^meta::pure::mapping::modelToModel::ModelChainConnection(element=^meta::pure::mapping::modelToModel::ModelStore(), mappings = M2MMapping1)); + let runtime = ^Runtime(connectionStores = ^ConnectionStore(element=^meta::external::store::model::ModelStore(), connection=^meta::external::store::model::ModelChainConnection(mappings = M2MMapping1))); let query = {data:String[1]| RefinedPerson.all()->graphFetchChecked(#{RefinedPerson{fullName, firm {legalName}, addresses{street}}}#)->from(M2MMapping2, mergeRuntimes([$runtime, getRuntimeWithModelQueryConnection(Person, 'application/json', $data)]))->externalize($binding, checked(#{RefinedPerson{fullName, firm {legalName}, addresses{street}}}#, defaultDefectTree()))}; let result = meta::external::format::json::executionPlan::test::executeJsonSchemaBindingQuery($query, pair('data', '{"firstName": "John", "lastName":"Doe", "firm": {"legalName": "Firm A"}}')); @@ -222,7 +223,7 @@ function <graphFetch($tree)->from(M2MMapping1, getRuntimeWithModelQueryConnection(Person, $binding, $data))->externalize($binding, $tree);}; - + let result = meta::external::format::json::executionPlan::test::executeJsonSchemaBindingQuery($query, pair('data', '[{"firstName":"John", "lastName":"Doe", "firm":{"legalName":"Firm A"}, "addresses": {"street": "Street A"}}, {"firstName":"John", "lastName":"Doe2", "firm":{"legalName":"Firm B"}, "addresses": [{"street": "Street A"}, {"street": "Street B"}]}, {"firstName":"John", "lastName":"Doe3", "firm":{"legalName":"Firm C"}}]')); assertEquals('[{"fullName":"John Doe","firm":{"legalName":"Firm A"},"addresses":[{"street":"Street A","decoratedStreet()":"Street:Street A"}]},{"fullName":"John Doe2","firm":{"legalName":"Firm B"},"addresses":[{"street":"Street A","decoratedStreet()":"Street:Street A"},{"street":"Street B","decoratedStreet()":"Street:Street B"}]},{"fullName":"John Doe3","firm":{"legalName":"Firm C"},"addresses":[]}]', $result); @@ -238,7 +239,7 @@ function <graphFetch($tree)->from(M2MCrossStoreMapping, mergeRuntimes([getRuntimeWithModelQueryConnection(S_Trade, $binding, $tradeData), getRuntimeWithModelQueryConnection(S_Product, $binding, $productData)]))->externalize($binding, $tree);}; let vars = [pair('tradeData', '[{"s_tradeId": 1, "s_tradeDetails": "30:100", "s_traderDetails": "abc:F_Name_1:L_Name_1"},{"s_tradeId": 2, "s_tradeDetails": "31:200", "s_traderDetails": "abc:F_Name_1:L_Name_1"},{"s_tradeId": 3, "s_tradeDetails": "30:300", "s_traderDetails": "xyz:F_Name_2:L_Name_2"},{"s_tradeId": 4, "s_tradeDetails": "31:400", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}]'), pair('productData', '[{"s_productId": "30", "s_productName": "Product 30", "s_description": "Product 30 description", "s_synonyms": [{"s_name":"product 30 synonym 1", "s_type":"isin"},{"s_name":"product 30 synonym 2", "s_type":"cusip"}]},{"s_productId": "31", "s_productName": "Product 31", "s_description": "Product 31 description", "s_synonyms": [{"s_name":"product 31 synonym 1", "s_type":"isin"}, {"s_name":"product 31 synonym 2", "s_type":"cusip"}]}]')]; - + let result = meta::external::format::json::executionPlan::test::executeJsonSchemaBindingQuery($query, $vars); assertEquals('[{"tradeId":1,"trader":{"kerberos":"abc","firstName":"F_Name_1","lastName":"L_Name_1"},"product":{"productId":"30","productName":"Product 30","description":"Product 30 description","synonyms":[{"name":"product 30 synonym 1","type":"ISIN"},{"name":"product 30 synonym 2","type":"CUSIP"}]}},{"tradeId":2,"trader":{"kerberos":"abc","firstName":"F_Name_1","lastName":"L_Name_1"},"product":{"productId":"31","productName":"Product 31","description":"Product 31 description","synonyms":[{"name":"product 31 synonym 1","type":"ISIN"},{"name":"product 31 synonym 2","type":"CUSIP"}]}},{"tradeId":3,"trader":{"kerberos":"xyz","firstName":"F_Name_2","lastName":"L_Name_2"},"product":{"productId":"30","productName":"Product 30","description":"Product 30 description","synonyms":[{"name":"product 30 synonym 1","type":"ISIN"},{"name":"product 30 synonym 2","type":"CUSIP"}]}},{"tradeId":4,"trader":{"kerberos":"xyz","firstName":"F_Name_2","lastName":"L_Name_2"},"product":{"productId":"31","productName":"Product 31","description":"Product 31 description","synonyms":[{"name":"product 31 synonym 1","type":"ISIN"},{"name":"product 31 synonym 2","type":"CUSIP"}]}}]', $result); @@ -273,7 +274,7 @@ function <graphFetch($tree)->from(M2MUnionMapping, mergeRuntimes([getRuntimeWithModelQueryConnection(S_Trade1, $binding, $tradeData1), getRuntimeWithModelQueryConnection(S_Trade2, $binding, $tradeData2)]))->externalize($binding, $tree);}; let vars = [pair('tradeData1', '[{"s_tradeId": 1, "s_tradeDetails": "30:100", "s_traderDetails": "abc:F_Name_1:L_Name_1"},{"s_tradeId": 2, "s_tradeDetails": "31:200", "s_traderDetails": "abc:F_Name_1:L_Name_1"},{"s_tradeId": 3, "s_tradeDetails": "30:300", "s_traderDetails": "xyz:F_Name_2:L_Name_2"},{"s_tradeId": 4, "s_tradeDetails": "31:400", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}]'), pair('tradeData2', '[{"s_tradeId": 5, "s_tradeDetails": "30:100", "s_traderDetails": "abc:F_Name_1:L_Name_1"},{"s_tradeId": 6, "s_tradeDetails": "31:200", "s_traderDetails": "abc:F_Name_1:L_Name_1"},{"s_tradeId": 7, "s_tradeDetails": "30:300", "s_traderDetails": "xyz:F_Name_2:L_Name_2"},{"s_tradeId": 8, "s_tradeDetails": "31:400", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}]')]; - + let result = meta::external::format::json::executionPlan::test::executeJsonSchemaBindingQuery($query, $vars); assertEquals('[{"tradeId":1,"trader":{"kerberos":"abc","firstName":"F_Name_1","lastName":"L_Name_1"}},{"tradeId":2,"trader":{"kerberos":"abc","firstName":"F_Name_1","lastName":"L_Name_1"}},{"tradeId":3,"trader":{"kerberos":"xyz","firstName":"F_Name_2","lastName":"L_Name_2"}},{"tradeId":4,"trader":{"kerberos":"xyz","firstName":"F_Name_2","lastName":"L_Name_2"}},{"tradeId":5,"trader":{"kerberos":"abc","firstName":"F_Name_1","lastName":"L_Name_1"}},{"tradeId":6,"trader":{"kerberos":"abc","firstName":"F_Name_1","lastName":"L_Name_1"}},{"tradeId":7,"trader":{"kerberos":"xyz","firstName":"F_Name_2","lastName":"L_Name_2"}},{"tradeId":8,"trader":{"kerberos":"xyz","firstName":"F_Name_2","lastName":"L_Name_2"}}]', $result); @@ -327,7 +328,7 @@ Class meta::external::format::json::executionPlan::test::simple::Address function meta::external::format::json::executionPlan::test::simple::getTestBinding():Binding[1] { - let schema = + let schema = '###ExternalFormat\n' + 'Binding meta::external::format::json::executionPlan::test::simple::TestBinding\n' + '{\n' + @@ -340,7 +341,7 @@ function meta::external::format::json::executionPlan::test::simple::getTestBindi ' meta::external::format::json::executionPlan::test::simple::Address\n' + ' ];\n' + '}\n'; - + compileLegendGrammar($schema)->filter(ele | $ele->instanceOf(Binding))->cast(@Binding)->toOne(); } @@ -436,7 +437,7 @@ Association meta::external::format::json::executionPlan::test::simple::Trade_Tra function meta::external::format::json::executionPlan::test::simple::getTradeProductTestBinding():Binding[1] { - let schema = + let schema = '###ExternalFormat\n' + 'Binding meta::external::format::json::executionPlan::test::simple::TradeProductTestBinding\n' + '{\n' + @@ -449,7 +450,7 @@ function meta::external::format::json::executionPlan::test::simple::getTradeProd ' meta::external::format::json::executionPlan::test::simple::S_Synonym\n' + ' ];\n' + '}\n'; - + compileLegendGrammar($schema)->filter(ele | $ele->instanceOf(Binding))->cast(@Binding)->toOne(); } @@ -460,7 +461,7 @@ Mapping meta::external::format::json::executionPlan::test::simple::M2MMapping1 meta::external::format::json::executionPlan::test::simple::TargetPerson: Pure { ~src meta::external::format::json::executionPlan::test::simple::Person - + fullName : $src.firstName + ' ' + $src.lastName, firm : $src.firm, addresses : $src.addresses @@ -486,7 +487,7 @@ Mapping meta::external::format::json::executionPlan::test::simple::M2MMapping2 meta::external::format::json::executionPlan::test::simple::RefinedPerson: Pure { ~src meta::external::format::json::executionPlan::test::simple::TargetPerson - + fullName : $src.fullName + ' refined', firm : $src.firm, addresses : $src.addresses @@ -588,4 +589,4 @@ Mapping meta::external::format::json::executionPlan::test::simple::M2MUnionMappi { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(trade_set1,trade_set2) } -) \ No newline at end of file +) diff --git a/legend-engine-xts-json/legend-engine-xt-json-pure/src/main/resources/core_external_format_json/executionPlan/tests/utils.pure b/legend-engine-xts-json/legend-engine-xt-json-pure/src/main/resources/core_external_format_json/executionPlan/tests/utils.pure index aa1d92e6d93..86819f37d00 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-pure/src/main/resources/core_external_format_json/executionPlan/tests/utils.pure +++ b/legend-engine-xts-json/legend-engine-xt-json-pure/src/main/resources/core_external_format_json/executionPlan/tests/utils.pure @@ -15,6 +15,7 @@ ###Pure import meta::legend::*; import meta::pure::extension::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::external::format::json::executionPlan::test::convertStringToBytes(data:String[1]): InstanceValue[1] @@ -33,4 +34,4 @@ function meta::external::format::json::executionPlan::test::jsonExtensions(): Ex meta::external::format::shared::externalFormatExtension(), meta::external::format::json::extension::jsonSchemaFormatExtension() ] -} \ No newline at end of file +} diff --git a/legend-engine-xts-json/legend-engine-xt-json-pure/src/main/resources/core_external_format_json/metamodel/internalizeConfig.pure b/legend-engine-xts-json/legend-engine-xt-json-pure/src/main/resources/core_external_format_json/metamodel/internalizeConfig.pure index ff966d34fab..cb864c19a2a 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-pure/src/main/resources/core_external_format_json/metamodel/internalizeConfig.pure +++ b/legend-engine-xts-json/legend-engine-xt-json-pure/src/main/resources/core_external_format_json/metamodel/internalizeConfig.pure @@ -18,6 +18,7 @@ import meta::pure::metamodel::path::*; import meta::pure::graphFetch::*; import meta::pure::extension::*; +import meta::core::runtime::*; import meta::pure::runtime::*; Class meta::external::format::json::metamodel::internalize::JsonPathReference @@ -34,7 +35,7 @@ Class meta::external::format::json::metamodel::internalize::JsonSchemaInternaliz function meta::external::format::json::metamodel::internalize::generateJsonSchemaInternalizeConfig(path:Path[1]): JsonSchemaInternalizeConfig[1] { let pathString = $path.path->filter(ele | $ele->instanceOf(PropertyPathElement))->cast(@PropertyPathElement).property.name->joinStrings('/', '/', ''); - + ^JsonSchemaInternalizeConfig ( pathReference = ^JsonPathReference(path = $pathString) @@ -44,4 +45,4 @@ function meta::external::format::json::metamodel::internalize::generateJsonSchem function meta::external::format::json::metamodel::internalize::defaultInternalizeConfig(): JsonSchemaInternalizeConfig[1] { ^JsonSchemaInternalizeConfig() -} \ No newline at end of file +} diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/src/main/resources/core_mongodb_execution_test/mongodb_execution_tests.pure b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/src/main/resources/core_mongodb_execution_test/mongodb_execution_tests.pure index 3b58c309ad7..69f7ab1028d 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/src/main/resources/core_mongodb_execution_test/mongodb_execution_tests.pure +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/src/main/resources/core_mongodb_execution_test/mongodb_execution_tests.pure @@ -19,6 +19,7 @@ import meta::pure::extension::*; import meta::pure::functions::io::http::*; import meta::pure::test::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::external::store::mongodb::executionTest::utils::*; @@ -31,7 +32,7 @@ Class meta::external::store::mongodb::executionTest::TestConfig { tag: String[1]; mapping: meta::pure::mapping::Mapping[1]; - runtime: meta::pure::runtime::Runtime[1]; + runtime: meta::core::runtime::Runtime[1]; } function meta::external::store::mongodb::executionTest::getCompiledTestConfig(tag: String[1], mongoDBHost: String[1], mongoDBPort: Integer[1], pureSetupToCompileFileLoc: String[1]):meta::external::store::mongodb::executionTest::TestConfig[1] @@ -44,7 +45,7 @@ let detokenizedFile = $tokenizedFile->replace('serverURLs: [__HOST_TOKEN__:__POR let compiled = meta::legend::compile($detokenizedFile); let compiledMapping = $compiled->at(3)->cast(@meta::pure::mapping::Mapping)->toOne(); -let compiledRuntime = $compiled->at(1)->cast(@meta::pure::runtime::PackageableRuntime).runtimeValue->cast(@meta::pure::runtime::Runtime); +let compiledRuntime = $compiled->at(1)->cast(@meta::pure::runtime::PackageableRuntime).runtimeValue->cast(@meta::core::runtime::Runtime); let testConfig = ^meta::external::store::mongodb::executionTest::TestConfig( tag = $tag, @@ -78,7 +79,7 @@ function meta::external::store::mongodb::executionTest::personTreeSmall(): meta age } }#; - + } @@ -417,14 +418,14 @@ function meta::external::store::mongodb::executionTest::executeAndAssert(f: Func ]; let executionContext = ^meta::external::store::mongodb::functions::pureToDatabaseCommand::MongoDBExecutionContext(queryTimeOutInSeconds=5, enableConstraints=false); - + let result = meta::legend::execute( $f, [], $executionContext, $extensions )->meta::json::parseJSON()->meta::json::toPrettyJSONString(); - + assertEquals($expectedResult, $result); } @@ -438,7 +439,7 @@ testFilterExecution($config, $filterLambda, $expectedResultFileLoc, personTreeFu function meta::external::store::mongodb::executionTest::testCase::utils::testFilterExecution(config:TestConfig[1], filterLambda:LambdaFunction<{Person[1]->Boolean[1]}>[1], expectedResultFileLoc: String[1], graphFetch: meta::pure::graphFetch::RootGraphFetchTree[1]):Boolean[1] { - + let mapping = $config.mapping; let runtime = $config.runtime; @@ -483,5 +484,5 @@ function <> meta::external::store::mongodb::executionTest::v7::c function <> meta::external::store::mongodb::executionTest::v7::test_4_4_1(): PureTestCollection[1] { - '4.4.1'->meta::external::store::mongodb::executionTest::v7::collectTest(); + '4.4.1'->meta::external::store::mongodb::executionTest::v7::collectTest(); } diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/src/README.md b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/src/README.md index 91b2f68dfd5..35df0b6369b 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/src/README.md +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/src/README.md @@ -94,7 +94,7 @@ let compiledMapping = $compiled->at(3)->cast(@meta::pure::mapping::Mapping)->toOne(); - let compiledRuntime = $compiled->at(1)->cast(@meta::pure::runtime::PackageableRuntime).runtimeValue->cast(@meta::pure::runtime::Runtime); + let compiledRuntime = $compiled->at(1)->cast(@meta::pure::runtime::PackageableRuntime).runtimeValue->cast(@meta::core::runtime::Runtime); let executionContext = ^meta::external::store::mongodb::functions::pureToDatabaseCommand::MongoDBExecutionContext(queryTimeOutInSeconds=5, enableConstraints=false); let debugContext = ^meta::pure::tools::DebugContext( diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/src/main/java/org/finos/legend/engine/language/pure/grammar/integration/MongoDBCompilerExtension.java b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/src/main/java/org/finos/legend/engine/language/pure/grammar/integration/MongoDBCompilerExtension.java index 31863df1931..9ea72a9a142 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/src/main/java/org/finos/legend/engine/language/pure/grammar/integration/MongoDBCompilerExtension.java +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/src/main/java/org/finos/legend/engine/language/pure/grammar/integration/MongoDBCompilerExtension.java @@ -82,7 +82,7 @@ public Iterable> getExtraProcessors() } @Override - public List> getExtraConnectionValueProcessors() + public List> getExtraConnectionValueProcessors() { return Lists.fixedSize.with( (connectionValue, context) -> diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/src/main/java/org/finos/legend/engine/language/pure/grammar/integration/util/MongoDBCompilerHelper.java b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/src/main/java/org/finos/legend/engine/language/pure/grammar/integration/util/MongoDBCompilerHelper.java index cf674608896..819ac5d4163 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/src/main/java/org/finos/legend/engine/language/pure/grammar/integration/util/MongoDBCompilerHelper.java +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/src/main/java/org/finos/legend/engine/language/pure/grammar/integration/util/MongoDBCompilerHelper.java @@ -343,7 +343,6 @@ public static Root_meta_external_store_mongodb_metamodel_pure_runtime_MongoDBCon Root_meta_external_store_mongodb_metamodel_pure_runtime_MongoDBConnection conn = new Root_meta_external_store_mongodb_metamodel_pure_runtime_MongoDBConnection_Impl("MongoDBConnection", sourceInformation, context.pureModel.getClass("meta::external::store::mongodb::metamodel::pure::runtime::MongoDBConnection")) ._authenticationSpecification(authSpec) ._dataSourceSpecification(dbDatasourceSpecification) - ._element(context.pureModel.getStore(connectionValue.element, connectionValue.elementSourceInformation)) ._type(context.pureModel.getEnumValue("meta::external::store::mongodb::metamodel::runtime::DatabaseType", connectionValue.type.toString())); return conn._validate(true, sourceInformation, context.getExecutionSupport()); diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/src/main/resources/core_nonrelational_mongodb_java_platform_binding/mongodbStoreLegendJavaPlatformBindingExtension.pure b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/src/main/resources/core_nonrelational_mongodb_java_platform_binding/mongodbStoreLegendJavaPlatformBindingExtension.pure index 968e68fd552..9a3211907d3 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/src/main/resources/core_nonrelational_mongodb_java_platform_binding/mongodbStoreLegendJavaPlatformBindingExtension.pure +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/src/main/resources/core_nonrelational_mongodb_java_platform_binding/mongodbStoreLegendJavaPlatformBindingExtension.pure @@ -237,7 +237,7 @@ function meta::external::store::mongodb::executionPlan::platformBinding::legendJ let contextWithNodeInfo = $context->addNodeInfo($nodeInfo); let resolvedModel = $node.binding.modelUnit->resolve(); - let updatedTypeInfo = $context.typeInfos->addForClassWithAllProperties(meta::pure::mapping::modelToModel::JsonDataRecord) + let updatedTypeInfo = $context.typeInfos->addForClassWithAllProperties(meta::external::store::model::JsonDataRecord) ->map(ti| if($node.tree->isEmpty(),| $ti->addForClass($class)->addConstraints($class),| $ti->addForGraphFetchTree($node.tree->toOne())->addConstraintsForGraphFetchTree($node.tree->toOne()))); let newTypeInfos = if($externalFormatJavaBindingDescriptor.internalizeDescriptor.internalizePreparator->isNotEmpty(), @@ -290,7 +290,7 @@ function <> meta::external::store::mongodb::executionPlan::platf function <> meta::external::store::mongodb::executionPlan::platformBinding::legendJava::removeUnusedImports(class:meta::external::language::java::metamodel::Class[1]): meta::external::language::java::metamodel::Class[1] { ^$class(additionalImports = $class.additionalImports - ->filter({m| $m->in(['com.fasterxml.jackson.core.JsonToken', + ->filter({m| $m->in(['com.fasterxml.jackson.core.JsonToken', 'com.fasterxml.jackson.core.filter.FilteringParserDelegate', 'com.fasterxml.jackson.core.filter.JsonPointerBasedFilter', 'com.fasterxml.jackson.core.JsonFactory'])->not()})); @@ -330,7 +330,7 @@ function <> meta::external::store::mongodb::executionPlan::platf //let exCheckExpression = $exception->j_throw(); let cursorFinished = j_not($jThis->j_field('mCursor')->j_invoke('hasNext',[], javaBoolean()))->j_return()->j_try(j_catch($exception, $exCheckExpression)); - + let newIsFinishedMethod = javaMethod('public', javaBoolean(), 'isFinished', [],[$cursorFinished]); // Remove nextToken, getCurrentToken method as we don't need it. ^$class(methods = $class.methods->filter({m| $m.name->in(['isFinished', 'nextToken','getCurrentToken'])->not()})->concatenate($newIsFinishedMethod)); @@ -375,7 +375,7 @@ function <> meta::external::store::mongodb::executionPlan::platf function meta::external::store::mongodb::executionPlan::platformBinding::legendJava::jsonNodeTypeForMongoDB(conventions:Conventions[1], type:meta::pure::metamodel::type::Type[1]): Code[*] { if($type == StrictDate || $type == DateTime || $type == Date, - | jsonNodeType()->j_invoke('valueOf', j_string('OBJECT'), jsonNodeType()), + | jsonNodeType()->j_invoke('valueOf', j_string('OBJECT'), jsonNodeType()), | $conventions->jsonNodeTypesFor($type) ); } @@ -390,7 +390,7 @@ function <> meta::external::store::mongodb::executionPlan::platf let sourceRead = $pureClass->readMethodName($conv); let ioEx = j_parameter(javaIOException(), 'e'); let jThis = j_this($proto); - let recordType = $conv->className(meta::pure::mapping::modelToModel::JsonDataRecord); + let recordType = $conv->className(meta::external::store::model::JsonDataRecord); let json = j_variable(javaString(), 'json'); let recordNumber = j_variable(javaLong(), 'recordNumber'); let source = j_variable($recordType, 'source'); diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/contract/storeContract.pure b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/contract/storeContract.pure index 92f23fe0069..774e29322de 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/contract/storeContract.pure +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/contract/storeContract.pure @@ -22,7 +22,9 @@ import meta::external::store::mongodb::runtime::*; import meta::pure::graphFetch::executionPlan::*; import meta::pure::router::clustering::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::extension::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::store::*; import meta::pure::mapping::*; @@ -66,12 +68,13 @@ function meta::external::store::mongodb::contract::planExecution(sq:meta::pure:: $sq->meta::pure::graphFetch::executionPlan::planGraphFetchExecution($ext, $m->toOne(), $runtime->toOne(), $exeCtx, $extensions, $debug);, | // Normal Flow - let connections = $runtime.connections->filter(c | $c->instanceOf(MongoDBConnection)); + let connections = $runtime.connectionStores->filter(c | $c.connection->instanceOf(MongoDBConnection)); let storeRuntime = if($connections->size() <= 1, | $runtime->toOne(), | let oldRuntime = $runtime->toOne(); - let dbConn = $oldRuntime->connectionByElement($store)->cast(@MongoDBConnection); - ^$oldRuntime(connections = $dbConn); + let connectionStore = $oldRuntime.connectionStores->filter(c|$c.element==$store)->toOne(); + let dbConn = $connectionStore->cast(@MongoDBConnection); + ^$oldRuntime(connectionStores = ^$connectionStore(connection=$dbConn)); ); let databaseCommand = $sq.fe->toDatabaseCommand($m->toOne(), $sq.inScopeVars, $debug, $extensions)->cast(@DatabaseCommand); @@ -104,4 +107,4 @@ function meta::external::store::mongodb::contract::supports(f:FunctionExpression function meta::external::store::mongodb::contract::planGraphFetchExecution(input: StoreMappingLocalGraphFetchExecutionNodeGenerationInput[1]): LocalGraphFetchExecutionNode[1] { meta::external::store::mongodb::graphFetch::executionPlan::planRootGraphFetchExecutionMongoDb($input.storeQuery, $input.ext, $input.clusteredTree, $input.orderedPaths, $input.mapping, $input.runtime, $input.exeCtx, $input.enableConstraints, $input.checked, $input.extensions, $input.debug) -} \ No newline at end of file +} diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/graphFetch/mongoDBGraphFetch.pure b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/graphFetch/mongoDBGraphFetch.pure index 6792f40bd7f..d2333eecfbd 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/graphFetch/mongoDBGraphFetch.pure +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/graphFetch/mongoDBGraphFetch.pure @@ -24,6 +24,7 @@ import meta::external::store::mongodb::functions::pureToDatabaseCommand::*; import meta::external::store::mongodb::metamodel::pure::runtime::*; import meta::external::store::mongodb::metamodel::pure::*; import meta::pure::extension::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::graphFetch::routing::*; import meta::pure::mapping::*; diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/metamodel/mongodbRuntime.pure b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/metamodel/mongodbRuntime.pure index c57cabcca99..b5606a5c8b7 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/metamodel/mongodbRuntime.pure +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/metamodel/mongodbRuntime.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::runtime::connection::authentication::*; import meta::external::store::mongodb::metamodel::runtime::*; @@ -25,9 +26,9 @@ Enum meta::external::store::mongodb::metamodel::runtime::DatabaseType } Class meta::external::store::mongodb::metamodel::pure::runtime::MongoDBConnection extends Connection -[ - $this.element->instanceOf(MongoDatabase) -] +// [ +// $this.element->instanceOf(MongoDatabase) +// ] { type: meta::external::store::mongodb::metamodel::runtime::DatabaseType[1]; dataSourceSpecification: MongoDBDatasourceSpecification[1]; diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_32_0/transfers/connection_mongodb.pure b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_32_0/transfers/connection_mongodb.pure index bcdb69b5056..bdd49b4b215 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_32_0/transfers/connection_mongodb.pure +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_32_0/transfers/connection_mongodb.pure @@ -20,7 +20,7 @@ import meta::external::store::mongodb::metamodel::pure::runtime::*; function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connection::store::mongodb::transformDatabaseConnection(otherConnection: MongoDBConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_32_0::metamodel::store::mongodb::connection::MongoDBConnection[1] { let _type = $otherConnection->class()->toString(); - let element = $otherConnection.element->match([d:meta::pure::store::Store[1]|$d->elementToPath(),s:String[1]|$s]); + let element = ''; let type = $otherConnection.type->toString(); $otherConnection->match($extensions.serializerExtension('v1_32_0')->cast(@meta::protocols::pure::v1_32_0::extension::SerializerExtension_v1_32_0).moduleSerializerExtension('mongoDB')->cast(@meta::protocols::pure::v1_32_0::extension::store::mongodb::MongoDBModuleSerializerExtension).transfers_connection_transformDatabaseConnection->map(f | $f->eval($_type, $element, $type))->concatenate([ @@ -55,4 +55,4 @@ function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connecti function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connection::store::mongodb::transformServerURLs(urls: meta::external::store::mongodb::metamodel::runtime::MongoDBURL[1..*]):meta::protocols::pure::v1_32_0::metamodel::store::mongodb::connection::MongoDBURL[1..*] { $urls->map(url | ^meta::protocols::pure::v1_32_0::metamodel::store::mongodb::connection::MongoDBURL(baseUrl = $url.baseUrl, port = $url.port)); -} \ No newline at end of file +} diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_33_0/transfers/connection_mongodb.pure b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_33_0/transfers/connection_mongodb.pure index 92960e46e61..56dd336fd74 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_33_0/transfers/connection_mongodb.pure +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v1_33_0/transfers/connection_mongodb.pure @@ -20,7 +20,7 @@ import meta::external::store::mongodb::metamodel::pure::runtime::*; function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::store::mongodb::transformDatabaseConnection(otherConnection: MongoDBConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::store::mongodb::connection::MongoDBConnection[1] { let _type = $otherConnection->class()->toString(); - let element = $otherConnection.element->match([d:meta::pure::store::Store[1]|$d->elementToPath(),s:String[1]|$s]); + let element = ''; let type = $otherConnection.type->toString(); $otherConnection->match($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).moduleSerializerExtension('mongoDB')->cast(@meta::protocols::pure::v1_33_0::extension::store::mongodb::MongoDBModuleSerializerExtension).transfers_connection_transformDatabaseConnection->map(f | $f->eval($_type, $element, $type))->concatenate([ diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v_X_X_X/transfers/connection_mongodb.pure b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v_X_X_X/transfers/connection_mongodb.pure index 5d0e81657aa..2d70abbe988 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v_X_X_X/transfers/connection_mongodb.pure +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/protocols/pure/v_X_X_X/transfers/connection_mongodb.pure @@ -20,7 +20,7 @@ import meta::external::store::mongodb::metamodel::pure::runtime::*; function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connection::store::mongodb::transformDatabaseConnection(otherConnection: MongoDBConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::vX_X_X::metamodel::store::mongodb::connection::MongoDBConnection[1] { let _type = $otherConnection->class()->toString(); - let element = $otherConnection.element->match([d:meta::pure::store::Store[1]|$d->elementToPath(),s:String[1]|$s]); + let element = ''; let type = $otherConnection.type->toString(); $otherConnection->match($extensions.serializerExtension('vX_X_X')->cast(@meta::protocols::pure::vX_X_X::extension::SerializerExtension_vX_X_X).moduleSerializerExtension('mongoDB')->cast(@meta::protocols::pure::vX_X_X::extension::store::mongodb::MongoDBModuleSerializerExtension).transfers_connection_transformDatabaseConnection->map(f | $f->eval($_type, $element, $type))->concatenate([ @@ -55,4 +55,4 @@ function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connectio function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connection::store::mongodb::transformServerURLs(urls: meta::external::store::mongodb::metamodel::runtime::MongoDBURL[1..*]):meta::protocols::pure::vX_X_X::metamodel::store::mongodb::connection::MongoDBURL[1..*] { $urls->map(url | ^meta::protocols::pure::vX_X_X::metamodel::store::mongodb::connection::MongoDBURL(baseUrl = $url.baseUrl, port = $url.port)); -} \ No newline at end of file +} diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/pureToDatabaseCommand/pureToDatabaseCommand.pure b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/pureToDatabaseCommand/pureToDatabaseCommand.pure index 9583e2fabc2..3f8e7beb5a2 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/pureToDatabaseCommand/pureToDatabaseCommand.pure +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/src/main/resources/core_nonrelational_mongodb/pureToDatabaseCommand/pureToDatabaseCommand.pure @@ -19,6 +19,7 @@ import meta::pure::metamodel::path::*; import meta::pure::router::metamodel::*; import meta::pure::router::store::metamodel::*; import meta::pure::extension::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::pure::functions::meta::*; @@ -92,7 +93,7 @@ function meta::external::store::mongodb::functions::pureToDatabaseCommand::build if ($nextValue->instanceOf(SimpleFunctionExpression), | if ($simpleFunctionExpression.func == toOne_T_MANY__T_1_, - | + | let functionExpression = $simpleFunctionExpression.parametersValues->at(0)->cast(@StoreMappingRoutedValueSpecification).value->cast(@SimpleFunctionExpression); buildFilterPathRecursively($functionExpression, $path);, | @@ -124,7 +125,7 @@ function meta::external::store::mongodb::functions::pureToDatabaseCommand::proce let firstParameterValue = $parameterValues->at(0)->cast(@StoreMappingRoutedValueSpecification).value; let path = if($firstParameterValue->instanceOf(VariableExpression), - | + | $functionExpression.parametersValues->at(0)->cast(@StoreMappingRoutedValueSpecification).value->cast(@SimpleFunctionExpression).func.name->toOne(), | buildFilterPathRecursively($functionExpression.parametersValues->at(0)->cast(@StoreMappingRoutedValueSpecification).value->cast(@SimpleFunctionExpression), '') @@ -156,7 +157,7 @@ function meta::external::store::mongodb::functions::pureToDatabaseCommand::proce let firstParameterValue = $parameterValues->at(0)->cast(@StoreMappingRoutedValueSpecification).value; let path = if($firstParameterValue->instanceOf(VariableExpression), - | + | if ($functionExpression.parametersValues->at(0)->cast(@StoreMappingRoutedValueSpecification).value->cast(@SimpleFunctionExpression).func.name != 'toOne_T_MANY__T_1_', | $functionExpression->cast(@SimpleFunctionExpression).parametersValues->at(0)->cast(@StoreMappingRoutedValueSpecification).value->cast(@SimpleFunctionExpression).func.name->toOne();, | $functionExpression->cast(@SimpleFunctionExpression).parametersValues->at(0)->cast(@StoreMappingRoutedValueSpecification).value->cast(@SimpleFunctionExpression).parametersValues->toOne()->cast(@StoreMappingRoutedValueSpecification).value->cast(@SimpleFunctionExpression).func.name->toOne(); @@ -337,4 +338,4 @@ function meta::external::store::mongodb::functions::pureToDatabaseCommand::getSu ^PureFunctionToLambdaComparisonOperatorPair(first=meta::pure::functions::boolean::lessThanEqual_String_1__String_1__Boolean_1_,second= { leftSide:ArgumentExpression[1], rightSide:ArgumentExpression[1]| ^LTEOperatorExpression(expressions=[$leftSide, $rightSide])}), ^PureFunctionToLambdaComparisonOperatorPair(first=meta::pure::functions::boolean::lessThanEqual_Date_1__Date_1__Boolean_1_,second= { leftSide:ArgumentExpression[1], rightSide:ArgumentExpression[1]| ^LTEOperatorExpression(expressions=[$leftSide, $rightSide])}) ]); -} \ No newline at end of file +} diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/src/main/resources/core_external_format_openapi/transformation/fromPure/tests/tests.pure b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/src/main/resources/core_external_format_openapi/transformation/fromPure/tests/tests.pure index febfad58185..c453362eddd 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/src/main/resources/core_external_format_openapi/transformation/fromPure/tests/tests.pure +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/src/main/resources/core_external_format_openapi/transformation/fromPure/tests/tests.pure @@ -24,6 +24,7 @@ import meta::pure::mapping::*; import meta::pure::mapping::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::csv::*; Class meta::external::function::description::openapi::transformation::fromPure::tests::Person diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/src/main/resources/core_persistence_cloud/external/persistence/aws/metamodel.pure b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/src/main/resources/core_persistence_cloud/external/persistence/aws/metamodel.pure index f86e0d6d079..62de4097cbc 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/src/main/resources/core_persistence_cloud/external/persistence/aws/metamodel.pure +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/src/main/resources/core_persistence_cloud/external/persistence/aws/metamodel.pure @@ -18,6 +18,7 @@ import meta::pure::persistence::metamodel::*; import meta::pure::persistence::metamodel::context::*; import meta::pure::persistence::metamodel::trigger::*; +import meta::core::runtime::*; import meta::pure::runtime::*; /********** diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/src/main/resources/core_persistence_cloud/external/persistence/aws/metamodel_diagram.pure b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/src/main/resources/core_persistence_cloud/external/persistence/aws/metamodel_diagram.pure index 6c41bb4c567..180d49a9823 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/src/main/resources/core_persistence_cloud/external/persistence/aws/metamodel_diagram.pure +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/src/main/resources/core_persistence_cloud/external/persistence/aws/metamodel_diagram.pure @@ -64,7 +64,7 @@ Diagram meta::pure::persistence::aws::Persistence_Diagram(width=0.0, height=0.0) lineWidth=1.0) TypeView cview_18( - type=meta::pure::runtime::Connection, + type=meta::core::runtime::Connection, position=(457.87482, 263.77329), width=104.35840, height=44.00000, diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/persistence/compiler/toPureGraph/HelperPersistenceContextBuilder.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/persistence/compiler/toPureGraph/HelperPersistenceContextBuilder.java index 3cef0b0c0d8..1e5a41bdb65 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/persistence/compiler/toPureGraph/HelperPersistenceContextBuilder.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/persistence/compiler/toPureGraph/HelperPersistenceContextBuilder.java @@ -69,7 +69,7 @@ public static Root_meta_pure_persistence_metamodel_service_ServiceParameter buil } else if (serviceParameter.value instanceof ConnectionValue) { - Root_meta_pure_runtime_Connection value = buildConnection(((ConnectionValue) serviceParameter.value).connection, context); + Root_meta_core_runtime_Connection value = buildConnection(((ConnectionValue) serviceParameter.value).connection, context); pureServiceParameter._value(Lists.fixedSize.of(value)); return pureServiceParameter; } @@ -77,14 +77,14 @@ else if (serviceParameter.value instanceof ConnectionValue) throw new EngineException(String.format("Unable to build service parameter of type '%s'.", serviceParameter.value.getClass())); } - public static Root_meta_pure_runtime_Connection buildConnection(Connection connection, CompileContext context) + public static Root_meta_core_runtime_Connection buildConnection(Connection connection, CompileContext context) { if (connection == null) { return null; } - Root_meta_pure_runtime_Connection pureConnection = connection.accept(new ConnectionFirstPassBuilder(context)); + Root_meta_core_runtime_Connection pureConnection = connection.accept(new ConnectionFirstPassBuilder(context)); connection.accept(new ConnectionSecondPassBuilder(context, pureConnection)); return pureConnection; } diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/src/test/java/org/finos/legend/engine/language/pure/dsl/persistence/compiler/test/TestPersistenceContextCompilationFromGrammar.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/src/test/java/org/finos/legend/engine/language/pure/dsl/persistence/compiler/test/TestPersistenceContextCompilationFromGrammar.java index c0a7a7c9223..cb60ab75be0 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/src/test/java/org/finos/legend/engine/language/pure/dsl/persistence/compiler/test/TestPersistenceContextCompilationFromGrammar.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/src/test/java/org/finos/legend/engine/language/pure/dsl/persistence/compiler/test/TestPersistenceContextCompilationFromGrammar.java @@ -427,8 +427,8 @@ public void persistenceContextSinkConnectionPointer() List values3 = serviceParameter3._value().toList(); assertEquals(1, values3.size()); Object o3 = values3.get(0); - assertTrue(o3 instanceof Root_meta_pure_alloy_connections_RelationalDatabaseConnection); - Root_meta_pure_alloy_connections_RelationalDatabaseConnection con1 = (Root_meta_pure_alloy_connections_RelationalDatabaseConnection) o3; + assertTrue(o3 instanceof Root_meta_external_store_relational_runtime_RelationalDatabaseConnection); + Root_meta_external_store_relational_runtime_RelationalDatabaseConnection con1 = (Root_meta_external_store_relational_runtime_RelationalDatabaseConnection) o3; assertEquals("H2", con1._type()._name()); Root_meta_pure_persistence_metamodel_service_ServiceParameter serviceParameter4 = serviceParameters.get(3); @@ -436,14 +436,14 @@ public void persistenceContextSinkConnectionPointer() List values4 = serviceParameter4._value().toList(); assertEquals(1, values4.size()); Object o4 = values4.get(0); - assertTrue(o4 instanceof Root_meta_pure_alloy_connections_RelationalDatabaseConnection); - Root_meta_pure_alloy_connections_RelationalDatabaseConnection con2 = (Root_meta_pure_alloy_connections_RelationalDatabaseConnection) o4; + assertTrue(o4 instanceof Root_meta_external_store_relational_runtime_RelationalDatabaseConnection); + Root_meta_external_store_relational_runtime_RelationalDatabaseConnection con2 = (Root_meta_external_store_relational_runtime_RelationalDatabaseConnection) o4; assertEquals("H2", con2._type()._name()); - Root_meta_pure_runtime_Connection connection = context._sinkConnection(); + Root_meta_core_runtime_Connection connection = context._sinkConnection(); assertNotNull(connection); - assertTrue(connection instanceof Root_meta_pure_alloy_connections_RelationalDatabaseConnection); - Root_meta_pure_alloy_connections_RelationalDatabaseConnection sinkConnection = (Root_meta_pure_alloy_connections_RelationalDatabaseConnection) connection; + assertTrue(connection instanceof Root_meta_external_store_relational_runtime_RelationalDatabaseConnection); + Root_meta_external_store_relational_runtime_RelationalDatabaseConnection sinkConnection = (Root_meta_external_store_relational_runtime_RelationalDatabaseConnection) connection; assertEquals("H2", sinkConnection._type()._name()); } @@ -600,10 +600,10 @@ public void persistenceContextSinkConnectionEmbedded() Root_meta_pure_persistence_metamodel_PersistenceContext context = (Root_meta_pure_persistence_metamodel_PersistenceContext) packageableElement; - Root_meta_pure_runtime_Connection connection = context._sinkConnection(); + Root_meta_core_runtime_Connection connection = context._sinkConnection(); assertNotNull(connection); - assertTrue(connection instanceof Root_meta_pure_alloy_connections_RelationalDatabaseConnection); - Root_meta_pure_alloy_connections_RelationalDatabaseConnection sinkConnection = (Root_meta_pure_alloy_connections_RelationalDatabaseConnection) connection; + assertTrue(connection instanceof Root_meta_external_store_relational_runtime_RelationalDatabaseConnection); + Root_meta_external_store_relational_runtime_RelationalDatabaseConnection sinkConnection = (Root_meta_external_store_relational_runtime_RelationalDatabaseConnection) connection; assertEquals("H2", sinkConnection._type()._name()); } } diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/src/main/resources/core_persistence/persistence/metamodel.pure b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/src/main/resources/core_persistence/persistence/metamodel.pure index 80f8c636762..46d31b3a47e 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/src/main/resources/core_persistence/persistence/metamodel.pure +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/src/main/resources/core_persistence/persistence/metamodel.pure @@ -37,6 +37,7 @@ import meta::pure::persistence::metamodel::target::*; import meta::pure::persistence::metamodel::trigger::*; import meta::pure::persistence::metamodel::persistenceTest::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::*; @@ -180,13 +181,13 @@ Class meta::pure::persistence::metamodel::notifier::Notifyee { } - + Class meta::pure::persistence::metamodel::notifier::EmailNotifyee extends Notifyee { emailAddress: String[1]; } - + Class meta::pure::persistence::metamodel::notifier::PagerDutyNotifyee extends Notifyee { @@ -608,4 +609,4 @@ Class meta::pure::persistence::metamodel::TestData Class meta::pure::persistence::metamodel::ConnectionTestData { data : meta::pure::data::EmbeddedData[1]; -} \ No newline at end of file +} diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/src/main/resources/core_persistence/test/example/validation_rules_test_model.pure b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/src/main/resources/core_persistence/test/example/validation_rules_test_model.pure index 44835014d8d..8fb8cbf57a5 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/src/main/resources/core_persistence/test/example/validation_rules_test_model.pure +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/src/main/resources/core_persistence/test/example/validation_rules_test_model.pure @@ -130,15 +130,17 @@ Mapping meta::pure::persistence::test::example::RelationalMapping ###Pure import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::pure::alloy::connections::alloy::authentication::*; import meta::pure::alloy::connections::alloy::specification::*; +import meta::core::runtime::*; import meta::pure::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; function meta::pure::persistence::test::example::RelationalConnection(): Connection[1] { ^RelationalDatabaseConnection( - element = meta::pure::persistence::test::example::RelationalDatabase, type = DatabaseType.H2, authenticationStrategy = ^TestDatabaseAuthenticationStrategy(), datasourceSpecification = ^LocalH2DatasourceSpecification() diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/src/main/resources/core_persistence/test/example/validation_rules_test_service_flat_graph_fetch.pure b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/src/main/resources/core_persistence/test/example/validation_rules_test_service_flat_graph_fetch.pure index 9075f0e38f8..78db454e535 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/src/main/resources/core_persistence/test/example/validation_rules_test_service_flat_graph_fetch.pure +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/src/main/resources/core_persistence/test/example/validation_rules_test_service_flat_graph_fetch.pure @@ -41,6 +41,7 @@ import meta::pure::graphFetch::execution::*; import meta::pure::mapping::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::persistence::metamodel::*; import meta::pure::persistence::metamodel::dataset::*; @@ -60,6 +61,7 @@ import meta::pure::persistence::metamodel::service::output::*; import meta::pure::persistence::metamodel::trigger::*; import meta::pure::persistence::test::example::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::test::assertion::*; @@ -68,10 +70,13 @@ function meta::pure::persistence::test::example::FlatM2mRuntime(): Runtime[1] { ^EngineRuntime( mappings = meta::pure::persistence::test::example::FlatM2mMapping, - connections = ^JsonModelConnection( + connectionStores = + ^ConnectionStore( element=^ModelStore(), - class = meta::pure::persistence::test::example::FlatInput, - url = 'executor:default')); + connection= + ^JsonModelConnection( + class = meta::pure::persistence::test::example::FlatInput, + url = 'executor:default'))); } function meta::pure::persistence::test::example::FlatM2mService(): Service[1] diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/src/main/resources/core_persistence/test/example/validation_rules_test_service_nested_graph_fetch.pure b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/src/main/resources/core_persistence/test/example/validation_rules_test_service_nested_graph_fetch.pure index cd50257e2af..db9f705f110 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/src/main/resources/core_persistence/test/example/validation_rules_test_service_nested_graph_fetch.pure +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/src/main/resources/core_persistence/test/example/validation_rules_test_service_nested_graph_fetch.pure @@ -48,6 +48,7 @@ import meta::pure::graphFetch::execution::*; import meta::pure::mapping::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::persistence::metamodel::*; import meta::pure::persistence::metamodel::dataset::*; @@ -67,6 +68,7 @@ import meta::pure::persistence::metamodel::service::output::*; import meta::pure::persistence::metamodel::trigger::*; import meta::pure::persistence::test::example::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::test::assertion::*; @@ -75,10 +77,13 @@ function meta::pure::persistence::test::example::NestedM2mRuntime(): Runtime[1] { ^EngineRuntime( mappings = meta::pure::persistence::test::example::NestedM2mMapping, - connections = ^JsonModelConnection( + connectionStores = + ^ConnectionStore( element=^ModelStore(), - class = meta::pure::persistence::test::example::WrapperInput, - url = 'executor:default')); + connection= + ^JsonModelConnection( + class = meta::pure::persistence::test::example::WrapperInput, + url = 'executor:default'))); } function meta::pure::persistence::test::example::NestedM2mService(): Service[1] diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/src/main/resources/core_persistence/test/example/validation_rules_test_service_tds.pure b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/src/main/resources/core_persistence/test/example/validation_rules_test_service_tds.pure index 5899279a412..a544eeec3a4 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/src/main/resources/core_persistence/test/example/validation_rules_test_service_tds.pure +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/src/main/resources/core_persistence/test/example/validation_rules_test_service_tds.pure @@ -38,6 +38,7 @@ import meta::pure::persistence::metamodel::service::output::*; import meta::pure::persistence::metamodel::trigger::*; import meta::pure::persistence::test::example::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::test::assertion::*; @@ -46,7 +47,9 @@ function meta::pure::persistence::test::example::RelationalRuntime(): Runtime[1] { ^EngineRuntime( mappings = meta::pure::persistence::test::example::RelationalMapping, - connections = meta::pure::persistence::test::example::RelationalConnection() + connectionStores = ^ConnectionStore( + element = meta::pure::persistence::test::example::RelationalDatabase, + connection=meta::pure::persistence::test::example::RelationalConnection()) ); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/src/main/java/org/finos/legend/engine/entitlement/services/RelationalDatabaseEntitlementServiceExtension.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/src/main/java/org/finos/legend/engine/entitlement/services/RelationalDatabaseEntitlementServiceExtension.java index 9b7facbdbe6..6c570dca32d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/src/main/java/org/finos/legend/engine/entitlement/services/RelationalDatabaseEntitlementServiceExtension.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/src/main/java/org/finos/legend/engine/entitlement/services/RelationalDatabaseEntitlementServiceExtension.java @@ -30,7 +30,7 @@ import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.DatabaseType; import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.raw.Lambda; import org.finos.legend.pure.generated.Root_meta_analytics_store_entitlements_TableWithType; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Runtime; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Runtime; import org.finos.legend.pure.generated.core_relational_store_entitlement_relational_relationalAnalyzer; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.Mapping; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.LambdaFunction; @@ -47,7 +47,7 @@ public RelationalDatabaseEntitlementServiceExtension() } @Override - public List generateDatasetSpecifications(Lambda query, String runtimePath, Root_meta_pure_runtime_Runtime runtime, String mappingPath, Mapping mapping, PureModelContext model, PureModel pureModel) + public List generateDatasetSpecifications(Lambda query, String runtimePath, Root_meta_core_runtime_Runtime runtime, String mappingPath, Mapping mapping, PureModelContext model, PureModel pureModel) { RichIterable tablesWithType = query == null ? @@ -60,7 +60,7 @@ public List generateDatasetSpecifications(Lambda query, St } @Override - public List generateDatasetEntitlementReports(List datasets, Lambda query, String runtimePath, Root_meta_pure_runtime_Runtime runtime, String mappingPath, Mapping mapping, PureModelContext model, PureModel pureModel, MutableList profiles) + public List generateDatasetEntitlementReports(List datasets, Lambda query, String runtimePath, Root_meta_core_runtime_Runtime runtime, String mappingPath, Mapping mapping, PureModelContext model, PureModel pureModel, MutableList profiles) { return datasets.stream().filter(specification -> specification instanceof RelationalDatabaseTableSpecification).map(specification -> specification.getType().equals(DatabaseType.H2.name()) ? new DatasetEntitlementAccessGrantedReport(specification) : new DatasetEntitlementUnsupportedReport(specification)).collect(Collectors.toList()); } @@ -79,4 +79,4 @@ public List>>> getExtraProtocolSubTypeInfo .build() )); } -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/src/test/java/org/finos/legend/engine/entitlement/TestRelationalStoreEntitlementAnalytics.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/src/test/java/org/finos/legend/engine/entitlement/TestRelationalStoreEntitlementAnalytics.java index 3dba8c94f59..3f1901b6e5e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/src/test/java/org/finos/legend/engine/entitlement/TestRelationalStoreEntitlementAnalytics.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/src/test/java/org/finos/legend/engine/entitlement/TestRelationalStoreEntitlementAnalytics.java @@ -26,7 +26,7 @@ import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; import org.finos.legend.engine.shared.core.deployment.DeploymentMode; import org.finos.legend.engine.shared.core.deployment.DeploymentStateAndVersions; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Runtime; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Runtime; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.Mapping; import org.finos.legend.pure.m3.coreinstance.meta.pure.store.Store; import org.finos.legend.pure.generated.core_relational_store_entitlement_utility_relationalTableAnalyzer; @@ -67,12 +67,12 @@ private void testStoreEntitlementAnalyticsRelationalStoreExtension(String modelF PureModelContextData pureModelContextData = PureGrammarParser.newInstance().parseModel(pureModelString, false); PureModel pureModel = Compiler.compile(pureModelContextData, DeploymentMode.TEST, null); Mapping mapping = pureModel.getMapping(mappingPath); - Root_meta_pure_runtime_Runtime runtime = pureModel.getRuntime(runtimePath); + Root_meta_core_runtime_Runtime runtime = pureModel.getRuntime(runtimePath); RelationalDatabaseEntitlementServiceExtension extension = new RelationalDatabaseEntitlementServiceExtension(); List datasets = extension.generateDatasetSpecifications(null, runtimePath, runtime, mappingPath, mapping, pureModelContextData, pureModel); - Assert.assertEquals(entitlementObjectMapper.writeValueAsString(datasets), expectedDatasetResult); + Assert.assertEquals(expectedDatasetResult, entitlementObjectMapper.writeValueAsString(datasets)); List reports = extension.generateDatasetEntitlementReports(datasets, null, runtimePath, runtime, mappingPath, mapping, pureModelContextData, pureModel, null); - Assert.assertEquals(entitlementObjectMapper.writeValueAsString(reports), expectedReportResult); + Assert.assertEquals(expectedReportResult, entitlementObjectMapper.writeValueAsString(reports)); } @Test @@ -111,8 +111,8 @@ public void testStoreEntitlementAnalyticsForComplexRuntime() throws Exception testStoreEntitlementAnalyticsRelationalStoreExtension("models/relationalModel.pure", "runtime::CompoundRuntime", "mapping::CovidDataMapping", - "[{\"name\":\"default.DEMOGRAPHICS\",\"type\":\"H2\",\"database\":\"CovidDataStore\",\"schema\":\"default\",\"table\":\"DEMOGRAPHICS\"},{\"name\":\"default.COVID_DATA\",\"type\":\"H2\",\"database\":\"CovidDataStore\",\"schema\":\"default\",\"table\":\"COVID_DATA\"},{\"name\":\"default.DEMOGRAPHICS\",\"type\":\"Snowflake\",\"database\":\"CovidDataStore\",\"schema\":\"default\",\"table\":\"DEMOGRAPHICS\"},{\"name\":\"default.COVID_DATA\",\"type\":\"Snowflake\",\"database\":\"CovidDataStore\",\"schema\":\"default\",\"table\":\"COVID_DATA\"}]", - "[{\"dataset\":{\"_type\":\"relationalDatabaseTable\",\"name\":\"default.DEMOGRAPHICS\",\"type\":\"H2\",\"database\":\"CovidDataStore\",\"schema\":\"default\",\"table\":\"DEMOGRAPHICS\"}},{\"dataset\":{\"_type\":\"relationalDatabaseTable\",\"name\":\"default.COVID_DATA\",\"type\":\"H2\",\"database\":\"CovidDataStore\",\"schema\":\"default\",\"table\":\"COVID_DATA\"}},{\"dataset\":{\"_type\":\"relationalDatabaseTable\",\"name\":\"default.DEMOGRAPHICS\",\"type\":\"Snowflake\",\"database\":\"CovidDataStore\",\"schema\":\"default\",\"table\":\"DEMOGRAPHICS\"}},{\"dataset\":{\"_type\":\"relationalDatabaseTable\",\"name\":\"default.COVID_DATA\",\"type\":\"Snowflake\",\"database\":\"CovidDataStore\",\"schema\":\"default\",\"table\":\"COVID_DATA\"}}]"); + "[{\"name\":\"default.DEMOGRAPHICS\",\"type\":\"Snowflake\",\"database\":\"CovidDataStore\",\"schema\":\"default\",\"table\":\"DEMOGRAPHICS\"},{\"name\":\"default.COVID_DATA\",\"type\":\"Snowflake\",\"database\":\"CovidDataStore\",\"schema\":\"default\",\"table\":\"COVID_DATA\"}]", + "[{\"dataset\":{\"_type\":\"relationalDatabaseTable\",\"name\":\"default.DEMOGRAPHICS\",\"type\":\"Snowflake\",\"database\":\"CovidDataStore\",\"schema\":\"default\",\"table\":\"DEMOGRAPHICS\"}},{\"dataset\":{\"_type\":\"relationalDatabaseTable\",\"name\":\"default.COVID_DATA\",\"type\":\"Snowflake\",\"database\":\"CovidDataStore\",\"schema\":\"default\",\"table\":\"COVID_DATA\"}}]"); } @Test diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/src/test/resources/models/relationalModel.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/src/test/resources/models/relationalModel.pure index d2a84ead95b..b19601ee5c2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/src/test/resources/models/relationalModel.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/src/test/resources/models/relationalModel.pure @@ -211,8 +211,7 @@ Runtime runtime::CompoundRuntime [ store::CovidDataStore: [ - connection_1: runtime::connection::H2Connection, connection_2: runtime::connection::SnowflakeConnection ] ]; -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/src/main/resources/core_relational_store_entitlement/relational/relationalAnalyzer.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/src/main/resources/core_relational_store_entitlement/relational/relationalAnalyzer.pure index 86c2a6ff116..a8fa76ba6c5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/src/main/resources/core_relational_store_entitlement/relational/relationalAnalyzer.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/src/main/resources/core_relational_store_entitlement/relational/relationalAnalyzer.pure @@ -12,9 +12,12 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::relational::metamodel::relation::*; import meta::relational::metamodel::*; import meta::analytics::store::entitlements::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; @@ -23,7 +26,7 @@ function meta::analytics::store::entitlements::getGeneralRelationalTablesFromMap let relationalDatabaseConnections = getRelationalDatabaseConnection($runtime); let tablesFromMapping = getTablesFromMapping($mapping); let tablesWithTypeFromRuntime = $relationalDatabaseConnections->map(c| let tables = getTablesFromDatabase($c.element->cast(@Database)); - $tables->map(tb|^TableWithType(table = $tb, type = $c.type.name));); + $tables->map(tb|^TableWithType(table = $tb, type = $c.connection->cast(@RelationalDatabaseConnection).type.name));); let tablesWithType = $tablesWithTypeFromRuntime->filter(tb|$tb.table->in($tablesFromMapping)); $tablesWithType->map(ltb| ^$ltb(table=runMappersOnTables($ltb.table, $runtime)->toOne())); } @@ -33,6 +36,6 @@ function meta::analytics::store::entitlements::getGeneralRelationalTablesFromQue let relationalDatabaseConnections = getRelationalDatabaseConnection($runtime); let tablesFromQuery = getTablesFromQuery($query, $mapping, $runtime, meta::relational::extension::relationalExtensions(), []); let tablesWithTypeFromRuntime = $relationalDatabaseConnections->map(c| let tables = getTablesFromDatabase($c.element->cast(@Database)); - $tables->map(tb|^TableWithType(table = runMappersOnTables($tb, $runtime)->toOne(), type = $c.type.name));); + $tables->map(tb|^TableWithType(table = runMappersOnTables($tb, $runtime)->toOne(), type = $c.connection->cast(@RelationalDatabaseConnection).type.name));); $tablesWithTypeFromRuntime->filter(tb|$tb.table->in($tablesFromQuery)); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/src/main/resources/core_relational_store_entitlement/utility/relationalTableAnalyzer.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/src/main/resources/core_relational_store_entitlement/utility/relationalTableAnalyzer.pure index 12aad92ff22..c612d1cd074 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/src/main/resources/core_relational_store_entitlement/utility/relationalTableAnalyzer.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/src/main/resources/core_relational_store_entitlement/utility/relationalTableAnalyzer.pure @@ -13,8 +13,10 @@ // limitations under the License. import meta::relational::metamodel::relation::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::relational::metamodel::operation::*; import meta::analytics::store::entitlements::*; import meta::pure::router::extension::*; @@ -22,6 +24,7 @@ import meta::relational::mapping::*; import meta::pure::router::routing::*; import meta::relational::metamodel::join::*; import meta::relational::metamodel::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; @@ -51,14 +54,14 @@ function meta::analytics::store::entitlements::getAllDatabases(database : Databa if($database->in($visited), | [], | $database->concatenate($database.includes->map(db|$db->cast(@Database)->meta::analytics::store::entitlements::getAllDatabases($visited->concatenate($database))))); } -function meta::analytics::store::entitlements::getRelationalDatabaseConnection(runtime: Runtime[1]): RelationalDatabaseConnection[*] +function meta::analytics::store::entitlements::getRelationalDatabaseConnection(runtime: Runtime[1]): ConnectionStore[*] { - $runtime.connections->filter(c|$c->instanceOf(RelationalDatabaseConnection) && $c->cast(@RelationalDatabaseConnection).postProcessors->filter(p| !($p->instanceOf(meta::pure::alloy::connections::MapperPostProcessor)))->isEmpty())->cast(@RelationalDatabaseConnection); + $runtime.connectionStores->filter(c|$c.connection->instanceOf(RelationalDatabaseConnection) && $c.connection->cast(@RelationalDatabaseConnection).postProcessors->filter(p| !($p->instanceOf(meta::pure::alloy::connections::MapperPostProcessor)))->isEmpty()); } function meta::analytics::store::entitlements::runMappersOnTables(tables:Table[*], runtime: Runtime[1]):Table[*] { - let mappers = $runtime.connections->filter(c|$c->instanceOf(DatabaseConnection))->cast(@DatabaseConnection)->map(dc|$dc.queryPostProcessorsWithParameter).parameters; + let mappers = $runtime.connectionStores.connection->filter(c|$c->instanceOf(DatabaseConnection))->cast(@DatabaseConnection)->map(dc|$dc.queryPostProcessorsWithParameter).parameters; let tableMappers = $mappers->filter(p | $p->instanceOf(meta::relational::postProcessor::TableNameMapper))->cast(@meta::relational::postProcessor::TableNameMapper); let schemaMappers = $mappers->filter(p | $p->instanceOf(meta::relational::postProcessor::SchemaNameMapper))->cast(@meta::relational::postProcessor::SchemaNameMapper); let pureAlloyTableMappers = $mappers->filter(p | $p->instanceOf(meta::pure::alloy::connections::TableNameMapper))->cast(@meta::pure::alloy::connections::TableNameMapper); @@ -151,4 +154,4 @@ function <> meta::analytics::store::entitlements::getTables(r:Re ->concatenate($j.childrenData->map(c | $c->cast(@JoinTreeNode)->getTables())), r:RelationalTreeNode[1] | $r.alias->getTables()->concatenate($r.childrenData->map(c | $c->cast(@JoinTreeNode)->getTables())) ])->removeDuplicates(); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena.definition.json b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena.definition.json index 608b107464f..4199d545c10 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena.definition.json +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena.definition.json @@ -1,6 +1,6 @@ { "name": "core_relational_athena", - "pattern": "(meta::relational::functions::sqlQueryToString::athena|meta::relational::tests::sqlQueryToString::athena|meta::pure::alloy::connections|meta::protocols::pure)(::.*)?", + "pattern": "(meta::relational::functions::sqlQueryToString::athena|meta::relational::tests::sqlQueryToString::athena|meta::pure::alloy::connections|meta::external::store::relational::runtime|meta::protocols::pure)(::.*)?", "dependencies": [ "platform", "platform_functions", @@ -9,4 +9,4 @@ "core", "core_relational" ] -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/sqlQueryToString/athenaExtension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/sqlQueryToString/athenaExtension.pure index 4f71377a7a8..771a9001413 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/sqlQueryToString/athenaExtension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/sqlQueryToString/athenaExtension.pure @@ -18,6 +18,7 @@ import meta::relational::functions::sqlQueryToString::*; import meta::relational::metamodel::operation::*; import meta::relational::metamodel::relation::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::extension::*; import meta::relational::extension::*; @@ -102,7 +103,7 @@ function <> meta::relational::functions::sqlQueryToString::athen function <> meta::relational::functions::sqlQueryToString::athena::loadValuesToDbTableForAthena(loadTableSQL:LoadTableSQL[1] , dbConfig: DbConfig[1]) : String[*] { - + 'insert into ' + if($loadTableSQL.table.schema.name=='default', |'' ,|$loadTableSQL.table.schema.name + '.') + $loadTableSQL.table.name + ' (' + $loadTableSQL.columnsToLoad.name->map(colName | $colName->processColumnName($dbConfig))->joinStrings(',') +') values ' diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/sqlQueryToString/athenaTestSuiteInvoker.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/sqlQueryToString/athenaTestSuiteInvoker.pure index cd8d37afa94..ad199422127 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/sqlQueryToString/athenaTestSuiteInvoker.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/sqlQueryToString/athenaTestSuiteInvoker.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::test::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::dbTestRunner::*; @@ -23,7 +24,7 @@ function <> meta::relational::tests::sqlQueryToString::athe // If a feature described in extension APIs / test suite is not supported, // then throw an exception with message that starts with '[unsupported-api]' // Tests which raise such exception will be reported as ignored by the runner - + meta::relational::tests::dbSpecificTests->collectParameterizedTests('Athena', ^DbTestConfig(dbType=DatabaseType.Athena, connection=$connection), meta::relational::tests::sqlQueryToString::athena::testParamCustomizations_FunctionDefinition_1__DbTestConfig_1__DbTestConfig_1_, diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery.definition.json b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery.definition.json index a0d5f3d1981..c1f607ba686 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery.definition.json +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery.definition.json @@ -1,6 +1,6 @@ { "name": "core_relational_bigquery", - "pattern": "(meta::relational::functions::sqlQueryToString::bigQuery|meta::relational::tests::sqlQueryToString::bigQuery|meta::relational::bigQuery::tests|meta::pure::alloy::connections|meta::protocols::pure)(::.*)?", + "pattern": "(meta::relational::functions::sqlQueryToString::bigQuery|meta::relational::tests::sqlQueryToString::bigQuery|meta::relational::bigQuery::tests|meta::pure::alloy::connections|meta::external::store::relational::runtime|meta::protocols::pure)(::.*)?", "dependencies": [ "platform", "platform_functions", @@ -10,4 +10,4 @@ "core", "core_relational" ] -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/sqlQueryToString/bigQueryExtension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/sqlQueryToString/bigQueryExtension.pure index bb1741ca405..ca719387db3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/sqlQueryToString/bigQueryExtension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/sqlQueryToString/bigQueryExtension.pure @@ -4,6 +4,7 @@ import meta::relational::functions::sqlQueryToString::*; import meta::relational::metamodel::operation::*; import meta::relational::metamodel::relation::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::extension::*; import meta::relational::extension::*; @@ -77,7 +78,7 @@ function <> meta::relational::functions::sqlQueryToString::bigQu dynaFnToSql('stdDevSample', $allStates, ^ToSql(format='stddev_samp(%s)')), dynaFnToSql('substring', $allStates, ^ToSql(format='substring%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), dynaFnToSql('today', $allStates, ^ToSql(format='CURRENT_DATE()')), - dynaFnToSql('toFloat', $allStates, ^ToSql(format='cast(%s as float64)')), + dynaFnToSql('toFloat', $allStates, ^ToSql(format='cast(%s as float64)')), dynaFnToSql('toString', $allStates, ^ToSql(format='cast(%s as string)')), dynaFnToSql('weekOfYear', $allStates, ^ToSql(format='extract(week from %s)')) ]; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/sqlQueryToString/bigQueryTestSuiteInvoker.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/sqlQueryToString/bigQueryTestSuiteInvoker.pure index c8c192d494e..6a9c9ffde30 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/sqlQueryToString/bigQueryTestSuiteInvoker.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/sqlQueryToString/bigQueryTestSuiteInvoker.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::test::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::dbTestRunner::*; @@ -23,7 +24,7 @@ function <> meta::relational::tests::sqlQueryToString::bigQ // If a feature described in extension APIs / test suite is not supported, // then throw an exception with message that starts with '[unsupported-api]' // Tests which raise such exception will be reported as ignored by the runner - + meta::relational::tests::dbSpecificTests->collectParameterizedTests('BigQuery', ^DbTestConfig(dbType=DatabaseType.BigQuery, connection=$connection), meta::relational::tests::sqlQueryToString::bigQuery::testParamCustomizations_FunctionDefinition_1__DbTestConfig_1__DbTestConfig_1_, diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/sqlQueryToString/customBigQueryTests.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/sqlQueryToString/customBigQueryTests.pure index 03a35411048..83672398d81 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/sqlQueryToString/customBigQueryTests.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/sqlQueryToString/customBigQueryTests.pure @@ -34,8 +34,8 @@ Database meta::relational::bigQuery::tests::db::bqDb Schema dataset1 ( Table "thing table" (ID INT PRIMARY KEY, NAME VARCHAR(200)) - ) - + ) + Join Person_Person("person table".key = {target}.key) ) @@ -48,7 +48,7 @@ Mapping meta::relational::bigQuery::tests::mapping::simpleRelationalMappingPerso ( firstName : "person table".firstName, lastName: "person table".lastName, - age : @Person_Person|"person table".key + age : @Person_Person|"person table".key ) } @@ -62,20 +62,24 @@ Mapping meta::relational::bigQuery::tests::mapping::simpleRelationalMappingPerso id: [meta::relational::bigQuery::tests::db::bqDb]dataset1."thing table".ID, name: [meta::relational::bigQuery::tests::db::bqDb]dataset1."thing table".NAME } - + ) ###Pure +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::execute::*; import meta::relational::mapping::*; import meta::relational::functions::asserts::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::functions::sqlstring::*; import meta::relational::tests::mapping::sqlFunction::model::domain::*; import meta::relational::tests::mapping::sqlFunction::model::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::profiles::*; @@ -86,15 +90,15 @@ function <> meta::relational::bigQuery::tests::setUp():Boole function meta::relational::bigQuery::tests::testRuntimeForBQ():Runtime[1] { - meta::relational::tests::testRuntime(meta::relational::bigQuery::tests::db::bqDb); + meta::external::store::relational::tests::testRuntime(meta::relational::bigQuery::tests::db::bqDb); } function <> meta::relational::bigQuery::tests::tableAndColumnNamesAreQuoted():Boolean[1] { let result = toSQLString( - |meta::relational::bigQuery::tests::domain::Person.all()->project([s | $s.age], ['KEY']), + |meta::relational::bigQuery::tests::domain::Person.all()->project([s | $s.age], ['KEY']), meta::relational::bigQuery::tests::mapping::simpleRelationalMappingPersonForBQ, - meta::relational::runtime::DatabaseType.BigQuery, + meta::relational::runtime::DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select `person_table_d#2_d_m1`.key as `KEY` from `person table` as `root` left outer join `person table` as `person_table_d#2_d_m1` on (`root`.key = `person_table_d#2_d_m1`.key)', $result); } @@ -102,9 +106,9 @@ function <> meta::relational::bigQuery::tests::tableAndColumnNamesAre function <> meta::relational::bigQuery::tests::tableWithSchema():Boolean[1] { let result = toSQLString( - |meta::relational::bigQuery::tests::domain::Thing.all()->project([s | $s.id], ['ID']), + |meta::relational::bigQuery::tests::domain::Thing.all()->project([s | $s.id], ['ID']), meta::relational::bigQuery::tests::mapping::simpleRelationalMappingPersonForBQ, - meta::relational::runtime::DatabaseType.BigQuery, + meta::relational::runtime::DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select `root`.ID as `ID` from dataset1.`thing table` as `root`', $result); } @@ -114,13 +118,13 @@ function <> meta::relational::bigQuery::tests::windowFunction():Boole { let func = {|meta::relational::tests::model::simple::Person.all() ->project([ - col(p |$p.lastName,'lastName') + col(p |$p.lastName,'lastName') ,col(window(p |$p.firstName ),sortAsc(p |$p.lastName), func(p |$p.age->toOne(), y| $y->average()),'ageAverageWindow') ])}; let result = toSQLString( - $func, - meta::relational::tests::simpleRelationalMappingInc, - DatabaseType.BigQuery, + $func, + meta::relational::tests::simpleRelationalMappingInc, + DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select `root`.LASTNAME as `lastName`, avg(1.0 * `root`.AGE) OVER (Partition By `root`.FIRSTNAME Order By `root`.LASTNAME ASC) as `ageAverageWindow` from personTable as `root`', $result); } @@ -130,8 +134,8 @@ function <> meta::relational::bigQuery::tests::testParseDateTime():Bo let dt = %2015-01-01T00:00:00.000; let result = toSQLString( |Trade.all()->project(t | $t.settlementDateTime, 'settlementDateTime')->filter(r | $r.getDateTime('settlementDateTime') < $dt), - meta::relational::tests::simpleRelationalMapping, - DatabaseType.BigQuery, + meta::relational::tests::simpleRelationalMapping, + DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select `root`.settlementDateTime as `settlementDateTime` from tradeTable as `root` where `root`.settlementDateTime < PARSE_DATETIME(\'%Y-%m-%d %H:%M:%E6S\', \'2015-01-01 00:00:00.000\')', $result); } @@ -141,7 +145,7 @@ function <> meta::relational::bigQuery::tests::testParseDate():Boolea let dt = %2015-01-01T00:00:00.000; let result = toSQLString( |Trade.all()->project(t | $t.date, 'date')->filter(r | $r.getDate('date') < $dt), - meta::relational::tests::simpleRelationalMapping, + meta::relational::tests::simpleRelationalMapping, DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select `root`.tradeDate as `date` from tradeTable as `root` where `root`.tradeDate < PARSE_DATETIME(\'%Y-%m-%d %H:%M:%E6S\', \'2015-01-01 00:00:00.000\')', $result); @@ -151,10 +155,10 @@ function <> meta::relational::bigQuery::tests::testParseDateOnQueryVa { let result = meta::pure::executionPlan::executionPlan( date:StrictDate[1]|Trade.all()->project(t | $t.date, 'date')->filter(r | $r.getDate('date') < $date), - meta::relational::tests::simpleRelationalMapping, - ^Runtime(connections = ^DatabaseConnection(type=DatabaseType.BigQuery, element = Any)), + meta::relational::tests::simpleRelationalMapping, + ^Runtime(connectionStores= ^ConnectionStore(element = Any,connection=^DatabaseConnection(type=DatabaseType.BigQuery))), meta::relational::extension::relationalExtensions()); - let expected = + let expected = 'Sequence\n'+ '(\n'+ ' type = TDS[(date, StrictDate, DATE, \"\")]\n'+ @@ -179,10 +183,10 @@ function <> meta::relational::bigQuery::tests::testParseDateTimeOnQue { let result = meta::pure::executionPlan::executionPlan( dateTime:DateTime[1]|Trade.all()->project(t | $t.settlementDateTime, 'settlementDateTime')->filter(r | $r.getDate('settlementDateTime') < $dateTime), - meta::relational::tests::simpleRelationalMapping, - ^Runtime(connections = ^DatabaseConnection(type=DatabaseType.BigQuery, element = Any)), + meta::relational::tests::simpleRelationalMapping, + ^Runtime(connectionStores= ^ConnectionStore(element = Any,connection=^DatabaseConnection(type=DatabaseType.BigQuery))), meta::relational::extension::relationalExtensions()); - let expected = + let expected = 'Sequence\n'+ '(\n'+ ' type = TDS[(settlementDateTime, DateTime, TIMESTAMP, "")]\n'+ @@ -207,8 +211,8 @@ function <> meta::relational::bigQuery::tests::testGroupByAlias():Boo { let result = toSQLString( |Person.all()->groupBy([p|$p.firstName], [agg(p|$p.age, x|$x->sum())], ['name', 'age']), - meta::relational::tests::simpleRelationalMapping, - DatabaseType.BigQuery, + meta::relational::tests::simpleRelationalMapping, + DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select `root`.FIRSTNAME as `name`, sum(`root`.AGE) as `age` from personTable as `root` group by `name`', $result); } @@ -217,8 +221,8 @@ function <> meta::relational::bigQuery::tests::testSimpleJoinStrings( { let result = toSQLString( |Person.all()->groupBy([p|$p.firstName], agg( x|$x.lastName, y|$y->joinStrings('*')),['firstName', 'lastNames']), - meta::relational::tests::simpleRelationalMapping, - DatabaseType.BigQuery, + meta::relational::tests::simpleRelationalMapping, + DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertSameSQL('select `root`.FIRSTNAME as `firstName`, string_agg(`root`.LASTNAME, \'*\') as `lastNames` from personTable as `root` group by `firstName`', $result); } @@ -227,8 +231,8 @@ function <> meta::relational::bigQuery::tests::testConcat():Boolean[1 { let result = toSQLString( |Person.all()->project([p|$p.name, p|$p.addresses.name], ['name','address']), - meta::relational::tests::simpleRelationalMapping, - DatabaseType.BigQuery, + meta::relational::tests::simpleRelationalMapping, + DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertSameSQL('select concat(`root`.FIRSTNAME, \' \', `root`.LASTNAME) as `name`, `union_d#5_d_m2`.`addressTableNAME` as `address` from personTable as `root` left outer join (select `addressTable_d#6`.ID as ID, null as ADDRESSID, `addressTable_d#6`.NAME as `addressTableNAME` from addressTable as `addressTable_d#6` UNION ALL select `firmTable_d#8`.ID as ID, `firmTable_d#8`.ADDRESSID as ADDRESSID, `addressTable_d#6_f_d`.NAME as `addressTableNAME` from firmTable as `firmTable_d#8` left outer join addressTable as `addressTable_d#6_f_d` on (`addressTable_d#6_f_d`.ID = `firmTable_d#8`.ADDRESSID)) as `union_d#5_d_m2` on (`union_d#5_d_m2`.ID = `root`.FIRMID or `union_d#5_d_m2`.ID = `root`.ADDRESSID)', $result); @@ -239,7 +243,7 @@ function <> meta::relational::bigQuery::tests::atan2():Boolean[1] let result = toSQLString( |SqlFunctionDemo.all()->project([s | $s.floatATan2Result], ['atan2']), meta::relational::tests::mapping::sqlFunction::model::mapping::testMapping, - DatabaseType.BigQuery, + DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertSameSQL('select atan2(`root`.float1,`root`.int1) as `atan2` from dataTable as `root`', $result); } @@ -248,8 +252,8 @@ function <> meta::relational::bigQuery::tests::concat():Boolean[1] { let result = toSQLString( |Person.all()->project([p|$p.name] ,['name']), - meta::relational::tests::simpleRelationalMapping, - DatabaseType.BigQuery, + meta::relational::tests::simpleRelationalMapping, + DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertSameSQL('select concat(`root`.FIRSTNAME, \' \', `root`.LASTNAME) as `name` from personTable as `root`', $result); } @@ -259,7 +263,7 @@ function <> meta::relational::bigQuery::tests::hour():Boolean[1] let result = toSQLString( |SqlFunctionDemo.all()->project([s | $s.hour], ['hour']), meta::relational::tests::mapping::sqlFunction::model::mapping::testMapping, - meta::relational::runtime::DatabaseType.BigQuery, + meta::relational::runtime::DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select extract(hour from `root`.dateTime) as `hour` from dataTable as `root`', $result); } @@ -269,7 +273,7 @@ function <> meta::relational::bigQuery::tests::weekofyear():Boolean[1 let result = toSQLString( |SqlFunctionDemo.all()->project([s | $s.week], ['weekofyear']), meta::relational::tests::mapping::sqlFunction::model::mapping::testMapping, - meta::relational::runtime::DatabaseType.BigQuery, + meta::relational::runtime::DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select extract(week from `root`.dateTime) as `weekofyear` from dataTable as `root`', $result); } @@ -279,7 +283,7 @@ function <> meta::relational::bigQuery::tests::cast():Boolean[1] let result = toSQLString( |SqlFunctionDemo.all()->project([s | $s.string3Integer], ['string3Integer']), meta::relational::tests::mapping::sqlFunction::model::mapping::testMapping, - meta::relational::runtime::DatabaseType.BigQuery, + meta::relational::runtime::DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select cast(`root`.string3 as int64) as `string3Integer` from dataTable as `root`', $result); } @@ -289,7 +293,7 @@ function <> meta::relational::bigQuery::tests::toString():Boolean[1] let result = toSQLString( |SqlFunctionDemo.all()->project([s | $s.int1String], ['int1String']), meta::relational::tests::mapping::sqlFunction::model::mapping::testMapping, - meta::relational::runtime::DatabaseType.BigQuery, + meta::relational::runtime::DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select cast(`root`.int1 as string) as `int1String` from dataTable as `root`', $result); } @@ -298,8 +302,8 @@ function <> meta::relational::bigQuery::tests::today():Boolean[1] { let result = toSQLString( |Trade.all()->filter(d | $d.date == today())->project(x | $x.date, 'date'), - meta::relational::tests::simpleRelationalMapping, - meta::relational::runtime::DatabaseType.BigQuery, + meta::relational::tests::simpleRelationalMapping, + meta::relational::runtime::DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select `root`.tradeDate as `date` from tradeTable as `root` where `root`.tradeDate = CURRENT_DATE()', $result); } @@ -309,7 +313,7 @@ function <> meta::relational::bigQuery::tests::stddev_samp():Boolean[ let result = toSQLString( |SqlFunctionDemo.all()->project([s | $s.float1StdDevSample], 'stdDevSample'), meta::relational::tests::mapping::sqlFunction::model::mapping::testMapping, - meta::relational::runtime::DatabaseType.BigQuery, + meta::relational::runtime::DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select stddev_samp(`root`.int1) as `stdDevSample` from dataTable as `root`', $result); } @@ -319,7 +323,7 @@ function <> meta::relational::bigQuery::tests::stddev_pop():Boolean[1 let result = toSQLString( |SqlFunctionDemo.all()->project([s | $s.float1StdDevPopulation], 'float1StdDevPopulation'), meta::relational::tests::mapping::sqlFunction::model::mapping::testMapping, - meta::relational::runtime::DatabaseType.BigQuery, + meta::relational::runtime::DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select stddev_pop(`root`.int1) as `float1StdDevPopulation` from dataTable as `root`', $result); } @@ -328,8 +332,8 @@ function <> meta::relational::bigQuery::tests::substring():Boolean[1] { let result = toSQLString( |Person.all()->filter(p|$p.firstName->substring(1, 5) == 'John'), - meta::relational::tests::simpleRelationalMapping, - DatabaseType.BigQuery, + meta::relational::tests::simpleRelationalMapping, + DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select `root`.ID as `pk_0`, `root`.FIRSTNAME as `firstName`, `root`.AGE as `age`, `root`.LASTNAME as `lastName` from personTable as `root` where substring(`root`.FIRSTNAME, 1, 5) = \'John\'', $result); } @@ -338,8 +342,8 @@ function <> meta::relational::bigQuery::tests::second():Boolean[1] { let result = toSQLString( |Trade.all()->project([ t | $t.settlementDateTime->cast(@Date)->toOne()->second()], ['second']), - meta::relational::tests::simpleRelationalMapping, - DatabaseType.BigQuery, + meta::relational::tests::simpleRelationalMapping, + DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select extract( second from `root`.settlementDateTime) as `second` from tradeTable as `root`', $result); } @@ -349,7 +353,7 @@ function <> meta::relational::bigQuery::tests::rtrim():Boolean[1] let result = toSQLString( |SqlFunctionDemo.all()->project([s | $s.rtrimResult], ['rtrim']), meta::relational::tests::mapping::sqlFunction::model::mapping::testMapping, - DatabaseType.BigQuery, + DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select rtrim(`root`.string2) as `rtrim` from dataTable as `root`', $result); } @@ -359,7 +363,7 @@ function <> meta::relational::bigQuery::tests::round():Boolean[1] let result = toSQLString( |SqlFunctionDemo.all()->project([s | $s.float1Round], ['round']), meta::relational::tests::mapping::sqlFunction::model::mapping::testMapping, - DatabaseType.BigQuery, + DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select round(`root`.float1, 0) as `round` from dataTable as `root`', $result); } @@ -369,7 +373,7 @@ function <> meta::relational::bigQuery::tests::right():Boolean[1] let result = toSQLString( |SqlFunctionDemo.all()->project([s | $s.string1Right], ['right']), meta::relational::tests::mapping::sqlFunction::model::mapping::testMapping, - DatabaseType.BigQuery, + DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select right(`root`.string1,2) as `right` from dataTable as `root`', $result); } @@ -378,8 +382,8 @@ function <> meta::relational::bigQuery::tests::rem():Boolean[1] { let result = toSQLString( |Trade.all()->project([t| rem($t.quantity, $t.id)], ['rem']), - meta::relational::tests::simpleRelationalMapping, - DatabaseType.BigQuery, + meta::relational::tests::simpleRelationalMapping, + DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select mod(`root`.quantity,`root`.ID) as `rem` from tradeTable as `root`', $result); } @@ -389,7 +393,7 @@ function <> meta::relational::bigQuery::tests::position():Boolean[1] let result = toSQLString( |meta::relational::tests::mapping::propertyfunc::model::domain::Person.all()->project(p|$p.firstName, 'firstName'), meta::relational::tests::mapping::propertyfunc::model::mapping::PropertyfuncMapping, - DatabaseType.BigQuery, + DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select substring(`root`.FULLNAME, 0, strpos(\',\', `root`.FULLNAME)-1) as `firstName` from personTable as `root`', $result); } @@ -398,8 +402,8 @@ function <> meta::relational::bigQuery::tests::parseInteger():Boolean { let result = toSQLString( |SqlFunctionDemo.all()->project([s | $s.string2Integer], ['parseInteger']), - meta::relational::tests::mapping::sqlFunction::model::mapping::testMapping, - DatabaseType.BigQuery, + meta::relational::tests::mapping::sqlFunction::model::mapping::testMapping, + DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select cast(`root`.string2Integer as int64) as `parseInteger` from dataTable as `root`', $result); } @@ -408,8 +412,8 @@ function <> meta::relational::bigQuery::tests::parseFloat():Boolean[1 { let result = toSQLString( |SqlFunctionDemo.all()->project([s | $s.string2Float], ['string2Float']), - meta::relational::tests::mapping::sqlFunction::model::mapping::testMapping, - DatabaseType.BigQuery, + meta::relational::tests::mapping::sqlFunction::model::mapping::testMapping, + DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select cast(`root`.string2float as float64) as `string2Float` from dataTable as `root`', $result); } @@ -418,8 +422,8 @@ function <> meta::relational::bigQuery::tests::parseDecimal():Boolean { let result = toSQLString( |SqlFunctionDemo.all()->project([s | $s.string2Decimal], ['string2Decimal']), - meta::relational::tests::mapping::sqlFunction::model::mapping::testMapping, - DatabaseType.BigQuery, + meta::relational::tests::mapping::sqlFunction::model::mapping::testMapping, + DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select cast(`root`.string2Decimal as decimal) as `string2Decimal` from dataTable as `root`', $result); } @@ -428,8 +432,8 @@ function <> meta::relational::bigQuery::tests::now():Boolean[1] { let result = toSQLString( |Trade.all()->filter(d | $d.date == now())->project(x | $x.date, 'date'), - meta::relational::tests::simpleRelationalMapping, - DatabaseType.BigQuery, + meta::relational::tests::simpleRelationalMapping, + DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select `root`.tradeDate as `date` from tradeTable as `root` where `root`.tradeDate = current_timestamp()', $result); } @@ -439,8 +443,8 @@ function <> meta::relational::bigQuery::tests::monthNumber():Boolean[ { let result = toSQLString( |Trade.all()->project([t| monthNumber($t.settlementDateTime)], ['settlementMonthNumber']), - meta::relational::tests::simpleRelationalMapping, - DatabaseType.BigQuery, + meta::relational::tests::simpleRelationalMapping, + DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select extract(month from `root`.settlementDateTime) as `settlementMonthNumber` from tradeTable as `root`', $result); } @@ -449,18 +453,18 @@ function <> meta::relational::bigQuery::tests::mod():Boolean[1] { let result = toSQLString( |SqlFunctionDemo.all()->project([s | $s.floatModResult ], ['mod']), - meta::relational::tests::mapping::sqlFunction::model::mapping::testMapping, - DatabaseType.BigQuery, + meta::relational::tests::mapping::sqlFunction::model::mapping::testMapping, + DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select mod(`root`.int1,2) as `mod` from dataTable as `root`', $result); } -function <> meta::relational::bigQuery::tests::minute():Boolean[1] +function <> meta::relational::bigQuery::tests::minute():Boolean[1] { let result = toSQLString( |Trade.all()->project([t | $t.settlementDateTime->cast(@Date)->toOne()->minute()],['settlementDateTimeMinute']), - meta::relational::tests::simpleRelationalMapping, - DatabaseType.BigQuery, + meta::relational::tests::simpleRelationalMapping, + DatabaseType.BigQuery, meta::relational::extension::relationalExtensions()); assertEquals('select extract(minute from `root`.settlementDateTime) as `settlementDateTimeMinute` from tradeTable as `root`', $result); } @@ -491,7 +495,7 @@ function <> meta::relational::bigQuery::tests::testDynaConcat():Boole assertSameSQL('select concat(\'id\', `root`.ID) as `id` from orderTable as `root`', $result); } -function <> meta::relational::bigQuery::tests::testFilterEqualsWithOptionalParameter_BigQuery():Boolean[1] +function <> meta::relational::bigQuery::tests::testFilterEqualsWithOptionalParameter_BigQuery():Boolean[1] { let expectedPlan ='Sequence\n'+ '(\n'+ diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/sqlQueryToString/customDatabricksTests.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/sqlQueryToString/customDatabricksTests.pure index 988fd6dda55..5022b97087b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/sqlQueryToString/customDatabricksTests.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/sqlQueryToString/customDatabricksTests.pure @@ -59,16 +59,20 @@ Mapping meta::relational::databricks::tests::mapping::simpleRelationalMappingPer ###Pure +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::execute::*; import meta::relational::mapping::*; import meta::relational::functions::asserts::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::functions::sqlstring::*; import meta::relational::tests::mapping::sqlFunction::model::domain::*; import meta::relational::tests::mapping::sqlFunction::model::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::profiles::*; @@ -79,7 +83,7 @@ function <> meta::relational::databricks::tests::setUp():Boo function meta::relational::databricks::tests::testRuntimeForDB():Runtime[1] { - meta::relational::tests::testRuntime(meta::relational::databricks::tests::db::delta); + meta::external::store::relational::tests::testRuntime(meta::relational::databricks::tests::db::delta); } function <> meta::relational::databricks::tests::tableAndColumnNamesAreQuoted():Boolean[1] @@ -113,8 +117,8 @@ function <> meta::relational::databricks::tests::getDateTime():Boolea let dt = %2015-01-01T00:00:00.000; let result = toSQLString( |Trade.all()->project(t | $t.settlementDateTime, 'settlementDateTime')->filter(r | $r.getDateTime('settlementDateTime') < $dt), - meta::relational::tests::simpleRelationalMapping, - DatabaseType.Databricks, + meta::relational::tests::simpleRelationalMapping, + DatabaseType.Databricks, meta::relational::extension::relationalExtensions()); assertEquals('select `root`.settlementDateTime as `settlementDateTime` from tradeTable as `root` where `root`.settlementDateTime < to_timestamp(\'2015-01-01 00:00:00.000\')', $result); } @@ -124,7 +128,7 @@ function <> meta::relational::databricks::tests::getDate():Boolean[1] let dt = %2015-01-01T00:00:00.000; let result = toSQLString( |Trade.all()->project(t | $t.date, 'date')->filter(r | $r.getDate('date') < $dt), - meta::relational::tests::simpleRelationalMapping, + meta::relational::tests::simpleRelationalMapping, DatabaseType.Databricks, meta::relational::extension::relationalExtensions()); assertEquals('select `root`.tradeDate as `date` from tradeTable as `root` where `root`.tradeDate < to_timestamp(\'2015-01-01 00:00:00.000\')', $result); @@ -485,4 +489,4 @@ function <> meta::relational::databricks::tests::minute():Boolean[1] DatabaseType.Databricks, meta::relational::extension::relationalExtensions()); assertEquals('select minute(`root`.settlementDateTime) as `settlementDateTimeMinute` from tradeTable as `root`', $result); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/sqlQueryToString/databricksExtension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/sqlQueryToString/databricksExtension.pure index e4fbb4854ec..b9b243ea9b7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/sqlQueryToString/databricksExtension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/sqlQueryToString/databricksExtension.pure @@ -5,6 +5,7 @@ import meta::relational::functions::pureToSqlQuery::metamodel::*; import meta::relational::metamodel::operation::*; import meta::relational::metamodel::relation::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::extension::*; import meta::relational::extension::*; @@ -94,7 +95,7 @@ function <> meta::relational::functions::sqlQueryToString::datab dynaFnToSql('firstHourOfDay', $allStates, ^ToSql(format='date_trunc(\'DAY\', %s)')), dynaFnToSql('firstMillisecondOfSecond', $allStates, ^ToSql(format='date_trunc(\'SECOND\', %s)')), dynaFnToSql('firstMinuteOfHour', $allStates, ^ToSql(format='date_trunc(\'HOUR\', %s)')), - dynaFnToSql('firstSecondOfMinute', $allStates, ^ToSql(format='date_trunc(\'MINUTE\', %s)')), + dynaFnToSql('firstSecondOfMinute', $allStates, ^ToSql(format='date_trunc(\'MINUTE\', %s)')), dynaFnToSql('hour', $allStates, ^ToSql(format='hour(%s)')), dynaFnToSql('indexOf', $allStates, ^ToSql(format='locate(%s)', transform={p:String[2] | $p->at(1) + ', ' + $p->at(0)})), dynaFnToSql('isNumeric', $allStates, ^ToSql(format='(lower(%s) = upper(%s))')), @@ -130,7 +131,7 @@ function <> meta::relational::functions::sqlQueryToString::datab dynaFnToSql('stdDevSample', $allStates, ^ToSql(format='stddev_samp(%s)')), dynaFnToSql('today', $allStates, ^ToSql(format='current_date')), dynaFnToSql('toDecimal', $allStates, ^ToSql(format='cast(%s as decimal)')), - dynaFnToSql('toFloat', $allStates, ^ToSql(format='cast(%s as double)')), + dynaFnToSql('toFloat', $allStates, ^ToSql(format='cast(%s as double)')), dynaFnToSql('toString', $allStates, ^ToSql(format='cast(%s as string)')), dynaFnToSql('weekOfYear', $allStates, ^ToSql(format='weekofyear(%s)')), dynaFnToSql('year', $allStates, ^ToSql(format='year(%s)')) @@ -186,8 +187,8 @@ function <> meta::relational::functions::sqlQueryToString::datab function <> meta::relational::functions::sqlQueryToString::databricks::processLimitDatabricks( s:SelectSQLQuery[1], - dbConfig: DbConfig[1], - format:Format[1], + dbConfig: DbConfig[1], + format:Format[1], extensions:Extension[*], takeProcessor:meta::pure::metamodel::function::Function<{SelectSQLQuery[1], Format[1], DbConfig[1], Extension[*] -> String[1]}>[1], offsetProcessor:meta::pure::metamodel::function::Function<{SelectSQLQuery[1], Format[1], DbConfig[1], Extension[*] -> String[1]}>[1], @@ -301,4 +302,4 @@ function <> meta::relational::functions::sqlQueryToString::datab function <> meta::relational::functions::sqlQueryToString::databricks::dateTimeFormatsDatabricks():String[*] { ['yyyy-MM-dd HH:mm:ss', 'yyyy-MM-dd HH:mm:ss.SSS']; -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/sqlQueryToString/databricksTestSuiteInvoker.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/sqlQueryToString/databricksTestSuiteInvoker.pure index e2da4643c6c..35948588bc9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/sqlQueryToString/databricksTestSuiteInvoker.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/sqlQueryToString/databricksTestSuiteInvoker.pure @@ -13,17 +13,18 @@ // limitations under the License. import meta::pure::test::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::dbTestRunner::*; function <> meta::relational::tests::sqlQueryToString::databricks::testSuiteInvoker(): PureTestCollection[1] { let connection = getTestConnection(DatabaseType.Databricks, meta::relational::extension::relationalExtensions()); - + // If a feature described in extension APIs / test suite is not supported, // then throw an exception with message that starts with '[unsupported-api]' // Tests which raise such exception will be reported as ignored by the runner - + meta::relational::tests::dbSpecificTests->collectParameterizedTests('Databricks', ^DbTestConfig(dbType=DatabaseType.Databricks, connection=$connection), meta::relational::tests::sqlQueryToString::databricks::testParamCustomizations_FunctionDefinition_1__DbTestConfig_1__DbTestConfig_1_, diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/sqlQueryToString/tests/testDatabricksToSQLString.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/sqlQueryToString/tests/testDatabricksToSQLString.pure index 31de9cb252a..7e5e9d4f381 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/sqlQueryToString/tests/testDatabricksToSQLString.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/sqlQueryToString/tests/testDatabricksToSQLString.pure @@ -17,10 +17,12 @@ import meta::pure::mapping::*; import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::pure::profiles::*; import meta::relational::functions::sqlstring::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; function <> meta::relational::tests::functions::sqlstring::databricks::testToSQLStringDatabricksSchemaNameShouldContainCatalogName():Boolean[1] { @@ -32,4 +34,4 @@ function <> meta::relational::tests::functions::sqlstring::databricks { let s = toSQLString(|Person.all(), meta::relational::tests::simpleRelationalMappingPersonForDatabricks, meta::relational::runtime::DatabaseType.Databricks, meta::relational::extension::relationalExtensions()); assertEquals('select `root`.ID as `pk_0`, `root`.FIRSTNAME as `firstName`, `root`.LASTNAME as `lastName`, `root`.AGE as `age` from schema.personTable as `root`', $s); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__.definition.json b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__.definition.json index d199b747ec2..2c16a1c0f72 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__.definition.json +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__.definition.json @@ -1,5 +1,5 @@ { "name" : "core_relational_${dbtype}", - "pattern" : "(meta::relational::functions::sqlQueryToString::${dbType}|meta::relational::tests::sqlQueryToString::${dbType}|meta::pure::alloy::connections|meta::protocols::pure)(::.*)?", + "pattern" : "(meta::relational::functions::sqlQueryToString::${dbType}|meta::relational::tests::sqlQueryToString::${dbType}|meta::pure::alloy::connections|meta::external::store::relational::runtime|meta::protocols::pure)(::.*)?", "dependencies" : ["platform", "platform_functions", "platform_store_relational", "core", "core_relational"] } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__/relational/sqlQueryToString/__dbType__Extension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__/relational/sqlQueryToString/__dbType__Extension.pure index c72f7ff0e0d..3f480c98d28 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__/relational/sqlQueryToString/__dbType__Extension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__/relational/sqlQueryToString/__dbType__Extension.pure @@ -4,6 +4,7 @@ import meta::relational::functions::sqlQueryToString::*; import meta::relational::metamodel::operation::*; import meta::relational::metamodel::relation::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::extension::*; import meta::relational::extension::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__/relational/sqlQueryToString/__dbType__TestSuiteInvoker.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__/relational/sqlQueryToString/__dbType__TestSuiteInvoker.pure index 70c245453c2..9f78c458ea1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__/relational/sqlQueryToString/__dbType__TestSuiteInvoker.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__/relational/sqlQueryToString/__dbType__TestSuiteInvoker.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::test::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::dbTestRunner::*; @@ -23,7 +24,7 @@ function <> meta::relational::tests::sqlQueryToString::${db // If a feature described in extension APIs / test suite is not supported, // then throw an exception with message that starts with '[unsupported-api]' // Tests which raise such exception will be reported as ignored by the runner - + meta::relational::tests::dbSpecificTests->collectParameterizedTests('${DbType}', ^DbTestConfig(dbType=DatabaseType.${DbType}, connection=$connection), meta::relational::tests::sqlQueryToString::${dbType}::testParamCustomizations_FunctionDefinition_1__DbTestConfig_1__DbTestConfig_1_, diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/src/main/resources/core_relational_hive/relational/executionPlan/tests/executionPlanTestHive.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/src/main/resources/core_relational_hive/relational/executionPlan/tests/executionPlanTestHive.pure index 2fa025c10c0..f661111efd2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/src/main/resources/core_relational_hive/relational/executionPlan/tests/executionPlanTestHive.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/src/main/resources/core_relational_hive/relational/executionPlan/tests/executionPlanTestHive.pure @@ -15,6 +15,7 @@ import meta::pure::alloy::connections::alloy::authentication::*; import meta::pure::alloy::connections::alloy::specification::*; import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::pure::mapping::modelToModel::test::createInstances::*; import meta::relational::postProcessor::*; import meta::pure::extension::*; @@ -29,6 +30,7 @@ import meta::relational::tests::tds::tabletds::*; import meta::pure::mapping::*; import meta::relational::mapping::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::tests::mapping::inheritance::relational::*; import meta::relational::metamodel::join::*; import meta::relational::tests::tds::tdsJoin::*; @@ -39,8 +41,10 @@ import meta::relational::tests::groupBy::datePeriods::*; import meta::relational::tests::groupBy::datePeriods::domain::*; import meta::pure::executionPlan::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::pure::mapping::modelToModel::test::shared::src::*; import meta::pure::graphFetch::executionPlan::*; import meta::pure::graphFetch::routing::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/src/main/resources/core_relational_hive/relational/sqlQueryToString/hiveExtension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/src/main/resources/core_relational_hive/relational/sqlQueryToString/hiveExtension.pure index 014751e7714..d793d600ea6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/src/main/resources/core_relational_hive/relational/sqlQueryToString/hiveExtension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/src/main/resources/core_relational_hive/relational/sqlQueryToString/hiveExtension.pure @@ -4,6 +4,7 @@ import meta::relational::functions::sqlQueryToString::*; import meta::relational::metamodel::operation::*; import meta::relational::metamodel::relation::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::extension::*; import meta::relational::extension::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/src/main/resources/core_relational_hive/relational/sqlQueryToString/tests/testHiveSqlFunctionsInMapping.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/src/main/resources/core_relational_hive/relational/sqlQueryToString/tests/testHiveSqlFunctionsInMapping.pure index a7b9246a837..b1a6ef1923b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/src/main/resources/core_relational_hive/relational/sqlQueryToString/tests/testHiveSqlFunctionsInMapping.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/src/main/resources/core_relational_hive/relational/sqlQueryToString/tests/testHiveSqlFunctionsInMapping.pure @@ -29,9 +29,12 @@ import meta::relational::functions::toDDL::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::authentication::*; function <> meta::relational::tests::mapping::sqlFunction::hive::testTriminNotSybaseASE():Boolean[1]{ diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/executionPlan/tests/executionPlanTest.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/executionPlan/tests/executionPlanTest.pure index aa0494c2da0..5791ef61db6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/executionPlan/tests/executionPlanTest.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/executionPlan/tests/executionPlanTest.pure @@ -12,15 +12,17 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::executionPlan::*; import meta::pure::executionPlan::tests::*; import meta::pure::executionPlan::toString::*; import meta::pure::mapping::modelToModel::test::shared::*; import meta::pure::mapping::modelToModel::test::shared::src::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; -function <> meta::relational::memsql::tests::executionPlan::testFilterEqualsWithOptionalParameter_MemSQL():Boolean[1] +function <> meta::relational::memsql::tests::executionPlan::testFilterEqualsWithOptionalParameter_MemSQL():Boolean[1] { let expectedPlan ='Sequence\n'+ '(\n'+ @@ -46,7 +48,7 @@ function <> meta::relational::memsql::tests::executionPlan::testExecu { let res = executionPlan( {name:String[*] |_Person.all()->filter(x | $x.fullName->in($name))->project([x | $x.fullName], ['fullName']);}, - meta::pure::mapping::modelToModel::test::shared::relationalMapping, ^Runtime(connections=^DatabaseConnection(element = relationalDB, type=DatabaseType.MemSQL)), meta::relational::extension::relationalExtensions() + meta::pure::mapping::modelToModel::test::shared::relationalMapping, ^Runtime(connectionStores=^ConnectionStore(element = relationalDB, connection=^DatabaseConnection(type=DatabaseType.MemSQL))), meta::relational::extension::relationalExtensions() ); let expected = 'RelationalBlockExecutionNode(type=TDS[(fullName,String,VARCHAR(1000),"")](FunctionParametersValidationNode(functionParameters=[name:String[*]])Allocation(type=Stringname=inFilterClause_namevalue=(FreeMarkerConditionalExecutionNode(type=Stringcondition=${(instanceOf(name,"Stream")||instanceOf(name,"StreamingResult")||((collectionSize(name![])?number)>1048576))?c}trueBlock=(Sequence(type=String(CreateAndPopulateTempTable(type=VoidinputVarNames=[name]tempTableName=tempTableForIn_nametempTableColumns=[(ColumnForStoringInCollection,VARCHAR(200))]connection=DatabaseConnection(type="MemSQL"))Constant(type=Stringvalues=[select`temptableforin_name_0`.ColumnForStoringInCollectionasColumnForStoringInCollectionfromtempTableForIn_nameas`temptableforin_name_0`]))))falseBlock=(Constant(type=Stringvalues=[${renderCollection(name![]",""\'""\'"{"\'":"\'\'"}"null")}])))))Relational(type=TDS[(fullName,String,VARCHAR(1000),"")]resultColumns=[("fullName",VARCHAR(1000))]sql=select`root`.fullnameas`fullName`fromPersonas`root`where`root`.fullnamein(${inFilterClause_name})connection=DatabaseConnection(type="MemSQL"))))'; assertEquals($expected, $res->planToStringWithoutFormatting(meta::relational::extension::relationalExtensions())); @@ -56,7 +58,7 @@ function <> meta::relational::memsql::tests::executionPlan::testExecu { let res = executionPlan( {lengths:Integer[*] |_Person.all()->filter(x | $x.fullName->length()->in($lengths))->project([x | $x.fullName], ['fullName']);}, - meta::pure::mapping::modelToModel::test::shared::relationalMapping, ^Runtime(connections=^DatabaseConnection(element = relationalDB, type=DatabaseType.MemSQL)), meta::relational::extension::relationalExtensions() + meta::pure::mapping::modelToModel::test::shared::relationalMapping, ^Runtime(connectionStores=^ConnectionStore(element = relationalDB, connection=^DatabaseConnection(type=DatabaseType.MemSQL))), meta::relational::extension::relationalExtensions() ); let expected = 'RelationalBlockExecutionNode(type=TDS[(fullName,String,VARCHAR(1000),"")](FunctionParametersValidationNode(functionParameters=[lengths:Integer[*]])Allocation(type=Stringname=inFilterClause_lengthsvalue=(FreeMarkerConditionalExecutionNode(type=Stringcondition=${(instanceOf(lengths,"Stream")||instanceOf(lengths,"StreamingResult")||((collectionSize(lengths![])?number)>1048576))?c}trueBlock=(Sequence(type=String(CreateAndPopulateTempTable(type=VoidinputVarNames=[lengths]tempTableName=tempTableForIn_lengthstempTableColumns=[(ColumnForStoringInCollection,INT)]connection=DatabaseConnection(type="MemSQL"))Constant(type=Stringvalues=[select`temptableforin_lengths_0`.ColumnForStoringInCollectionasColumnForStoringInCollectionfromtempTableForIn_lengthsas`temptableforin_lengths_0`]))))falseBlock=(Constant(type=Stringvalues=[${renderCollection(lengths![]","""""{}"null")}])))))Relational(type=TDS[(fullName,String,VARCHAR(1000),"")]resultColumns=[("fullName",VARCHAR(1000))]sql=select`root`.fullnameas`fullName`fromPersonas`root`wherechar_length(`root`.fullname)in(${inFilterClause_lengths})connection=DatabaseConnection(type="MemSQL"))))'; assertEquals($expected, $res->planToStringWithoutFormatting(meta::relational::extension::relationalExtensions())); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/sqlQueryToString/memSQLExtension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/sqlQueryToString/memSQLExtension.pure index 7b21a8dcbcc..973cef0e638 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/sqlQueryToString/memSQLExtension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/sqlQueryToString/memSQLExtension.pure @@ -5,6 +5,7 @@ import meta::relational::metamodel::operation::*; import meta::relational::metamodel::relation::*; import meta::relational::metamodel::join::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::extension::*; import meta::relational::extension::*; @@ -154,10 +155,10 @@ function <> meta::relational::functions::sqlQueryToString::memsq function <> meta::relational::functions::sqlQueryToString::memsql::transformToTimestampMemSQL(params:String[2]):String[1] { - //Standardizing the format as per Postgres specification, will include mappings for the formats in future. + //Standardizing the format as per Postgres specification, will include mappings for the formats in future. assert($params->at(1)->replace('\'', '') == 'YYYY-MM-DD HH24:MI:SS', | $params->at(1) +' not supported '); - let timestampFormat = $params->at(1); - 'to_timestamp('+$params->at(0)+','+$timestampFormat+')'; + let timestampFormat = $params->at(1); + 'to_timestamp('+$params->at(0)+','+$timestampFormat+')'; } function <> meta::relational::functions::sqlQueryToString::memsql::generateDateDiffExpressionForMemSQL(params:String[*]):String[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/sqlQueryToString/memSQLTestSuiteInvoker.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/sqlQueryToString/memSQLTestSuiteInvoker.pure index 5f7c22599b2..fe803be3772 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/sqlQueryToString/memSQLTestSuiteInvoker.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/sqlQueryToString/memSQLTestSuiteInvoker.pure @@ -13,17 +13,18 @@ // limitations under the License. import meta::pure::test::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::dbTestRunner::*; function <> meta::relational::tests::sqlQueryToString::memsql::testSuiteInvoker(): PureTestCollection[1] { let connection = getTestConnection(DatabaseType.MemSQL, meta::relational::extension::relationalExtensions()); - + // If a feature described in extension APIs / test suite is not supported, // then throw an exception with message that starts with '[unsupported-api]' // Tests which raise such exception will be reported as ignored by the runner - + meta::relational::tests::dbSpecificTests->collectParameterizedTests('MemSQL', ^DbTestConfig(dbType=DatabaseType.MemSQL, connection=$connection), meta::relational::tests::sqlQueryToString::memsql::testParamCustomizations_FunctionDefinition_1__DbTestConfig_1__DbTestConfig_1_, diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/tds/tests/testSort.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/tds/tests/testSort.pure index e0427853409..3cc6e63f658 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/tds/tests/testSort.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/tds/tests/testSort.pure @@ -13,7 +13,9 @@ // limitations under the License. import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::functions::sqlstring::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/tds/tests/testTDSWindowColumn.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/tds/tests/testTDSWindowColumn.pure index 7c3d660dfa9..269be3696ba 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/tds/tests/testTDSWindowColumn.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/tds/tests/testTDSWindowColumn.pure @@ -13,6 +13,8 @@ // limitations under the License. import meta::relational::tests::*; +import meta::external::store::relational::tests::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::functions::math::olap::*; import meta::relational::tests::model::simple::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/tests/mapping/sqlFunction/testSqlFunctionsInMapping.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/tests/mapping/sqlFunction/testSqlFunctionsInMapping.pure index 3a2753ddba1..ec9eb4ca7ea 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/tests/mapping/sqlFunction/testSqlFunctionsInMapping.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/tests/mapping/sqlFunction/testSqlFunctionsInMapping.pure @@ -19,7 +19,7 @@ import meta::relational::tests::mapping::sqlFunction::model::mapping::*; function <> meta::relational::memsql::tests::mapping::sqlFunction::parseDate::testToSQLStringWithParseDateInQuery_MemSQL():Boolean[1] { - let memSQLSql = toSQLString(|SqlFunctionDemo.all()->project([s | $s.string2TimestampStr->parseDate()], ['timestamp']), testMapping, meta::relational::runtime::DatabaseType.MemSQL, meta::relational::extension::relationalExtensions()); + let memSQLSql = toSQLString(|SqlFunctionDemo.all()->project([s | $s.string2TimestampStr->parseDate()], ['timestamp']), testMapping, meta::relational::runtime::DatabaseType.MemSQL, meta::relational::extension::relationalExtensions()); assertEquals('select to_timestamp(`root`.string2date,\'YYYY-MM-DD HH24:MI:SS\') as `timestamp` from dataTable as `root`',$memSQLSql->sqlRemoveFormatting()); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/tests/query/testWithFunction.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/tests/query/testWithFunction.pure index 41b61118434..5151ccd5de0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/tests/query/testWithFunction.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/tests/query/testWithFunction.pure @@ -13,7 +13,9 @@ // limitations under the License. import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::functions::sqlstring::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/transform/fromPure/tests/testToSQLString.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/transform/fromPure/tests/testToSQLString.pure index db1d9972af7..e363e4d129a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/transform/fromPure/tests/testToSQLString.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/transform/fromPure/tests/testToSQLString.pure @@ -13,18 +13,20 @@ // limitations under the License. import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::functions::sqlstring::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::functions::asserts::*; import meta::relational::functions::sqlstring::*; function <> meta::relational::memsql::tests::functions::sqlstring::testToSQLStringWithAdjust_MemSQL():Boolean[1] { - let s1 = toSQLString(|Trade.all()->filter(t|$t.settlementDateTime > today()->adjust(10000000, DurationUnit.MICROSECONDS))->project([t| $t.id, t| $t.settlementDateTime] ,['id', 'settlementDateTime']), - meta::relational::tests::simpleRelationalMapping, + let s1 = toSQLString(|Trade.all()->filter(t|$t.settlementDateTime > today()->adjust(10000000, DurationUnit.MICROSECONDS))->project([t| $t.id, t| $t.settlementDateTime] ,['id', 'settlementDateTime']), + meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.MemSQL, meta::relational::extension::relationalExtensions()); - + assertEquals('select `root`.ID as `id`, `root`.settlementDateTime as `settlementDateTime` from tradeTable as `root` where (`root`.settlementDateTime is not null and `root`.settlementDateTime > adddate(curdate(), INTERVAL 10000000 MICROSECOND))', $s1); } @@ -34,7 +36,7 @@ function <> meta::relational::memsql::tests::functions::sqlstring::te agg(x|$x.employees.firstName,y|$y->joinStrings('*')), ['legalName', 'employeesFirstName'] )}; - + let memSqlSql = toSQLString($fn, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.MemSQL, meta::relational::extension::relationalExtensions()); assertEquals('select `root`.LEGALNAME as `legalName`, group_concat(`personTable_d#4_d_m1`.FIRSTNAME separator \'*\') as `employeesFirstName` from firmTable as `root` left outer join personTable as `personTable_d#4_d_m1` on (`root`.ID = `personTable_d#4_d_m1`.FIRMID) group by `legalName`', $memSqlSql); } @@ -68,7 +70,7 @@ function <> meta::relational::memsql::tests::functions::sqlstring::te let s1 = toSQLString( |meta::relational::tests::mapping::sqlFunction::model::domain::SqlFunctionDemo.all()->project(p|$p.float1StdDevPopulation, 'stdDevPopulation'), meta::relational::tests::mapping::sqlFunction::model::mapping::testMapping, DatabaseType.MemSQL, meta::relational::extension::relationalExtensions()); - + assertEquals('select stddev_pop(`root`.int1) as `stdDevPopulation` from dataTable as `root`', $s1); } @@ -77,15 +79,15 @@ function <> meta::relational::memsql::tests::functions::sqlstring::te let expected = [ pair(DatabaseType.MemSQL, 'select subdate(`root`.tradeDate, INTERVAL dayofmonth(`root`.tradeDate) - 1 DAY) as `date` from tradeTable as `root`') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all() ->project(col(t|$t.date->firstDayOfMonth(), 'date')), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); @@ -97,17 +99,17 @@ function <> meta::relational::memsql::tests::functions::sqlstring::te let expected = [ pair(DatabaseType.MemSQL, 'select subdate(`root`.tradeDate, INTERVAL dayofyear(`root`.tradeDate) - 1 DAY) as `date` from tradeTable as `root`') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all() ->project(col(t|$t.date->firstDayOfYear(), 'date')), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); - + assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); )->distinct() == [true]; } @@ -117,17 +119,17 @@ function <> meta::relational::memsql::tests::functions::sqlstring::te let expected = [ pair(DatabaseType.MemSQL, 'select subdate(curdate(), INTERVAL dayofyear(current_date()) - 1 DAY) as `date` from tradeTable as `root`') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all() ->project(col(t|firstDayOfThisYear(), 'date')), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); - + assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); )->distinct() == [true]; } @@ -137,17 +139,17 @@ function <> meta::relational::memsql::tests::functions::sqlstring::te let expected = [ pair(DatabaseType.MemSQL, 'select adddate(subdate(curdate(), INTERVAL dayofyear(current_date()) - 1 DAY), INTERVAL (quarter(curdate()) -1) QUARTER) as `date` from tradeTable as `root`') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all() ->project(col(t|firstDayOfThisQuarter(), 'date')), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); - + assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); )->distinct() == [true]; } @@ -161,14 +163,14 @@ function <> meta::relational::memsql::tests::functions::sqlstring::te { let query = {|Trade.all()->filter(t | $t.id == 2)->map(t | $t.quantity->divide(1000000))}; let expectedMemSQL = 'select ((1.0 * `root`.quantity) / 1000000) from tradeTable as `root` left outer join (select `root`.trade_id as trade_id, max(`root`.eventDate) as maxTradeEventDate from tradeEventTable as `root` group by `root`.trade_id) as `tradeEventViewMaxTradeEventDate_d#4_d#4_m5` on (`root`.ID = `tradeEventViewMaxTradeEventDate_d#4_d#4_m5`.trade_id) where `root`.ID = 2'; - + let resultMemSQL = meta::relational::functions::sqlstring::toSQLString($query, simpleRelationalMapping, DatabaseType.MemSQL, meta::relational::extension::relationalExtensions()); assertSameSQL($expectedMemSQL, $resultMemSQL); } function <> meta::relational::memsql::tests::functions::sqlstring::testSubstring_MemSQL() : Boolean[1] { - let runtime = ^meta::pure::runtime::Runtime(connections = ^TestDatabaseConnection(element = meta::relational::tests::db,type = DatabaseType.MemSQL)); + let runtime = ^meta::core::runtime::Runtime(connectionStores = ^meta::core::runtime::ConnectionStore(element = meta::relational::tests::db,connection=^TestDatabaseConnection(type = DatabaseType.MemSQL))); let result = toSQLStringPretty({|Firm.all()->project([ c | $c.legalName, @@ -185,7 +187,7 @@ function <> meta::relational::memsql::tests::functions::sqlstring::te function <> meta::relational::memsql::tests::functions::sqlstring::testSubstringWithNonZeroIndex_MemSQL() : Boolean[1] { - let runtime = ^meta::pure::runtime::Runtime(connections = ^TestDatabaseConnection(element = meta::relational::tests::db,type = DatabaseType.MemSQL)); + let runtime = ^meta::core::runtime::Runtime(connectionStores = ^meta::core::runtime::ConnectionStore(element = meta::relational::tests::db,connection=^TestDatabaseConnection(type = DatabaseType.MemSQL))); let result = toSQLStringPretty({|Firm.all()->project([ c | $c.legalName, diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/sqlQueryToString/postgresExtension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/sqlQueryToString/postgresExtension.pure index b68dd102043..c66d916ebdb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/sqlQueryToString/postgresExtension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/sqlQueryToString/postgresExtension.pure @@ -4,6 +4,7 @@ import meta::relational::functions::sqlQueryToString::*; import meta::relational::metamodel::operation::*; import meta::relational::metamodel::relation::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::extension::*; import meta::relational::extension::*; @@ -74,7 +75,7 @@ function <> meta::relational::functions::sqlQueryToString::postg dynaFnToSql('firstHourOfDay', $allStates, ^ToSql(format='date_trunc(\'day\', %s)')), dynaFnToSql('firstMillisecondOfSecond', $allStates, ^ToSql(format='date_trunc(\'second\', %s)')), dynaFnToSql('firstMinuteOfHour', $allStates, ^ToSql(format='date_trunc(\'hour\', %s)')), - dynaFnToSql('firstSecondOfMinute', $allStates, ^ToSql(format='date_trunc(\'minute\', %s)')), + dynaFnToSql('firstSecondOfMinute', $allStates, ^ToSql(format='date_trunc(\'minute\', %s)')), dynaFnToSql('hour', $allStates, ^ToSql(format='date_part(\'hour\', %s)')), dynaFnToSql('indexOf', $allStates, ^ToSql(format='strpos(%s, %s)')), dynaFnToSql('joinStrings', $allStates, ^ToSql(format='string_agg(%s, %s)')), @@ -83,7 +84,7 @@ function <> meta::relational::functions::sqlQueryToString::postg dynaFnToSql('mod', $allStates, ^ToSql(format='mod(%s,%s)')), dynaFnToSql('monthNumber', $allStates, ^ToSql(format='date_part(\'month\', %s)')), dynaFnToSql('now', $allStates, ^ToSql(format='now()')), - dynaFnToSql('parseDecimal', $allStates, ^ToSql(format='cast(%s as decimal)')), + dynaFnToSql('parseDecimal', $allStates, ^ToSql(format='cast(%s as decimal)')), dynaFnToSql('parseFloat', $allStates, ^ToSql(format='cast(%s as float)')), dynaFnToSql('parseInteger', $allStates, ^ToSql(format='cast(%s as integer)')), dynaFnToSql('position', $allStates, ^ToSql(format='position(%s in %s)')), diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/sqlQueryToString/postgresTestSuiteInvoker.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/sqlQueryToString/postgresTestSuiteInvoker.pure index 98405983ab5..0f0ed3c1296 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/sqlQueryToString/postgresTestSuiteInvoker.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/sqlQueryToString/postgresTestSuiteInvoker.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::test::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::dbTestRunner::*; @@ -23,7 +24,7 @@ function <> meta::relational::tests::sqlQueryToString::post // If a feature described in extension APIs / test suite is not supported, // then throw an exception with message that starts with '[unsupported-api]' // Tests which raise such exception will be reported as ignored by the runner - + meta::relational::tests::dbSpecificTests->collectParameterizedTests('Postgres', ^DbTestConfig(dbType=DatabaseType.Postgres, connection=$connection), meta::relational::tests::sqlQueryToString::postgres::testParamCustomizations_FunctionDefinition_1__DbTestConfig_1__DbTestConfig_1_, diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/tests/executionPlanTestPostgres.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/tests/executionPlanTestPostgres.pure index bb222f73cfc..64a6955cb38 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/tests/executionPlanTestPostgres.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/tests/executionPlanTestPostgres.pure @@ -15,6 +15,7 @@ import meta::pure::alloy::connections::alloy::authentication::*; import meta::pure::alloy::connections::alloy::specification::*; import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::pure::mapping::modelToModel::test::createInstances::*; import meta::relational::postProcessor::*; import meta::pure::extension::*; @@ -29,6 +30,7 @@ import meta::relational::tests::tds::tabletds::*; import meta::pure::mapping::*; import meta::relational::mapping::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::tests::mapping::inheritance::relational::*; import meta::relational::metamodel::join::*; import meta::relational::tests::tds::tdsJoin::*; @@ -39,8 +41,10 @@ import meta::relational::tests::groupBy::datePeriods::*; import meta::relational::tests::groupBy::datePeriods::domain::*; import meta::pure::executionPlan::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::pure::mapping::modelToModel::test::shared::src::*; import meta::pure::graphFetch::executionPlan::*; import meta::pure::graphFetch::routing::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/tests/testPostgresPaginated.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/tests/testPostgresPaginated.pure index 830ff40f8c3..d7218f96cac 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/tests/testPostgresPaginated.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/tests/testPostgresPaginated.pure @@ -16,20 +16,22 @@ import meta::relational::tests::query::paginate::helper::*; import meta::json::*; import meta::pure::mapping::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::pure::graphFetch::execution::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::relational::functions::sqlstring::*; function <> meta::relational::tests::query::function::postgres::testPaginatedByVendor():Boolean[1] -{ +{ // First type of function - simple query let f1 = {|Person.all()->sortBy(#/Person/firstName!fn#)->paginated(1,4);}; let s3 = toSQLString($f1, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.Postgres, meta::relational::extension::relationalExtensions()); - assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName", "root".FIRSTNAME as "o_fn" from personTable as "root" order by "root".FIRSTNAME offset ${((1?number - 1?number)?number * 4?number)} limit ${4?number}', $s3); + assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName", "root".FIRSTNAME as "o_fn" from personTable as "root" order by "root".FIRSTNAME offset ${((1?number - 1?number)?number * 4?number)} limit ${4?number}', $s3); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/tests/testPostgresSliceTakeLimitDrop.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/tests/testPostgresSliceTakeLimitDrop.pure index 33f0bcd74ca..019cdd50ac8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/tests/testPostgresSliceTakeLimitDrop.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/tests/testPostgresSliceTakeLimitDrop.pure @@ -15,19 +15,20 @@ import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::relational::functions::sqlstring::*; function <> meta::relational::tests::query::function::postgres::testSliceByVendor():Boolean[1] -{ +{ let f1 = {|Person.all()->slice(3, 5);}; let s3 = toSQLString($f1, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.Postgres, meta::relational::extension::relationalExtensions()); - assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" offset 3 limit 2', $s3); + assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" offset 3 limit 2', $s3); } function <> meta::relational::tests::query::function::postgres::testTakeByVendor():Boolean[1] -{ +{ let s4 = toSQLString(|Person.all()->take(10);, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.Postgres, meta::relational::extension::relationalExtensions()); assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" limit 10', $s4); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/tests/testPostgresSort.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/tests/testPostgresSort.pure index 7776b577348..fe26ee0b869 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/tests/testPostgresSort.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/tests/testPostgresSort.pure @@ -13,9 +13,11 @@ // limitations under the License. import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::pure::metamodel::tds::*; import meta::relational::functions::sqlstring::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/tests/testPostgresSqlFunctionsInMapping.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/tests/testPostgresSqlFunctionsInMapping.pure index badab42bb38..f7f063c7904 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/tests/testPostgresSqlFunctionsInMapping.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/tests/testPostgresSqlFunctionsInMapping.pure @@ -29,9 +29,12 @@ import meta::relational::functions::toDDL::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::authentication::*; function <> meta::relational::tests::mapping::function::postgres::testTriminNotSybaseASE():Boolean[1]{ diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/tests/testPostgresWithFunction.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/tests/testPostgresWithFunction.pure index 36744e10664..2d141fe8dca 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/tests/testPostgresWithFunction.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/tests/testPostgresWithFunction.pure @@ -15,8 +15,10 @@ import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::relational::functions::sqlstring::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/transform/fromPure/tests/testPostgresToSQLString.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/transform/fromPure/tests/testPostgresToSQLString.pure index c67d6700004..f79be72f878 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/transform/fromPure/tests/testPostgresToSQLString.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/src/main/resources/core_relational_postgres/relational/transform/fromPure/tests/testPostgresToSQLString.pure @@ -18,10 +18,12 @@ import meta::pure::mapping::*; import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::pure::profiles::*; import meta::relational::functions::sqlstring::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; function meta::relational::functions::sqlToString::postgres::runTestCaseById(testCaseId: String[1]): Boolean[1] { @@ -44,7 +46,7 @@ function meta::relational::functions::sqlToString::postgres::testCasesForDocGene expectedSql = 'select "root".FIRSTNAME as "name" from personTable as "root" limit 0', generateUsageFor = [meta::pure::tds::take_TabularDataSet_1__Integer_1__TabularDataSet_1_] ) - + ] } function <> meta::relational::functions::sqlToString::postgres::testToSQLStringJoinStrings():Boolean[1] @@ -53,7 +55,7 @@ function <> meta::relational::functions::sqlToString::postgres::testT agg(x|$x.employees.firstName,y|$y->joinStrings('*')), ['legalName', 'employeesFirstName'] )}; - + let postGresSql = toSQLString($fn, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.Postgres, meta::relational::extension::relationalExtensions()); assertEquals('select "root".LEGALNAME as "legalName", string_agg("personTable_d#4_d_m1".FIRSTNAME, Text\'*\') as "employeesFirstName" from firmTable as "root" left outer join personTable as "personTable_d#4_d_m1" on ("root".ID = "personTable_d#4_d_m1".FIRMID) group by "legalName"', $postGresSql); } @@ -133,14 +135,14 @@ function <> meta::relational::functions::sqlToString::postgres::testT let expected = [ pair(DatabaseType.Postgres, 'select strpos("root".FIRSTNAME, Text\'Jo\') as "index" from personTable as "root"') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |meta::relational::tests::model::simple::Person.all()->project(p|$p.firstName->indexOf('Jo'), 'index'), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); @@ -254,15 +256,15 @@ function <> meta::relational::functions::sqlToString::postgres::testD let expected = [ pair(DatabaseType.Postgres, 'select date_part(\'doy\', "root".tradeDate) as "doy" from tradeTable as "root"') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all() ->project(col(t|$t.date->dayOfYear(), 'doy')), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); @@ -276,11 +278,11 @@ function <> meta::relational::functions::sqlToString::postgres::testT let expected = [ pair(DatabaseType.Postgres, $common) ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Person.all()->project([ a | $a.firstName->ltrim(), @@ -288,7 +290,7 @@ function <> meta::relational::functions::sqlToString::postgres::testT a | $a.firstName->rtrim() ], ['ltrim', 'trim', 'rtrim']), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); @@ -302,17 +304,17 @@ function <> meta::relational::functions::sqlToString::postgres::testC let expected = [ pair(DatabaseType.Postgres, $common) ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all()->project([ a | $a.quantity->cbrt() ], ['cbrt']), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); @@ -334,8 +336,8 @@ function <> meta::relational::functions::sqlToString::postgres::testS { let result = toSQLString(|Person.all()->project([ a | adjust(%2011-12-30T08:55:00.0, 1, DurationUnit.SECONDS) - ], - ['a']), + ], + ['a']), simpleRelationalMapping, DatabaseType.Postgres, meta::relational::extension::relationalExtensions()); assertEquals('select (Timestamp\'2011-12-30 08:55:00.0\' + (INTERVAL \'1 SECONDS\' * 1)) as "a" from personTable as "root"', $result); } @@ -344,8 +346,8 @@ function <> meta::relational::functions::sqlToString::postgres::testS { let result = toSQLString(|Person.all()->project([ a | adjust(%2011-12-30T08:55:00.0->datePart(), %2011-12-30T08:55:00.0->hour(), DurationUnit.HOURS) - ], - ['a']), + ], + ['a']), simpleRelationalMapping, DatabaseType.Postgres, meta::relational::extension::relationalExtensions()); assertEquals('select (Date(Timestamp\'2011-12-30 08:55:00.0\') + (INTERVAL \'1 HOURS\' * date_part(\'hour\', Timestamp\'2011-12-30 08:55:00.0\'))) as "a" from personTable as "root"', $result); } @@ -354,8 +356,8 @@ function <> meta::relational::functions::sqlToString::postgres::testS { let result = toSQLString(|Person.all()->project([ a | adjust(%2011-12-30, 86400, DurationUnit.SECONDS) - ], - ['a']), + ], + ['a']), simpleRelationalMapping, DatabaseType.Postgres, meta::relational::extension::relationalExtensions()); assertEquals('select (Date\'2011-12-30\' + (INTERVAL \'1 SECONDS\' * 86400)) as "a" from personTable as "root"', $result); } @@ -364,8 +366,8 @@ function <> meta::relational::functions::sqlToString::postgres::testS { let result = toSQLString(|Trade.all()->filter(it| adjust(%2011-12-30, 86400, DurationUnit.SECONDS) > %2011-12-30)->project([ a | 'a' - ], - ['a']), + ], + ['a']), simpleRelationalMapping, DatabaseType.Postgres, meta::relational::extension::relationalExtensions()); assertEquals('select Text\'a\' as "a" from tradeTable as "root" where (Date\'2011-12-30\' + (INTERVAL \'1 SECONDS\' * 86400)) > Date\'2011-12-30\'', $result); } @@ -374,8 +376,8 @@ function <> meta::relational::functions::sqlToString::postgres::testS { let result = toSQLString(|Trade.all()->filter(it| adjust(%2011-12-30T08:55:00.0, 1, DurationUnit.DAYS) > %2011-12-30T08:55:00.0)->project([ a | 'a' - ], - ['a']), + ], + ['a']), simpleRelationalMapping, DatabaseType.Postgres, meta::relational::extension::relationalExtensions()); assertEquals('select Text\'a\' as "a" from tradeTable as "root" where (Timestamp\'2011-12-30 08:55:00.0\' + (INTERVAL \'1 DAYS\' * 1)) > Timestamp\'2011-12-30 08:55:00.0\'', $result); } @@ -385,15 +387,15 @@ function <> meta::relational::functions::sqlToString::postgres::testT let expected = [ pair(DatabaseType.Postgres, 'select date_trunc(\'month\', "root".tradeDate) as "date" from tradeTable as "root"') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all() ->project(col(t|$t.date->firstDayOfMonth(), 'date')), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); @@ -425,17 +427,17 @@ function <> meta::relational::functions::sqlToString::postgres::testT let expected = [ pair(DatabaseType.Postgres, 'select date_trunc(\'year\', "root".tradeDate) as "date" from tradeTable as "root"') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all() ->project(col(t|$t.date->firstDayOfYear(), 'date')), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); - + assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); )->distinct() == [true]; } @@ -445,17 +447,17 @@ function <> meta::relational::functions::sqlToString::postgres::testT let expected = [ pair(DatabaseType.Postgres, 'select date_trunc(\'year\', CURRENT_DATE) as "date" from tradeTable as "root"') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all() ->project(col(t|firstDayOfThisYear(), 'date')), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); - + assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); )->distinct() == [true]; } @@ -465,17 +467,17 @@ function <> meta::relational::functions::sqlToString::postgres::testT let expected = [ pair(DatabaseType.Postgres, 'select date_trunc(\'quarter\', CURRENT_DATE) as "date" from tradeTable as "root"') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all() ->project(col(t|firstDayOfThisQuarter(), 'date')), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); - + assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); )->distinct() == [true]; } @@ -490,17 +492,17 @@ function <> meta::relational::functions::sqlToString::postgres::testT let expected = [ pair(DatabaseType.Postgres, 'select date_trunc(\'week\', "root".tradeDate) as "date" from tradeTable as "root"') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all() ->project(col(t|$t.date->firstDayOfWeek(), 'date')), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); - + assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); )->distinct() == [true]; } @@ -510,18 +512,18 @@ function <> meta::relational::functions::sqlToString::postgres::testT let expected = [ pair(DatabaseType.Postgres, 'select date_part(\'minute\', "root".settlementDateTime) as "settlementDateTimeMinute", date_part(\'second\', "root".settlementDateTime) as "settlementDateTimeSecond" from tradeTable as "root"') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all()->project([ t | $t.settlementDateTime->cast(@Date)->toOne()->minute(), t | $t.settlementDateTime->cast(@Date)->toOne()->second() ], ['settlementDateTimeMinute', 'settlementDateTimeSecond']), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); @@ -532,7 +534,7 @@ function <> meta::relational::functions::sqlToString::postgres::testS { let query = {|Trade.all()->filter(t | $t.id == 2)->map(t | $t.quantity->divide(1000000))}; let expectedSQL = 'select ((1.0 * "root".quantity) / 1000000) from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeEventViewMaxTradeEventDate_d#4_d#4_m5" on ("root".ID = "tradeEventViewMaxTradeEventDate_d#4_d#4_m5".trade_id) where "root".ID = 2'; - + let resultPostgresSQL = meta::relational::functions::sqlstring::toSQLString($query, simpleRelationalMapping, DatabaseType.Postgres, meta::relational::extension::relationalExtensions()); assertSameSQL($expectedSQL, $resultPostgresSQL); } @@ -542,4 +544,4 @@ function <> meta::relational::functions::sqlToString::postgres::testT let func = {|Person.all()->project([col(x | $x.firstName, 'FirstName'), col(x | $x.age->toOne()->toString()->toUpper(), 'AgeString')])}; let sql = toSQLString($func, simpleRelationalMapping, DatabaseType.Postgres, meta::relational::extension::relationalExtensions()); assertSameSQL('select "root".FIRSTNAME as "FirstName", upper(cast("root".AGE as varchar)) as "AgeString" from personTable as "root"', $sql); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/executionPlan/tests/executionPlanTestPresto.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/executionPlan/tests/executionPlanTestPresto.pure index e76a2665a5d..a1224d23db4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/executionPlan/tests/executionPlanTestPresto.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/executionPlan/tests/executionPlanTestPresto.pure @@ -15,6 +15,7 @@ import meta::pure::alloy::connections::alloy::authentication::*; import meta::pure::alloy::connections::alloy::specification::*; import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::pure::mapping::modelToModel::test::createInstances::*; import meta::relational::postProcessor::*; import meta::pure::extension::*; @@ -29,6 +30,7 @@ import meta::relational::tests::tds::tabletds::*; import meta::pure::mapping::*; import meta::relational::mapping::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::tests::mapping::inheritance::relational::*; import meta::relational::metamodel::join::*; import meta::relational::tests::tds::tdsJoin::*; @@ -39,8 +41,10 @@ import meta::relational::tests::groupBy::datePeriods::*; import meta::relational::tests::groupBy::datePeriods::domain::*; import meta::pure::executionPlan::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::pure::mapping::modelToModel::test::shared::src::*; import meta::pure::graphFetch::executionPlan::*; import meta::pure::graphFetch::routing::*; @@ -72,7 +76,7 @@ function <> meta::pure::executionPlan::tests::presto::testExecutionPl { let res = executionPlan({dates:DateTime[*] |Trade.all()->filter(t|$t.settlementDateTime->in($dates))->project([x | $x.id], ['TradeId'])}, simpleRelationalMapping, - ^Runtime(connections=^DatabaseConnection(element = relationalDB, type=DatabaseType.Presto, timeZone='US/Arizona')), + ^Runtime(connectionStores=^ConnectionStore(element = relationalDB, connection=^DatabaseConnection(type=DatabaseType.Presto, timeZone='US/Arizona'))), meta::relational::extension::relationalExtensions()); let expected = 'Sequence\n'+ diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/prestoExtension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/prestoExtension.pure index b0e8ef752ef..5ade44da7fe 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/prestoExtension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/prestoExtension.pure @@ -4,6 +4,7 @@ import meta::relational::functions::sqlQueryToString::*; import meta::relational::metamodel::operation::*; import meta::relational::metamodel::relation::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::extension::*; import meta::relational::extension::*; @@ -69,7 +70,7 @@ function <> meta::relational::functions::sqlQueryToString::prest dynaFnToSql('firstHourOfDay', $allStates, ^ToSql(format='date_trunc(\'day\', %s)')), dynaFnToSql('firstMillisecondOfSecond', $allStates, ^ToSql(format='date_trunc(\'second\', %s)')), dynaFnToSql('firstMinuteOfHour', $allStates, ^ToSql(format='date_trunc(\'hour\', %s)')), - dynaFnToSql('firstSecondOfMinute', $allStates, ^ToSql(format='date_trunc(\'minute\', %s)')), + dynaFnToSql('firstSecondOfMinute', $allStates, ^ToSql(format='date_trunc(\'minute\', %s)')), dynaFnToSql('hour', $allStates, ^ToSql(format='hour(%s)')), dynaFnToSql('indexOf', $allStates, ^ToSql(format='strpos(%s)', transform={p:String[2] | $p->at(0) + ', ' + $p->at(1)})), dynaFnToSql('left', $allStates, ^ToSql(format='substr(%s,1,%s)')), @@ -97,7 +98,7 @@ function <> meta::relational::functions::sqlQueryToString::prest dynaFnToSql('stdDevSample', $allStates, ^ToSql(format='stddev_samp(%s)')), dynaFnToSql('today', $allStates, ^ToSql(format='current_date')), dynaFnToSql('toDecimal', $allStates, ^ToSql(format='cast(%s as decimal)')), - dynaFnToSql('toFloat', $allStates, ^ToSql(format='cast(%s as double)')), + dynaFnToSql('toFloat', $allStates, ^ToSql(format='cast(%s as double)')), dynaFnToSql('toString', $allStates, ^ToSql(format='cast(%s as varchar)')), dynaFnToSql('toTimestamp', $allStates, ^ToSql(format='%s', transform={p:String[2] | $p->transformToTimestampPresto()})), dynaFnToSql('weekOfYear', $allStates, ^ToSql(format='week(%s)')), @@ -153,8 +154,8 @@ function <> meta::relational::functions::sqlQueryToString::prest function <> meta::relational::functions::sqlQueryToString::presto::transformToTimestampPresto(params:String[2]):String[1] { //Standardizing the format as per Postgres specification, will include mappings for the formats in future. - assert($params->at(1)->replace('\'', '') == 'YYYY-MM-DD HH24:MI:SS', | $params->at(1) +' not supported '); - let timestampFormat = '\'%Y-%m-%d %H:%i:%s\''; + assert($params->at(1)->replace('\'', '') == 'YYYY-MM-DD HH24:MI:SS', | $params->at(1) +' not supported '); + let timestampFormat = '\'%Y-%m-%d %H:%i:%s\''; 'date_parse('+$params->at(0)+','+$timestampFormat+')'; } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoDateFilters.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoDateFilters.pure index 35cfe246e44..506b5188c8e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoDateFilters.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoDateFilters.pure @@ -15,18 +15,19 @@ import meta::relational::tests::model::simple::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::functions::sqlstring::*; function <> meta::relational::tests::projection::presto::filter::dates::today::testToday():Boolean[1] -{ +{ let query = {|Trade.all()->filter(d | $d.date == today())->project(x | $x.date, 'date')}; - + let prestoSql = toSQLString($query, simpleRelationalMapping, meta::relational::runtime::DatabaseType.Presto, meta::relational::extension::relationalExtensions()); assertEquals('select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = current_date', $prestoSql); } function <> meta::relational::tests::projection::presto::filter::dates::now::testNow():Boolean[1] -{ +{ let query = {|Trade.all()->filter(d | $d.date == now())->project(x | $x.date, 'date')}; let prestoSql = toSQLString($query, simpleRelationalMapping, meta::relational::runtime::DatabaseType.Presto, meta::relational::extension::relationalExtensions()); @@ -34,9 +35,9 @@ function <> meta::relational::tests::projection::presto::filter::date } function <> meta::relational::tests::projection::presto::filter::dates::recent::testMostRecentDayOfWeek():Boolean[1] -{ +{ let query = {|Trade.all()->filter(d | $d.date == mostRecentDayOfWeek(DayOfWeek.Monday))->project(x | $x.date, 'date')}; - + let prestoSql = toSQLString($query, simpleRelationalMapping, meta::relational::runtime::DatabaseType.Presto, meta::relational::extension::relationalExtensions()); assertEquals('select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = date_add(\'day\', case when 1 - day_of_week(current_date) > 0 then 1 - day_of_week(current_date) - 7 else 1 - day_of_week(current_date) end, current_date)', $prestoSql); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoPaginated.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoPaginated.pure index 2cf5e52935e..103a6ee6799 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoPaginated.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoPaginated.pure @@ -16,20 +16,22 @@ import meta::relational::tests::query::paginate::helper::*; import meta::json::*; import meta::pure::mapping::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::pure::graphFetch::execution::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::relational::functions::sqlstring::*; function <> meta::relational::tests::query::function::presto::testPaginatedByVendor():Boolean[1] -{ +{ // First type of function - simple query let f1 = {|Person.all()->sortBy(#/Person/firstName!fn#)->paginated(1,4);}; let s7 = toSQLString($f1, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.Presto, meta::relational::extension::relationalExtensions()); - assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName", "root".FIRSTNAME as "o_fn" from personTable as "root" order by "root".FIRSTNAME offset ${((1?number - 1?number)?number * 4?number)} rows fetch next ${4?number} rows only', $s7); + assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName", "root".FIRSTNAME as "o_fn" from personTable as "root" order by "root".FIRSTNAME offset ${((1?number - 1?number)?number * 4?number)} rows fetch next ${4?number} rows only', $s7); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoSliceTakeLimitDrop.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoSliceTakeLimitDrop.pure index e14d26cee6d..7f614062a3e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoSliceTakeLimitDrop.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoSliceTakeLimitDrop.pure @@ -15,25 +15,26 @@ import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::relational::functions::sqlstring::*; function <> meta::relational::tests::query::function::presto::testSliceByVendor():Boolean[1] -{ +{ let f1 = {|Person.all()->slice(3, 5);}; let s7 = toSQLString($f1, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.Presto, meta::relational::extension::relationalExtensions()); - assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" offset 3 rows fetch next 2 rows only', $s7); + assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" offset 3 rows fetch next 2 rows only', $s7); } function <> meta::relational::tests::query::function::presto::testTakeByVendor():Boolean[1] -{ +{ let s5 = toSQLString(|Person.all()->take(10);, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.Presto, meta::relational::extension::relationalExtensions()); assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" limit 10', $s5); } function <> meta::relational::tests::query::function::presto::testDropByVendor():Boolean[1] -{ +{ let s = toSQLString(|Person.all()->drop(10);, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.Presto, meta::relational::extension::relationalExtensions()); assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" offset 10', $s); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoSqlFunctionsInMapping.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoSqlFunctionsInMapping.pure index 97bc0148e26..079a92d4da3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoSqlFunctionsInMapping.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoSqlFunctionsInMapping.pure @@ -29,14 +29,17 @@ import meta::relational::functions::toDDL::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::authentication::*; function <> meta::relational::tests::mapping::sqlFunction::presto::parseDate::testToSQLStringWithParseDateInQueryForPresto():Boolean[1] { - let prestoSql = toSQLString(|SqlFunctionDemo.all()->project([s | $s.string2TimestampStr->parseDate()], ['timestamp']), testMapping, meta::relational::runtime::DatabaseType.Presto, meta::relational::extension::relationalExtensions()); + let prestoSql = toSQLString(|SqlFunctionDemo.all()->project([s | $s.string2TimestampStr->parseDate()], ['timestamp']), testMapping, meta::relational::runtime::DatabaseType.Presto, meta::relational::extension::relationalExtensions()); assertEquals('select date_parse("root".string2date,\'%Y-%m-%d %H:%i:%s\') as "timestamp" from dataTable as "root"',$prestoSql->sqlRemoveFormatting()); } @@ -259,7 +262,7 @@ function <> meta::relational::tests::mapping::sqlFunction::presto::te |SqlFunctionDemo.all()->project([s | $s.adjustDate], ['Dt']), testMapping, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals([%2003-07-12T00:00:00.000000000+0000, %2003-07-13T00:00:00.000000000+0000], $result.values->at(0).rows.values); meta::relational::functions::asserts::assertSameSQL('select dateadd(DAY, -7, "root".dateTime) as "Dt" from dataTable as "root"', $result); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoTDSConcatenate.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoTDSConcatenate.pure index 6455fd9f34d..9c3701e5c58 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoTDSConcatenate.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoTDSConcatenate.pure @@ -18,7 +18,9 @@ import meta::relational::tests::csv::*; import meta::relational::tests::model::simple::*; import meta::relational::mapping::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::tds::presto::tdsConcatenate::testConcatenateWithDistinctAndGroupBy():Boolean[1] { @@ -28,4 +30,4 @@ function <> meta::relational::tests::tds::presto::tdsConcatenate::tes let result = toSQLString($func, simpleRelationalMapping, DatabaseType.Presto, meta::relational::extension::relationalExtensions()); assertEquals('select "aggreg"."lastName" as "lastName", count(*) as "count" from (select distinct "union"."lastName" as "lastName" from (select "root".LASTNAME as "lastName" from personTable as "root" UNION ALL select "root".LASTNAME as "lastName" from personTable as "root") as "union") as "aggreg" group by "aggreg"."lastName"', $result); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoToSQLString.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoToSQLString.pure index b187fe25fcd..01775809003 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoToSQLString.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoToSQLString.pure @@ -17,10 +17,12 @@ import meta::pure::mapping::*; import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::pure::profiles::*; import meta::relational::functions::sqlstring::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; function <> meta::relational::tests::functions::sqlstring::presto::testToSQLStringPrestoSchemaNameShouldContainCatalogName():Boolean[1] { @@ -435,10 +437,10 @@ function <> meta::relational::tests::functions::sqlstring::presto::te function <> meta::relational::tests::functions::sqlstring::presto::testPrestoDistinctTake():Boolean[1] { let presto = meta::relational::functions::sqlstring::toSQLString(|Person.all()->project(f|$f.firstName, 'firstName')->distinct()->take(10), simpleRelationalMapping, DatabaseType.Presto, meta::relational::extension::relationalExtensions()); - + let sql = 'select distinct "root".FIRSTNAME as "firstName" from personTable as "root" limit 10'; - - assertSameSQL($sql, $presto); + + assertSameSQL($sql, $presto); } function <> meta::relational::tests::functions::sqlstring::presto::testToSQLStringToNumericCasts():Boolean[1] @@ -451,4 +453,4 @@ function <> meta::relational::tests::functions::sqlstring::presto::te ]), simpleRelationalMapping, DatabaseType.Presto, meta::relational::extension::relationalExtensions()); assertEquals('select cast("root".quantity as decimal) as "decimal", cast("root".quantity as double) as "float" from tradeTable as "root"', $result); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoWithFunction.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoWithFunction.pure index 851fb63e839..4666ef1709c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoWithFunction.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/src/main/resources/core_relational_presto/relational/sqlQueryToString/tests/testPrestoWithFunction.pure @@ -15,8 +15,10 @@ import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::relational::functions::sqlstring::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/executionPlan/tests/executionPlanTestRedshift.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/executionPlan/tests/executionPlanTestRedshift.pure index 5eef2eef039..1985d37519e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/executionPlan/tests/executionPlanTestRedshift.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/executionPlan/tests/executionPlanTestRedshift.pure @@ -15,6 +15,7 @@ import meta::pure::alloy::connections::alloy::authentication::*; import meta::pure::alloy::connections::alloy::specification::*; import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::pure::mapping::modelToModel::test::createInstances::*; import meta::relational::postProcessor::*; import meta::pure::extension::*; @@ -29,6 +30,7 @@ import meta::relational::tests::tds::tabletds::*; import meta::pure::mapping::*; import meta::relational::mapping::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::tests::mapping::inheritance::relational::*; import meta::relational::metamodel::join::*; import meta::relational::tests::tds::tdsJoin::*; @@ -39,8 +41,10 @@ import meta::relational::tests::groupBy::datePeriods::*; import meta::relational::tests::groupBy::datePeriods::domain::*; import meta::pure::executionPlan::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::pure::mapping::modelToModel::test::shared::src::*; import meta::pure::graphFetch::executionPlan::*; import meta::pure::graphFetch::routing::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/sqlQueryToString/customRedshiftTests.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/sqlQueryToString/customRedshiftTests.pure index 0bdc827c3bc..fc31cd97c13 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/sqlQueryToString/customRedshiftTests.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/sqlQueryToString/customRedshiftTests.pure @@ -66,23 +66,27 @@ Mapping meta::relational::functions::sqlQueryToString::tests::redshift::testQuot ) ###Pure +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::execute::*; import meta::relational::mapping::*; import meta::relational::functions::asserts::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::functions::sqlstring::*; import meta::relational::tests::mapping::sqlFunction::model::domain::*; import meta::relational::tests::mapping::sqlFunction::model::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::profiles::*; function meta::relational::functions::sqlQueryToString::tests::redshift::testRuntimeForRedshift():Runtime[1] { - meta::relational::tests::testRuntime(meta::relational::functions::sqlQueryToString::tests::redshift::testQuoting::db::rsDb); + meta::external::store::relational::tests::testRuntime(meta::relational::functions::sqlQueryToString::tests::redshift::testQuoting::db::rsDb); } function <> meta::relational::functions::sqlQueryToString::tests::redshift::testQuoting::tableAndColumnNamesAreQuoted():Boolean[1] @@ -396,4 +400,4 @@ function <> meta::relational::functions::sqlQueryToString::tests::red DatabaseType.Redshift, meta::relational::extension::relationalExtensions()); assertEquals('select extract(minute from "root".settlementDateTime) as "settlementDateTimeMinute" from tradeTable as "root"', $result); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/sqlQueryToString/redshiftExtension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/sqlQueryToString/redshiftExtension.pure index 1033b671652..f161fc6ed01 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/sqlQueryToString/redshiftExtension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/sqlQueryToString/redshiftExtension.pure @@ -4,6 +4,7 @@ import meta::relational::functions::sqlQueryToString::*; import meta::relational::metamodel::operation::*; import meta::relational::metamodel::relation::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::extension::*; import meta::relational::extension::*; @@ -20,7 +21,7 @@ function <> meta::relational::functions::sqlQueryToString::redsh let literalProcessor = {type:Type[1]| $literalProcessors->get(if($type->instanceOf(Enumeration), | Enum, | $type))->toOne()}; let dynaFuncDispatch = getDynaFunctionToSqlDefault($literalProcessor)->groupBy(d| $d.funcName)->putAll( getDynaFunctionToSqlForRedshift()->groupBy(d| $d.funcName))->getDynaFunctionDispatcher(); - + ^DbExtension( isBooleanLiteralSupported = true, isDbReservedIdentifier = {str:String[1]| $str->in($reservedWords)}, @@ -74,7 +75,7 @@ function <> meta::relational::functions::sqlQueryToString::redsh dynaFnToSql('stdDevSample', $allStates, ^ToSql(format='stddev_samp(%s)')), dynaFnToSql('today', $allStates, ^ToSql(format='current_date')), dynaFnToSql('toDecimal', $allStates, ^ToSql(format='cast(%s as decimal)')), - dynaFnToSql('toFloat', $allStates, ^ToSql(format='cast(%s as double precision)')), + dynaFnToSql('toFloat', $allStates, ^ToSql(format='cast(%s as double precision)')), dynaFnToSql('toString', $allStates, ^ToSql(format='cast(%s as varchar)')), dynaFnToSql('weekOfYear', $allStates, ^ToSql(format='extract(week from %s)')), dynaFnToSql('year', $allStates, ^ToSql(format='extract(year from %s)')) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/sqlQueryToString/redshiftTestSuiteInvoker.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/sqlQueryToString/redshiftTestSuiteInvoker.pure index 0ce58c8ffe0..df596e17e3c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/sqlQueryToString/redshiftTestSuiteInvoker.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/sqlQueryToString/redshiftTestSuiteInvoker.pure @@ -13,17 +13,18 @@ // limitations under the License. import meta::pure::test::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::dbTestRunner::*; function <> meta::relational::tests::sqlQueryToString::redshift::testSuiteInvoker(): PureTestCollection[1] { let connection = getTestConnection(DatabaseType.Redshift, meta::relational::extension::relationalExtensions()); - + // If a feature described in extension APIs / test suite is not supported, // then throw an exception with message that starts with '[unsupported-api]' // Tests which raise such exception will be reported as ignored by the runner - + meta::relational::tests::dbSpecificTests->collectParameterizedTests('Redshift', ^DbTestConfig(dbType=DatabaseType.Redshift, connection=$connection), meta::relational::tests::sqlQueryToString::redshift::testParamCustomizations_FunctionDefinition_1__DbTestConfig_1__DbTestConfig_1_, diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/TestRelationalCompilationFromGrammar.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/TestRelationalCompilationFromGrammar.java index b7d71599005..98d5b29dd15 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/TestRelationalCompilationFromGrammar.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/TestRelationalCompilationFromGrammar.java @@ -2222,6 +2222,6 @@ public void testForMultipleRelationalConnections() " connection_1: relational::graphFetch::OneMappingConnection\n" + " ]\n" + " ];\n" + - "}\n",null, Collections.singletonList("COMPILATION error at [97:21-70]: Multiple RelationalDatabaseConnections are Not Supported for the same Store - relational::graphFetch::dbInc")); + "}\n","COMPILATION error at [86:1-104:1]: Found 2 connections against store [dbInc] under a single runtime."); } } \ No newline at end of file diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/TestSnowflakeConnectionGrammarCompiler.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/TestSnowflakeConnectionGrammarCompiler.java index a0a310db0d0..538419206e6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/TestSnowflakeConnectionGrammarCompiler.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/src/test/java/org/finos/legend/engine/language/pure/grammar/test/TestSnowflakeConnectionGrammarCompiler.java @@ -18,7 +18,7 @@ import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; import org.finos.legend.engine.protocol.pure.v1.model.SourceInformation; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; -import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_RelationalDatabaseConnection; +import org.finos.legend.pure.generated.Root_meta_external_store_relational_runtime_RelationalDatabaseConnection; import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy; import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification; import org.junit.Assert; @@ -59,7 +59,7 @@ public void testSnowflakeConnectionPropertiesPropagatedToCompiledGraph() "}\n"); - Root_meta_pure_alloy_connections_RelationalDatabaseConnection connection = (Root_meta_pure_alloy_connections_RelationalDatabaseConnection) result.getTwo().getConnection("simple::StaticConnection", SourceInformation.getUnknownSourceInformation()); + Root_meta_external_store_relational_runtime_RelationalDatabaseConnection connection = (Root_meta_external_store_relational_runtime_RelationalDatabaseConnection) result.getTwo().getConnection("simple::StaticConnection", SourceInformation.getUnknownSourceInformation()); Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification specification = (Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification) connection._datasourceSpecification(); @@ -95,7 +95,7 @@ public void testSnowflakeConnectionPropertiesLocalMode() "}\n"); - Root_meta_pure_alloy_connections_RelationalDatabaseConnection connection = (Root_meta_pure_alloy_connections_RelationalDatabaseConnection) result.getTwo().getConnection("simple::StaticConnection", SourceInformation.getUnknownSourceInformation()); + Root_meta_external_store_relational_runtime_RelationalDatabaseConnection connection = (Root_meta_external_store_relational_runtime_RelationalDatabaseConnection) result.getTwo().getConnection("simple::StaticConnection", SourceInformation.getUnknownSourceInformation()); Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification specification = (Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification) connection._datasourceSpecification(); Assert.assertEquals("legend-local-snowflake-databaseName-apps-pure-studio-relational-tests-dbInc", specification._databaseName()); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/executionPlan/tests/executionPlanTestSnowflake.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/executionPlan/tests/executionPlanTestSnowflake.pure index 783d0a13d10..f9a79437922 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/executionPlan/tests/executionPlanTestSnowflake.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/executionPlan/tests/executionPlanTestSnowflake.pure @@ -15,6 +15,7 @@ import meta::pure::alloy::connections::alloy::authentication::*; import meta::pure::alloy::connections::alloy::specification::*; import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::pure::mapping::modelToModel::test::createInstances::*; import meta::relational::postProcessor::*; import meta::pure::extension::*; @@ -29,6 +30,7 @@ import meta::relational::tests::tds::tabletds::*; import meta::pure::mapping::*; import meta::relational::mapping::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::tests::mapping::inheritance::relational::*; import meta::relational::metamodel::join::*; import meta::relational::tests::tds::tdsJoin::*; @@ -39,8 +41,10 @@ import meta::relational::tests::groupBy::datePeriods::*; import meta::relational::tests::groupBy::datePeriods::domain::*; import meta::pure::executionPlan::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::pure::mapping::modelToModel::test::shared::src::*; import meta::pure::graphFetch::executionPlan::*; import meta::pure::graphFetch::routing::*; @@ -48,7 +52,7 @@ import meta::pure::functions::collection::*; function <> meta::pure::executionPlan::tests::snowflake::testFilterEqualsWithOptionalParameter_Snowflake():Boolean[1] { - let generatedPlan = executionPlan({optionalID: String[0..1], optionalActive: Boolean[0..1]|Interaction.all()->filter(i|$i.id==$optionalID && $i.active==$optionalActive)->project(col(i|$i.time, 'Time'))}, simpleRelationalMapping, ^Runtime(connections=meta::pure::executionPlan::tests::snowflake::relationalConnectionForSnowflake(true)), meta::relational::extension::relationalExtensions()); + let generatedPlan = executionPlan({optionalID: String[0..1], optionalActive: Boolean[0..1]|Interaction.all()->filter(i|$i.id==$optionalID && $i.active==$optionalActive)->project(col(i|$i.time, 'Time'))}, simpleRelationalMapping, ^Runtime(connectionStores=^ConnectionStore(element = relationalDB,connection=meta::pure::executionPlan::tests::snowflake::relationalConnectionForSnowflake(true))), meta::relational::extension::relationalExtensions()); let expectedPlan = 'RelationalBlockExecutionNode(type=TDS[(Time,Integer,INT,"")](FunctionParametersValidationNode(functionParameters=[optionalID:String[0..1],optionalActive:Boolean[0..1]])SQL(type=VoidresultColumns=[]sql=ALTERSESSIONSETQUERY_TAG=\'{"executionTraceID":"${execID}","engineUser":"${userId}","referer":"${referer}"}\';connection=RelationalDatabaseConnection(type="Snowflake"))Relational(type=TDS[(Time,Integer,INT,"")]resultColumns=[("Time",INT)]sql=select"root".timeas"Time"frominteractionTableas"root"where((${optionalVarPlaceHolderOperationSelector(optionalID![],\'"root".ID=${varPlaceHolderToString(optionalID![]"\\\'""\\\'"{"\\\'":"\\\'\\\'"}"null")}\',\'"root".IDisnull\')})and(${optionalVarPlaceHolderOperationSelector(optionalActive![],\'casewhen"root".active=\\\'Y\\\'then\\\'true\\\'else\\\'false\\\'end=${varPlaceHolderToString(optionalActive![]"\\\'""\\\'"{}"null")}\',\'casewhen"root".active=\\\'Y\\\'then\\\'true\\\'else\\\'false\\\'endisnull\')}))connection=RelationalDatabaseConnection(type="Snowflake")))finallyExecutionNodes=(SQL(type=VoidresultColumns=[]sql=ALTERSESSIONUNSETQUERY_TAG;connection=RelationalDatabaseConnection(type="Snowflake"))))'; assertEquals($expectedPlan, $generatedPlan->planToStringWithoutFormatting(meta::relational::extension::relationalExtensions())); assertSameElements(templateFunctionsList(),$generatedPlan.processingTemplateFunctions); @@ -57,7 +61,6 @@ function <> meta::pure::executionPlan::tests::snowflake::testFilterEq function <> meta::pure::executionPlan::tests::snowflake::relationalConnectionForSnowflake(queryTags: Boolean[1]): RelationalDatabaseConnection[1] { ^RelationalDatabaseConnection( - element = relationalDB, datasourceSpecification = ^SnowflakeDatasourceSpecification(region='', warehouseName= '', databaseName = '', accountName = '', enableQueryTags = $queryTags), authenticationStrategy = ^AuthenticationStrategy(), type=DatabaseType.Snowflake @@ -68,7 +71,7 @@ function <> meta::pure::executionPlan::tests::snowflake::testExecutio { let res = executionPlan( {name:String[*] |_Person.all()->filter(x | !$x.fullName->in($name))->project([x | $x.fullName], ['fullName']);}, - meta::pure::mapping::modelToModel::test::shared::relationalMapping, ^Runtime(connections=meta::pure::executionPlan::tests::snowflake::relationalConnectionForSnowflake(true)), meta::relational::extension::relationalExtensions() + meta::pure::mapping::modelToModel::test::shared::relationalMapping, ^Runtime(connectionStores=^ConnectionStore(element = relationalDB,connection=meta::pure::executionPlan::tests::snowflake::relationalConnectionForSnowflake(true))), meta::relational::extension::relationalExtensions() ); let expected = 'RelationalBlockExecutionNode(type=TDS[(fullName,String,VARCHAR(1000),"")](FunctionParametersValidationNode(functionParameters=[name:String[*]])SQL(type=VoidresultColumns=[]sql=ALTERSESSIONSETQUERY_TAG=\'{"executionTraceID":"${execID}","engineUser":"${userId}","referer":"${referer}"}\';connection=RelationalDatabaseConnection(type="Snowflake"))Allocation(type=Stringname=inFilterClause_namevalue=(FreeMarkerConditionalExecutionNode(type=Stringcondition=${(instanceOf(name,"Stream")||((collectionSize(name![])?number)>16348))?c}trueBlock=(Sequence(type=String(CreateAndPopulateTempTable(type=VoidinputVarNames=[name]tempTableName=LEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_nametempTableColumns=[(ColumnForStoringInCollection,VARCHAR(200))]connection=RelationalDatabaseConnection(type="Snowflake"))Constant(type=Stringvalues=[select"legend_temp_db.legend_temp_schema.temptableforin_name_0".ColumnForStoringInCollectionasColumnForStoringInCollectionfromLEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_nameas"legend_temp_db.legend_temp_schema.temptableforin_name_0"]))))falseBlock=(Constant(type=Stringvalues=[${renderCollection(name![]",""\'""\'"{"\'":"\'\'"}"null")}])))))SQL(type=VoidresultColumns=[]sql=ALTERSESSIONSETQUERY_TAG=\'{"executionTraceID":"${execID}","engineUser":"${userId}","referer":"${referer}"}\';connection=RelationalDatabaseConnection(type="Snowflake"))Relational(type=TDS[(fullName,String,VARCHAR(1000),"")]resultColumns=[("fullName",VARCHAR(1000))]sql=select"root".fullnameas"fullName"fromPersonas"root"where("root".fullnamenotin(${inFilterClause_name})OR"root".fullnameisnull)connection=RelationalDatabaseConnection(type="Snowflake")))finallyExecutionNodes=(SQL(type=VoidresultColumns=[]sql=ALTERSESSIONUNSETQUERY_TAG;connection=RelationalDatabaseConnection(type="Snowflake"))))'; assertEquals($expected, $res->planToStringWithoutFormatting(meta::relational::extension::relationalExtensions())); @@ -78,7 +81,7 @@ function <> meta::pure::executionPlan::tests::snowflake::testExecutio function <> meta::pure::executionPlan::tests::snowflake::testExecutionPlanGenerationForMultipleInWithTwoCollectionInputsForSnowflake() : Boolean[1] { let res = executionPlan({ids:Integer[*], dates:Date[*]|Trade.all()->filter(t|$t.settlementDateTime->in($dates) && $t.id->in($ids))->project([x | $x.id], ['TradeId'])}, - simpleRelationalMapping, ^Runtime(connections=meta::pure::executionPlan::tests::snowflake::relationalConnectionForSnowflake(true)), meta::relational::extension::relationalExtensions()); + simpleRelationalMapping, ^Runtime(connectionStores=^ConnectionStore(element = relationalDB,connection=meta::pure::executionPlan::tests::snowflake::relationalConnectionForSnowflake(true))), meta::relational::extension::relationalExtensions()); let expected = ['RelationalBlockExecutionNode(type=TDS[(TradeId,Integer,INT,"")](FunctionParametersValidationNode(functionParameters=[ids:Integer[*],dates:Date[*]])SQL(type=VoidresultColumns=[]sql=ALTERSESSIONSETQUERY_TAG=\'{"executionTraceID":"${execID}","engineUser":"${userId}","referer":"${referer}"}\';connection=RelationalDatabaseConnection(type="Snowflake"))Allocation(type=Stringname=inFilterClause_datesvalue=(FreeMarkerConditionalExecutionNode(type=Stringcondition=${(instanceOf(dates,"Stream")||((collectionSize(dates![])?number)>16348))?c}trueBlock=(Sequence(type=String(CreateAndPopulateTempTable(type=VoidinputVarNames=[dates]tempTableName=LEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_datestempTableColumns=[(ColumnForStoringInCollection,TIMESTAMP)]connection=RelationalDatabaseConnection(type="Snowflake"))Constant(type=Stringvalues=[select"legend_temp_db.legend_temp_schema.temptableforin_dates_0".ColumnForStoringInCollectionasColumnForStoringInCollectionfromLEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_datesas"legend_temp_db.legend_temp_schema.temptableforin_dates_0"]))))falseBlock=(Constant(type=Stringvalues=[${renderCollection(dates![]",""\'""\'::timestamp"{}"null")}])))))SQL(type=VoidresultColumns=[]sql=ALTERSESSIONSETQUERY_TAG=\'{"executionTraceID":"${execID}","engineUser":"${userId}","referer":"${referer}"}\';connection=RelationalDatabaseConnection(type="Snowflake"))Allocation(type=Stringname=inFilterClause_idsvalue=(FreeMarkerConditionalExecutionNode(type=Stringcondition=${(instanceOf(ids,"Stream")||((collectionSize(ids![])?number)>16348))?c}trueBlock=(Sequence(type=String(CreateAndPopulateTempTable(type=VoidinputVarNames=[ids]tempTableName=LEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_idstempTableColumns=[(ColumnForStoringInCollection,INT)]connection=RelationalDatabaseConnection(type="Snowflake"))Constant(type=Stringvalues=[select"legend_temp_db.legend_temp_schema.temptableforin_ids_0".ColumnForStoringInCollectionasColumnForStoringInCollectionfromLEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_idsas"legend_temp_db.legend_temp_schema.temptableforin_ids_0"]))))falseBlock=(Constant(type=Stringvalues=[${renderCollection(ids![]","""""{}"null")}])))))SQL(type=VoidresultColumns=[]sql=ALTERSESSIONSETQUERY_TAG=\'{"executionTraceID":"${execID}","engineUser":"${userId}","referer":"${referer}"}\';connection=RelationalDatabaseConnection(type="Snowflake"))Relational(type=TDS[(TradeId,Integer,INT,"")]resultColumns=[("TradeId",INT)]sql=select"root".IDas"TradeId"fromtradeTableas"root"where("root".settlementDateTimein(${inFilterClause_dates})and"root".IDin(${inFilterClause_ids}))connection=RelationalDatabaseConnection(type="Snowflake")))finallyExecutionNodes=(SQL(type=VoidresultColumns=[]sql=ALTERSESSIONUNSETQUERY_TAG;connection=RelationalDatabaseConnection(type="Snowflake"))))', 'RelationalBlockExecutionNode(type=TDS[(TradeId,Integer,INT,"")](FunctionParametersValidationNode(functionParameters=[ids:Integer[*],dates:Date[*]])SQL(type=VoidresultColumns=[]sql=ALTERSESSIONSETQUERY_TAG=\'{"executionTraceID":"${execID}","engineUser":"${userId}","referer":"${referer}"}\';connection=RelationalDatabaseConnection(type="Snowflake"))Allocation(type=Stringname=inFilterClause_idsvalue=(FreeMarkerConditionalExecutionNode(type=Stringcondition=${(instanceOf(ids,"Stream")||((collectionSize(ids![])?number)>16348))?c}trueBlock=(Sequence(type=String(CreateAndPopulateTempTable(type=VoidinputVarNames=[ids]tempTableName=LEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_idstempTableColumns=[(ColumnForStoringInCollection,INT)]connection=RelationalDatabaseConnection(type="Snowflake"))Constant(type=Stringvalues=[select"legend_temp_db.legend_temp_schema.temptableforin_ids_0".ColumnForStoringInCollectionasColumnForStoringInCollectionfromLEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_idsas"legend_temp_db.legend_temp_schema.temptableforin_ids_0"]))))falseBlock=(Constant(type=Stringvalues=[${renderCollection(ids![]","""""{}"null")}])))))SQL(type=VoidresultColumns=[]sql=ALTERSESSIONSETQUERY_TAG=\'{"executionTraceID":"${execID}","engineUser":"${userId}","referer":"${referer}"}\';connection=RelationalDatabaseConnection(type="Snowflake"))Allocation(type=Stringname=inFilterClause_datesvalue=(FreeMarkerConditionalExecutionNode(type=Stringcondition=${(instanceOf(dates,"Stream")||((collectionSize(dates![])?number)>16348))?c}trueBlock=(Sequence(type=String(CreateAndPopulateTempTable(type=VoidinputVarNames=[dates]tempTableName=LEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_datestempTableColumns=[(ColumnForStoringInCollection,TIMESTAMP)]connection=RelationalDatabaseConnection(type="Snowflake"))Constant(type=Stringvalues=[select"legend_temp_db.legend_temp_schema.temptableforin_dates_0".ColumnForStoringInCollectionasColumnForStoringInCollectionfromLEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_datesas"legend_temp_db.legend_temp_schema.temptableforin_dates_0"]))))falseBlock=(Constant(type=Stringvalues=[${renderCollection(dates![]",""\'""\'::timestamp"{}"null")}])))))SQL(type=VoidresultColumns=[]sql=ALTERSESSIONSETQUERY_TAG=\'{"executionTraceID":"${execID}","engineUser":"${userId}","referer":"${referer}"}\';connection=RelationalDatabaseConnection(type="Snowflake"))Relational(type=TDS[(TradeId,Integer,INT,"")]resultColumns=[("TradeId",INT)]sql=select"root".IDas"TradeId"fromtradeTableas"root"where("root".settlementDateTimein(${inFilterClause_dates})and"root".IDin(${inFilterClause_ids}))connection=RelationalDatabaseConnection(type="Snowflake")))finallyExecutionNodes=(SQL(type=VoidresultColumns=[]sql=ALTERSESSIONUNSETQUERY_TAG;connection=RelationalDatabaseConnection(type="Snowflake"))))']; assert($expected->contains($res->planToStringWithoutFormatting(meta::relational::extension::relationalExtensions()))); @@ -88,7 +91,7 @@ function <> meta::pure::executionPlan::tests::snowflake::testExecutio function <> meta::pure::executionPlan::tests::snowflake::testExecutionPlanGenerationWithQueryTagsForSnowflake() : Boolean[1] { let res = executionPlan({ids:Integer[*], dates:Date[*]|Trade.all()->filter(t|$t.settlementDateTime->in($dates) && $t.id->in($ids))->project([x | $x.id], ['TradeId'])}, - simpleRelationalMapping, ^Runtime(connections=meta::pure::executionPlan::tests::snowflake::relationalConnectionForSnowflake(true)), meta::relational::extension::relationalExtensions()); + simpleRelationalMapping, ^Runtime(connectionStores=^ConnectionStore(element = relationalDB,connection=meta::pure::executionPlan::tests::snowflake::relationalConnectionForSnowflake(true))), meta::relational::extension::relationalExtensions()); let expected = ['RelationalBlockExecutionNode(type=TDS[(TradeId,Integer,INT,"")](FunctionParametersValidationNode(functionParameters=[ids:Integer[*],dates:Date[*]])SQL(type=VoidresultColumns=[]sql=ALTERSESSIONSETQUERY_TAG=\'{"executionTraceID":"${execID}","engineUser":"${userId}","referer":"${referer}"}\';connection=RelationalDatabaseConnection(type="Snowflake"))Allocation(type=Stringname=inFilterClause_datesvalue=(FreeMarkerConditionalExecutionNode(type=Stringcondition=${(instanceOf(dates,"Stream")||((collectionSize(dates![])?number)>16348))?c}trueBlock=(Sequence(type=String(CreateAndPopulateTempTable(type=VoidinputVarNames=[dates]tempTableName=LEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_datestempTableColumns=[(ColumnForStoringInCollection,TIMESTAMP)]connection=RelationalDatabaseConnection(type="Snowflake"))Constant(type=Stringvalues=[select"legend_temp_db.legend_temp_schema.temptableforin_dates_0".ColumnForStoringInCollectionasColumnForStoringInCollectionfromLEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_datesas"legend_temp_db.legend_temp_schema.temptableforin_dates_0"]))))falseBlock=(Constant(type=Stringvalues=[${renderCollection(dates![]",""\'""\'::timestamp"{}"null")}])))))SQL(type=VoidresultColumns=[]sql=ALTERSESSIONSETQUERY_TAG=\'{"executionTraceID":"${execID}","engineUser":"${userId}","referer":"${referer}"}\';connection=RelationalDatabaseConnection(type="Snowflake"))Allocation(type=Stringname=inFilterClause_idsvalue=(FreeMarkerConditionalExecutionNode(type=Stringcondition=${(instanceOf(ids,"Stream")||((collectionSize(ids![])?number)>16348))?c}trueBlock=(Sequence(type=String(CreateAndPopulateTempTable(type=VoidinputVarNames=[ids]tempTableName=LEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_idstempTableColumns=[(ColumnForStoringInCollection,INT)]connection=RelationalDatabaseConnection(type="Snowflake"))Constant(type=Stringvalues=[select"legend_temp_db.legend_temp_schema.temptableforin_ids_0".ColumnForStoringInCollectionasColumnForStoringInCollectionfromLEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_idsas"legend_temp_db.legend_temp_schema.temptableforin_ids_0"]))))falseBlock=(Constant(type=Stringvalues=[${renderCollection(ids![]","""""{}"null")}])))))SQL(type=VoidresultColumns=[]sql=ALTERSESSIONSETQUERY_TAG=\'{"executionTraceID":"${execID}","engineUser":"${userId}","referer":"${referer}"}\';connection=RelationalDatabaseConnection(type="Snowflake"))Relational(type=TDS[(TradeId,Integer,INT,"")]resultColumns=[("TradeId",INT)]sql=select"root".IDas"TradeId"fromtradeTableas"root"where("root".settlementDateTimein(${inFilterClause_dates})and"root".IDin(${inFilterClause_ids}))connection=RelationalDatabaseConnection(type="Snowflake")))finallyExecutionNodes=(SQL(type=VoidresultColumns=[]sql=ALTERSESSIONUNSETQUERY_TAG;connection=RelationalDatabaseConnection(type="Snowflake"))))', 'RelationalBlockExecutionNode(type=TDS[(TradeId,Integer,INT,"")](FunctionParametersValidationNode(functionParameters=[ids:Integer[*],dates:Date[*]])SQL(type=VoidresultColumns=[]sql=ALTERSESSIONSETQUERY_TAG=\'{"executionTraceID":"${execID}","engineUser":"${userId}","referer":"${referer}"}\';connection=RelationalDatabaseConnection(type="Snowflake"))Allocation(type=Stringname=inFilterClause_idsvalue=(FreeMarkerConditionalExecutionNode(type=Stringcondition=${(instanceOf(ids,"Stream")||((collectionSize(ids![])?number)>16348))?c}trueBlock=(Sequence(type=String(CreateAndPopulateTempTable(type=VoidinputVarNames=[ids]tempTableName=LEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_idstempTableColumns=[(ColumnForStoringInCollection,INT)]connection=RelationalDatabaseConnection(type="Snowflake"))Constant(type=Stringvalues=[select"legend_temp_db.legend_temp_schema.temptableforin_ids_0".ColumnForStoringInCollectionasColumnForStoringInCollectionfromLEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_idsas"legend_temp_db.legend_temp_schema.temptableforin_ids_0"]))))falseBlock=(Constant(type=Stringvalues=[${renderCollection(ids![]","""""{}"null")}])))))SQL(type=VoidresultColumns=[]sql=ALTERSESSIONSETQUERY_TAG=\'{"executionTraceID":"${execID}","engineUser":"${userId}","referer":"${referer}"}\';connection=RelationalDatabaseConnection(type="Snowflake"))Allocation(type=Stringname=inFilterClause_datesvalue=(FreeMarkerConditionalExecutionNode(type=Stringcondition=${(instanceOf(dates,"Stream")||((collectionSize(dates![])?number)>16348))?c}trueBlock=(Sequence(type=String(CreateAndPopulateTempTable(type=VoidinputVarNames=[dates]tempTableName=LEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_datestempTableColumns=[(ColumnForStoringInCollection,TIMESTAMP)]connection=RelationalDatabaseConnection(type="Snowflake"))Constant(type=Stringvalues=[select"legend_temp_db.legend_temp_schema.temptableforin_dates_0".ColumnForStoringInCollectionasColumnForStoringInCollectionfromLEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_datesas"legend_temp_db.legend_temp_schema.temptableforin_dates_0"]))))falseBlock=(Constant(type=Stringvalues=[${renderCollection(dates![]",""\'""\'::timestamp"{}"null")}])))))SQL(type=VoidresultColumns=[]sql=ALTERSESSIONSETQUERY_TAG=\'{"executionTraceID":"${execID}","engineUser":"${userId}","referer":"${referer}"}\';connection=RelationalDatabaseConnection(type="Snowflake"))Relational(type=TDS[(TradeId,Integer,INT,"")]resultColumns=[("TradeId",INT)]sql=select"root".IDas"TradeId"fromtradeTableas"root"where("root".settlementDateTimein(${inFilterClause_dates})and"root".IDin(${inFilterClause_ids}))connection=RelationalDatabaseConnection(type="Snowflake")))finallyExecutionNodes=(SQL(type=VoidresultColumns=[]sql=ALTERSESSIONUNSETQUERY_TAG;connection=RelationalDatabaseConnection(type="Snowflake"))))']; assert($expected->contains($res->planToStringWithoutFormatting(meta::relational::extension::relationalExtensions()))); @@ -98,7 +101,7 @@ function <> meta::pure::executionPlan::tests::snowflake::testExecutio function <> meta::pure::executionPlan::tests::snowflake::testExecutionPlanGenerationWithoutQueryTagsForSnowflake() : Boolean[1] { let res = executionPlan({ids:Integer[*], dates:Date[*]|Trade.all()->filter(t|$t.settlementDateTime->in($dates) && $t.id->in($ids))->project([x | $x.id], ['TradeId'])}, - simpleRelationalMapping, ^Runtime(connections=meta::pure::executionPlan::tests::snowflake::relationalConnectionForSnowflake(false)), meta::relational::extension::relationalExtensions()); + simpleRelationalMapping, ^Runtime(connectionStores=^ConnectionStore(element = relationalDB,connection=meta::pure::executionPlan::tests::snowflake::relationalConnectionForSnowflake(false))), meta::relational::extension::relationalExtensions()); let expected = ['RelationalBlockExecutionNode(type=TDS[(TradeId,Integer,INT,"")](FunctionParametersValidationNode(functionParameters=[ids:Integer[*],dates:Date[*]])Allocation(type=Stringname=inFilterClause_datesvalue=(FreeMarkerConditionalExecutionNode(type=Stringcondition=${(instanceOf(dates,"Stream")||((collectionSize(dates![])?number)>16348))?c}trueBlock=(Sequence(type=String(CreateAndPopulateTempTable(type=VoidinputVarNames=[dates]tempTableName=LEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_datestempTableColumns=[(ColumnForStoringInCollection,TIMESTAMP)]connection=RelationalDatabaseConnection(type="Snowflake"))Constant(type=Stringvalues=[select"legend_temp_db.legend_temp_schema.temptableforin_dates_0".ColumnForStoringInCollectionasColumnForStoringInCollectionfromLEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_datesas"legend_temp_db.legend_temp_schema.temptableforin_dates_0"]))))falseBlock=(Constant(type=Stringvalues=[${renderCollection(dates![]",""\'""\'::timestamp"{}"null")}])))))Allocation(type=Stringname=inFilterClause_idsvalue=(FreeMarkerConditionalExecutionNode(type=Stringcondition=${(instanceOf(ids,"Stream")||((collectionSize(ids![])?number)>16348))?c}trueBlock=(Sequence(type=String(CreateAndPopulateTempTable(type=VoidinputVarNames=[ids]tempTableName=LEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_idstempTableColumns=[(ColumnForStoringInCollection,INT)]connection=RelationalDatabaseConnection(type="Snowflake"))Constant(type=Stringvalues=[select"legend_temp_db.legend_temp_schema.temptableforin_ids_0".ColumnForStoringInCollectionasColumnForStoringInCollectionfromLEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_idsas"legend_temp_db.legend_temp_schema.temptableforin_ids_0"]))))falseBlock=(Constant(type=Stringvalues=[${renderCollection(ids![]","""""{}"null")}])))))Relational(type=TDS[(TradeId,Integer,INT,"")]resultColumns=[("TradeId",INT)]sql=select"root".IDas"TradeId"fromtradeTableas"root"where("root".settlementDateTimein(${inFilterClause_dates})and"root".IDin(${inFilterClause_ids}))connection=RelationalDatabaseConnection(type="Snowflake"))))', 'RelationalBlockExecutionNode(type=TDS[(TradeId,Integer,INT,"")](FunctionParametersValidationNode(functionParameters=[ids:Integer[*],dates:Date[*]])Allocation(type=Stringname=inFilterClause_idsvalue=(FreeMarkerConditionalExecutionNode(type=Stringcondition=${(instanceOf(ids,"Stream")||((collectionSize(ids![])?number)>16348))?c}trueBlock=(Sequence(type=String(CreateAndPopulateTempTable(type=VoidinputVarNames=[ids]tempTableName=LEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_idstempTableColumns=[(ColumnForStoringInCollection,INT)]connection=RelationalDatabaseConnection(type="Snowflake"))Constant(type=Stringvalues=[select"legend_temp_db.legend_temp_schema.temptableforin_ids_0".ColumnForStoringInCollectionasColumnForStoringInCollectionfromLEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_idsas"legend_temp_db.legend_temp_schema.temptableforin_ids_0"]))))falseBlock=(Constant(type=Stringvalues=[${renderCollection(ids![]","""""{}"null")}])))))Allocation(type=Stringname=inFilterClause_datesvalue=(FreeMarkerConditionalExecutionNode(type=Stringcondition=${(instanceOf(dates,"Stream")||((collectionSize(dates![])?number)>16348))?c}trueBlock=(Sequence(type=String(CreateAndPopulateTempTable(type=VoidinputVarNames=[dates]tempTableName=LEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_datestempTableColumns=[(ColumnForStoringInCollection,TIMESTAMP)]connection=RelationalDatabaseConnection(type="Snowflake"))Constant(type=Stringvalues=[select"legend_temp_db.legend_temp_schema.temptableforin_dates_0".ColumnForStoringInCollectionasColumnForStoringInCollectionfromLEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_datesas"legend_temp_db.legend_temp_schema.temptableforin_dates_0"]))))falseBlock=(Constant(type=Stringvalues=[${renderCollection(dates![]",""\'""\'::timestamp"{}"null")}])))))Relational(type=TDS[(TradeId,Integer,INT,"")]resultColumns=[("TradeId",INT)]sql=select"root".IDas"TradeId"fromtradeTableas"root"where("root".settlementDateTimein(${inFilterClause_dates})and"root".IDin(${inFilterClause_ids}))connection=RelationalDatabaseConnection(type="Snowflake"))))']; assert($expected->contains($res->planToStringWithoutFormatting(meta::relational::extension::relationalExtensions()))); @@ -108,12 +111,11 @@ function <> meta::pure::executionPlan::tests::snowflake::testExecutio function <> meta::pure::executionPlan::tests::snowflake::testRelationalDatabaseConnWithQueryTag():Boolean[1] { let conn = ^RelationalDatabaseConnection( - element = 'database', datasourceSpecification = ^SnowflakeDatasourceSpecification(region = 'us-east-1', warehouseName='ALLOY_DEV_WH',databaseName='ALLOY_INTEGRATION_TEST_DB1',accountName = 'sfceawseast1d01'), authenticationStrategy = ^SnowflakePublicAuthenticationStrategy(privateKeyVaultReference = 'privatekey', passPhraseVaultReference= 'passphrase', publicUserName = 'public'), type=DatabaseType.Snowflake ); - let generatedPlan = executionPlan({|Product.all()->project(p|$p.name, 'Name')}, simpleRelationalMapping, ^Runtime(connections = $conn), meta::relational::extension::relationalExtensions()); + let generatedPlan = executionPlan({|Product.all()->project(p|$p.name, 'Name')}, simpleRelationalMapping, ^Runtime(connectionStores=^ConnectionStore(element = 'database',connection=$conn)), meta::relational::extension::relationalExtensions()); let expectedPlan = 'RelationalBlockExecutionNode(type=TDS[(Name,String,VARCHAR(200),"")](SQL(type=VoidresultColumns=[]sql=ALTERSESSIONSETQUERY_TAG=\'{"executionTraceID":"${execID}","engineUser":"${userId}","referer":"${referer}"}\';connection=RelationalDatabaseConnection(type="Snowflake"))Relational(type=TDS[(Name,String,VARCHAR(200),"")]resultColumns=[("Name",VARCHAR(200))]sql=select"root".NAMEas"Name"fromproductSchema.productTableas"root"connection=RelationalDatabaseConnection(type="Snowflake")))finallyExecutionNodes=(SQL(type=VoidresultColumns=[]sql=ALTERSESSIONUNSETQUERY_TAG;connection=RelationalDatabaseConnection(type="Snowflake"))))'; assertEquals($expectedPlan, $generatedPlan->planToStringWithoutFormatting(meta::relational::extension::relationalExtensions())); } @@ -121,12 +123,11 @@ function <> meta::pure::executionPlan::tests::snowflake::testRelation function <> meta::pure::executionPlan::tests::snowflake::testRelationalDatabaseConnDisableQueryTag():Boolean[1] { let conn = ^RelationalDatabaseConnection( - element = 'database', datasourceSpecification = ^SnowflakeDatasourceSpecification(region = 'us-east-1', warehouseName='DEMO_WH',databaseName='SNOWFLAKE_SAMPLE_DATA',accountName = 'sfceawseast1d01', enableQueryTags = false), authenticationStrategy = ^SnowflakePublicAuthenticationStrategy(privateKeyVaultReference = 'privatekey', passPhraseVaultReference= 'passphrase', publicUserName = 'public'), type=DatabaseType.Snowflake ); - let generatedPlan = executionPlan({|Product.all()->project(p|$p.name, 'Name')}, simpleRelationalMapping, ^Runtime(connections = $conn), meta::relational::extension::relationalExtensions()); + let generatedPlan = executionPlan({|Product.all()->project(p|$p.name, 'Name')}, simpleRelationalMapping, ^Runtime(connectionStores=^ConnectionStore(element = 'database',connection=$conn)), meta::relational::extension::relationalExtensions()); let expectedPlan = 'Relational(type=TDS[(Name,String,VARCHAR(200),"")]resultColumns=[("Name",VARCHAR(200))]sql=select"root".NAMEas"Name"fromproductSchema.productTableas"root"connection=RelationalDatabaseConnection(type="Snowflake"))'; assertEquals($expectedPlan, $generatedPlan->planToStringWithoutFormatting(meta::relational::extension::relationalExtensions())); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/sqlQueryToString/snowflakeExtension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/sqlQueryToString/snowflakeExtension.pure index 64521fa063d..f8080beafdc 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/sqlQueryToString/snowflakeExtension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/sqlQueryToString/snowflakeExtension.pure @@ -1,11 +1,13 @@ import meta::relational::metamodel::join::*; import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::relational::functions::sqlQueryToString::snowflake::*; import meta::relational::functions::sqlQueryToString::default::*; import meta::relational::functions::sqlQueryToString::*; import meta::relational::metamodel::operation::*; import meta::relational::metamodel::relation::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::extension::*; import meta::relational::extension::*; @@ -153,7 +155,7 @@ function <> meta::relational::functions::sqlQueryToString::snowf dynaFnToSql('stdDevSample', $allStates, ^ToSql(format='stddev_samp(%s)')), dynaFnToSql('today', $allStates, ^ToSql(format='current_date')), dynaFnToSql('toDecimal', $allStates, ^ToSql(format='to_decimal(%s)')), - dynaFnToSql('toFloat', $allStates, ^ToSql(format='to_double(%s)')), + dynaFnToSql('toFloat', $allStates, ^ToSql(format='to_double(%s)')), dynaFnToSql('toString', $allStates, ^ToSql(format='cast(%s as varchar)')), dynaFnToSql('toTimestamp', $allStates, ^ToSql(format='%s' , transform={p:String[2] | $p->transformToTimestampSnowflake()})), dynaFnToSql('weekOfYear', $allStates, ^ToSql(format='WEEKOFYEAR(%s)')), @@ -168,14 +170,14 @@ function <> meta::relational::functions::sqlQueryToString::snowf let returnType = $params->at(2); // https://docs.snowflake.com/en/sql-reference/functions/get_path - let elementAccess = format('get_path(%s, \'%s\')', [$baseRelationalOp, $pathNavigation]); + let elementAccess = format('get_path(%s, \'%s\')', [$baseRelationalOp, $pathNavigation]); if ($returnType->in(['CHAR', 'VARCHAR', 'STRING']), | 'to_varchar(' + $elementAccess + ')', | if ($returnType->in(['DATETIME', 'TIMESTAMP']), | 'to_timestamp(' + $elementAccess + ')', | - if ($returnType == 'DATE', | 'to_date(' + $elementAccess + ')', | + if ($returnType == 'DATE', | 'to_date(' + $elementAccess + ')', | if ($returnType == 'BOOLEAN', | 'to_boolean(' + $elementAccess + ')', | if ($returnType == 'FLOAT', | 'to_double(' + $elementAccess + ')', | - if ($returnType == 'INTEGER', | 'to_number(' + $elementAccess + ')', | + if ($returnType == 'INTEGER', | 'to_number(' + $elementAccess + ')', | $elementAccess)))))); } @@ -200,9 +202,9 @@ function <> meta::relational::functions::sqlQueryToString::snowf function <> meta::relational::functions::sqlQueryToString::snowflake::transformToTimestampSnowflake(params:String[2]):String[1] { - //Standardizing the format as per Postgres specification, will include mappings for the formats in future. + //Standardizing the format as per Postgres specification, will include mappings for the formats in future. assert($params->at(1)->replace('\'', '') == 'YYYY-MM-DD HH24:MI:SS', | $params->at(1) +' not supported '); - let timestampFormat = $params->at(1); + let timestampFormat = $params->at(1); 'to_timestamp('+$params->at(0)+','+$timestampFormat+')'; } @@ -241,7 +243,7 @@ function <> meta::relational::functions::sqlQueryToString::snowf o:SemiStructuredObjectNavigation[1] | $o->processSemiStructuredObjectNavigationForSnowflake($sgc), a:SemiStructuredArrayFlatten[1] | $a->processSemiStructuredArrayFlattenForSnowflake($sgc), a:SemiStructuredArrayFlattenOutput[1] | $a->processSemiStructuredArrayFlattenOutputForSnowflake($sgc) - ]) + ]) } function <> meta::relational::functions::sqlQueryToString::snowflake::processSemiStructuredObjectNavigationForSnowflake(s:SemiStructuredObjectNavigation[1], sgc:SqlGenerationContext[1]): String[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/sqlQueryToString/snowflakeTestSuiteInvoker.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/sqlQueryToString/snowflakeTestSuiteInvoker.pure index 1a11fc2d38a..d868d414531 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/sqlQueryToString/snowflakeTestSuiteInvoker.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/sqlQueryToString/snowflakeTestSuiteInvoker.pure @@ -13,17 +13,18 @@ // limitations under the License. import meta::pure::test::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::dbTestRunner::*; function <> meta::relational::tests::sqlQueryToString::snowflake::testSuiteInvoker(): PureTestCollection[1] { let connection = getTestConnection(DatabaseType.Snowflake, meta::relational::extension::relationalExtensions()); - + // If a feature described in extension APIs / test suite is not supported, // then throw an exception with message that starts with '[unsupported-api]' // Tests which raise such exception will be reported as ignored by the runner - + meta::relational::tests::dbSpecificTests->collectParameterizedTests('Snowflake', ^DbTestConfig(dbType=DatabaseType.Snowflake, connection=$connection), meta::relational::tests::sqlQueryToString::snowflake::testParamCustomizations_FunctionDefinition_1__DbTestConfig_1__DbTestConfig_1_, diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakePaginated.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakePaginated.pure index c0ead4eb37d..5e753078992 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakePaginated.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakePaginated.pure @@ -16,31 +16,33 @@ import meta::relational::tests::query::paginate::helper::*; import meta::json::*; import meta::pure::mapping::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::pure::graphFetch::execution::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::relational::functions::sqlstring::*; function <> meta::relational::tests::query::snowflake::testPaginatedByVendor():Boolean[1] -{ +{ // First type of function - simple query let f1 = {|Person.all()->sortBy(#/Person/firstName!fn#)->paginated(1,4);}; let snowflake1 = toSQLString($f1, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.Snowflake, meta::relational::extension::relationalExtensions()); assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName", "root".FIRSTNAME as "o_fn" from personTable as "root" order by "root".FIRSTNAME limit ${4?number} offset ${((1?number - 1?number)?number * 4?number)}', $snowflake1); - + // Second type of function - tds sort - + let f2 = {|Person.all()->project(p|$p.firstName, 'firstName')->sort(asc('firstName'))->paginated(3, 5);}; let snowflake2 = toSQLString($f2, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.Snowflake, meta::relational::extension::relationalExtensions()); assertEquals('select "root".FIRSTNAME as "firstName" from personTable as "root" order by "firstName" limit ${5?number} offset ${((3?number - 1?number)?number * 5?number)}', $snowflake2); - + // Third type of function - subQuery - + let f3 = {|Person.all()->project([col(p|$p.firstName, 'firstName'), col(p|$p.lastName, 'lastName')])->slice(0,50)->restrict('firstName')->sort(asc('firstName'))->paginated(2, 3);}; let snowflake3 = toSQLString($f3, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.Snowflake, meta::relational::extension::relationalExtensions()); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakePostProcessor.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakePostProcessor.pure index 54ce3f66fb6..4315af1684c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakePostProcessor.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakePostProcessor.pure @@ -17,7 +17,9 @@ import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::metamodel::relation::*; import meta::relational::metamodel::*; import meta::relational::tests::postProcessor::*; @@ -33,7 +35,7 @@ function <> meta::relational::tests::postProcessor::snowflak function <> meta::relational::tests::postProcessor::snowflake::testSnowflakeColumnRename():Boolean[1] { - let runtime = ^meta::pure::runtime::Runtime(connections = ^TestDatabaseConnection(element = meta::relational::tests::mapping::union::myDB, type = DatabaseType.Snowflake)); + let runtime = ^meta::core::runtime::Runtime(connectionStores = ^meta::core::runtime::ConnectionStore(element = meta::relational::tests::mapping::union::myDB, connection=^TestDatabaseConnection(type = DatabaseType.Snowflake))); let result = meta::relational::functions::sqlstring::toSQL(|Person.all()->project([p|$p.lastName], ['name']), meta::relational::tests::mapping::union::unionMappingWithLongPropertyMapping, $runtime, meta::relational::extension::relationalExtensions()).sqlQueries->at(0)->cast(@SelectSQLQuery)->meta::relational::postProcessor::reAliasColumnName::trimColumnName($runtime).values->meta::relational::functions::sqlQueryToString::sqlQueryToString(DatabaseType.Snowflake, '', [], meta::relational::extension::relationalExtensions()); assertEquals('select "unionBase"."concat_thisStringIsThisLongMakeTheGeneratedAliasExplodePastTheDb2limitOf128Characters_concat_ForTestPurposesOnly_PersonSet1lastName_s1_concat_thisStringIsThisLongMakeTheGeneratedAliasExplodePastTheDb2limitOf128Characters____6ce98e09e89aabde27805_0" as "name" from (select "root".ID as "pk_0_0", null as "pk_0_1", concat(\'thisStringIsThisLongMakeTheGeneratedAliasExplodePastTheDb2limitOf128Characters\', concat(\'ForTestPurposesOnly\', "root".lastName_s1)) as "concat_thisStringIsThisLongMakeTheGeneratedAliasExplodePastTheDb2limitOf128Characters_concat_ForTestPurposesOnly_PersonSet1lastName_s1_concat_thisStringIsThisLongMakeTheGeneratedAliasExplodePastTheDb2limitOf128Characters____6ce98e09e89aabde27805_0" from PersonSet1 as "root" UNION ALL select null as "pk_0_0", "root".ID as "pk_0_1", concat(\'thisStringIsThisLongMakeTheGeneratedAliasExplodePastTheDb2limitOf128Characters\', concat(\'ForTestPurposesOnly\', "root".lastName_s2)) as "concat_thisStringIsThisLongMakeTheGeneratedAliasExplodePastTheDb2limitOf128Characters_concat_ForTestPurposesOnly_PersonSet1lastName_s1_concat_thisStringIsThisLongMakeTheGeneratedAliasExplodePastTheDb2limitOf128Characters____6ce98e09e89aabde27805_0" from PersonSet2 as "root") as "unionBase"',$result); } @@ -41,14 +43,15 @@ function <> meta::relational::tests::postProcessor::snowflake::testSn function <> meta::relational::tests::postProcessor::snowflake::testPostProcessingOfGroupByAndHavingOp():Boolean[1] { let runtime = testRuntime(); - let conn = $runtime.connections->at(0)->cast(@TestDatabaseConnection); + let connectionStore = $runtime.connectionStores->at(0); + let conn = $connectionStore.connection->cast(@TestDatabaseConnection); let postProcessFunction = {rel: RelationalOperationElement[1] | $rel->match([ t: TableAliasColumn[1] | if($t.column.type->instanceOf(meta::relational::metamodel::datatype::Varchar), | ^DynaFunction(name = 'toUpper', parameters = ^$t(column = $t.column->map(c | ^$c(type = ^meta::relational::metamodel::datatype::DataType())))), | $t), r: RelationalOperationElement[1] | $r ]) }; - let runtimeWithPostProcessor = ^$runtime(connections = ^$conn(sqlQueryPostProcessors= [{query:meta::relational::metamodel::relation::SelectSQLQuery[1] | $query->meta::relational::postProcessor::postprocess($postProcessFunction)}])); + let runtimeWithPostProcessor = ^$runtime(connectionStores = ^$connectionStore(connection=^$conn(sqlQueryPostProcessors= [{query:meta::relational::metamodel::relation::SelectSQLQuery[1] | $query->meta::relational::postProcessor::postprocess($postProcessFunction)}]))); let result = meta::relational::functions::sqlstring::toSQL( {|Trade.all()->groupBy([x|$x.product.name], [agg(x|$x.quantity, y|$y->sum())], ['ProductName', 'QuantitySum'])->filter(r | $r.getString('ProductName')->in(['ABC', 'DEF']))->sort(['ProductName'])}, @@ -63,14 +66,15 @@ function <> meta::relational::tests::postProcessor::snowflake::testPo function <> meta::relational::tests::postProcessor::snowflake::testPostProcessingOfGroupByAndHavingOpCachedTransform():Boolean[1] { let runtime = testRuntime(); - let conn = $runtime.connections->at(0)->cast(@TestDatabaseConnection); + let connectionStore = $runtime.connectionStores->at(0); + let conn = $connectionStore.connection->cast(@TestDatabaseConnection); let postProcessFunction = {rel: RelationalOperationElement[1] | $rel->match([ t: TableAliasColumn[1] | if($t.column.type->instanceOf(meta::relational::metamodel::datatype::Varchar), | ^DynaFunction(name = 'toUpper', parameters = ^$t(column = $t.column->map(c | ^$c(type = ^meta::relational::metamodel::datatype::DataType())))), | $t), r: RelationalOperationElement[1] | $r ]) }; - let runtimeWithPostProcessor = ^$runtime(connections = ^$conn(sqlQueryPostProcessors= [{query:meta::relational::metamodel::relation::SelectSQLQuery[1] | ^meta::pure::mapping::Result(values=$query->transform($postProcessFunction)->cast(@SelectSQLQuery))}])); + let runtimeWithPostProcessor = ^$runtime(connectionStores = ^$connectionStore(connection=^$conn(sqlQueryPostProcessors= [{query:meta::relational::metamodel::relation::SelectSQLQuery[1] | ^meta::pure::mapping::Result(values=$query->transform($postProcessFunction)->cast(@SelectSQLQuery))}]))); let result = meta::relational::functions::sqlstring::toSQL( {|Trade.all()->groupBy([x|$x.product.name], [agg(x|$x.quantity, y|$y->sum())], ['ProductName', 'QuantitySum'])->filter(r | $r.getString('ProductName')->in(['ABC', 'DEF']))->sort(['ProductName'])}, diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeProjectWithWindowColumns.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeProjectWithWindowColumns.pure index ba0bd39e054..16446613bca 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeProjectWithWindowColumns.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeProjectWithWindowColumns.pure @@ -16,9 +16,11 @@ import meta::relational::tests::mapping::distinct::model::mapping::*; import meta::relational::tests::mapping::distinct::model::domain::*; import meta::pure::functions::math::olap::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::functions::sqlstring::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::projection::snowflake::testProjectWindowColumnSnowflake():Boolean[1] { @@ -31,4 +33,4 @@ function <> meta::relational::tests::projection::snowflake::testProje }; let result = toSQLString($func, simpleRelationalMappingInc, DatabaseType.Snowflake, meta::relational::extension::relationalExtensions()); assertEquals('select "root".LASTNAME as "lastName", avg(1.0 * "root".AGE) OVER (Partition By "root".FIRSTNAME Order By "root".LASTNAME ASC) as "ageAverageWindow" from personTable as "root"', $result); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeSliceTakeLimitDrop.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeSliceTakeLimitDrop.pure index 414f12c18ab..a4eb5523bb0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeSliceTakeLimitDrop.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeSliceTakeLimitDrop.pure @@ -15,11 +15,12 @@ import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::relational::functions::sqlstring::*; function <> meta::relational::tests::query::snowflake::testSliceByVendor():Boolean[1] -{ +{ let f1 = {|Person.all()->slice(3, 5);}; let f2 = {|Person.all()->project(p|$p.firstName, 'firstName')->sort(asc('firstName'))->slice(3, 5);}; @@ -28,17 +29,17 @@ function <> meta::relational::tests::query::snowflake::testSliceByVen let f4 = {|Person.all()->project([col(p|$p.firstName, 'firstName'), col(p|$p.lastName, 'lastName')])->sort(asc('firstName'))->slice(0,50)->restrict('firstName');}; - // Snowflake - + // Snowflake + let snowflake1 = toSQLString($f1, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.Snowflake, meta::relational::extension::relationalExtensions()); assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" limit 2 offset 3', $snowflake1); - + let snowflake2 = toSQLString($f2, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.Snowflake, meta::relational::extension::relationalExtensions()); assertEquals('select "root".FIRSTNAME as "firstName" from personTable as "root" order by "firstName" limit 2 offset 3', $snowflake2); - + let snowflake3 = toSQLString($f3, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.Snowflake, meta::relational::extension::relationalExtensions()); assertEquals('select "firstName" as "firstName" from (select "root".FIRSTNAME as "firstName", "root".LASTNAME as "lastName" from personTable as "root" limit 50) as "subselect" order by "firstName" limit 2 offset 3', $snowflake3); - + let snowflake4 = toSQLString($f4, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.Snowflake, meta::relational::extension::relationalExtensions()); assertEquals('select "firstName" as "firstName" from (select "root".FIRSTNAME as "firstName", "root".LASTNAME as "lastName" from personTable as "root" order by "firstName" limit 50) as "subselect"', $snowflake4); } @@ -50,13 +51,13 @@ function <> meta::relational::tests::query::snowflake::testLimitByVen } function <> meta::relational::tests::query::snowflake::testTakeByVendor():Boolean[1] -{ +{ let s6 = toSQLString(|Person.all()->take(10);, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.Snowflake, meta::relational::extension::relationalExtensions()); assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" limit 10', $s6); } function <> meta::relational::tests::query::snowflake::testDropByVendor():Boolean[1] -{ +{ let s2 = toSQLString(|Person.all()->drop(10);, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.Snowflake, meta::relational::extension::relationalExtensions()); assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" limit \'\' offset 10', $s2); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeSqlFunctionsInMapping.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeSqlFunctionsInMapping.pure index bf9085655d1..fd1f5bce83e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeSqlFunctionsInMapping.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeSqlFunctionsInMapping.pure @@ -28,9 +28,12 @@ import meta::relational::metamodel::execute::*; import meta::relational::functions::toDDL::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::authentication::*; function <> meta::relational::tests::mapping::function::snowflake::setUp():Boolean[1] @@ -50,7 +53,7 @@ function <> meta::relational::tests::mapping::function::snowflake::te let result = execute(|SqlFunctionDemo.all()->project([s | $s.concatResult], ['concat']), testMapping, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); assertEquals(['Joe Bloggs ', 'MrsSmith'], $result.values->at(0).rows.values); assertEquals('select concat("root".string1, "root".string2) as "concat" from dataTable as "root"',$result->sqlRemoveFormatting()); - + let snowflakeSql = toSQLString(|SqlFunctionDemo.all()->project([s | $s.concatResult], ['concat']), testMapping, meta::relational::runtime::DatabaseType.Snowflake, meta::relational::extension::relationalExtensions()); @@ -78,7 +81,7 @@ function <> meta::relational::tests::mapping::function::snowflake::te let result = execute(|SqlFunctionDemo.all()->filter(s | $s.concatResult == 'Joe Bloggs ')->project([s | $s.concatResult], ['concat']), testMapping, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); assertEquals(['Joe Bloggs '], $result.values->at(0).rows.values); assertEquals('select concat("root".string1, "root".string2) as "concat" from dataTable as "root" where concat("root".string1, "root".string2) = \'Joe Bloggs \'',$result->sqlRemoveFormatting()); - + let snowflakeSql = toSQLString(|SqlFunctionDemo.all()->filter(s | $s.concatResult == 'Joe Bloggs ')->project([s | $s.concatResult], ['concat']), testMapping, meta::relational::runtime::DatabaseType.Snowflake, meta::relational::extension::relationalExtensions()); @@ -112,10 +115,10 @@ function <> meta::relational::tests::mapping::function::snowflake::te { let da = %2013-03-01T19:09:20; let db = %2017-03-01T20:08:08; - - let test = toSQLString(|SqlFunctionDemo.all()->project([s|dateDiff($da, $db, DurationUnit.YEARS), - s|dateDiff($da, $db, DurationUnit.MONTHS), - s|dateDiff($da, $db, DurationUnit.WEEKS), + + let test = toSQLString(|SqlFunctionDemo.all()->project([s|dateDiff($da, $db, DurationUnit.YEARS), + s|dateDiff($da, $db, DurationUnit.MONTHS), + s|dateDiff($da, $db, DurationUnit.WEEKS), s|dateDiff($da, $db, DurationUnit.DAYS), s|dateDiff($da, $db, DurationUnit.HOURS), s|dateDiff($da, $db, DurationUnit.MINUTES), diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeTDSWindowColumn.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeTDSWindowColumn.pure index bcd1be4caaa..0165dccf4b4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeTDSWindowColumn.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeTDSWindowColumn.pure @@ -14,7 +14,9 @@ import meta::relational::functions::sqlstring::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::functions::math::olap::*; import meta::relational::tests::model::simple::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeTempTableSqlStatements.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeTempTableSqlStatements.pure index 2fbe61fdf40..013d9651c26 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeTempTableSqlStatements.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeTempTableSqlStatements.pure @@ -17,6 +17,7 @@ import meta::relational::functions::pureToSqlQuery::metamodel::*; import meta::relational::functions::sqlQueryToString::*; import meta::relational::metamodel::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::metamodel::relation::*; function <> meta::relational::tests::sqlToString::snowflake::testTempTableSqlStatementsForSnowflake(): Boolean[*] @@ -30,5 +31,5 @@ function <> meta::relational::tests::sqlToString::snowflake::testTemp 'DROP STAGE LEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.LEGEND_TEMP_STAGE', 'Drop table if exists LEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.temp_table_test;' ]; - meta::relational::functions::sqlQueryToString::tests::compareSqls($actualSqls, $expectedSqls); + meta::relational::functions::sqlQueryToString::tests::compareSqls($actualSqls, $expectedSqls); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeWithFunction.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeWithFunction.pure index 1378b3f1765..e4d20b8279f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeWithFunction.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeWithFunction.pure @@ -15,8 +15,10 @@ import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::relational::functions::sqlstring::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/transform/fromPure/tests/testSnowflakeToSQLString.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/transform/fromPure/tests/testSnowflakeToSQLString.pure index c34a1e3bda4..f0816fb25d3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/transform/fromPure/tests/testSnowflakeToSQLString.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/transform/fromPure/tests/testSnowflakeToSQLString.pure @@ -17,27 +17,29 @@ import meta::pure::mapping::*; import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::pure::profiles::*; import meta::relational::functions::sqlstring::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; function <> meta::relational::tests::sqlToString::snowflake::testToSQLStringWithAggregationSnowflake():Boolean[1] { - let s = toSQLString(|Person.all()->groupBy([p:Person[1]|$p.firstName], + let s = toSQLString(|Person.all()->groupBy([p:Person[1]|$p.firstName], agg(e|$e.age, y|$y->sum()), - ['firstName', 'age']), - meta::relational::tests::simpleRelationalMapping, + ['firstName', 'age']), + meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.Snowflake, meta::relational::extension::relationalExtensions()); assertEquals('select "root".FIRSTNAME as "firstName", sum("root".AGE) as "age" from personTable as "root" group by "firstName"', $s); } function <> meta::relational::tests::sqlToString::snowflake::testToSQLStringWithOrderbySnowflake():Boolean[1] { - let s = toSQLString(|Person.all()->groupBy([p:Person[1]|$p.firstName], + let s = toSQLString(|Person.all()->groupBy([p:Person[1]|$p.firstName], agg(e|$e.age, y|$y->sum()), - ['firstName', 'age'])->sort(asc('age'))->limit(5), - meta::relational::tests::simpleRelationalMapping, + ['firstName', 'age'])->sort(asc('age'))->limit(5), + meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.Snowflake, meta::relational::extension::relationalExtensions()); assertEquals('select "root".FIRSTNAME as "firstName", sum("root".AGE) as "age" from personTable as "root" group by "firstName" order by "age" limit 5', $s); } @@ -47,14 +49,14 @@ function <> meta::relational::tests::sqlToString::snowflake::testToSq let expected = [ pair(DatabaseType.Snowflake, 'select CHARINDEX(\'Jo\', "root".FIRSTNAME) as "index" from personTable as "root"') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |meta::relational::tests::model::simple::Person.all()->project(p|$p.firstName->indexOf('Jo'), 'index'), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); @@ -66,15 +68,15 @@ function <> meta::relational::tests::sqlToString::snowflake::testDayO let expected = [ pair(DatabaseType.Snowflake, 'select DAYOFYEAR("root".tradeDate) as "doy" from tradeTable as "root"') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all() ->project(col(t|$t.date->dayOfYear(), 'doy')), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); @@ -114,11 +116,11 @@ function <> meta::relational::tests::sqlToString::snowflake::testTrim let expected = [ pair(DatabaseType.Snowflake, $common) ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Person.all()->project([ a | $a.firstName->ltrim(), @@ -126,7 +128,7 @@ function <> meta::relational::tests::sqlToString::snowflake::testTrim a | $a.firstName->rtrim() ], ['ltrim', 'trim', 'rtrim']), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); @@ -140,17 +142,17 @@ function <> meta::relational::tests::sqlToString::snowflake::testCbrt let expected = [ pair(DatabaseType.Snowflake, $common) ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all()->project([ a | $a.quantity->cbrt() ], ['cbrt']), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); @@ -159,27 +161,27 @@ function <> meta::relational::tests::sqlToString::snowflake::testCbrt function <> meta::relational::tests::sqlToString::snowflake::testToSQLStringWithQuoteIdentifiersFlag():Boolean[1] { - let runtime = ^meta::pure::runtime::Runtime(connections = ^TestDatabaseConnection(element = meta::relational::tests::db, + let runtime = ^meta::core::runtime::Runtime(connectionStores = ^meta::core::runtime::ConnectionStore(element = meta::relational::tests::db,connection=^TestDatabaseConnection( type = DatabaseType.Snowflake, quoteIdentifiers = true - )); + ))); let result = toSQLStringPretty(|Synonym.all()->filter(s | $s.type != 'ISIN')->project([s | $s.name],['name']), simpleRelationalMappingWithEnumConstant, $runtime, meta::relational::extension::relationalExtensions()); - + assertEquals('select "root"."NAME" as "name" from "productSchema"."synonymTable" as "root" where (\'CUSIP\' <> \'ISIN\')', $result->replace('\n', '')); } function <> meta::relational::tests::sqlToString::snowflake::testToSQLStringWithQuoteIdentifiersFlagInColumnName():Boolean[1] { - let runtime = ^meta::pure::runtime::Runtime(connections = ^TestDatabaseConnection(element = meta::relational::tests::db, + let runtime = ^meta::core::runtime::Runtime(connectionStores = ^meta::core::runtime::ConnectionStore(element = meta::relational::tests::db, connection=^TestDatabaseConnection( type = DatabaseType.Snowflake, quoteIdentifiers = true - )); + ))); let result = toSQLStringPretty(|Product.all()->project([#/Product/name!prodName#])->sort(asc('prodName'))->drop(2)->limit(5), simpleRelationalMapping, $runtime, meta::relational::extension::relationalExtensions()); - + assertEquals('select "prodName" as "prodName" from ( select "root"."NAME" as "prodName" from "productSchema"."productTable" as "root" order by "prodName" limit \'\' offset 2) as "subselect" limit 5', $result->replace('\n', '')); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner.definition.json b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner.definition.json index a718b5120e7..843a701e09e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner.definition.json +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner.definition.json @@ -1,6 +1,6 @@ { "name": "core_relational_spanner", - "pattern": "(meta::relational::functions::sqlQueryToString::spanner|meta::relational::tests::sqlQueryToString::spanner|meta::pure::alloy::connections|meta::protocols::pure)(::.*)?", + "pattern": "(meta::relational::functions::sqlQueryToString::spanner|meta::relational::tests::sqlQueryToString::spanner|meta::pure::alloy::connections|meta::external::store::relational::runtime|meta::protocols::pure)(::.*)?", "dependencies": [ "platform", "platform_functions", @@ -9,4 +9,4 @@ "core", "core_relational" ] -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner/relational/sqlQueryToString/spannerExtension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner/relational/sqlQueryToString/spannerExtension.pure index 88c393062b3..83a9dee3f67 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner/relational/sqlQueryToString/spannerExtension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner/relational/sqlQueryToString/spannerExtension.pure @@ -18,6 +18,7 @@ import meta::relational::functions::sqlQueryToString::*; import meta::relational::metamodel::operation::*; import meta::relational::metamodel::relation::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::extension::*; import meta::relational::extension::*; @@ -81,7 +82,7 @@ function <> meta::relational::functions::sqlQueryToString::spann dynaFnToSql('ceiling', $allStates, ^ToSql(format='ceiling(%s)')), dynaFnToSql('coalesce', $allStates, ^ToSql(format='coalesce%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), dynaFnToSql('contains', $allStates, ^ToSql(format=likePattern('%%%s%%'), transform={p:String[2]|$p->transformLikeParamsDefault()})), - dynaFnToSql('cos', $allStates, ^ToSql(format='cos(%s)')), + dynaFnToSql('cos', $allStates, ^ToSql(format='cos(%s)')), dynaFnToSql('count', $allStates, ^ToSql(format='count(%s)', transform={p:String[*]|if($p->isEmpty(),|'*',|$p)})), dynaFnToSql('datePart', $allStates, ^ToSql(format='date(%s)')), // dynaFnToSql('dateDiff', $allStates, ^ToSql(format='%s', transform={p:String[*]|generateDateDiffExpressionForSpanner($p)})), @@ -276,4 +277,4 @@ function meta::relational::functions::sqlQueryToString::spanner::loadValuesToDbT + $row.values->meta::relational::functions::database::testDataSQLgeneration::convertValuesToCsv($loadTableSQL.columnsToLoad.type) + ');'; ); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner/relational/sqlQueryToString/spannerTestSuiteInvoker.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner/relational/sqlQueryToString/spannerTestSuiteInvoker.pure index 4102d205604..70758aa9c84 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner/relational/sqlQueryToString/spannerTestSuiteInvoker.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner/relational/sqlQueryToString/spannerTestSuiteInvoker.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::test::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::dbTestRunner::*; @@ -23,7 +24,7 @@ function <> meta::relational::tests::sqlQueryToString::span // If a feature described in extension APIs / test suite is not supported, // then throw an exception with message that starts with '[unsupported-api]' // Tests which raise such exception will be reported as ignored by the runner - + meta::relational::tests::dbSpecificTests->collectParameterizedTests('Spanner', ^DbTestConfig(dbType=DatabaseType.Spanner, connection=$connection), meta::relational::tests::sqlQueryToString::spanner::testParamCustomizations_FunctionDefinition_1__DbTestConfig_1__DbTestConfig_1_, diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/src/main/resources/core_relational_sparksql/relational/executionPlan/tests/executionPlanTestSparkSQL.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/src/main/resources/core_relational_sparksql/relational/executionPlan/tests/executionPlanTestSparkSQL.pure index 5a3121306e1..5608b16b1ae 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/src/main/resources/core_relational_sparksql/relational/executionPlan/tests/executionPlanTestSparkSQL.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/src/main/resources/core_relational_sparksql/relational/executionPlan/tests/executionPlanTestSparkSQL.pure @@ -15,6 +15,7 @@ import meta::pure::alloy::connections::alloy::authentication::*; import meta::pure::alloy::connections::alloy::specification::*; import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::pure::mapping::modelToModel::test::createInstances::*; import meta::relational::postProcessor::*; import meta::pure::extension::*; @@ -41,14 +42,15 @@ import meta::pure::executionPlan::*; import meta::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::pure::mapping::modelToModel::test::shared::src::*; import meta::pure::graphFetch::executionPlan::*; import meta::pure::graphFetch::routing::*; import meta::pure::functions::collection::*; import meta::pure::executionPlan::tests::SparkSQL::*; -function <> meta::pure::executionPlan::tests::sparkSQL::testFilterEqualsWithOptionalParameter_SparkSQL():Boolean[1] -{ +function <> meta::pure::executionPlan::tests::sparkSQL::testFilterEqualsWithOptionalParameter_SparkSQL():Boolean[1] +{ let expectedPlan ='Sequence\n'+ '(\n'+ ' type = TDS[(Time, Integer, INT, "")]\n'+ @@ -66,11 +68,11 @@ function <> meta::pure::executionPlan::tests::sparkSQL::testFilterEqu ' )\n'+ ' )\n'+ ')\n'; - assertPlanGenerationForOptionalParameter(DatabaseType.SparkSQL, $expectedPlan); + assertPlanGenerationForOptionalParameter(DatabaseType.SparkSQL, $expectedPlan); } function <> meta::pure::executionPlan::tests::sparkSQL::testGreaterThanLessThanEqualsWithOptionalParameter_SparkSQL():Boolean[1] -{ +{ let func = {optionalAgeLowerLimit: Integer[0..1], optionalAgeHigherLimit: Integer[0..1]|Person.all()->filter(p|$p.age>$optionalAgeLowerLimit && ($p.age<=$optionalAgeHigherLimit))->project(col(a|$a.firstName, 'firstName'))}; let expectedPlan ='Sequence\n'+ '(\n'+ @@ -90,4 +92,4 @@ function <> meta::pure::executionPlan::tests::sparkSQL::testGreaterTh ' )\n'+ ')\n'; assertPlanGenerationForOptionalParameterWithGreaterThanLessThan($func, DatabaseType.SparkSQL, $expectedPlan); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/src/main/resources/core_relational_sqlserver/relational/sqlQueryToString/customSqlServerTests.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/src/main/resources/core_relational_sqlserver/relational/sqlQueryToString/customSqlServerTests.pure index b36a32febc5..a30266d21d4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/src/main/resources/core_relational_sqlserver/relational/sqlQueryToString/customSqlServerTests.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/src/main/resources/core_relational_sqlserver/relational/sqlQueryToString/customSqlServerTests.pure @@ -14,6 +14,8 @@ import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::functions::asserts::*; import meta::relational::functions::sqlstring::*; @@ -129,7 +131,7 @@ function <> meta::relational::sqlServer::tests::testSortQuotesSqlServ assertEquals('select "root".FIRSTNAME as "name", "addressTable_d#3_1_d#3_m2".NAME as "address" from personTable as "root" left outer join addressTable as "addressTable_d#3_1_d#3_m2" on ("addressTable_d#3_1_d#3_m2".ID = "root".ADDRESSID) order by "name","address" desc', $query); } -function <> meta::relational::sqlServer::tests::testFilterEqualsWithOptionalParameter_SqlServer():Boolean[1] +function <> meta::relational::sqlServer::tests::testFilterEqualsWithOptionalParameter_SqlServer():Boolean[1] { let expectedPlan ='Sequence\n'+ '(\n'+ @@ -148,6 +150,6 @@ function <> meta::relational::sqlServer::tests::testFilterEqualsWithO ' )\n'+ ' )\n'+ ')\n'; - + assertPlanGenerationForOptionalParameter(DatabaseType.SqlServer, $expectedPlan); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/src/main/resources/core_relational_sqlserver/relational/sqlQueryToString/sqlServerExtension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/src/main/resources/core_relational_sqlserver/relational/sqlQueryToString/sqlServerExtension.pure index ab1ef8ab2a4..c49bb926c7d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/src/main/resources/core_relational_sqlserver/relational/sqlQueryToString/sqlServerExtension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/src/main/resources/core_relational_sqlserver/relational/sqlQueryToString/sqlServerExtension.pure @@ -18,6 +18,7 @@ import meta::relational::functions::sqlQueryToString::*; import meta::relational::metamodel::operation::*; import meta::relational::metamodel::relation::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::extension::*; @@ -86,10 +87,10 @@ function <> meta::relational::functions::sqlQueryToString::sqlSe dynaFnToSql('stdDevSample', $allStates, ^ToSql(format='stdev(%s)')), dynaFnToSql('today', $allStates, ^ToSql(format='cast(getdate() as date)')), dynaFnToSql('toDecimal', $allStates, ^ToSql(format='cast(%s as decimal)')), - dynaFnToSql('toFloat', $allStates, ^ToSql(format='cast(%s as float)')), + dynaFnToSql('toFloat', $allStates, ^ToSql(format='cast(%s as float)')), dynaFnToSql('toString', $allStates, ^ToSql(format='cast(%s as varchar)')), dynaFnToSql('variancePopulation', $allStates, ^ToSql(format='varp(%s)')), - dynaFnToSql('varianceSample', $allStates, ^ToSql(format='var(%s)')), + dynaFnToSql('varianceSample', $allStates, ^ToSql(format='var(%s)')), dynaFnToSql('weekOfYear', $allStates, ^ToSql(format='datepart(wk, %s)')), dynaFnToSql('year', $allStates, ^ToSql(format='year(wk, %s)')) ]; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/src/main/resources/core_relational_sqlserver/relational/sqlQueryToString/sqlServerTestSuiteInvoker.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/src/main/resources/core_relational_sqlserver/relational/sqlQueryToString/sqlServerTestSuiteInvoker.pure index d5dc316a233..0c12fa1f1f5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/src/main/resources/core_relational_sqlserver/relational/sqlQueryToString/sqlServerTestSuiteInvoker.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/src/main/resources/core_relational_sqlserver/relational/sqlQueryToString/sqlServerTestSuiteInvoker.pure @@ -13,17 +13,18 @@ // limitations under the License. import meta::pure::test::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::dbTestRunner::*; function <> meta::relational::tests::sqlQueryToString::sqlServer::testSuiteInvoker(): PureTestCollection[1] { let connection = getTestConnection(DatabaseType.SqlServer, meta::relational::extension::relationalExtensions()); - + // If a feature described in extension APIs / test suite is not supported, // then throw an exception with message that starts with '[unsupported-api]' // Tests which raise such exception will be reported as ignored by the runner - + meta::relational::tests::dbSpecificTests->collectParameterizedTests('SqlServer', ^DbTestConfig(dbType=DatabaseType.SqlServer, connection=$connection), meta::relational::tests::sqlQueryToString::sqlServer::testParamCustomizations_FunctionDefinition_1__DbTestConfig_1__DbTestConfig_1_, diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/executionPlan/tests/executionPlanTestSybase.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/executionPlan/tests/executionPlanTestSybase.pure index e1d1565d8ac..fdf07deec1a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/executionPlan/tests/executionPlanTestSybase.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/executionPlan/tests/executionPlanTestSybase.pure @@ -15,6 +15,7 @@ import meta::pure::alloy::connections::alloy::authentication::*; import meta::pure::alloy::connections::alloy::specification::*; import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::pure::mapping::modelToModel::test::createInstances::*; import meta::relational::postProcessor::*; import meta::pure::extension::*; @@ -29,6 +30,7 @@ import meta::relational::tests::tds::tabletds::*; import meta::pure::mapping::*; import meta::relational::mapping::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::tests::mapping::inheritance::relational::*; import meta::relational::metamodel::join::*; import meta::relational::tests::tds::tdsJoin::*; @@ -39,8 +41,10 @@ import meta::relational::tests::groupBy::datePeriods::*; import meta::relational::tests::groupBy::datePeriods::domain::*; import meta::pure::executionPlan::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::pure::mapping::modelToModel::test::shared::src::*; import meta::pure::graphFetch::executionPlan::*; import meta::pure::graphFetch::routing::*; @@ -65,14 +69,14 @@ function <> meta::pure::executionPlan::tests::sybase::testFilterEqual ' )\n'+ ' )\n'+ ')\n'; - assertPlanGenerationForOptionalParameter(DatabaseType.Sybase, $expectedPlan); + assertPlanGenerationForOptionalParameter(DatabaseType.Sybase, $expectedPlan); } function <> meta::pure::executionPlan::tests::sybase::testExecutionPlanGenerationForInWithStrictDate():Boolean[1] { let res = executionPlan({dates:StrictDate[*] |Trade.all()->filter(t|$t.date->in($dates))->project([x | $x.id], ['TradeId'])}, simpleRelationalMapping, - ^Runtime(connections=^DatabaseConnection(element = relationalDB, type=DatabaseType.Sybase)), + ^Runtime(connectionStores=^ConnectionStore(element = relationalDB, connection=^DatabaseConnection(type=DatabaseType.Sybase))), meta::relational::extension::relationalExtensions()); let expected = 'Sequence\n'+ diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/sybaseASEExtension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/sybaseASEExtension.pure index b25518c0ac6..8909ba33e73 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/sybaseASEExtension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/sybaseASEExtension.pure @@ -3,6 +3,7 @@ import meta::relational::functions::sqlQueryToString::default::*; import meta::relational::functions::sqlQueryToString::*; import meta::relational::metamodel::operation::*; import meta::relational::metamodel::relation::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::extension::*; import meta::relational::extension::*; @@ -145,7 +146,7 @@ function meta::relational::functions::sqlQueryToString::sybaseASE::getDynaFuncti dynaFnToSql('stdDevSample', $allStates, ^ToSql(format='stddev_samp(%s)')), dynaFnToSql('today', $allStates, ^ToSql(format='today(%s)', transform={p:String[*] | ''})), dynaFnToSql('toDecimal', $allStates, ^ToSql(format='cast(%s as decimal)')), - dynaFnToSql('toFloat', $allStates, ^ToSql(format='cast(%s as double)')), + dynaFnToSql('toFloat', $allStates, ^ToSql(format='cast(%s as double)')), dynaFnToSql('toString', $allStates, ^ToSql(format='cast(%s as varchar)')), dynaFnToSql('toTimestamp', $allStates, ^ToSql(format='%s', transform={p:String[2] | $p->transformToTimestampSybaseIQ()})), dynaFnToSql('weekOfYear', $allStates, ^ToSql(format='datepart(WEEK,%s)')), @@ -193,4 +194,4 @@ function <> meta::relational::functions::sqlQueryToString::sybas // assert($params->at(1)->replace('\'', '') == 'YYYY-MM-DD HH24:MI:SS', | $params->at(1) +' not supported '); // let timestampFormat = 121; // 'convert(datetime,'+$params->at(0)+','+$timestampFormat->toString() +')'; -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/tests/testSybaseDdlGeneration.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/tests/testSybaseDdlGeneration.pure index cc5a8d9133c..1f8a13cda25 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/tests/testSybaseDdlGeneration.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/tests/testSybaseDdlGeneration.pure @@ -23,6 +23,7 @@ import meta::relational::metamodel::execute::*; import meta::relational::functions::toDDL::*; import meta::relational::mapping::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; function <> meta::relational::tests::ddl::sybase::testCreateTempTableStatement():Boolean[1] { diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/tests/testSybaseMapperPostProcessor.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/tests/testSybaseMapperPostProcessor.pure index e1a9e40e6ca..d501ef1d24d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/tests/testSybaseMapperPostProcessor.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/tests/testSybaseMapperPostProcessor.pure @@ -1,17 +1,19 @@ import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::tests::model::simple::*; import meta::relational::mapping::*; function <> meta::pure::alloy::connections::tests::sybase::testTableMapperPostProcessor():Boolean[1] { - let runtime = ^meta::pure::runtime::Runtime + let runtime = ^meta::core::runtime::Runtime ( - connections = ^TestDatabaseConnection( + connectionStores = ^meta::core::runtime::ConnectionStore( element = meta::relational::tests::db, + connection=^TestDatabaseConnection( type = DatabaseType.Sybase, queryPostProcessorsWithParameter = meta::pure::alloy::connections::tableMapperPostProcessor(^meta::pure::alloy::connections::MapperPostProcessor(mappers = ^meta::pure::alloy::connections::SchemaNameMapper(from = 'productSchema', to = 'productSchemaTransformed'))) - ) + )) ); let result = meta::pure::executionPlan::executionPlan({|Product.all()->filter(p|$p.name == 'ok')}, meta::relational::tests::simpleRelationalMapping, $runtime, meta::relational::extension::relationalExtensions()); assertEquals('select "root".ID as "pk_0", "root".NAME as "name" from productSchemaTransformed.productTable as "root" where "root".NAME = \'ok\'', $result.rootExecutionNode.executionNodes->filter(p|$p->instanceOf(SQLExecutionNode))->cast(@SQLExecutionNode).sqlQuery); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/tests/testSybaseSort.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/tests/testSybaseSort.pure index 4646f9546f5..c2552c3f376 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/tests/testSybaseSort.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/tests/testSybaseSort.pure @@ -13,9 +13,11 @@ // limitations under the License. import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::pure::metamodel::tds::*; import meta::relational::functions::sqlstring::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/tests/testSybaseSqlFunctionsInMapping.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/tests/testSybaseSqlFunctionsInMapping.pure index 3c0612790a2..cedd3c24e9e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/tests/testSybaseSqlFunctionsInMapping.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/tests/testSybaseSqlFunctionsInMapping.pure @@ -29,9 +29,12 @@ import meta::relational::functions::toDDL::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::authentication::*; @@ -76,7 +79,7 @@ function <> meta::relational::tests::mapping::sqlFunction::sybase::te |SqlFunctionDemo.all()->project([s | $s.adjustDate], ['Dt']), testMapping, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals([%2003-07-12T00:00:00.000000000+0000, %2003-07-13T00:00:00.000000000+0000], $result.values->at(0).rows.values); meta::relational::functions::asserts::assertSameSQL('select dateadd(DAY, -7, "root".dateTime) as "Dt" from dataTable as "root"', $result); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/tests/testSybaseTDSFilter.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/tests/testSybaseTDSFilter.pure index f3c68ae425b..1188358486c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/tests/testSybaseTDSFilter.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/tests/testSybaseTDSFilter.pure @@ -15,7 +15,9 @@ import meta::relational::functions::sqlstring::*; import meta::relational::mapping::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::metamodel::tds::*; import meta::pure::profiles::*; import meta::relational::tests::model::simple::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/tests/testSybaseToSQLString.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/tests/testSybaseToSQLString.pure index 7aca6bf61a9..60a32eb3091 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/tests/testSybaseToSQLString.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/src/main/resources/core_relational_sybase/relational/sqlQueryToString/tests/testSybaseToSQLString.pure @@ -17,10 +17,12 @@ import meta::pure::mapping::*; import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::pure::profiles::*; import meta::relational::functions::sqlstring::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; function <> meta::relational::tests::functions::sqlstring::sybase::testProcessLiteralForASE():Boolean[1] { @@ -63,17 +65,17 @@ function <> meta::relational::tests::functions::sqlstring::sybase::te let expected = [ pair(DatabaseType.Sybase, $common) ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all()->project([ a | $a.quantity->cbrt() ], ['cbrt']), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); @@ -84,8 +86,8 @@ function <> meta::relational::tests::functions::sqlstring::sybase::te { let result = toSQLString(|Location.all()->project([ a | $a.censusdate->toOne()->datePart() - ], - ['a']), + ], + ['a']), simpleRelationalMappingInc, DatabaseType.Sybase, meta::relational::extension::relationalExtensions()); assertEquals('select cast("root"."DATE" as date) as "a" from locationTable as "root"', $result); } @@ -95,15 +97,15 @@ function <> meta::relational::tests::functions::sqlstring::sybase::te let expected = [ pair(DatabaseType.Sybase, 'select dateadd(DAY, -(day("root".tradeDate) - 1), "root".tradeDate) as "date" from tradeTable as "root"') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all() ->project(col(t|$t.date->firstDayOfMonth(), 'date')), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); @@ -115,17 +117,17 @@ function <> meta::relational::tests::functions::sqlstring::sybase::te let expected = [ pair(DatabaseType.Sybase, 'select dateadd(DAY, -(datepart(dayofyear, "root".tradeDate) - 1), "root".tradeDate) as "date" from tradeTable as "root"') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all() ->project(col(t|$t.date->firstDayOfYear(), 'date')), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); - + assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); )->distinct() == [true]; } @@ -135,17 +137,17 @@ function <> meta::relational::tests::functions::sqlstring::sybase::te let expected = [ pair(DatabaseType.Sybase, 'select dateadd(DAY, -(datepart(dayofyear, today()) - 1), today()) as "date" from tradeTable as "root"') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all() ->project(col(t|firstDayOfThisYear(), 'date')), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); - + assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); )->distinct() == [true]; } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/executionPlan/tests/executionPlanTestSybaseIQ.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/executionPlan/tests/executionPlanTestSybaseIQ.pure index 64ae3ff8bd3..0613fe48d4e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/executionPlan/tests/executionPlanTestSybaseIQ.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/executionPlan/tests/executionPlanTestSybaseIQ.pure @@ -15,6 +15,7 @@ import meta::pure::alloy::connections::alloy::authentication::*; import meta::pure::alloy::connections::alloy::specification::*; import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::pure::mapping::modelToModel::test::createInstances::*; import meta::relational::postProcessor::*; import meta::pure::extension::*; @@ -29,6 +30,7 @@ import meta::relational::tests::tds::tabletds::*; import meta::pure::mapping::*; import meta::relational::mapping::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::tests::mapping::inheritance::relational::*; import meta::relational::metamodel::join::*; import meta::relational::tests::tds::tdsJoin::*; @@ -39,16 +41,18 @@ import meta::relational::tests::groupBy::datePeriods::*; import meta::relational::tests::groupBy::datePeriods::domain::*; import meta::pure::executionPlan::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::pure::mapping::modelToModel::test::shared::src::*; import meta::pure::graphFetch::executionPlan::*; import meta::pure::graphFetch::routing::*; import meta::pure::functions::collection::*; import meta::pure::executionPlan::tests::sybaseIQ::*; -function <> meta::pure::executionPlan::tests::sybaseIQ::testFilterEqualsWithOptionalParameter_SybaseIQ():Boolean[1] -{ +function <> meta::pure::executionPlan::tests::sybaseIQ::testFilterEqualsWithOptionalParameter_SybaseIQ():Boolean[1] +{ let expectedPlan ='Sequence\n'+ '(\n'+ ' type = TDS[(Time, Integer, INT, "")]\n'+ @@ -66,11 +70,11 @@ function <> meta::pure::executionPlan::tests::sybaseIQ::testFilterEqu ' )\n'+ ' )\n'+ ')\n'; - assertPlanGenerationForOptionalParameter(DatabaseType.SybaseIQ, $expectedPlan); + assertPlanGenerationForOptionalParameter(DatabaseType.SybaseIQ, $expectedPlan); } function <> meta::pure::executionPlan::tests::sybaseIQ::testGreaterThanLessThanEqualsWithOptionalParameter_SybaseIQ():Boolean[1] -{ +{ let func = {optionalAgeLowerLimit: Integer[0..1], optionalAgeHigherLimit: Integer[0..1]|Person.all()->filter(p|$p.age>$optionalAgeLowerLimit && ($p.age<=$optionalAgeHigherLimit))->project(col(a|$a.firstName, 'firstName'))}; let expectedPlan ='Sequence\n'+ '(\n'+ @@ -93,8 +97,8 @@ function <> meta::pure::executionPlan::tests::sybaseIQ::testGreaterTh } -function <> meta::pure::executionPlan::tests::sybaseIQ::testLessThanGreaterThanEqualsWithOptionalParameter_SybaseIQ():Boolean[1] -{ +function <> meta::pure::executionPlan::tests::sybaseIQ::testLessThanGreaterThanEqualsWithOptionalParameter_SybaseIQ():Boolean[1] +{ let func = {optionalAgeLowerLimit: Integer[0..1], optionalAgeHigherLimit: Integer[0..1]|Person.all()->filter(p|$p.age<$optionalAgeLowerLimit && ($p.age>=$optionalAgeHigherLimit))->project(col(a|$a.firstName, 'firstName'))}; let expectedPlan ='Sequence\n'+ '(\n'+ @@ -113,20 +117,22 @@ function <> meta::pure::executionPlan::tests::sybaseIQ::testLessThanG ' )\n'+ ' )\n'+ ')\n'; - assertPlanGenerationForOptionalParameterWithGreaterThanLessThan($func, DatabaseType.SybaseIQ, $expectedPlan); + assertPlanGenerationForOptionalParameterWithGreaterThanLessThan($func, DatabaseType.SybaseIQ, $expectedPlan); } -function meta::pure::executionPlan::tests::sybaseIQ::twoDBRunTimeSybaseIQ():meta::pure::runtime::Runtime[1] +function meta::pure::executionPlan::tests::sybaseIQ::twoDBRunTimeSybaseIQ():meta::core::runtime::Runtime[1] { - ^meta::pure::runtime::Runtime + ^meta::core::runtime::Runtime ( - connections = [^TestDatabaseConnection( + connectionStores = [^meta::core::runtime::ConnectionStore( element = dbInc, + connection=^TestDatabaseConnection( type=DatabaseType.SybaseIQ - ),^TestDatabaseConnection( + )),^meta::core::runtime::ConnectionStore( element = database2, + connection=^TestDatabaseConnection( type=DatabaseType.SybaseIQ - )] + ))] ); } @@ -210,7 +216,7 @@ function <> meta::pure::executionPlan::tests::sybaseIQ::testExecution { let res = executionPlan( {name:String[*] |_Person.all()->filter(x | $x.fullName->in($name))->filter(x | $x.fullName->in(['A', 'B']))->project([x | $x.fullName], ['fullName']);}, - meta::pure::mapping::modelToModel::test::shared::relationalMapping, ^Runtime(connections=^DatabaseConnection(element = relationalDB, type=DatabaseType.SybaseIQ)), meta::relational::extension::relationalExtensions() + meta::pure::mapping::modelToModel::test::shared::relationalMapping, ^Runtime(connectionStores=^ConnectionStore(element = relationalDB, connection=^DatabaseConnection(type=DatabaseType.SybaseIQ))), meta::relational::extension::relationalExtensions() ); let expected = 'RelationalBlockExecutionNode(type=TDS[(fullName,String,VARCHAR(1000),"")](FunctionParametersValidationNode(functionParameters=[name:String[*]])Allocation(type=Stringname=inFilterClause_namevalue=(FreeMarkerConditionalExecutionNode(type=Stringcondition=${(instanceOf(name,"Stream")||((collectionSize(name![])?number)>250000))?c}trueBlock=(Sequence(type=String(CreateAndPopulateTempTable(type=VoidinputVarNames=[name]tempTableName=tempTableForIn_nametempTableColumns=[(ColumnForStoringInCollection,VARCHAR(200))]connection=DatabaseConnection(type="SybaseIQ"))Constant(type=Stringvalues=[select"temptableforin_name_0".ColumnForStoringInCollectionasColumnForStoringInCollectionfromtempTableForIn_nameas"temptableforin_name_0"]))))falseBlock=(Constant(type=Stringvalues=[${renderCollection(name![]",""\'""\'"{"\'":"\'\'"}"null")}])))))Relational(type=TDS[(fullName,String,VARCHAR(1000),"")]resultColumns=[("fullName",VARCHAR(1000))]sql=select"root".fullnameas"fullName"fromPersonas"root"where"root".fullnamein(${inFilterClause_name})and"root".fullnamein(\'A\',\'B\')connection=DatabaseConnection(type="SybaseIQ"))))'; assertEquals($expected, $res->planToStringWithoutFormatting(meta::relational::extension::relationalExtensions())); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/sybaseIQExtension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/sybaseIQExtension.pure index 16fcfa0e518..213fc63e865 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/sybaseIQExtension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/sybaseIQExtension.pure @@ -4,6 +4,7 @@ import meta::relational::functions::sqlQueryToString::default::*; import meta::relational::functions::sqlQueryToString::*; import meta::relational::metamodel::operation::*; import meta::relational::metamodel::relation::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::extension::*; import meta::relational::extension::*; @@ -100,7 +101,7 @@ function meta::relational::functions::sqlQueryToString::sybaseIQ::getDynaFunctio dynaFnToSql('firstHourOfDay', $allStates, ^ToSql(format='datetime(date(%s))')), dynaFnToSql('firstMillisecondOfSecond', $allStates, ^ToSql(format='dateadd(microsecond, -(datepart(microsecond, %s)), %s)', transform={p:String[1] | $p->repeat(2)})), dynaFnToSql('firstMinuteOfHour', $allStates, ^ToSql(format='dateadd(hour, datepart(hour, %s), date(%s))', transform={p:String[1] | $p->repeat(2)})), - dynaFnToSql('firstSecondOfMinute', $allStates, ^ToSql(format='dateadd(minute, datepart(minute, %s), dateadd(hour, datepart(hour, %s), date(%s)))', transform={p:String[1] | $p->repeat(3)})), + dynaFnToSql('firstSecondOfMinute', $allStates, ^ToSql(format='dateadd(minute, datepart(minute, %s), dateadd(hour, datepart(hour, %s), date(%s)))', transform={p:String[1] | $p->repeat(3)})), dynaFnToSql('hour', $allStates, ^ToSql(format='hour(%s)')), dynaFnToSql('indexOf', $allStates, ^ToSql(format='LOCATE(%s)', transform={p:String[2] | $p->at(0) + ', ' + $p->at(1)})), dynaFnToSql('isEmpty', $selectOutsideWhen, ^ToSql(format='case when (%s is null) then \'true\' else \'false\' end', parametersWithinWhenClause=true)), @@ -136,7 +137,7 @@ function meta::relational::functions::sqlQueryToString::sybaseIQ::getDynaFunctio dynaFnToSql('round', $allStates, ^ToSql(format='round(%s, %s)', transform=transformRound_String_MANY__String_MANY_)), dynaFnToSql('second', $allStates, ^ToSql(format='second(%s)')), dynaFnToSql('sha1', $allStates, ^ToSql(format='hash(%s, \'SHA1\')')), - dynaFnToSql('sha256', $allStates, ^ToSql(format='hash(%s, \'SHA256\')')), + dynaFnToSql('sha256', $allStates, ^ToSql(format='hash(%s, \'SHA256\')')), dynaFnToSql('substring', $allStates, ^ToSql(format='substring%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), dynaFnToSql('stdDevPopulation', $allStates, ^ToSql(format='stddev_pop(%s)')), dynaFnToSql('stdDevSample', $allStates, ^ToSql(format='stddev_samp(%s)')), @@ -249,7 +250,7 @@ function <> meta::relational::functions::sqlQueryToString::sybas let s = if($isSubSelect && ($sq.fromRow->isNotEmpty() || $sq.toRow->isNotEmpty()), |$sq->rewriteSliceAsWindowFunction(), |$sq); let opStr = if($s.filteringOperation->isEmpty(), |'', |$s.filteringOperation->map(s|$s->wrapAsBooleanOperation($extensions)->processOperation($dbConfig, $format->indent(), ^$config(callingFromFilter = true), $extensions))->filter(s|$s != '')->joinStrings(' <||> ')); let havingStr = if($s.havingOperation->isEmpty(), |'', |$s.havingOperation->map(s|$s->processOperation($dbConfig, $format->indent(), $config, $extensions))->filter(s|$s != '')->joinStrings(' <||> ')); - + $format.separator + 'select ' + if($s.distinct == true,|'distinct ',|'') + processTop($s, $format, $dbConfig, $extensions) + processSelectColumns($s.columns, $dbConfig, $format->indent(), false, $extensions) + if ($s.data == [],|'',| ' ' + $format.separator + 'from ' + $s.data->toOne()->processJoinTreeNode([], $dbConfig, $format->indent(), [], $extensions)) + @@ -282,23 +283,23 @@ function <> meta::relational::functions::sqlQueryToString::sybas let day = if(startsWith($dayOfWeek->at(1),'\''),|$dayOfWeek->at(1)->removeQuotes(),|$dayOfWeek->at(1)); assert(or($day == 'Sunday',$day == 'Monday'),'DayOfWeekNumber Function requires either Sunday or Monday as First Day of Week'); if($day =='Sunday',|'datepart(Weekday,'+$dayOfWeek->at(0)+')',|'mod (datepart(weekday,'+$dayOfWeek->at(0)+')+5,7)+1'); -} +} function meta::relational::functions::sqlQueryToString::sybaseIQ::translateCreateTableStatementForSybaseIQ(c:CreateTableSQL[1], dbConfig: DbConfig[1]): String[1] { let columns = $c.table.columns->map(r|$r->match([c:Column[1]| '[' + $c.name->processColumnName($dbConfig) + '] ' + $c.type->getColumnTypeSqlTextDefault(), r:RelationalOperationElement[1]| fail('Only \'Column\' types are supported when creating temporary tables, found: '+$r->type()->toOne()->elementToPath());'';])); - + if($c.isTempTable->isTrue(),| 'DECLARE LOCAL TEMPORARY TABLE ' + $c.table->tableToString($dbConfig) + '('+ $columns->joinStrings(',') + ') ON COMMIT PRESERVE ROWS' ,| $c->meta::relational::functions::sqlQueryToString::default::translateCreateTableStatementDefault($dbConfig)); - + } function meta::relational::functions::sqlQueryToString::sybaseIQ::loadValuesToDbTableForSybaseIQ(l:LoadTableSQL[1], dbConfig: DbConfig[1]): String[*] { let columns = $l.table.columns->map(r|$r->match([c:Column[1]| $c.name->toOne(), r:RelationalOperationElement[1]| fail('Only \'Column\' types are supported when creating temporary tables, found: '+$r->type()->toOne()->elementToPath());'';])); - + if($l.absolutePathToFile->isNotEmpty(),| 'load table ' + $l.table->tableToString($dbConfig) +'( '+ $columns->map(c|'['+$c + '] null(blanks)')->joinStrings(',') + ' ) USING CLIENT FILE \'' + $l.absolutePathToFile->toOne()->processOperation($dbConfig.dbType, []) + '\' FORMAT BCP \nwith checkpoint on \nquotes on \nescapes off \ndelimited by \',\' \nROW DELIMITED BY \'\r\n\''; ,| $l->meta::relational::functions::sqlQueryToString::default::loadValuesToDbTableDefault($dbConfig)); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQIsEmpty.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQIsEmpty.pure index 819eb97495a..08a412e59e2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQIsEmpty.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQIsEmpty.pure @@ -19,8 +19,8 @@ import meta::relational::mapping::*; function <> meta::relational::tests::query::function::sybaseIQ::setUp():Boolean[1] { - let rt = meta::relational::tests::testRuntime(); - let connection = $rt.connections->at(0)->cast(@meta::relational::runtime::DatabaseConnection); + let rt = meta::external::store::relational::tests::testRuntime(); + let connection = $rt.connectionStores.connection->at(0)->cast(@meta::external::store::relational::runtime::DatabaseConnection); dropAndCreateTableInDb(TestDB, 'testTable', $connection); executeInDb('insert into testTable (id, value) values (1, \'Bla\');', $connection); executeInDb('insert into testTable (id, value) values (2, null);', $connection); @@ -29,28 +29,28 @@ function <> meta::relational::tests::query::function::sybase function <> meta::relational::tests::query::function::sybaseIQ::testDerivedWithIsEmpty2():Boolean[1] { - let result = execute(|TestClass.all()->project(t|$t.isValued() ,'col'), TestMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let result = execute(|TestClass.all()->project(t|$t.isValued() ,'col'), TestMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('select "root".value is null as "col" from testTable as "root"', $result->sqlRemoveFormatting()); assertEquals('select case when ("root".value is null) then \'true\' else \'false\' end as "col" from testTable as "root"', meta::relational::functions::sqlstring::toSQLString(|TestClass.all()->project(t|$t.isValued() ,'col'), TestMapping, meta::relational::runtime::DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions())); } function <> meta::relational::tests::query::function::sybaseIQ::testDerivedWithIsEmptyNestedInIf():Boolean[1] { - let result = execute(|TestClass.all()->project(t|$t.isValuedNested() ,'col'), TestMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let result = execute(|TestClass.all()->project(t|$t.isValuedNested() ,'col'), TestMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('select case when "root".value is null then true else false end as "col" from testTable as "root"', $result->sqlRemoveFormatting()); assertEquals('select case when ("root".value is null) then \'true\' else \'false\' end as "col" from testTable as "root"', meta::relational::functions::sqlstring::toSQLString(|TestClass.all()->project(t|$t.isValued() ,'col'), TestMapping, meta::relational::runtime::DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions())); } function <> meta::relational::tests::query::function::sybaseIQ::testDerivedCountWithIsEmpty():Boolean[1] { - let result = execute(|TestClass.all()->groupBy([],[agg(x|$x.isValued(), y | $y->count())],['count']), TestMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let result = execute(|TestClass.all()->groupBy([],[agg(x|$x.isValued(), y | $y->count())],['count']), TestMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('select count("root".value is null) as "count" from testTable as "root"', $result->sqlRemoveFormatting()); assertEquals('select count(case when ("root".value is null) then \'true\' else \'false\' end) as "count" from testTable as "root"', meta::relational::functions::sqlstring::toSQLString(|TestClass.all()->groupBy([],[agg(x|$x.isValued(), y | $y->count())],['count']), TestMapping, meta::relational::runtime::DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions())); } function <> meta::relational::tests::query::function::sybaseIQ::testDerivedCountWithIsEmptyNestedInIf():Boolean[1] { - let result = execute(|TestClass.all()->groupBy([],[agg(x|$x.isValuedNested(), y | $y->count())],['count']), TestMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let result = execute(|TestClass.all()->groupBy([],[agg(x|$x.isValuedNested(), y | $y->count())],['count']), TestMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('select count(case when "root".value is null then true else false end) as "count" from testTable as "root"', $result->sqlRemoveFormatting()); assertEquals('select count(case when ("root".value is null) then \'true\' else \'false\' end) as "count" from testTable as "root"', meta::relational::functions::sqlstring::toSQLString(|TestClass.all()->groupBy([],[agg(x|$x.isValued(), y | $y->count())],['count']), TestMapping, meta::relational::runtime::DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions())); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQPaginated.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQPaginated.pure index e3328fdc5e1..078a1273beb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQPaginated.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQPaginated.pure @@ -16,30 +16,32 @@ import meta::relational::tests::query::paginate::helper::*; import meta::json::*; import meta::pure::mapping::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::pure::graphFetch::execution::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::relational::functions::sqlstring::*; function <> meta::relational::tests::query::function::sybaseIQ::testPaginatedByVendor():Boolean[1] { // Second type of function - tds sort - + let f2 = {|Person.all()->project(p|$p.firstName, 'firstName')->sort(asc('firstName'))->paginated(3, 5);}; - + let s4 = toSQLString($f2, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select "root".FIRSTNAME as "firstName" from personTable as "root" order by "firstName" limit ${((3?number - 1?number)?number * 5?number)},${5?number}', $s4); // Third type of function - subQuery - + let f3 = {|Person.all()->project([col(p|$p.firstName, 'firstName'), col(p|$p.lastName, 'lastName')])->slice(0,50)->restrict('firstName')->sort(asc('firstName'))->paginated(2, 3);}; - + let s5 = toSQLString($f3, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select "firstName" as "firstName" from (select "limitoffset_via_window_subquery"."firstName" as "firstName", "limitoffset_via_window_subquery"."lastName" as "lastName" from ' + '(select "root".FIRSTNAME as "firstName", "root".LASTNAME as "lastName", row_number() OVER (Order By "root".FIRSTNAME) as "row_number" from personTable as "root") ' - + 'as "limitoffset_via_window_subquery" where "limitoffset_via_window_subquery".row_number <= 50) as "subselect" order by "firstName" limit ${((2?number - 1?number)?number * 3?number)},${3?number}', $s5); + + 'as "limitoffset_via_window_subquery" where "limitoffset_via_window_subquery".row_number <= 50) as "subselect" order by "firstName" limit ${((2?number - 1?number)?number * 3?number)},${3?number}', $s5); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQPostProcessor.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQPostProcessor.pure index 44916f558db..9f4be5af019 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQPostProcessor.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQPostProcessor.pure @@ -17,7 +17,9 @@ import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::metamodel::relation::*; import meta::relational::metamodel::*; import meta::relational::tests::postProcessor::*; @@ -28,14 +30,14 @@ import meta::relational::tests::postProcessor::nonExecutable::*; function <> meta::relational::tests::postProcessor::sybaseIQ::testReAliasWindowColumn(): Boolean[1] { let func = {|Order.all()->project([col(o|$o.id, 'id'), col(window([o|$o.zeroPnl,o|$o.id]), sortAsc(o|$o.quantity), y|$y->rank(), 'testCol')]) }; - let databaseConnection = testRuntime().connections->toOne()->cast(@TestDatabaseConnection); + let databaseConnection = testRuntime().connectionStores.connection->toOne()->cast(@TestDatabaseConnection); let result = meta::relational::functions::sqlstring::toSQL($func, simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).sqlQueries->at(0)->meta::relational::functions::sqlQueryToString::sqlQueryToString(DatabaseType.SybaseIQ, '', [], meta::relational::extension::relationalExtensions()); assertEquals('select "root".ID as "id", rank() OVER (Partition By case when "orderpnlview_0".pnl = 0 then \'true\' else \'false\' end,"root".ID Order By "root".quantity ASC) as "testCol" from orderTable as "root" left outer join (select distinct "root".ORDER_ID as ORDER_ID, "root".pnl as pnl, "accounttable_0".ID as accountId, "salespersontable_0".NAME as supportContact, "salespersontable_0".PERSON_ID as supportContactId from orderPnlTable as "root" left outer join orderTable as "ordertable_1" on ("root".ORDER_ID = "ordertable_1".ID) left outer join accountTable as "accounttable_0" on ("ordertable_1".accountID = "accounttable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("ordertable_1".accountID = "salespersontable_0".ACCOUNT_ID) where "root".pnl > 0) as "orderpnlview_0" on ("orderpnlview_0".ORDER_ID = "root".ID)', $result); } function <> meta::relational::tests::postProcessor::sybaseIQ::testSybaseColumnRename():Boolean[1] { - let runtime = ^meta::pure::runtime::Runtime(connections = ^TestDatabaseConnection(element = meta::relational::tests::mapping::union::myDB, type = DatabaseType.SybaseIQ)); + let runtime = ^meta::core::runtime::Runtime(connectionStores = ^meta::core::runtime::ConnectionStore(element = meta::relational::tests::mapping::union::myDB, connection=^TestDatabaseConnection(type = DatabaseType.SybaseIQ))); let result = meta::relational::functions::sqlstring::toSQL(|Person.all()->project([p|$p.lastName], ['name']), meta::relational::tests::mapping::union::unionMappingWithLongPropertyMapping, $runtime, meta::relational::extension::relationalExtensions()).sqlQueries->at(0)->cast(@SelectSQLQuery)->meta::relational::postProcessor::reAliasColumnName::trimColumnName($runtime).values->meta::relational::functions::sqlQueryToString::sqlQueryToString(DatabaseType.SybaseIQ, '', [], meta::relational::extension::relationalExtensions()); assertEquals('select "unionBase"."concat_thisStringIsThisLongMakeTheGeneratedAliasExplodePastTheDb2limitOf128Characters_concat_ForTestPurposesOnly_PersonSet1lastName_s1_concat_thisStringIsThisLongMakeTheGeneratedAliasExplodePastTheDb2limitOf128Characters____6ce98e09e89aabde27805_0" as "name" from (select "root".ID as "pk_0_0", null as "pk_0_1", \'thisStringIsThisLongMakeTheGeneratedAliasExplodePastTheDb2limitOf128Characters\' + \'ForTestPurposesOnly\' + "root".lastName_s1 as "concat_thisStringIsThisLongMakeTheGeneratedAliasExplodePastTheDb2limitOf128Characters_concat_ForTestPurposesOnly_PersonSet1lastName_s1_concat_thisStringIsThisLongMakeTheGeneratedAliasExplodePastTheDb2limitOf128Characters____6ce98e09e89aabde27805_0" from PersonSet1 as "root" UNION ALL select null as "pk_0_0", "root".ID as "pk_0_1", \'thisStringIsThisLongMakeTheGeneratedAliasExplodePastTheDb2limitOf128Characters\' + \'ForTestPurposesOnly\' + "root".lastName_s2 as "concat_thisStringIsThisLongMakeTheGeneratedAliasExplodePastTheDb2limitOf128Characters_concat_ForTestPurposesOnly_PersonSet1lastName_s1_concat_thisStringIsThisLongMakeTheGeneratedAliasExplodePastTheDb2limitOf128Characters____6ce98e09e89aabde27805_0" from PersonSet2 as "root") as "unionBase"',$result); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQProjectWithWindowColumns.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQProjectWithWindowColumns.pure index c37bc7d186b..cd5d8cff6c2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQProjectWithWindowColumns.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQProjectWithWindowColumns.pure @@ -16,15 +16,17 @@ import meta::relational::tests::mapping::distinct::model::mapping::*; import meta::relational::tests::mapping::distinct::model::domain::*; import meta::pure::functions::math::olap::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::functions::sqlstring::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <>meta::relational::tests::projection::sybaseIQ::testWindowWithSortSingle():Boolean[1] { let func = {|meta::relational::tests::model::simple::Person.all() ->project([ - col(p |$p.lastName,'lastName') + col(p |$p.lastName,'lastName') ,col(window(p |$p.firstName ),sortAsc(p |$p.lastName), func(p |$p.age->toOne(), y| $y->average()),'ageAverageWindow') ])}; let res= toSQLString($func, simpleRelationalMappingInc, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); @@ -36,7 +38,7 @@ function <>meta::relational::tests::projection::sybaseIQ::testWindowW { let func ={|meta::relational::tests::model::simple::Person.all() ->project([ - col(p |$p.lastName,'lastName') + col(p |$p.lastName,'lastName') ,col(window([p |$p.lastName,p |$p.firstName] ),sortAsc(p |$p.lastName), func(p |$p.age->toOne(), y| $y->average()),'ageAverageMultiplePartitions') ])}; @@ -49,7 +51,7 @@ function <>meta::relational::tests::projection::sybaseIQ::testwindowW { let func ={|meta::relational::tests::model::simple::Person.all() ->project([ - col(p |$p.lastName,'lastName') + col(p |$p.lastName,'lastName') ,col(window(p |$p.firstName ),sortAsc(p |$p.lastName), func(p |$p.age->toOne(), y| $y->average()),'ageAverageWindow') ,col(window(p |$p.manager.lastName->toOne() ),sortDesc(p |$p.manager.firstName->toOne()), func(p |$p.age->toOne(), y| $y->sum()),'ageSumWindow') @@ -63,7 +65,7 @@ function <>meta::relational::tests::projection::sybaseIQ::testWindowW { let func ={|meta::relational::tests::model::simple::Person.all() ->project([ - col(p |$p.lastName,'lastName') + col(p |$p.lastName,'lastName') ,col(window(p |$p.firstName ), func(p |$p.age->toOne(), y| $y->average()),'ageWindow') ])}; let res= toSQLString($func, simpleRelationalMappingInc, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); @@ -74,7 +76,7 @@ function <>meta::relational::tests::projection::sybaseIQ::testWindowW { let func ={|meta::relational::tests::model::simple::Person.all() ->project([ - col(p |$p.lastName,'lastName') + col(p |$p.lastName,'lastName') ,col(window(p |$p.firstName ), func(p |$p.age->toOne(), y| $y->max()),'ageMaxWindow') ,col(window(p |$p.manager.lastName->toOne() ), func(p |$p.age->toOne(), y| $y->sum()),'ageSumWindow') ])}; @@ -86,7 +88,7 @@ function <>meta::relational::tests::projection::sybaseIQ::testRankSin { let func ={|meta::relational::tests::model::simple::Person.all() ->project([ - col(p |$p.lastName,'lastName') + col(p |$p.lastName,'lastName') ,col(window(p |$p.firstName ),sortAsc(p|$p.lastName),y | $y->rank(),'ageRankWindow')]) }; @@ -98,7 +100,7 @@ function <>meta::relational::tests::projection::sybaseIQ::testRankMul { let func ={|meta::relational::tests::model::simple::Person.all() ->project([ - col(p |$p.lastName,'lastName') + col(p |$p.lastName,'lastName') ,col(window(p |$p.firstName ),sortAsc(p |$p.lastName), y | $y->rank(),'ageRankWindow1') ,col(window(p |$p.manager.lastName->toOne() ),sortDesc(p |$p.lastName), y | $y->rank(),'ageRankWindow2') @@ -112,7 +114,7 @@ function <>meta::relational::tests::projection::sybaseIQ::testDiffere { let func ={|meta::relational::tests::model::simple::Person.all() ->project([ - col(p |$p.lastName,'lastName') + col(p |$p.lastName,'lastName') ,col(window(p |$p.firstName ),sortAsc(p |$p.lastName), func(p |$p.age->toOne(), y| $y->average()),'ageAverage') ,col(window(p |$p.manager.lastName->toOne() ),sortDesc(p |$p.lastName),y | $y->rank(),'lastNameRank') @@ -160,9 +162,9 @@ function <>meta::relational::tests::projection::sybaseIQ::testNoParti col(t|$t.product.name, 'prodName'), col(sortAsc(t|$t.id),func(t|$t.quantity, y|$y->sum()), 'testWindow') ])}; - + let res= toSQLString($func,simpleRelationalMapping,DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - assertEquals('select "productTable_d#4_d_m1".NAME as "prodName", sum("root".quantity) OVER (Order By "root".ID ASC) as "testWindow" from tradeTable as "root" left outer join productSchema.productTable as "productTable_d#4_d_m1" on ("root".prodId = "productTable_d#4_d_m1".ID)',$res); + assertEquals('select "productTable_d#4_d_m1".NAME as "prodName", sum("root".quantity) OVER (Order By "root".ID ASC) as "testWindow" from tradeTable as "root" left outer join productSchema.productTable as "productTable_d#4_d_m1" on ("root".prodId = "productTable_d#4_d_m1".ID)',$res); } function <>meta::relational::tests::projection::sybaseIQ::testWindowColumnWithTdsDistinct():Boolean[1] @@ -172,23 +174,23 @@ function <>meta::relational::tests::projection::sybaseIQ::testWindowC col(t|$t.product.name, 'prodName'), col(sortAsc(t|$t.id),func(t|$t.quantity, y|$y->sum()), 'testWindow') ])->distinct()}; - + let res= toSQLString($func,simpleRelationalMapping,DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - assertEquals('select distinct "productTable_d#5_d#2_m1".NAME as "prodName", sum("root".quantity) OVER (Order By "root".ID ASC) as "testWindow" from tradeTable as "root" left outer join productSchema.productTable as "productTable_d#5_d#2_m1" on ("root".prodId = "productTable_d#5_d#2_m1".ID)',$res); + assertEquals('select distinct "productTable_d#5_d#2_m1".NAME as "prodName", sum("root".quantity) OVER (Order By "root".ID ASC) as "testWindow" from tradeTable as "root" left outer join productSchema.productTable as "productTable_d#5_d#2_m1" on ("root".prodId = "productTable_d#5_d#2_m1".ID)',$res); } function <>meta::relational::tests::projection::sybaseIQ::testProjectWithColumnSubSetAndWindowColumn():Boolean[1] { - let func = {| Person.all()->projectWithColumnSubset( [ + let func = {| Person.all()->projectWithColumnSubset( [ col(p| $p.firstName , 'first_name' ), - col(p| $p.lastName , 'last_name' ), + col(p| $p.lastName , 'last_name' ), col(p|$p.age, 'age'), col(window(p |$p.firstName ),sortAsc(p |$p.lastName), func(p |$p.age->toOne(), y| $y->average()),'ageAverage') - ], [ - 'first_name' , + ], [ + 'first_name' , 'age' ]) - ->filter( x| $x.getString('first_name' ) == 'David' )}; + ->filter( x| $x.getString('first_name' ) == 'David' )}; let res = toSQLString($func, simpleRelationalMapping,DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals ('select "root".FIRSTNAME as "first_name", "root".AGE as "age", avg(1.0 * "root".AGE) OVER (Partition By "root".FIRSTNAME Order By "root".LASTNAME ASC) as "ageAverage" from personTable as "root" where "root".FIRSTNAME = \'David\'' , $res); @@ -203,35 +205,35 @@ function <> meta::relational::tests::projection::sybaseIQ::testDistin function <> meta::relational::tests::projection::sybaseIQ::testUsingWindowAttributeInFilter():Boolean[1] -{ +{ let func ={| meta::relational::tests::model::simple::Person.all() ->project([ - col(x |$x.lastName,'firstName') - ,col(window([p |$p.lastName]),sortAsc(p |$p.age->toOne()), y| $y->rank(),'rank_test') - + col(x |$x.lastName,'firstName') + ,col(window([p |$p.lastName]),sortAsc(p |$p.age->toOne()), y| $y->rank(),'rank_test') + ]) - ->filter(row | $row.getInteger('rank_test') ==1); + ->filter(row | $row.getInteger('rank_test') ==1); }; - + let res = toSQLString($func, simpleRelationalMappingInc, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select "root".LASTNAME as "firstName", "root"."rank_test" as "rank_test" from (select "_subroot".LASTNAME as LASTNAME, rank() OVER (Partition By "_subroot".LASTNAME Order By "_subroot".AGE ASC) as "rank_test" from personTable as "_subroot") as "root" where "root"."rank_test" = 1',$res); } function <> meta::relational::tests::projection::sybaseIQ::testQueryWithJoinUsingWindowAttributeInFilter():Boolean[1] -{ +{ let func ={| meta::relational::tests::model::simple::Person.all() ->project([ - col(x |$x.lastName,'firstName') - ,col(window([p |$p.lastName ,p|$p.manager.lastName->toOne()]),sortAsc(p |$p.age->toOne()), y| $y->rank(),'rank_test') - + col(x |$x.lastName,'firstName') + ,col(window([p |$p.lastName ,p|$p.manager.lastName->toOne()]),sortAsc(p |$p.age->toOne()), y| $y->rank(),'rank_test') + ]) ->filter(row | $row.getInteger('rank_test') ==1)->filter(row| $row.getInteger('rank_test')==2); }; - + let res = toSQLString($func, simpleRelationalMappingInc, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select "root".LASTNAME as "firstName", "root"."rank_test" as "rank_test" from (select "_subroot".LASTNAME as LASTNAME, rank() OVER (Partition By "_subroot".LASTNAME,"personTable_d#7_d#3_m2_d#3_m1_d#3_m2".LASTNAME Order By "_subroot".AGE ASC) as "rank_test" from personTable as "_subroot" left outer join personTable as "personTable_d#7_d#3_m2_d#3_m1_d#3_m2" on ("_subroot".MANAGERID = "personTable_d#7_d#3_m2_d#3_m1_d#3_m2".ID)) as "root" where "root"."rank_test" = 1 and "root"."rank_test" = 2',$res); } @@ -241,15 +243,15 @@ function <> meta::relational::tests::projection::sybaseIQ::testQueryW let func ={| meta::relational::tests::model::simple::Person.all() ->project([ - col(x |$x.lastName,'firstName') + col(x |$x.lastName,'firstName') ,col(x|$x.manager.firstName ,'managerFirstName') - ,col(window([p |$p.lastName ,p|$p.manager.lastName->toOne()]),sortAsc(p |$p.age->toOne()), y| $y->rank(),'rank_test') + ,col(window([p |$p.lastName ,p|$p.manager.lastName->toOne()]),sortAsc(p |$p.age->toOne()), y| $y->rank(),'rank_test') ]) ->filter(row | $row.getString('firstName') =='Mohammed') ->filter(row|$row.getString('managerFirstName')=='Scott') ->filter(row| $row.getInteger('rank_test')==2); }; - + let res = toSQLString($func, simpleRelationalMappingInc, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select "root".LASTNAME as "firstName", "root".FIRSTNAME as "managerFirstName", "root"."rank_test" as "rank_test" from (select "_subroot".LASTNAME as LASTNAME, "personTable_d#7_d#4_m2".FIRSTNAME as FIRSTNAME, rank() OVER (Partition By "_subroot".LASTNAME,"personTable_d#7_d#4_m2".LASTNAME Order By "_subroot".AGE ASC) as "rank_test" from personTable as "_subroot" left outer join personTable as "personTable_d#7_d#4_m2" on ("_subroot".MANAGERID = "personTable_d#7_d#4_m2".ID) where "_subroot".LASTNAME = \'Mohammed\' and "personTable_d#7_d#4_m2".FIRSTNAME = \'Scott\') as "root" where "root"."rank_test" = 2',$res); } @@ -259,4 +261,4 @@ function <> meta::relational::tests::projection::sybaseIQ::testDynaFu let func = {|Order.all()->project([col(o|$o.id, 'id'), col(window(o|$o.zeroPnl), sortAsc(o|$o.quantity), y|$y->rank(), 'testCol')]) }; let result = toSQLString($func, simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select "root".ID as "id", rank() OVER (Partition By case when "orderPnlView_d#2_dy0#2_d_m1_d_m1_d_m2".pnl = 0 then \'true\' else \'false\' end Order By "root".quantity ASC) as "testCol" from orderTable as "root" left outer join (select distinct "root".ORDER_ID as ORDER_ID, "root".pnl as pnl, "accountTable_d#2_dy0#2_l_d#2_dy0#2_m3_r".ID as accountId, "salesPersonTable_d#2_dy0#2_l_d#2_dy0#2_m4_md".NAME as supportContact, "salesPersonTable_d#2_dy0#2_l_d#2_dy0#2_m4_md".PERSON_ID as supportContactId from orderPnlTable as "root" left outer join orderTable as "orderTable_d#2_dy0#2_d#2_dy0#2_m3" on ("root".ORDER_ID = "orderTable_d#2_dy0#2_d#2_dy0#2_m3".ID) left outer join accountTable as "accountTable_d#2_dy0#2_l_d#2_dy0#2_m3_r" on ("orderTable_d#2_dy0#2_d#2_dy0#2_m3".accountID = "accountTable_d#2_dy0#2_l_d#2_dy0#2_m3_r".ID) left outer join salesPersonTable as "salesPersonTable_d#2_dy0#2_l_d#2_dy0#2_m4_md" on ("orderTable_d#2_dy0#2_d#2_dy0#2_m3".accountID = "salesPersonTable_d#2_dy0#2_l_d#2_dy0#2_m4_md".ACCOUNT_ID) where "root".pnl > 0) as "orderPnlView_d#2_dy0#2_d_m1_d_m1_d_m2" on ("orderPnlView_d#2_dy0#2_d_m1_d_m1_d_m2".ORDER_ID = "root".ID)', $result); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQSliceTakeLimitDrop.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQSliceTakeLimitDrop.pure index 57b1f024932..f5952b3a6bb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQSliceTakeLimitDrop.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQSliceTakeLimitDrop.pure @@ -15,28 +15,29 @@ import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::relational::functions::sqlstring::*; function <> meta::relational::tests::query::function::sybaseIQ::testSliceByVendor():Boolean[1] { // Sybase is has specific checks - + let f2 = {|Person.all()->project(p|$p.firstName, 'firstName')->sort(asc('firstName'))->slice(3, 5);}; - + let s4 = toSQLString($f2, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select "root".FIRSTNAME as "firstName" from personTable as "root" order by "firstName" limit 3,2', $s4); - + let f3 = {|Person.all()->project([col(p|$p.firstName, 'firstName'), col(p|$p.lastName, 'lastName')])->slice(0,50)->restrict('firstName')->sort(asc('firstName'))->slice(3, 5);}; - + let s5 = toSQLString($f3, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select "firstName" as "firstName" from (select "limitoffset_via_window_subquery"."firstName" as "firstName", "limitoffset_via_window_subquery"."lastName" as "lastName" from ' + '(select "root".FIRSTNAME as "firstName", "root".LASTNAME as "lastName", row_number() OVER (Order By "root".FIRSTNAME) as "row_number" from personTable as "root") ' - + 'as "limitoffset_via_window_subquery" where "limitoffset_via_window_subquery".row_number <= 50) as "subselect" order by "firstName" limit 3,2', $s5); - - + + 'as "limitoffset_via_window_subquery" where "limitoffset_via_window_subquery".row_number <= 50) as "subselect" order by "firstName" limit 3,2', $s5); + + let f4 = {|Person.all()->project([col(p|$p.firstName, 'firstName'), col(p|$p.lastName, 'lastName')])->sort(asc('firstName'))->slice(0,50)->restrict('firstName');}; - + let s6 = toSQLString($f4, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select "firstName" as "firstName" from (select "limitoffset_via_window_subquery"."firstName" as "firstName", "limitoffset_via_window_subquery"."lastName" as "lastName" from (select "root".FIRSTNAME as "firstName", "root".LASTNAME as "lastName", row_number() OVER (Order By "root".FIRSTNAME ASC) as "row_number" from personTable as "root") as "limitoffset_via_window_subquery" where "limitoffset_via_window_subquery".row_number <= 50) as "subselect"', $s6); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQSort.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQSort.pure index 64db43579ed..5c39a0b2841 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQSort.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQSort.pure @@ -13,9 +13,11 @@ // limitations under the License. import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::pure::metamodel::tds::*; import meta::relational::functions::sqlstring::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQSqlFunctionsInMapping.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQSqlFunctionsInMapping.pure index 56fdd53f884..4db57b98a46 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQSqlFunctionsInMapping.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQSqlFunctionsInMapping.pure @@ -29,14 +29,17 @@ import meta::relational::functions::toDDL::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::authentication::*; function <> meta::relational::tests::mapping::sqlFunction::sybaseIQ::testToSQLStringWithParseDateInQueryForSybaseIQ():Boolean[1] { - let sybaseIqSql = toSQLString(|SqlFunctionDemo.all()->project([s | $s.string2TimestampStr->parseDate()], ['timestamp']), testMapping, meta::relational::runtime::DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); + let sybaseIqSql = toSQLString(|SqlFunctionDemo.all()->project([s | $s.string2TimestampStr->parseDate()], ['timestamp']), testMapping, meta::relational::runtime::DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select cast("root".string2date as timestamp) as "timestamp" from dataTable as "root"',$sybaseIqSql->sqlRemoveFormatting()); } @@ -128,7 +131,7 @@ function <> meta::relational::tests::mapping::sqlFunction::sybaseIQ:: |SqlFunctionDemo.all()->project([s | $s.adjustDate], ['Dt']), testMapping, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals([%2003-07-12T00:00:00.000000000+0000, %2003-07-13T00:00:00.000000000+0000], $result.values->at(0).rows.values); meta::relational::functions::asserts::assertSameSQL('select dateadd(DAY, -7, "root".dateTime) as "Dt" from dataTable as "root"', $result); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQTDSExtend.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQTDSExtend.pure index ef9d1872e7e..2639b0bc6e3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQTDSExtend.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQTDSExtend.pure @@ -17,7 +17,9 @@ import meta::pure::executionPlan::toString::*; import meta::pure::executionPlan::*; import meta::relational::mapping::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::tds::sybaseIQ::testStringConcatSQLGeneration():Boolean[1] { @@ -26,7 +28,7 @@ function <> meta::relational::tests::tds::sybaseIQ::testStringConcatS col({p:meta::relational::tests::model::simple::Person[1]|$p.lastName}, 'lastName'), col({p:meta::relational::tests::model::simple::Person[1]|$p.age}, 'age')]) ->extend(col({row:TDSRow[1]|$row.getString('firstName') + $row.getString('lastName')}, 'exprString3'))}; - + let mapping = meta::relational::tests::simpleRelationalMapping; let sqlResultSybaseIQ = meta::relational::functions::sqlstring::toSQLString($func, $mapping, meta::relational::runtime::DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQTDSFilter.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQTDSFilter.pure index 2d750cdc49b..eaf73862e89 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQTDSFilter.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQTDSFilter.pure @@ -15,7 +15,9 @@ import meta::relational::functions::sqlstring::*; import meta::relational::mapping::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::metamodel::tds::*; import meta::pure::profiles::*; import meta::relational::tests::model::simple::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQTDSWindowColumn.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQTDSWindowColumn.pure index 31445a4a35b..f6c28745bd8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQTDSWindowColumn.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQTDSWindowColumn.pure @@ -14,7 +14,9 @@ import meta::relational::functions::sqlstring::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::functions::math::olap::*; import meta::relational::tests::model::simple::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQTempTableSqlStatements.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQTempTableSqlStatements.pure index 1eefb7cabf2..bb0da97e220 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQTempTableSqlStatements.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQTempTableSqlStatements.pure @@ -17,6 +17,7 @@ import meta::relational::functions::pureToSqlQuery::metamodel::*; import meta::relational::functions::sqlQueryToString::*; import meta::relational::metamodel::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::metamodel::relation::*; function <> meta::relational::tests::sqlToString::sybaseIQ::testTempTableSqlStatementsForSybaseIQ(): Boolean[*] @@ -32,5 +33,5 @@ function <> meta::relational::tests::sqlToString::sybaseIQ::testTempT '\nROW DELIMITED BY \'\r\n\'']->joinStrings(''), 'Drop table if exists temp_table_test;' ]; - meta::relational::functions::sqlQueryToString::tests::compareSqls($actualSqls, $expectedSqls); + meta::relational::functions::sqlQueryToString::tests::compareSqls($actualSqls, $expectedSqls); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQToSQLString.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQToSQLString.pure index cdcf49e6671..de73d77a4c5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQToSQLString.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQToSQLString.pure @@ -17,10 +17,12 @@ import meta::pure::mapping::*; import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::pure::profiles::*; import meta::relational::functions::sqlstring::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; function meta::relational::tests::functions::sqlstring::sybaseIQ::testCasesForDocGeneration():TestCase[*] { @@ -36,7 +38,7 @@ function meta::relational::tests::functions::sqlstring::sybaseIQ::testCasesForDo expectedSql = 'select case when ("root".FIRSTNAME like \'tri%\') then \'true\' else \'false\' end as "a" from personTable as "root"', generateUsageFor = [meta::pure::functions::string::startsWith_String_1__String_1__Boolean_1_] ), - + ^TestCase( id ='testToSQLStringJoinStrings_SybaseIQ', query = {|Firm.all()->groupBy([f|$f.legalName], @@ -103,7 +105,7 @@ function <> meta::relational::tests::functions::sqlstring::sybaseIQ:: } function <> meta::relational::tests::functions::sqlstring::sybaseIQ::testToSQLStringWithPosition():Boolean[1] -{ +{ [DatabaseType.SybaseIQ]->map(db| let s = toSQLString( |meta::relational::tests::mapping::propertyfunc::model::domain::Person.all()->project(p|$p.firstName, 'firstName'), @@ -236,15 +238,15 @@ function <> meta::relational::tests::functions::sqlstring::sybaseIQ:: let expected = [ pair(DatabaseType.SybaseIQ, 'select datepart(DAYOFYEAR,"root".tradeDate) as "doy" from tradeTable as "root"') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all() ->project(col(t|$t.date->dayOfYear(), 'doy')), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); @@ -258,11 +260,11 @@ function <> meta::relational::tests::functions::sqlstring::sybaseIQ:: let expected = [ pair(DatabaseType.SybaseIQ, $common) ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Person.all()->project([ a | $a.firstName->ltrim(), @@ -270,7 +272,7 @@ function <> meta::relational::tests::functions::sqlstring::sybaseIQ:: a | $a.firstName->rtrim() ], ['ltrim', 'trim', 'rtrim']), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); @@ -284,17 +286,17 @@ function <> meta::relational::tests::functions::sqlstring::sybaseIQ:: let expected = [ pair(DatabaseType.SybaseIQ, $common) ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all()->project([ a | $a.quantity->cbrt() ], ['cbrt']), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); @@ -393,8 +395,8 @@ function <> meta::relational::tests::functions::sqlstring::sybaseIQ: { let result = toSQLString(|Person.all()->project([ a | if ( if ($a.firstName == 'B', | true, | false), | true, | false) - ], - ['a']), + ], + ['a']), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select case when case when "root".FIRSTNAME = \'B\' then \'true\' else \'false\' end = \'true\' then \'true\' else \'false\' end as "a" from personTable as "root"', $result); } @@ -403,8 +405,8 @@ function <> meta::relational::tests::functions::sqlstring::sybaseIQ:: { let result = toSQLString(|Person.all()->project([ a | true || false - ], - ['a']), + ], + ['a']), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select case when ((\'true\' = \'true\' or \'false\' = \'true\')) then \'true\' else \'false\' end as "a" from personTable as "root"', $result); } @@ -413,8 +415,8 @@ function <> meta::relational::tests::functions::sqlstring::sybaseIQ:: { let result = toSQLString(|Location.all()->project([ a | $a.censusdate->toOne()->datePart() - ], - ['a']), + ], + ['a']), simpleRelationalMappingInc, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select date("root"."date") as "a" from locationTable as "root"', $result); } @@ -423,9 +425,9 @@ function <> meta::relational::tests::functions::sqlstring::sybaseIQ:: { let result = toSQLString( |Person.all()->project([a|$a.firstName->startsWith('Dummy [With Sq Brackets]')], ['a']), - simpleRelationalMapping, + simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - + assertEquals('select case when ("root".FIRSTNAME like \'Dummy \\[With Sq Brackets]%\' escape \'\\\') then \'true\' else \'false\' end as "a" from personTable as "root"', $result); } @@ -435,9 +437,9 @@ function <> meta::relational::tests::functions::sqlstring::sybaseIQ:: |Person.all() ->project([#/Person/firstName!name#]) ->filter(a|$a.getString('name')->startsWith('Dummy [With Sq Brackets]')), - simpleRelationalMapping, + simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - + assertEquals('select "root".FIRSTNAME as "name" from personTable as "root" where "root".FIRSTNAME like \'Dummy \\[With Sq Brackets]%\' escape \'\\\'', $result); } @@ -446,15 +448,15 @@ function <> meta::relational::tests::functions::sqlstring::sybaseIQ:: let expected = [ pair(DatabaseType.SybaseIQ, 'select dateadd(DAY, -(day("root".tradeDate) - 1), "root".tradeDate) as "date" from tradeTable as "root"') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all() ->project(col(t|$t.date->firstDayOfMonth(), 'date')), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); @@ -466,17 +468,17 @@ function <> meta::relational::tests::functions::sqlstring::sybaseIQ:: let expected = [ pair(DatabaseType.SybaseIQ, 'select dateadd(DAY, -(datepart(dayofyear, "root".tradeDate) - 1), "root".tradeDate) as "date" from tradeTable as "root"') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all() ->project(col(t|$t.date->firstDayOfYear(), 'date')), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); - + assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); )->distinct() == [true]; } @@ -486,17 +488,17 @@ function <> meta::relational::tests::functions::sqlstring::sybaseIQ:: let expected = [ pair(DatabaseType.SybaseIQ, 'select dateadd(DAY, -(datepart(dayofyear, today()) - 1), today()) as "date" from tradeTable as "root"') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all() ->project(col(t|firstDayOfThisYear(), 'date')), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); - + assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); )->distinct() == [true]; } @@ -511,174 +513,174 @@ function <> meta::relational::tests::functions::sqlstring::sybaseIQ:: let expected = [ pair(DatabaseType.SybaseIQ, 'select dateadd(DAY, -(mod(datepart(weekday, "root".tradeDate)+5, 7)), "root".tradeDate) as "date" from tradeTable as "root"') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all() ->project(col(t|$t.date->firstDayOfWeek(), 'date')), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); - + assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); )->distinct() == [true]; } function <> meta::relational::tests::functions::sqlstring::sybaseIQ::testSqlGenerationForBooleanProject_IQ():Boolean[1] { - - let result1a = toSQLString(|Interaction.all()->project(col(p|true, 'active')), + + let result1a = toSQLString(|Interaction.all()->project(col(p|true, 'active')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select \'true\' as "active" from interactionTable as "root"', $result1a); - let result1b = toSQLString(|Interaction.all()->project(col(p|!true, 'active')), + let result1b = toSQLString(|Interaction.all()->project(col(p|!true, 'active')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select case when (not \'true\' = \'true\') then \'true\' else \'false\' end as "active" from interactionTable as "root"', $result1b); - let result1c = toSQLString(|Interaction.all()->project(col(p|false, 'active')), + let result1c = toSQLString(|Interaction.all()->project(col(p|false, 'active')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select \'false\' as "active" from interactionTable as "root"', $result1c); - let result1d = toSQLString(|Interaction.all()->project(col(p|!false, 'active')), + let result1d = toSQLString(|Interaction.all()->project(col(p|!false, 'active')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select case when (not \'false\' = \'true\') then \'true\' else \'false\' end as "active" from interactionTable as "root"', $result1d); - - let result2 = toSQLString(|Interaction.all()->project(col(p|$p.active, 'active')), + + let result2 = toSQLString(|Interaction.all()->project(col(p|$p.active, 'active')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select case when "root"."active" = \'Y\' then \'true\' else \'false\' end as "active" from interactionTable as "root"', $result2); - let result3 = toSQLString(|Interaction.all()->project(col(p|$p.active == true, 'active')), + let result3 = toSQLString(|Interaction.all()->project(col(p|$p.active == true, 'active')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select case when (case when "root"."active" = \'Y\' then \'true\' else \'false\' end = \'true\') then \'true\' else \'false\' end as "active" from interactionTable as "root"', $result3); - let result4 = toSQLString(|Interaction.all()->project(col(p|$p.active && true, 'active')), + let result4 = toSQLString(|Interaction.all()->project(col(p|$p.active && true, 'active')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select case when ((case when "root"."active" = \'Y\' then \'true\' else \'false\' end = \'true\' and \'true\' = \'true\')) then \'true\' else \'false\' end as "active" from interactionTable as "root"', $result4); - let result5 = toSQLString(|Interaction.all()->project(col(p|if($p.active, |1, |0), 'active')), + let result5 = toSQLString(|Interaction.all()->project(col(p|if($p.active, |1, |0), 'active')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select case when case when "root"."active" = \'Y\' then \'true\' else \'false\' end = \'true\' then 1 else 0 end as "active" from interactionTable as "root"', $result5); - - let result6 = toSQLString(|Interaction.all()->project(col(p|$p.active->in(true), 'active')), + + let result6 = toSQLString(|Interaction.all()->project(col(p|$p.active->in(true), 'active')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - assertEquals('select case when (case when "root"."active" = \'Y\' then \'true\' else \'false\' end = \'true\') then \'true\' else \'false\' end as "active" from interactionTable as "root"', $result6); + assertEquals('select case when (case when "root"."active" = \'Y\' then \'true\' else \'false\' end = \'true\') then \'true\' else \'false\' end as "active" from interactionTable as "root"', $result6); - let result7 = toSQLString(|Interaction.all()->project(col(p|$p.target.firstName->isEmpty(), 'active')), + let result7 = toSQLString(|Interaction.all()->project(col(p|$p.target.firstName->isEmpty(), 'active')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - assertEquals('select case when ("personTable_d#5_d_m1".FIRSTNAME is null) then \'true\' else \'false\' end as "active" from interactionTable as "root" left outer join personTable as "personTable_d#5_d_m1" on ("root".targetId = "personTable_d#5_d_m1".ID)', $result7); + assertEquals('select case when ("personTable_d#5_d_m1".FIRSTNAME is null) then \'true\' else \'false\' end as "active" from interactionTable as "root" left outer join personTable as "personTable_d#5_d_m1" on ("root".targetId = "personTable_d#5_d_m1".ID)', $result7); - let result10 = toSQLString(|Interaction.all()->project(col(p|!$p.target.firstName->isEmpty(), 'active')), + let result10 = toSQLString(|Interaction.all()->project(col(p|!$p.target.firstName->isEmpty(), 'active')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - assertEquals('select case when (not "personTable_d#6_d_m1".FIRSTNAME is null) then \'true\' else \'false\' end as "active" from interactionTable as "root" left outer join personTable as "personTable_d#6_d_m1" on ("root".targetId = "personTable_d#6_d_m1".ID)', $result10); + assertEquals('select case when (not "personTable_d#6_d_m1".FIRSTNAME is null) then \'true\' else \'false\' end as "active" from interactionTable as "root" left outer join personTable as "personTable_d#6_d_m1" on ("root".targetId = "personTable_d#6_d_m1".ID)', $result10); - let result13 = toSQLString(|Interaction.all()->project(col(p|($p.target.firstName->isEmpty() || $p.target.firstName->isEmpty()), 'active')), + let result13 = toSQLString(|Interaction.all()->project(col(p|($p.target.firstName->isEmpty() || $p.target.firstName->isEmpty()), 'active')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - assertEquals('select case when (("personTable_d#2_dy0_d#4_d_m1".FIRSTNAME is null or "personTable_d#2_dy0_d#4_d_m1".FIRSTNAME is null)) then \'true\' else \'false\' end as "active" from interactionTable as "root" left outer join personTable as "personTable_d#2_dy0_d#4_d_m1" on ("root".targetId = "personTable_d#2_dy0_d#4_d_m1".ID)', $result13); - - let result14 = toSQLString(|Interaction.all()->project(col(p|($p.target.firstName->isEmpty() && $p.target.firstName->isEmpty()), 'active')), + assertEquals('select case when (("personTable_d#2_dy0_d#4_d_m1".FIRSTNAME is null or "personTable_d#2_dy0_d#4_d_m1".FIRSTNAME is null)) then \'true\' else \'false\' end as "active" from interactionTable as "root" left outer join personTable as "personTable_d#2_dy0_d#4_d_m1" on ("root".targetId = "personTable_d#2_dy0_d#4_d_m1".ID)', $result13); + + let result14 = toSQLString(|Interaction.all()->project(col(p|($p.target.firstName->isEmpty() && $p.target.firstName->isEmpty()), 'active')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - assertEquals('select case when (("personTable_d#2_dy0_d#4_d_m1".FIRSTNAME is null and "personTable_d#2_dy0_d#4_d_m1".FIRSTNAME is null)) then \'true\' else \'false\' end as "active" from interactionTable as "root" left outer join personTable as "personTable_d#2_dy0_d#4_d_m1" on ("root".targetId = "personTable_d#2_dy0_d#4_d_m1".ID)', $result14); + assertEquals('select case when (("personTable_d#2_dy0_d#4_d_m1".FIRSTNAME is null and "personTable_d#2_dy0_d#4_d_m1".FIRSTNAME is null)) then \'true\' else \'false\' end as "active" from interactionTable as "root" left outer join personTable as "personTable_d#2_dy0_d#4_d_m1" on ("root".targetId = "personTable_d#2_dy0_d#4_d_m1".ID)', $result14); } function <> meta::relational::tests::functions::sqlstring::sybaseIQ::testSqlGenerationForBooleanProject_IQ2():Boolean[1] { - let result8 = toSQLString(|Interaction.all()->project(col(p|$p.target.firstName->isEmpty() == true, 'active')), + let result8 = toSQLString(|Interaction.all()->project(col(p|$p.target.firstName->isEmpty() == true, 'active')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - assertEquals('select case when ("personTable_d#6_d_m1".FIRSTNAME is null) then \'true\' else \'false\' end as "active" from interactionTable as "root" left outer join personTable as "personTable_d#6_d_m1" on ("root".targetId = "personTable_d#6_d_m1".ID)', $result8); + assertEquals('select case when ("personTable_d#6_d_m1".FIRSTNAME is null) then \'true\' else \'false\' end as "active" from interactionTable as "root" left outer join personTable as "personTable_d#6_d_m1" on ("root".targetId = "personTable_d#6_d_m1".ID)', $result8); - let result9 = toSQLString(|Interaction.all()->project(col(p|$p.target.firstName->isEmpty() == false, 'active')), + let result9 = toSQLString(|Interaction.all()->project(col(p|$p.target.firstName->isEmpty() == false, 'active')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - assertEquals('select case when (not "personTable_d#6_d_m1".FIRSTNAME is null) then \'true\' else \'false\' end as "active" from interactionTable as "root" left outer join personTable as "personTable_d#6_d_m1" on ("root".targetId = "personTable_d#6_d_m1".ID)', $result9); + assertEquals('select case when (not "personTable_d#6_d_m1".FIRSTNAME is null) then \'true\' else \'false\' end as "active" from interactionTable as "root" left outer join personTable as "personTable_d#6_d_m1" on ("root".targetId = "personTable_d#6_d_m1".ID)', $result9); - let result11 = toSQLString(|Interaction.all()->project(col(p|$p.target.firstName->isEmpty()->in(false), 'active')), + let result11 = toSQLString(|Interaction.all()->project(col(p|$p.target.firstName->isEmpty()->in(false), 'active')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - assertEquals('select case when (not "personTable_d#6_d_m1".FIRSTNAME is null) then \'true\' else \'false\' end as "active" from interactionTable as "root" left outer join personTable as "personTable_d#6_d_m1" on ("root".targetId = "personTable_d#6_d_m1".ID)', $result11); + assertEquals('select case when (not "personTable_d#6_d_m1".FIRSTNAME is null) then \'true\' else \'false\' end as "active" from interactionTable as "root" left outer join personTable as "personTable_d#6_d_m1" on ("root".targetId = "personTable_d#6_d_m1".ID)', $result11); - let result12 = toSQLString(|Interaction.all()->project(col(p|!($p.target.firstName->isEmpty()->in(false)), 'active')), + let result12 = toSQLString(|Interaction.all()->project(col(p|!($p.target.firstName->isEmpty()->in(false)), 'active')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - assertEquals('select case when (("personTable_d#7_d_m1".FIRSTNAME is null)) then \'true\' else \'false\' end as "active" from interactionTable as "root" left outer join personTable as "personTable_d#7_d_m1" on ("root".targetId = "personTable_d#7_d_m1".ID)', $result12); + assertEquals('select case when (("personTable_d#7_d_m1".FIRSTNAME is null)) then \'true\' else \'false\' end as "active" from interactionTable as "root" left outer join personTable as "personTable_d#7_d_m1" on ("root".targetId = "personTable_d#7_d_m1".ID)', $result12); } function <> meta::relational::tests::functions::sqlstring::sybaseIQ::testSqlGenerationForBooleanFilter_IQ():Boolean[1] { - let result1a = toSQLString(|Interaction.all()->filter(p|true)->project(col(p|$p.id, 'id')), + let result1a = toSQLString(|Interaction.all()->filter(p|true)->project(col(p|$p.id, 'id')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select "root".ID as "id" from interactionTable as "root" where \'true\' = \'true\'', $result1a); - - let result1b = toSQLString(|Interaction.all()->filter(p|!true)->project(col(p|$p.id, 'id')), + + let result1b = toSQLString(|Interaction.all()->filter(p|!true)->project(col(p|$p.id, 'id')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select "root".ID as "id" from interactionTable as "root" where not \'true\' = \'true\'', $result1b); - let result1c = toSQLString(|Interaction.all()->filter(p|false)->project(col(p|$p.id, 'id')), + let result1c = toSQLString(|Interaction.all()->filter(p|false)->project(col(p|$p.id, 'id')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select "root".ID as "id" from interactionTable as "root" where \'false\' = \'true\'', $result1c); - - let result1d = toSQLString(|Interaction.all()->filter(p|!false)->project(col(p|$p.id, 'id')), + + let result1d = toSQLString(|Interaction.all()->filter(p|!false)->project(col(p|$p.id, 'id')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select "root".ID as "id" from interactionTable as "root" where not \'false\' = \'true\'', $result1d); - let result2 = toSQLString(|Interaction.all()->filter(p|$p.active)->project(col(p|$p.id, 'id')), + let result2 = toSQLString(|Interaction.all()->filter(p|$p.active)->project(col(p|$p.id, 'id')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select "root".ID as "id" from interactionTable as "root" where case when "root"."active" = \'Y\' then \'true\' else \'false\' end = \'true\'', $result2); - let result3 = toSQLString(|Interaction.all()->filter(p|$p.active == true)->project(col(p|$p.id, 'id')), + let result3 = toSQLString(|Interaction.all()->filter(p|$p.active == true)->project(col(p|$p.id, 'id')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select "root".ID as "id" from interactionTable as "root" where case when "root"."active" = \'Y\' then \'true\' else \'false\' end = \'true\'', $result3); - - let result4 = toSQLString(|Interaction.all()->filter(p|$p.active && true)->project(col(p|$p.id, 'id')), + + let result4 = toSQLString(|Interaction.all()->filter(p|$p.active && true)->project(col(p|$p.id, 'id')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - assertEquals('select "root".ID as "id" from interactionTable as "root" where (case when "root"."active" = \'Y\' then \'true\' else \'false\' end = \'true\' and \'true\' = \'true\')', $result4); - - let result5 = toSQLString(|Interaction.all()->filter(p|if($p.active, |1, |0) == 1)->project(col(p|$p.id, 'id')), + assertEquals('select "root".ID as "id" from interactionTable as "root" where (case when "root"."active" = \'Y\' then \'true\' else \'false\' end = \'true\' and \'true\' = \'true\')', $result4); + + let result5 = toSQLString(|Interaction.all()->filter(p|if($p.active, |1, |0) == 1)->project(col(p|$p.id, 'id')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - assertEquals('select "root".ID as "id" from interactionTable as "root" where case when case when "root"."active" = \'Y\' then \'true\' else \'false\' end = \'true\' then 1 else 0 end = 1', $result5); - - let result6 = toSQLString(|Interaction.all()->filter(p|$p.active->in(true))->project(col(p|$p.id, 'id')), + assertEquals('select "root".ID as "id" from interactionTable as "root" where case when case when "root"."active" = \'Y\' then \'true\' else \'false\' end = \'true\' then 1 else 0 end = 1', $result5); + + let result6 = toSQLString(|Interaction.all()->filter(p|$p.active->in(true))->project(col(p|$p.id, 'id')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - assertEquals('select "root".ID as "id" from interactionTable as "root" where case when "root"."active" = \'Y\' then \'true\' else \'false\' end = \'true\'', $result6); - - let result7 = toSQLString(|Interaction.all()->filter(p|$p.target.firstName->isEmpty())->project(col(p|$p.id, 'id')), + assertEquals('select "root".ID as "id" from interactionTable as "root" where case when "root"."active" = \'Y\' then \'true\' else \'false\' end = \'true\'', $result6); + + let result7 = toSQLString(|Interaction.all()->filter(p|$p.target.firstName->isEmpty())->project(col(p|$p.id, 'id')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - assertEquals('select "root".ID as "id" from interactionTable as "root" left outer join personTable as "personTable_d#6_d#2_m1" on ("root".targetId = "personTable_d#6_d#2_m1".ID) where "personTable_d#6_d#2_m1".FIRSTNAME is null', $result7); + assertEquals('select "root".ID as "id" from interactionTable as "root" left outer join personTable as "personTable_d#6_d#2_m1" on ("root".targetId = "personTable_d#6_d#2_m1".ID) where "personTable_d#6_d#2_m1".FIRSTNAME is null', $result7); - let result10 = toSQLString(|Interaction.all()->filter(p|!$p.target.firstName->isEmpty())->project(col(p|$p.id, 'id')), + let result10 = toSQLString(|Interaction.all()->filter(p|!$p.target.firstName->isEmpty())->project(col(p|$p.id, 'id')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - assertEquals('select "root".ID as "id" from interactionTable as "root" left outer join personTable as "personTable_d#7_d#2_m1" on ("root".targetId = "personTable_d#7_d#2_m1".ID) where not "personTable_d#7_d#2_m1".FIRSTNAME is null', $result10); - - let result13 = toSQLString(|Interaction.all()->filter(p|$p.target.firstName->isEmpty() || $p.target.firstName->isEmpty())->project(col(p|$p.id, 'id')), + assertEquals('select "root".ID as "id" from interactionTable as "root" left outer join personTable as "personTable_d#7_d#2_m1" on ("root".targetId = "personTable_d#7_d#2_m1".ID) where not "personTable_d#7_d#2_m1".FIRSTNAME is null', $result10); + + let result13 = toSQLString(|Interaction.all()->filter(p|$p.target.firstName->isEmpty() || $p.target.firstName->isEmpty())->project(col(p|$p.id, 'id')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - assertEquals('select "root".ID as "id" from interactionTable as "root" left outer join personTable as "personTable_d#3_dy0_d#4_d#2_m1" on ("root".targetId = "personTable_d#3_dy0_d#4_d#2_m1".ID) where ("personTable_d#3_dy0_d#4_d#2_m1".FIRSTNAME is null or "personTable_d#3_dy0_d#4_d#2_m1".FIRSTNAME is null)', $result13); + assertEquals('select "root".ID as "id" from interactionTable as "root" left outer join personTable as "personTable_d#3_dy0_d#4_d#2_m1" on ("root".targetId = "personTable_d#3_dy0_d#4_d#2_m1".ID) where ("personTable_d#3_dy0_d#4_d#2_m1".FIRSTNAME is null or "personTable_d#3_dy0_d#4_d#2_m1".FIRSTNAME is null)', $result13); - let result14 = toSQLString(|Interaction.all()->filter(p|$p.target.firstName->isEmpty() && $p.target.firstName->isEmpty())->project(col(p|$p.id, 'id')), + let result14 = toSQLString(|Interaction.all()->filter(p|$p.target.firstName->isEmpty() && $p.target.firstName->isEmpty())->project(col(p|$p.id, 'id')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - assertEquals('select "root".ID as "id" from interactionTable as "root" left outer join personTable as "personTable_d#3_dy0_d#4_d#2_m1" on ("root".targetId = "personTable_d#3_dy0_d#4_d#2_m1".ID) where ("personTable_d#3_dy0_d#4_d#2_m1".FIRSTNAME is null and "personTable_d#3_dy0_d#4_d#2_m1".FIRSTNAME is null)', $result14); + assertEquals('select "root".ID as "id" from interactionTable as "root" left outer join personTable as "personTable_d#3_dy0_d#4_d#2_m1" on ("root".targetId = "personTable_d#3_dy0_d#4_d#2_m1".ID) where ("personTable_d#3_dy0_d#4_d#2_m1".FIRSTNAME is null and "personTable_d#3_dy0_d#4_d#2_m1".FIRSTNAME is null)', $result14); } function <> meta::relational::tests::functions::sqlstring::sybaseIQ::testSqlGenerationForBooleanFilter_IQ2():Boolean[1] { - let result8 = toSQLString(|Interaction.all()->filter(p|$p.target.firstName->isEmpty() == true)->project(col(p|$p.id, 'id')), + let result8 = toSQLString(|Interaction.all()->filter(p|$p.target.firstName->isEmpty() == true)->project(col(p|$p.id, 'id')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - assertEquals('select "root".ID as "id" from interactionTable as "root" left outer join personTable as "personTable_d#7_d#2_m1" on ("root".targetId = "personTable_d#7_d#2_m1".ID) where "personTable_d#7_d#2_m1".FIRSTNAME is null', $result8); + assertEquals('select "root".ID as "id" from interactionTable as "root" left outer join personTable as "personTable_d#7_d#2_m1" on ("root".targetId = "personTable_d#7_d#2_m1".ID) where "personTable_d#7_d#2_m1".FIRSTNAME is null', $result8); - let result9 = toSQLString(|Interaction.all()->filter(p|$p.target.firstName->isEmpty() == false)->project(col(p|$p.id, 'id')), + let result9 = toSQLString(|Interaction.all()->filter(p|$p.target.firstName->isEmpty() == false)->project(col(p|$p.id, 'id')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - assertEquals('select "root".ID as "id" from interactionTable as "root" left outer join personTable as "personTable_d#7_d#2_m1" on ("root".targetId = "personTable_d#7_d#2_m1".ID) where not "personTable_d#7_d#2_m1".FIRSTNAME is null', $result9); + assertEquals('select "root".ID as "id" from interactionTable as "root" left outer join personTable as "personTable_d#7_d#2_m1" on ("root".targetId = "personTable_d#7_d#2_m1".ID) where not "personTable_d#7_d#2_m1".FIRSTNAME is null', $result9); - let result11 = toSQLString(|Interaction.all()->filter(p|$p.target.firstName->isEmpty()->in(false))->project(col(p|$p.id, 'id')), + let result11 = toSQLString(|Interaction.all()->filter(p|$p.target.firstName->isEmpty()->in(false))->project(col(p|$p.id, 'id')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - assertEquals('select "root".ID as "id" from interactionTable as "root" left outer join personTable as "personTable_d#7_d#2_m1" on ("root".targetId = "personTable_d#7_d#2_m1".ID) where not "personTable_d#7_d#2_m1".FIRSTNAME is null', $result11); + assertEquals('select "root".ID as "id" from interactionTable as "root" left outer join personTable as "personTable_d#7_d#2_m1" on ("root".targetId = "personTable_d#7_d#2_m1".ID) where not "personTable_d#7_d#2_m1".FIRSTNAME is null', $result11); - let result12 = toSQLString(|Interaction.all()->filter(p|!$p.target.firstName->isEmpty()->in(false))->project(col(p|$p.id, 'id')), + let result12 = toSQLString(|Interaction.all()->filter(p|!$p.target.firstName->isEmpty()->in(false))->project(col(p|$p.id, 'id')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - assertEquals('select "root".ID as "id" from interactionTable as "root" left outer join personTable as "personTable_d#8_d#2_m1" on ("root".targetId = "personTable_d#8_d#2_m1".ID) where ("personTable_d#8_d#2_m1".FIRSTNAME is null)', $result12); + assertEquals('select "root".ID as "id" from interactionTable as "root" left outer join personTable as "personTable_d#8_d#2_m1" on ("root".targetId = "personTable_d#8_d#2_m1".ID) where ("personTable_d#8_d#2_m1".FIRSTNAME is null)', $result12); - let result15 = toSQLString(|Interaction.all()->filter(p|isTrue($p.target.firstName == 'Andrew')), + let result15 = toSQLString(|Interaction.all()->filter(p|isTrue($p.target.firstName == 'Andrew')), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - assertEquals('select "root".ID as "id" from interactionTable as "root" left outer join personTable as "personTable_d#7_d#2_m1" on ("root".targetId = "personTable_d#7_d#2_m1".ID) where ("personTable_d#7_d#2_m1".FIRSTNAME is null and "personTable_d#7_d#2_m1".FIRSTNAME is null)', $result15); + assertEquals('select "root".ID as "id" from interactionTable as "root" left outer join personTable as "personTable_d#7_d#2_m1" on ("root".targetId = "personTable_d#7_d#2_m1".ID) where ("personTable_d#7_d#2_m1".FIRSTNAME is null and "personTable_d#7_d#2_m1".FIRSTNAME is null)', $result15); } function <> meta::relational::tests::functions::sqlstring::sybaseIQ::testToSqlGenerationMinuteSecond():Boolean[1] @@ -686,18 +688,18 @@ function <> meta::relational::tests::functions::sqlstring::sybaseIQ:: let expected = [ pair(DatabaseType.SybaseIQ, 'select minute("root".settlementDateTime) as "settlementDateTimeMinute", second("root".settlementDateTime) as "settlementDateTimeSecond" from tradeTable as "root"') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all()->project([ t | $t.settlementDateTime->cast(@Date)->toOne()->minute(), t | $t.settlementDateTime->cast(@Date)->toOne()->second() ], ['settlementDateTimeMinute', 'settlementDateTimeSecond']), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); @@ -714,25 +716,25 @@ function <> meta::relational::tests::functions::sqlstring::sybaseIQ:: { let date=%2018-03-05; let result = meta::relational::functions::sqlstring::toSQLString(|Firm.all()->project([f|$f.legalName, f|$f.employees.locations->filter(o|$o.censusdate == $date).censusdate], ['firm','employee address census date']), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - assertSameSQL('select "root".LEGALNAME as "firm", "locationTable_d#5_f_d_d_m2_r"."date" as "employee address census date" from firmTable as "root" left outer join personTable as "personTable_d#7_d_m2" on ("root".ID = "personTable_d#7_d_m2".FIRMID) left outer join (select "locationTable_d#5_f_d".PERSONID as PERSONID, "locationTable_d#5_f_d"."date" as "date" from locationTable as "locationTable_d#5_f_d" where "locationTable_d#5_f_d"."date" = convert(DATE, \'2018-03-05\', 121)) as "locationTable_d#5_f_d_d_m2_r" on ("personTable_d#7_d_m2".ID = "locationTable_d#5_f_d_d_m2_r".PERSONID)', $result); + assertSameSQL('select "root".LEGALNAME as "firm", "locationTable_d#5_f_d_d_m2_r"."date" as "employee address census date" from firmTable as "root" left outer join personTable as "personTable_d#7_d_m2" on ("root".ID = "personTable_d#7_d_m2".FIRMID) left outer join (select "locationTable_d#5_f_d".PERSONID as PERSONID, "locationTable_d#5_f_d"."date" as "date" from locationTable as "locationTable_d#5_f_d" where "locationTable_d#5_f_d"."date" = convert(DATE, \'2018-03-05\', 121)) as "locationTable_d#5_f_d_d_m2_r" on ("personTable_d#7_d_m2".ID = "locationTable_d#5_f_d_d_m2_r".PERSONID)', $result); } function <> meta::relational::tests::functions::sqlstring::sybaseIQ::testSybaseDistinctTake():Boolean[1] { let iq = meta::relational::functions::sqlstring::toSQLString(|Person.all()->project(f|$f.firstName, 'firstName')->distinct()->take(10), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); let ase = meta::relational::functions::sqlstring::toSQLString(|Person.all()->project(f|$f.firstName, 'firstName')->distinct()->take(10), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); - + let sql = 'select distinct top 10 "root".FIRSTNAME as "firstName" from personTable as "root"'; - - assertSameSQL($sql, $iq); - assertSameSQL($sql, $ase); + + assertSameSQL($sql, $iq); + assertSameSQL($sql, $ase); } function <> meta::relational::tests::functions::sqlstring::sybaseIQ::testSqlGenerationDivide_AllDBs():Boolean[1] { let query = {|Trade.all()->filter(t | $t.id == 2)->map(t | $t.quantity->divide(1000000))}; let expectedSQL = 'select ((1.0 * "root".quantity) / 1000000) from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeEventViewMaxTradeEventDate_d#4_d#4_m5" on ("root".ID = "tradeEventViewMaxTradeEventDate_d#4_d#4_m5".trade_id) where "root".ID = 2'; - + let resultSybaseIQ = meta::relational::functions::sqlstring::toSQLString($query, simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertSameSQL($expectedSQL, $resultSybaseIQ); } @@ -770,4 +772,4 @@ function <> meta::relational::tests::functions::sqlstring::sybaseIQ:: ]), simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select cast("root".quantity as decimal) as "decimal", cast("root".quantity as double) as "float" from tradeTable as "root"', $result); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQWithFunction.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQWithFunction.pure index 7f5f16518c5..61d826295ee 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQWithFunction.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQWithFunction.pure @@ -15,8 +15,10 @@ import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::relational::functions::sqlstring::*; @@ -39,7 +41,7 @@ function <> meta::relational::tests::query::function::sybaseIQ::testF function <> meta::relational::tests::query::function::sybaseIQ::testFilterUsingFirstDayOfThisYearSybase():Boolean[1] { let fn = {|Trade.all()->filter(t | $t.date >= firstDayOfThisYear())}; - + let s = toSQLString($fn, simpleRelationalMapping, meta::relational::runtime::DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeEventViewMaxTradeEventDate_d#2_d#2_m5".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeEventViewMaxTradeEventDate_d#2_d#2_m5" on ("root".ID = "tradeEventViewMaxTradeEventDate_d#2_d#2_m5".trade_id) where "root".tradeDate >= dateadd(DAY, -(datepart(dayofyear, today()) - 1), today())',$s); @@ -48,7 +50,7 @@ function <> meta::relational::tests::query::function::sybaseIQ::testF function <> meta::relational::tests::query::function::sybaseIQ::testFilterUsingFirstDayOfThisQuarterSybase():Boolean[1] { let fn = {|Trade.all()->filter(t | $t.date >= firstDayOfThisQuarter())}; - + let s = toSQLString($fn, simpleRelationalMapping, meta::relational::runtime::DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeEventViewMaxTradeEventDate_d#2_d#2_m5".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeEventViewMaxTradeEventDate_d#2_d#2_m5" on ("root".ID = "tradeEventViewMaxTradeEventDate_d#2_d#2_m5".trade_id) where "root".tradeDate >= dateadd(QUARTER, quarter(today()) - 1, dateadd(DAY, -(datepart(dayofyear, today()) - 1), today()))',$s); @@ -56,14 +58,14 @@ function <> meta::relational::tests::query::function::sybaseIQ::testF function <> meta::relational::tests::query::function::sybaseIQ::testFilterUsingIndexOfSybase():Boolean[1] { - let fn = {|Person.all()->filter({p | ($p.firm->toOne().legalName->indexOf('S')== 9)})}; + let fn = {|Person.all()->filter({p | ($p.firm->toOne().legalName->indexOf('S')== 9)})}; let s = toSQLString($fn, simpleRelationalMapping, meta::relational::runtime::DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" left outer join firmTable as "firmTable_d#3_dy0_d#3_d_m1" on ("firmTable_d#3_dy0_d#3_d_m1".ID = "root".FIRMID) where LOCATE("firmTable_d#3_dy0_d#3_d_m1".LEGALNAME, \'S\') = 9',$s); - - let fun = {|Address.all()->filter({p | ($p.comments->toOne()->indexOf('%')== 17)})}; + + let fun = {|Address.all()->filter({p | ($p.comments->toOne()->indexOf('%')== 17)})}; let p = toSQLString($fun, simpleRelationalMapping, meta::relational::runtime::DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select "root".ID as "pk_0", "root".NAME as "name", "root".STREET as "street", "root".TYPE as "type", "root".COMMENTS as "comments" from addressTable as "root" where LOCATE("root".COMMENTS, \'%\') = 17',$p); - + } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/src/main/resources/core_relational_trino.definition.json b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/src/main/resources/core_relational_trino.definition.json index 96477ac33c9..a5d73f8c88d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/src/main/resources/core_relational_trino.definition.json +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/src/main/resources/core_relational_trino.definition.json @@ -1,6 +1,6 @@ { "name": "core_relational_trino", - "pattern": "(meta::relational::functions::sqlQueryToString::trino|meta::relational::tests::sqlQueryToString::trino|meta::pure::alloy::connections|meta::protocols::pure)(::.*)?", + "pattern": "(meta::relational::functions::sqlQueryToString::trino|meta::relational::tests::sqlQueryToString::trino|meta::pure::alloy::connections|meta::external::store::relational::runtime|meta::protocols::pure)(::.*)?", "dependencies": [ "platform", "platform_functions", diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/src/main/resources/core_relational_trino/relational/sqlQueryToString/trinoExtension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/src/main/resources/core_relational_trino/relational/sqlQueryToString/trinoExtension.pure index a14b3b9dcb5..ba808039b6d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/src/main/resources/core_relational_trino/relational/sqlQueryToString/trinoExtension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/src/main/resources/core_relational_trino/relational/sqlQueryToString/trinoExtension.pure @@ -4,6 +4,7 @@ import meta::relational::functions::sqlQueryToString::*; import meta::relational::metamodel::operation::*; import meta::relational::metamodel::relation::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::extension::*; import meta::relational::extension::*; @@ -274,4 +275,4 @@ function <> meta::relational::functions::sqlQueryToString::trino { assert($identifier->matches('[a-zA-Z0-9_"]*'), '[unsupported-api] special chars are not supported in table/column names'); $identifier->processIdentifierWithQuoteChar('"', $dbConfig); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/src/main/resources/core_relational_trino/relational/sqlQueryToString/trinoTestSuiteInvoker.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/src/main/resources/core_relational_trino/relational/sqlQueryToString/trinoTestSuiteInvoker.pure index 93c83a25754..1555a95a80b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/src/main/resources/core_relational_trino/relational/sqlQueryToString/trinoTestSuiteInvoker.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/src/main/resources/core_relational_trino/relational/sqlQueryToString/trinoTestSuiteInvoker.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::test::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::dbTestRunner::*; @@ -23,7 +24,7 @@ function <> meta::relational::tests::sqlQueryToString::trin // If a feature described in extension APIs / test suite is not supported, // then throw an exception with message that starts with '[unsupported-api]' // Tests which raise such exception will be reported as ignored by the runner - + meta::relational::tests::dbSpecificTests->collectParameterizedTests('Trino', ^DbTestConfig(dbType=DatabaseType.Trino, connection=$connection), meta::relational::tests::sqlQueryToString::trino::testParamCustomizations_FunctionDefinition_1__DbTestConfig_1__DbTestConfig_1_, diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/execution/TestExecutionPlan.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/execution/TestExecutionPlan.java index b72714de70a..33e64efdc3d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/execution/TestExecutionPlan.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/execution/TestExecutionPlan.java @@ -481,7 +481,7 @@ public void testSqlCommentsGraphFetch() @Test public void testUnion() throws Exception { - // executionPlan(|meta::pure::tests::model::simple::Person.all(), meta::relational::tests::mapping::union::unionMapping, meta::relational::tests::testRuntime())->meta::alloy::protocol::vX_X_X::transformation::fromPureGraph::executionPlan::transformPlan()->toJSON([], 1000, config(false, false, true, true)); + // executionPlan(|meta::pure::tests::model::simple::Person.all(), meta::relational::tests::mapping::union::unionMapping, meta::external::store::relational::tests::testRuntime())->meta::alloy::protocol::vX_X_X::transformation::fromPureGraph::executionPlan::transformPlan()->toJSON([], 1000, config(false, false, true, true)); String plan = "{\n" + " \"rootExecutionNode\": {\n" + " \"sqlQuery\": \"select \\\"unionBase\\\".u_type as u_type, \\\"unionBase\\\".\\\"pk_0_0\\\" as \\\"pk_0_0\\\", \\\"unionBase\\\".\\\"pk_0_1\\\" as \\\"pk_0_1\\\", \\\"unionBase\\\".\\\"lastName\\\" as \\\"lastName\\\" from (select '0' as u_type, \\\"root\\\".ID as \\\"pk_0_0\\\", null as \\\"pk_0_1\\\", \\\"root\\\".lastName_s1 as \\\"lastName\\\" from PersonSet1 as \\\"root\\\" UNION ALL select '1' as u_type, null as \\\"pk_0_0\\\", \\\"root\\\".ID as \\\"pk_0_1\\\", \\\"root\\\".lastName_s2 as \\\"lastName\\\" from PersonSet2 as \\\"root\\\") as \\\"unionBase\\\"\",\n" + diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/src/main/resources/core_relational_mutation_execution_test/relational/mutation/testRelationalMutation.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/src/main/resources/core_relational_mutation_execution_test/relational/mutation/testRelationalMutation.pure index ab6887899f4..526188ac119 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/src/main/resources/core_relational_mutation_execution_test/relational/mutation/testRelationalMutation.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/src/main/resources/core_relational_mutation_execution_test/relational/mutation/testRelationalMutation.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::extension::*; import meta::pure::executionPlan::*; @@ -31,7 +32,7 @@ function <> meta::relational::mutation::executionPlan::test::tes function <> meta::relational::mutation::executionPlan::test::testSimpleMutationPlanGeneration(): Boolean[1] { - let additionalColumnGenerator = + let additionalColumnGenerator = ',\n' + ' (\n' + ' generatedColumnName_LAST_NAME,\n' + @@ -236,84 +237,84 @@ function <> meta::relational::mutation::executionPlan::test::req function <> meta::relational::mutation::executionPlan::test::baseExecutionPlan(): String[1] { - 'Sequence\n' + - '(\n' + - ' type = String\n' + - ' (\n' + - ' FunctionParametersValidationNode\n' + - ' (\n' + - ' functionParameters = [jsonString:String[1]]\n' + - ' )\n' + - ' RelationalSave\n' + - ' (\n' + - ' type = String\n' + - ' requires = [jsonString(String[1])]\n' + - ' sql = %s\n' + - ' generatedVariableName = generatedVariableSingleRecordFromStream\n' + - ' columnValueGenerators =\n' + - ' [\n' + - ' (\n' + - ' generatedColumnName_FIRM,\n' + - ' ExternalFormat_Externalize\n' + - ' (\n' + - ' type = String\n' + - ' resultSizeRange = 1\n' + - ' checked = false\n' + - ' binding = meta::relational::mutation::executionPlan::test::Firm_Binding\n' + - '\n' + - ' (\n' + - ' PureExp\n' + - ' (\n' + - ' type = Class[impls=]\n' + - ' requires = [generatedVariableSingleRecordFromStream(meta::relational::mutation::executionPlan::test::Person[1])]\n' + - ' expression = $generatedVariableSingleRecordFromStream.firm\n' + - ' )\n' + - ' )\n' + - ' )\n' + - ' ),\n' + - ' (\n' + - ' generatedColumnName_FIRST_NAME,\n' + - ' PureExp\n' + - ' (\n' + - ' type = String\n' + - ' requires = [generatedVariableSingleRecordFromStream(meta::relational::mutation::executionPlan::test::Person[1])]\n' + - ' expression = $generatedVariableSingleRecordFromStream.firstName\n' + - ' )\n' + - ' ),\n' + - ' (\n' + - ' generatedColumnName_KERBEROS,\n' + - ' PureExp\n' + - ' (\n' + - ' type = String\n' + - ' requires = [generatedVariableSingleRecordFromStream(meta::relational::mutation::executionPlan::test::Person[1])]\n' + - ' expression = $generatedVariableSingleRecordFromStream.kerberos\n' + - ' )\n' + - ' )%s\n' + - ' ]\n' + - ' connection = RelationalDatabaseConnection(type = "%s")\n' + - '\n' + - ' \n' + - ' (\n' + - ' ExternalFormat_Internalize\n' + - ' (\n' + - ' type = Class[impls=]\n' + - ' resultSizeRange = *\n' + - ' binding = meta::relational::mutation::executionPlan::test::Person_Binding[application/json]\n' + - ' enableConstraints = true\n' + - ' checked = false\n' + - ' graphFetchTree = #{meta::relational::mutation::executionPlan::test::Person{firm{name,numberOfEmployees},firstName,kerberos,lastName}}#\n' + - '\n' + - ' (\n' + - ' VariableResolution\n' + - ' (\n' + - ' type = String\n' + - ' varName = jsonString\n' + - '\n' + - ' )\n' + - ' )\n' + - ' )\n' + - ' ) \n' + - ' )\n' + - ' )\n' + + 'Sequence\n' + + '(\n' + + ' type = String\n' + + ' (\n' + + ' FunctionParametersValidationNode\n' + + ' (\n' + + ' functionParameters = [jsonString:String[1]]\n' + + ' )\n' + + ' RelationalSave\n' + + ' (\n' + + ' type = String\n' + + ' requires = [jsonString(String[1])]\n' + + ' sql = %s\n' + + ' generatedVariableName = generatedVariableSingleRecordFromStream\n' + + ' columnValueGenerators =\n' + + ' [\n' + + ' (\n' + + ' generatedColumnName_FIRM,\n' + + ' ExternalFormat_Externalize\n' + + ' (\n' + + ' type = String\n' + + ' resultSizeRange = 1\n' + + ' checked = false\n' + + ' binding = meta::relational::mutation::executionPlan::test::Firm_Binding\n' + + '\n' + + ' (\n' + + ' PureExp\n' + + ' (\n' + + ' type = Class[impls=]\n' + + ' requires = [generatedVariableSingleRecordFromStream(meta::relational::mutation::executionPlan::test::Person[1])]\n' + + ' expression = $generatedVariableSingleRecordFromStream.firm\n' + + ' )\n' + + ' )\n' + + ' )\n' + + ' ),\n' + + ' (\n' + + ' generatedColumnName_FIRST_NAME,\n' + + ' PureExp\n' + + ' (\n' + + ' type = String\n' + + ' requires = [generatedVariableSingleRecordFromStream(meta::relational::mutation::executionPlan::test::Person[1])]\n' + + ' expression = $generatedVariableSingleRecordFromStream.firstName\n' + + ' )\n' + + ' ),\n' + + ' (\n' + + ' generatedColumnName_KERBEROS,\n' + + ' PureExp\n' + + ' (\n' + + ' type = String\n' + + ' requires = [generatedVariableSingleRecordFromStream(meta::relational::mutation::executionPlan::test::Person[1])]\n' + + ' expression = $generatedVariableSingleRecordFromStream.kerberos\n' + + ' )\n' + + ' )%s\n' + + ' ]\n' + + ' connection = RelationalDatabaseConnection(type = "%s")\n' + + '\n' + + ' \n' + + ' (\n' + + ' ExternalFormat_Internalize\n' + + ' (\n' + + ' type = Class[impls=]\n' + + ' resultSizeRange = *\n' + + ' binding = meta::relational::mutation::executionPlan::test::Person_Binding[application/json]\n' + + ' enableConstraints = true\n' + + ' checked = false\n' + + ' graphFetchTree = #{meta::relational::mutation::executionPlan::test::Person{firm{name,numberOfEmployees},firstName,kerberos,lastName}}#\n' + + '\n' + + ' (\n' + + ' VariableResolution\n' + + ' (\n' + + ' type = String\n' + + ' varName = jsonString\n' + + '\n' + + ' )\n' + + ' )\n' + + ' )\n' + + ' ) \n' + + ' )\n' + + ' )\n' + ')\n' } 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/HelperRelationalDatabaseConnectionBuilder.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/HelperRelationalDatabaseConnectionBuilder.java index 58473503405..c1476ad4b91 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/HelperRelationalDatabaseConnectionBuilder.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/HelperRelationalDatabaseConnectionBuilder.java @@ -26,7 +26,7 @@ public class HelperRelationalDatabaseConnectionBuilder { - public static void addTestDataSetUp(Root_meta_relational_runtime_TestDatabaseConnection test, String testDataSetupCsv, java.util.List testDataSetupSqls) + public static void addTestDataSetUp(Root_meta_external_store_relational_runtime_TestDatabaseConnection test, String testDataSetupCsv, java.util.List testDataSetupSqls) { if (testDataSetupCsv != null) { @@ -39,24 +39,19 @@ public static void addTestDataSetUp(Root_meta_relational_runtime_TestDatabaseCon } } - public static void addDatabaseConnectionProperties(Root_meta_relational_runtime_DatabaseConnection pureConnection, String element, String connectionType, String timeZone, Boolean quoteIdentifiers, CompileContext context) + public static void addDatabaseConnectionProperties(Root_meta_external_store_relational_runtime_DatabaseConnection pureConnection, String element, SourceInformation elementSourceInformation, String connectionType, String timeZone, Boolean quoteIdentifiers, CompileContext context) { - addDatabaseConnectionProperties(pureConnection, element, null, connectionType, timeZone, quoteIdentifiers, context); - } - - public static void addDatabaseConnectionProperties(Root_meta_relational_runtime_DatabaseConnection pureConnection, String element, SourceInformation elementSourceInformation, String connectionType, String timeZone, Boolean quoteIdentifiers, CompileContext context) - { - Root_meta_relational_runtime_DatabaseConnection connection = pureConnection._type(context.pureModel.getEnumValue("meta::relational::runtime::DatabaseType", connectionType)); + Root_meta_external_store_relational_runtime_DatabaseConnection connection = pureConnection._type(context.pureModel.getEnumValue("meta::relational::runtime::DatabaseType", connectionType)); connection._timeZone(timeZone); connection._quoteIdentifiers(quoteIdentifiers); try { - connection._element(HelperRelationalBuilder.resolveDatabase(element, elementSourceInformation, context)); + HelperRelationalBuilder.resolveDatabase(element, elementSourceInformation, context); } catch (RuntimeException e) { - connection._element(new Root_meta_relational_metamodel_Database_Impl(element)._name(element)); + new Root_meta_relational_metamodel_Database_Impl(element)._name(element); } } 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/RelationalCompilerExtension.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/RelationalCompilerExtension.java index 039ba72730c..51eadfd2a4d 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/RelationalCompilerExtension.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/RelationalCompilerExtension.java @@ -75,15 +75,15 @@ import org.finos.legend.engine.shared.core.operational.errorManagement.EngineException; import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_MapperPostProcessor; import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_PostProcessor; -import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_RelationalDatabaseConnection; -import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_RelationalDatabaseConnection_Impl; +import org.finos.legend.pure.generated.Root_meta_external_store_relational_runtime_RelationalDatabaseConnection; +import org.finos.legend.pure.generated.Root_meta_external_store_relational_runtime_RelationalDatabaseConnection_Impl; 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_data_EmbeddedData; import org.finos.legend.pure.generated.Root_meta_pure_functions_collection_List_Impl; import org.finos.legend.pure.generated.Root_meta_pure_metamodel_type_generics_GenericType_Impl; import org.finos.legend.pure.generated.Root_meta_pure_metamodel_valuespecification_InstanceValue_Impl; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Connection; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Connection; import org.finos.legend.pure.generated.Root_meta_pure_runtime_ExecutionContext; import org.finos.legend.pure.generated.Root_meta_relational_mapping_GroupByMapping_Impl; import org.finos.legend.pure.generated.Root_meta_relational_mapping_RelationalAssociationImplementation_Impl; @@ -342,7 +342,7 @@ public List> getExtraConnectionValueProcessors() + public List> getExtraConnectionValueProcessors() { return Lists.mutable.with( (connectionValue, context) -> @@ -351,7 +351,7 @@ public List extensions = IRelationalCompilerExtension.getExtensions(context); 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/compiler/test/TestRelationalCompilationFromGrammar.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/compiler/test/TestRelationalCompilationFromGrammar.java index c4b79c168b8..2278dfbd4f8 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/compiler/test/TestRelationalCompilationFromGrammar.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/compiler/test/TestRelationalCompilationFromGrammar.java @@ -2225,9 +2225,121 @@ public void testForMultipleRelationalConnections() " connection_1: relational::graphFetch::OneMappingConnection\n" + " ]\n" + " ];\n" + - "}\n", null, Collections.singletonList("COMPILATION error at [101:21-70]: Multiple RelationalDatabaseConnections are Not Supported for the same Store - relational::graphFetch::dbInc")); + "}\n", "COMPILATION error at [90:1-108:1]: Found 2 connections against store [dbInc] under a single runtime."); } - + + @Test + public void testForRelationalRuntimeErrors() + { + test("###Relational\n" + + "Database relational::graphFetch::dbInc\n" + + "(\n" + + " Table firmTable\n" + + " (\n" + + " FirmCode INTEGER PRIMARY KEY,\n" + + " FirmName VARCHAR(200)\n" + + " )\n" + + ")\n" + + "\n" + + "###Pure\n" + + "Class relational::graphFetch::Target_Firm\n" + + "{\n" + + " firmName: String[1];\n" + + " firmCode: Integer[1];\n" + + "}\n" + + "\n" + + "Class relational::graphFetch::Firm\n" + + "{\n" + + " name: String[1];\n" + + " id: Integer[1];\n" + + "}\n" + + "\n" + + "\n" + + "###Mapping\n" + + "Mapping relational::graphFetch::Relational_Mapping\n" + + "(\n" + + " *relational::graphFetch::Firm: Relational\n" + + " {\n" + + " ~primaryKey\n" + + " (\n" + + " [relational::graphFetch::dbInc]firmTable.FirmCode\n" + + " )\n" + + " ~mainTable [relational::graphFetch::dbInc]firmTable\n" + + " name: [relational::graphFetch::dbInc]firmTable.FirmName,\n" + + " id: [relational::graphFetch::dbInc]firmTable.FirmCode\n" + + " }\n" + + ")\n" + + "\n" + + "Mapping relational::graphFetch::M2M_Mapping\n" + + "(\n" + + " relational::graphFetch::Target_Firm: Pure\n" + + " {\n" + + " ~src relational::graphFetch::Firm\n" + + " firmName: $src.name->toUpper(),\n" + + " firmCode: $src.id\n" + + " }\n" + + ")\n" + + "\n" + + "###Connection\n" + + "RelationalDatabaseConnection relational::graphFetch::RelationalConnection\n" + + "{\n" + + " store: relational::graphFetch::dbInc;\n" + + " type: H2;\n" + + " specification: Static\n" + + " {\n" + + " name: 'name';\n" + + " host: 'host';\n" + + " port: 1234;\n" + + " };\n" + + " auth: Test\n" + + " {\n" + + " };\n" + + "}\n" + + "\n" + + "RelationalDatabaseConnection relational::graphFetch::SecondRelationalConnection\n" + + "{\n" + + " store: relational::graphFetch::dbInc;\n" + + " type: H2;\n" + + " specification: Static\n" + + " {\n" + + " name: 'name';\n" + + " host: 'host';\n" + + " port: 1234;\n" + + " };\n" + + " auth: Test\n" + + " {\n" + + " };\n" + + "}\n" + + "\n" + + "ModelChainConnection relational::graphFetch::OneMappingConnection\n" + + "{\n" + + " mappings: [\n" + + " relational::graphFetch::Relational_Mapping\n" + + " ];\n" + + "}\n" + + "\n" + + "\n" + + "###Runtime\n" + + "Runtime relational::graphFetch::ModelChainConnectionRuntime\n" + + "{\n" + + " mappings:\n" + + " [\n" + + " relational::graphFetch::M2M_Mapping\n" + + " ];\n" + + " connectionStores:\n" + + " [\n" + + " relational::graphFetch::RelationalConnection:\n" + + " [\n" + + " relational::graphFetch::dbInc\n" + + " ],\n" + + " relational::graphFetch::SecondRelationalConnection:\n" + + " [\n" + + " relational::graphFetch::dbInc\n" + + " ]\n" + + " ];\n" + + "}\n", "COMPILATION error at [90:1-107:1]: Found 2 connections against store [dbInc] under a single runtime."); + } + @Test public void testCompilationMissingEnumMapping() throws Exception { 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/compiler/test/TestRelationalConnectionCompilationRoundtrip.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/compiler/test/TestRelationalConnectionCompilationRoundtrip.java index 28e238cdaf7..901cd48ff25 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/compiler/test/TestRelationalConnectionCompilationRoundtrip.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/compiler/test/TestRelationalConnectionCompilationRoundtrip.java @@ -18,7 +18,7 @@ import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; import org.finos.legend.engine.protocol.pure.v1.model.SourceInformation; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; -import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_RelationalDatabaseConnection; +import org.finos.legend.pure.generated.Root_meta_external_store_relational_runtime_RelationalDatabaseConnection; import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_UserNamePasswordAuthenticationStrategy_Impl; import org.junit.Assert; import org.junit.Test; @@ -51,7 +51,7 @@ public void testMemSqlConnectionPropertiesPropagatedToCompiledGraph() " };\n" + "}\n"); - Root_meta_pure_alloy_connections_RelationalDatabaseConnection connection = (Root_meta_pure_alloy_connections_RelationalDatabaseConnection) result.getTwo().getConnection("simple::StaticConnection", SourceInformation.getUnknownSourceInformation()); + Root_meta_external_store_relational_runtime_RelationalDatabaseConnection connection = (Root_meta_external_store_relational_runtime_RelationalDatabaseConnection) result.getTwo().getConnection("simple::StaticConnection", SourceInformation.getUnknownSourceInformation()); String baseVaultReference = ((Root_meta_pure_alloy_connections_alloy_authentication_UserNamePasswordAuthenticationStrategy_Impl) connection._authenticationStrategy())._baseVaultReference(); String userNameVaultReference = ((Root_meta_pure_alloy_connections_alloy_authentication_UserNamePasswordAuthenticationStrategy_Impl) connection._authenticationStrategy())._userNameVaultReference(); String passwordVaultReference = ((Root_meta_pure_alloy_connections_alloy_authentication_UserNamePasswordAuthenticationStrategy_Impl) connection._authenticationStrategy())._passwordVaultReference(); @@ -104,7 +104,7 @@ public void testH2ConnectionPropertiesPropagatedToCompiledGraph() " {\n" + " };\n" + "}\n"); - Root_meta_pure_alloy_connections_RelationalDatabaseConnection connection = (Root_meta_pure_alloy_connections_RelationalDatabaseConnection) compiledGraph.getTwo().getConnection("simple::H2Connection", SourceInformation.getUnknownSourceInformation()); + Root_meta_external_store_relational_runtime_RelationalDatabaseConnection connection = (Root_meta_external_store_relational_runtime_RelationalDatabaseConnection) compiledGraph.getTwo().getConnection("simple::H2Connection", SourceInformation.getUnknownSourceInformation()); Boolean quoteIdentifiers = connection._quoteIdentifiers(); Assert.assertTrue(quoteIdentifiers); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/src/main/resources/core_relational_java_platform_binding/legendJavaPlatformBinding/executionPlanTest.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/src/main/resources/core_relational_java_platform_binding/legendJavaPlatformBinding/executionPlanTest.pure index 40b2a12800e..858ccd4cb3e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/src/main/resources/core_relational_java_platform_binding/legendJavaPlatformBinding/executionPlanTest.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/src/main/resources/core_relational_java_platform_binding/legendJavaPlatformBinding/executionPlanTest.pure @@ -26,6 +26,7 @@ import meta::pure::executionPlan::tests::datetime::*; import meta::relational::tests::tds::tabletds::*; import meta::pure::mapping::*; import meta::relational::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::mapping::inheritance::relational::*; import meta::relational::metamodel::join::*; @@ -37,7 +38,9 @@ import meta::relational::tests::groupBy::datePeriods::*; import meta::relational::tests::groupBy::datePeriods::domain::*; import meta::pure::executionPlan::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::modelToModel::test::shared::src::*; import meta::pure::graphFetch::executionPlan::*; @@ -54,7 +57,7 @@ function <> meta::relational::executionPlan::platformBinding::legendJ ->filter(p|$x>now()->adjust(-1, DurationUnit.DAYS)) ->project([col({p:meta::relational::tests::model::simple::Person[1]|$p.firstName}, 'firstName')]);}; - let res = meta::pure::executionPlan::executionPlan($lambda,simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let res = meta::pure::executionPlan::executionPlan($lambda,simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let expectedLegacyH2 = 'Sequence\n'+ @@ -117,8 +120,8 @@ function <> meta::relational::executionPlan::platformBinding::legendJ ')\n'; assertEqualsH2Compatible( - $expectedLegacyH2, - $expectedNewH2, + $expectedLegacyH2, + $expectedNewH2, $res->planToString(meta::relational::extension::relationalExtensions()) ); @@ -193,8 +196,8 @@ function <> meta::relational::executionPlan::platformBinding::legendJ ')\n'; assertEqualsH2Compatible( - $expectedJavaLegacyH2, - $expectedJavaNewH2, + $expectedJavaLegacyH2, + $expectedJavaNewH2, $withJava->planToString(meta::relational::extension::relationalExtensions()) ); } @@ -207,15 +210,16 @@ function <> meta::relational::executionPlan::platformBinding::legendJ employeeCount } }#; - + let query = {|meta::relational::graphFetch::tests::chain::Target_Firm.all()->graphFetch($tree)->serialize($tree)}; - - let modelChainConnection = ^meta::pure::mapping::modelToModel::ModelChainConnection( - element = ^meta::pure::mapping::modelToModel::ModelStore(), + + let modelChainConnection = ^meta::core::runtime::ConnectionStore( + element = ^meta::external::store::model::ModelStore(), + connection=^meta::external::store::model::ModelChainConnection( mappings = [meta::relational::tests::simpleRelationalMapping] - ); - let runtime = ^meta::pure::runtime::Runtime( - connections = meta::relational::tests::testRuntime().connections->concatenate($modelChainConnection) + )); + let runtime = ^meta::core::runtime::Runtime( + connectionStores = meta::external::store::relational::tests::testRuntime().connectionStores->concatenate($modelChainConnection) ); let res = meta::pure::executionPlan::executionPlan($query, meta::relational::graphFetch::tests::chain::M2M_Mapping, $runtime, meta::relational::extension::relationalExtensions()); @@ -228,7 +232,7 @@ function <> meta::relational::executionPlan::platformBinding::legendJ let newGlobalGraphFetchWithSequence = ^$globalGraphFetch(localGraphFetchExecutionNode = $newLocalGraphFetchWithSequence); let newRoot = ^$root(executionNodes = $newGlobalGraphFetchWithSequence); - let plan = ^$res(rootExecutionNode = $newRoot); + let plan = ^$res(rootExecutionNode = $newRoot); let expected = 'PureExp\n'+ @@ -340,7 +344,7 @@ function <> meta::relational::executionPlan::platformBinding::legendJ meta::relational::tests::model::simple::Person.all() ->filter(p|$x>now()->adjust(-1, DurationUnit.DAYS)) ->project([col({p:meta::relational::tests::model::simple::Person[1]|$p.firstName}, 'firstName')]);}; - let res = meta::pure::executionPlan::executionPlan($lambda,simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let res = meta::pure::executionPlan::executionPlan($lambda,simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let expectedLegacyH2 = 'Sequence\n'+ '(\n'+ @@ -402,8 +406,8 @@ function <> meta::relational::executionPlan::platformBinding::legendJ ')\n'; assertEqualsH2Compatible( - $expectedLegacyH2, - $expectedNewH2, + $expectedLegacyH2, + $expectedNewH2, $res->planToString(meta::relational::extension::relationalExtensions()) ); @@ -535,8 +539,8 @@ function <> meta::relational::executionPlan::platformBinding::legendJ ' 0024 }\n' + ')\n'; assertEqualsH2Compatible( - $expectedJavaLegacyH2, - $expectedJavaNewH2, + $expectedJavaLegacyH2, + $expectedJavaNewH2, $withJava->planToString(true, meta::relational::extension::relationalExtensions()) ); } @@ -548,7 +552,7 @@ function <> meta::relational::executionPlan::platformBinding::legendJ ->filter(p|$x>%2005-10-10->adjust(-1, DurationUnit.DAYS)) ->project([col({p:meta::relational::tests::model::simple::Person[1]|$p.firstName}, 'firstName')]);}; - let res = meta::pure::executionPlan::executionPlan($lambda,simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let res = meta::pure::executionPlan::executionPlan($lambda,simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let expectedLegacyH2 = 'Sequence\n'+ '(\n'+ @@ -609,8 +613,8 @@ function <> meta::relational::executionPlan::platformBinding::legendJ ')\n'; assertEqualsH2Compatible( - $expectedLegacyH2, - $expectedNewH2, + $expectedLegacyH2, + $expectedNewH2, $res->planToString(meta::relational::extension::relationalExtensions()) ); @@ -740,8 +744,8 @@ function <> meta::relational::executionPlan::platformBinding::legendJ ' 0023 }\n' + ')\n'; assertEqualsH2Compatible( - $expectedJavaLegacyH2, - $expectedJavaNewH2, + $expectedJavaLegacyH2, + $expectedJavaNewH2, $withJava->planToString(true, meta::relational::extension::relationalExtensions()) ); } @@ -753,7 +757,7 @@ function <> meta::relational::executionPlan::platformBinding::legendJ ->filter(p|$p.classification($asOf).type==$CLSFtype) ->project([x|$x.classification($asOf).type], ['classificationType'])->distinct();}; - let res = meta::pure::executionPlan::executionPlan($lambda,meta::relational::tests::milestoning::milestoningmap, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let res = meta::pure::executionPlan::executionPlan($lambda,meta::relational::tests::milestoning::milestoningmap, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let withJava = $res->generatePlatformCode(meta::pure::executionPlan::platformBinding::legendJava::legendJavaPlatformBindingId(), ^meta::pure::executionPlan::platformBinding::legendJava::LegendJavaPlatformBindingConfig(), relationalExtensionsWithLegendJavaPlatformBinding()); let expectedJavaLegacyH2 = @@ -895,8 +899,8 @@ function <> meta::relational::executionPlan::platformBinding::legendJ ' 0026 }\n' + ')\n'; assertEqualsH2Compatible( - $expectedJavaLegacyH2, - $expectedJavaNewH2, + $expectedJavaLegacyH2, + $expectedJavaNewH2, $withJava->planToString(true, meta::relational::extension::relationalExtensions()) ); } @@ -921,7 +925,7 @@ function <> meta::relational::executionPlan::platformBinding::legendJ ->filter(p|$x>%2005-10-10->adjust(-1, DurationUnit.DAYS)) ->project([col({p:meta::relational::tests::model::simple::Person[1]|$p.firstName}, 'firstName')]);}; - let unbound = meta::pure::executionPlan::executionPlan($lambda,simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let unbound = meta::pure::executionPlan::executionPlan($lambda,simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let withoutPlanId = $unbound->generatePlatformCode(meta::pure::executionPlan::platformBinding::legendJava::legendJavaPlatformBindingId(), ^meta::pure::executionPlan::platformBinding::legendJava::LegendJavaPlatformBindingConfig(), relationalExtensionsWithLegendJavaPlatformBinding()); let withoutPlanIdPackage = $withoutPlanId.globalImplementationSupport->cast(@JavaPlatformImplementation).classes.package->removeDuplicates(); @@ -946,11 +950,11 @@ function <> meta::relational::executionPlan::platformBinding::legendJ let query = {|meta::pure::executionPlan::constraints::tests::Person.all()->graphFetchChecked($tree)->serialize($tree)}; let mapping = meta::pure::executionPlan::constraints::tests::simpleRel; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let plan = executionPlan($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()); let withJava = $plan->generatePlatformCode(meta::pure::executionPlan::platformBinding::legendJava::legendJavaPlatformBindingId(), ^meta::pure::executionPlan::platformBinding::legendJava::LegendJavaPlatformBindingConfig(), relationalExtensionsWithLegendJavaPlatformBinding()); - + let generatedTree = $withJava.rootExecutionNode->cast(@PureExpressionPlatformExecutionNode).executionNodes->at(0)->cast(@GlobalGraphFetchExecutionNode).graphFetchTree.tree; let firmTree = $generatedTree.subTrees->filter(g | $g->cast(@RoutedPropertyGraphFetchTree).property.name->toOne()->equal('firm'))->toOne(); let employeesTree = $firmTree.subTrees->filter(g | $g->cast(@RoutedPropertyGraphFetchTree).property.name->toOne()->equal('employees'))->toOne()->cast(@RoutedPropertyGraphFetchTree); @@ -976,12 +980,12 @@ function <> meta::relational::executionPlan::platformBinding::legendJ let query = {|meta::pure::executionPlan::constraints::tests::Person.all()->graphFetchChecked($tree)->serialize($tree)}; let mapping = meta::pure::executionPlan::constraints::tests::simpleRel; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let plan = executionPlan($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()); let withJava = $plan->generatePlatformCode(meta::pure::executionPlan::platformBinding::legendJava::legendJavaPlatformBindingId(), ^meta::pure::executionPlan::platformBinding::legendJava::LegendJavaPlatformBindingConfig(), relationalExtensionsWithLegendJavaPlatformBinding()); - - + + let generatedTree = $withJava.rootExecutionNode->cast(@PureExpressionPlatformExecutionNode).executionNodes->at(0)->cast(@GlobalGraphFetchExecutionNode).graphFetchTree.tree; let firmTree = $generatedTree.subTrees->filter(g | $g->cast(@RoutedPropertyGraphFetchTree).property.name->toOne()->equal('firm'))->toOne(); let employeesTree = $firmTree.subTrees->filter(g | $g->cast(@RoutedPropertyGraphFetchTree).property.name->toOne()->equal('employees'))->toOne()->cast(@RoutedPropertyGraphFetchTree); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational.definition.json b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational.definition.json index 806b31ebcd3..d0ad8800aa4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational.definition.json +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational.definition.json @@ -1,6 +1,6 @@ { "name": "core_relational", - "pattern": "(meta::relational|meta::pure::mapping|meta::protocols::pure|meta::relational::tests::csv|meta::alloy::service::execution|meta::pure::tds|meta::pure::executionPlan|meta::pure::legend::connections|meta::pure::alloy::connections|meta::pure::milestoning|meta::pure::router|meta::alloy::objectReference|meta::pure::lineage|meta::pure::graphFetch)(::.*)?", + "pattern": "(meta::relational|meta::external::store::relational|meta::pure::mapping|meta::protocols::pure|meta::relational::tests::csv|meta::alloy::service::execution|meta::pure::tds|meta::pure::executionPlan|meta::pure::legend::connections|meta::pure::alloy::connections|meta::external::store::relational::runtime|meta::pure::milestoning|meta::pure::router|meta::alloy::objectReference|meta::pure::lineage|meta::pure::graphFetch)(::.*)?", "dependencies": [ "platform", "platform_functions", @@ -13,4 +13,4 @@ "core_service", "core" ] -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/legend/objectReference/objectReference.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/legend/objectReference/objectReference.pure index 50632eec4b5..04d273b922f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/legend/objectReference/objectReference.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/legend/objectReference/objectReference.pure @@ -15,6 +15,7 @@ import meta::json::*; import meta::relational::mapping::*; import meta::alloy::objectReference::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; @@ -112,4 +113,4 @@ function meta::alloy::objectReference::parseAlloyRelationalStoreObjectReferenceV pair('databaseConnection', $dbConn), pair('pkMap', $pkMap->fromJSON(Map)->cast(@Map)) ]->newMap(); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/rewrite/NOP/nonAggregationAware.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/rewrite/NOP/nonAggregationAware.pure index af5304e524d..38597cb7462 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/rewrite/NOP/nonAggregationAware.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/rewrite/NOP/nonAggregationAware.pure @@ -4,6 +4,7 @@ import meta::relational::functions::asserts::*; import meta::pure::router::printer::*; import meta::pure::extension::*; import meta::relational::extension::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::tests::aggregationAware::mapping::*; import meta::relational::tests::aggregationAware::domain::*; @@ -14,13 +15,13 @@ function <> meta::relational::tests::aggregationAware::testRewriteAsN let query = {|Wholesales.all()}; let mapping = relationalMapping; let runtime = runtime(); - + let result = execute($query, $mapping, $runtime, relationalExtensions()); - + assertEmpty($result.activities->filter(s|$s->instanceOf(meta::pure::mapping::aggregationAware::AggregationAwareActivity))); assertEqualsH2Compatible( - 'select "root".id as "pk_0", "root".sales_date as "pk_1", "root".is_cancelled_flag as "pk_2", "root".product_id as "pk_3", "root".revenue as "pk_4", "root".emp_id as "pk_5", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "isCancelled", "root".discount as "discount" from base_view.SalesTable as "root"', - 'select "root".id as "pk_0", "root".sales_date as "pk_1", "root".is_cancelled_flag as "pk_2", "root".product_id as "pk_3", "root".revenue as "pk_4", "root".emp_id as "pk_5", cast(case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as boolean) as "isCancelled", "root".discount as "discount" from base_view.SalesTable as "root"', + 'select "root".id as "pk_0", "root".sales_date as "pk_1", "root".is_cancelled_flag as "pk_2", "root".product_id as "pk_3", "root".revenue as "pk_4", "root".emp_id as "pk_5", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "isCancelled", "root".discount as "discount" from base_view.SalesTable as "root"', + 'select "root".id as "pk_0", "root".sales_date as "pk_1", "root".is_cancelled_flag as "pk_2", "root".product_id as "pk_3", "root".revenue as "pk_4", "root".emp_id as "pk_5", cast(case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as boolean) as "isCancelled", "root".discount as "discount" from base_view.SalesTable as "root"', $result->sqlRemoveFormatting() ); } @@ -30,19 +31,19 @@ function <> meta::relational::tests::aggregationAware::testRewriteAsN let query = {|Wholesales.all()->filter(x|$x.isCancelled == 'N').product.productId}; let mapping = relationalMapping; let runtime = runtime(); - + let result = execute($query, $mapping, $runtime, relationalExtensions()); assertEmpty($result.activities->filter(s|$s->instanceOf(meta::pure::mapping::aggregationAware::AggregationAwareActivity))); assertSameSQL('select "product_0".prod_id from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id) where case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end = \'N\'', $result); -} +} function <> meta::relational::tests::aggregationAware::testRewriteAsNOP::nonAggregationAware::testRewriteProjectFunction():Boolean[1] { let query = {|Wholesales.all()->project(x|$x.product.productId, ['Product ID'])}; let mapping = relationalMapping; let runtime = runtime(); - + let result = execute($query, $mapping, $runtime, relationalExtensions()); assertEmpty($result.activities->filter(s|$s->instanceOf(meta::pure::mapping::aggregationAware::AggregationAwareActivity))); @@ -54,9 +55,9 @@ function <> meta::relational::tests::aggregationAware::testRewriteAsN let query = {|Wholesales.all()->project(col(x|$x.product.productId, 'Product ID'))}; let mapping = relationalMapping; let runtime = runtime(); - + let result = execute($query, $mapping, $runtime, relationalExtensions()); - + assertEmpty($result.activities->filter(s|$s->instanceOf(meta::pure::mapping::aggregationAware::AggregationAwareActivity))); assertSameSQL('select "product_0".prod_id as "Product ID" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', $result); } @@ -66,13 +67,13 @@ function <> meta::relational::tests::aggregationAware::testRewriteAsN let query = {|Wholesales.all()->project([x|$x.product.productId, x|$x.isCancelled], ['Product ID', 'Is Cancelled'])}; let mapping = relationalMapping; let runtime = runtime(); - + let result = execute($query, $mapping, $runtime, relationalExtensions()); - + assertEmpty($result.activities->filter(s|$s->instanceOf(meta::pure::mapping::aggregationAware::AggregationAwareActivity))); assertEqualsH2Compatible( - 'select "product_0".prod_id as "Product ID", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', - 'select "product_0".prod_id as "Product ID", cast(case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as boolean) as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', + 'select "product_0".prod_id as "Product ID", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', + 'select "product_0".prod_id as "Product ID", cast(case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as boolean) as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', $result->sqlRemoveFormatting() ); } @@ -82,13 +83,13 @@ function <> meta::relational::tests::aggregationAware::testRewriteAsN let query = {|Wholesales.all()->project([col(x|$x.product.productId, 'Product ID'), col(x|$x.isCancelled, 'Is Cancelled')])}; let mapping = relationalMapping; let runtime = runtime(); - + let result = execute($query, $mapping, $runtime, relationalExtensions()); - + assertEmpty($result.activities->filter(s|$s->instanceOf(meta::pure::mapping::aggregationAware::AggregationAwareActivity))); assertEqualsH2Compatible( - 'select "product_0".prod_id as "Product ID", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', - 'select "product_0".prod_id as "Product ID", cast(case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as boolean) as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', + 'select "product_0".prod_id as "Product ID", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', + 'select "product_0".prod_id as "Product ID", cast(case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as boolean) as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', $result->sqlRemoveFormatting() ); } @@ -102,13 +103,13 @@ function <> meta::relational::tests::aggregationAware::testRewriteAsN }; let mapping = relationalMapping; let runtime = runtime(); - + let result = execute($query, $mapping, $runtime, relationalExtensions()); - + assertEmpty($result.activities->filter(s|$s->instanceOf(meta::pure::mapping::aggregationAware::AggregationAwareActivity))); assertEqualsH2Compatible( - 'select "product_0".prod_id as "Product ID", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "Is Cancelled", ("product_0".prod_id + 2) as "Product ID Added 2" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', - 'select "product_0".prod_id as "Product ID", cast(case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as boolean) as "Is Cancelled", ("product_0".prod_id + 2) as "Product ID Added 2" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', + 'select "product_0".prod_id as "Product ID", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "Is Cancelled", ("product_0".prod_id + 2) as "Product ID Added 2" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', + 'select "product_0".prod_id as "Product ID", cast(case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as boolean) as "Is Cancelled", ("product_0".prod_id + 2) as "Product ID Added 2" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', $result->sqlRemoveFormatting() ); } @@ -122,13 +123,14 @@ function <> meta::relational::tests::aggregationAware::testRewriteAsN }; let mapping = relationalMapping; let runtime = runtime(); - + let result = execute($query, $mapping, $runtime, relationalExtensions()); - + assertEmpty($result.activities->filter(s|$s->instanceOf(meta::pure::mapping::aggregationAware::AggregationAwareActivity))); assertEqualsH2Compatible( - 'select case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "Is Cancelled", max("product_0".prod_id) as "Max Product ID" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id) group by "Is Cancelled"', - 'select cast(case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as boolean) as "Is Cancelled", max("product_0".prod_id) as "Max Product ID" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id) group by "Is Cancelled"', + 'select case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "Is Cancelled", max("product_0".prod_id) as "Max Product ID" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id) group by "Is Cancelled"', + 'select cast(case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as boolean) as "Is Cancelled", max("product_0".prod_id) as "Max Product ID" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id) group by "Is Cancelled"', $result->sqlRemoveFormatting() ); -} \ No newline at end of file +} + diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/rewrite/NOP/nonGroupBy.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/rewrite/NOP/nonGroupBy.pure index a35b4fd6d97..b7c34dea2be 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/rewrite/NOP/nonGroupBy.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/rewrite/NOP/nonGroupBy.pure @@ -5,6 +5,7 @@ import meta::pure::extension::*; import meta::relational::extension::*; import meta::relational::functions::asserts::*; import meta::relational::tests::aggregationAware::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::aggregationAware::domain::*; import meta::relational::tests::aggregationAware::mapping::*; @@ -15,13 +16,13 @@ function <> meta::relational::tests::aggregationAware::testRewriteAsN let query = {|Wholesales.all()}; let mapping = simpleMapping; let runtime = runtime(); - + let result = execute($query, $mapping, $runtime, relationalExtensions()); - + assertEquals(' | [SCT_Main Class Wholesales].all();', $result.activities->filter(s|$s->instanceOf(meta::pure::mapping::aggregationAware::AggregationAwareActivity))->at(0)->cast(@meta::pure::mapping::aggregationAware::AggregationAwareActivity).rewrittenQuery); assertEqualsH2Compatible( - 'select "root".id as "pk_0", "root".sales_date as "pk_1", "root".is_cancelled_flag as "pk_2", "root".product_id as "pk_3", "root".revenue as "pk_4", "root".emp_id as "pk_5", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "isCancelled", "root".discount as "discount" from base_view.SalesTable as "root"', - 'select "root".id as "pk_0", "root".sales_date as "pk_1", "root".is_cancelled_flag as "pk_2", "root".product_id as "pk_3", "root".revenue as "pk_4", "root".emp_id as "pk_5", cast(case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as boolean) as "isCancelled", "root".discount as "discount" from base_view.SalesTable as "root"', + 'select "root".id as "pk_0", "root".sales_date as "pk_1", "root".is_cancelled_flag as "pk_2", "root".product_id as "pk_3", "root".revenue as "pk_4", "root".emp_id as "pk_5", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "isCancelled", "root".discount as "discount" from base_view.SalesTable as "root"', + 'select "root".id as "pk_0", "root".sales_date as "pk_1", "root".is_cancelled_flag as "pk_2", "root".product_id as "pk_3", "root".revenue as "pk_4", "root".emp_id as "pk_5", cast(case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as boolean) as "isCancelled", "root".discount as "discount" from base_view.SalesTable as "root"', $result->sqlRemoveFormatting() ); } @@ -31,9 +32,9 @@ function <> meta::relational::tests::aggregationAware::testRewriteAsN let query = {|Wholesales.all()->filter(x|$x.isCancelled == 'N').product.productId}; let mapping = simpleMapping; let runtime = runtime(); - + let result = execute($query, $mapping, $runtime, relationalExtensions()); - + assertEquals(' | [SCT_Main Class Wholesales].all() -> filter(x:meta::relational::tests::aggregationAware::domain::Wholesales[1] | $x.isCancelled == \'N\';) -> map(v_automap:meta::relational::tests::aggregationAware::domain::Wholesales[1] | $v_automap.product;) -> map(v_automap:meta::relational::tests::aggregationAware::domain::Product[1] | $v_automap.productId;);', $result.activities->filter(s|$s->instanceOf(meta::pure::mapping::aggregationAware::AggregationAwareActivity))->at(0)->cast(@meta::pure::mapping::aggregationAware::AggregationAwareActivity).rewrittenQuery); assertSameSQL('select "product_0".prod_id from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id) where case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end = \'N\'', $result); } @@ -43,9 +44,9 @@ function <> meta::relational::tests::aggregationAware::testRewriteAsN let query = {|Wholesales.all()->project(x|$x.product.productId, ['Product ID'])}; let mapping = simpleMapping; let runtime = runtime(); - + let result = execute($query, $mapping, $runtime, relationalExtensions()); - + assertEquals(' | [SCT_Main Class Wholesales].all() -> project(x:meta::relational::tests::aggregationAware::domain::Wholesales[1] | $x.product -> map(v_automap:meta::relational::tests::aggregationAware::domain::Product[1] | $v_automap.productId;);, \'Product ID\');', $result.activities->filter(s|$s->instanceOf(meta::pure::mapping::aggregationAware::AggregationAwareActivity))->at(0)->cast(@meta::pure::mapping::aggregationAware::AggregationAwareActivity).rewrittenQuery); assertSameSQL('select "product_0".prod_id as "Product ID" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', $result); } @@ -55,9 +56,9 @@ function <> meta::relational::tests::aggregationAware::testRewriteAsN let query = {|Wholesales.all()->project(col(x|$x.product.productId, 'Product ID'))}; let mapping = simpleMapping; let runtime = runtime(); - + let result = execute($query, $mapping, $runtime, relationalExtensions()); - + assertSameSQL('select "product_0".prod_id as "Product ID" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', $result); } @@ -66,13 +67,13 @@ function <> meta::relational::tests::aggregationAware::testRewriteAsN let query = {|Wholesales.all()->project([x|$x.product.productId, x|$x.isCancelled], ['Product ID', 'Is Cancelled'])}; let mapping = simpleMapping; let runtime = runtime(); - + let result = execute($query, $mapping, $runtime, relationalExtensions()); - + assertEquals(' | [SCT_Main Class Wholesales].all() -> project([x:meta::relational::tests::aggregationAware::domain::Wholesales[1] | $x.product -> map(v_automap:meta::relational::tests::aggregationAware::domain::Product[1] | $v_automap.productId;);, x:meta::relational::tests::aggregationAware::domain::Wholesales[1] | $x.isCancelled;], [\'Product ID\', \'Is Cancelled\']);', $result.activities->filter(s|$s->instanceOf(meta::pure::mapping::aggregationAware::AggregationAwareActivity))->at(0)->cast(@meta::pure::mapping::aggregationAware::AggregationAwareActivity).rewrittenQuery); assertEqualsH2Compatible( - 'select "product_0".prod_id as "Product ID", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', - 'select "product_0".prod_id as "Product ID", cast(case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as boolean) as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', + 'select "product_0".prod_id as "Product ID", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', + 'select "product_0".prod_id as "Product ID", cast(case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as boolean) as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', $result->sqlRemoveFormatting() ); } @@ -82,12 +83,12 @@ function <> meta::relational::tests::aggregationAware::testRewriteAsN let query = {|Wholesales.all()->project([col(x|$x.product.productId, 'Product ID'), col(x|$x.isCancelled, 'Is Cancelled')])}; let mapping = simpleMapping; let runtime = runtime(); - + let result = execute($query, $mapping, $runtime, relationalExtensions()); - + assertEqualsH2Compatible( - 'select "product_0".prod_id as "Product ID", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', - 'select "product_0".prod_id as "Product ID", cast(case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as boolean) as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', + 'select "product_0".prod_id as "Product ID", case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', + 'select "product_0".prod_id as "Product ID", cast(case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as boolean) as "Is Cancelled" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', $result->sqlRemoveFormatting() ); } @@ -101,9 +102,9 @@ function <> meta::relational::tests::aggregationAware::testRewriteAsN }; let mapping = simpleMapping; let runtime = runtime(); - + let result = execute($query, $mapping, $runtime, relationalExtensions()); - + assertEquals(' | [SCT_Main Class Wholesales].all() -> project([x:meta::relational::tests::aggregationAware::domain::Wholesales[1] | $x.product -> map(v_automap:meta::relational::tests::aggregationAware::domain::Product[1] | $v_automap.productId;);, x:meta::relational::tests::aggregationAware::domain::Wholesales[1] | $x.isCancelled;], [\'Product ID\', \'Is Cancelled\']) -> restrict(\'Product ID\');', $result.activities->filter(s|$s->instanceOf(meta::pure::mapping::aggregationAware::AggregationAwareActivity))->at(0)->cast(@meta::pure::mapping::aggregationAware::AggregationAwareActivity).rewrittenQuery); assertSameSQL('select "product_0".prod_id as "Product ID" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id)', $result); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/rewrite/objectGroupBy.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/rewrite/objectGroupBy.pure index 0ea9663460e..fa02497baee 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/rewrite/objectGroupBy.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/rewrite/objectGroupBy.pure @@ -4,6 +4,7 @@ import meta::relational::functions::asserts::*; import meta::pure::router::printer::*; import meta::pure::extension::*; import meta::relational::extension::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::tests::aggregationAware::mapping::*; import meta::relational::tests::aggregationAware::domain::*; @@ -14,16 +15,16 @@ function <> meta::relational::tests::aggregationAware::testRewrite::o { let query = {| Wholesales.all()->groupBy( - [x|1], - [agg(x|$x.revenue.price, y|$y->sum())], + [x|1], + [agg(x|$x.revenue.price, y|$y->sum())], ['Name', 'Total Price Sum'] ) }; let mapping = mappingWithMonthCannotBeAggregated; let runtime = runtime(); - + let result = execute($query, $mapping, $runtime, relationalExtensions()); - + assertSameSQL('select 1 as "Name", sum("root".revenue) as "Total Price Sum" from user_view_agg.SalesTable_Day as "root" group by "Name"', $result); } @@ -65,9 +66,9 @@ function <> meta::relational::tests::aggregationAware::testRewrite::o }; let mapping = simpleMapping; let runtime = runtime(); - + let result = execute($query, $mapping, $runtime, relationalExtensions()); - + assertSameSQL('select "product_0".prod_id as "Product ID", "root".discount as "Discount", "calendar_0".dt_date as "Product Date/Date", "calendar_0".fiscal_month as "Product Date/Fiscal Month/Value", "calendar_0".fiscal_year as "Product Date/Fiscal Year/Value", sum("root".revenue) as "Revenue/Total Price Sum" from base_view.SalesTable as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id) left outer join base_view.Calendar as "calendar_0" on ("root".sales_date = "calendar_0".dt_date) group by "Product ID","Discount","Product Date/Date","Product Date/Fiscal Month/Value","Product Date/Fiscal Year/Value"', $result); } @@ -83,9 +84,9 @@ function <> meta::relational::tests::aggregationAware::testRewrite::o }; let mapping = simpleMapping; let runtime = runtime(); - + let result = execute($query, $mapping, $runtime, relationalExtensions()); - + assertSameSQL('select concat("product_0".prod_name, \': \', cast("root".revenue as varchar)) as "Product Description", sum("root".revenue) as "Total Price Sum" from user_view_agg.SalesTable_Month as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id) group by "Product Description"', $result); } @@ -99,17 +100,17 @@ function <> meta::relational::tests::aggregationAware::testRewrite::o meta::relational::tests::aggregationAware::domain::Wholesales.all() ->filter(item | $item.product.productId == 2238011724) ->groupBy([x | $x.product.productId],[agg(x | $x.revenue.price, y | $y->sum())],['Product ID','Total Price 2']), - meta::relational::metamodel::join::JoinType.INNER, + meta::relational::metamodel::join::JoinType.INNER, ['Product ID'] ) - ->filter(x| abs($x.getFloat('Total Price 1') - $x.getFloat('Total Price 2')) > 1 ) + ->filter(x| abs($x.getFloat('Total Price 1') - $x.getFloat('Total Price 2')) > 1 ) ->restrict(['Product ID','Total Price 1','Total Price 2']) }; let mapping = simpleMapping; let runtime = runtime(); - + let result = execute($query, $mapping, $runtime, relationalExtensions()); - + assertSameSQL('select "salestable_month_0"."Product ID" as "Product ID", "salestable_month_0"."Total Price 1" as "Total Price 1", "salestable_month_0"."Total Price 2" as "Total Price 2" from (select "salestable_month_1"."Product ID" as "Product ID", "salestable_month_1"."Is Cancelled" as "Is Cancelled", "salestable_month_1"."Total Price 1" as "Total Price 1", "salestable_month_3"."Total Price 2" as "Total Price 2" from (select "product_0".prod_id as "Product ID", cast(case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end as boolean) as "Is Cancelled", sum("root".revenue) as "Total Price 1" from user_view_agg.SalesTable_Month as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id) where (case when "root".is_cancelled_flag = \'Y\' then \'true\' else \'false\' end = \'N\' and "product_0".prod_id = 2238011724) group by "Product ID","Is Cancelled") as "salestable_month_1" inner join (select "product_0".prod_id as "Product ID", sum("root".revenue) as "Total Price 2" from user_view_agg.SalesTable_Month as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id) where "product_0".prod_id = 2238011724 group by "Product ID") as "salestable_month_3" on ("salestable_month_1"."Product ID" = "salestable_month_3"."Product ID")) as "salestable_month_0" where abs(("salestable_month_0"."Total Price 1" - "salestable_month_0"."Total Price 2")) > 1', $result); } @@ -122,9 +123,9 @@ function <> meta::relational::tests::aggregationAware::testRewrite::o }; let mapping = mappingWithMultiDimensionAggregates; let runtime = runtime(); - + let result = execute($query, $mapping, $runtime, relationalExtensions()); - + assertSameSQL('select "product_0".prod_id as "Product ID", "product_0".prod_name as "Product Name", "productline_0".prod_line_name as "Product Line", "calendar_0".fiscal_month as "Month", sum("root".revenue) as "Total Price 1" from user_view_multi_agg.SalesTable_Product_Month as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id) left outer join base_view.ProductLine as "productline_0" on ("product_0".prod_line_id = "productline_0".prod_line_id) left outer join base_view.Calendar as "calendar_0" on ("root".sales_date = "calendar_0".dt_date) where "calendar_0".fiscal_year = 2017 group by "Product ID","Product Name","Product Line","Month"', $result); } @@ -136,9 +137,9 @@ function <> meta::relational::tests::aggregationAware::testRewrite::o }; let mapping = mappingWithMultiDimensionAggregates; let runtime = runtime(); - + let result = execute($query, $mapping, $runtime, relationalExtensions()); - + assertSameSQL('select "productline_0".prod_line_name as "Product Line", "salestable_prodline_year_1".aggCol as "Products Concat", sum("root".revenue) as "Total Price 1" from user_view_multi_agg.SalesTable_ProdLine_Year as "root" left outer join base_view.ProductLine as "productline_0" on ("root".prod_line_id = "productline_0".prod_line_id) left outer join (select "salestable_prodline_year_2".revenue as revenue, "salestable_prodline_year_2".prod_line_id as prod_line_id, "salestable_prodline_year_2".sales_date as sales_date, group_concat("product_0".prod_name separator \',\' ) as aggCol from user_view_multi_agg.SalesTable_ProdLine_Year as "salestable_prodline_year_2" left outer join base_view.ProductLine as "productline_1" on ("salestable_prodline_year_2".prod_line_id = "productline_1".prod_line_id) left outer join base_view.Product as "product_0" on ("product_0".prod_line_id = "productline_1".prod_line_id) group by "salestable_prodline_year_2".sales_date,"salestable_prodline_year_2".prod_line_id,"salestable_prodline_year_2".revenue) as "salestable_prodline_year_1" on ("root".revenue = "salestable_prodline_year_1".revenue and "root".prod_line_id = "salestable_prodline_year_1".prod_line_id and "root".sales_date = "salestable_prodline_year_1".sales_date) group by "Product Line","Products Concat"', $result); } @@ -150,9 +151,9 @@ function <> meta::relational::tests::aggregationAware::testRewrite::o }; let mapping = mappingWithMultiDimensionAggregates; let runtime = runtime(); - + let result = execute($query, $mapping, $runtime, relationalExtensions()); - + assertSameSQL('select "employee_0".last_name as "Sales Person Last Name", "productline_0".prod_line_name as "Product Line", "salestable_prodline_salesperson_year_1".aggCol as "Products Concat", sum("root".revenue) as "Total Price 1" from user_view_multi_agg.SalesTable_ProdLine_SalesPerson_Year as "root" left outer join base_view.Employee as "employee_0" on ("root".emp_id = "employee_0".emp_id) left outer join base_view.ProductLine as "productline_0" on ("root".prod_line_id = "productline_0".prod_line_id) left outer join (select "salestable_prodline_salesperson_year_2".revenue as revenue, "salestable_prodline_salesperson_year_2".emp_id as emp_id, "salestable_prodline_salesperson_year_2".prod_line_id as prod_line_id, "salestable_prodline_salesperson_year_2".sales_date as sales_date, group_concat("product_0".prod_name separator \',\' ) as aggCol from user_view_multi_agg.SalesTable_ProdLine_SalesPerson_Year as "salestable_prodline_salesperson_year_2" left outer join base_view.ProductLine as "productline_1" on ("salestable_prodline_salesperson_year_2".prod_line_id = "productline_1".prod_line_id) left outer join base_view.Product as "product_0" on ("product_0".prod_line_id = "productline_1".prod_line_id) group by "salestable_prodline_salesperson_year_2".sales_date,"salestable_prodline_salesperson_year_2".prod_line_id,"salestable_prodline_salesperson_year_2".emp_id,"salestable_prodline_salesperson_year_2".revenue) as "salestable_prodline_salesperson_year_1" on ("root".revenue = "salestable_prodline_salesperson_year_1".revenue and "root".emp_id = "salestable_prodline_salesperson_year_1".emp_id and "root".prod_line_id = "salestable_prodline_salesperson_year_1".prod_line_id and "root".sales_date = "salestable_prodline_salesperson_year_1".sales_date) group by "Sales Person Last Name","Product Line","Products Concat"', $result); } @@ -164,9 +165,9 @@ function <> meta::relational::tests::aggregationAware::testRewrite::o }; let mapping = mappingWithMultiDimensionAggregates; let runtime = runtime(); - + let result = execute($query, $mapping, $runtime, relationalExtensions()); - + assertEmpty($result.activities->filter(s|$s->instanceOf(meta::pure::mapping::aggregationAware::AggregationAwareActivity))); assertSameSQL('select "root".first_name as "Sales Person First Name", "product_0".prod_id as "Product ID", "salestable_0".discount as "Discount" from base_view.Employee as "root" left outer join base_view.SalesTable as "salestable_0" on ("salestable_0".emp_id = "root".emp_id) left outer join base_view.Product as "product_0" on ("salestable_0".product_id = "product_0".prod_id)', $result); } @@ -179,9 +180,9 @@ function <> meta::relational::tests::aggregationAware::testRewrite::o }; let mapping = mappingWithMultiDimensionAggregates; let runtime = runtime(); - + let result = execute($query, $mapping, $runtime, relationalExtensions()); - + assertEmpty($result.activities->filter(s|$s->instanceOf(meta::pure::mapping::aggregationAware::AggregationAwareActivity))); assertSameSQL('select "root".first_name as "Sales Person First Name", "employee_1".first_name as "All Sales Person First Name", "salestable_0".discount as "Discount" from base_view.Employee as "root" left outer join base_view.SalesTable as "salestable_0" on ("salestable_0".emp_id = "root".emp_id) left outer join base_view.Employee as "employee_1" on ("salestable_0".emp_id = "employee_1".emp_id)', $result); } @@ -194,9 +195,9 @@ function <> meta::relational::tests::aggregationAware::testRewrite::o }; let mapping = mappingWithMultiDimensionAggregates; let runtime = runtime(); - + let result = execute($query, $mapping, $runtime, relationalExtensions()); - + assertEmpty($result.activities->filter(s|$s->instanceOf(meta::pure::mapping::aggregationAware::AggregationAwareActivity))); assertSameSQL('select "root".first_name as "Sales Person First Name", "product_0".prod_id as "Product ID", "product_0".prod_name as "Product Name", "employee_1".first_name as "All Sales Person First Name", "salestable_0".discount as "Discount" from base_view.Employee as "root" left outer join base_view.SalesTable as "salestable_0" on ("salestable_0".emp_id = "root".emp_id) left outer join base_view.Product as "product_0" on ("salestable_0".product_id = "product_0".prod_id) left outer join base_view.Employee as "employee_1" on ("salestable_0".emp_id = "employee_1".emp_id)', $result); } @@ -209,9 +210,9 @@ function <> meta::relational::tests::aggregationAware::testRewrite::o }; let mapping = mappingWithMultiDimensionAggregates; let runtime = runtime(); - + let result = execute($query, $mapping, $runtime, relationalExtensions()); - + assertEmpty($result.activities->filter(s|$s->instanceOf(meta::pure::mapping::aggregationAware::AggregationAwareActivity))); assertSameSQL('select "root".first_name as "Sales Person First Name", "product_0".prod_id as "Product ID", "productline_0".prod_line_name as "Product Line", "employee_1".first_name as "All Sales Person First Name", "salestable_0".discount as "Discount" from base_view.Employee as "root" left outer join base_view.SalesTable as "salestable_0" on ("salestable_0".emp_id = "root".emp_id) left outer join base_view.Product as "product_0" on ("salestable_0".product_id = "product_0".prod_id) left outer join base_view.ProductLine as "productline_0" on ("product_0".prod_line_id = "productline_0".prod_line_id) left outer join base_view.Employee as "employee_1" on ("salestable_0".emp_id = "employee_1".emp_id)', $result); } @@ -241,8 +242,8 @@ function <> meta::relational::tests::aggregationAware::testRewrite::o let result = execute($query, $mapping, $runtime, relationalExtensions()); assertEqualsH2Compatible( - 'select "product_0".prod_id as "Product ID", concat("productdescription_0".prod_description, \':\', \'abc\') as "Product Description", sum("root".revenue) as "Revenue/Total Price Sum" from user_view_multi_agg.SalesTable_Product_Month as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id) left outer join (select "productdescription_1".prod_description as prod_description, "productdescription_1".prod_id as prod_id from base_view.ProductDescription as "productdescription_1" where "productdescription_1".from_z <= \'2021-01-01\' and "productdescription_1".thru_z > \'2021-01-01\') as "productdescription_0" on ("product_0".prod_id = "productdescription_0".prod_id) group by "Product ID","Product Description"', - 'select "product_0".prod_id as "Product ID", concat("productdescription_0".prod_description, \':\', \'abc\') as "Product Description", sum("root".revenue) as "Revenue/Total Price Sum" from user_view_multi_agg.SalesTable_Product_Month as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id) left outer join (select "productdescription_1".prod_description as prod_description, "productdescription_1".prod_id as prod_id from base_view.ProductDescription as "productdescription_1" where "productdescription_1".from_z <= DATE\'2021-01-01\' and "productdescription_1".thru_z > DATE\'2021-01-01\') as "productdescription_0" on ("product_0".prod_id = "productdescription_0".prod_id) group by "Product ID","Product Description"', + 'select "product_0".prod_id as "Product ID", concat("productdescription_0".prod_description, \':\', \'abc\') as "Product Description", sum("root".revenue) as "Revenue/Total Price Sum" from user_view_multi_agg.SalesTable_Product_Month as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id) left outer join (select "productdescription_1".prod_description as prod_description, "productdescription_1".prod_id as prod_id from base_view.ProductDescription as "productdescription_1" where "productdescription_1".from_z <= \'2021-01-01\' and "productdescription_1".thru_z > \'2021-01-01\') as "productdescription_0" on ("product_0".prod_id = "productdescription_0".prod_id) group by "Product ID","Product Description"', + 'select "product_0".prod_id as "Product ID", concat("productdescription_0".prod_description, \':\', \'abc\') as "Product Description", sum("root".revenue) as "Revenue/Total Price Sum" from user_view_multi_agg.SalesTable_Product_Month as "root" left outer join base_view.Product as "product_0" on ("root".product_id = "product_0".prod_id) left outer join (select "productdescription_1".prod_description as prod_description, "productdescription_1".prod_id as prod_id from base_view.ProductDescription as "productdescription_1" where "productdescription_1".from_z <= DATE\'2021-01-01\' and "productdescription_1".thru_z > DATE\'2021-01-01\') as "productdescription_0" on ("product_0".prod_id = "productdescription_0".prod_id) group by "Product ID","Product Description"', $result->sqlRemoveFormatting() ); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/store.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/store.pure index 27c0b319c9b..714c4d382eb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/store.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/aggregationAware/test/store.pure @@ -2,7 +2,7 @@ Database meta::relational::tests::aggregationAware::store::aggregationAwareStore ( - Schema base_view + Schema base_view ( Table SalesTable ( id integer PRIMARY KEY, @@ -13,7 +13,7 @@ Database meta::relational::tests::aggregationAware::store::aggregationAwareStore discount bigint, emp_id bigint PRIMARY KEY ) - + Table Calendar ( dt_date date, fiscal_year integer, @@ -22,12 +22,12 @@ Database meta::relational::tests::aggregationAware::store::aggregationAwareStore oid bigint PRIMARY KEY, region varchar(32) ) - + Table ProductLine ( prod_line_id bigint PRIMARY KEY, prod_line_name varchar(200) ) - + Table Product ( prod_id bigint PRIMARY KEY, prod_name varchar(200), @@ -41,15 +41,15 @@ Database meta::relational::tests::aggregationAware::store::aggregationAwareStore prod_id bigint PRIMARY KEY, prod_description varchar(200) ) - + Table Employee ( emp_id bigint PRIMARY KEY, first_name varchar(200), last_name varchar(200) ) ) - - Schema user_view_agg + + Schema user_view_agg ( Table SalesTable_User ( id integer PRIMARY KEY, @@ -60,7 +60,7 @@ Database meta::relational::tests::aggregationAware::store::aggregationAwareStore discount bigint, emp_id bigint PRIMARY KEY ) - + Table SalesTable_Day ( id integer PRIMARY KEY, first_date date PRIMARY KEY, @@ -69,7 +69,7 @@ Database meta::relational::tests::aggregationAware::store::aggregationAwareStore discount bigint, revenue bigint PRIMARY KEY ) - + Table SalesTable_Month ( id integer PRIMARY KEY, first_date date PRIMARY KEY, @@ -78,7 +78,7 @@ Database meta::relational::tests::aggregationAware::store::aggregationAwareStore discount bigint, revenue bigint PRIMARY KEY ) - + Table SalesTable_Qtr ( id integer PRIMARY KEY, first_date date PRIMARY KEY, @@ -88,8 +88,8 @@ Database meta::relational::tests::aggregationAware::store::aggregationAwareStore revenue bigint PRIMARY KEY ) ) - - Schema user_view_multi_agg + + Schema user_view_multi_agg ( Table SalesTable_Product_Month ( sales_date date PRIMARY KEY, @@ -97,14 +97,14 @@ Database meta::relational::tests::aggregationAware::store::aggregationAwareStore discount bigint, revenue bigint PRIMARY KEY ) - + Table SalesTable_ProdLine_Year ( sales_date date PRIMARY KEY, prod_line_id bigint PRIMARY KEY, discount bigint, revenue bigint PRIMARY KEY ) - + Table SalesTable_ProdLine_SalesPerson_Year ( sales_date date PRIMARY KEY, prod_line_id bigint PRIMARY KEY, @@ -113,33 +113,33 @@ Database meta::relational::tests::aggregationAware::store::aggregationAwareStore revenue bigint PRIMARY KEY ) ) - - + + Join Sales_To_Calendar(base_view.SalesTable.sales_date = base_view.Calendar.dt_date) Join Sales_To_Employee(base_view.SalesTable.emp_id = base_view.Employee.emp_id) Join Sales_To_Product(base_view.SalesTable.product_id = base_view.Product.prod_id) - + Join Sales_User_To_Calendar(user_view_agg.SalesTable_User.sales_date = base_view.Calendar.dt_date) Join Sales_User_To_Employee(user_view_agg.SalesTable_User.emp_id = base_view.Employee.emp_id) Join Sales_User_To_Product(user_view_agg.SalesTable_User.product_id = base_view.Product.prod_id) - - Join Sales_Day_To_Calendar(user_view_agg.SalesTable_Day.first_date = base_view.Calendar.dt_date) + + Join Sales_Day_To_Calendar(user_view_agg.SalesTable_Day.first_date = base_view.Calendar.dt_date) Join Sales_Month_To_Calendar(user_view_agg.SalesTable_Month.first_date = base_view.Calendar.dt_date) Join Sales_Qtr_To_Calendar(user_view_agg.SalesTable_Qtr.first_date = base_view.Calendar.dt_date) - - Join Sales_Day_To_Product(user_view_agg.SalesTable_Day.product_id = base_view.Product.prod_id) + + Join Sales_Day_To_Product(user_view_agg.SalesTable_Day.product_id = base_view.Product.prod_id) Join Sales_Month_To_Product(user_view_agg.SalesTable_Month.product_id = base_view.Product.prod_id) Join Sales_Qtr_To_Product(user_view_agg.SalesTable_Qtr.product_id = base_view.Product.prod_id) - + Join Product_To_ProLine(base_view.Product.prod_line_id = base_view.ProductLine.prod_line_id) Join Product_To_Description(base_view.Product.prod_id = base_view.ProductDescription.prod_id) - + Join Sales_Product_Month_To_Calendar (user_view_multi_agg.SalesTable_Product_Month.sales_date = base_view.Calendar.dt_date) Join Sales_Product_Month_To_Product (user_view_multi_agg.SalesTable_Product_Month.product_id = base_view.Product.prod_id) - + Join Sales_ProdLine_Year_To_Calendar (user_view_multi_agg.SalesTable_ProdLine_Year.sales_date = base_view.Calendar.dt_date) Join Sales_ProdLine_Year_To_ProdLine (user_view_multi_agg.SalesTable_ProdLine_Year.prod_line_id = base_view.ProductLine.prod_line_id) - + Join Sales_ProdLine_SalesPerson_Year_To_Calendar (user_view_multi_agg.SalesTable_ProdLine_SalesPerson_Year.sales_date = base_view.Calendar.dt_date) Join Sales_ProdLine_SalesPerson_Year_To_ProdLine (user_view_multi_agg.SalesTable_ProdLine_SalesPerson_Year.prod_line_id = base_view.ProductLine.prod_line_id) Join Sales_ProdLine_SalesPerson_Year_To_Employee(user_view_multi_agg.SalesTable_ProdLine_SalesPerson_Year.emp_id = base_view.Employee.emp_id) @@ -147,16 +147,18 @@ Database meta::relational::tests::aggregationAware::store::aggregationAwareStore ) ###Pure +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::tests::aggregationAware::store::*; import meta::relational::tests::aggregationAware::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::functions::toDDL::*; import meta::relational::metamodel::execute::*; function meta::relational::tests::aggregationAware::runtime(): Runtime[1] { - meta::relational::tests::testRuntime(aggregationAwareStore); + meta::external::store::relational::tests::testRuntime(aggregationAwareStore); } function <> meta::relational::tests::aggregationAware::setUp():Any[*] @@ -170,7 +172,7 @@ function <> meta::relational::tests::aggregationAware::setUp createSchemaStatement('base_view'), createSchemaStatement('user_view_agg'), createSchemaStatement('user_view_multi_agg'), - + createTableStatement(aggregationAwareStore, 'base_view', 'SalesTable'), createTableStatement(aggregationAwareStore, 'base_view', 'Calendar'), createTableStatement(aggregationAwareStore, 'base_view', 'Product'), @@ -185,7 +187,7 @@ function <> meta::relational::tests::aggregationAware::setUp createTableStatement(aggregationAwareStore, 'user_view_multi_agg', 'SalesTable_ProdLine_Year'), createTableStatement(aggregationAwareStore, 'user_view_multi_agg', 'SalesTable_ProdLine_SalesPerson_Year') ]->map(s|executeInDb($s, $connection)); - + let calendarInsert = 'insert into base_view.Calendar ' + '( ' + @@ -195,7 +197,7 @@ function <> meta::relational::tests::aggregationAware::setUp 'fiscal_month, ' + 'fiscal_qtr ' + ') '+ - 'values ' + + 'values ' + '(52456699, \'2014-01-10\', 2014, 10 , 1)'; $calendarInsert->executeInDb($connection); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/calendarAggregation/tests/testCalendarFunctions.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/calendarAggregation/tests/testCalendarFunctions.pure index f061f522b48..30e760a80d7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/calendarAggregation/tests/testCalendarFunctions.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/calendarAggregation/tests/testCalendarFunctions.pure @@ -41,8 +41,10 @@ import meta::relational::functions::asserts::*; import meta::relational::functions::pureToSqlQuery::calendarAggregations::*; import meta::relational::functions::toDDL::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::csv::*; import meta::relational::tests::functions::pureToSqlQuery::calendarAggregations::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/contract/storeContract.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/contract/storeContract.pure index 161a866cfab..02d0c0c75f3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/contract/storeContract.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/contract/storeContract.pure @@ -16,11 +16,13 @@ import meta::pure::router::metamodel::*; import meta::pure::router::systemMapping::tests::*; import meta::relational::mapping::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::pure::extension::*; import meta::relational::extension::*; import meta::pure::executionPlan::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::*; import meta::relational::functions::pureToSqlQuery::*; @@ -29,6 +31,7 @@ import meta::pure::executionPlan::toString::*; import meta::pure::router::clustering::*; import meta::pure::graphFetch::executionPlan::*; import meta::pure::graphFetch::routing::*; +import meta::external::store::relational::runtime::*; function meta::relational::contract::relationalStoreContract():StoreContract[1] { @@ -39,7 +42,7 @@ function meta::relational::contract::relationalStoreContract():StoreContract[1] planExecution = meta::relational::contract::planExecution_StoreQuery_1__RoutedValueSpecification_$0_1$__Mapping_$0_1$__Runtime_$0_1$__ExecutionContext_1__Extension_MANY__DebugContext_1__ExecutionNode_1_, planGraphFetchExecution = meta::relational::contract::planGraphFetchExecution_StoreMappingLocalGraphFetchExecutionNodeGenerationInput_1__LocalGraphFetchExecutionNode_1_, planCrossGraphFetchExecution = meta::relational::contract::planCrossGraphFetchExecution_StoreMappingCrossLocalGraphFetchExecutionNodeGenerationInput_1__LocalGraphFetchExecutionNode_1_, - + supports = meta::relational::contract::supports_FunctionExpression_1__Boolean_1_, supportsStreamFunction = meta::relational::contract::supportsStream_FunctionExpression_1__Boolean_1_, shouldStopRouting = [ @@ -80,7 +83,7 @@ function meta::relational::contract::relationalStoreContract():StoreContract[1] } ), supportsNativeJoinAmongElements = true, - isPropertyAutoMapped = {prop: AbstractProperty[1], set: InstanceSetImplementation[1] | + isPropertyAutoMapped = {prop: AbstractProperty[1], set: InstanceSetImplementation[1] | $set->match([ r: RelationalInstanceSetImplementation[1] | $r->_propertyMappingsByPropertyName($prop.name->toOne())->match([ s: SemiStructuredRelationalPropertyMapping[1] | true, @@ -89,16 +92,16 @@ function meta::relational::contract::relationalStoreContract():StoreContract[1] a: Any[*] | false ]) }, - reprocessConnection = {connection:Connection[1] | - $connection->match( + reprocessConnection = {c:ConnectionStore[1] | + $c.connection->match( [ - t:meta::relational::runtime::TestDatabaseConnection[1] | - ^$t(testDataSetupSqls = if ($t.testDataSetupCsv->isEmpty() || !$t.element->instanceOf(meta::relational::metamodel::Database), + t:meta::external::store::relational::runtime::TestDatabaseConnection[1] | + ^$t(testDataSetupSqls = if ($t.testDataSetupCsv->isEmpty() || !$c.element->instanceOf(meta::relational::metamodel::Database), | [];, | if ($t.testDataSetupSqls->isEmpty(), - | $t.testDataSetupCsv->toOne()->meta::alloy::service::execution::setUpDataSQLs($t.element->cast(@meta::relational::metamodel::Database)), + | $t.testDataSetupCsv->toOne()->meta::alloy::service::execution::setUpDataSQLs($c.element->cast(@meta::relational::metamodel::Database)), | $t.testDataSetupSqls))), - r:meta::pure::alloy::connections::RelationalDatabaseConnection[1] | + r:meta::external::store::relational::runtime::RelationalDatabaseConnection[1] | ^$r( datasourceSpecification = $r.datasourceSpecification->match([ l:meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification[1] | @@ -106,9 +109,9 @@ function meta::relational::contract::relationalStoreContract():StoreContract[1] ( testDataSetupSqls = $l.testDataSetupSqls->concatenate( - if ($l.testDataSetupCsv->isEmpty() || !$r.element->instanceOf(meta::relational::metamodel::Database), + if ($l.testDataSetupCsv->isEmpty() || !$c.element->instanceOf(meta::relational::metamodel::Database), | [];, - | $l.testDataSetupCsv->toOne()->meta::alloy::service::execution::setUpDataSQLs($r.element->cast(@meta::relational::metamodel::Database)) + | $l.testDataSetupCsv->toOne()->meta::alloy::service::execution::setUpDataSQLs($c.element->cast(@meta::relational::metamodel::Database)) ) ) ), @@ -206,12 +209,13 @@ function meta::relational::contract::planExecution(sq:meta::pure::mapping::Store $sq->meta::relational::mutation::executionPlan::planMutationExecution($ext, $m->toOne(), $runtime->toOne(), $exeCtx, $extensions, $debug);, | // Normal Flow - let connections = $runtime.connections->filter(c | $c->instanceOf(DatabaseConnection)); + let connections = $runtime.connectionStores->filter(c | $c.connection->instanceOf(DatabaseConnection)); let storeRuntime = if($connections->size() <= 1, | $runtime->toOne(), | let oldRuntime = $runtime->toOne(); let dbConn = $oldRuntime->connectionByElement($store)->cast(@DatabaseConnection); - ^$oldRuntime(connections = $dbConn); + let dbConnectionStore = $oldRuntime.connectionStores->filter(c|$c.connection==$dbConn); + ^$oldRuntime(connectionStores = $dbConnectionStore); ); let queryExeCtx = if($exeCtx->instanceOf(RelationalExecutionContext),|$exeCtx,|[])->cast(@RelationalExecutionContext); @@ -252,5 +256,5 @@ function meta::relational::contract::getStore(r:InstanceSetImplementation[1]):St $e->resolveRootFromEmbedded()->meta::relational::contract::getStore(), s:CrossSetImplementation[1]|$s.targetStore ] - ) -} \ No newline at end of file + ) +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/executionPlan/executionPlan.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/executionPlan/executionPlan.pure index 5654ff5a252..cb9818b19f7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/executionPlan/executionPlan.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/executionPlan/executionPlan.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::executionPlan::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::mapping::*; @@ -101,4 +102,4 @@ Class meta::relational::mapping::CreateAndPopulateTempTableExecutionNode extends Class meta::pure::executionPlan::RelationalBlockExecutionNode extends meta::pure::executionPlan::SequenceExecutionNode { finallyExecutionNodes : ExecutionNode[*]; -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/executionPlan/tests/executionPlanExecutionTest.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/executionPlan/tests/executionPlanExecutionTest.pure index 66c045ccfff..355eb6d57e3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/executionPlan/tests/executionPlanExecutionTest.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/executionPlan/tests/executionPlanExecutionTest.pure @@ -15,17 +15,20 @@ import meta::legend::service::metamodel::*; import meta::pure::executionPlan::tests::execution::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::relational::metamodel::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::pure::executionPlan::*; function <> meta::pure::executionPlan::tests::execution::testPureExecutionStrategyForRelationalInstantiationExecutionNode():Boolean[1] { - let simpleService = + let simpleService = ^Service ( pattern = '/service/testLargeInList', @@ -36,7 +39,7 @@ function <> meta::pure::executionPlan::tests::execution::testPureExec ( func = {|Person.all()->filter(p | $p.firstName->in(['A', 'B', 'C', 'D', 'E']))->project(col(p|$p.firstName, 'firstName'))}, mapping = simpleRelationalMapping, - runtime = meta::relational::tests::testRuntime() + runtime = meta::external::store::relational::tests::testRuntime() ), test = ^SingleExecutionTest ( @@ -66,7 +69,7 @@ function <> meta::pure::executionPlan::tests::execution::testPureExec function <> meta::pure::executionPlan::tests::execution::testPureExecutionStrategyForCreateAndPopulateTempTableExecutionNode():Boolean[1] { - let serviceWithStringFilter = + let serviceWithStringFilter = ^Service ( pattern = '/service/testLargeInList', @@ -77,7 +80,7 @@ function <> meta::pure::executionPlan::tests::execution::testPureExec ( func = {|Person.all()->filter(p | $p.firstName->in(['A', 'B', 'C', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50']))->project(col(p|$p.firstName, 'firstName'))}, mapping = simpleRelationalMapping, - runtime = meta::relational::tests::testRuntime() + runtime = meta::external::store::relational::tests::testRuntime() ), test = ^SingleExecutionTest ( @@ -101,7 +104,7 @@ function <> meta::pure::executionPlan::tests::execution::testPureExec ) ); - let serviceWithIntegerFilter = + let serviceWithIntegerFilter = ^Service ( pattern = '/service/testLargeInList', @@ -112,7 +115,7 @@ function <> meta::pure::executionPlan::tests::execution::testPureExec ( func = {|Person.all()->filter(p | $p.firstName->in(['A', 'B', 'C', 'D', 'E']) && $p.age->in([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 52, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51]))->project(col(p|$p.firstName, 'firstName'))}, mapping = simpleRelationalMapping, - runtime = meta::relational::tests::testRuntime() + runtime = meta::external::store::relational::tests::testRuntime() ), test = ^SingleExecutionTest ( @@ -155,7 +158,7 @@ function <> meta::pure::executionPlan::tests::execution::setUpDa { let databases = $mapping->extractDBs($runtime); let database = if ($databases->size() == 1, | $databases->toOne(), | ^Database(name='Default_CatchAll', includes = $databases)); - + meta::alloy::service::execution::setUpDataSQLs($t->cast(@SingleExecutionTest).data, $database) ->map(sql| executeInDb($sql, $runtime->connectionByElement($databases->at(0))->cast(@DatabaseConnection));)->size(); // DO NOT REMOVE: size called to inhibit lazy evaluation ensuring the map is activated; true; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/executionPlan/tests/executionPlanTest.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/executionPlan/tests/executionPlanTest.pure index 1c90f7d05bc..eb4bba626cd 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/executionPlan/tests/executionPlanTest.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/executionPlan/tests/executionPlanTest.pure @@ -16,6 +16,7 @@ import meta::relational::functions::sqlQueryToString::h2::*; import meta::pure::alloy::connections::alloy::authentication::*; import meta::pure::alloy::connections::alloy::specification::*; import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::pure::mapping::modelToModel::test::createInstances::*; import meta::relational::postProcessor::*; import meta::pure::extension::*; @@ -29,6 +30,7 @@ import meta::pure::executionPlan::tests::datetime::*; import meta::relational::tests::tds::tabletds::*; import meta::pure::mapping::*; import meta::relational::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::mapping::inheritance::relational::*; import meta::relational::metamodel::join::*; @@ -40,7 +42,9 @@ import meta::relational::tests::groupBy::datePeriods::*; import meta::relational::tests::groupBy::datePeriods::domain::*; import meta::pure::executionPlan::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::modelToModel::test::shared::src::*; import meta::pure::graphFetch::executionPlan::*; @@ -49,16 +53,16 @@ import meta::pure::functions::collection::*; function meta::pure::executionPlan::tests::templateFunctionsList():String[*] { - ['<#function collectionSize collection> <#return collection?size?c> ', - '<#function equalEnumOperationSelector enumVal inDyna equalDyna><#assign enumList = enumVal?split(",")><#if enumList?size = 1><#return equalDyna><#else><#return inDyna>', - '<#function optionalVarPlaceHolderOperationSelector optionalParameter trueClause falseClause><#if optionalParameter?has_content || optionalParameter?is_string><#return trueClause><#else><#return falseClause>', + ['<#function collectionSize collection> <#return collection?size?c> ', + '<#function equalEnumOperationSelector enumVal inDyna equalDyna><#assign enumList = enumVal?split(",")><#if enumList?size = 1><#return equalDyna><#else><#return inDyna>', + '<#function optionalVarPlaceHolderOperationSelector optionalParameter trueClause falseClause><#if optionalParameter?has_content || optionalParameter?is_string><#return trueClause><#else><#return falseClause>', '<#function renderCollection collection separator prefix suffix replacementMap defaultValue><#if collection?size == 0><#return defaultValue><#assign newCollection = collection><#list replacementMap as oldValue, newValue> <#assign newCollection = collection?map(ele -> ele?replace(oldValue, newValue))><#return prefix + newCollection?join(suffix + separator + prefix) + suffix>', '<#function varPlaceHolderToString optionalParameter prefix suffix replacementMap defaultValue><#if optionalParameter?is_enumerable && !optionalParameter?has_content><#return defaultValue><#else><#assign newParam = optionalParameter><#list replacementMap as oldValue, newValue> <#assign newParam = newParam?replace(oldValue, newValue)><#return prefix + newParam + suffix>']; } function meta::pure::executionPlan::tests::assertPlanGenerationForOptionalParameter(dbType:DatabaseType[1], expectedPlan:String[1]):Boolean[1] { - let generatedPlan = executionPlan({optionalID: String[0..1], optionalActive: Boolean[0..1]|Interaction.all()->filter(i|$i.id==$optionalID && $i.active==$optionalActive)->project(col(i|$i.time, 'Time'))}, simpleRelationalMapping, ^Runtime(connections=^DatabaseConnection(element = relationalDB, type=$dbType)), meta::relational::extension::relationalExtensions()); + let generatedPlan = executionPlan({optionalID: String[0..1], optionalActive: Boolean[0..1]|Interaction.all()->filter(i|$i.id==$optionalID && $i.active==$optionalActive)->project(col(i|$i.time, 'Time'))}, simpleRelationalMapping, ^Runtime(connectionStores=^ConnectionStore(element = relationalDB, connection=^DatabaseConnection(type=$dbType))), meta::relational::extension::relationalExtensions()); let result = $generatedPlan->planToString(meta::relational::extension::relationalExtensions()); assertEquals($expectedPlan, $result); assertSameElements(templateFunctionsList(),$generatedPlan.processingTemplateFunctions); @@ -66,24 +70,24 @@ function meta::pure::executionPlan::tests::assertPlanGenerationForOptionalParame function meta::pure::executionPlan::tests::assertPlanGenerationForOptionalParameterWithGreaterThanLessThan(func:FunctionDefinition[1], dbType:DatabaseType[1], expectedPlan:String[1]):Boolean[1] { - let generatedPlan = executionPlan($func, simpleRelationalMapping, ^Runtime(connections=^DatabaseConnection(element = relationalDB, type=$dbType)), meta::relational::extension::relationalExtensions()); + let generatedPlan = executionPlan($func, simpleRelationalMapping, ^Runtime(connectionStores=^ConnectionStore(connection=^DatabaseConnection(type=$dbType), element = relationalDB)), meta::relational::extension::relationalExtensions()); let result = $generatedPlan->planToString(meta::relational::extension::relationalExtensions()); assertEquals($expectedPlan, $result); assertSameElements(templateFunctionsList(),$generatedPlan.processingTemplateFunctions); } -function <> meta::pure::executionPlan::tests::testFilterInWithResultSorcedFromAnExpression():Boolean[1] -{ +function <> meta::pure::executionPlan::tests::testFilterInWithResultSorcedFromAnExpression():Boolean[1] +{ let result = meta::pure::executionPlan::executionPlan( {y:String[1]| let z = $y->split(','); meta::relational::tests::model::simple::Firm.all()->filter(e|$e.legalName->in($z))->project([f|$f.legalName], ['firm']);}, - meta::relational::tests::simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + meta::relational::tests::simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let expected = 'Sequence(type=TDS[(firm,String,VARCHAR(200),"")](FunctionParametersValidationNode(functionParameters=[y:String[1]])Allocation(type=StringresultSizeRange=*name=zvalue=(PureExp(type=StringresultSizeRange=*requires=[y(String[1])]expression=$y->split(\',\'))))RelationalBlockExecutionNode(type=TDS[(firm,String,VARCHAR(200),"")](Allocation(type=Stringname=inFilterClause_zvalue=(FreeMarkerConditionalExecutionNode(type=Stringcondition=${(instanceOf(z,"Stream")||instanceOf(z,"StreamingResult")||((collectionSize(z![])?number)>50))?c}trueBlock=(Sequence(type=String(CreateAndPopulateTempTable(type=VoidinputVarNames=[z]tempTableName=tempTableForIn_ztempTableColumns=[(ColumnForStoringInCollection,VARCHAR(200))]connection=TestDatabaseConnection(type="H2"))Constant(type=Stringvalues=[select"temptableforin_z_0".ColumnForStoringInCollectionasColumnForStoringInCollectionfromtempTableForIn_zas"temptableforin_z_0"]))))falseBlock=(Constant(type=Stringvalues=[${renderCollection(z![]",""\'""\'"{"\'":"\'\'"}"null")}])))))Relational(type=TDS[(firm,String,VARCHAR(200),"")]resultColumns=[("firm",VARCHAR(200))]sql=select"root".LEGALNAMEas"firm"fromfirmTableas"root"where"root".LEGALNAMEin(${inFilterClause_z})connection=TestDatabaseConnection(type="H2"))))))'; - assertEquals($expected, $result->meta::pure::executionPlan::toString::planToStringWithoutFormatting(meta::relational::extension::relationalExtensions())); + assertEquals($expected, $result->meta::pure::executionPlan::toString::planToStringWithoutFormatting(meta::relational::extension::relationalExtensions())); } -function <> meta::pure::executionPlan::tests::testFilterEqualsWithOptionalParameter_DB2():Boolean[1] +function <> meta::pure::executionPlan::tests::testFilterEqualsWithOptionalParameter_DB2():Boolean[1] { let expectedPlan ='Sequence\n'+ '(\n'+ @@ -105,7 +109,7 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithOpt assertPlanGenerationForOptionalParameter(DatabaseType.DB2, $expectedPlan); } -function <> meta::pure::executionPlan::tests::testFilterEqualsWithOptionalParameter_Composite():Boolean[1] +function <> meta::pure::executionPlan::tests::testFilterEqualsWithOptionalParameter_Composite():Boolean[1] { let expectedPlan ='Sequence\n'+ '(\n'+ @@ -127,7 +131,7 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithOpt assertPlanGenerationForOptionalParameter(DatabaseType.Composite, $expectedPlan); } -function <> meta::pure::executionPlan::tests::testFilterEqualsWithOptionalParameter_H2():Boolean[1] +function <> meta::pure::executionPlan::tests::testFilterEqualsWithOptionalParameter_H2():Boolean[1] { let expectedPlan ='Sequence\n'+ '(\n'+ @@ -150,7 +154,7 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithOpt } function <> meta::pure::executionPlan::tests::testFilterEqualsWithOptionalParameterString():Boolean[1]{ - let generatedPlan = executionPlan({optionalStreet: String[0..1]|Address.all()->filter(a|$a.street==$optionalStreet && $optionalStreet == $a.street)->project(col(a|$a.name, 'Name'))}, simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let generatedPlan = executionPlan({optionalStreet: String[0..1]|Address.all()->filter(a|$a.street==$optionalStreet && $optionalStreet == $a.street)->project(col(a|$a.name, 'Name'))}, simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let result = $generatedPlan->planToString(meta::relational::extension::relationalExtensions()); let expected = 'Sequence\n'+ '(\n'+ @@ -175,7 +179,7 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithOpt function <> meta::pure::executionPlan::tests::testFilterEqualsWithOptionalParameterFloat():Boolean[1] { - let generatedPlan = executionPlan({optionalPnl: Float[0..1]|Order.all()->filter(x|$x.pnl==$optionalPnl)}, simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let generatedPlan = executionPlan({optionalPnl: Float[0..1]|Order.all()->filter(x|$x.pnl==$optionalPnl)}, simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let result = $generatedPlan->planToString(meta::relational::extension::relationalExtensions()); let expectedLegacyH2 = 'Sequence\n'+ '(\n'+ @@ -221,7 +225,7 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithOpt function <> meta::pure::executionPlan::tests::testFilterEqualsWithOptionalParameterInteger():Boolean[1] { - let generatedPlan = executionPlan({optionalAge: Integer[0..1]|Person.all()->filter(p|$p.age==$optionalAge)}, simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let generatedPlan = executionPlan({optionalAge: Integer[0..1]|Person.all()->filter(p|$p.age==$optionalAge)}, simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let result = $generatedPlan->planToString(meta::relational::extension::relationalExtensions()); let expected = 'Sequence\n'+ '(\n'+ @@ -248,7 +252,7 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithOpt function <> meta::pure::executionPlan::tests::testFilterEqualsWithOptionalParameterDate():Boolean[1] { - let generatedPlan = executionPlan({optionalCensusDate: Date[0..1]|Location.all()->filter(t|$t.censusdate==$optionalCensusDate)}, simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let generatedPlan = executionPlan({optionalCensusDate: Date[0..1]|Location.all()->filter(t|$t.censusdate==$optionalCensusDate)}, simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let result = $generatedPlan->planToString(meta::relational::extension::relationalExtensions()); let expectedLegacyH2 = 'Sequence\n'+ '(\n'+ @@ -294,7 +298,7 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithOpt function <> meta::pure::executionPlan::tests::testFilterEqualsWithOptionalParameterDateTimeWithNoTimeZone():Boolean[1] { - let generatedPlan = executionPlan({optionalSettlementDateTime:DateTime[0..1]|Order.all()->filter(o|$o.settlementDateTime == $optionalSettlementDateTime)}, simpleRelationalMapping, ^Runtime(connections=^DatabaseConnection(element = relationalDB, type=DatabaseType.H2)), meta::relational::extension::relationalExtensions()); + let generatedPlan = executionPlan({optionalSettlementDateTime:DateTime[0..1]|Order.all()->filter(o|$o.settlementDateTime == $optionalSettlementDateTime)}, simpleRelationalMapping, ^Runtime(connectionStores=^ConnectionStore(element=relationalDB, connection=^DatabaseConnection(type=DatabaseType.H2))), meta::relational::extension::relationalExtensions()); let result = $generatedPlan->planToString(meta::relational::extension::relationalExtensions()); let expectedLegacyH2 = 'Sequence\n'+ '(\n'+ @@ -340,7 +344,7 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithOpt function <> meta::pure::executionPlan::tests::testFilterEqualsWithOptionalParameterDateTimeWithTimeZone():Boolean[1] { - let generatedPlan = executionPlan({optionalSettlementDateTime:DateTime[0..1]|Order.all()->filter(o|$o.settlementDateTime == $optionalSettlementDateTime)}, simpleRelationalMapping, ^Runtime(connections=^DatabaseConnection(element = relationalDB, type=DatabaseType.H2, timeZone='US/Arizona')), meta::relational::extension::relationalExtensions()); + let generatedPlan = executionPlan({optionalSettlementDateTime:DateTime[0..1]|Order.all()->filter(o|$o.settlementDateTime == $optionalSettlementDateTime)}, simpleRelationalMapping, ^Runtime(connectionStores=^ConnectionStore(element=relationalDB, connection=^DatabaseConnection(type=DatabaseType.H2, timeZone='US/Arizona'))), meta::relational::extension::relationalExtensions()); let result = $generatedPlan->planToString(meta::relational::extension::relationalExtensions()); let expectedLegacyH2 = 'Sequence\n'+ '(\n'+ @@ -385,7 +389,7 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithOpt function <> meta::pure::executionPlan::tests::testFilterEqualsWithTwoOptionalParametersString():Boolean[1] { - let generatedPlan = executionPlan({optionalLeft: String[0..1], optionalRight :String[0..1]|Address.all()->filter(a|$optionalLeft==$optionalRight)}, simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let generatedPlan = executionPlan({optionalLeft: String[0..1], optionalRight :String[0..1]|Address.all()->filter(a|$optionalLeft==$optionalRight)}, simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let result = $generatedPlan->planToString(meta::relational::extension::relationalExtensions()); let expected = 'Sequence\n'+ '(\n'+ @@ -412,7 +416,7 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithTwo function <> meta::pure::executionPlan::tests::testFilterEqualsWithTwoOptionalParametersInteger():Boolean[1] { - let generatedPlan = executionPlan({optionalIntLeft: Integer[0..1], optionalIntRight :Integer[0..1]|Address.all()->filter(a|$optionalIntLeft==$optionalIntRight)}, simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let generatedPlan = executionPlan({optionalIntLeft: Integer[0..1], optionalIntRight :Integer[0..1]|Address.all()->filter(a|$optionalIntLeft==$optionalIntRight)}, simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let result = $generatedPlan->planToString(meta::relational::extension::relationalExtensions()); let expected = 'Sequence\n'+ '(\n'+ @@ -439,7 +443,7 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithTwo function <> meta::pure::executionPlan::tests::testFilterEqualsWithTwoOptionalParametersFloat():Boolean[1] { - let generatedPlan = executionPlan({optionalFloatLeft: Float[0..1], optionalFloatRight :Float[0..1]|Address.all()->filter(a|$optionalFloatLeft==$optionalFloatRight)}, simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let generatedPlan = executionPlan({optionalFloatLeft: Float[0..1], optionalFloatRight :Float[0..1]|Address.all()->filter(a|$optionalFloatLeft==$optionalFloatRight)}, simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let result = $generatedPlan->planToString(meta::relational::extension::relationalExtensions()); let expectedLegacyH2 = 'Sequence\n'+ '(\n'+ @@ -485,7 +489,7 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithTwo function <> meta::pure::executionPlan::tests::testFilterEqualsWithTwoOptionalParametersDate():Boolean[1] { - let generatedPlan = executionPlan({optionalDateLeft: Date[0..1], optionalDateRight :Date[0..1]|Address.all()->filter(a|$optionalDateLeft==$optionalDateRight)}, simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let generatedPlan = executionPlan({optionalDateLeft: Date[0..1], optionalDateRight :Date[0..1]|Address.all()->filter(a|$optionalDateLeft==$optionalDateRight)}, simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let result = $generatedPlan->planToString(meta::relational::extension::relationalExtensions()); let expectedLegacyH2 = 'Sequence\n'+ '(\n'+ @@ -531,7 +535,7 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithTwo function <> meta::pure::executionPlan::tests::testFilterEqualsWithTwoOptionalParametersDateTimeWithNoTimeZone():Boolean[1] { - let generatedPlan = executionPlan({optionalLeft: DateTime[0..1], optionalRight :DateTime[0..1]|Address.all()->filter(a|$optionalLeft==$optionalRight)}, simpleRelationalMapping, ^Runtime(connections=^DatabaseConnection(element = relationalDB, type=DatabaseType.H2)), meta::relational::extension::relationalExtensions()); + let generatedPlan = executionPlan({optionalLeft: DateTime[0..1], optionalRight :DateTime[0..1]|Address.all()->filter(a|$optionalLeft==$optionalRight)}, simpleRelationalMapping, ^Runtime(connectionStores=^ConnectionStore(element=relationalDB, connection=^DatabaseConnection(type=DatabaseType.H2))), meta::relational::extension::relationalExtensions()); let result = $generatedPlan->planToString(meta::relational::extension::relationalExtensions()); let expectedLegacyH2 = 'Sequence\n'+ '(\n'+ @@ -577,7 +581,7 @@ function <> meta::pure::executionPlan::tests::testFilterEqualsWithTwo function <> meta::pure::executionPlan::tests::testFilterEqualsWithTwoOptionalParameterDateTimeWithTimeZone():Boolean[1] { - let generatedPlan = executionPlan({optionalLeft: DateTime[0..1], optionalRight :DateTime[0..1]|Address.all()->filter(a|$optionalLeft==$optionalRight)}, simpleRelationalMapping, ^Runtime(connections=^DatabaseConnection(element = relationalDB, type=DatabaseType.H2, timeZone='US/Arizona')), meta::relational::extension::relationalExtensions()); + let generatedPlan = executionPlan({optionalLeft: DateTime[0..1], optionalRight :DateTime[0..1]|Address.all()->filter(a|$optionalLeft==$optionalRight)}, simpleRelationalMapping, ^Runtime(connectionStores=^ConnectionStore(element=relationalDB, connection=^DatabaseConnection(type=DatabaseType.H2, timeZone='US/Arizona'))), meta::relational::extension::relationalExtensions()); let result = $generatedPlan->planToString(meta::relational::extension::relationalExtensions()); let expectedLegacyH2 = 'Sequence\n'+ '(\n'+ @@ -644,7 +648,7 @@ function <> meta::pure::executionPlan::tests::testGreaterThanLessThan } function <> meta::pure::executionPlan::tests::testLessThanGreaterThanEqualsWithOptionalParameter_H2():Boolean[1] -{ +{ let func = {optionalAgeLowerLimit: Integer[0..1], optionalAgeHigherLimit: Integer[0..1]|Person.all()->filter(p|$p.age<$optionalAgeLowerLimit && ($p.age>=$optionalAgeHigherLimit))->project(col(a|$a.firstName, 'firstName'))}; let expectedPlan ='Sequence\n'+ '(\n'+ @@ -663,7 +667,7 @@ function <> meta::pure::executionPlan::tests::testLessThanGreaterThan ' )\n'+ ' )\n'+ ')\n'; - assertPlanGenerationForOptionalParameterWithGreaterThanLessThan($func, DatabaseType.H2, $expectedPlan); + assertPlanGenerationForOptionalParameterWithGreaterThanLessThan($func, DatabaseType.H2, $expectedPlan); } function <> meta::pure::executionPlan::tests::testPlanGenerationForMultipleExpressionsWithPropertyPath():Boolean[1] @@ -672,8 +676,8 @@ function <> meta::pure::executionPlan::tests::testPlanGenerationForMu let endDateCalendar = FiscalCalendarDate.all()->filter(x|$x.fiscalYear.value == 2015)->toOne(); IncomeFunction.all()->filter(x|$x.incomeYear == $endDateCalendar->toOne().fiscalYear.value); }; - let generatedPlan = executionPlan($query, myMapping,meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); - let result = $generatedPlan->planToString(meta::relational::extension::relationalExtensions()); + let generatedPlan = executionPlan($query, myMapping,meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let result = $generatedPlan->planToString(meta::relational::extension::relationalExtensions()); let expectedPlan = 'Sequence\n'+ '(\n'+ @@ -945,10 +949,10 @@ function <> meta::pure::executionPlan::tests::datetime::testPlanForDa let expectedNewH2 = 'Relational ( type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)] resultSizeRange = * resultColumns = [("pk_0", INT), ("id", INT), ("quantity", INT), ("date", DATE), ("settlementDateTime", TIMESTAMP), ("pnl", FLOAT), ("zeroPnl", "")] sql = select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".orderDate as "date", "root".settlementDateTime as "settlementDateTime", "orderpnlview_0".pnl as "pnl", cast(case when "orderpnlview_0".pnl = 0 then \'true\' else \'false\' end as boolean) as "zeroPnl" from orderTable as "root" left outer join (select distinct "root".ORDER_ID as ORDER_ID, "root".pnl as pnl, "accounttable_0".ID as accountId, "salespersontable_0".NAME as supportContact, "salespersontable_0".PERSON_ID as supportContactId from orderPnlTable as "root" left outer join orderTable as "ordertable_1" on ("root".ORDER_ID = "ordertable_1".ID) left outer join accountTable as "accounttable_0" on ("ordertable_1".accountID = "accounttable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("ordertable_1".accountID = "salespersontable_0".ACCOUNT_ID) where "root".pnl > 0) as "orderpnlview_0" on ("orderpnlview_0".ORDER_ID = "root".ID) where "root".settlementDateTime = TIMESTAMP\'2019-04-08 13:00:00\' connection = TestDatabaseConnection(type = "H2") ) '; assertEqualsH2Compatible($expectedLegacyH2, $expectedNewH2, $planAsString); assert($planAsString->indexOf('settlementDateTime = \'2019-04-08 13:00:00\'') != -1 || $planAsString->indexOf('settlementDateTime = TIMESTAMP\'2019-04-08 13:00:00\'') != -1); - assertSameElements(['<#function GMTtoTZ tz paramDate><#if paramDate?is_enumerable && !paramDate?has_content><#return paramDate><#else><#return (tz+" "+paramDate)?date.@alloyDate><#function renderCollectionWithTz collection timeZone separator prefix suffix defaultValue><#assign result = [] /><#list collection as c><#assign result = [prefix + (timeZone+" "+c)?date.@alloyDate + suffix] + result><#return result?reverse?join(separator, defaultValue)>', - '<#function collectionSize collection> <#return collection?size?c> ', - '<#function equalEnumOperationSelector enumVal inDyna equalDyna><#assign enumList = enumVal?split(",")><#if enumList?size = 1><#return equalDyna><#else><#return inDyna>', - '<#function optionalVarPlaceHolderOperationSelector optionalParameter trueClause falseClause><#if optionalParameter?has_content || optionalParameter?is_string><#return trueClause><#else><#return falseClause>', + assertSameElements(['<#function GMTtoTZ tz paramDate><#if paramDate?is_enumerable && !paramDate?has_content><#return paramDate><#else><#return (tz+" "+paramDate)?date.@alloyDate><#function renderCollectionWithTz collection timeZone separator prefix suffix defaultValue><#assign result = [] /><#list collection as c><#assign result = [prefix + (timeZone+" "+c)?date.@alloyDate + suffix] + result><#return result?reverse?join(separator, defaultValue)>', + '<#function collectionSize collection> <#return collection?size?c> ', + '<#function equalEnumOperationSelector enumVal inDyna equalDyna><#assign enumList = enumVal?split(",")><#if enumList?size = 1><#return equalDyna><#else><#return inDyna>', + '<#function optionalVarPlaceHolderOperationSelector optionalParameter trueClause falseClause><#if optionalParameter?has_content || optionalParameter?is_string><#return trueClause><#else><#return falseClause>', '<#function renderCollection collection separator prefix suffix replacementMap defaultValue><#if collection?size == 0><#return defaultValue><#assign newCollection = collection><#list replacementMap as oldValue, newValue> <#assign newCollection = collection?map(ele -> ele?replace(oldValue, newValue))><#return prefix + newCollection?join(suffix + separator + prefix) + suffix>', '<#function varPlaceHolderToString optionalParameter prefix suffix replacementMap defaultValue><#if optionalParameter?is_enumerable && !optionalParameter?has_content><#return defaultValue><#else><#assign newParam = optionalParameter><#list replacementMap as oldValue, newValue> <#assign newParam = newParam?replace(oldValue, newValue)><#return prefix + newParam + suffix>'], $planWithString.first.processingTemplateFunctions); @@ -973,19 +977,19 @@ function <> meta::pure::executionPlan::tests::datetime::testPlanForDa let expectedNewH2 = 'Sequence ( type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)] resultSizeRange = * ( FunctionParametersValidationNode ( functionParameters = [dt:DateTime[1]] ) Relational ( type = Class[impls=(meta::relational::tests::model::simple::Order | simpleRelationalMapping.meta_relational_tests_model_simple_Order)] resultSizeRange = * resultColumns = [("pk_0", INT), ("id", INT), ("quantity", INT), ("date", DATE), ("settlementDateTime", TIMESTAMP), ("pnl", FLOAT), ("zeroPnl", "")] sql = select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".orderDate as "date", "root".settlementDateTime as "settlementDateTime", "orderpnlview_0".pnl as "pnl", cast(case when "orderpnlview_0".pnl = 0 then \'true\' else \'false\' end as boolean) as "zeroPnl" from orderTable as "root" left outer join (select distinct "root".ORDER_ID as ORDER_ID, "root".pnl as pnl, "accounttable_0".ID as accountId, "salespersontable_0".NAME as supportContact, "salespersontable_0".PERSON_ID as supportContactId from orderPnlTable as "root" left outer join orderTable as "ordertable_1" on ("root".ORDER_ID = "ordertable_1".ID) left outer join accountTable as "accounttable_0" on ("ordertable_1".accountID = "accounttable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("ordertable_1".accountID = "salespersontable_0".ACCOUNT_ID) where "root".pnl > 0) as "orderpnlview_0" on ("orderpnlview_0".ORDER_ID = "root".ID) where "root".settlementDateTime = TIMESTAMP\'${GMTtoTZ( "[US/Arizona]" dt)}\' connection = TestDatabaseConnection(type = "H2") ) ) ) '; assertEqualsH2Compatible($expectedLegacyH2, $expectedNewH2, $planAsString); assert($planAsString->indexOf('settlementDateTime = \'${GMTtoTZ( "[US/Arizona]" dt)}\'') != -1 || 'settlementDateTime = TIMESTAMP\'${GMTtoTZ( "[US/Arizona]" dt)}\'' != -1); - assertSameElements(['<#function GMTtoTZ tz paramDate><#if paramDate?is_enumerable && !paramDate?has_content><#return paramDate><#else><#return (tz+" "+paramDate)?date.@alloyDate><#function renderCollectionWithTz collection timeZone separator prefix suffix defaultValue><#assign result = [] /><#list collection as c><#assign result = [prefix + (timeZone+" "+c)?date.@alloyDate + suffix] + result><#return result?reverse?join(separator, defaultValue)>', - '<#function collectionSize collection> <#return collection?size?c> ', - '<#function equalEnumOperationSelector enumVal inDyna equalDyna><#assign enumList = enumVal?split(",")><#if enumList?size = 1><#return equalDyna><#else><#return inDyna>', - '<#function optionalVarPlaceHolderOperationSelector optionalParameter trueClause falseClause><#if optionalParameter?has_content || optionalParameter?is_string><#return trueClause><#else><#return falseClause>', - '<#function renderCollection collection separator prefix suffix replacementMap defaultValue><#if collection?size == 0><#return defaultValue><#assign newCollection = collection><#list replacementMap as oldValue, newValue> <#assign newCollection = collection?map(ele -> ele?replace(oldValue, newValue))><#return prefix + newCollection?join(suffix + separator + prefix) + suffix>', + assertSameElements(['<#function GMTtoTZ tz paramDate><#if paramDate?is_enumerable && !paramDate?has_content><#return paramDate><#else><#return (tz+" "+paramDate)?date.@alloyDate><#function renderCollectionWithTz collection timeZone separator prefix suffix defaultValue><#assign result = [] /><#list collection as c><#assign result = [prefix + (timeZone+" "+c)?date.@alloyDate + suffix] + result><#return result?reverse?join(separator, defaultValue)>', + '<#function collectionSize collection> <#return collection?size?c> ', + '<#function equalEnumOperationSelector enumVal inDyna equalDyna><#assign enumList = enumVal?split(",")><#if enumList?size = 1><#return equalDyna><#else><#return inDyna>', + '<#function optionalVarPlaceHolderOperationSelector optionalParameter trueClause falseClause><#if optionalParameter?has_content || optionalParameter?is_string><#return trueClause><#else><#return falseClause>', + '<#function renderCollection collection separator prefix suffix replacementMap defaultValue><#if collection?size == 0><#return defaultValue><#assign newCollection = collection><#list replacementMap as oldValue, newValue> <#assign newCollection = collection?map(ele -> ele?replace(oldValue, newValue))><#return prefix + newCollection?join(suffix + separator + prefix) + suffix>', '<#function varPlaceHolderToString optionalParameter prefix suffix replacementMap defaultValue><#if optionalParameter?is_enumerable && !optionalParameter?has_content><#return defaultValue><#else><#assign newParam = optionalParameter><#list replacementMap as oldValue, newValue> <#assign newParam = newParam?replace(oldValue, newValue)><#return prefix + newParam + suffix>'], $planWithString.first.processingTemplateFunctions); } function meta::pure::executionPlan::tests::datetime::executionPlanForQueryWithDateTimeVariableForDatabaseConnectionTimeZone(timeZone:String[0..1]):Pair[1] { - let connectionWithTimeZone = ^TestDatabaseConnection(element = db, type=DatabaseType.H2, timeZone=$timeZone); - let runtime = ^Runtime(connections = $connectionWithTimeZone); + let connectionWithTimeZone = ^TestDatabaseConnection(type=DatabaseType.H2, timeZone=$timeZone); + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element = db, connection=$connectionWithTimeZone)); let q = {dt:DateTime[1]|Order.all()->filter(o|$o.settlementDateTime == $dt)}; let plan = executionPlan($q, simpleRelationalMapping, $runtime, meta::relational::extension::relationalExtensions()); pair($plan, $plan->planToString(meta::relational::extension::relationalExtensions())->replace('\n',' ')); @@ -993,8 +997,8 @@ function meta::pure::executionPlan::tests::datetime::executionPlanForQueryWithDa function meta::pure::executionPlan::tests::datetime::executionPlanForQueryWithDateTimeConstantForDatabaseConnectionTimeZone(dt:DateTime[1], timeZone:String[0..1]):Pair[1] { - let connectionEST = ^TestDatabaseConnection(element = db, type=DatabaseType.H2, timeZone=$timeZone); - let runtime = ^Runtime(connections = $connectionEST); + let connectionEST = ^TestDatabaseConnection(type=DatabaseType.H2, timeZone=$timeZone); + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element = db, connection=$connectionEST)); let q = {|Order.all()->filter(o|$o.settlementDateTime == $dt)}; let plan = executionPlan($q, simpleRelationalMapping, $runtime, meta::relational::extension::relationalExtensions()); pair($plan, $plan->planToString(meta::relational::extension::relationalExtensions())->replace('\n',' ')); @@ -1002,7 +1006,7 @@ function meta::pure::executionPlan::tests::datetime::executionPlanForQueryWithDa function <> meta::pure::executionPlan::tests::simpleExpression():Boolean[1] { - let result = executionPlan({|Person.all()->filter(p|$p.firstName == 'bla')}, simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let result = executionPlan({|Person.all()->filter(p|$p.firstName == 'bla')}, simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('Relational\n'+ '(\n'+ ' type = Class[impls=(meta::relational::tests::model::simple::Person | simpleRelationalMappingInc.meta_relational_tests_model_simple_Person)]\n'+ @@ -1015,7 +1019,7 @@ function <> meta::pure::executionPlan::tests::simpleExpression():Bool function <> meta::pure::executionPlan::tests::inheritance():Boolean[1] { - let result = executionPlan(|meta::relational::tests::model::inheritance::RoadVehicle.all(), inheritanceMappingDB, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let result = executionPlan(|meta::relational::tests::model::inheritance::RoadVehicle.all(), inheritanceMappingDB, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('Relational\n'+ '(\n'+ ' type = Class[impls=(meta::relational::tests::model::inheritance::Bicycle | inheritanceMain.map2),(meta::relational::tests::model::inheritance::Car | inheritanceMain.map1)]\n'+ @@ -1029,7 +1033,7 @@ function <> meta::pure::executionPlan::tests::inheritance():Boolean[1 function <> meta::pure::executionPlan::tests::simpleExpressionWithVariable():Boolean[1] { - let result = executionPlan({var:String[1]|Person.all()->filter(p|$p.firstName == $var)}, simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let result = executionPlan({var:String[1]|Person.all()->filter(p|$p.firstName == $var)}, simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('Sequence\n' + '(\n' + @@ -1054,7 +1058,7 @@ function <> meta::pure::executionPlan::tests::simpleExpressionWithVar function <> meta::pure::executionPlan::tests::simpleExpressionWithMultipleVariables():Boolean[1] { - let result = executionPlan({var:String[1], age:Integer[1]|Person.all()->filter(p| ($p.firstName == $var) && ($p.age > $age))}, simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let result = executionPlan({var:String[1], age:Integer[1]|Person.all()->filter(p| ($p.firstName == $var) && ($p.age > $age))}, simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('Sequence\n' + '(\n' + ' type = Class[impls=(meta::relational::tests::model::simple::Person | simpleRelationalMappingInc.meta_relational_tests_model_simple_Person)]\n' + @@ -1080,7 +1084,7 @@ function <> meta::pure::executionPlan::tests::testClassPropertyOpenVa { let result = executionPlan({| let reportEndDate = FiscalCalendarDate.all()->filter(d|$d.date == %2005-10-10)->toOne(); - SalesCredit.all()->filter(s|$s.tradeDate.date<$reportEndDate.date);}, myMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + SalesCredit.all()->filter(s|$s.tradeDate.date<$reportEndDate.date);}, myMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( 'Sequence\n(\n' + @@ -1160,7 +1164,7 @@ function <> meta::pure::executionPlan::tests::testGroupByWithOpenVari ] , ['Sales Division', 'Income Function']); - }, myMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + }, myMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( 'Sequence\n'+ @@ -1241,7 +1245,7 @@ function <> meta::pure::executionPlan::tests::testGroupByWithTwoOpenV ] , ['Sales Division', 'Income Function']); - }, myMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + }, myMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( 'Sequence\n'+ @@ -1340,7 +1344,7 @@ function <> meta::pure::executionPlan::tests::testGroupByWithTwoOpenV function <> meta::pure::executionPlan::tests::testMapWithOpenVariable():Boolean[1] { let result = executionPlan({|let a = 10; - Firm.all()->map(f|$f.employees->count() + $a);}, simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + Firm.all()->map(f|$f.employees->count() + $a);}, simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals( 'Sequence\n'+ @@ -1379,7 +1383,7 @@ function <> meta::pure::executionPlan::tests::testMapWithOpenVariable function <> meta::pure::executionPlan::tests::testFilterWithOpenVariable():Boolean[1] { let result = executionPlan({|let name = 'ok'; - Firm.all()->filter(f|$f.legalName == $name);}, simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + Firm.all()->filter(f|$f.legalName == $name);}, simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals( 'Sequence\n'+ @@ -1437,7 +1441,7 @@ function <> meta::pure::executionPlan::tests::testPlanForExecutionOpt let executionOptionContext = ^ExecutionOptionContext(executionOptions = [^DummyExecutionOption()]); let extensions = meta::relational::extension::relationalExtensions()->add($dummyExtension); let result = executionPlan({|let name = 'ok'; - Firm.all()->filter(f|$f.legalName == $name);}, simpleRelationalMapping, meta::relational::tests::testRuntime(), $executionOptionContext, $extensions); + Firm.all()->filter(f|$f.legalName == $name);}, simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), $executionOptionContext, $extensions); assertEquals(true, isExecutionOptionPresent($executionOptionContext, DummyExecutionOption)); assertEquals(false, isExecutionOptionPresent($executionOptionContext, OtherDummyExecutionOption)); @@ -1496,8 +1500,8 @@ function <> meta::pure::executionPlan::tests::testRoutingContextBuild let extensions = meta::relational::extension::relationalExtensions()->toOne(); let updatedExtensions = ^$extensions(availableStores = $extensions.availableStores->filter(s | $s.id != $relationalStoreContract.id)->concatenate($updatedRelationalStoreContract)); - let result = executionPlan({|Person.all()->project([col(p|$p.firstName, '"firstName"', 'doc1'), col(p|$p.lastName, 'lastName')])->withContext();}, simpleRelationalMapping, meta::relational::tests::testRuntime(), $updatedExtensions); - + let result = executionPlan({|Person.all()->project([col(p|$p.firstName, '"firstName"', 'doc1'), col(p|$p.lastName, 'lastName')])->withContext();}, simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), $updatedExtensions); + //creates plan with execution context assertEquals( 'Relational\n' + @@ -1506,7 +1510,7 @@ function <> meta::pure::executionPlan::tests::testRoutingContextBuild ' resultColumns = [("firstName", VARCHAR(200)), ("lastName", VARCHAR(200))]\n' + ' sql = select "root".FIRSTNAME as "firstName", "root".LASTNAME as "lastName" from personTable as "root"\n' + ' connection = TestDatabaseConnection(type = "H2")\n' + - ')\n', $result->planToString(meta::relational::extension::relationalExtensions())); + ')\n', $result->planToString(meta::relational::extension::relationalExtensions())); } Class meta::pure::executionPlan::tests::Struct @@ -1517,7 +1521,7 @@ Class meta::pure::executionPlan::tests::Struct function <> meta::pure::executionPlan::tests::testMapWithOpenVariableOutsideBlock():Boolean[1] { let a = ^Struct(val = 10); - let result = executionPlan({|Firm.all()->map(f|$f.employees->count() + $a.val);}, simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let result = executionPlan({|Firm.all()->map(f|$f.employees->count() + $a.val);}, simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('Relational\n'+ '(\n'+ ' type = Integer\n'+ @@ -1534,7 +1538,7 @@ function <> meta::pure::executionPlan::tests::twoRoutedExpressions(): let result = executionPlan({| let personName = Person.all()->filter(p|$p.firstName == 'ok')->toOne().lastName; Person.all()->filter(p|$p.firstName == $personName); } - , simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + , simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('Sequence\n'+ '(\n'+ ' type = Class[impls=(meta::relational::tests::model::simple::Person | simpleRelationalMappingInc.meta_relational_tests_model_simple_Person)]\n'+ @@ -1574,7 +1578,7 @@ function <> meta::pure::executionPlan::tests::twoExpressionWithConsta let result = executionPlan({|let personName = 'test'; Person.all()->filter(p|$p.firstName == $personName); } - , simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + , simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('Sequence\n'+ '(\n'+ ' type = Class[impls=(meta::relational::tests::model::simple::Person | simpleRelationalMappingInc.meta_relational_tests_model_simple_Person)]\n'+ @@ -1610,7 +1614,7 @@ function <> meta::pure::executionPlan::tests::twoExpressionWithConsta function <> meta::pure::executionPlan::tests::tdsReturn():Boolean[1] { let result = executionPlan({|Person.all()->project([col(p|$p.firstName, '"firstName"', 'doc1'), col(p|$p.lastName, 'lastName')]);} - , simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + , simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('Relational\n'+ '(\n'+ ' type = TDS[("firstName", String, VARCHAR(200), "doc1"), (lastName, String, VARCHAR(200), "")]\n'+ @@ -1622,7 +1626,7 @@ function <> meta::pure::executionPlan::tests::tdsReturn():Boolean[1] function <> meta::pure::executionPlan::tests::tdsWithEnumReturn():Boolean[1] { - let result = executionPlan({|meta::relational::tests::mapping::enumeration::model::domain::Product.all()->project([p|$p.description, p|if($p.description == 'My Product 2',|$p.synonyms.type,|$p.synonyms.type)], ['description','type'])}, meta::relational::tests::mapping::enumeration::model::mapping::productMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let result = executionPlan({|meta::relational::tests::mapping::enumeration::model::domain::Product.all()->project([p|$p.description, p|if($p.description == 'My Product 2',|$p.synonyms.type,|$p.synonyms.type)], ['description','type'])}, meta::relational::tests::mapping::enumeration::model::mapping::productMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('Relational\n'+ '(\n'+ ' type = TDS[(description, String, VARCHAR(200), ""), (type, meta::relational::tests::mapping::enumeration::model::domain::ProductSynonymType, VARCHAR(10), "", synonym)]\n'+ @@ -1635,7 +1639,7 @@ function <> meta::pure::executionPlan::tests::tdsWithEnumReturn():Boo function <> meta::pure::executionPlan::tests::withPlatform():Boolean[1] { let result = executionPlan({|Person.all()->filter(p|($p.firstName == 'John' && $p.lastName == 'Johnson') || $p.lastName == 'Allen').lastName->makeString(', ')} - , simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + , simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('PureExp\n' + '(\n' + ' type = String\n' + @@ -1656,9 +1660,8 @@ function <> meta::pure::executionPlan::tests::withPlatform():Boolean[ function <> meta::pure::executionPlan::tests::testDatabaseConnectionSQLPopulationLegacy():Boolean[1] { - let runtime = ^Runtime( - connections = ^TestDatabaseConnection(type = DatabaseType.H2, element = meta::relational::tests::db, testDataSetupCsv = '') - ); + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element = meta::relational::tests::db, connection=^TestDatabaseConnection(type = DatabaseType.H2, testDataSetupCsv = ''))); + let result = executionPlan({|Person.all()->project(c | $c.firstName, 'firstName')}, simpleRelationalMapping, $runtime, meta::relational::extension::relationalExtensions()); let resultConnection = $result.rootExecutionNode->cast(@RelationalInstantiationExecutionNode).executionNodes->at(0)->cast(@SQLExecutionNode).connection->cast(@TestDatabaseConnection); @@ -1669,17 +1672,18 @@ function <> meta::pure::executionPlan::tests::testDatabaseConnectionS function <> meta::pure::executionPlan::tests::testDatabaseConnectionSQLPopulation():Boolean[1] { let runtime = ^Runtime( - connections = ^meta::pure::alloy::connections::RelationalDatabaseConnection( + connectionStores= ^ConnectionStore( + element = meta::relational::tests::db, + connection=^meta::external::store::relational::runtime::RelationalDatabaseConnection( type = DatabaseType.H2, - element = meta::relational::tests::db, datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification(testDataSetupCsv = ''), authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::TestDatabaseAuthenticationStrategy() - )); + ))); let result = executionPlan({|Person.all()->project(c | $c.firstName, 'firstName')}, simpleRelationalMapping, $runtime, meta::relational::extension::relationalExtensions()); let resultConnection = $result.rootExecutionNode->cast(@RelationalInstantiationExecutionNode).executionNodes->at(0)->cast(@SQLExecutionNode) - .connection->cast(@meta::pure::alloy::connections::RelationalDatabaseConnection).datasourceSpecification + .connection->cast(@meta::external::store::relational::runtime::RelationalDatabaseConnection).datasourceSpecification ->cast(@meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification); assertSize($resultConnection.testDataSetupSqls, 56); @@ -1689,7 +1693,7 @@ function <> meta::pure::executionPlan::tests::tdsJoinOneDBOneExpressi { let result = executionPlan({| testJoinTDS_Person.all()->meta::pure::tds::project([col(p|$p.firstName, 'firstName'), col(p|$p.employerID, 'eID')]) - ->join(testJoinTDS_Firm.all()->project([col(p|$p.firmID, 'fID'), col(p|$p.legalName, 'legalName')]), JoinType.INNER, {a,b|$a.getInteger('eID') == $b.getInteger('fID');});},testJoinTDSMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + ->join(testJoinTDS_Firm.all()->project([col(p|$p.firmID, 'fID'), col(p|$p.legalName, 'legalName')]), JoinType.INNER, {a,b|$a.getInteger('eID') == $b.getInteger('fID');});},testJoinTDSMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('Relational\n'+ '(\n'+ @@ -1804,7 +1808,7 @@ function <> meta::pure::executionPlan::tests::tdsTwoJoinThreeDB():Boo testJoinTDS_Person.all()->meta::pure::tds::project([col(p|$p.firstName, 'firstName'), col(p|$p.employerID, 'eID')]) ->join(testJoinTDS_Firm.all()->project([col(p|$p.firmID, 'fID'),col(p|$p.firmAddrID, 'firmAddrID')]), JoinType.INNER, {a,b|$a.getInteger('eID') == $b.getInteger('fID');}) ->join(testJoinTDS_Address.all()->project([col(p|$p.addrName, 'addrName'), col(p|$p.addrID, 'addrID')]), JoinType.INNER, {a,b |$a.getInteger('firmAddrID') == $b.getInteger('addrID');});} - , meta::relational::tests::tds::tdsJoin::testJoinTDSMappingThreeDatabase, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + , meta::relational::tests::tds::tdsJoin::testJoinTDSMappingThreeDatabase, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let expected ='Sequence\n'+ @@ -1858,8 +1862,8 @@ function <> meta::pure::executionPlan::tests::testTwoMappingsOneRunti { let plan = executionPlan({| - Person.all().firm->project([col(p|$p.legalName, 'legalName'), col(p|$p.legalName, 'legalNameSimple')])->from(alternateSimpleMapping, meta::relational::tests::testRuntime()) - ->join(Person.all().firm->project([col(p|$p.legalName, 'legalName'),col(p|$p.legalName, 'legalNameALT')])->from(alternateSimpleMapping2, meta::relational::tests::testRuntime()), JoinType.INNER, ['legalName'])},^Mapping(name = ''), ^meta::pure::runtime::Runtime(), meta::relational::extension::relationalExtensions()); + Person.all().firm->project([col(p|$p.legalName, 'legalName'), col(p|$p.legalName, 'legalNameSimple')])->from(alternateSimpleMapping, meta::external::store::relational::tests::testRuntime()) + ->join(Person.all().firm->project([col(p|$p.legalName, 'legalName'),col(p|$p.legalName, 'legalNameALT')])->from(alternateSimpleMapping2, meta::external::store::relational::tests::testRuntime()), JoinType.INNER, ['legalName'])},^Mapping(name = ''), ^meta::core::runtime::Runtime(), meta::relational::extension::relationalExtensions()); assertEquals('Relational\n'+ '(\n'+ ' type = TDS[(legalName, String, VARCHAR(200), ""), (legalNameSimple, String, VARCHAR(200), ""), (legalNameALT, String, VARCHAR(200), "")]\n'+ @@ -1872,8 +1876,8 @@ function <> meta::pure::executionPlan::tests::testTwoMappingsOneRunti function <> meta::pure::executionPlan::tests::testTwoMappingsOneRuntimeWithoutExternalMapping():Boolean[1] { - let plan = executionPlan({|Person.all().firm->project([col(p|$p.legalName, 'legalName'), col(p|$p.legalName, 'legalNameSimple')])->from(alternateSimpleMapping, meta::relational::tests::testRuntime()) - ->join(Person.all().firm->project([col(p|$p.legalName, 'legalName'),col(p|$p.legalName, 'legalNameALT')])->from(alternateSimpleMapping2, meta::relational::tests::testRuntime()), JoinType.INNER, ['legalName'])}, meta::relational::extension::relationalExtensions()); + let plan = executionPlan({|Person.all().firm->project([col(p|$p.legalName, 'legalName'), col(p|$p.legalName, 'legalNameSimple')])->from(alternateSimpleMapping, meta::external::store::relational::tests::testRuntime()) + ->join(Person.all().firm->project([col(p|$p.legalName, 'legalName'),col(p|$p.legalName, 'legalNameALT')])->from(alternateSimpleMapping2, meta::external::store::relational::tests::testRuntime()), JoinType.INNER, ['legalName'])}, meta::relational::extension::relationalExtensions()); assertEquals('Relational\n'+ '(\n'+ ' type = TDS[(legalName, String, VARCHAR(200), ""), (legalNameSimple, String, VARCHAR(200), ""), (legalNameALT, String, VARCHAR(200), "")]\n'+ @@ -1921,12 +1925,12 @@ function <> meta::pure::executionPlan::tests::testCrossDbPlanGenerati function <> meta::pure::executionPlan::tests::testTemporalDateVariableAtRoot():Boolean[1] { let l = {bd:Date[1]|meta::relational::tests::milestoning::Product.all($bd)->project(col(t|$t.id, 'id'))}; - let result = executionPlan($l, meta::relational::tests::milestoning::milestoningmap, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let result = executionPlan($l, meta::relational::tests::milestoning::milestoningmap, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let rlnNode = $result.rootExecutionNode.executionNodes->filter(n|$n->instanceOf(RelationalInstantiationExecutionNode))->at(0).executionNodes->at(0)->cast(@SQLExecutionNode); let rlnNodeSQL = $rlnNode.sqlQuery; assertEqualsH2Compatible( 'select "root".id as "id" from ProductTable as "root" where "root".from_z <= \'${bd}\' and "root".thru_z > \'${bd}\'', - 'select "root".id as "id" from ProductTable as "root" where "root".from_z <= TIMESTAMP\'${bd}\' and "root".thru_z > TIMESTAMP\'${bd}\'', + 'select "root".id as "id" from ProductTable as "root" where "root".from_z <= TIMESTAMP\'${bd}\' and "root".thru_z > TIMESTAMP\'${bd}\'', $rlnNodeSQL ); } @@ -1934,12 +1938,12 @@ function <> meta::pure::executionPlan::tests::testTemporalDateVariabl function <> meta::pure::executionPlan::tests::testTemporalDateVariableInPropertySequence():Boolean[1] { let l = {bd:Date[1]|meta::relational::tests::milestoning::Product.all($bd)->project(t|$t.classification($bd).type, 'classificationType')}; - let result = executionPlan($l, meta::relational::tests::milestoning::milestoningmap, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let result = executionPlan($l, meta::relational::tests::milestoning::milestoningmap, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let rlnNode = $result.rootExecutionNode.executionNodes->filter(n|$n->instanceOf(RelationalInstantiationExecutionNode))->at(0).executionNodes->at(0)->cast(@SQLExecutionNode); let rlnNodeSQL = $rlnNode.sqlQuery; assertEqualsH2Compatible( - 'select "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'${bd}\' and "productclassificationtable_0".thru_z > \'${bd}\') where "root".from_z <= \'${bd}\' and "root".thru_z > \'${bd}\'', - 'select "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= TIMESTAMP\'${bd}\' and "productclassificationtable_0".thru_z > TIMESTAMP\'${bd}\') where "root".from_z <= TIMESTAMP\'${bd}\' and "root".thru_z > TIMESTAMP\'${bd}\'', + 'select "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'${bd}\' and "productclassificationtable_0".thru_z > \'${bd}\') where "root".from_z <= \'${bd}\' and "root".thru_z > \'${bd}\'', + 'select "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= TIMESTAMP\'${bd}\' and "productclassificationtable_0".thru_z > TIMESTAMP\'${bd}\') where "root".from_z <= TIMESTAMP\'${bd}\' and "root".thru_z > TIMESTAMP\'${bd}\'', $rlnNodeSQL ); } @@ -1947,12 +1951,12 @@ function <> meta::pure::executionPlan::tests::testTemporalDateVariabl function <> meta::pure::executionPlan::tests::testTemporalDateVariableInFunctionExpression():Boolean[1] { let l = {bd:Date[1]|meta::relational::tests::milestoning::Product.all($bd)->project(t|$t.classification($bd->adjust(1, DurationUnit.DAYS)).type, 'classificationType')}; - let result = executionPlan($l, meta::relational::tests::milestoning::milestoningmap, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let result = executionPlan($l, meta::relational::tests::milestoning::milestoningmap, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let rlnNode = $result.rootExecutionNode.executionNodes->filter(n|$n->instanceOf(RelationalInstantiationExecutionNode))->at(0).executionNodes->at(0)->cast(@SQLExecutionNode); let rlnNodeSQL = $rlnNode.sqlQuery; assertEqualsH2Compatible( - 'select "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, \'${bd}\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, \'${bd}\')) where "root".from_z <= \'${bd}\' and "root".thru_z > \'${bd}\'', - 'select "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, TIMESTAMP\'${bd}\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, TIMESTAMP\'${bd}\')) where "root".from_z <= TIMESTAMP\'${bd}\' and "root".thru_z > TIMESTAMP\'${bd}\'', + 'select "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, \'${bd}\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, \'${bd}\')) where "root".from_z <= \'${bd}\' and "root".thru_z > \'${bd}\'', + 'select "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, TIMESTAMP\'${bd}\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, TIMESTAMP\'${bd}\')) where "root".from_z <= TIMESTAMP\'${bd}\' and "root".thru_z > TIMESTAMP\'${bd}\'', $rlnNodeSQL ); } @@ -1960,12 +1964,12 @@ function <> meta::pure::executionPlan::tests::testTemporalDateVariabl function <> meta::pure::executionPlan::tests::testTemporalDateVariableInFunctionExpressionWithPropagation():Boolean[1] { let l = {bd:Date[1]|meta::relational::tests::milestoning::Product.all($bd)->project(t|$t.classification($bd->adjust(1, DurationUnit.DAYS)).exchange.name, 'exchangeName')}; - let result = executionPlan($l, meta::relational::tests::milestoning::milestoningmap, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let result = executionPlan($l, meta::relational::tests::milestoning::milestoningmap, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let rlnNode = $result.rootExecutionNode.executionNodes->filter(n|$n->instanceOf(RelationalInstantiationExecutionNode))->at(0).executionNodes->at(0)->cast(@SQLExecutionNode); let rlnNodeSQL = $rlnNode.sqlQuery; assertEqualsH2Compatible( - 'select "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, \'${bd}\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, \'${bd}\')) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= dateadd(DAY, 1, \'${bd}\') and "productexchangetable_1".thru_z > dateadd(DAY, 1, \'${bd}\')) as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= \'${bd}\' and "root".thru_z > \'${bd}\'', - 'select "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, TIMESTAMP\'${bd}\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, TIMESTAMP\'${bd}\')) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= dateadd(DAY, 1, TIMESTAMP\'${bd}\') and "productexchangetable_1".thru_z > dateadd(DAY, 1, TIMESTAMP\'${bd}\')) as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= TIMESTAMP\'${bd}\' and "root".thru_z > TIMESTAMP\'${bd}\'', + 'select "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, \'${bd}\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, \'${bd}\')) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= dateadd(DAY, 1, \'${bd}\') and "productexchangetable_1".thru_z > dateadd(DAY, 1, \'${bd}\')) as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= \'${bd}\' and "root".thru_z > \'${bd}\'', + 'select "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, TIMESTAMP\'${bd}\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, TIMESTAMP\'${bd}\')) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= dateadd(DAY, 1, TIMESTAMP\'${bd}\') and "productexchangetable_1".thru_z > dateadd(DAY, 1, TIMESTAMP\'${bd}\')) as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= TIMESTAMP\'${bd}\' and "root".thru_z > TIMESTAMP\'${bd}\'', $rlnNodeSQL ); } @@ -1975,8 +1979,9 @@ function <> meta::pure::executionPlan::tests::testModelConnectionSimp let res = executionPlan( |meta::pure::mapping::modelToModel::test::shared::dest::Firm.all()->project([f|$f.legalName], ['legalName'])->olapGroupBy(['legalName'],'legalName'->func(x|$x->count()),'Firm Instance Count'), meta::pure::mapping::modelToModel::test::simple::simpleModelMappingWithAssociation, - ^Runtime(connections = [^meta::pure::mapping::modelToModel::ModelChainConnection(element = ^meta::pure::mapping::modelToModel::ModelStore(), - mappings = meta::pure::mapping::modelToModel::test::shared::relationalMapping), + ^Runtime(connectionStores= [ + ^ConnectionStore(element = ^meta::external::store::model::ModelStore(),connection= + ^meta::external::store::model::ModelChainConnection(mappings = meta::pure::mapping::modelToModel::test::shared::relationalMapping)), getConnection()]), meta::relational::extension::relationalExtensions()); let expected = @@ -1995,11 +2000,11 @@ function <> meta::pure::executionPlan::tests::testModelConnectionDeep let res = executionPlan( |meta::pure::mapping::modelToModel::test::shared::dest::Person.all()->project([p|$p.firstName, p|$p.lastName], ['firstName','lastName']), meta::pure::mapping::modelToModel::test::simple::simpleModelMappingO, - ^Runtime(connections = [ - ^meta::pure::mapping::modelToModel::ModelChainConnection(element = ^meta::pure::mapping::modelToModel::ModelStore(), - mappings = [meta::pure::mapping::modelToModel::test::simple::simpleModelMapping, + ^Runtime(connectionStores= [ + ^ConnectionStore(element = ^meta::external::store::model::ModelStore(),connection= + ^meta::external::store::model::ModelChainConnection(mappings = [meta::pure::mapping::modelToModel::test::simple::simpleModelMapping, meta::pure::mapping::modelToModel::test::shared::relationalMapping] - ), + )), getConnection()] ) , meta::relational::extension::relationalExtensions()); @@ -2020,8 +2025,9 @@ function <> meta::pure::executionPlan::tests::testModelConnectionJoin let res = executionPlan( |meta::pure::mapping::modelToModel::test::shared::dest::Firm.all()->project([f|$f.legalName, f|$f.employees.lastName], ['legalName', 'lastName']), meta::pure::mapping::modelToModel::test::simple::simpleModelMappingWithAssociation, - ^Runtime(connections = [^meta::pure::mapping::modelToModel::ModelChainConnection(element = ^meta::pure::mapping::modelToModel::ModelStore(), - mappings = meta::pure::mapping::modelToModel::test::shared::relationalMapping), + ^Runtime(connectionStores= [ + ^ConnectionStore(element = ^meta::external::store::model::ModelStore(),connection= + ^meta::external::store::model::ModelChainConnection(mappings = meta::pure::mapping::modelToModel::test::shared::relationalMapping)), getConnection()]), meta::relational::extension::relationalExtensions()); let expected = 'Relational\n'+ @@ -2039,8 +2045,9 @@ function <> meta::pure::executionPlan::tests::testModelConnectionAgg( let g = agg(x:meta::pure::mapping::modelToModel::test::shared::dest::Person[1] | $x.lastName, y:String[*] | $y->count()); let res = executionPlan(|meta::pure::mapping::modelToModel::test::shared::dest::Person.all()->groupBy([x | $x.firstName], $g, ['FirstName', 'PersonCount' ]), meta::pure::mapping::modelToModel::test::simple::simpleModelMapping, - ^Runtime(connections = [^meta::pure::mapping::modelToModel::ModelChainConnection(element = ^meta::pure::mapping::modelToModel::ModelStore(), - mappings = meta::pure::mapping::modelToModel::test::shared::relationalMapping), + ^Runtime(connectionStores= [ + ^ConnectionStore(element = ^meta::external::store::model::ModelStore(), + connection=^meta::external::store::model::ModelChainConnection(mappings = meta::pure::mapping::modelToModel::test::shared::relationalMapping)), meta::pure::mapping::modelToModel::test::shared::getConnection() ] ), meta::relational::extension::relationalExtensions()); @@ -2066,8 +2073,9 @@ function <> meta::pure::executionPlan::tests::testModelConnectionMult ], ['FirstName', 'PersonCount', 'PersonCountViaSize' ]), meta::pure::mapping::modelToModel::test::simple::simpleModelMapping, - ^Runtime(connections = [^meta::pure::mapping::modelToModel::ModelChainConnection(element = ^meta::pure::mapping::modelToModel::ModelStore(), - mappings = meta::pure::mapping::modelToModel::test::shared::relationalMapping), + ^Runtime(connectionStores= [ + ^ConnectionStore(element = ^meta::external::store::model::ModelStore(), + connection=^meta::external::store::model::ModelChainConnection(mappings = meta::pure::mapping::modelToModel::test::shared::relationalMapping)), meta::pure::mapping::modelToModel::test::shared::getConnection() ] ), meta::relational::extension::relationalExtensions()); @@ -2085,7 +2093,7 @@ function <> meta::pure::executionPlan::tests::testModelConnectionMult function <> meta::pure::executionPlan::tests::testExecutionPLanGenerationForFrom() : Boolean[1] { let res = executionPlan( - |_Firm.all()->from(meta::pure::mapping::modelToModel::test::shared::relationalMapping, ^Runtime(connections=meta::pure::mapping::modelToModel::test::shared::getConnection()));, meta::relational::extension::relationalExtensions() + |_Firm.all()->from(meta::pure::mapping::modelToModel::test::shared::relationalMapping, ^Runtime(connectionStores=meta::pure::mapping::modelToModel::test::shared::getConnection()));, meta::relational::extension::relationalExtensions() ); let expected = 'Relational\n'+ @@ -2102,7 +2110,7 @@ function <> meta::pure::executionPlan::tests::testExecutionPLanGenera function <> meta::pure::executionPlan::tests::testExecutionPLanGenerationForFromInAllocation() : Boolean[1] { let res = executionPlan( - | let var = _Firm.all()->from(meta::pure::mapping::modelToModel::test::shared::relationalMapping, ^Runtime(connections=meta::pure::mapping::modelToModel::test::shared::getConnection()));, meta::relational::extension::relationalExtensions() + | let var = _Firm.all()->from(meta::pure::mapping::modelToModel::test::shared::relationalMapping, ^Runtime(connectionStores=meta::pure::mapping::modelToModel::test::shared::getConnection()));, meta::relational::extension::relationalExtensions() ); let expected = 'Allocation\n'+ @@ -2128,8 +2136,8 @@ function <> meta::pure::executionPlan::tests::testExecutionPLanGenera function <> meta::pure::executionPlan::tests::testExecutionPLanGenerationForFromWithMultiClusters() : Boolean[1] { let res = executionPlan( - {| let var = _Firm.all()->from(meta::pure::mapping::modelToModel::test::shared::relationalMapping, ^Runtime(connections=meta::pure::mapping::modelToModel::test::shared::getConnection())); - _Firm.all()->from(meta::pure::mapping::modelToModel::test::shared::relationalMapping, ^Runtime(connections=meta::pure::mapping::modelToModel::test::shared::getConnection()));}, meta::relational::extension::relationalExtensions() + {| let var = _Firm.all()->from(meta::pure::mapping::modelToModel::test::shared::relationalMapping, ^Runtime(connectionStores=meta::pure::mapping::modelToModel::test::shared::getConnection())); + _Firm.all()->from(meta::pure::mapping::modelToModel::test::shared::relationalMapping, ^Runtime(connectionStores=meta::pure::mapping::modelToModel::test::shared::getConnection()));}, meta::relational::extension::relationalExtensions() ); let expected = 'Sequence\n'+ @@ -2171,7 +2179,7 @@ function <> meta::pure::executionPlan::tests::testExecutionPlanGenera { let res = executionPlan( {lengths:Integer[*] |_Person.all()->filter(x | $x.fullName->length()->in($lengths))->project([x | $x.fullName], ['fullName']);}, - meta::pure::mapping::modelToModel::test::shared::relationalMapping, ^Runtime(connections=^DatabaseConnection(element = relationalDB, type=DatabaseType.H2)), meta::relational::extension::relationalExtensions() + meta::pure::mapping::modelToModel::test::shared::relationalMapping, ^Runtime(connectionStores=^ConnectionStore(element=relationalDB, connection=^DatabaseConnection(type=DatabaseType.H2))), meta::relational::extension::relationalExtensions() ); let expected = 'Sequence(type=TDS[(fullName,String,VARCHAR(1000),"")](FunctionParametersValidationNode(functionParameters=[lengths:Integer[*]])Relational(type=TDS[(fullName,String,VARCHAR(1000),"")]resultColumns=[("fullName",VARCHAR(1000))]sql=select"root".fullnameas"fullName"fromPersonas"root"wherechar_length("root".fullname)in(${renderCollection(lengths![]","""""{}"null")})connection=DatabaseConnection(type="H2"))))'; assertEquals($expected, $res->planToStringWithoutFormatting(meta::relational::extension::relationalExtensions())); @@ -2181,7 +2189,7 @@ function <> meta::pure::executionPlan::tests::testExecutionPlanGenera { let res = executionPlan( {name:String[*], name1:String[*]|_Person.all()->filter(x | $x.fullName->in($name))->filter(x | $x.fullName->in($name1))->project([x | $x.fullName], ['fullName']);}, - meta::pure::mapping::modelToModel::test::shared::relationalMapping, ^Runtime(connections=^DatabaseConnection(element = relationalDB, type=DatabaseType.DB2)), meta::relational::extension::relationalExtensions() + meta::pure::mapping::modelToModel::test::shared::relationalMapping, ^Runtime(connectionStores=^ConnectionStore(element=relationalDB, connection=^DatabaseConnection(type=DatabaseType.DB2))), meta::relational::extension::relationalExtensions() ); let expected = ['RelationalBlockExecutionNode(type=TDS[(fullName,String,VARCHAR(1000),"")](FunctionParametersValidationNode(functionParameters=[name:String[*],name1:String[*]])Allocation(type=Stringname=inFilterClause_name1value=(FreeMarkerConditionalExecutionNode(type=Stringcondition=${(instanceOf(name1,"Stream")||((collectionSize(name1![])?number)>32767))?c}trueBlock=(Sequence(type=String(CreateAndPopulateTempTable(type=VoidinputVarNames=[name1]tempTableName=SESSION.tempTableForIn_name1tempTableColumns=[(ColumnForStoringInCollection,VARCHAR(200))]connection=DatabaseConnection(type="DB2"))Constant(type=Stringvalues=[select"session.temptableforin_name1_0".ColumnForStoringInCollectionasColumnForStoringInCollectionfromSESSION.tempTableForIn_name1as"session.temptableforin_name1_0"]))))falseBlock=(Constant(type=Stringvalues=[${renderCollection(name1![]",""\'""\'"{"\'":"\'\'"}"null")}])))))Allocation(type=Stringname=inFilterClause_namevalue=(FreeMarkerConditionalExecutionNode(type=Stringcondition=${(instanceOf(name,"Stream")||((collectionSize(name![])?number)>32767))?c}trueBlock=(Sequence(type=String(CreateAndPopulateTempTable(type=VoidinputVarNames=[name]tempTableName=SESSION.tempTableForIn_nametempTableColumns=[(ColumnForStoringInCollection,VARCHAR(200))]connection=DatabaseConnection(type="DB2"))Constant(type=Stringvalues=[select"session.temptableforin_name_0".ColumnForStoringInCollectionasColumnForStoringInCollectionfromSESSION.tempTableForIn_nameas"session.temptableforin_name_0"]))))falseBlock=(Constant(type=Stringvalues=[${renderCollection(name![]",""\'""\'"{"\'":"\'\'"}"null")}])))))Relational(type=TDS[(fullName,String,VARCHAR(1000),"")]resultColumns=[("fullName",VARCHAR(1000))]sql=select"root".fullnameas"fullName"fromPersonas"root"where"root".fullnamein(${inFilterClause_name})and"root".fullnamein(${inFilterClause_name1})connection=DatabaseConnection(type="DB2"))))', 'RelationalBlockExecutionNode(type=TDS[(fullName,String,VARCHAR(1000),"")](FunctionParametersValidationNode(functionParameters=[name:String[*],name1:String[*]])Allocation(type=Stringname=inFilterClause_namevalue=(FreeMarkerConditionalExecutionNode(type=Stringcondition=${(instanceOf(name,"Stream")||((collectionSize(name![])?number)>32767))?c}trueBlock=(Sequence(type=String(CreateAndPopulateTempTable(type=VoidinputVarNames=[name]tempTableName=SESSION.tempTableForIn_nametempTableColumns=[(ColumnForStoringInCollection,VARCHAR(200))]connection=DatabaseConnection(type="DB2"))Constant(type=Stringvalues=[select"session.temptableforin_name_0".ColumnForStoringInCollectionasColumnForStoringInCollectionfromSESSION.tempTableForIn_nameas"session.temptableforin_name_0"]))))falseBlock=(Constant(type=Stringvalues=[${renderCollection(name![]",""\'""\'"{"\'":"\'\'"}"null")}])))))Allocation(type=Stringname=inFilterClause_name1value=(FreeMarkerConditionalExecutionNode(type=Stringcondition=${(instanceOf(name1,"Stream")||((collectionSize(name1![])?number)>32767))?c}trueBlock=(Sequence(type=String(CreateAndPopulateTempTable(type=VoidinputVarNames=[name1]tempTableName=SESSION.tempTableForIn_name1tempTableColumns=[(ColumnForStoringInCollection,VARCHAR(200))]connection=DatabaseConnection(type="DB2"))Constant(type=Stringvalues=[select"session.temptableforin_name1_0".ColumnForStoringInCollectionasColumnForStoringInCollectionfromSESSION.tempTableForIn_name1as"session.temptableforin_name1_0"]))))falseBlock=(Constant(type=Stringvalues=[${renderCollection(name1![]",""\'""\'"{"\'":"\'\'"}"null")}])))))Relational(type=TDS[(fullName,String,VARCHAR(1000),"")]resultColumns=[("fullName",VARCHAR(1000))]sql=select"root".fullnameas"fullName"fromPersonas"root"where"root".fullnamein(${inFilterClause_name})and"root".fullnamein(${inFilterClause_name1})connection=DatabaseConnection(type="DB2"))))']; @@ -2191,14 +2199,14 @@ function <> meta::pure::executionPlan::tests::testExecutionPlanGenera function <> meta::pure::executionPlan::tests::testExecutionPlanGenerationForInWithVarAndConstantInputs():Boolean[1] { let res = executionPlan({name:String[1] |_Person.all()->filter(x | $x.fullName->in([$name, 'John', 'Peter', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14', '15', '16', '17', '18', '19', '20', '21', '22', '23', '24', '25', '26', '27', '28', '29', '30', '31', '32', '33', '34', '35', '36', '37', '38', '39', '40', '41', '42', '43', '44', '45', '46', '47', '48', '49', '50']))->project([x | $x.fullName], ['fullName']);}, - meta::pure::mapping::modelToModel::test::shared::relationalMapping, ^Runtime(connections=^TestDatabaseConnection(element = relationalDB, type=DatabaseType.H2)), meta::relational::extension::relationalExtensions()); + meta::pure::mapping::modelToModel::test::shared::relationalMapping, ^Runtime(connectionStores=^ConnectionStore(element=relationalDB, connection=^TestDatabaseConnection(type=DatabaseType.H2))), meta::relational::extension::relationalExtensions()); let expected = 'RelationalBlockExecutionNode(type=TDS[(fullName,String,VARCHAR(1000),"")](FunctionParametersValidationNode(functionParameters=[name:String[1]])Allocation(type=meta::pure::functions::collection::Listname=tempVarForIn_4value=(Constant(type=meta::pure::functions::collection::Listvalues=[[[John,Peter,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49,50]]])))CreateAndPopulateTempTable(type=VoidinputVarNames=[name,tempVarForIn_4]tempTableName=tempTableForIn_4tempTableColumns=[(ColumnForStoringInCollection,VARCHAR(200))]connection=TestDatabaseConnection(type="H2"))Relational(type=TDS[(fullName,String,VARCHAR(1000),"")]resultColumns=[("fullName",VARCHAR(1000))]sql=select"root".fullnameas"fullName"fromPersonas"root"where"root".fullnamein(select"temptableforin_4_0".ColumnForStoringInCollectionasColumnForStoringInCollectionfromtempTableForIn_4as"temptableforin_4_0")connection=TestDatabaseConnection(type="H2"))))'; assertEquals($expected, $res->planToStringWithoutFormatting(meta::relational::extension::relationalExtensions())); } function <> meta::pure::executionPlan::tests::testPlanGenerationForInWithCollectionParameterHavingTimeZoneForH2():Boolean[1] { - let generatedPlan = executionPlan({optionalDateTime:DateTime[*] |Trade.all()->filter(t|$t.settlementDateTime->in($optionalDateTime))->project([x | $x.id], ['TradeId'])}, simpleRelationalMapping, ^Runtime(connections=^DatabaseConnection(element = relationalDB, type=DatabaseType.H2, timeZone='US/Arizona')), meta::relational::extension::relationalExtensions()); + let generatedPlan = executionPlan({optionalDateTime:DateTime[*] |Trade.all()->filter(t|$t.settlementDateTime->in($optionalDateTime))->project([x | $x.id], ['TradeId'])}, simpleRelationalMapping, ^Runtime(connectionStores=^ConnectionStore(element=relationalDB, connection=^DatabaseConnection(type=DatabaseType.H2, timeZone='US/Arizona'))), meta::relational::extension::relationalExtensions()); let result = $generatedPlan->planToString(meta::relational::extension::relationalExtensions()); let expectedPlanLegacyH2 ='Sequence\n'+ '(\n'+ @@ -2249,7 +2257,7 @@ function <> meta::pure::executionPlan::tests::relationalTDSTypeForCol ->filter({r | $r.getString('FIRST NAME') == 'Peter'})}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let expected = 'Relational\n'+ @@ -2283,7 +2291,7 @@ function <> meta::pure::executionPlan::tests::testViewToTDS():Boolean let query = {|viewToTDS(meta::relational::functions::database::viewReference(meta::relational::tests::db,'default','FirstNameAddress'))}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let expected = 'Relational\n' + @@ -2300,7 +2308,7 @@ function <> meta::pure::executionPlan::tests::testViewToTDS():Boolean function <> meta::pure::executionPlan::tests::testSupportStreamFlagSimple():Boolean[1] { - let plan = executionPlan({id:Integer[1], name:String[*]|Person.all()->filter(p|$p.name->in($name) || $p.age == $id)->project(col(p|$p.firstName, 'firstName'))}, simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let plan = executionPlan({id:Integer[1], name:String[*]|Person.all()->filter(p|$p.name->in($name) || $p.age == $id)->project(col(p|$p.firstName, 'firstName'))}, simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let functionParameters = $plan.rootExecutionNode->allNodes(relationalExtensions())->filter(node | $node->instanceOf(FunctionParametersValidationNode))->cast(@FunctionParametersValidationNode).functionParameters; assertEquals($functionParameters->filter(param | $param.name == 'id').supportsStream, false); @@ -2309,7 +2317,7 @@ function <> meta::pure::executionPlan::tests::testSupportStreamFlagSi function <> meta::pure::executionPlan::tests::testSupportStreamFlagWithSupportedAndUnSupportedUsages():Boolean[1] { - let plan = executionPlan({name:String[*]|Person.all()->filter(p|$p.name->in($name) || $name->isEmpty())->project(col(p|$p.firstName, 'firstName'))}, simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let plan = executionPlan({name:String[*]|Person.all()->filter(p|$p.name->in($name) || $name->isEmpty())->project(col(p|$p.firstName, 'firstName'))}, simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let functionParameters = $plan.rootExecutionNode->allNodes(relationalExtensions())->filter(node | $node->instanceOf(FunctionParametersValidationNode))->cast(@FunctionParametersValidationNode).functionParameters; assertEquals($functionParameters->filter(param | $param.name == 'name').supportsStream, false); @@ -2319,7 +2327,7 @@ function <> meta::pure::executionPlan::tests::testSupportStreamFlagWi { let plan =executionPlan({name:String[*]| testJoinTDS_Person.all()->filter(p|$p.firstName->in($name))->meta::pure::tds::project([col(p|$p.firstName, 'firstName'), col(p|$p.employerID, 'eID')]) - ->join(testJoinTDS_Firm.all()->filter(p|$p.legalName->in($name))->project([col(p|$p.firmID, 'fID'), col(p|$p.legalName, 'legalName')]), JoinType.INNER, {a,b|$a.getInteger('eID') == $b.getInteger('fID');});},testJoinTDSMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + ->join(testJoinTDS_Firm.all()->filter(p|$p.legalName->in($name))->project([col(p|$p.firmID, 'fID'), col(p|$p.legalName, 'legalName')]), JoinType.INNER, {a,b|$a.getInteger('eID') == $b.getInteger('fID');});},testJoinTDSMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let functionParameters = $plan.rootExecutionNode->allNodes(relationalExtensions())->filter(node | $node->instanceOf(FunctionParametersValidationNode))->cast(@FunctionParametersValidationNode).functionParameters; assertEquals($functionParameters->filter(param | $param.name == 'name').supportsStream, true); @@ -2339,7 +2347,7 @@ function <> meta::pure::executionPlan::tests::testSupportStreamFlagit function <> meta::pure::executionPlan::tests::testSupportStreamFlagFromSimple():Boolean[1] { - let plan = executionPlan({id:Integer[1], name:String[*]|Person.all()->filter(p|$p.name->in($name) || $p.age == $id)->project(col(p|$p.firstName, 'firstName'))->from(simpleRelationalMapping, meta::relational::tests::testRuntime())}, meta::relational::extension::relationalExtensions()); + let plan = executionPlan({id:Integer[1], name:String[*]|Person.all()->filter(p|$p.name->in($name) || $p.age == $id)->project(col(p|$p.firstName, 'firstName'))->from(simpleRelationalMapping, meta::external::store::relational::tests::testRuntime())}, meta::relational::extension::relationalExtensions()); let functionParameters = $plan.rootExecutionNode->allNodes(relationalExtensions())->filter(node | $node->instanceOf(FunctionParametersValidationNode))->cast(@FunctionParametersValidationNode).functionParameters; assertEquals($functionParameters->filter(param | $param.name == 'id').supportsStream, false); @@ -2348,7 +2356,7 @@ function <> meta::pure::executionPlan::tests::testSupportStreamFlagFr function <> meta::pure::executionPlan::tests::execution::testSQLCommentsInPlan():Boolean[1] { - let plan = executionPlan({|Person.all()->project(col(p|$p.firstName, 'firstName'))}, simpleRelationalMapping, meta::relational::tests::testRuntime(), relationalExtensions()); + let plan = executionPlan({|Person.all()->project(col(p|$p.firstName, 'firstName'))}, simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), relationalExtensions()); let sqlComment = $plan.rootExecutionNode->allNodes(relationalExtensions())->filter(node | $node->instanceOf(SQLExecutionNode))->cast(@SQLExecutionNode).sqlComment; assertEquals('-- "executionTraceID" : "${execID}"', $sqlComment); } @@ -2366,7 +2374,7 @@ function <> meta::pure::executionPlan::tests::testSupportStreamFlagGr let query = {name:String[*]|Person.all()->filter(p|$p.name->in($name))->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::mapping::embedded::model::mapping::testMappingEmbedded; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let plan = executionPlan($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()); let functionParameters = $plan.rootExecutionNode->allNodes(relationalExtensions())->filter(node | $node->instanceOf(FunctionParametersValidationNode))->cast(@FunctionParametersValidationNode).functionParameters; @@ -2376,7 +2384,7 @@ function <> meta::pure::executionPlan::tests::testSupportStreamFlagGr function <> meta::pure::executionPlan::tests::testSupportStreamFlagWithGraphFetchAndFrom():Boolean[1] { - let runtime = ^Runtime(connections = getConnection()); + let runtime = ^Runtime(connectionStores = getConnection()); let query = {firmName:String[*]| let targetGraph = #{meta::pure::mapping::modelToModel::test::shared::dest::Firm{legalName, employees{ @@ -2399,10 +2407,10 @@ function <> meta::pure::executionPlan::tests::testSupportStreamFlagWi function <> meta::pure::executionPlan::tests::testQuoteIdentifiersFlag():Boolean[1] { - let runtime = ^Runtime(connections = ^TestDatabaseConnection(element = meta::relational::tests::db, + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element = meta::relational::tests::db,connection=^TestDatabaseConnection( type = DatabaseType.H2, quoteIdentifiers = true - )); + ))); let result = executionPlan({|Product.all()->filter(p|$p.name == 'bla')}, simpleRelationalMapping, $runtime, meta::relational::extension::relationalExtensions()); assertEquals('Relational\n'+ '(\n'+ @@ -2416,10 +2424,10 @@ function <> meta::pure::executionPlan::tests::testQuoteIdentifiersFla function <> meta::pure::executionPlan::tests::testQuoteIdentifiersFlagInOrderByClause():Boolean[1] { - let runtime = ^Runtime(connections = ^TestDatabaseConnection(element = meta::relational::tests::db, + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element = meta::relational::tests::db,connection=^TestDatabaseConnection( type = DatabaseType.H2, quoteIdentifiers = true - )); + ))); let result = executionPlan({|Product.all()->project(p|$p.name, 'name')->sort('name')}, simpleRelationalMapping, $runtime, meta::relational::extension::relationalExtensions()); assertEquals('Relational\n'+ '(\n'+ @@ -2432,10 +2440,10 @@ function <> meta::pure::executionPlan::tests::testQuoteIdentifiersFla function <> meta::pure::executionPlan::tests::testQuoteIdentifiersFlagInGroupBy():Boolean[1] { - let runtime = ^Runtime(connections = ^TestDatabaseConnection(element = meta::relational::tests::db, + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element = meta::relational::tests::db,connection=^TestDatabaseConnection( type = DatabaseType.H2, quoteIdentifiers = true - )); + ))); let result = executionPlan({|Product.all()->project([#/Product/name!prodName#])->groupBy('prodName', agg('cnt', x|$x, y| $y->count()))}, simpleRelationalMapping, $runtime, meta::relational::extension::relationalExtensions()); assertEquals('Relational\n'+ '(\n'+ @@ -2448,10 +2456,10 @@ function <> meta::pure::executionPlan::tests::testQuoteIdentifiersFla function <> meta::pure::executionPlan::tests::testQuoteIdentifiersFlagWithGraphFetch():Boolean[1] { - let runtime = ^Runtime(connections = ^TestDatabaseConnection(element = meta::relational::tests::db, + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element = meta::relational::tests::db,connection=^TestDatabaseConnection( type = DatabaseType.H2, quoteIdentifiers = true - )); + ))); let graph = #{Product{name}}#; let result = executionPlan({|Product.all()->graphFetch($graph)->serialize($graph)}, simpleRelationalMapping, $runtime, meta::relational::extension::relationalExtensions()); assertEquals('PureExp(type=Stringexpression=->serialize(#{meta::relational::tests::model::simple::Product{name}}#)(StoreMappingGlobalGraphFetch(type=PartialClass[impls=[(meta::relational::tests::model::simple::Product|simpleRelationalMapping.meta_relational_tests_model_simple_Product)],propertiesWithParameters=[name]]resultSizeRange=*store=meta::relational::tests::dblocalGraphFetchExecutionNode=RelationalGraphFetch(type=PartialClass[impls=[(meta::relational::tests::model::simple::Product|simpleRelationalMapping.meta_relational_tests_model_simple_Product)],propertiesWithParameters=[name]]nodeIndex=0relationalNode=SQL(type=meta::pure::metamodel::type::AnyresultColumns=[("pk_0",INT),("name",VARCHAR(200))]sql=select"root"."ID"as"pk_0","root"."NAME"as"name"from"productSchema"."productTable"as"root"connection=TestDatabaseConnection(type="H2"))children=[])children=[]localTreeIndices=[0,1]dependencyIndices=[])))', $result->planToStringWithoutFormatting(meta::relational::extension::relationalExtensions())); @@ -2459,17 +2467,16 @@ function <> meta::pure::executionPlan::tests::testQuoteIdentifiersFla function <> meta::pure::executionPlan::tests::datetime::testPlanWithLocalH2ConnectionWithSQL():Boolean[1] { - let conn = ^meta::pure::alloy::connections::RelationalDatabaseConnection + let conn = ^meta::external::store::relational::runtime::RelationalDatabaseConnection ( - element = db, type = meta::relational::runtime::DatabaseType.H2, datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification(testDataSetupSqls=['a','b']), authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::TestDatabaseAuthenticationStrategy() ); - let runtime = ^Runtime(connections = $conn); + let runtime = ^Runtime(connectionStores = ^ConnectionStore(element=db, connection=$conn)); let plan = executionPlan({|Product.all()->filter(p|$p.name == 'ok')}, simpleRelationalMapping, $runtime, meta::relational::extension::relationalExtensions()); - assertEquals(['a','b'], $plan.rootExecutionNode.executionNodes->cast(@meta::relational::mapping::SQLExecutionNode).connection->cast(@meta::pure::alloy::connections::RelationalDatabaseConnection).datasourceSpecification->cast(@meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification).testDataSetupSqls); + assertEquals(['a','b'], $plan.rootExecutionNode.executionNodes->cast(@meta::relational::mapping::SQLExecutionNode).connection->cast(@meta::external::store::relational::runtime::RelationalDatabaseConnection).datasourceSpecification->cast(@meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification).testDataSetupSqls); let transformedPlan = meta::protocols::pure::vX_X_X::transformation::fromPureGraph::executionPlan::transformPlan($plan, meta::relational::extension::relationalExtensions()); assertEquals(['a','b'], $transformedPlan.rootExecutionNode.executionNodes->cast(@meta::protocols::pure::vX_X_X::metamodel::executionPlan::SQLExecutionNode).connection->cast(@meta::protocols::pure::vX_X_X::metamodel::store::relational::connection::RelationalDatabaseConnection).datasourceSpecification->cast(@meta::protocols::pure::vX_X_X::metamodel::store::relational::connection::alloy::specification::LocalH2DatasourceSpecification).testDataSetupSqls); } @@ -2479,7 +2486,7 @@ function <> meta::pure::executionPlan::tests::datetime::testPlanWithL { let extensions =meta::relational::extension::relationalExtensions() ->concatenate(meta::external::format::shared::transformation::tests::exampleExternalFormatExtension()->concatenate(meta::pure::extension::configuration::coreExtensions())); - let result = executionPlan({|Product.all()->project(p|$p.name, 'name')->meta::external::format::shared::functions::externalize('text/example')}, simpleRelationalMapping,meta::relational::tests::testRuntime(), $extensions); + let result = executionPlan({|Product.all()->project(p|$p.name, 'name')->meta::external::format::shared::functions::externalize('text/example')}, simpleRelationalMapping,meta::external::store::relational::tests::testRuntime(), $extensions); assertEquals ( 'ExternalFormat_ExternalizeTDS\n' + '(\n' + diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/executionPlan/tests/executionPlanTestSetup.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/executionPlan/tests/executionPlanTestSetup.pure index a8558e47ec3..aa431334b86 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/executionPlan/tests/executionPlanTestSetup.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/executionPlan/tests/executionPlanTestSetup.pure @@ -14,6 +14,7 @@ ###Mapping import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; Mapping meta::pure::executionPlan::tests::alternateSimpleMapping ( @@ -42,6 +43,7 @@ Mapping meta::pure::executionPlan::tests::alternateSimpleMapping ###Mapping import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; Mapping meta::pure::executionPlan::tests::alternateSimpleMapping2 ( @@ -66,4 +68,4 @@ Mapping meta::pure::executionPlan::tests::alternateSimpleMapping2 employees : [dbInc]@Firm_Person } -) \ No newline at end of file +) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/extensions/extension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/extensions/extension.pure index ead7599a286..6a89b09e881 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/extensions/extension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/extensions/extension.pure @@ -15,6 +15,7 @@ import meta::external::language::java::factory::project::*; import meta::external::language::java::metamodel::project::*; import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::pure::executionPlan::*; import meta::pure::executionPlan::engine::java::*; import meta::pure::executionPlan::toString::*; @@ -26,6 +27,7 @@ import meta::relational::extension::*; import meta::pure::router::routing::*; import meta::pure::router::store::embedded::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::store::*; import meta::pure::extension::*; @@ -34,12 +36,13 @@ import meta::pure::tds::schema::*; import meta::relational::metamodel::*; import meta::relational::functions::sqlQueryToString::*; import meta::relational::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; Class meta::relational::extension::RelationalExtension extends ModuleExtension { pureToSQL_buildUniqueName : Function<{Boolean[1], Boolean[1], Extension[*] -> Function<{Nil[1]->String[1]}>[*]}>[0..1]; - + relational_execution_postProcessors : Function<{PostProcessorResult[1], Runtime[1], RoutedValueSpecification[0..1], Mapping[0..1], Database[0..1], ExecutionContext[1] -> PostProcessorResult[1]}>[*]; relational_plan_postProcessors : Function<{PostProcessorResult[1], Runtime[1], RoutedValueSpecification[0..1], Mapping[0..1], Database[0..1], ExecutionContext[1] -> PostProcessorResult[1]}>[*]; relational_plan_updateConnection : Function<{Nil[1]->Connection[1]}>[*]; @@ -64,22 +67,22 @@ function meta::relational::extension::relationalExtension() : meta::pure::extens ( type = 'relational', - availableStores = meta::pure::extension::defaultExtensions().availableStores->concatenate(meta::relational::contract::relationalStoreContract()), + availableStores = meta::pure::extension::defaultExtensions().availableStores->concatenate(meta::relational::contract::relationalStoreContract()), serializerExtension = meta::relational::extension::relationalSerializerExtension_String_1__String_1_, - - executionPlan_execution_processNode = + + executionPlan_execution_processNode = {mapping:Mapping[1], runtime: Runtime[1], parametersValues:Pair[*], extensions:meta::pure::extension::Extension[*] | [ r:RelationalInstantiationExecutionNode[1] | let sql = $parametersValues->fold({a,b| let paramName = $a.first->evaluateAndDeactivate().name; let paramType = $a.first->evaluateAndDeactivate().genericType.rawType->toOne(); let sizeProcessedSql = $b->replace($paramName->buildVariableCollectionSizeString(), if($a.second->instanceOf(List), |$a.second->cast(@List).values->size()->toString(), |$a.second->size()->toString();)); let connection = $r.executionNodes->at(0)->cast(@SQLExecutionNode).connection; - + let paramTypeListOfList = $paramType == List && $paramType.classifierGenericType.typeArguments.rawType == List; if(!$paramTypeListOfList, // Need this check because we are trying to build freemarker exp for all params and we can't build freemarker exp for params of type List> | - let varPlaceHolderFreemarkerTemplate = ^meta::relational::functions::pureToSqlQuery::metamodel::VarPlaceHolder(name=$paramName, type=$paramType)->meta::relational::functions::sqlQueryToString::processOperation($runtime.connections->at(0)->cast(@DatabaseConnection).type, $extensions); + let varPlaceHolderFreemarkerTemplate = ^meta::relational::functions::pureToSqlQuery::metamodel::VarPlaceHolder(name=$paramName, type=$paramType)->meta::relational::functions::sqlQueryToString::processOperation($runtime.connectionStores->at(0).connection->cast(@DatabaseConnection).type, $extensions); let literalFreemarkerTemplate = $paramName->buildVariableTemplateString($a.second, $paramType, $runtime, $extensions); let freemarkerValue = $a.second->processLiteralDefaultForPlanService($connection.type, $connection.timeZone, $connection.quoteIdentifiers); @@ -138,7 +141,7 @@ function meta::relational::extension::relationalExtension() : meta::pure::extens []; ] }, - executionPlan_execution_allNodes = + executionPlan_execution_allNodes = {extensions:meta::pure::extension::Extension[*] | [ g : meta::relational::graphFetch::executionPlan::RelationalGraphFetchExecutionNode[1] | $g->concatenate($g.children->concatenate($g.executionNodes)->map(n | $n->allNodes($extensions))), @@ -202,7 +205,7 @@ function meta::relational::extension::relationalExtension() : meta::pure::extens ) )->concatenate( [ - meta::pure::tds::extensions::extendWithDigestOnColumns_TabularDataSet_1__String_1__HashType_1__String_$1_MANY$__TabularDataSet_1_, + meta::pure::tds::extensions::extendWithDigestOnColumns_TabularDataSet_1__String_1__HashType_1__String_$1_MANY$__TabularDataSet_1_, meta::pure::tds::extensions::extendWithDigestOnColumns_TabularDataSet_1__String_1__TabularDataSet_1_ ]->map(f| pair($f->cast(@Function), {| @@ -213,11 +216,11 @@ function meta::relational::extension::relationalExtension() : meta::pure::extens } ) ) - ) + ) ->concatenate( pair(tableToTDS_Table_1__TableTDS_1_->cast(@Function), {| createSchemaState($fe->reactivate()->cast(@TabularDataSet).columns); - }) + }) ) }, testExtension_testedBy = {allReferenceUses:ReferenceUsage[*], extensions:Extension[*] | {soFarr:TestedByResult[1]| $allReferenceUses.owner->filter(o|$o->instanceOf(Database))->cast(@Database)->fold({db,tbr|$db->testedBy($tbr, $extensions)}, $soFarr)}}, diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/loadCsvToDbTable/testLoadCsv.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/loadCsvToDbTable/testLoadCsv.pure index 5f727fc75e1..238273d5864 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/loadCsvToDbTable/testLoadCsv.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/loadCsvToDbTable/testLoadCsv.pure @@ -14,23 +14,24 @@ import meta::relational::metamodel::execute::*; import meta::relational::tests::loadCsv::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::model::simple::*; import meta::relational::metamodel::*; function <> meta::relational::tests::loadCsv::testLoadCsv():Boolean[1] { - let connection = meta::relational::tests::testRuntime(db).connections->toOne()->cast(@TestDatabaseConnection); + let connection = meta::external::store::relational::tests::testRuntime(db).connectionStores.connection->toOne()->cast(@TestDatabaseConnection); meta::relational::functions::toDDL::dropAndCreateTableInDb(db, 'personCsvTable', $connection); loadCsvToDbTable('/core_relational/relational/functions/tests/loadCsvToDbTable/employees.csv', db->schema('default')->toOne()->table('personCsvTable')->toOne(), $connection); - - let res = execute(|Person.all(), csvMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); - + + let res = execute(|Person.all(), csvMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + assertEquals('Joe', $res.values->at(0).firstName); assertEquals('Bloggs', $res.values->at(0).lastName); assertEquals(21, $res.values->at(0).age); - + assertEquals('Jill', $res.values->at(1).firstName); assertEquals('Smith', $res.values->at(1).lastName); assertEquals(31, $res.values->at(1).age); @@ -48,7 +49,7 @@ Mapping meta::relational::tests::loadCsv::csvMapping ( firstName : personCsvTable.FIRSTNAME, lastName : personCsvTable.LASTNAME, - age : personCsvTable.AGE + age : personCsvTable.AGE ) } ) @@ -58,5 +59,5 @@ Mapping meta::relational::tests::loadCsv::csvMapping Database meta::relational::tests::loadCsv::db ( Table personCsvTable(FIRSTNAME VARCHAR(30) PRIMARY KEY, LASTNAME VARCHAR(40), AGE INTEGER) - -) \ No newline at end of file + +) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testAggregation.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testAggregation.pure index fc088ad27fa..bb9d2840c84 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testAggregation.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testAggregation.pure @@ -15,6 +15,7 @@ import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::pure::profiles::*; import meta::pure::metamodel::tds::*; @@ -131,12 +132,12 @@ function <> meta::relational::tests::projection::aggregation::testSub col(f:Firm[1]|$f.employees->map(e|$e.lastName),'b'), col(f:Firm[1]|$f.employees->map(e|2 + $e.locations.place->count()),'c') ])}; - - + + println($l->evaluateAndDeactivate()); - - - + + + let result = execute($l, simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values.rows, 7); assertSameElements(['Firm A Roberts 4', 'Firm X Allen 4', 'Firm X Smith 4', 'Firm X Johnson 4', 'Firm X Hill 4', 'Firm C Harris 3', 'Firm B Hill 4'], $result.values.rows->map(r|$r.getString('a')+' '+$r.getString('b')+' '+$r.getInteger('c')->toString())); @@ -151,7 +152,7 @@ function <> meta::relational::tests::projection::aggregation::testSub col(f:Firm[1]|$f.employees->map(e|$e.lastName),'b'), col(f:Firm[1]|$f.employees->map(e|2 + $e.locations.place->count()),'c') ]->cast(@BasicColumnSpecification); - + let result = execute({|Firm.all()->project($cols)}, simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values.rows, 7); assertSameElements(['Firm A Roberts 4', 'Firm X Allen 4', 'Firm X Smith 4', 'Firm X Johnson 4', 'Firm X Hill 4', 'Firm C Harris 3', 'Firm B Hill 4'], $result.values.rows->map(r|$r.getString('a')+' '+$r.getString('b')+' '+$r.getInteger('c')->toString())); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testAssociationMixed.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testAssociationMixed.pure index 6c4c1db3024..135a73b9715 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testAssociationMixed.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testAssociationMixed.pure @@ -16,6 +16,7 @@ import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::pure::metamodel::tds::*; @@ -31,11 +32,11 @@ function <> meta::relational::tests::projection::association::mixed:: let result = execute(|Person.all()->filter(p|$p.firm.employees->exists(e|$e.name == 'Peter Smith' && $e.lastName == 'Smith') && $p.firm.legalName == 'Firm X')->project([#/Person/name#, #/Person/firstName#, #/Person/firm/legalName#]), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values.rows, 4); let sortedRows = $result.values.rows->map(a|$a.getString('name')+','+$a.getString('firstName')+','+$a.getString('legalName'))->sort(); - + assertEquals(['Anthony Allen,Anthony,Firm X'], $sortedRows->at(0)); assertEquals(['John Hill,John,Firm X'], $sortedRows->at(1)); assertEquals(['John Johnson,John,Firm X'], $sortedRows->at(2)); assertEquals(['Peter Smith,Peter,Firm X'], $sortedRows->at(3)); - + assertSameSQL('select concat("root".FIRSTNAME, \' \', "root".LASTNAME) as "name", "root".FIRSTNAME as "firstName", "firmtable_0".LEGALNAME as "legalName" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) left outer join (select distinct "persontable_2".FIRMID from personTable as "persontable_2" where (concat("persontable_2".FIRSTNAME, \' \', "persontable_2".LASTNAME) = \'Peter Smith\' and "persontable_2".LASTNAME = \'Smith\')) as "persontable_1" on ("firmtable_0".ID = "persontable_1".FIRMID) where ("persontable_1".FIRMID is not null and "firmtable_0".LEGALNAME = \'Firm X\')', $result); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testAssociationToMany.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testAssociationToMany.pure index cccba94b807..31135dd7d8e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testAssociationToMany.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testAssociationToMany.pure @@ -16,6 +16,7 @@ import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::pure::metamodel::tds::*; @@ -78,4 +79,4 @@ function <> meta::relational::tests::projection::association::toMany: assertSize($result.values.rows, 7); assertEquals('Allen,Anthony,David,Fabrice,Firm A,Firm B,Firm C,Firm X,Firm X,Firm X,Firm X,Harris,Hill,Hill,Hoboken,Hoboken,Hong Kong,Hong Kong,John,John,Johnson,New York,New York,New York,New York,New York,New York,New York,New York,Oliver,Peter,Roberts,San Fransisco,San Fransisco,Smith', $result.values.rows->map(r|$r.values)->sort()->makeString(',')); assertEquals('select "root".LEGALNAME as "legalName", "persontable_0".FIRSTNAME as "firstName", "persontable_0".LASTNAME as "lastName", "addresstable_0".NAME as "name", "addresstable_0".NAME as "n2" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID) left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "persontable_0".ADDRESSID)', $result->sqlRemoveFormatting()); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testAssociationToOne.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testAssociationToOne.pure index e3684651dc8..0cf64e0866f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testAssociationToOne.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testAssociationToOne.pure @@ -15,6 +15,7 @@ import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::pure::metamodel::tds::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testConcatenate.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testConcatenate.pure index b7c9434f45b..0296ed0b6b7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testConcatenate.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testConcatenate.pure @@ -15,6 +15,7 @@ import meta::relational::tests::model::simple::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::functions::sqlstring::*; @@ -66,15 +67,15 @@ function <> meta::relational::tests::projection::concatenate::tdsQuer let lfs = [{|Product.all()->project([p|$p.id, p|$p.name, p|$p.type],['id', 'name', 'type'])}, {|Product.all()->project([p|$p.id, p|$p.name, p|$p.type],['id', 'name', 'type'])}, {|Product.all()->project([p|$p.id, p|$p.name, p|$p.type],['id', 'name', 'type'])}]->evaluateAndDeactivate(); - + let concatLambda = concatenateTemporalTdsQueries($lfs); - + let actualQuery = execute($concatLambda, ProductMapping, testRuntime(), meta::relational::extension::relationalExtensions()); let actualResult = $actualQuery.values->at(0).rows->map(r|$r.values->makeString(',')); - + let expectedQuery = 'select "unionalias_0"."id" as "id", "unionalias_0"."name" as "name", "unionalias_0"."type" as "type" from (select "root".id as "id", "root".name as "name", "root".type as "type" from ProductTable as "root" UNION ALL select "root".id as "id", "root".name as "name", "root".type as "type" from ProductTable as "root" UNION ALL select "root".id as "id", "root".name as "name", "root".type as "type" from ProductTable as "root") as "unionalias_0"'; let expectedResult = ['1,name1,type1', '2,name2,type2', '3,name3,type3', '4,name1,type1', '5,name2,type2', '1,name1,type1', '2,name2,type2', '3,name3,type3', '4,name1,type1', '5,name2,type2', '1,name1,type1', '2,name2,type2', '3,name3,type3', '4,name1,type1', '5,name2,type2']; - + assertSameSQL($expectedQuery, $actualQuery); assertEquals($expectedResult, $actualResult); } @@ -84,15 +85,15 @@ function <> meta::relational::tests::projection::concatenate::tdsQuer let lfs = [{|Product.all()->filter(p|$p.name=='name1')->project([p|$p.id, p|$p.name, p|$p.type],['id', 'name', 'type'])}, {|Product.all()->filter(p|$p.name=='name2')->project([p|$p.id, p|$p.name, p|$p.type],['id', 'name', 'type'])}, {|Product.all()->filter(p|$p.name=='name3')->project([p|$p.id, p|$p.name, p|$p.type],['id', 'name', 'type'])}]->evaluateAndDeactivate(); - + let concatLambda = concatenateTemporalTdsQueries($lfs); - + let actualQuery = execute($concatLambda, ProductMapping, testRuntime(), meta::relational::extension::relationalExtensions()); let actualResult = $actualQuery.values->at(0).rows->map(r|$r.values->makeString(',')); - + let expectedQuery = 'select "unionalias_0"."id" as "id", "unionalias_0"."name" as "name", "unionalias_0"."type" as "type" from (select "root".id as "id", "root".name as "name", "root".type as "type" from ProductTable as "root" where "root".name = \'name1\' UNION ALL select "root".id as "id", "root".name as "name", "root".type as "type" from ProductTable as "root" where "root".name = \'name2\' UNION ALL select "root".id as "id", "root".name as "name", "root".type as "type" from ProductTable as "root" where "root".name = \'name3\') as "unionalias_0"'; let expectedResult = ['1,name1,type1', '4,name1,type1', '2,name2,type2', '5,name2,type2', '3,name3,type3']; - + assertSameSQL($expectedQuery, $actualQuery); assertEquals($expectedResult, $actualResult); } @@ -103,15 +104,15 @@ function <> meta::relational::tests::projection::concatenate::tdsQuer let lfs = [{|Product.all()->project([p|$p.id, p|$p.name, p|$p.type],['id', 'name', 'type'])->groupBy(['type'], [agg('count', x| $x.getInteger('id'), a | $a -> count())])}, {|Product.all()->project([p|$p.id, p|$p.name, p|$p.type],['id', 'name', 'type'])->groupBy(['type'], [agg('count', x| $x.getInteger('id'), a | $a -> count())])}, {|Product.all()->project([p|$p.id, p|$p.name, p|$p.type],['id', 'name', 'type'])->groupBy(['type'], [agg('count', x| $x.getInteger('id'), a | $a -> count())])}]->evaluateAndDeactivate(); - + let concatLambda = concatenateTemporalTdsQueries($lfs); - + let actualQuery = execute($concatLambda, ProductMapping, testRuntime(), meta::relational::extension::relationalExtensions()); let actualResult = $actualQuery.values->at(0)->sort(['type','count']).rows->map(r|$r.values->makeString(',')); - + let expectedQuery = 'select "unionalias_0"."type" as "type", "unionalias_0"."count" as "count" from (select "root".type as "type", count("root".id) as "count" from ProductTable as "root" group by "type" UNION ALL select "root".type as "type", count("root".id) as "count" from ProductTable as "root" group by "type" UNION ALL select "root".type as "type", count("root".id) as "count" from ProductTable as "root" group by "type") as "unionalias_0"'; let expectedResult = ['type1,2', 'type1,2', 'type1,2', 'type2,2', 'type2,2', 'type2,2', 'type3,1', 'type3,1', 'type3,1']; - + assertSameSQL($expectedQuery, $actualQuery); assertEquals($expectedResult, $actualResult); } @@ -121,22 +122,24 @@ function <> meta::relational::tests::projection::concatenate::tdsQuer let lfs = [{|Product.all()->filter(p|$p.name=='name1')->project([p|$p.id, p|$p.name, p|$p.type],['id', 'name', 'type'])->groupBy(['type'], [agg('count', x| $x.getInteger('id'), a | $a -> count())])}, {|Product.all()->filter(p|$p.name=='name2')->project([p|$p.id, p|$p.name, p|$p.type],['id', 'name', 'type'])->groupBy(['type'], [agg('count', x| $x.getInteger('id'), a | $a -> count())])}, {|Product.all()->filter(p|$p.name=='name3')->project([p|$p.id, p|$p.name, p|$p.type],['id', 'name', 'type'])->groupBy(['type'], [agg('count', x| $x.getInteger('id'), a | $a -> count())])}]->evaluateAndDeactivate(); - + let concatLambda = concatenateTemporalTdsQueries($lfs); - + let actualQuery = execute($concatLambda, ProductMapping, testRuntime(), meta::relational::extension::relationalExtensions()); let actualResult = $actualQuery.values->at(0).rows->map(r|$r.values->makeString(',')); - + let expectedQuery = 'select "unionalias_0"."type" as "type", "unionalias_0"."count" as "count" from (select "root".type as "type", count("root".id) as "count" from ProductTable as "root" where "root".name = \'name1\' group by "type" UNION ALL select "root".type as "type", count("root".id) as "count" from ProductTable as "root" where "root".name = \'name2\' group by "type" UNION ALL select "root".type as "type", count("root".id) as "count" from ProductTable as "root" where "root".name = \'name3\' group by "type") as "unionalias_0"'; let expectedResult = ['type1,2', 'type2,2', 'type3,1']; - + assertSameSQL($expectedQuery, $actualQuery); assertEquals($expectedResult, $actualResult); } ###Pure +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::execute::*; import meta::relational::functions::toDDL::*; @@ -144,13 +147,13 @@ import meta::relational::tests::projection::concatenate::tdsQueries::*; function meta::relational::tests::projection::concatenate::tdsQueries::testRuntime():Runtime[1] { - meta::relational::tests::testRuntime(ProductDatabase); + meta::external::store::relational::tests::testRuntime(ProductDatabase); } function <> meta::relational::tests::projection::concatenate::tdsQueries::setUp():Boolean[1] { let connection = testRuntime().connectionByElement(ProductDatabase)->cast(@TestDatabaseConnection); - + dropAndCreateTableInDb(ProductDatabase, 'ProductTable', $connection); executeInDb('insert into ProductTable (id, name, type) values (1,\'name1\', \'type1\');', $connection); @@ -158,6 +161,6 @@ function <> meta::relational::tests::projection::concatenate executeInDb('insert into ProductTable (id, name, type) values (3,\'name3\', \'type3\');', $connection); executeInDb('insert into ProductTable (id, name, type) values (4,\'name1\', \'type1\');', $connection); executeInDb('insert into ProductTable (id, name, type) values (5,\'name2\', \'type2\');', $connection); - + true; } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testDateFilters.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testDateFilters.pure index 54c536b7268..da92f1ea203 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testDateFilters.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testDateFilters.pure @@ -16,10 +16,11 @@ import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::tests::model::simple::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::functions::sqlstring::*; function <> meta::relational::tests::projection::filter::dates::today::testToday():Boolean[1] -{ +{ let query = {|Trade.all()->filter(d | $d.date == today())->project(x | $x.date, 'date')}; let h2Sql = toSQLString($query, simpleRelationalMapping, meta::relational::runtime::DatabaseType.H2, meta::relational::extension::relationalExtensions()); @@ -27,7 +28,7 @@ function <> meta::relational::tests::projection::filter::dates::today } function <> meta::relational::tests::projection::filter::dates::now::testNow():Boolean[1] -{ +{ let query = {|Trade.all()->filter(d | $d.date == now())->project(x | $x.date, 'date')}; let h2Sql = toSQLString($query, simpleRelationalMapping, meta::relational::runtime::DatabaseType.H2, meta::relational::extension::relationalExtensions()); @@ -35,11 +36,11 @@ function <> meta::relational::tests::projection::filter::dates::now:: } function <> meta::relational::tests::projection::filter::dates::adjust::testAdjust():Boolean[1] -{ +{ let result = execute(|Trade.all()->filter(d | $d.date == %2014-11-30->adjust(1, DurationUnit.DAYS))->project(x | $x.date, 'date'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = dateadd(DAY, 1, \'2014-11-30\')', - 'select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = dateadd(DAY, 1, DATE\'2014-11-30\')', + 'select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = dateadd(DAY, 1, \'2014-11-30\')', + 'select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = dateadd(DAY, 1, DATE\'2014-11-30\')', $result->sqlRemoveFormatting() ); assertSize($result.values.rows, 3); @@ -47,11 +48,11 @@ function <> meta::relational::tests::projection::filter::dates::adjus } function <> meta::relational::tests::projection::filter::dates::adjust::testAdjustWithMicroseconds():Boolean[1] -{ +{ let result = execute(|Trade.all()->filter(d | ($d.settlementDateTime > %2014-12-04T15:22:23->adjust(123456, DurationUnit.MICROSECONDS)) && ($d.settlementDateTime < %2014-12-04T15:22:23->adjust(123457, DurationUnit.MICROSECONDS)))->project(x | $x.settlementDateTime, 'settlementDateTime'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "root".settlementDateTime as "settlementDateTime" from tradeTable as "root" where (("root".settlementDateTime is not null and "root".settlementDateTime > dateadd(MICROSECOND, 123456, \'2014-12-04 15:22:23\')) and ("root".settlementDateTime is not null and "root".settlementDateTime < dateadd(MICROSECOND, 123457, \'2014-12-04 15:22:23\')))', - 'select "root".settlementDateTime as "settlementDateTime" from tradeTable as "root" where (("root".settlementDateTime is not null and "root".settlementDateTime > dateadd(MICROSECOND, 123456, TIMESTAMP\'2014-12-04 15:22:23\')) and ("root".settlementDateTime is not null and "root".settlementDateTime < dateadd(MICROSECOND, 123457, TIMESTAMP\'2014-12-04 15:22:23\')))', + 'select "root".settlementDateTime as "settlementDateTime" from tradeTable as "root" where (("root".settlementDateTime is not null and "root".settlementDateTime > dateadd(MICROSECOND, 123456, \'2014-12-04 15:22:23\')) and ("root".settlementDateTime is not null and "root".settlementDateTime < dateadd(MICROSECOND, 123457, \'2014-12-04 15:22:23\')))', + 'select "root".settlementDateTime as "settlementDateTime" from tradeTable as "root" where (("root".settlementDateTime is not null and "root".settlementDateTime > dateadd(MICROSECOND, 123456, TIMESTAMP\'2014-12-04 15:22:23\')) and ("root".settlementDateTime is not null and "root".settlementDateTime < dateadd(MICROSECOND, 123457, TIMESTAMP\'2014-12-04 15:22:23\')))', $result->sqlRemoveFormatting() ); assertSize($result.values.rows, 1); @@ -59,112 +60,113 @@ function <> meta::relational::tests::projection::filter::dates::adjus } function <> meta::relational::tests::projection::filter::dates::firstDay::testFirstDayOfWeek():Boolean[1] -{ +{ let result = execute(|Trade.all()->filter(d | $d.date->firstDayOfWeek() == %2017-09-18)->project(x | $x.date, 'date'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "root".tradeDate as "date" from tradeTable as "root" where dateadd(DAY, -(mod(dayofweek("root".tradeDate)+5, 7)), "root".tradeDate) = \'2017-09-18\'', - 'select "root".tradeDate as "date" from tradeTable as "root" where dateadd(DAY, -(mod(dayofweek("root".tradeDate)+5, 7)), "root".tradeDate) = DATE\'2017-09-18\'', + 'select "root".tradeDate as "date" from tradeTable as "root" where dateadd(DAY, -(mod(dayofweek("root".tradeDate)+5, 7)), "root".tradeDate) = \'2017-09-18\'', + 'select "root".tradeDate as "date" from tradeTable as "root" where dateadd(DAY, -(mod(dayofweek("root".tradeDate)+5, 7)), "root".tradeDate) = DATE\'2017-09-18\'', $result->sqlRemoveFormatting() ); } function <> meta::relational::tests::projection::filter::dates::firstDay::testFirstDayOfThisMonth():Boolean[1] -{ +{ let result = execute(|Trade.all()->filter(d | $d.date == firstDayOfThisMonth())->project(x | $x.date, 'date'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = dateadd(DAY, -(dayofmonth(current_date()) - 1), current_date())', $result->sqlRemoveFormatting()); } function <> meta::relational::tests::projection::filter::dates::firstDay::testFirstDayOfMonth():Boolean[1] -{ +{ let result = execute(|Trade.all()->filter(d | $d.date->firstDayOfMonth() == %2017-02-01)->project(x | $x.date, 'date'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "root".tradeDate as "date" from tradeTable as "root" where dateadd(DAY, -(dayofmonth("root".tradeDate) - 1), "root".tradeDate) = \'2017-02-01\'', - 'select "root".tradeDate as "date" from tradeTable as "root" where dateadd(DAY, -(dayofmonth("root".tradeDate) - 1), "root".tradeDate) = DATE\'2017-02-01\'', + 'select "root".tradeDate as "date" from tradeTable as "root" where dateadd(DAY, -(dayofmonth("root".tradeDate) - 1), "root".tradeDate) = \'2017-02-01\'', + 'select "root".tradeDate as "date" from tradeTable as "root" where dateadd(DAY, -(dayofmonth("root".tradeDate) - 1), "root".tradeDate) = DATE\'2017-02-01\'', $result->sqlRemoveFormatting() ); } function <> meta::relational::tests::projection::filter::dates::firstDay::testFirstDayOfThisQuarter():Boolean[1] -{ +{ let result = execute(|Trade.all()->filter(d | $d.date == firstDayOfThisQuarter())->project(x | $x.date, 'date'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = dateadd(MONTH, 3 * quarter(current_date) - 3, dateadd(DAY, -(dayofyear(current_date()) - 1), current_date()))', $result->sqlRemoveFormatting()); } function <> meta::relational::tests::projection::filter::dates::firstDay::testFirstDayOfQuarter():Boolean[1] -{ +{ let result = execute(|Trade.all()->filter(d | $d.date->firstDayOfQuarter() == %2017-04-01)->project(x | $x.date, 'date'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "root".tradeDate as "date" from tradeTable as "root" where dateadd(MONTH, 3 * quarter("root".tradeDate) - 3, dateadd(DAY, -(dayofyear("root".tradeDate) - 1), "root".tradeDate)) = \'2017-04-01\'', - 'select "root".tradeDate as "date" from tradeTable as "root" where dateadd(MONTH, 3 * quarter("root".tradeDate) - 3, dateadd(DAY, -(dayofyear("root".tradeDate) - 1), "root".tradeDate)) = DATE\'2017-04-01\'', + 'select "root".tradeDate as "date" from tradeTable as "root" where dateadd(MONTH, 3 * quarter("root".tradeDate) - 3, dateadd(DAY, -(dayofyear("root".tradeDate) - 1), "root".tradeDate)) = \'2017-04-01\'', + 'select "root".tradeDate as "date" from tradeTable as "root" where dateadd(MONTH, 3 * quarter("root".tradeDate) - 3, dateadd(DAY, -(dayofyear("root".tradeDate) - 1), "root".tradeDate)) = DATE\'2017-04-01\'', $result->sqlRemoveFormatting() ); } function <> meta::relational::tests::projection::filter::dates::firstDay::testFirstDayOfThisYear():Boolean[1] -{ +{ let result = execute(|Trade.all()->filter(d | $d.date == firstDayOfThisYear())->project(x | $x.date, 'date'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = dateadd(DAY, -(dayofyear(current_date()) - 1), current_date())', $result->sqlRemoveFormatting()); } function <> meta::relational::tests::projection::filter::dates::firstDay::testFirstDayOfYear():Boolean[1] -{ +{ let result = execute(|Trade.all()->filter(d | $d.date->firstDayOfYear() == %2017-01-01)->project(x | $x.date, 'date'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "root".tradeDate as "date" from tradeTable as "root" where dateadd(DAY, -(dayofyear("root".tradeDate) - 1), "root".tradeDate) = \'2017-01-01\'', - 'select "root".tradeDate as "date" from tradeTable as "root" where dateadd(DAY, -(dayofyear("root".tradeDate) - 1), "root".tradeDate) = DATE\'2017-01-01\'', + 'select "root".tradeDate as "date" from tradeTable as "root" where dateadd(DAY, -(dayofyear("root".tradeDate) - 1), "root".tradeDate) = \'2017-01-01\'', + 'select "root".tradeDate as "date" from tradeTable as "root" where dateadd(DAY, -(dayofyear("root".tradeDate) - 1), "root".tradeDate) = DATE\'2017-01-01\'', $result->sqlRemoveFormatting() ); } function <> meta::relational::tests::projection::filter::dates::recent::testMostRecentDayOfWeek():Boolean[1] -{ +{ let query = {|Trade.all()->filter(d | $d.date == mostRecentDayOfWeek(DayOfWeek.Monday))->project(x | $x.date, 'date')}; - + let h2Sql = toSQLString($query, simpleRelationalMapping, meta::relational::runtime::DatabaseType.H2, meta::relational::extension::relationalExtensions()); assertEquals('select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = dateadd(DAY, case when 2 - DAY_OF_WEEK(current_date()) > 0 then 2 - DAY_OF_WEEK(current_date()) - 7 else 2 - DAY_OF_WEEK(current_date()) end, current_date())', $h2Sql); } function <> meta::relational::tests::projection::filter::dates::recent::testPreviousDayOfWeek():Boolean[1] -{ +{ let result = execute(|Trade.all()->filter(d | $d.date == previousDayOfWeek(DayOfWeek.Monday))->project(x | $x.date, 'date'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = dateadd(DAY, case when 2 - DAY_OF_WEEK(current_date()) >= 0 then 2 - DAY_OF_WEEK(current_date()) - 7 else 2 - DAY_OF_WEEK(current_date()) end, current_date())', $result->sqlRemoveFormatting()); } function <> meta::relational::tests::projection::filter::dates::recent::testMostRecentDayOfWeekWithDate():Boolean[1] -{ +{ let result = execute(|Trade.all()->filter(d | $d.date == mostRecentDayOfWeek(%2014-12-04, DayOfWeek.Monday))->project(x | $x.date, 'date'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values.rows, 3); assertSameElements([%2014-12-01,%2014-12-01,%2014-12-01], $result.values.rows.values); assertEqualsH2Compatible( - 'select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = dateadd(DAY, case when 2 - DAY_OF_WEEK(\'2014-12-04\') > 0 then 2 - DAY_OF_WEEK(\'2014-12-04\') - 7 else 2 - DAY_OF_WEEK(\'2014-12-04\') end, \'2014-12-04\')', - 'select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = dateadd(DAY, case when 2 - DAY_OF_WEEK(DATE\'2014-12-04\') > 0 then 2 - DAY_OF_WEEK(DATE\'2014-12-04\') - 7 else 2 - DAY_OF_WEEK(DATE\'2014-12-04\') end, DATE\'2014-12-04\')', + 'select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = dateadd(DAY, case when 2 - DAY_OF_WEEK(\'2014-12-04\') > 0 then 2 - DAY_OF_WEEK(\'2014-12-04\') - 7 else 2 - DAY_OF_WEEK(\'2014-12-04\') end, \'2014-12-04\')', + 'select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = dateadd(DAY, case when 2 - DAY_OF_WEEK(DATE\'2014-12-04\') > 0 then 2 - DAY_OF_WEEK(DATE\'2014-12-04\') - 7 else 2 - DAY_OF_WEEK(DATE\'2014-12-04\') end, DATE\'2014-12-04\')', $result->sqlRemoveFormatting() ); } function <> meta::relational::tests::projection::filter::dates::recent::testPreviousDayOfWeekWithDate():Boolean[1] -{ +{ let result = execute(|Trade.all()->filter(d | $d.date == previousDayOfWeek(%2014-12-08, DayOfWeek.Monday))->project(x | $x.date, 'date'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values.rows, 3); assertSameElements([%2014-12-01,%2014-12-01,%2014-12-01], $result.values.rows.values); assertEqualsH2Compatible( - 'select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = dateadd(DAY, case when 2 - DAY_OF_WEEK(\'2014-12-08\') >= 0 then 2 - DAY_OF_WEEK(\'2014-12-08\') - 7 else 2 - DAY_OF_WEEK(\'2014-12-08\') end, \'2014-12-08\')', - 'select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = dateadd(DAY, case when 2 - DAY_OF_WEEK(DATE\'2014-12-08\') >= 0 then 2 - DAY_OF_WEEK(DATE\'2014-12-08\') - 7 else 2 - DAY_OF_WEEK(DATE\'2014-12-08\') end, DATE\'2014-12-08\')', + 'select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = dateadd(DAY, case when 2 - DAY_OF_WEEK(\'2014-12-08\') >= 0 then 2 - DAY_OF_WEEK(\'2014-12-08\') - 7 else 2 - DAY_OF_WEEK(\'2014-12-08\') end, \'2014-12-08\')', + 'select "root".tradeDate as "date" from tradeTable as "root" where "root".tradeDate = dateadd(DAY, case when 2 - DAY_OF_WEEK(DATE\'2014-12-08\') >= 0 then 2 - DAY_OF_WEEK(DATE\'2014-12-08\') - 7 else 2 - DAY_OF_WEEK(DATE\'2014-12-08\') end, DATE\'2014-12-08\')', $result->sqlRemoveFormatting() ); } function <> meta::relational::tests::projection::filter::dates::testDateWithSeconds():Boolean[1] -{ +{ let result = execute(|Trade.all()->filter(d | $d.settlementDateTime > %2014-12-04T15:22:24)->project(x | $x.settlementDateTime, 'date'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values.rows, 3); assertSameElements([%2014-12-04T21:00:00.000000000+0000, %2014-12-05T21:00:00.000000000+0000, %2014-12-05T21:00:00.000000000+0000], $result.values.rows.values); assertEqualsH2Compatible( - 'select "root".settlementDateTime as "date" from tradeTable as "root" where ("root".settlementDateTime is not null and "root".settlementDateTime > \'2014-12-04 15:22:24\')', - 'select "root".settlementDateTime as "date" from tradeTable as "root" where ("root".settlementDateTime is not null and "root".settlementDateTime > TIMESTAMP\'2014-12-04 15:22:24\')', + 'select "root".settlementDateTime as "date" from tradeTable as "root" where ("root".settlementDateTime is not null and "root".settlementDateTime > \'2014-12-04 15:22:24\')', + 'select "root".settlementDateTime as "date" from tradeTable as "root" where ("root".settlementDateTime is not null and "root".settlementDateTime > TIMESTAMP\'2014-12-04 15:22:24\')', $result->sqlRemoveFormatting() ); -} \ No newline at end of file +} + diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testExists.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testExists.pure index 838d2afdbcc..e194f5a9f86 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testExists.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testExists.pure @@ -13,7 +13,9 @@ // limitations under the License. import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::tests::projection::exists::*; import meta::relational::mapping::*; @@ -41,7 +43,7 @@ function <> meta::relational::tests::projection::exists::testSimpleEx { let result = execute(|Person.all()->project([p|$p.name, p|$p.addresses->exists(a|$a.name == 'Hoboken')], ['a', 'prop']), meta::relational::tests::simpleRelationalMapping, - meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values.rows, 7); assertSameElements(['Anthony Allen true', 'David Harris false', 'Fabrice Roberts false','John Johnson true','John Hill true','Oliver Hill false','Peter Smith true'], $result.values.rows->map(r | $r.values->at(0)->toString()+' '+$r.values->at(1)->toString())); assertEquals('select concat("root".FIRSTNAME, \' \', "root".LASTNAME) as "a", exists(select 1 from (select "addresstable_0".ID as ID, null as ADDRESSID, "addresstable_0".NAME as "addressTableNAME" from addressTable as "addresstable_0" UNION ALL select "firmtable_0".ID as ID, "firmtable_0".ADDRESSID as ADDRESSID, "addresstable_1".NAME as "addressTableNAME" from firmTable as "firmtable_0" left outer join addressTable as "addresstable_1" on ("addresstable_1".ID = "firmtable_0".ADDRESSID)) as "unionalias_0" where ("unionalias_0".ID = "root".FIRMID or "unionalias_0".ID = "root".ADDRESSID) and "unionalias_0"."addressTableNAME" = \'Hoboken\') as "prop" from personTable as "root"', $result->sqlRemoveFormatting()); @@ -60,7 +62,7 @@ function <> meta::relational::tests::projection::exists::testExistsAs function <> meta::relational::tests::projection::exists::testExistsEmbeddedOnSameTable():Boolean[1] { let result = execute(|MyClass.all()->project(p|$p.dependencies->exists(d|$d.name == 'name2'), 'prop'), - meta::relational::tests::projection::exists::mappingEmbeddedSameTable, + meta::relational::tests::projection::exists::mappingEmbeddedSameTable, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values.rows, 3); assertSameElements([true, false, true], $result.values.rows->map(r | $r.values->at(0))); @@ -91,7 +93,7 @@ function <> meta::relational::tests::projection::exists::testExistsAs function <> meta::relational::tests::projection::exists::setUp():Boolean[1] { meta::relational::tests::projection::setUp(); - + let connection = testRuntime().connectionByElement(db)->cast(@TestDatabaseConnection); meta::relational::functions::toDDL::dropAndCreateTableInDb(db, 'main', $connection); @@ -115,7 +117,7 @@ function <> meta::relational::tests::projection::exists::set executeInDb('insert into dep (id, mainId, name, otherFIlter) values (5, 3, \'name1\', 0);', $connection); executeInDb('insert into dep (id, mainId, name, otherFIlter) values (6, 3, \'name2\', 2);', $connection); executeInDb('insert into dep (id, mainId, name, otherFIlter) values (7, 3, \'name3\', 0);', $connection); - + true; // executeInDb('insert into Product (id, productDate, name, tradeId) values (1, \'2014-12-01 21:00:00\', \'prod 1 V1\', 1);', $connection); @@ -123,7 +125,7 @@ function <> meta::relational::tests::projection::exists::set function meta::relational::tests::projection::exists::testRuntime():Runtime[1] { - meta::relational::tests::testRuntime(db); + meta::external::store::relational::tests::testRuntime(db); } ###Mapping @@ -137,7 +139,7 @@ Mapping meta::relational::tests::projection::exists::mappingEmbeddedSameTable dependencies( name: [db]mainDenorm.depName ) - } + } ) Mapping meta::relational::tests::projection::exists::mapping @@ -145,9 +147,9 @@ Mapping meta::relational::tests::projection::exists::mapping MyClass : Relational { name : [db]main.name, - dependencies : [db]@join + dependencies : [db]@join } - + Dependency : Relational { name : [db]dep.name @@ -163,12 +165,12 @@ Mapping meta::relational::tests::projection::exists::mappingWithFilter { ~filter [db]f1 name : [db]main.name, - dependencies : [db]@join + dependencies : [db]@join } - + Dependency : Relational { - ~filter [db]f2 + ~filter [db]f2 name : [db]dep.name } ) @@ -182,12 +184,12 @@ Mapping meta::relational::tests::projection::exists::mappingWithFilterAndWrongJo { ~filter [db]f1 name : [db]main.name, - dependencies : [db]@wrongJoin + dependencies : [db]@wrongJoin } - + Dependency : Relational { - ~filter [db]f2 + ~filter [db]f2 name : [db]dep.name } ) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testFilter.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testFilter.pure index b15ce2b072d..c788ae6f9af 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testFilter.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testFilter.pure @@ -15,6 +15,7 @@ import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::pure::profiles::*; import meta::pure::metamodel::tds::*; @@ -24,13 +25,13 @@ function <> meta::relational::tests::projection::filter:: let result = execute(|Firm.all()->project([f|$f.legalName, f|$f.employees.firstName, f|$f.employees.lastName->filter(s|$s->in(['Hill','Roberts']))->map(e|$e+'eee')], ['firm', 'firstName' ,'lastName']), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); false; // Should return the SQL -// select -// root.LEGALNAME as "firm", -// personTable_d_d_d_d_m2.FIRSTNAME as "firstName", +// select +// root.LEGALNAME as "firm", +// personTable_d_d_d_d_m2.FIRSTNAME as "firstName", // (select concat(x.LASTNAME,'eee') from personTable as x where personTable_d_d_d_d_m2 .ID = x.ID and x.LASTNAME in ('Johnson', 'Roberts')) as "lastName" -// from firmTable as root -// left outer join personTable -// as personTable_d_d_d_d_m2 +// from firmTable as root +// left outer join personTable +// as personTable_d_d_d_d_m2 // on (root.ID = personTable_d_d_d_d_m2.FIRMID) } @@ -86,9 +87,9 @@ function <> meta::relational::tests::projection::filter::testCompress { let result = execute(|Person.all()->project( [col( x |$x.name,'Name' ), - col( x |$x.locations->filter( f| $f.place -> in(['Hoboken', 'New York']) ).place ,'place' ), - col( x |$x.locations->filter( f| $f.place -> in(['Hoboken','New York']) ).censusdate ,'CD' ) ]), - meta::relational::tests::simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions(), debug()); + col( x |$x.locations->filter( f| $f.place -> in(['Hoboken', 'New York']) ).place ,'place' ), + col( x |$x.locations->filter( f| $f.place -> in(['Hoboken','New York']) ).censusdate ,'CD' ) ]), + meta::relational::tests::simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions(), debug()); assertEquals('select concat("root".FIRSTNAME, \' \', "root".LASTNAME) as "Name", "locationtable_0".PLACE as "place", "locationtable_0".date as "CD" from personTable as "root" left outer join locationTable as "locationtable_0" on ("root".ID = "locationtable_0".PERSONID and "locationtable_0".PLACE in (\'Hoboken\', \'New York\'))', $result->sqlRemoveFormatting()); } @@ -96,19 +97,20 @@ function <> meta::relational::tests::projection::filter::testCompress function <> meta::relational::tests::projection::filter::testCompressSQLforINFilter2():Boolean[1] { let result = execute(|Person.all()->project( [col( x |$x.name,'Name' ), - col( x |$x.locations->filter( f| $f.place -> in([ 'New York']) ).place ,'place' ), - col( x |$x.locations->filter( f| $f.place -> in(['New York','Hoboken']) ).censusdate ,'CD' ) ]), - meta::relational::tests::simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + col( x |$x.locations->filter( f| $f.place -> in([ 'New York']) ).place ,'place' ), + col( x |$x.locations->filter( f| $f.place -> in(['New York','Hoboken']) ).censusdate ,'CD' ) ]), + meta::relational::tests::simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('select concat("root".FIRSTNAME, \' \', "root".LASTNAME) as "Name", "locationtable_0".PLACE as "place", "locationtable_1".date as "CD" from personTable as "root" left outer join locationTable as "locationtable_0" on ("root".ID = "locationtable_0".PERSONID and "locationtable_0".PLACE = \'New York\') left outer join locationTable as "locationtable_1" on ("root".ID = "locationtable_1".PERSONID and "locationtable_1".PLACE in (\'New York\', \'Hoboken\'))', $result->sqlRemoveFormatting()); } function <> meta::relational::tests::projection::filter::testParametrizedEnumFilter(): Boolean[1] { - let runtime = meta::relational::tests::testRuntime(); - let connection = $runtime.connections->at(0)->cast(@meta::relational::runtime::TestDatabaseConnection); - + let runtime = meta::external::store::relational::tests::testRuntime(); + let connectionStore = $runtime.connectionStores->at(0); + let connection = $connectionStore.connection->cast(@meta::external::store::relational::runtime::TestDatabaseConnection); + let runtimeWithTestData = ^$runtime( - connections = ^$connection( + connectionStores = ^$connectionStore(connection=^$connection( testDataSetupCsv = 'default\n'+ 'addressTable\n'+ @@ -116,9 +118,9 @@ function <> meta::relational::tests::projection::filt '1,1,Address_1\n'+ '2,2,Address_2\n'+ '-----\n' - ) + )) ); - + let func = {g: GeographicEntityType[1]| Address.all() ->filter(a | $a.type == $g) @@ -126,7 +128,7 @@ function <> meta::relational::tests::projection::filt ->meta::pure::graphFetch::execution::serialize(#{Address{ name }}#) ->meta::pure::mapping::from(simpleRelationalMapping, $runtimeWithTestData); }; - + let res = meta::legend::executeLegendQuery($func, [pair('g', 'CITY')], ^meta::pure::runtime::ExecutionContext(), meta::relational::extension::relationalExtensions()); assertJsonStringsEqual('{"builder":{"_type":"json"},"values":{"name":"Address_1"}}', $res); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testFilters.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testFilters.pure index 1c8f9f2bc40..05e294b03b3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testFilters.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testFilters.pure @@ -15,6 +15,7 @@ import meta::relational::tests::model::simple::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::projection::filter::greaterThan::testGreaterThan():Boolean[1] { @@ -79,7 +80,7 @@ function <> meta::relational::tests::projection::filter::isolation::t let result = execute(|Firm.all()->project(e| if(false,|$e.employeeWithFirmAddressName().name,|$e.legalName),'name'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(['Firm X', 'Firm A', 'Firm B', 'Firm C'],$tds.rows->map(r|$r.values->makeString(','))); - assertEquals('select case when false then concat("firmtable_1".FIRSTNAME, \' \', "firmtable_1".LASTNAME) else "root".LEGALNAME end as "name" from firmTable as "root" left outer join (select "firmtable_2".ID as ID, "persontable_0".FIRSTNAME as FIRSTNAME, "persontable_0".LASTNAME as LASTNAME from firmTable as "firmtable_2" left outer join personTable as "persontable_0" on ("firmtable_2".ID = "persontable_0".FIRMID) left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "firmtable_2".ADDRESSID) where concat("persontable_0".FIRSTNAME, \' \', "persontable_0".LASTNAME) = "addresstable_0".NAME) as "firmtable_1" on ("root".ID = "firmtable_1".ID)', $result->sqlRemoveFormatting()); + assertEquals('select case when false then concat("firmtable_1".FIRSTNAME, \' \', "firmtable_1".LASTNAME) else "root".LEGALNAME end as "name" from firmTable as "root" left outer join (select "firmtable_2".ID as ID, "persontable_0".FIRSTNAME as FIRSTNAME, "persontable_0".LASTNAME as LASTNAME from firmTable as "firmtable_2" left outer join personTable as "persontable_0" on ("firmtable_2".ID = "persontable_0".FIRMID) left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "firmtable_2".ADDRESSID) where concat("persontable_0".FIRSTNAME, \' \', "persontable_0".LASTNAME) = "addresstable_0".NAME) as "firmtable_1" on ("root".ID = "firmtable_1".ID)', $result->sqlRemoveFormatting()); } function <> meta::relational::tests::projection::filter::isolation::testIsolatioWhereNoConstaintsAndInnerJoin():Boolean[1] @@ -87,5 +88,5 @@ function <> meta::relational::tests::projection::filter::isolation::t let result = execute(|Firm.all()->project([f|$f.legalName, f|$f.address.name],['legalName','addressName']), meta::relational::tests::mapping::join::model::mapping::chainedJoinsInner, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(['Firm X, UK', 'Firm X, Europe', 'Firm X, Europe', 'Firm X, Europe', 'Firm A, Europe', 'Firm B, Europe', 'Firm C, Europe'],$tds.rows->map(r|$r.values->makeString(', '))); - assertEquals('select "root".LEGALNAME as "legalName", case when ("firmpersonbridgetable_0".ADDRESSID = 1 or "addresstable_0".ID = 1) then \'UK\' else \'Europe\' end as "addressName" from firmTable as "root" left outer join (select "firmpersonbridgetable_1".FIRM_ID as FIRM_ID, "persontable_0".ADDRESSID as ADDRESSID from firmPersonBridgeTable as "firmpersonbridgetable_1" inner join personTable as "persontable_0" on ("persontable_0".ID = "firmpersonbridgetable_1".PERSON_ID)) as "firmpersonbridgetable_0" on ("root".ID = "firmpersonbridgetable_0".FIRM_ID) left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "root".ADDRESSID)', $result->sqlRemoveFormatting()); + assertEquals('select "root".LEGALNAME as "legalName", case when ("firmpersonbridgetable_0".ADDRESSID = 1 or "addresstable_0".ID = 1) then \'UK\' else \'Europe\' end as "addressName" from firmTable as "root" left outer join (select "firmpersonbridgetable_1".FIRM_ID as FIRM_ID, "persontable_0".ADDRESSID as ADDRESSID from firmPersonBridgeTable as "firmpersonbridgetable_1" inner join personTable as "persontable_0" on ("persontable_0".ID = "firmpersonbridgetable_1".PERSON_ID)) as "firmpersonbridgetable_0" on ("root".ID = "firmpersonbridgetable_0".FIRM_ID) left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "root".ADDRESSID)', $result->sqlRemoveFormatting()); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testFunction.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testFunction.pure index 4bafc3222b3..b496255aff4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testFunction.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testFunction.pure @@ -14,6 +14,7 @@ import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::pure::profiles::*; import meta::pure::metamodel::tds::*; @@ -131,7 +132,7 @@ function <> meta::relational::tests::projection::function::date::test assertSize($dayResult.values->at(0).rows, 2); assertEquals([1,^TDSNull()], $dayResult.values->at(0).rows.values); assertEquals('select datediff(day,"root".tradeDate,"root".settlementDateTime) as "daysDiff" from tradeTable as "root" where "root".ID in (9, 10)', $dayResult->sqlRemoveFormatting()); - + let hourResult = execute(|Trade.all()->filter(f| $f.id->in([9,10]))->project([t| dateDiff($t.date, $t.settlementDateTime, DurationUnit.HOURS )], ['hoursDiff']), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($hourResult.values->at(0).rows, 2); assertEquals([45,^TDSNull()], $hourResult.values->at(0).rows.values); @@ -154,7 +155,7 @@ function <> meta::relational::tests::projection::function::testSameBe { let resultForAdd = execute(|Order.all()->project([o|$o.pnl, o|$o.pnl->toOne() * 3], ['pnl', 'scaledPnl']), simpleRelationalMappingWithNestedAdd, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('select ("root".quantity + ("root".quantity + 3)) as "pnl", (("root".quantity + ("root".quantity + 3)) * 3) as "scaledPnl" from orderTable as "root"', $resultForAdd->sqlRemoveFormatting()); - + let resultForPlus = execute(|Order.all()->project([o|$o.pnl->toOne(), o|$o.pnl->toOne() * 3], ['pnl', 'scaledPnl']), simpleRelationalMappingWithNestedPlus, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals('select ("root".quantity + ("root".quantity + 3)) as "pnl", (("root".quantity + ("root".quantity + 3)) * 3) as "scaledPnl" from orderTable as "root"', $resultForPlus->sqlRemoveFormatting()); + assertEquals('select ("root".quantity + ("root".quantity + 3)) as "pnl", (("root".quantity + ("root".quantity + 3)) * 3) as "scaledPnl" from orderTable as "root"', $resultForPlus->sqlRemoveFormatting()); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testFunctionVariables.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testFunctionVariables.pure index 4e439fe6a72..4705ddcaf30 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testFunctionVariables.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testFunctionVariables.pure @@ -15,6 +15,7 @@ import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::functions::*; import meta::relational::functions::pureToSqlQuery::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testIn.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testIn.pure index 19c91859b82..7b3c5527a49 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testIn.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testIn.pure @@ -16,6 +16,7 @@ import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::tests::model::simple::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::projection::filter::in::testIn():Boolean[1] { diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testQualifier.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testQualifier.pure index 0bd4d0626fb..35e80fb8841 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testQualifier.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testQualifier.pure @@ -15,6 +15,7 @@ import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::pure::profiles::*; import meta::pure::metamodel::tds::*; @@ -185,53 +186,53 @@ function <> meta::relational::tests::projection::qualifier::testQuali function <> meta::relational::tests::projection::qualifier::testFilterInQualifierAndMapping():Boolean[1] -{ +{ let result = execute(|Product.all()->filter(p | $p.cusip == 'CUSIP1') - ->project([p | $p.name, p | $p.cusip], ['name', 'cusip']), - meta::relational::tests::projection::qualifier::productMappingWithFilter, + ->project([p | $p.name, p | $p.cusip], ['name', 'cusip']), + meta::relational::tests::projection::qualifier::productMappingWithFilter, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values.rows, 0); - + assertEquals('select "root".NAME as "name", "synonymTable_d_1_d#5_d_m2".NAME as "cusip" from productSchema.productTable as "root" left outer join productSchema.synonymTable as "synonymTable_d_1_d#5_d_m2" on ("synonymTable_d_1_d#5_d_m2".PRODID = "root".ID and "synonymTable_d_1_d#5_d_m2".TYPE = \'CUSIP\')', $result->sqlRemoveFormatting()); - + } function <> meta::relational::tests::projection::qualifier::testFilterInQualifierWithFilterInMappingInAggGroupBy():Boolean[1] -{ +{ let result = execute(|Product.all()->groupBy( [p | $p.name] - , - [agg(p | $p.cusip, y|$y->count())], - + , + [agg(p | $p.cusip, y|$y->count())], + ['name', 'cusip'] - )->sort('name'), - meta::relational::tests::projection::qualifier::productMappingWithFilter, + )->sort('name'), + meta::relational::tests::projection::qualifier::productMappingWithFilter, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values.rows, 4); assertEquals(['Firm A', 1, 'Firm C', 1, 'Firm D', 0, 'Firm X', 0], $result.values.rows.values); - + assertEquals('select "root".NAME as "name", count("synonymtable_0".NAME) as "cusip" from productSchema.productTable as "root" left outer join productSchema.synonymTable as "synonymtable_0" on ("synonymtable_0".PRODID = "root".ID and "synonymtable_0".TYPE = \'CUSIP\' and "synonymtable_0".ID != 1) group by "name" order by "name"', $result->sqlRemoveFormatting()); - + } function <> meta::relational::tests::projection::qualifier::testFilterInQualifierWithFilterInMappingInProjectGroupBy():Boolean[1] -{ +{ let result = execute(|Product.all()->groupBy( [p | $p.cusip] - , - [agg(p | $p.name, y|$y->count())], - + , + [agg(p | $p.name, y|$y->count())], + ['cusip', 'count'] - )->sort('cusip'), - meta::relational::tests::projection::qualifier::productMappingWithFilter, + )->sort('cusip'), + meta::relational::tests::projection::qualifier::productMappingWithFilter, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values.rows, 3); assertEquals([^TDSNull(), 2, 'CUSIP2', 1, 'CUSIP3', 1], $result.values.rows.values); - + assertEquals('select "synonymtable_0".NAME as "cusip", count("root".NAME) as "count" from productSchema.productTable as "root" left outer join productSchema.synonymTable as "synonymtable_0" on ("synonymtable_0".PRODID = "root".ID and "synonymtable_0".TYPE = \'CUSIP\' and "synonymtable_0".ID != 1) group by "cusip" order by "cusip"', $result->sqlRemoveFormatting()); - + } function <> meta::relational::tests::projection::qualifier::testQualifierWithVariableArg():Boolean[1] @@ -247,7 +248,7 @@ function <> meta::relational::tests::projection::qualifier::testQuali let result = execute(|Firm.all()->project([f|$f.legalName,f|$f.employeeByLastNameWhereVarIsFirstEqualArg($f.legalName).name],['firmId','employeeWithFirmLastName']), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(['Firm X~ ', 'Firm A~ ', 'Firm B~ ', 'Firm C~ '],$tds.rows->map(r|$r.values->makeString('~'))); - assertEquals('select "root".LEGALNAME as "firmId", concat("persontable_0".FIRSTNAME, \' \', "persontable_0".LASTNAME) as "employeeWithFirmLastName" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID and "root".LEGALNAME = "persontable_0".LASTNAME)', $result->sqlRemoveFormatting()); + assertEquals('select "root".LEGALNAME as "firmId", concat("persontable_0".FIRSTNAME, \' \', "persontable_0".LASTNAME) as "employeeWithFirmLastName" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID and "root".LEGALNAME = "persontable_0".LASTNAME)', $result->sqlRemoveFormatting()); } function <> meta::relational::tests::projection::qualifier::testQualifierWithVariableArgWithComplexTypeProperty():Boolean[1] @@ -271,7 +272,7 @@ function <> meta::relational::tests::projection::qualifier::testFilte let result = execute(|Trade.all()->filter(t|( ($t.tradeDateEvent().eventType->isNotEmpty() || $t.account.name == 'Account 1') && $t.id == '1'))->project([col(t | $t.id, 'id'), col(t | $t.account.name,'acc')]), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertSize($result.values.rows, 1); assertEquals('select "root".ID as "id", "accounttable_0".name as "acc" from tradeTable as "root" left outer join tradeEventTable as "tradeeventtable_0" on ("root".ID = "tradeeventtable_0".trade_id and "tradeeventtable_0".trade_id = \'1\' and "tradeeventtable_0".eventDate = "root".tradeDate) left outer join accountTable as "accounttable_0" on ("root".accountID = "accounttable_0".ID) where (("tradeeventtable_0".eventType is not null or "accounttable_0".name = \'Account 1\') and "root".ID = \'1\')', $result->sqlRemoveFormatting()); } @@ -279,6 +280,7 @@ function <> meta::relational::tests::projection::qualifier::testFilte ###Mapping import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; Mapping meta::relational::tests::projection::qualifier::productMappingWithFilter ( @@ -293,7 +295,7 @@ Mapping meta::relational::tests::projection::qualifier::productMappingWithFilter Synonym : Relational { ~filter [db]ProductSynonymFilter - + scope([db]productSchema) ( name : synonymTable.NAME @@ -306,6 +308,7 @@ Mapping meta::relational::tests::projection::qualifier::productMappingWithFilter ###Mapping import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; Mapping meta::relational::tests::projection::qualifier::productSubMappingWithFilter ( @@ -315,4 +318,4 @@ Mapping meta::relational::tests::projection::qualifier::productSubMappingWithFil synonyms : [db]@Product_Synonym } -) \ No newline at end of file +) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testSimple.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testSimple.pure index be30443bca4..00dd1cee030 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testSimple.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testSimple.pure @@ -15,6 +15,7 @@ import meta::relational::tests::model::simple::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::mapping::*; import meta::pure::metamodel::path::*; import meta::relational::tests::projection::simple::*; @@ -59,7 +60,7 @@ function <> meta::relational::tests::projection::s let result = execute({| let p = [#/Person/firstName#]; let n = ['First Name']; - + Person.all()->project($p, $n); }, simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values.rows, 7 ); @@ -71,7 +72,7 @@ function <> meta::relational::tests::projection::simple::testAllOneS { let result = execute({| let n = 'First Name'; - + Person.all()->project(col({p2:Person[1]|$p2.firstName}, $n)); }, simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values.rows, 7 ); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testView.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testView.pure index b1c783d2c65..4d5f3284340 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testView.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testView.pure @@ -14,10 +14,12 @@ import meta::relational::tests::projection::view::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::projection::view::testViewAllOneSimpleProperty():Boolean[1] { @@ -73,13 +75,14 @@ function <> meta::relational::tests::projection::view::testViewOnView function <> meta::relational::tests::projection::view::testProjectionOfPropertyJoinedToViewWithGroupByAndFilter():Boolean[1] { - let result = execute(|Interaction.all()->filter(i|$i.longestInteractionBetweenSourceAndTarget > 1)->project([i|$i.id, i|$i.longestInteractionBetweenSourceAndTarget],['id','longestInteractionBetweenSourceAndTarget']), meta::relational::tests::simpleRelationalMapping,meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let result = execute(|Interaction.all()->filter(i|$i.longestInteractionBetweenSourceAndTarget > 1)->project([i|$i.id, i|$i.longestInteractionBetweenSourceAndTarget],['id','longestInteractionBetweenSourceAndTarget']), meta::relational::tests::simpleRelationalMapping,meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('select "root".ID as "id", "interactionviewmaxtime_0".maxTime as "longestInteractionBetweenSourceAndTarget" from interactionTable as "root" left outer join (select "root".sourceId as sourceId, "root".targetId as targetId, max("root".time) as maxTime from interactionTable as "root" where "root".time > 0 group by "root".sourceId,"root".targetId) as "interactionviewmaxtime_0" on ("root".sourceId = "interactionviewmaxtime_0".sourceId and "root".targetId = "interactionviewmaxtime_0".targetId) where "interactionviewmaxtime_0".maxTime > 1', $result->sqlRemoveFormatting()); } ###Mapping import meta::relational::tests::projection::view::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; Mapping meta::relational::tests::projection::view::unionOnViewsInclude @@ -91,51 +94,51 @@ Mapping meta::relational::tests::projection::view::unionOnViewsInclude date : [db]orderTable.orderDate, settlementDateTime : [db]orderTable.settlementDateTime, pnlContact : [db] @Order_SalesPerson > (INNER) [db] @SalesPerson_PersonView - } + } ) Mapping meta::relational::tests::projection::view::unionOnViewsMapping ( - include unionOnViewsInclude - + include unionOnViewsInclude + OrderPnl[nonNeg] : Relational { pnl : [db]orderPnlView.pnl, supportContactName : [db]orderPnlView.supportContact, order: [db]@OrderPnlView_Order - } - + } + OrderPnl[neg] : Relational { pnl : [db]orderNegativePnlView.pnl, supportContactName : [db]orderNegativePnlView.supportContact, order: [db]@OrderNetativePnlView_Order - } + } *OrderPnl : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(nonNeg, neg); } - + ) Mapping meta::relational::tests::projection::view::unionOnViewOnViewMapping ( - include unionOnViewsInclude - + include unionOnViewsInclude + OrderPnl[nonNeg] : Relational { pnl : [db]orderPnlViewOnView.pnl, order: [db]@OrderPnlViewOnView_Order - } - - + } + + OrderPnl[neg] : Relational { pnl : [db]orderNegativePnlViewOnView.pnl, order: [db]@OrderNegativePnlViewOnView_Order - } + } *OrderPnl : Operation { diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testCalculatingDistance.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testCalculatingDistance.pure index 91237ca7e9a..e68f423f332 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testCalculatingDistance.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testCalculatingDistance.pure @@ -14,7 +14,9 @@ import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::functions::toDDL::*; import meta::relational::metamodel::execute::*; @@ -187,7 +189,7 @@ function meta::relational::tests::functions::distance::testDisplayMapFromDB():Ge function meta::relational::tests::functions::distance::testDistanceRuntime():Runtime[1] { - meta::relational::tests::testRuntime(testDistanceDB); + meta::external::store::relational::tests::testRuntime(testDistanceDB); } function meta::relational::tests::functions::distance::createAndFillTestDb():Boolean[1] @@ -252,4 +254,4 @@ Mapping meta::relational::tests::functions::distance::testDistanceMapping ) ) } -) \ No newline at end of file +) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testConcatenate.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testConcatenate.pure index 25c5ffc11ce..33c67be15dc 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testConcatenate.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testConcatenate.pure @@ -17,9 +17,11 @@ import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::projection::function::concatenate::model::*; import meta::relational::functions::toDDL::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::execute::*; @@ -197,32 +199,32 @@ function <> meta::relational::tests::projection::function::concatenat function <> meta::relational::tests::projection::function::concatenate::setUp():Boolean[1] { let connection = testRuntime().connectionByElement(db)->cast(@TestDatabaseConnection); - + let schema = 'CONCATENATE'; dropAndCreateSchemaInDb($schema, $connection); - - dropAndCreateTableInDb(myDb, $schema, 'TRADE', $connection); + + dropAndCreateTableInDb(myDb, $schema, 'TRADE', $connection); dropAndCreateTableInDb(myDb, $schema, 'OE', $connection); dropAndCreateTableInDb(myDb, $schema, 'SUBACCOUNT', $connection); dropAndCreateTableInDb(myDb, $schema, 'EXTERNALACCOUNT', $connection); - + executeInDb('insert into CONCATENATE.TRADE (ID, SUBACCOUNT_ID, EXTERNALACCOUNT_ID, OE_ID) values (1, 1, null, null);', $connection); executeInDb('insert into CONCATENATE.TRADE (ID, SUBACCOUNT_ID, EXTERNALACCOUNT_ID, OE_ID) values (2, null, 1, 2);', $connection); - - + + executeInDb('insert into CONCATENATE.OE (ID, NAME) values (1, \'OE 1\');', $connection); executeInDb('insert into CONCATENATE.OE (ID, NAME) values (2, \'OE 2\');', $connection); - - + + executeInDb('insert into CONCATENATE.SUBACCOUNT (ID, OE_ID, OE_NAME) values (1, 1, \'OE 1\');', $connection); executeInDb('insert into CONCATENATE.SUBACCOUNT (ID, OE_ID, OE_NAME) values (2, 2, \'OE 2\');', $connection); - + executeInDb('insert into CONCATENATE.EXTERNALACCOUNT (EA_ID, EA_OE_ID, EA_OE_NAME) values (1, 2, \'OE 2\');', $connection); - + true; -} +} @@ -232,19 +234,19 @@ Class meta::relational::tests::projection::function::concatenate::model::NewTra subAccount:SubAccount[0..1]; otherOrgEntity:OrganizationalEntity[0..1]; otherAccount:OtherAccount[0..1]; - + organizationalEntity() { $this.subAccount.oe->concatenate($this.otherOrgEntity)->toOne() }:OrganizationalEntity[0..1]; - - + + accountOrganizationalEntity() { $this.subAccount.oe->concatenate($this.otherAccount.oe)->toOne() }:OrganizationalEntity[0..1]; - + } Class meta::relational::tests::projection::function::concatenate::model::OrganizationalEntity @@ -278,13 +280,13 @@ Database meta::relational::tests::projection::function::concatenate::store::myDb EXTERNALACCOUNT_ID INTEGER, OE_ID INTEGER ) - + Table OE ( ID INTEGER PRIMARY KEY, NAME VARCHAR(32) ) - + Table SUBACCOUNT ( ID INTEGER PRIMARY KEY, @@ -292,7 +294,7 @@ Database meta::relational::tests::projection::function::concatenate::store::myDb OE_ID INTEGER, OE_NAME VARCHAR(32) ) - + Table EXTERNALACCOUNT ( EA_ID INTEGER PRIMARY KEY, @@ -300,10 +302,10 @@ Database meta::relational::tests::projection::function::concatenate::store::myDb EA_OE_ID INTEGER, EA_OE_NAME VARCHAR(32) ) - + ) - + Join tradeSubAccount(CONCATENATE.TRADE.SUBACCOUNT_ID = CONCATENATE.SUBACCOUNT.ID) Join tradeOtherAccount(CONCATENATE.TRADE.EXTERNALACCOUNT_ID = CONCATENATE.EXTERNALACCOUNT.EA_ID) Join tradeOE(CONCATENATE.TRADE.OE_ID = CONCATENATE.OE.ID) @@ -328,14 +330,14 @@ Mapping meta::relational::tests::projection::function::concatenate::mapping::tes otherAccount: [myDb]@tradeOtherAccount, otherOrgEntity: [myDb]@tradeOE } - + SubAccount: Relational { name: [myDb]CONCATENATE.SUBACCOUNT.NAME, oe: [myDb]@subAccountOE } - - + + OtherAccount: Relational { name: [myDb]CONCATENATE.EXTERNALACCOUNT.EA_NAME, @@ -359,17 +361,17 @@ Mapping meta::relational::tests::projection::function::concatenate::mapping::tes otherAccount: [myDb]@tradeOtherAccount, otherOrgEntity: [myDb]@tradeOE } - + SubAccount: Relational { name: [myDb]CONCATENATE.SUBACCOUNT.NAME, - oe + oe ( name:[myDb]CONCATENATE.SUBACCOUNT.OE_NAME ) } - - + + OtherAccount: Relational { name: [myDb]CONCATENATE.EXTERNALACCOUNT.EA_NAME, @@ -378,7 +380,7 @@ Mapping meta::relational::tests::projection::function::concatenate::mapping::tes name:[myDb]CONCATENATE.EXTERNALACCOUNT.EA_OE_NAME ) } - + OrganizationalEntity: Relational { name: [myDb]CONCATENATE.OE.NAME @@ -397,17 +399,17 @@ Mapping meta::relational::tests::projection::function::concatenate::mapping::tes otherAccount: [myDb]@tradeOtherAccount, otherOrgEntity: [myDb]@tradeOE } - + SubAccount: Relational { name: [myDb]CONCATENATE.SUBACCOUNT.NAME, - oe + oe ( name:[myDb]CONCATENATE.SUBACCOUNT.OE_NAME ) } - - + + OtherAccount: Relational { name: [myDb]CONCATENATE.EXTERNALACCOUNT.EA_NAME, @@ -417,4 +419,4 @@ Mapping meta::relational::tests::projection::function::concatenate::mapping::tes ) } -) \ No newline at end of file +) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testExists.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testExists.pure index c4dbbbd90e7..14538eda2f0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testExists.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testExists.pure @@ -15,12 +15,14 @@ import meta::pure::functions::asserts::*; import meta::relational::functions::asserts::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::functions::collection::*; import meta::pure::tds::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::mapping::embedded::model::mapping::*; import meta::relational::tests::mapping::embedded::model::store::*; import meta::pure::functions::math::*; @@ -81,14 +83,14 @@ function <> meta::relational::tests::query::filter::exists::testCompl let result = execute(|Firm.all()->filter(f| $f.legalName =='Firm A' || $f.employees->exists(e | $e.lastName->toOne() == 'Smith')), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 3); $result.values.legalName->map( f | assert(['Firm X','Firm C','Firm A']->contains($f))); - + assertSameSQL('select "root".ID as "pk_0", "root".LEGALNAME as "legalName" from firmTable as "root" left outer join (select distinct "persontable_1".FIRMID from personTable as "persontable_1" where "persontable_1".LASTNAME = \'Smith\') as "persontable_0" on ("root".ID = "persontable_0".FIRMID) where ("root".LEGALNAME = \'Firm A\' or "persontable_0".FIRMID is not null)', $result); } function <> meta::relational::tests::query::filter::exists::testNotExists():Boolean[1] { let result = execute(|Firm.all()->filter(f| ! $f.employees->exists(e | $e.lastName == 'Smith')), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertSize($result.values, 3); assertFalse($result.values.legalName->contains('Firm X')); assertSameSQL('select "root".ID as "pk_0", "root".LEGALNAME as "legalName" from firmTable as "root" left outer join (select distinct "persontable_1".FIRMID from personTable as "persontable_1" where "persontable_1".LASTNAME = \'Smith\') as "persontable_0" on ("root".ID = "persontable_0".FIRMID) where not "persontable_0".FIRMID is not null', $result); @@ -154,7 +156,7 @@ function <> meta::relational::tests::mapping::embedded::testExistsWit let results = execute(|Firm.all()->filter(f | ! $f.employees->exists(e| $e.lastName == 'Smith')) ->project([p | $p.legalName],['name']) ,testMappingEmbeddedWithFirmDistinct, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals(1, $results.values->at(0).rows->size()); assertEquals('Firm A', $results.values->at(0).rows->first().values); assertSameSQL('select "root".FIRM_LEGALNAME as "name" from (select distinct "person_firm_denorm_1".FIRM_LEGALNAME as FIRM_LEGALNAME, "person_firm_denorm_1".FIRM_ID as FIRM_ID from PERSON_FIRM_DENORM as "person_firm_denorm_1" left outer join (select distinct "person_firm_denorm_3".FIRM_ID from PERSON_FIRM_DENORM as "person_firm_denorm_3" where "person_firm_denorm_3".PERSON_LASTNAME = \'Smith\') as "person_firm_denorm_2" on ("person_firm_denorm_1".FIRM_ID = "person_firm_denorm_2".FIRM_ID) where not "person_firm_denorm_2".FIRM_ID is not null) as "root"', $results); @@ -164,8 +166,9 @@ function <> meta::relational::tests::mapping::embedded::testExistsWit function <> meta::relational::tests::mapping::embedded::testExistsWithEmbeddedWithPostProcessor():Boolean[1] { let runtime = testDataTypeMappingRuntime(); - let conn = $runtime.connections->at(0)->cast(@TestDatabaseConnection); - let runtimeWithPostProcessor = ^$runtime(connections = ^$conn(sqlQueryPostProcessors= [{query:meta::relational::metamodel::relation::SelectSQLQuery[1] | $query->meta::relational::postProcessor::postprocess({rel | $rel}) }])); + let connectionStore = $runtime.connectionStores->at(0); + let conn = $connectionStore.connection->cast(@TestDatabaseConnection); + let runtimeWithPostProcessor = ^$runtime(connectionStores = ^$connectionStore(connection=^$conn(sqlQueryPostProcessors= [{query:meta::relational::metamodel::relation::SelectSQLQuery[1] | $query->meta::relational::postProcessor::postprocess({rel | $rel}) }]))); let result = execute(|Firm.all()->filter(f | ! $f.employees->exists(p | $p.firstName == 'John'))->project([p|$p.legalName],['Name']), testMappingEmbeddedWithFirmDistinct, $runtimeWithPostProcessor, meta::relational::extension::relationalExtensions()); assertSameSQL('select "root".FIRM_LEGALNAME as "Name" from (select distinct "person_firm_denorm_1".FIRM_LEGALNAME as FIRM_LEGALNAME, "person_firm_denorm_1".FIRM_ID as FIRM_ID from PERSON_FIRM_DENORM as "person_firm_denorm_1" left outer join (select distinct "person_firm_denorm_3".FIRM_ID from PERSON_FIRM_DENORM as "person_firm_denorm_3" where "person_firm_denorm_3".PERSON_FIRSTNAME = \'John\') as "person_firm_denorm_2" on ("person_firm_denorm_1".FIRM_ID = "person_firm_denorm_2".FIRM_ID) where not "person_firm_denorm_2".FIRM_ID is not null) as "root"', $result); @@ -190,16 +193,16 @@ function <> meta::relational::tests::query::filter::exists::testWithF $result.rows->map(r | println($r.values->makeString(','))); assertEquals(11,$result.rows->size()); - + let result1 = execute(|Person.all() ->filter(f| $f.firm.employees->isNotEmpty()) ->groupBy([k|$k.firm.legalName], [agg(s|$s.age, t|$t->sum())], ['firm','age sum']) - - + + , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values->at(0); - + println($result1.rows->map(r| $r.values->makeString(','))); assertEquals(4, $result1.rows->size()); assertEquals(['firm','age sum'], $result1.columns.name); @@ -216,16 +219,16 @@ function <> meta::relational::tests::query::filter::exists::testWithF $result.rows->map(r| println($r.values->makeString(','))); assertEquals(10,$result.rows->size()); - + let result1 = execute(|Person.all() ->filter(f| $f.firm.employees->exists(e| $e.address.name == 'New York')) ->groupBy([k|$k.firm.legalName], [agg(s|$s.age, t|$t->sum())], ['firm','age sum']) - - + + , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values->at(0); - + println($result1.rows->map(r| $r.values->makeString(','))); assertEquals(3, $result1.rows->size()); assertEquals(['firm','age sum'], $result1.columns.name); @@ -241,9 +244,9 @@ function <> meta::relational::tests::query::filter::exists::testWithP ->groupBy(['firm'], [ agg('sum age',r|$r.getInteger('age'), c|$c->sum()), agg('max age',r|$r.getInteger('age'), c|$c->max()->toOne()) ]) - + , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values->at(0); - + println($result1.rows->map(r| $r.values->makeString(','))); assertEquals(4, $result1.rows->size()); assertEquals(['firm','sum age','max age'], $result1.columns.name); @@ -259,9 +262,9 @@ function <> meta::relational::tests::query::filter::exists::testWithP ->groupBy(['firm'], [ agg('sum age',r|$r.getInteger('age'), c|$c->sum()), agg('max age',r|$r.getInteger('age'), c|$c->max()->toOne()) ]) - + , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values->at(0); - + println($result1.rows->map(r| $r.values->makeString(','))); assertEquals(4, $result1.rows->size()); assertEquals(['firm','sum age','max age'], $result1.columns.name); @@ -271,7 +274,7 @@ function <> meta::relational::tests::query::filter::exists::testWithP function <> meta::relational::tests::query::filter::exists::testNestedExistsOne():Boolean[1] { - let result = execute(|Firm.all()->filter(f| $f.employees->exists(e | $e.locations->isNotEmpty())), + let result = execute(|Firm.all()->filter(f| $f.employees->exists(e | $e.locations->isNotEmpty())), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); println($result.values.legalName); assertSize($result.values, 4); @@ -280,7 +283,7 @@ function <> meta::relational::tests::query::filter::exists::testNeste function <> meta::relational::tests::query::filter::exists::testNestedNotExists():Boolean[1] { - let result = execute(|Firm.all()->filter(f| !$f.employees->exists(e | $e.locations->isEmpty())), + let result = execute(|Firm.all()->filter(f| !$f.employees->exists(e | $e.locations->isEmpty())), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 2); assert($result.values.legalName->contains('No Employees')); @@ -313,7 +316,7 @@ function <> meta::relational::tests::query::filter::exists::testIsNot let result = execute(|Firm.all()->filter(f| $f.employees.locations->isNotEmpty()), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertSize($result.values.legalName->removeDuplicates(), 4); assertSameElements(['Firm A', 'Firm X','Firm B', 'Firm C'],$result.values.legalName->removeDuplicates()->sort()); assertSameSQL('select "root".ID as "pk_0", "root".LEGALNAME as "legalName" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID) left outer join (select distinct "locationtable_0".PERSONID from firmTable as "root" left outer join personTable as "persontable_1" on ("root".ID = "persontable_1".FIRMID) left outer join locationTable as "locationtable_0" on ("persontable_1".ID = "locationtable_0".PERSONID)) as "firmtable_1" on ("persontable_0".ID = "firmtable_1".PERSONID) where not "firmtable_1".PERSONID is null', $result); @@ -327,7 +330,7 @@ function <> meta::relational::tests::query::filter::exists::testAssoc assertSize($result.values.firstName->removeDuplicates(), 7); assertSameElements(['Anthony', 'David', 'Don', 'John', 'John', 'New', 'No address', 'Peter'],$result.values.firstName->sort()); assertSameSQL('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) left outer join (select distinct "persontable_2".FIRMID from personTable as "persontable_2" where "persontable_2".LASTNAME = \'Smith\') as "persontable_1" on ("firmtable_0".ID = "persontable_1".FIRMID) where "persontable_1".FIRMID is not null', $result); - + } function <> meta::relational::tests::query::filter::exists::testAssociationTwoLevelDeep():Boolean[1] @@ -336,7 +339,7 @@ function <> meta::relational::tests::query::filter::exists::testAssoc assertSize($result.values->removeDuplicates(), 2); assertEquals('Oliver,Elena', $result.values->removeDuplicates().firstName->makeString(',')); assertSameSQL('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) left outer join (select distinct "persontable_2".FIRMID from personTable as "persontable_2" left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "persontable_2".ADDRESSID) where "addresstable_0".NAME = \'Hong Kong\') as "persontable_1" on ("firmtable_0".ID = "persontable_1".FIRMID) where "persontable_1".FIRMID is not null', $result); - + let result2 = execute(|Person.all()->filter(p | $p.firm.employees->exists(e | $e.address.name == 'Hoboken')), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result2.values, 6); assertEquals('Anthony, Don, John, John, New, Peter', $result2.values.firstName->sort()->makeString(', ')); @@ -350,7 +353,7 @@ function <> meta::relational::tests::query::filter::exists::testAssoc assertSize($result.values->removeDuplicates(), 1); assertEquals('Firm X', $result.values->removeDuplicates()->toOne().legalName); assertSameSQL('select "root".ID as "pk_0", "root".LEGALNAME as "legalName" from firmTable as "root" left outer join (select distinct "persontable_1".FIRMID from personTable as "persontable_1" left outer join locationTable as "locationtable_0" on ("persontable_1".ID = "locationtable_0".PERSONID) left outer join placeOfInterestTable as "placeofinteresttable_0" on ("locationtable_0".ID = "placeofinteresttable_0".locationID) where "placeofinteresttable_0".NAME = \'Hoboken City Hall\') as "persontable_0" on ("root".ID = "persontable_0".FIRMID) where "persontable_0".FIRMID is not null', $result); - + } function <> meta::relational::tests::query::filter::exists::testAssociationHandlingDups():Boolean[1] @@ -359,22 +362,22 @@ function <> meta::relational::tests::query::filter::exists::testAssoc assertSize($result.values, 1); assertEquals('Firm X', $result.values->toOne().legalName); assertSameSQL('select "root".ID as "pk_0", "root".LEGALNAME as "legalName" from firmTable as "root" left outer join (select distinct "persontable_1".FIRMID from personTable as "persontable_1" left outer join locationTable as "locationtable_0" on ("persontable_1".ID = "locationtable_0".PERSONID) left outer join placeOfInterestTable as "placeofinteresttable_0" on ("locationtable_0".ID = "placeofinteresttable_0".locationID) where "placeofinteresttable_0".NAME = \'Broadway\') as "persontable_0" on ("root".ID = "persontable_0".FIRMID) where "persontable_0".FIRMID is not null', $result); - + } function <> meta::relational::tests::query::filter::exists::testAssociationWithProjectionHandlingDups():Boolean[1] { let result = execute(|Person.all() ->filter(p | $p.firm.employees->exists(e | $e.locations.placeOfInterest.name == 'Broadway')) - ->project([f|$f.firm.legalName], ['firm']) + ->project([f|$f.firm.legalName], ['firm']) , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); let results = $result.values->at(0); assertSize($results.rows, 6); assertSameElements(['Firm X'], $results.rows->map(r| $r.values->makeString(','))->sort()->removeDuplicates()); assertSameSQL('select "firmtable_0".LEGALNAME as "firm" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) left outer join (select distinct "persontable_2".FIRMID from personTable as "persontable_2" left outer join locationTable as "locationtable_0" on ("persontable_2".ID = "locationtable_0".PERSONID) left outer join placeOfInterestTable as "placeofinteresttable_0" on ("locationtable_0".ID = "placeofinteresttable_0".locationID) where "placeofinteresttable_0".NAME = \'Broadway\') as "persontable_1" on ("firmtable_0".ID = "persontable_1".FIRMID) where "persontable_1".FIRMID is not null', $result); - + } - + function <> meta::relational::tests::query::filter::exists::testExistsInAbstractProperty():Boolean[1] { let result = execute(|Firm.all()->filter(f | $f.hasEmployeeBelowAge(15)),simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); @@ -382,9 +385,9 @@ function <> meta::relational::tests::query::filter::exists::testExist assertSize($results, 1); assertSameElements(['Firm X'], $results.legalName->sort()); assertSameSQL('select "root".ID as "pk_0", "root".LEGALNAME as "legalName" from firmTable as "root" left outer join (select distinct "persontable_1".FIRMID from personTable as "persontable_1" where "persontable_1".AGE < 15) as "persontable_0" on ("root".ID = "persontable_0".FIRMID) where "persontable_0".FIRMID is not null', $result); - + } - + function <> meta::relational::tests::query::filter::exists::testNestedExistsWithExistsInAbstractProperty():Boolean[1] { let result = execute(|Firm.all()->filter(f | exists($f.employees,e| $e.firm->toOne().hasEmployeeBelowAge(15))),simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); @@ -392,16 +395,16 @@ function <> meta::relational::tests::query::filter::exists::testNeste assertSize($results, 1); assertSameElements(['Firm X'], $results.legalName->sort()); assertSameSQL('select "root".ID as "pk_0", "root".LEGALNAME as "legalName" from firmTable as "root" left outer join (select distinct "persontable_1".FIRMID from personTable as "persontable_1" left outer join firmTable as "firmtable_1" on ("firmtable_1".ID = "persontable_1".FIRMID) left outer join (select distinct "persontable_3".FIRMID from personTable as "persontable_3" where "persontable_3".AGE < 15) as "persontable_2" on ("firmtable_1".ID = "persontable_2".FIRMID) where "persontable_2".FIRMID is not null) as "persontable_0" on ("root".ID = "persontable_0".FIRMID) where "persontable_0".FIRMID is not null', $result); - + } - + function <> meta::relational::tests::query::filter::exists::testExistsWithOrCondition():Boolean[1] { let result = execute(|Person.all()->filter(p | $p.firm.employees->exists(e| $e.age >= 35 || $e.locations.placeOfInterest.name == 'Hoboken Town Hall')),simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); let results = $result.values; assertSize($results, 10); assertSameElements(['Allen', 'Hill', 'Smith', 'Johnson', 'Harris', 'New York', 'Firm B', 'Smith', 'Hill', 'York'], $results.lastName->sort()); - assertSameSQL('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) left outer join (select distinct "persontable_2".FIRMID from personTable as "persontable_2" left outer join locationTable as "locationtable_0" on ("persontable_2".ID = "locationtable_0".PERSONID) left outer join placeOfInterestTable as "placeofinteresttable_0" on ("locationtable_0".ID = "placeofinteresttable_0".locationID) where (("persontable_2".AGE is not null and "persontable_2".AGE >= 35) or "placeofinteresttable_0".NAME = \'Hoboken Town Hall\')) as "persontable_1" on ("firmtable_0".ID = "persontable_1".FIRMID) where "persontable_1".FIRMID is not null', $result); + assertSameSQL('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) left outer join (select distinct "persontable_2".FIRMID from personTable as "persontable_2" left outer join locationTable as "locationtable_0" on ("persontable_2".ID = "locationtable_0".PERSONID) left outer join placeOfInterestTable as "placeofinteresttable_0" on ("locationtable_0".ID = "placeofinteresttable_0".locationID) where (("persontable_2".AGE is not null and "persontable_2".AGE >= 35) or "placeofinteresttable_0".NAME = \'Hoboken Town Hall\')) as "persontable_1" on ("firmtable_0".ID = "persontable_1".FIRMID) where "persontable_1".FIRMID is not null', $result); } function <> meta::relational::tests::query::filter::exists::testExistsWithAttributesFromLeftInAndCondition():Boolean[1] @@ -428,7 +431,7 @@ function <> meta::relational::tests::query::filter::exists::testFilt ->filter(f| $f.employees->filter(e|$e.lastName != 'Lopez')->exists(x| $x.age >20) ) , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result1.values,4); //SQL does not contain condition in filter - sqlContains( 'LASTNAME <> \'Lopez\'',$result1); + sqlContains( 'LASTNAME <> \'Lopez\'',$result1); } function <> meta::relational::tests::query::filter::exists::testFilterFunctionExpressionWithConditionOnRightTableIsEmptyExpression():Boolean[1] @@ -451,9 +454,9 @@ function <> meta::relational::tests::query::filter::exists::testFilte { let result1 = execute(|Firm.all() ->filter(f| $f.legalName!='Firm B' && $f.employees->exists( x | $x.age > 30)),simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertSize($result1.values,3); - + assertSameSQL('select "root".ID as "pk_0", "root".LEGALNAME as "legalName" from firmTable as "root" left outer join (select distinct "persontable_1".FIRMID from personTable as "persontable_1" where ("persontable_1".AGE is not null and "persontable_1".AGE > 30)) as "persontable_0" on ("root".ID = "persontable_0".FIRMID) where (("root".LEGALNAME <> \'Firm B\' OR "root".LEGALNAME is null) and "persontable_0".FIRMID is not null)', $result1); } @@ -463,7 +466,7 @@ function <> meta::relational::tests::query::filter::exists::testFilt ->filter(x| $x.legalName!='Firm B') ->filter(f| $f.employees->filter(e|$e.lastName == 'Smith')->exists( x | $x.age > 20)),simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result1.values,3); - + //SQL does not contain condition in filter sqlContains( 'LASTNAME = \'Smith\'',$result1); } @@ -476,9 +479,9 @@ function <> meta::relational::tests::query::filter::exists::testFilt ->filter(c| !$c.trades->exists(t|!$t.events->exists(e| 1==1))) ->project(col(a | $a.name, 'Acct Name')) , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + //missing join to trade event table - assertSameSQL('select "root".name as "Acct Name" from accountTable as "root" left outer join (select distinct "tradeTable_d#6".accountID from tradeTable as "tradeTable_d#6" where 1 = 1) as "tradeTable_d#6_ecq_d#3_m1" on ("tradeTable_d#6_ecq_d#3_m1".accountID = "root".ID) where not "tradeTable_d#6_ecq_d#3_m1".accountID is not null and not "tradeTable_d#6_ecq_d#3_m1".accountID is not null and "root".name = \'Unknown\'',$result1); + assertSameSQL('select "root".name as "Acct Name" from accountTable as "root" left outer join (select distinct "tradeTable_d#6".accountID from tradeTable as "tradeTable_d#6" where 1 = 1) as "tradeTable_d#6_ecq_d#3_m1" on ("tradeTable_d#6_ecq_d#3_m1".accountID = "root".ID) where not "tradeTable_d#6_ecq_d#3_m1".accountID is not null and not "tradeTable_d#6_ecq_d#3_m1".accountID is not null and "root".name = \'Unknown\'',$result1); assertSize($result1.values,1); } @@ -489,9 +492,9 @@ function <> meta::relational::tests::query::filter::exists::testFilt ->filter(a | $a.name == 'Unknown' && !$a.trades->exists(t | 1==1) && !$a.trades->exists(t|!$t.events->exists(e| 1==1))) ->project(col(a | $a.name, 'Acct Name')) , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + //missing join to trade event table - assertSameSQL('select "root".name as "Acct Name" from accountTable as "root" left outer join (select distinct "tradeTable_d#6".accountID from tradeTable as "tradeTable_d#6" where 1 = 1) as "tradeTable_d#6_ecq_d#3_m1" on ("tradeTable_d#6_ecq_d#3_m1".accountID = "root".ID) where not "tradeTable_d#6_ecq_d#3_m1".accountID is not null and not "tradeTable_d#6_ecq_d#3_m1".accountID is not null and "root".name = \'Unknown\'',$result1); + assertSameSQL('select "root".name as "Acct Name" from accountTable as "root" left outer join (select distinct "tradeTable_d#6".accountID from tradeTable as "tradeTable_d#6" where 1 = 1) as "tradeTable_d#6_ecq_d#3_m1" on ("tradeTable_d#6_ecq_d#3_m1".accountID = "root".ID) where not "tradeTable_d#6_ecq_d#3_m1".accountID is not null and not "tradeTable_d#6_ecq_d#3_m1".accountID is not null and "root".name = \'Unknown\'',$result1); assertSize($result1.values,1); } @@ -503,7 +506,7 @@ function <> meta::relational::tests::query::filter::exists::testFilt ->filter(f| $f.employees->filter(e|$e.firstName != 'Don')->exists(e| $e.lastName == 'Smith' && $e.address->exists(e| 1==1))), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result1.values,1); //SQL does not contain condition in filter - sqlContains( 'FIRSTNAME <> \'Don\'',$result1); + sqlContains( 'FIRSTNAME <> \'Don\'',$result1); } @@ -536,4 +539,4 @@ function <> meta::relational::tests::query::filter::exists::testMult simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions() ); assertEquals('name\nFirm X\nFirm C\n', $result3.values->meta::relational::tests::csv::toCSV()); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testFetchDbMetaData.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testFetchDbMetaData.pure index d1f6fcf1e03..7e3a4e73761 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testFetchDbMetaData.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testFetchDbMetaData.pure @@ -17,7 +17,7 @@ Database meta::relational::tests::functions::fetchDbMetaData::testFetchDbMetaDat ( Table fetchDbMetaDataPersonTable1 (ID INT PRIMARY KEY, FIRSTNAME VARCHAR(200), LASTNAME VARCHAR(200), AGE INT, ADDRESSID INT, FIRMID INT, MANAGERID INT) Table fetchDbMetaDataPersonTable2 (ID INT PRIMARY KEY, FIRSTNAME VARCHAR(200), LASTNAME VARCHAR(200), AGE INT, ADDRESSID INT, FIRMID INT, MANAGERID INT) - + Schema fetchDbMetaDatatestSchema1 ( Table fetchDbMetaDatatestTable1(ID INT PRIMARY KEY, NAME VARCHAR(200) NOT NULL) @@ -57,13 +57,13 @@ Database meta::relational::tests::functions::fetchDbMetaData::expectedDB Table accountTable(ID INT PRIMARY KEY, accountName VARCHAR(200), createDate DATE) Table resourceTable(ID INT PRIMARY KEY, resourceName VARCHAR(200), createDate DATE) ) - + Schema testSchema2 ( Table firmTable(ID INT PRIMARY KEY, PRODID INT, TYPE VARCHAR(200), NAME VARCHAR(200)) Table firmTable2(ID INT PRIMARY KEY, PRODID INT, TYPE VARCHAR(200), NAME VARCHAR(200)) ) - + Schema testSchema3 ( Table tradeEventTable(EVENT_ID INT PRIMARY KEY, trade_id INT, eventType VARCHAR(10), eventDate DATE, person_id INT) @@ -75,7 +75,9 @@ import meta::relational::functions::database::*; import meta::relational::tests::functions::fetchDbMetaData::*; import meta::relational::metamodel::execute::*; import meta::relational::functions::toDDL::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function <> meta::relational::tests::functions::fetchDbMetaData::setUp():Boolean[1] @@ -85,26 +87,26 @@ function <> meta::relational::tests::functions::fetchDbMetaD function meta::relational::tests::functions::fetchDbMetaData::testFetchDbMetaDataRuntime():Runtime[1] { - meta::relational::tests::testRuntime(testFetchDbMetaDataDb); + meta::external::store::relational::tests::testRuntime(testFetchDbMetaDataDb); } function meta::relational::tests::functions::fetchDbMetaData::createAndFillTestDb():Boolean[1] { let connection = testFetchDbMetaDataRuntime().connectionByElement(testFetchDbMetaDataDb)->cast(@TestDatabaseConnection); - + dropAndCreateTableInDb(testFetchDbMetaDataDb, 'fetchDbMetaDataPersonTable1', $connection); dropAndCreateTableInDb(testFetchDbMetaDataDb, 'fetchDbMetaDataPersonTable2', $connection); - + dropAndCreateSchemaInDb('fetchDbMetaDatatestSchema1', $connection); dropAndCreateSchemaInDb('fetchDbMetaDatatestSchema2', $connection); - + dropAndCreateTableInDb(testFetchDbMetaDataDb, 'fetchDbMetaDatatestSchema1', 'fetchDbMetaDatatestTable1', $connection); dropAndCreateTableInDb(testFetchDbMetaDataDb, 'fetchDbMetaDatatestSchema1', 'fetchDbMetaDatatestTable2', $connection); dropAndCreateTableInDb(testFetchDbMetaDataDb, 'fetchDbMetaDatatestSchema2', 'fetchDbMetaDatatestTable3', $connection); - + executeInDb('Drop table if exists fetchDbMetaDatatestTable4;', $connection); executeInDb('Create table fetchDbMetaDatatestTable4(ID INT NOT NULL,FIRSTNAME VARCHAR(200),OTHERSQLTYPE CLOB)', $connection); - + true; } @@ -112,14 +114,14 @@ function <> meta::relational::tests::functions::fetchDbMetaData::test { createAndFillTestDb(); let connection = testFetchDbMetaDataRuntime().connectionByElement(testFetchDbMetaDataDb)->cast(@TestDatabaseConnection); - + let allTablesInDb = fetchDbTablesMetaData($connection, [], 'FETCHDBMETADATAPERSONTABLE1').rows->fold({a,b| concatenate($a.values->at(2), $b)}, []); //TABLE_NAME assertContains($allTablesInDb, 'FETCHDBMETADATAPERSONTABLE1'); let allTablesInTestSchema1 = fetchDbTablesMetaData($connection, 'FETCHDBMETADATATESTSCHEMA1', []).rows->fold({a,b| concatenate($a.values->at(2), $b)}, []); //TABLE_NAME assertContains($allTablesInTestSchema1, 'FETCHDBMETADATATESTTABLE1'); assertContains($allTablesInTestSchema1, 'FETCHDBMETADATATESTTABLE2'); - + assertNotEmpty(fetchDbTablesMetaData($connection, [], []).rows); assertEmpty(fetchDbTablesMetaData($connection, 'Random_Schema_Name', []).rows); assertEmpty(fetchDbTablesMetaData($connection, [], 'Random_Table_Name').rows); @@ -142,7 +144,7 @@ function <> meta::relational::tests::functions::fetchDbMetaData::test assertContains($allColumnsInPersonTable, 'AGE'); assertContains($allColumnsInPersonTable, 'FIRMID'); assertContains($allColumnsInPersonTable, 'MANAGERID'); - + let allColumnsInTestSchema1TestTable1 = fetchDbColumnsMetaData($connection, 'FETCHDBMETADATATESTSCHEMA1', 'FETCHDBMETADATATESTTABLE1', []).rows->fold({a,b| concatenate($a.values->at(3), $b)}, []); //COLUMN_NAME assertContains($allColumnsInTestSchema1TestTable1, 'ID'); assertContains($allColumnsInTestSchema1TestTable1, 'NAME'); @@ -156,14 +158,14 @@ function <> meta::relational::tests::functions::fetchDbMetaData::test { createAndFillTestDb(); let connection = testFetchDbMetaDataRuntime().connectionByElement(testFetchDbMetaDataDb)->cast(@TestDatabaseConnection); - + let allSchemas = fetchDbSchemasMetaData($connection, []).rows->fold({a,b| concatenate($a.values->at(0), $b)}, []); //TABLE_SCHEM assertContains($allSchemas, 'FETCHDBMETADATATESTSCHEMA1'); assertContains($allSchemas, 'FETCHDBMETADATATESTSCHEMA2'); - + let testSchema1 = fetchDbSchemasMetaData($connection, 'FETCHDBMETADATATESTSCHEMA1').rows->fold({a,b| concatenate($a.values->at(0), $b)}, []); //TABLE_SCHEM assertContains($testSchema1, 'FETCHDBMETADATATESTSCHEMA1'); - + assertNotEmpty(fetchDbSchemasMetaData($connection, []).rows); assertEmpty(fetchDbSchemasMetaData($connection, 'Random_Schema_Name').rows); } @@ -172,13 +174,13 @@ function <> meta::relational::tests::functions::fetchDbMetaData::test { createAndFillTestDb(); let connection = testFetchDbMetaDataRuntime().connectionByElement(testFetchDbMetaDataDb)->cast(@TestDatabaseConnection); - + let primaryKeyInPersonTable = fetchDbPrimaryKeysMetaData($connection, [], 'FETCHDBMETADATAPERSONTABLE1').rows.values->at(3)->toOne()->toString(); //COLUMN_NAME assertEq($primaryKeyInPersonTable, 'ID'); - + let primaryKeyInTestTable3 = fetchDbPrimaryKeysMetaData($connection, [], 'FETCHDBMETADATATESTTABLE1').rows.values->at(3)->toOne()->toString(); //COLUMN_NAME assertEq($primaryKeyInTestTable3, 'ID'); - + assertNotEmpty(fetchDbPrimaryKeysMetaData($connection, [], 'FETCHDBMETADATAPERSONTABLE1').rows); assertNotEmpty(fetchDbPrimaryKeysMetaData($connection, 'FETCHDBMETADATATESTSCHEMA1', 'FETCHDBMETADATATESTTABLE1').rows); assertEmpty(fetchDbPrimaryKeysMetaData($connection, [], 'Random_Table_Name').rows); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testFilters.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testFilters.pure index 8782d7b1a16..11a47a11b95 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testFilters.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testFilters.pure @@ -17,6 +17,7 @@ import meta::relational::tests::query::filter::equal::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::query::filter::equal::testSelectEqual():Boolean[1] @@ -200,23 +201,23 @@ function <> meta::relational::tests::query::filter function <> meta::relational::tests::query::filter::equal::testBuildFilterWithValueThatCanBeNull():Boolean[1] { let result = execute(buildQuery([]), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSize($result.values, 1); + assertSize($result.values, 1); assertEquals('Elena', $result.values->toOne().firstName); assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" where ("root".LASTNAME like \'F%\' and (null is null or "root".FIRSTNAME = null))', $result->sqlRemoveFormatting()); - + let result2 = execute(buildQuery('Peter'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSize($result2.values, 0); + assertSize($result2.values, 0); } function <> meta::relational::tests::query::filter::equal::buildQuery(value:String[0..1]):FunctionDefinition<{->Person[*]}>[1] -{ +{ {| Person.all()->filter(p | $p.lastName->startsWith('F') && ($value->isEmpty() || $p.firstName == $value))}; } // Alloy exclusion reason: 9. Function check is not working because of inlining function <> meta::relational::tests::query::filter::equal::testBuildFilterWithValueThatCanBeNullWithInWithEmpty():Boolean[1] { let result = execute(buildQueryWithIn([]), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSize($result.values, 1); + assertSize($result.values, 1); assertEquals('Elena', $result.values->toOne().firstName); assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" where ("root".LASTNAME like \'F%\' and (null is null or "root".FIRSTNAME = null))', $result->sqlRemoveFormatting()); } @@ -226,40 +227,40 @@ function <> meta::relational::tests::query::filter::equal::testBuild let result2 = execute(buildQueryWithIn(['Peter', 'Jack']), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result2.values, 0); assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" where ("root".LASTNAME like \'F%\' and (2 is null or "root".FIRSTNAME in (\'Peter\', \'Jack\')))', $result2->sqlRemoveFormatting()); - + let result3 = execute(buildQueryWithIn(['Peter', 'Elena']), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result3.values, 1); assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" where ("root".LASTNAME like \'F%\' and (2 is null or "root".FIRSTNAME in (\'Peter\', \'Elena\')))', $result3->sqlRemoveFormatting()); } function <> meta::relational::tests::query::filter::equal::buildQueryWithIn(values:String[*]):FunctionDefinition<{->Person[*]}>[1] -{ +{ {| Person.all()->filter(p | $p.lastName->startsWith('F') && ($values->isEmpty() || $p.firstName->in($values)))}; } function <> meta::relational::tests::query::filter::equal::testConsistencyWithNulls():Boolean[1] { let allResult = execute(|Address.all(), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values; - + let eqResult = execute(|Address.all()->filter(a | $a.street == 'Infinite Loop'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values; - + let eqResult2 = execute(|Address.all(), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values->filter(a | $a.street == 'Infinite Loop'); - + assertEquals($eqResult->size(), $eqResult2->size()); - + let notEqResult = execute(|Address.all()->filter(a | ($a.street != 'Infinite Loop')), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values; - + let notEqResult2 = execute(|Address.all(), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values->filter(a | $a.street != 'Infinite Loop'); - + let notEqResult3 = execute(|Address.all()->filter(a | ('Infinite Loop' != $a.street)), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values; - + assertEquals($notEqResult->size(), $notEqResult2->size()); assertEquals($notEqResult->size(), $notEqResult3->size()); - + let notEqResult4 = execute(|Address.all()->filter(a | ($a.street->toOne() + ' st') != 'Infinite Loop st'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values; - + assertEquals($notEqResult->size(), $notEqResult4->size()); - + assertEquals($notEqResult->size() + $eqResult->size(), $allResult->size()); assertEquals($notEqResult2->size() + $eqResult2->size(), $allResult->size()); } @@ -269,19 +270,19 @@ function <> meta::relational::tests::query::filter { let allResult = execute(|Person.all(), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values; println($allResult->size()); - + let eqResult = execute(|Person.all()->filter(a | $a.manager.lastName == 'Johnson'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values; - + let eqResult2 = execute(|Person.all(), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values->filter(a | $a.manager->isNotEmpty() && $a.manager.lastName == 'Johnson'); - + assertEquals($eqResult->size(), $eqResult2->size()); - + let notEqResult = execute(|Person.all()->filter(a | $a.manager.lastName != 'Johnson'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values; - + let notEqResult2 = execute(|Person.all(), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values->filter(a | ($a.manager->isEmpty() || $a.manager.lastName != 'Johnson')); - + assertEquals($notEqResult->size(), $notEqResult2->size()); - + assertEquals($allResult->size(), $eqResult->size() + $notEqResult->size()); assertEquals($allResult->size(), $eqResult2->size() + $notEqResult2->size()); } @@ -290,19 +291,19 @@ function <> meta::relational::tests::query::filter function <> meta::relational::tests::query::filter::startsWith::testConsistencyWithNulls():Boolean[1] { let allResult = execute(|Address.all(), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values; - + let startsWithResult = execute(|Address.all()->filter(a | $a.street->startsWith('Infinite Loop')), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values; let startsWithResult2 = execute(|Address.all(), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values->filter(a | $a.street->startsWith('Infinite Loop')); - + assertEquals($startsWithResult->size(), $startsWithResult2->size()); let notStartsWithResult = execute(|Address.all()->filter(a | (!$a.street->startsWith('Infinite Loop'))), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values; - + let notStartsWithResult2 = execute(|Address.all(), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values->filter(a | !$a.street->startsWith('Infinite Loop')); - + assertEquals($notStartsWithResult->size(), $notStartsWithResult2->size()); - + assertEquals($startsWithResult->size() + $notStartsWithResult->size(), $allResult->size()); assertEquals($startsWithResult2->size() + $notStartsWithResult2->size(), $allResult->size()); } @@ -310,19 +311,19 @@ function <> meta::relational::tests::query::filter function <> meta::relational::tests::query::filter::endsWith::testConsistencyWithNulls():Boolean[1] { let allResult = execute(|Address.all(), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values; - + let endsWithResult = execute(|Address.all()->filter(a | $a.street->endsWith('Infinite Loop')), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values; let endsWithResult2 = execute(|Address.all(), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values->filter(a | $a.street->endsWith('Infinite Loop')); - + assertEquals($endsWithResult->size(), $endsWithResult2->size()); let notEndsWithResult = execute(|Address.all()->filter(a | (!$a.street->endsWith('Infinite Loop'))), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values; - + let notEndsWithResult2 = execute(|Address.all(), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values->filter(a | !$a.street->endsWith('Infinite Loop')); assertEquals($notEndsWithResult->size(), $notEndsWithResult2->size()); - + assertEquals($endsWithResult->size() + $notEndsWithResult->size(), $allResult->size()); assertEquals($endsWithResult2->size() + $notEndsWithResult2->size(), $allResult->size()); } @@ -330,17 +331,17 @@ function <> meta::relational::tests::query::filter::endsWith::testCon function <> meta::relational::tests::query::filter::greaterThan::testConsistencyWithNulls():Boolean[1] { let allResult = execute(|Address.all(), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values; - + let greaterThanResult = execute(|Address.all()->filter(a | $a.street > 'Infinite Loop'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values; let greaterThanResult2 = execute(|Address.all(), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values->filter(a | $a.street > 'Infinite Loop'); - + assertEquals($greaterThanResult->size(), $greaterThanResult2->size()); let notGreaterThanResult = execute(|Address.all()->filter(a | !($a.street > 'Infinite Loop')), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values; let notGreaterThanResult2 = execute(|Address.all(), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()).values->filter(a | !($a.street > 'Infinite Loop')); - + assertEquals($notGreaterThanResult->size(), $notGreaterThanResult2->size()); assertEquals($greaterThanResult->size() + $notGreaterThanResult->size(), $allResult->size()); @@ -402,7 +403,7 @@ function <> meta::relational::tests::query::filter::or::testOrFilterW function <> meta::relational::tests::query::filter::combinations::testFilterBeforeAndAfterGroupBy():Boolean[1] { - let result = execute( + let result = execute( |Person.all() ->filter(p|$p.firm.address.name == 'New York') ->groupBy([p|$p.firstName], [agg(p|$p.age, x|$x->sum())], ['name', 'age']) @@ -425,7 +426,7 @@ function <> meta::relational::tests::query::filter::combinations::tes function <> meta::relational::tests::query::filter::isolation::testIsolationOfCaseStmtTrueFalseFilters():Boolean[1] { let result = execute(|Person.all()->filter(p| $p.firstName == if($p.firstName=='No firm',| $p.firstName,|$p.firm.legalName )), simpleRelationalMappingWithFilter, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEquals(['No firm no Firm'], $result.values->map(p|$p.name)->makeString()); + assertEquals(['No firm no Firm'], $result.values->map(p|$p.name)->makeString()); assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID and "firmtable_0".LEGALNAME = \'Firm X\') where "root".FIRSTNAME = case when "root".FIRSTNAME = \'No firm\' then "root".FIRSTNAME else "firmtable_0".LEGALNAME end', $result->sqlRemoveFormatting()); } @@ -454,7 +455,7 @@ function <> meta::relational::tests::query::filter::multipleFilters:: function <> meta::relational::tests::query::filter::multipleFilters::testFilterAfterFilter():Boolean[1] { let result = execute(|Person.all()->filter(p | $p.firstName->startsWith('Peter'))->filter(p | if($p.firstName->length() < 10, - | $p.firm.address->filter(a | $a.name == 'New York').name->isNotEmpty(), + | $p.firm.address->filter(a | $a.name == 'New York').name->isNotEmpty(), | $p.firm.address->filter(a | $a.name == 'New York').name->isEmpty())) , simpleRelationalMappingWithFilter, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals(['Peter Smith'], $result.values->map(p|$p.name)->makeString()); @@ -472,4 +473,4 @@ function <> meta::relational::tests::query::filter::subAggregation:: { let result = execute(|Firm.all()->filter(p | $p.employees->count() > 2), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('Firm X', $result.values.legalName->makeString()); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testFrom.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testFrom.pure index 4333640594f..19901cdbde1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testFrom.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testFrom.pure @@ -22,39 +22,39 @@ function <> meta::relational::tests::fromMapping::setUp():Bo function <> meta::relational::tests::fromMapping::testMappingFromQueriesViaMappingWithAssociationsOnly():Boolean[1] { - let result = execute({|Person.all()->filter(p|$p.firstName == 'Peter')->project(p|$p.firm.legalName,'Name')->from(meta::relational::tests::fromMapping::MappingWithAssociation, meta::relational::tests::testRuntime()) - ->concatenate(Firm.all()->filter(f|$f.legalName == 'Firm X')->project(p|$p.employees.firstName,'Name')->from(meta::relational::tests::fromMapping::MappingWithAssociation2, meta::relational::tests::testRuntime())) - - }, ^Mapping(name = ''), ^meta::pure::runtime::Runtime(), meta::relational::extension::relationalExtensions()); - + let result = execute({|Person.all()->filter(p|$p.firstName == 'Peter')->project(p|$p.firm.legalName,'Name')->from(meta::relational::tests::fromMapping::MappingWithAssociation, meta::external::store::relational::tests::testRuntime()) + ->concatenate(Firm.all()->filter(f|$f.legalName == 'Firm X')->project(p|$p.employees.firstName,'Name')->from(meta::relational::tests::fromMapping::MappingWithAssociation2, meta::external::store::relational::tests::testRuntime())) + + }, ^Mapping(name = ''), ^meta::core::runtime::Runtime(), meta::relational::extension::relationalExtensions()); + assertSameElements(['Anthony', 'Don', 'Firm X', 'John', 'John', 'New', 'Peter'], $result.values.rows.values); assertEquals('select "unionalias_0"."Name" as "Name" from (select "firmtable_0".LEGALNAME as "Name" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) where "root".FIRSTNAME = \'Peter\' UNION ALL select "persontable_1".FIRSTNAME as "Name" from firmTable as "root" left outer join personTable as "persontable_1" on ("root".ID = "persontable_1".FIRMID) where "root".LEGALNAME = \'Firm X\') as "unionalias_0"', $result->sqlRemoveFormatting()); } function <> meta::relational::tests::fromMapping::testClassMappingsAreCorrectlyIsolated():Boolean[1] { - - let runtime = meta::relational::tests::testRuntime(); + + let runtime = meta::external::store::relational::tests::testRuntime(); let mapping1 = meta::relational::tests::fromMapping::MappingWithClasses; let mapping2 = meta::relational::tests::fromMapping::MappingWithClasses2; - + let result = execute({|Person.all()->filter(p|$p.firstName == 'Peter')->project(p|$p.firstName,'FirstName')->from($mapping1, $runtime) ->concatenate(Person.all()->project(p|$p.firstName,'FirstName')->from($mapping2, $runtime)) - - }, ^Mapping(name = ''), ^meta::pure::runtime::Runtime(), meta::relational::extension::relationalExtensions()); - - + + }, ^Mapping(name = ''), ^meta::core::runtime::Runtime(), meta::relational::extension::relationalExtensions()); + + assertSameElements(['Don', 'Peter'], $result.values.rows.values); assertEquals('select "unionalias_0"."FirstName" as "FirstName" from (select "root".FIRSTNAME as "FirstName" from personTable as "root" where "root".FIRSTNAME = \'Peter\' UNION ALL select "root".FIRSTNAME as "FirstName" from personTable as "root" where "root".FIRSTNAME = \'Don\') as "unionalias_0"', $result->sqlRemoveFormatting()); } function <> meta::relational::tests::fromMapping::testClassMappingsWithUnions():Boolean[1] { - - let runtime = meta::relational::tests::testRuntime(); - - let result = execute({|Person.all()->project(p|$p.firstName,'FirstName')->from(meta::relational::tests::simpleRelationalMappingWithChainedUnions, $runtime)}, ^Mapping(name = ''), ^meta::pure::runtime::Runtime(), meta::relational::extension::relationalExtensions()); - + + let runtime = meta::external::store::relational::tests::testRuntime(); + + let result = execute({|Person.all()->project(p|$p.firstName,'FirstName')->from(meta::relational::tests::simpleRelationalMappingWithChainedUnions, $runtime)}, ^Mapping(name = ''), ^meta::core::runtime::Runtime(), meta::relational::extension::relationalExtensions()); + assertSameElements(['Anthony', 'Anthony', 'David', 'David', 'Don', 'Don', 'Elena', 'Elena', 'Fabrice', 'Fabrice', 'John', 'John', 'John', 'John', 'New', 'New', 'No address', 'No address', 'No firm', 'No firm', 'Oliver', 'Oliver', 'Peter', 'Peter'], $result.values.rows.values); assertEquals('select "unionBase"."personTableFIRSTNAME_personTableFIRSTNAME" as "FirstName" from (select "root".ID as "pk_0_0", null as "pk_0_1", "root".FIRSTNAME as "personTableFIRSTNAME_personTableFIRSTNAME" from personTable as "root" UNION ALL select null as "pk_0_0", "root".ID as "pk_0_1", "root".FIRSTNAME as "personTableFIRSTNAME_personTableFIRSTNAME" from personTable as "root") as "unionBase"', $result->sqlRemoveFormatting()); } @@ -64,12 +64,13 @@ function <> meta::relational::tests::fromMapping::testClassMappingsWi Database meta::relational::tests::fromMapping::mdb ( include meta::relational::tests::dbInc - + Filter donFilter(personTable.FIRSTNAME = 'Don') ) ###Mapping import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::fromMapping::*; @@ -85,7 +86,7 @@ Mapping meta::relational::tests::fromMapping::MappingWithClasses Firm : Relational { legalName : [mdb]firmTable.LEGALNAME - } + } ) Mapping meta::relational::tests::fromMapping::MappingWithClasses2 @@ -95,12 +96,12 @@ Mapping meta::relational::tests::fromMapping::MappingWithClasses2 ~filter [mdb] donFilter firstName : [mdb]personTable.FIRSTNAME, lastName : [mdb]personTable.LASTNAME - } + } ) Mapping meta::relational::tests::fromMapping::MappingWithAssociation -( - include meta::relational::tests::fromMapping::MappingWithClasses +( + include meta::relational::tests::fromMapping::MappingWithClasses Employment : Relational { AssociationMapping @@ -112,8 +113,8 @@ Mapping meta::relational::tests::fromMapping::MappingWithAssociation ) Mapping meta::relational::tests::fromMapping::MappingWithAssociation2 -( - include meta::relational::tests::fromMapping::MappingWithClasses +( + include meta::relational::tests::fromMapping::MappingWithClasses Employment : Relational { AssociationMapping @@ -123,7 +124,7 @@ Mapping meta::relational::tests::fromMapping::MappingWithAssociation2 ) } ) - + diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testGetter.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testGetter.pure index b3242084a53..b72f687f380 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testGetter.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testGetter.pure @@ -15,6 +15,7 @@ import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; function <> meta::relational::tests::getter::setUp():Boolean[1] @@ -33,13 +34,13 @@ function <> meta::relational::tests::getter::testGetterTwice():Bool { let result = execute(|Firm.all()->filter(f | $f.legalName == 'Firm A'), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 1); - + let firm = $result.values->at(0); assertEquals('Firm A', $firm.legalName); let employees = $firm.employees; assertSize($result.values, 1); - + let employee = $employees->at(0); assertEquals($employee.firm.legalName, $firm.legalName); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testIn.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testIn.pure index c570d029699..c04f748a28b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testIn.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testIn.pure @@ -16,6 +16,7 @@ import meta::relational::tests::model::simple::*; import meta::pure::executionPlan::profiles::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::query::filter::in::testIn():Boolean[1] { @@ -228,20 +229,20 @@ function <> meta::relational::tests::query::filter::in::testContainsE assertSize($tds.rows, 1); assertEquals('Hoboken|TDSNull|A comment with a % in the middle', - $tds.rows->map(r|$r.values->makeString('|'))->makeString(',')); + $tds.rows->map(r|$r.values->makeString('|'))->makeString(',')); } function <> meta::relational::tests::query::filter::in::testContainsEscapeUnderscore():Boolean[1] -{ +{ let tds = execute( |Address.all() ->filter(a|$a.comments->contains('_')) - ->project([a|$a.name, a|$a.street, a|$a.comments], + ->project([a|$a.name, a|$a.street, a|$a.comments], ['name', 'street', 'comments' ]), - simpleRelationalMappingInc, + simpleRelationalMappingInc, testRuntime(), meta::relational::extension::relationalExtensions()).values; - - assertSize($tds.rows, 1); + + assertSize($tds.rows, 1); assertEquals('New York|TDSNull|A comment with a _ in the middle', $tds.rows->map(r|$r.values->makeString('|'))->makeString(',')); @@ -304,7 +305,7 @@ function <> {serverVersion.start = 'v1_13_0'} meta::r } function <> {serverVersion.start = 'v1_13_0'} meta::relational::tests::query::filter::in::tempTable::testInExecutionWithTempTableAndQueryChaining():Boolean[1] -{ +{ let query = {| let validFirstNames = ValidPerson.all().firstName->distinct(); Person.all()->filter(p|$p.firstName->in($validFirstNames)) ->project([x | $x.firstName, x | $x.lastName], ['firstName', 'lastName']);}; @@ -319,7 +320,7 @@ function <> {serverVersion.start = 'v1_13_0'} meta::r } function <> {serverVersion.start = 'v1_13_0'} meta::relational::tests::query::filter::in::tempTable::testInExecutionWithTempTableAndQueryChainingOnIntegerColumn():Boolean[1] -{ +{ let query = {| let validAges = ValidPerson.all().age->distinct(); Person.all()->filter(p|$p.age->in($validAges)) ->project([x | $x.firstName, x | $x.lastName], ['firstName', 'lastName']);}; @@ -334,10 +335,10 @@ function <> {serverVersion.start = 'v1_13_0'} meta::r } function <> {serverVersion.start = 'v1_19_0'} meta::relational::tests::query::filter::in::tempTable::testInExecutionWithTempTableAndQueryChainingAndChainConnection():Boolean[1] -{ - let modelChainConnection = ^meta::pure::mapping::modelToModel::ModelChainConnection(element = ^meta::pure::mapping::modelToModel::ModelStore(), +{ + let modelChainConnection = ^meta::external::store::model::ModelChainConnection( mappings = [meta::relational::tests::simpleRelationalMapping]); - let runtimeWithChainConnection = testRuntime()->map(r | ^$r(connections += $modelChainConnection)); + let runtimeWithChainConnection = testRuntime()->map(r | ^$r(connectionStores += ^meta::core::runtime::ConnectionStore(element = ^meta::external::store::model::ModelStore(),connection=$modelChainConnection))); let query = {| let validFirstNames = ValidPerson.all().firstName->distinct(); meta::relational::tests::query::filter::in::Target_Person.all()->filter(p|$p.firstName->in($validFirstNames)) @@ -388,6 +389,7 @@ Class meta::relational::tests::query::filter::in::Target_Person ###Mapping import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::query::filter::in::*; @@ -395,7 +397,7 @@ Mapping meta::relational::tests::query::filter::in::M2MMappingWithSimpleRelation ( include simpleRelationalMapping - Target_Person : Pure + Target_Person : Pure { ~src Person firstName : $src.firstName, diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testIsEmpty.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testIsEmpty.pure index 136fd8db952..1f644ab7731 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testIsEmpty.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testIsEmpty.pure @@ -26,8 +26,8 @@ Class meta::relational::tests::query::function::isempty::TestClass function <> meta::relational::tests::query::function::isempty::setUp():Boolean[1] { - let rt = meta::relational::tests::testRuntime(); - let connection = $rt.connections->at(0)->cast(@meta::relational::runtime::DatabaseConnection); + let rt = meta::external::store::relational::tests::testRuntime(); + let connection = $rt.connectionStores->at(0).connection->cast(@meta::external::store::relational::runtime::DatabaseConnection); dropAndCreateTableInDb(TestDB, 'testTable', $connection); executeInDb('insert into testTable (id, value) values (1, \'Bla\');', $connection); executeInDb('insert into testTable (id, value) values (2, null);', $connection); @@ -36,7 +36,7 @@ function <> meta::relational::tests::query::function::isempt function <> meta::relational::tests::query::function::isempty::testDerivedWithIsEmpty():Boolean[1] { - let result = execute(|TestClass.all()->filter(t|$t.isValued()), TestMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let result = execute(|TestClass.all()->filter(t|$t.isValued()), TestMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 1); assertEquals(1, $result.values->size()); assertEquals('select "root".id as "pk_0", "root".value as "myValue" from testTable as "root" where "root".value is null', $result->sqlRemoveFormatting()); @@ -49,11 +49,11 @@ Database meta::relational::tests::query::function::isempty::TestDB ) ###Mapping -import meta::relational::tests::query::function::isempty::*; +import meta::relational::tests::query::function::isempty::*; Mapping meta::relational::tests::query::function::isempty::TestMapping ( TestClass : Relational { myValue : [TestDB]testTable.value } -) \ No newline at end of file +) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testIsEmpty1.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testIsEmpty1.pure index b63571cc010..6aa34d8c202 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testIsEmpty1.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testIsEmpty1.pure @@ -17,6 +17,7 @@ import meta::pure::executionPlan::toString::*; import meta::pure::executionPlan::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::executionPlan::tests::*; function <> meta::relational::tests::query::filter::isempty::testIsolationOfInputToIsEmpty():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testMap.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testMap.pure index a3ddba8f1e6..64b5a0680d7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testMap.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testMap.pure @@ -17,6 +17,7 @@ import meta::relational::tests::mapping::filter::model::domain::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; function <> meta::relational::tests::map::setUp():Boolean[1] @@ -328,7 +329,7 @@ function <> meta::relational::tests::map::testSequenceMapWithConfusin 'p_p_name' ] ), meta::relational::tests::map::embeddedWithConsfusingSetImpl - , meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + , meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals(6, $result.values.rows->size()); assertEquals(['ROOT','ok',^TDSNull()], $result.values.rows->at(0).values); assertEquals(['Firm X','ok','ROOT'], $result.values.rows->at(1).values); @@ -358,6 +359,6 @@ Mapping meta::relational::tests::map::embeddedWithConsfusingSetImpl ), children : @OrgParentOrg ) - + } ) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testModelGroupBy.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testModelGroupBy.pure index 076be67d4ab..cae114501f1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testModelGroupBy.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testModelGroupBy.pure @@ -14,11 +14,13 @@ import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::functions::asserts::*; import meta::relational::functions::sqlstring::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::groupBy::*; import meta::relational::tests::model::simple::*; @@ -41,9 +43,9 @@ function <> meta::relational::tests::groupBy::testSimple():Boolean[1] ['prodName', 'cnt'] )->sort(desc('prodName')) ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); - + assertEquals(['Firm X', 345.0, 'Firm C', 176.0, 'Firm A', 66.0, ^TDSNull(), 5.0], $result.values.rows.values); assertSameSQL('select "producttable_0".NAME as "prodName", sum("root".quantity) as "cnt" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) group by "prodName" order by "prodName" desc', $result); @@ -61,7 +63,7 @@ function <> meta::relational::tests::groupBy::testStdDevSample():Bool ['prodName', 'stdDevSample'] )->sort(desc('prodName')) ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertEquals(['Firm X', 208.59650045003153, 'Firm C', 10.2810505299799, 'Firm A', 10.535653752852738, ^TDSNull(), ^TDSNull()], $result.values.rows.values); @@ -80,7 +82,7 @@ function <> meta::relational::tests::groupBy::testStdDevPopulation(): ['prodName', 'stdDevPopulation'] )->sort(desc('prodName')) ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertEquals(['Firm X', 147.5, 'Firm C', 9.19565114605812, 'Firm A', 8.602325267042627, ^TDSNull(), 0.0], $result.values.rows.values); @@ -99,7 +101,7 @@ function <> meta::relational::tests::groupBy::testVarianceSample():Bo ['prodName', 'varianceSample'] )->sort(desc('prodName')) ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertEquals(['Firm X', 43512.5, 'Firm C', 105.7, 'Firm A', 111.0, ^TDSNull(), ^TDSNull()], $result.values.rows.values); @@ -118,7 +120,7 @@ function <> meta::relational::tests::groupBy::testVariancePopulation( ['prodName', 'variancePopulation'] )->sort(desc('prodName')) ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertEquals(['Firm X', 21756.25, 'Firm C', 84.56, 'Firm A', 74.0, ^TDSNull(), 0.0], $result.values.rows.values); @@ -134,9 +136,9 @@ function <> meta::relational::tests::groupBy::testSimpleOneAggInAnArr ['prodName', 'cnt'] )->sort(desc('prodName')) ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); - + assertEquals(['Firm X', 345.0, 'Firm C', 176.0, 'Firm A', 66.0, ^TDSNull(), 5.0], $result.values.rows.values); assertSameSQL('select "producttable_0".NAME as "prodName", sum("root".quantity) as "cnt" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) group by "prodName" order by "prodName" desc', $result); @@ -154,9 +156,9 @@ function <> meta::relational::tests::groupBy::testSimpleTwoAggs():Boo ['prodName', 'cnt', 'cnt2'] )->sort(desc('prodName')) ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); - + assertEquals(['Firm X', 345.0, 690.0, 'Firm C', 176.0, 352.0, 'Firm A', 66.0, 132.0, ^TDSNull(), 5.0, 10.0], $result.values.rows.values); assertSameSQL('select "producttable_0".NAME as "prodName", sum("root".quantity) as "cnt", (sum("root".quantity) * 2) as "cnt2" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) group by "prodName" order by "prodName" desc', $result); @@ -174,9 +176,9 @@ function <> meta::relational::tests::groupBy::testMax():Boolean[1] ['prodName', 'max'] )->sort(desc('prodName')) ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); - + assertEquals(['Firm X', 320.0, 'Firm C', 45.0, 'Firm A', 32.0, ^TDSNull(), 5.0], $result.values.rows.values); assertSameSQL('select "producttable_0".NAME as "prodName", max("root".quantity) as "max" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) group by "prodName" order by "prodName" desc', $result); } @@ -193,9 +195,9 @@ function <> meta::relational::tests::groupBy::testMin():Boolean[1] ['prodName', 'min'] )->sort(desc('prodName')) ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); - + assertEquals(['Firm X', 25.0, 'Firm C', 22.0, 'Firm A', 11.0, ^TDSNull(), 5.0], $result.values.rows.values); assertSameSQL('select "producttable_0".NAME as "prodName", min("root".quantity) as "min" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) group by "prodName" order by "prodName" desc', $result); } @@ -212,9 +214,9 @@ function <> meta::relational::tests::groupBy::testUsingAMultiplyInThe ['prodName', 'cnt'] )->sort(desc('prodName')) ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); - + assertEquals(['Firm X', 690.0, 'Firm C', 352.0, 'Firm A', 132.0, ^TDSNull(), 10.0], $result.values.rows.values); assertSameSQL('select "producttable_0".NAME as "prodName", (sum("root".quantity) * 2) as "cnt" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) group by "prodName" order by "prodName" desc', $result); @@ -233,14 +235,14 @@ function <> meta::relational::tests::groupBy::testUsingAFunctionInThe ['prodName', 'cnt'] )->sort(desc('prodName')) ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); - + assertEquals(['Firm X', 690.0, 'Firm C', 352.0, 'Firm A', 0.0, ^TDSNull(), 0.0], $result.values.rows.values); assertEqualsH2Compatible( - 'select "producttable_0".NAME as "prodName", (sum(case when (("producttable_0".NAME is not null and "producttable_0".NAME like \'%X\') or ("producttable_0".NAME is not null and "producttable_0".NAME like \'%C\')) then "root".quantity else 0.0 end) * 2) as "cnt" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) group by "prodName" order by "prodName" desc', - 'select "producttable_0".NAME as "prodName", (sum(case when (("producttable_0".NAME is not null and "producttable_0".NAME like \'%X\') or ("producttable_0".NAME is not null and "producttable_0".NAME like \'%C\')) then "root".quantity else CAST(0.0 AS FLOAT) end) * 2) as "cnt" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) group by "prodName" order by "prodName" desc', + 'select "producttable_0".NAME as "prodName", (sum(case when (("producttable_0".NAME is not null and "producttable_0".NAME like \'%X\') or ("producttable_0".NAME is not null and "producttable_0".NAME like \'%C\')) then "root".quantity else 0.0 end) * 2) as "cnt" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) group by "prodName" order by "prodName" desc', + 'select "producttable_0".NAME as "prodName", (sum(case when (("producttable_0".NAME is not null and "producttable_0".NAME like \'%X\') or ("producttable_0".NAME is not null and "producttable_0".NAME like \'%C\')) then "root".quantity else CAST(0.0 AS FLOAT) end) * 2) as "cnt" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) group by "prodName" order by "prodName" desc', $result->sqlRemoveFormatting() ); } @@ -264,14 +266,14 @@ function <> meta::relational::tests::groupBy::testUsingAnAssociationI ['prodName', 'cnt'] )->sort(desc('prodName')) ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); - + assertEquals(['Firm X', 50.0, 'Firm C', 142.0, 'Firm A', 86.0, ^TDSNull(), 0.0], $result.values.rows.values); - + assertEqualsH2Compatible( - 'select "producttable_0".NAME as "prodName", (sum(case when ("accounttable_0".name is not null and "accounttable_0".name like \'Account 1%\') then "root".quantity else 0.0 end) * 2) as "cnt" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) left outer join accountTable as "accounttable_0" on ("root".accountID = "accounttable_0".ID) group by "prodName" order by "prodName" desc', - 'select "producttable_0".NAME as "prodName", (sum(case when ("accounttable_0".name is not null and "accounttable_0".name like \'Account 1%\') then "root".quantity else CAST(0.0 AS FLOAT) end) * 2) as "cnt" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) left outer join accountTable as "accounttable_0" on ("root".accountID = "accounttable_0".ID) group by "prodName" order by "prodName" desc', + 'select "producttable_0".NAME as "prodName", (sum(case when ("accounttable_0".name is not null and "accounttable_0".name like \'Account 1%\') then "root".quantity else 0.0 end) * 2) as "cnt" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) left outer join accountTable as "accounttable_0" on ("root".accountID = "accounttable_0".ID) group by "prodName" order by "prodName" desc', + 'select "producttable_0".NAME as "prodName", (sum(case when ("accounttable_0".name is not null and "accounttable_0".name like \'Account 1%\') then "root".quantity else CAST(0.0 AS FLOAT) end) * 2) as "cnt" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) left outer join accountTable as "accounttable_0" on ("root".accountID = "accounttable_0".ID) group by "prodName" order by "prodName" desc', $result->sqlRemoveFormatting() ); } @@ -292,11 +294,11 @@ function <> meta::relational::tests::groupBy::testUsingAnAssociationI ['legalName', 'addressName', 'employeeAge'] )->sort('legalName') ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); - + assertEquals(['Firm A', 'Cupertino', 68.0, 'Firm B', 'Tokyo', 64.0, 'Firm C', 'Mountain View', 70.0, 'Firm X', 'New York', 39.5], $result.values.rows.values); - + assertSameSQL('select "root".LEGALNAME as "legalName", "addresstable_0".NAME as "addressName", (sum("firmtable_1".aggCol) * 2) as "employeeAge" from firmTable as "root" left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "root".ADDRESSID) left outer join (select "firmtable_2".ID as ID, avg(1.0 * "persontable_0".AGE) as aggCol from firmTable as "firmtable_2" left outer join personTable as "persontable_0" on ("firmtable_2".ID = "persontable_0".FIRMID) group by "firmtable_2".ID) as "firmtable_1" on ("root".ID = "firmtable_1".ID) group by "legalName","addressName" order by "legalName"', $result); } @@ -320,11 +322,11 @@ function <> meta::relational::tests::groupBy::testUsingFunctionInMapL ['legalName', 'addressName', 'employeeAge'] )->sort('legalName') ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); - + assertEquals(['Firm A', 'Cupertino', 68.0, 'Firm B', 'Tokyo', 64.0, 'Firm C', 'Mountain View', 70.0, 'Firm X', 'New York', 39.5], $result.values.rows.values); - + assertSameSQL('select "root".LEGALNAME as "legalName", "addresstable_0".NAME as "addressName", (sum("firmtable_1".aggCol) * 2) as "employeeAge" from firmTable as "root" left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "root".ADDRESSID) left outer join (select "firmtable_2".ID as ID, avg(1.0 * "persontable_0".AGE) as aggCol from firmTable as "firmtable_2" left outer join personTable as "persontable_0" on ("firmtable_2".ID = "persontable_0".FIRMID) group by "firmtable_2".ID) as "firmtable_1" on ("root".ID = "firmtable_1".ID) group by "legalName","addressName" order by "legalName"', $result); } @@ -349,7 +351,7 @@ function <> meta::relational::tests::groupBy::test ['legalName', 'addressName', 'employeeAge'] )->sort('legalName') ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertEquals(['Firm A', 'Cupertino', 68.0, 'Firm B', 'Tokyo', 64.0, 'Firm C', 'Mountain View', 70.0, 'Firm X', 'New York', 39.5], $result.values.rows.values); @@ -373,7 +375,7 @@ function <> meta::relational::tests::groupBy::test ['legalName', 'addressName', 'employeeAge'] )->sort('legalName') ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertEquals(['Firm A', 'Cupertino', 136.0, 'Firm B', 'Tokyo', 128.0, 'Firm C', 'Mountain View', 140.0, 'Firm X', 'New York', 79.0], $result.values.rows.values); @@ -398,7 +400,7 @@ function <> meta::relational::tests::groupBy::testUsingFunctionInMapL ['prodName', 'cnt'] )->sort(desc('prodName')) ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertEquals(['Firm X', 1380.0, 'Firm C', 704.0, 'Firm A', 264.0, ^TDSNull(), 20.0], $result.values.rows.values); @@ -425,7 +427,7 @@ function <> meta::relational::tests::groupBy::testSimpleWithFilter(): ['prodName', 'qt', 'cnt'] )->sort([asc('prodName'), asc('qt')]) ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertEquals(['Firm A', 23.0, 23.0, 'Firm C', 22.0, 22.0, 'Firm C', 38.0, 38.0, 'Firm C', 45.0, 45.0, 'Firm X', 320.0, 320.0], $result.values.rows.values); @@ -454,7 +456,7 @@ function <> meta::relational::tests::groupBy::testUsingFunctionInMapL ['legalName', 'addressName', 'employeeAge'] )->sort('legalName') ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertEquals(['Firm A', 'Cupertino', 68.0, 'Firm B', 'Tokyo', 64.0, 'Firm C', 'Mountain View', 70.0, 'Firm X', 'New York', 39.5], $result.values.rows.values); @@ -477,7 +479,7 @@ function <> meta::relational::tests::groupBy::testUsingFunctionInMapL ['legalName', 'addressName', 'employeeAge'] )->sort('legalName') ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertEquals(['Firm A', 'Cupertino', 68.0, 'Firm B', 'Tokyo', 64.0, 'Firm C', 'Mountain View', 70.0, 'Firm X', 'New York', 39.5], $result.values.rows.values); @@ -500,7 +502,7 @@ function <> meta::relational::tests::groupBy::testFilterWithQualified ) ->sort(desc('prodName')) ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertEquals(['Firm X', -25.0, 'Firm C', -71.0, 'Firm A', -43.0], $result.values.rows.values); @@ -514,13 +516,13 @@ function <> meta::relational::tests::groupBy::testGroupByOnRootLevelP ->groupBy([t|$t.date], agg(x|$x.quantity, y|$y->sum()), ['Date', 'Total Quantity']); - , simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + , simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 1); assertEquals([%2014-12-01, 356.0], $result.values.rows.values); assertEqualsH2Compatible( - 'select "root".tradeDate as "Date", sum("root".quantity) as "Total Quantity" from tradeTable as "root" where "root".tradeDate = \'2014-12-01\' group by "Date"', - 'select "root".tradeDate as "Date", sum("root".quantity) as "Total Quantity" from tradeTable as "root" where "root".tradeDate = DATE\'2014-12-01\' group by "Date"', + 'select "root".tradeDate as "Date", sum("root".quantity) as "Total Quantity" from tradeTable as "root" where "root".tradeDate = \'2014-12-01\' group by "Date"', + 'select "root".tradeDate as "Date", sum("root".quantity) as "Total Quantity" from tradeTable as "root" where "root".tradeDate = DATE\'2014-12-01\' group by "Date"', $result->sqlRemoveFormatting() ); } @@ -537,7 +539,7 @@ function <> meta::relational::tests::groupBy::testSimpleJoinStrings() ['firstName', 'lastNames'] ) ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertEquals(['Smith'], $result.values->first().rows->filter(r | $r.getString('firstName') == 'Peter')->first()->toOne().getString('lastNames')); assertEquals(['Johnson*Hill'], $result.values->first().rows->filter(r | $r.getString('firstName') == 'John')->first()->toOne().getString('lastNames')); @@ -558,7 +560,7 @@ function <> meta::relational::tests::groupBy::testJoinStringsWithAsso ) ->sort([asc('legalName')]) ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertEquals(4, $result.values->first().rows->size()); @@ -581,7 +583,7 @@ function <> meta::relational::tests::groupBy::testJoinStringsTwiceWit ['type', 'employeesFirstName'] ) ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertEquals(1, $result.values->first().rows->size()); @@ -603,7 +605,7 @@ function <> meta::relational::tests::groupBy::testUsingSameAggFunctio ['legalName', 'employeeAge'] )->sort('legalName') ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); // We need to support IDE and TeamCity @@ -629,7 +631,7 @@ function <> meta::relational::tests::groupBy::testUsingSameAggFuncti ['legalName', 'employeeAge'] ) ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertEquals(['Firm X', 34.0], $result.values.rows.values); @@ -652,7 +654,7 @@ function <> meta::relational::tests::groupBy::testUsingSameAggFuncti ['legalName', 'employeeAge'] ) ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertEquals(['Firm X', 12.0], $result.values.rows.values); @@ -673,7 +675,7 @@ function <> meta::relational::tests::groupBy::testUsingSameAggFunctio ['legalName', 'employeeAge'] )->sort('legalName') ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); // We need to support IDE and TeamCity @@ -699,7 +701,7 @@ function meta::relational::tests::groupBy::testAggToManyWithAverageAndTimesExter ['Address Type', 'Count of Firms', 'Average Age of Employees * 10'] ) ,meta::relational::tests::simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertEquals([GeographicEntityType.CITY, 7, 25], $result.values.rows.values); @@ -739,7 +741,7 @@ function <> meta::relational::tests::groupBy::testAggToManyWithAverag ['Address Type', 'Count of Firms', 'Average Age of Employees', 'Sum of Age of Employees Averaged','Max Age of Employees','Max of Sum of Age of Employees'] ) ,meta::relational::tests::simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertSize($result.values.rows, 1); @@ -770,7 +772,7 @@ function <> meta::relational::tests::groupBy::testAggToManyWithMaxInt ['Address Type', 'Max Age of Employees'] ) ,meta::relational::tests::simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertSameElements([GeographicEntityType.CITY, 35], $result.values.rows.values); @@ -793,7 +795,7 @@ function <> meta::relational::tests::groupBy::testAggToManyWithMinInt ['Address Type', 'Min Age of Employees'] ) ,meta::relational::tests::simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); @@ -817,7 +819,7 @@ function <> meta::relational::tests::groupBy::testAggToManyWithMaxDat ['Account', 'Max Trade Date'] ) ,meta::relational::tests::simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertSameElements(['Account 1', 'Account 2', %2014-12-03, %2014-12-04], $result.values.rows.values); @@ -839,7 +841,7 @@ function <> meta::relational::tests::groupBy::testAggToManyWithMinDat ['Account', 'Min Trade Date'] ) ,meta::relational::tests::simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertSameElements(['Account 1', 'Account 2', %2014-12-01, %2014-12-01], $result.values.rows.values); @@ -862,7 +864,7 @@ function <> meta::relational::tests::groupBy::testAggToManyWithFilter ['Address Type', 'Average Age of Employees'] ) ,meta::relational::tests::simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); let tds = $result.values; assertSize($tds.rows, 1); @@ -889,7 +891,7 @@ function <> meta::relational::tests::groupBy::testAggToManyWithFilte ['Address Type', 'Average Age of Employees'] ) ,meta::relational::tests::simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertEquals([GeographicEntityType.CITY, 19.75], $result.values.rows.values); @@ -917,7 +919,7 @@ function <> meta::relational::tests::groupBy::testAggToManyWithAvera ['Address Type', 'Count of Firms', 'Average Age of Employees * 10'] ) ,meta::relational::tests::simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertEquals([GeographicEntityType.CITY, 7, 25, 60], $result.values.rows.values); @@ -944,7 +946,7 @@ function <> meta::relational::tests::groupBy::testAggToManyWithAvera ['Address Type', 'Count of Firms', 'Average Age of Employees * 10'] ) ,meta::relational::tests::simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertEquals([GeographicEntityType.CITY, 7, 25, 60], $result.values.rows.values); @@ -960,7 +962,7 @@ function <> meta::relational::tests::groupBy::testGroupByAndFilterIso ->groupBy([t|$t.product.cusipSynonym.name], agg(x|$x.quantity, y|$y->sum()), ['Cusip', 'Total Quantity']); - , simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + , simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 1); assertEquals(['CUSIP1', 345.0], $result.values.rows.values); @@ -974,7 +976,7 @@ function <> meta::relational::tests::groupBy::testGroupByWithJoinH2() [f|$f.legalName, f|$f.employees.firstName], agg(x|1,y|$y->sum()), ['legalName', 'employeesFirstName', 'sum']) - ->sort([asc('legalName'),asc('employeesFirstName')]), meta::relational::tests::simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + ->sort([asc('legalName'),asc('employeesFirstName')]), meta::relational::tests::simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 1); assertEquals(['Firm A', 'Fabrice', 1, 'Firm B', 'Oliver', 1, 'Firm C', 'David', 1, 'Firm X', 'Anthony', 1, 'Firm X', 'John', 2, 'Firm X', 'Peter', 1], $result.values.rows.values); @@ -1005,11 +1007,11 @@ function <> meta::relational::tests::groupBy::testObjectLevelGroupByW , | 10, | $x.getFloat('Average Age 1')*0.9), 'Case Column')) ->groupBy(['FirstName','Case Column'], agg('Joined Last Name' , x|$x.getString('LastName'), y| $y->joinStrings(',')) ) - , simpleRelationalMapping, meta::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); + , simpleRelationalMapping, meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "persontable_0"."FirstName" as "FirstName", "persontable_0"."Case Column" as "Case Column", group_concat("LastName" separator \',\') as "Joined Last Name" from (select "root".FIRSTNAME as "FirstName", "root".LASTNAME as "LastName", "firmtable_0".LEGALNAME as "FirmName", avg(1.0 * "root".AGE) as "Average Age 1", case when avg(1.0 * "root".AGE) < 10 then 10 else (avg(1.0 * "root".AGE) * 0.9) end as "Case Column" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) group by "FirstName","LastName","FirmName" having "firmtable_0".LEGALNAME = \'Firm X\') as "persontable_0" group by "FirstName","Case Column"', - 'select "persontable_0"."FirstName" as "FirstName", "persontable_0"."Case Column" as "Case Column", group_concat("LastName" separator \',\') as "Joined Last Name" from (select "root".FIRSTNAME as "FirstName", "root".LASTNAME as "LastName", "firmtable_0".LEGALNAME as "FirmName", avg(1.0 * "root".AGE) as "Average Age 1", case when avg(1.0 * "root".AGE) < 10 then 10 else (avg(1.0 * "root".AGE) * CAST(0.9 AS FLOAT)) end as "Case Column" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) group by "FirstName","LastName","FirmName" having "firmtable_0".LEGALNAME = \'Firm X\') as "persontable_0" group by "FirstName","Case Column"', + 'select "persontable_0"."FirstName" as "FirstName", "persontable_0"."Case Column" as "Case Column", group_concat("LastName" separator \',\') as "Joined Last Name" from (select "root".FIRSTNAME as "FirstName", "root".LASTNAME as "LastName", "firmtable_0".LEGALNAME as "FirmName", avg(1.0 * "root".AGE) as "Average Age 1", case when avg(1.0 * "root".AGE) < 10 then 10 else (avg(1.0 * "root".AGE) * 0.9) end as "Case Column" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) group by "FirstName","LastName","FirmName" having "firmtable_0".LEGALNAME = \'Firm X\') as "persontable_0" group by "FirstName","Case Column"', + 'select "persontable_0"."FirstName" as "FirstName", "persontable_0"."Case Column" as "Case Column", group_concat("LastName" separator \',\') as "Joined Last Name" from (select "root".FIRSTNAME as "FirstName", "root".LASTNAME as "LastName", "firmtable_0".LEGALNAME as "FirmName", avg(1.0 * "root".AGE) as "Average Age 1", case when avg(1.0 * "root".AGE) < 10 then 10 else (avg(1.0 * "root".AGE) * CAST(0.9 AS FLOAT)) end as "Case Column" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) group by "FirstName","LastName","FirmName" having "firmtable_0".LEGALNAME = \'Firm X\') as "persontable_0" group by "FirstName","Case Column"', $result->sqlRemoveFormatting() ); } @@ -1018,7 +1020,7 @@ function <> meta::relational::tests::groupBy::testReprocessGroupByAli { let result = execute({|meta::relational::tests::model::simple::Order.all() ->groupBy([x | $x.pnlContact.lastName,x | $x.pnlContact.firm.legalName],[agg(x | $x.quantity, y | $y->sum())],['last name','legal name','quantity'])}, - MappingWithInnerJoinAndEmbeddedMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + MappingWithInnerJoinAndEmbeddedMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('select "salespersontable_0".lastName as "last name", "salespersontable_0".firm_name as "legal name", sum("root".quantity) as "quantity" from orderTable as "root" left outer join (select "salespersontable_0".ACCOUNT_ID as ACCOUNT_ID, "personfirmview_0".lastName as lastName, "personfirmview_0".firm_name as firm_name from salesPersonTable as "salespersontable_0" inner join (select "root".ID as PERSON_ID, "root".LASTNAME as lastName, "firmtable_0".LEGALNAME as firm_name from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID)) as "personfirmview_0" on ("salespersontable_0".PERSON_ID = "personfirmview_0".PERSON_ID)) as "salespersontable_0" on ("root".accountID = "salespersontable_0".ACCOUNT_ID) group by "last name","legal name"', $result->sqlRemoveFormatting()); } @@ -1040,14 +1042,14 @@ function <> meta::relational::tests::groupBy::testUniqueValueOnly1(): ['prodName', 'count', 'uniqueValue'] ) ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertEquals(['Firm C', 1, 45.0], $result.values.rows.values); assertEqualsH2Compatible( - 'select "producttable_0".NAME as "prodName", count(distinct("root".quantity)) as "count", case when count(distinct("root".quantity)) = 1 then max("root".quantity) else null end as "uniqueValue" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) where ("producttable_0".NAME = \'Firm C\' and "root".quantity = 45.0) group by "prodName"', - 'select "producttable_0".NAME as "prodName", count(distinct("root".quantity)) as "count", case when count(distinct("root".quantity)) = 1 then max("root".quantity) else null end as "uniqueValue" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) where ("producttable_0".NAME = \'Firm C\' and "root".quantity = CAST(45.0 AS FLOAT)) group by "prodName"', + 'select "producttable_0".NAME as "prodName", count(distinct("root".quantity)) as "count", case when count(distinct("root".quantity)) = 1 then max("root".quantity) else null end as "uniqueValue" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) where ("producttable_0".NAME = \'Firm C\' and "root".quantity = 45.0) group by "prodName"', + 'select "producttable_0".NAME as "prodName", count(distinct("root".quantity)) as "count", case when count(distinct("root".quantity)) = 1 then max("root".quantity) else null end as "uniqueValue" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) where ("producttable_0".NAME = \'Firm C\' and "root".quantity = CAST(45.0 AS FLOAT)) group by "prodName"', $result->sqlRemoveFormatting() ); } @@ -1070,14 +1072,14 @@ function <> meta::relational::tests::groupBy::testUniqueValueOnly2(): ['prodName', 'count', 'uniqueValue'] ) ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertEquals(['Firm C', 1, 45.0], $result.values.rows.values); assertEqualsH2Compatible( - 'select "producttable_0".NAME as "prodName", count(distinct("root".quantity)) as "count", case when count(distinct("root".quantity)) = 1 then max("root".quantity) else -1 end as "uniqueValue" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) where ("producttable_0".NAME = \'Firm C\' and "root".quantity = 45.0) group by "prodName"', - 'select "producttable_0".NAME as "prodName", count(distinct("root".quantity)) as "count", case when count(distinct("root".quantity)) = 1 then max("root".quantity) else -1 end as "uniqueValue" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) where ("producttable_0".NAME = \'Firm C\' and "root".quantity = CAST(45.0 AS FLOAT)) group by "prodName"', + 'select "producttable_0".NAME as "prodName", count(distinct("root".quantity)) as "count", case when count(distinct("root".quantity)) = 1 then max("root".quantity) else -1 end as "uniqueValue" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) where ("producttable_0".NAME = \'Firm C\' and "root".quantity = 45.0) group by "prodName"', + 'select "producttable_0".NAME as "prodName", count(distinct("root".quantity)) as "count", case when count(distinct("root".quantity)) = 1 then max("root".quantity) else -1 end as "uniqueValue" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) where ("producttable_0".NAME = \'Firm C\' and "root".quantity = CAST(45.0 AS FLOAT)) group by "prodName"', $result->sqlRemoveFormatting() ); } @@ -1100,7 +1102,7 @@ function <> meta::relational::tests::groupBy::testUniqueValueOnly3(): ['prodName', 'count', 'uniqueValue'] ) ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertEquals(['Firm C', 5, ^TDSNull()], $result.values.rows.values); @@ -1127,7 +1129,7 @@ function <> meta::relational::tests::groupBy::testUniqueValueOnly4(): ['prodName', 'count', 'uniqueValue'] ) ,simpleRelationalMapping - ,meta::relational::tests::testRuntime() + ,meta::external::store::relational::tests::testRuntime() , meta::relational::extension::relationalExtensions()); assertEquals(['Firm C', 5, -1.0], $result.values.rows.values); @@ -1148,8 +1150,8 @@ function <> meta::relational::tests::groupBy::testAggFunctionUsingMul 'placeCount']) ->sort(asc('firstName'))}, simpleRelationalMapping, - meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); - + meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + assertEquals(['Anthony', 0, 2, 'David', 0, 1, 'Fabrice', 0, 2, 'John', 0, 4, 'Oliver', 0, 2, 'Peter', 0, 2], $result.values.rows.values); } @@ -1161,8 +1163,8 @@ function <> meta::relational::tests::groupBy::test [agg(x|$x.quantity,y|$y->distinct()->count()),agg(x|$x.quantity,y|$y->uniqueValueOnly())], ['prodName', 'count', 'uniqueValue'] ) }; - let result = execute($query,simpleRelationalMapping,meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); - let resultWithJoinOrderRespected = execute($query,simpleRelationalMapping,meta::relational::tests::testRuntime(),^RelationalExecutionContext(preserveJoinOrder=true), meta::relational::extension::relationalExtensions()); + let result = execute($query,simpleRelationalMapping,meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let resultWithJoinOrderRespected = execute($query,simpleRelationalMapping,meta::external::store::relational::tests::testRuntime(),^RelationalExecutionContext(preserveJoinOrder=true), meta::relational::extension::relationalExtensions()); //should produce same results; assertEquals(['Account 1', 2, ^TDSNull(), 'Account 2', 3,^TDSNull()], $result.values.rows.values); assertEquals(['Account 1', 2, ^TDSNull(), 'Account 2', 3,^TDSNull()], $resultWithJoinOrderRespected.values.rows.values); @@ -1184,9 +1186,9 @@ function <> meta::relational::tests::groupBy::testGro ['prodName', 'p1', 'p2', 'p3'] )->sort(desc('prodName')), simpleRelationalMapping, - meta::relational::tests::testRuntime(), + meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals(['Firm X|290.5|320.0|246.25', 'Firm C|44.6|38.0|44.0', 'Firm A|30.2|23.0|27.5', 'TDSNull|5.0|5.0|5.0'], $result.values.rows->map(r|$r.values->makeString('|'))); assertSameSQL('select "producttable_0".NAME as "prodName", percentile_cont(CAST(0.9 AS FLOAT)) within group (order by "root".quantity asc) as "p1", percentile_disc(CAST(0.5 AS FLOAT)) within group (order by "root".quantity desc) as "p2", percentile_cont(CAST(0.75 AS FLOAT)) within group (order by "root".quantity asc) as "p3" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) group by "prodName" order by "prodName" desc', $result); } @@ -1207,9 +1209,9 @@ function <> meta::relational::tests::groupBy::testGroupByIsDistinct() ['LegalName', 'FirstNameDistinctCount', 'FirstNameCount', 'IsDistinctFirstName', 'LastNameDistinctCount', 'LastNameCount', 'IsDistinctLastName'] )->sort(desc('LegalName')), simpleRelationalMapping, - meta::relational::tests::testRuntime(), + meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals(['Firm X|3|4|false|4|4|true', 'Firm C|1|1|true|1|1|true', 'Firm B|1|1|true|1|1|true', 'Firm A|1|1|true|1|1|true'], $result.values.rows->map(r|$r.values->makeString('|'))); assertSameSQL('select "root".LEGALNAME as "LegalName", count(distinct("persontable_0".FIRSTNAME)) as "FirstNameDistinctCount", count("persontable_0".FIRSTNAME) as "FirstNameCount", count(distinct("persontable_0".FIRSTNAME)) = count("persontable_0".FIRSTNAME) as "IsDistinctFirstName", count(distinct("persontable_0".LASTNAME)) as "LastNameDistinctCount", count("persontable_0".LASTNAME) as "LastNameCount", count(distinct("persontable_0".LASTNAME)) = count("persontable_0".LASTNAME) as "IsDistinctLastName" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID) group by "LegalName" order by "LegalName" desc', $result); } @@ -1220,9 +1222,9 @@ function <> meta::relational::tests::groupBy::testGroupByEmptyColsTer |Firm.all() ->groupBy([], [agg(x|$x.legalName, y|$y->count())], ['Firm Count']), simpleRelationalMapping, - meta::relational::tests::testRuntime(), + meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals(['4'], $result.values.rows->map(r|$r.values->makeString('|'))); assertSameSQL('select count("root".LEGALNAME) as "Firm Count" from firmTable as "root"', $result); } @@ -1234,9 +1236,9 @@ function <> meta::relational::tests::groupBy::testGroupByEmptyColsNon ->groupBy([], [agg(x|$x.legalName, y|$y->count())], ['Firm Count']) ->filter(r | $r.getInteger('Firm Count') > 10), simpleRelationalMapping, - meta::relational::tests::testRuntime(), + meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals([], $result.values.rows->map(r|$r.values->makeString('|'))); assertSameSQL('select "Firm Count" as "Firm Count" from (select count("root".LEGALNAME) as "Firm Count" from firmTable as "root") as "subselect" where "Firm Count" > 10', $result); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testObjectReferenceIn.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testObjectReferenceIn.pure index 9f0d64a7024..cc02b9395fb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testObjectReferenceIn.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testObjectReferenceIn.pure @@ -21,6 +21,7 @@ import meta::relational::tests::functions::objectReferenceIn::*; import meta::pure::graphFetch::*; import meta::pure::mapping::modelToModel::test::milestoning::*; import meta::pure::mapping::modelToModel::test::shared::dest::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::tests::functions::objectReferenceIn::*; import meta::pure::mapping::modelToModel::test::shared::src::*; @@ -33,6 +34,7 @@ import meta::alloy::objectReference::*; import meta::pure::mapping::modelToModel::test::shared::src::*; import meta::relational::metamodel::execute::*; import meta::relational::functions::toDDL::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::mapping::modelToModel::test::shared::*; @@ -40,8 +42,8 @@ function <> meta::relational::tests::f { meta::relational::tests::mapping::embedded::setUp(); meta::relational::tests::milestoning::initDatabase(); - - let connection = getConnection()->cast(@DatabaseConnection); + + let connection = getConnection().connection->cast(@DatabaseConnection); dropAndCreateTableInDb(relationalDB, 'default', 'Person', $connection); dropAndCreateTableInDb(relationalDB, 'default', 'Firm', $connection); dropAndCreateTableInDb(relationalDB, 'default', 'Address', $connection); @@ -68,19 +70,19 @@ function <newMap(), meta::relational::extension::relationalExtensions()); - let personObjectRef = generateObjectReferences('vX_X_X', 'meta::pure::mapping::modelToModel::test::shared::relationalMapping', 'meta_pure_mapping_modelToModel_test_shared_src__Person', 'meta::relational::tests::testRuntime__Runtime_1_', pair('fullname', 'Peter Smith')->newMap(), meta::relational::extension::relationalExtensions()); - let addressObjectRef = generateObjectReferences('vX_X_X', 'meta::pure::mapping::modelToModel::test::shared::relationalMapping', 'meta_pure_mapping_modelToModel_test_shared_dest_Address','meta::relational::tests::testRuntime__Runtime_1_', pair('id', 1)->newMap(), meta::relational::extension::relationalExtensions()); - + + let firmObjectRef = generateObjectReferences('vX_X_X', 'meta::pure::mapping::modelToModel::test::shared::relationalMapping', 'meta_pure_mapping_modelToModel_test_shared_src__Firm', 'meta::external::store::relational::tests::testRuntime__Runtime_1_', pair('name', 'C')->newMap(), meta::relational::extension::relationalExtensions()); + let personObjectRef = generateObjectReferences('vX_X_X', 'meta::pure::mapping::modelToModel::test::shared::relationalMapping', 'meta_pure_mapping_modelToModel_test_shared_src__Person', 'meta::external::store::relational::tests::testRuntime__Runtime_1_', pair('fullname', 'Peter Smith')->newMap(), meta::relational::extension::relationalExtensions()); + let addressObjectRef = generateObjectReferences('vX_X_X', 'meta::pure::mapping::modelToModel::test::shared::relationalMapping', 'meta_pure_mapping_modelToModel_test_shared_dest_Address','meta::external::store::relational::tests::testRuntime__Runtime_1_', pair('id', 1)->newMap(), meta::relational::extension::relationalExtensions()); + let query = {| _Firm.all()->filter(f | $f->objectReferenceIn($firmObjectRef) || $f.employees->exists(p | $p->objectReferenceIn($personObjectRef) || $p.addresses->exists(a| $a->objectReferenceIn($addressObjectRef)))) ->graphFetch($tree)->serialize($tree)}; - + let mapping = meta::pure::mapping::modelToModel::test::shared::relationalMapping; - let runtime = meta::relational::tests::testRuntime(); - + let runtime = meta::external::store::relational::tests::testRuntime(); + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()); assertJsonStringsEqual( @@ -100,19 +102,19 @@ function <newMap(), meta::relational::extension::relationalExtensions()); - let personObjectRef = generateObjectReferences('vX_X_X', 'meta::relational::tests::mapping::embedded::model::mapping::testMappingEmbedded', 'meta_relational_tests_model_simple_Person', 'meta::relational::tests::testRuntime__Runtime_1_', [pair('PERSON_ID', 1), pair('FIRM_ID', 1)]->newMap(), meta::relational::extension::relationalExtensions()); - + let firmObjectRef = generateObjectReferences('vX_X_X', 'meta::relational::tests::mapping::embedded::model::mapping::testMappingEmbedded', 'meta_relational_tests_model_simple_Person', 'meta::external::store::relational::tests::testRuntime__Runtime_1_', [pair('PERSON_ID', 5), pair('FIRM_ID', 2)]->newMap(), meta::relational::extension::relationalExtensions()); + let personObjectRef = generateObjectReferences('vX_X_X', 'meta::relational::tests::mapping::embedded::model::mapping::testMappingEmbedded', 'meta_relational_tests_model_simple_Person', 'meta::external::store::relational::tests::testRuntime__Runtime_1_', [pair('PERSON_ID', 1), pair('FIRM_ID', 1)]->newMap(), meta::relational::extension::relationalExtensions()); + let query = {|meta::relational::tests::model::simple::Person.all() ->filter(p | $p->objectReferenceIn($personObjectRef) || $p.firm->toOne()->objectReferenceIn($firmObjectRef)) ->graphFetch($tree)->serialize($tree)}; - + let mapping = meta::relational::tests::mapping::embedded::model::mapping::testMappingEmbedded; - let runtime = meta::relational::tests::testRuntime(); - + let runtime = meta::external::store::relational::tests::testRuntime(); + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()); - + assertJsonStringsEqual( '[{"firstName":"Peter","firm":{"legalName":"Firm X"}},{"firstName":"Fabrice","firm":{"legalName":"Firm A"}}]', $result.values @@ -130,16 +132,16 @@ function <newMap(), meta::relational::extension::relationalExtensions()), - generateObjectReferences('vX_X_X', 'meta::relational::tests::milestoning::milestoningmap', 'meta_relational_tests_milestoning_Product', 'meta::relational::tests::testRuntime__Runtime_1_', [pair('name', 'ProductName3'), pair('id', 3)]->newMap(), meta::relational::extension::relationalExtensions())]; - + let productObjectRef = [generateObjectReferences('vX_X_X', 'meta::relational::tests::milestoning::milestoningmap', 'meta_relational_tests_milestoning_Product', 'meta::external::store::relational::tests::testRuntime__Runtime_1_', [pair('name', 'ProductName2'), pair('id', 2)]->newMap(), meta::relational::extension::relationalExtensions()), + generateObjectReferences('vX_X_X', 'meta::relational::tests::milestoning::milestoningmap', 'meta_relational_tests_milestoning_Product', 'meta::external::store::relational::tests::testRuntime__Runtime_1_', [pair('name', 'ProductName3'), pair('id', 3)]->newMap(), meta::relational::extension::relationalExtensions())]; + let query = {| meta::relational::tests::milestoning::Product.all(%2015-10-16)->filter(p | $p->objectReferenceIn($productObjectRef))->graphFetch($sourceGraph)->serialize($sourceGraph)}; - + let mapping = meta::relational::tests::milestoning::milestoningmap; - let runtime = meta::relational::tests::testRuntime(); - + let runtime = meta::external::store::relational::tests::testRuntime(); + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()); - + assertJsonStringsEqual( '[{"name":"ProductName2","classificationTypeStr()":"STOCK","id":2,"type":"STOCK"},{"name":"ProductName3","classificationTypeStr()":null,"id":3,"type":"OPTION"}]', $result.values @@ -148,9 +150,9 @@ function <> {serverVersion.start='v1_19_0'} meta::relational::tests::functions::objectReferenceIn::testObjectReferenceInWithMilestonedProperty(): Boolean[1] { - let orderObjectRef = generateObjectReferences('vX_X_X', 'meta::relational::tests::milestoning::milestoningmap', 'meta_relational_tests_milestoning_Order', 'meta::relational::tests::testRuntime__Runtime_1_', pair('id', 1)->newMap(), meta::relational::extension::relationalExtensions()); - let productObjectRef = generateObjectReferences('vX_X_X', 'meta::relational::tests::milestoning::milestoningmap', 'meta_relational_tests_milestoning_Product', 'meta::relational::tests::testRuntime__Runtime_1_', [pair('name', 'ProductName2'), pair('id', 2)]->newMap(), meta::relational::extension::relationalExtensions()); - + let orderObjectRef = generateObjectReferences('vX_X_X', 'meta::relational::tests::milestoning::milestoningmap', 'meta_relational_tests_milestoning_Order', 'meta::external::store::relational::tests::testRuntime__Runtime_1_', pair('id', 1)->newMap(), meta::relational::extension::relationalExtensions()); + let productObjectRef = generateObjectReferences('vX_X_X', 'meta::relational::tests::milestoning::milestoningmap', 'meta_relational_tests_milestoning_Product', 'meta::external::store::relational::tests::testRuntime__Runtime_1_', [pair('name', 'ProductName2'), pair('id', 2)]->newMap(), meta::relational::extension::relationalExtensions()); + let sourceGraph = #{ meta::relational::tests::milestoning::Order { id, @@ -161,16 +163,16 @@ function <filter(o | $o->objectReferenceIn($orderObjectRef) || $o.product(%2015-10-16)->exists(p | $p->objectReferenceIn($productObjectRef))) ->graphFetch($sourceGraph) ->serialize($sourceGraph); }; - + let mapping = meta::relational::tests::milestoning::milestoningmap; - let runtime = meta::relational::tests::testRuntime(); - + let runtime = meta::external::store::relational::tests::testRuntime(); + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()); assertJsonStringsEqual( @@ -180,10 +182,10 @@ function <> {serverVersion.start='v1_19_0'} meta::relational::tests::functions::objectReferenceIn::testObjectReferenceInWithEmptyLists(): Boolean[1] -{ - let orderObjectRef = []; +{ + let orderObjectRef = []; let productObjectRef = []; - let classificationObjectRef = generateObjectReferences('vX_X_X', 'meta::relational::tests::milestoning::milestoningmap', 'meta_relational_tests_milestoning_ProductClassification','meta::relational::tests::testRuntime__Runtime_1_', pair('type', 'STOCK')->newMap(), meta::relational::extension::relationalExtensions()); + let classificationObjectRef = generateObjectReferences('vX_X_X', 'meta::relational::tests::milestoning::milestoningmap', 'meta_relational_tests_milestoning_ProductClassification','meta::external::store::relational::tests::testRuntime__Runtime_1_', pair('type', 'STOCK')->newMap(), meta::relational::extension::relationalExtensions()); let sourceGraph = #{ meta::relational::tests::milestoning::Order { @@ -228,17 +230,17 @@ function <filter(o | $o->objectReferenceIn($orderObjectRef) || $o.product(%2015-10-16)->exists(p | $p->objectReferenceIn($productObjectRef) || $p.classification->objectReferenceIn($classificationObjectRef))) ->graphFetch($sourceGraph)->serialize($serializeGraph); }; - + let mapping = meta::relational::tests::milestoning::milestoningmap; - let runtime = meta::relational::tests::testRuntime(); - + let runtime = meta::external::store::relational::tests::testRuntime(); + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()); - + assertJsonStringsEqual( '{"id":2,"orderDate":"2015-08-26T00:00:00.000000000","product(2015-10-16)":[{"businessDate":"2015-10-16","inlinedCreatedBy":null,"stockProductName":"ProductName2","name":"ProductName2","classificationType":"STOCK","classification(2015-10-16)":{"businessDate":"2015-10-16","description":"STOCK DESC-V3","exchangeName":"LNSE","type":"STOCK"},"id":2,"isBrexitClassificationTypeExchange":null,"type":"STOCK","inlinedExchangeName":null}]}', $result.values @@ -246,10 +248,10 @@ function <> {serverVersion.start='v1_19_0'} meta::relational::tests::functions::objectReferenceIn::testObjectReferenceInWithBiTemporalMilestoning(): Boolean[1] -{ +{ let processingDate = %2017-06-10; let businessDate = %2017-06-11; - let productObjectRef = generateObjectReferences('vX_X_X', 'meta::relational::tests::milestoning::milestoningmap', 'meta_relational_tests_milestoning_BiTemporalProduct','meta::relational::tests::testRuntime__Runtime_1_', pair('id', 1)->newMap(), meta::relational::extension::relationalExtensions()); + let productObjectRef = generateObjectReferences('vX_X_X', 'meta::relational::tests::milestoning::milestoningmap', 'meta_relational_tests_milestoning_BiTemporalProduct','meta::external::store::relational::tests::testRuntime__Runtime_1_', pair('id', 1)->newMap(), meta::relational::extension::relationalExtensions()); let classificationObjectRef = []; let sourceGraph = #{ @@ -261,19 +263,19 @@ function <filter(p | $p->objectReferenceIn($productObjectRef) || + ->filter(p | $p->objectReferenceIn($productObjectRef) || ($p.biTemporalClassification->isNotEmpty() && $p.biTemporalClassification->toOne()->objectReferenceIn($classificationObjectRef))) ->graphFetch($sourceGraph) ->serialize($sourceGraph); }; - + let mapping = meta::relational::tests::milestoning::milestoningmap; - let runtime = meta::relational::tests::testRuntime(); - + let runtime = meta::external::store::relational::tests::testRuntime(); + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()); - + assertJsonStringsEqual( '{"businessDate":"2017-06-11","biTemporalClassification(2017-06-10, 2017-06-11)":null,"processingDate":"2017-06-10","id":1}', $result.values @@ -291,26 +293,26 @@ function <newMap(), meta::relational::extension::relationalExtensions()); - let personObjectRef = generateObjectReferences('vX_X_X', 'meta::pure::mapping::modelToModel::test::shared::relationalMapping', 'meta_pure_mapping_modelToModel_test_shared_src__Person', 'meta::relational::tests::testRuntime__Runtime_1_', pair('fullname', 'Peter Smith')->newMap(), meta::relational::extension::relationalExtensions()); - let addressObjectRef = generateObjectReferences('vX_X_X', 'meta::pure::mapping::modelToModel::test::shared::relationalMapping', 'meta_pure_mapping_modelToModel_test_shared_dest_Address','meta::relational::tests::testRuntime__Runtime_1_', pair('id', 1)->newMap(), meta::relational::extension::relationalExtensions()); - + + let firmObjectRef = generateObjectReferences('vX_X_X', 'meta::pure::mapping::modelToModel::test::shared::relationalMapping', 'meta_pure_mapping_modelToModel_test_shared_src__Firm', 'meta::external::store::relational::tests::testRuntime__Runtime_1_', pair('name', 'C')->newMap(), meta::relational::extension::relationalExtensions()); + let personObjectRef = generateObjectReferences('vX_X_X', 'meta::pure::mapping::modelToModel::test::shared::relationalMapping', 'meta_pure_mapping_modelToModel_test_shared_src__Person', 'meta::external::store::relational::tests::testRuntime__Runtime_1_', pair('fullname', 'Peter Smith')->newMap(), meta::relational::extension::relationalExtensions()); + let addressObjectRef = generateObjectReferences('vX_X_X', 'meta::pure::mapping::modelToModel::test::shared::relationalMapping', 'meta_pure_mapping_modelToModel_test_shared_dest_Address','meta::external::store::relational::tests::testRuntime__Runtime_1_', pair('id', 1)->newMap(), meta::relational::extension::relationalExtensions()); + let query = {| _Firm.all()->filter(f | $f->objectReferenceIn($firmObjectRef) || $f.employees->exists(p | $p->objectReferenceIn($personObjectRef) || $p.addresses->exists(a| $a->objectReferenceIn($addressObjectRef)))) ->graphFetch($tree)->serialize($tree, $config)}; - + let mapping = meta::pure::mapping::modelToModel::test::shared::relationalMapping; - let runtime = meta::relational::tests::testRuntime(); - + let runtime = meta::external::store::relational::tests::testRuntime(); + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()); - + assertJsonStringsEqual( - '[{"objectReference":"ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA2NjptZXRhOjpwdXJlOjptYXBwaW5nOjptb2RlbFRvTW9kZWw6OnRlc3Q6OnNoYXJlZDo6cmVsYXRpb25hbE1hcHBpbmc6MDAwMDAwMDA1MjptZXRhX3B1cmVfbWFwcGluZ19tb2RlbFRvTW9kZWxfdGVzdF9zaGFyZWRfc3JjX19GaXJtOjAwMDAwMDAwNTI6bWV0YV9wdXJlX21hcHBpbmdfbW9kZWxUb01vZGVsX3Rlc3Rfc2hhcmVkX3NyY19fRmlybTowMDAwMDAwMjg4OnsiX3R5cGUiOiJSZWxhdGlvbmFsRGF0YWJhc2VDb25uZWN0aW9uIiwiYXV0aGVudGljYXRpb25TdHJhdGVneSI6eyJfdHlwZSI6ImgyRGVmYXVsdCJ9LCJkYXRhc291cmNlU3BlY2lmaWNhdGlvbiI6eyJfdHlwZSI6ImgyTG9jYWwifSwiZWxlbWVudCI6Im1ldGE6OnB1cmU6Om1hcHBpbmc6Om1vZGVsVG9Nb2RlbDo6dGVzdDo6c2hhcmVkOjpyZWxhdGlvbmFsREIiLCJwb3N0UHJvY2Vzc29yV2l0aFBhcmFtZXRlciI6W10sInBvc3RQcm9jZXNzb3JzIjpbXSwidGltZVpvbmUiOiJHTVQiLCJ0eXBlIjoiSDIifTowMDAwMDAwMDEzOnsicGskXzAiOiJBIn0","value":{"name":"A","employees":[{"addresses":[{"street":"31 street"}],"fullName":"A. Only One"},{"addresses":[{"street":"32 street"}],"fullName":"Peter Smith"}]}},{"objectReference":"ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA2NjptZXRhOjpwdXJlOjptYXBwaW5nOjptb2RlbFRvTW9kZWw6OnRlc3Q6OnNoYXJlZDo6cmVsYXRpb25hbE1hcHBpbmc6MDAwMDAwMDA1MjptZXRhX3B1cmVfbWFwcGluZ19tb2RlbFRvTW9kZWxfdGVzdF9zaGFyZWRfc3JjX19GaXJtOjAwMDAwMDAwNTI6bWV0YV9wdXJlX21hcHBpbmdfbW9kZWxUb01vZGVsX3Rlc3Rfc2hhcmVkX3NyY19fRmlybTowMDAwMDAwMjg4OnsiX3R5cGUiOiJSZWxhdGlvbmFsRGF0YWJhc2VDb25uZWN0aW9uIiwiYXV0aGVudGljYXRpb25TdHJhdGVneSI6eyJfdHlwZSI6ImgyRGVmYXVsdCJ9LCJkYXRhc291cmNlU3BlY2lmaWNhdGlvbiI6eyJfdHlwZSI6ImgyTG9jYWwifSwiZWxlbWVudCI6Im1ldGE6OnB1cmU6Om1hcHBpbmc6Om1vZGVsVG9Nb2RlbDo6dGVzdDo6c2hhcmVkOjpyZWxhdGlvbmFsREIiLCJwb3N0UHJvY2Vzc29yV2l0aFBhcmFtZXRlciI6W10sInBvc3RQcm9jZXNzb3JzIjpbXSwidGltZVpvbmUiOiJHTVQiLCJ0eXBlIjoiSDIifTowMDAwMDAwMDEzOnsicGskXzAiOiJCIn0","value":{"name":"B","employees":[{"addresses":[{"street":"30 street"}],"fullName":"B. Only One"}]}},{"objectReference":"ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA2NjptZXRhOjpwdXJlOjptYXBwaW5nOjptb2RlbFRvTW9kZWw6OnRlc3Q6OnNoYXJlZDo6cmVsYXRpb25hbE1hcHBpbmc6MDAwMDAwMDA1MjptZXRhX3B1cmVfbWFwcGluZ19tb2RlbFRvTW9kZWxfdGVzdF9zaGFyZWRfc3JjX19GaXJtOjAwMDAwMDAwNTI6bWV0YV9wdXJlX21hcHBpbmdfbW9kZWxUb01vZGVsX3Rlc3Rfc2hhcmVkX3NyY19fRmlybTowMDAwMDAwMjg4OnsiX3R5cGUiOiJSZWxhdGlvbmFsRGF0YWJhc2VDb25uZWN0aW9uIiwiYXV0aGVudGljYXRpb25TdHJhdGVneSI6eyJfdHlwZSI6ImgyRGVmYXVsdCJ9LCJkYXRhc291cmNlU3BlY2lmaWNhdGlvbiI6eyJfdHlwZSI6ImgyTG9jYWwifSwiZWxlbWVudCI6Im1ldGE6OnB1cmU6Om1hcHBpbmc6Om1vZGVsVG9Nb2RlbDo6dGVzdDo6c2hhcmVkOjpyZWxhdGlvbmFsREIiLCJwb3N0UHJvY2Vzc29yV2l0aFBhcmFtZXRlciI6W10sInBvc3RQcm9jZXNzb3JzIjpbXSwidGltZVpvbmUiOiJHTVQiLCJ0eXBlIjoiSDIifTowMDAwMDAwMDEzOnsicGskXzAiOiJDIn0","value":{"name":"C","employees":[]}}]"', + '[{"objectReference":"ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA2NjptZXRhOjpwdXJlOjptYXBwaW5nOjptb2RlbFRvTW9kZWw6OnRlc3Q6OnNoYXJlZDo6cmVsYXRpb25hbE1hcHBpbmc6MDAwMDAwMDA1MjptZXRhX3B1cmVfbWFwcGluZ19tb2RlbFRvTW9kZWxfdGVzdF9zaGFyZWRfc3JjX19GaXJtOjAwMDAwMDAwNTI6bWV0YV9wdXJlX21hcHBpbmdfbW9kZWxUb01vZGVsX3Rlc3Rfc2hhcmVkX3NyY19fRmlybTowMDAwMDAwMjI3OnsiX3R5cGUiOiJSZWxhdGlvbmFsRGF0YWJhc2VDb25uZWN0aW9uIiwiYXV0aGVudGljYXRpb25TdHJhdGVneSI6eyJfdHlwZSI6ImgyRGVmYXVsdCJ9LCJkYXRhc291cmNlU3BlY2lmaWNhdGlvbiI6eyJfdHlwZSI6ImgyTG9jYWwifSwiZWxlbWVudCI6IiIsInBvc3RQcm9jZXNzb3JXaXRoUGFyYW1ldGVyIjpbXSwicG9zdFByb2Nlc3NvcnMiOltdLCJ0aW1lWm9uZSI6IkdNVCIsInR5cGUiOiJIMiJ9OjAwMDAwMDAwMTM6eyJwayRfMCI6IkEifQ","value":{"name":"A","employees":[{"addresses":[{"street":"31 street"}],"fullName":"A. Only One"},{"addresses":[{"street":"32 street"}],"fullName":"Peter Smith"}]}},{"objectReference":"ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA2NjptZXRhOjpwdXJlOjptYXBwaW5nOjptb2RlbFRvTW9kZWw6OnRlc3Q6OnNoYXJlZDo6cmVsYXRpb25hbE1hcHBpbmc6MDAwMDAwMDA1MjptZXRhX3B1cmVfbWFwcGluZ19tb2RlbFRvTW9kZWxfdGVzdF9zaGFyZWRfc3JjX19GaXJtOjAwMDAwMDAwNTI6bWV0YV9wdXJlX21hcHBpbmdfbW9kZWxUb01vZGVsX3Rlc3Rfc2hhcmVkX3NyY19fRmlybTowMDAwMDAwMjI3OnsiX3R5cGUiOiJSZWxhdGlvbmFsRGF0YWJhc2VDb25uZWN0aW9uIiwiYXV0aGVudGljYXRpb25TdHJhdGVneSI6eyJfdHlwZSI6ImgyRGVmYXVsdCJ9LCJkYXRhc291cmNlU3BlY2lmaWNhdGlvbiI6eyJfdHlwZSI6ImgyTG9jYWwifSwiZWxlbWVudCI6IiIsInBvc3RQcm9jZXNzb3JXaXRoUGFyYW1ldGVyIjpbXSwicG9zdFByb2Nlc3NvcnMiOltdLCJ0aW1lWm9uZSI6IkdNVCIsInR5cGUiOiJIMiJ9OjAwMDAwMDAwMTM6eyJwayRfMCI6IkIifQ","value":{"name":"B","employees":[{"addresses":[{"street":"30 street"}],"fullName":"B. Only One"}]}},{"objectReference":"ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA2NjptZXRhOjpwdXJlOjptYXBwaW5nOjptb2RlbFRvTW9kZWw6OnRlc3Q6OnNoYXJlZDo6cmVsYXRpb25hbE1hcHBpbmc6MDAwMDAwMDA1MjptZXRhX3B1cmVfbWFwcGluZ19tb2RlbFRvTW9kZWxfdGVzdF9zaGFyZWRfc3JjX19GaXJtOjAwMDAwMDAwNTI6bWV0YV9wdXJlX21hcHBpbmdfbW9kZWxUb01vZGVsX3Rlc3Rfc2hhcmVkX3NyY19fRmlybTowMDAwMDAwMjI3OnsiX3R5cGUiOiJSZWxhdGlvbmFsRGF0YWJhc2VDb25uZWN0aW9uIiwiYXV0aGVudGljYXRpb25TdHJhdGVneSI6eyJfdHlwZSI6ImgyRGVmYXVsdCJ9LCJkYXRhc291cmNlU3BlY2lmaWNhdGlvbiI6eyJfdHlwZSI6ImgyTG9jYWwifSwiZWxlbWVudCI6IiIsInBvc3RQcm9jZXNzb3JXaXRoUGFyYW1ldGVyIjpbXSwicG9zdFByb2Nlc3NvcnMiOltdLCJ0aW1lWm9uZSI6IkdNVCIsInR5cGUiOiJIMiJ9OjAwMDAwMDAwMTM6eyJwayRfMCI6IkMifQ","value":{"name":"C","employees":[]}}]', $result.values ); - + let objReferences = $result.values->parseJSON()->cast(@JSONArray).values->map(je | meta::alloy::objectReference::decodeObjectReferencesAndGetPkMap('vX_X_X', $je->cast(@JSONObject)->getValue('objectReference')->cast(@JSONString).value->toOne(), meta::relational::extension::relationalExtensions()))->joinStrings('[',',',']'); assertJsonStringsEqual('[{"pathToMapping":"meta::pure::mapping::modelToModel::test::shared::relationalMapping","pkMap":{"name":"A"},"setId":"meta_pure_mapping_modelToModel_test_shared_src__Firm"},{"pathToMapping":"meta::pure::mapping::modelToModel::test::shared::relationalMapping","pkMap":{"name":"B"},"setId":"meta_pure_mapping_modelToModel_test_shared_src__Firm"},{"pathToMapping":"meta::pure::mapping::modelToModel::test::shared::relationalMapping","pkMap":{"name":"C"},"setId":"meta_pure_mapping_modelToModel_test_shared_src__Firm"}]', $objReferences); @@ -326,19 +328,19 @@ function <newMap(), meta::relational::extension::relationalExtensions()); - let personObjectRef = [generateObjectReferences('vX_X_X', 'meta::pure::mapping::modelToModel::test::shared::relationalMapping', 'meta_pure_mapping_modelToModel_test_shared_src__Person', 'meta::relational::tests::testRuntime__Runtime_1_', pair('fullname', 'Peter Smith')->newMap(), meta::relational::extension::relationalExtensions()), - generateObjectReferences('vX_X_X', 'meta::pure::mapping::modelToModel::test::shared::relationalMapping', 'meta_pure_mapping_modelToModel_test_shared_src__Person', 'meta::relational::tests::testRuntime__Runtime_1_', pair('fullname', 'Peter Smith')->newMap(), meta::relational::extension::relationalExtensions())]; - + + let firmObjectRef = generateObjectReferences('vX_X_X', 'meta::pure::mapping::modelToModel::test::shared::relationalMapping', 'meta_pure_mapping_modelToModel_test_shared_src__Firm', 'meta::external::store::relational::tests::testRuntime__Runtime_1_', pair('name', 'C')->newMap(), meta::relational::extension::relationalExtensions()); + let personObjectRef = [generateObjectReferences('vX_X_X', 'meta::pure::mapping::modelToModel::test::shared::relationalMapping', 'meta_pure_mapping_modelToModel_test_shared_src__Person', 'meta::external::store::relational::tests::testRuntime__Runtime_1_', pair('fullname', 'Peter Smith')->newMap(), meta::relational::extension::relationalExtensions()), + generateObjectReferences('vX_X_X', 'meta::pure::mapping::modelToModel::test::shared::relationalMapping', 'meta_pure_mapping_modelToModel_test_shared_src__Person', 'meta::external::store::relational::tests::testRuntime__Runtime_1_', pair('fullname', 'Peter Smith')->newMap(), meta::relational::extension::relationalExtensions())]; + let query = {| meta::relational::tests::model::simple::Firm.all()->filter(f | $f->objectReferenceIn($firmObjectRef) || $f.employees->exists(p | $p->objectReferenceIn($personObjectRef))) ->graphFetch($tree)->serialize($tree)}; - + let mapping = meta::relational::tests::mapping::union::unionMapping; - let runtime = meta::relational::tests::testRuntime(); - + let runtime = meta::external::store::relational::tests::testRuntime(); + let executionPlan = executionPlan($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()); $executionPlan->planToString(meta::relational::extension::relationalExtensions())->println(); true; @@ -355,18 +357,18 @@ function meta::relational::tests::functions::objectReferenceIn::testObjectRefere addresses { street } } }}#; - + let query = {firmObjectRef:String[*], personObjectRef:String[*], addressObjectRef:String[*]| _Firm.all()->filter(f | $f->objectReferenceIn($firmObjectRef) || $f.employees->exists(p | $p->objectReferenceIn($personObjectRef) || $p.addresses->exists(a| $a->objectReferenceIn($addressObjectRef)))) ->graphFetch($tree)->serialize($tree, $config)}; - + let mapping = meta::pure::mapping::modelToModel::test::shared::relationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); } function meta::relational::tests::functions::objectReferenceIn::testObjectReferenceInChainedWithObjectRefAsParams():Any[1] -{ +{ let query = {firmObjectRef:String[*], personObjectRef:String[*], addressObjectRef:String[*]| let targetGraph = #{meta::pure::mapping::modelToModel::test::shared::dest::Firm{legalName, employees{ @@ -378,7 +380,7 @@ function meta::relational::tests::functions::objectReferenceIn::testObjectRefere let sourceGraph = meta::pure::graphFetch::calculateSourceTree($targetGraph, simpleModelMapping, relationalExtensions()); let sourceFirms = _Firm.all()->filter(f | $f->objectReferenceIn($firmObjectRef) || $f.employees->exists(p | $p->objectReferenceIn($personObjectRef) || $p.addresses->exists(a| $a->objectReferenceIn($addressObjectRef)))) - ->graphFetch($sourceGraph)->from(relationalMapping, ^Runtime(connections = getConnection())); + ->graphFetch($sourceGraph)->from(relationalMapping, ^Runtime(connectionStores= getConnection())); Firm.all()->graphFetch($targetGraph)->serialize($targetGraph)->from(simpleModelMapping, getRuntimeWithModelConnection(_Firm, $sourceFirms)); }; } @@ -388,6 +390,7 @@ function meta::relational::tests::functions::objectReferenceIn::testObjectRefere import meta::pure::mapping::modelToModel::test::shared::dest::*; import meta::relational::tests::functions::objectReferenceIn::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::mapping::modelToModel::test::shared::*; import meta::relational::tests::milestoning::*; import meta::relational::tests::functions::objectReferenceIn::*; @@ -403,17 +406,17 @@ Mapping meta::relational::tests::functions::objectReferenceIn::simpleModelMappin lastName : $src.fullName ->substring($src.fullName->indexOf(' ')+1, $src.fullName->length()), addresses : $src.addresses } - + Address : Pure { ~src Address street : $src.street - } - + } + Firm : Pure { ~src _Firm legalName : $src.name, employees : $src.employees - } + } ) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testPaginated.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testPaginated.pure index eb5351b3093..0db9dffdd21 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testPaginated.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testPaginated.pure @@ -16,10 +16,12 @@ import meta::relational::tests::query::paginate::helper::*; import meta::json::*; import meta::pure::mapping::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::pure::graphFetch::execution::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::relational::functions::sqlstring::*; @@ -34,14 +36,15 @@ function meta::relational::tests::query::paginate::helper::runtime(): Runtime[1] 'insert into PersonTable (id, firstName, lastName, age, addressId, firmId, managerId) values (5, \'Fabrice\', \'Roberts\',34, 5,2,null);' + 'insert into PersonTable (id, firstName, lastName, age, addressId, firmId, managerId) values (6, \'Oliver\', \'Hill\',32, 6,3,null);' + 'insert into PersonTable (id, firstName, lastName, age, addressId, firmId, managerId) values (7, \'David\', \'Harris\',35, 7,4,null);'; - ^Runtime(connections=[ - ^meta::pure::alloy::connections::RelationalDatabaseConnection - ( + ^Runtime(connectionStores=[ + ^ConnectionStore( element = meta::relational::tests::db, + connection=^meta::external::store::relational::runtime::RelationalDatabaseConnection + ( type = meta::relational::runtime::DatabaseType.H2, datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification(testDataSetupSqls=[$sqls]), authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::TestDatabaseAuthenticationStrategy() - ) + )) ]); } @@ -83,7 +86,7 @@ function <> meta::relational::tests::query::paginate: |Person.all()->from(simpleRelationalMapping, runtime())->sortBy(#/Person/firstName!fn#)->paginated(2,4)->graphFetch(#{Person{firstName}}#)->serialize(#{Person{firstName}}#), 3 ); - + runTest( |Person.all()->from(simpleRelationalMapping, runtime())->sortBy(#/Person/firstName!fn#)->paginated(1,4), 'select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName", "root".FIRSTNAME as "o_fn" from personTable as "root" order by "root".FIRSTNAME offset 0 rows fetch next 4 rows only', @@ -104,7 +107,7 @@ function <> meta::relational::tests::query::paginate: } function <> meta::relational::tests::query::paginate::testPaginatedByVendor():Boolean[1] -{ +{ // First type of function - simple query let f1 = {|Person.all()->sortBy(#/Person/firstName!fn#)->paginated(1,4);}; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testSimple.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testSimple.pure index 8a8453adbde..5ef47703fc0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testSimple.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testSimple.pure @@ -13,15 +13,17 @@ // limitations under the License. import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::query::setUp():Boolean[1] { createTablesAndFillDb(); - + let connection = testRuntime().connectionByElement(db)->cast(@TestDatabaseConnection); //firm with no people executeInDb('insert into FirmTable (id, legalName, addressId) values (8, \'No Employees\', 11);', $connection); @@ -35,7 +37,7 @@ function <> meta::relational::tests::query::setUp():Boolean[ executeInDb('insert into PersonTable (id, firstName, lastName, age, addressId, firmId, managerId) values (10, \'New\', \'York\',35, 7,1,null);', $connection); executeInDb('insert into PersonTable (id, firstName, lastName, age, addressId, firmId, managerId) values (11, \'Elena\', \'Firm B\',35, 7,3,null);', $connection); executeInDb('insert into PersonTable (id, firstName, lastName, age, addressId, firmId, managerId) values (12, \'Don\', \'New York\',35, 7,1,null);', $connection); - + true; } @@ -73,4 +75,4 @@ function meta::relational::tests::query::simple::getTrades( columnList:String[*] col(x|$x.product.name, 'firmName'), col(x|$x.settlementDateTime, 'time') ], $columnList ); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testSliceTakeLimitDrop.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testSliceTakeLimitDrop.pure index 348536a1751..5fc37154317 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testSliceTakeLimitDrop.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testSliceTakeLimitDrop.pure @@ -15,6 +15,7 @@ import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::relational::functions::sqlstring::*; @@ -38,7 +39,7 @@ function <> meta::relational::tests::query::slice::testSlice():Boolea } function <> meta::relational::tests::query::take::testSliceByVendor():Boolean[1] -{ +{ let f1 = {|Person.all()->slice(3, 5);}; let s = toSQLString($f1, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.H2, meta::relational::extension::relationalExtensions()); @@ -74,7 +75,7 @@ function <> meta::relational::tests::query::take::testLimitByVendor() } function <> meta::relational::tests::query::take::testTakeByVendor():Boolean[1] -{ +{ let s = toSQLString(|Person.all()->take(10);, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.H2, meta::relational::extension::relationalExtensions()); assertEquals('select top 10 "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root"', $s); } @@ -88,4 +89,4 @@ function <> meta::relational::tests::query::drop::testSimpleDrop():Bo let result2 = execute(|Person.all()->drop(1), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" offset 1 rows', $result2->sqlRemoveFormatting()); assertSize($result2.values, 11 ); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testSort.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testSort.pure index 672ba1cb593..93924893267 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testSort.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/testSort.pure @@ -15,6 +15,7 @@ import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; function <> meta::relational::tests::query::sort::testSortSimple():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/domain/domainManagementTests.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/domain/domainManagementTests.pure index 716895a531c..eee7f26cf1a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/domain/domainManagementTests.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/domain/domainManagementTests.pure @@ -178,11 +178,14 @@ function <> meta::relational::graphFetch::domain::tests::checkPl ')\n', $plans->at(1)->meta::pure::executionPlan::toString::planToString(meta::relational::extension::relationalExtensions())); } -function meta::relational::graphFetch::domain::tests::testRuntime():meta::pure::runtime::Runtime[1] +function meta::relational::graphFetch::domain::tests::testRuntime():meta::core::runtime::Runtime[1] { - ^meta::pure::runtime::Runtime( - connections = ^meta::relational::runtime::TestDatabaseConnection( + ^meta::core::runtime::Runtime( + connectionStores = + ^meta::core::runtime::ConnectionStore( element = TestStore, + connection= + ^meta::external::store::relational::runtime::TestDatabaseConnection( type = meta::relational::runtime::DatabaseType.H2, timeZone = 'GMT', testDataSetupSqls = @@ -195,7 +198,7 @@ function meta::relational::graphFetch::domain::tests::testRuntime():meta::pure:: 'insert into Person (id, firm_id, first_name, last_name) values (1, 1, \'John\', \'Doe\');\n'+ 'insert into Person (id, firm_id, first_name, last_name) values (2, 1, \'Jane\', \'Smith\');\n'+ 'insert into Person (id, firm_id, first_name, last_name) values (3, 2, \'Mark\', \'Moe\');\n' - ) + )) ); } @@ -205,7 +208,7 @@ Database meta::relational::graphFetch::domain::tests::TestStore Table FirmTable ( id INT PRIMARY KEY, - legal_name VARCHAR(200) + legal_name VARCHAR(200) ) Table PersonTable diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/relationalGraphFetch.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/relationalGraphFetch.pure index 542f20bd99d..ca22dbd6ed4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/relationalGraphFetch.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/relationalGraphFetch.pure @@ -25,6 +25,7 @@ import meta::pure::router::clustering::*; import meta::pure::extension::*; import meta::relational::extension::*; import meta::pure::router::routing::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::functions::pureToSqlQuery::*; import meta::relational::functions::pureToSqlQuery::metamodel::*; @@ -39,6 +40,7 @@ import meta::relational::metamodel::join::*; import meta::relational::metamodel::operation::*; import meta::relational::metamodel::relation::*; import meta::relational::milestoning::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; @@ -189,7 +191,7 @@ function meta::relational::graphFetch::executionPlan::sqlsForTempTableLoadFromTe } function meta::relational::graphFetch::executionPlan::sqlsForTempTableLoadFromSubQuery(dbType: DatabaseType[1], temporaryTable: Table[1], selectSqlStatement: String[1]): String[*] -{ +{ let tempTableName = getTableName($dbType, $temporaryTable); let columns = $temporaryTable.columns->map(x|$x->cast(@Column).name); [['INSERT INTO ', $tempTableName, '(', $columns->joinStrings(',') ,') SELECT DISTINCT "', $columns->joinStrings('","'),'" FROM ( ',$selectSqlStatement,' );']->joinStrings('')]; @@ -205,7 +207,7 @@ function meta::relational::graphFetch::executionPlan::getTableName(dbType: Datab function meta::relational::graphFetch::executionPlan::sqlsForInsertIntoTableUsingResultSet(dbType: DatabaseType[1], temporaryTable: Table[1]):String[1] { - + let tempTableName = getTableName($dbType, $temporaryTable); 'INSERT INTO '+ $tempTableName + ' VALUES ' + stringToPlaceHolder('temp_table_rows_from_result_set'); @@ -368,8 +370,8 @@ function meta::relational::graphFetch::executionPlan::planRootGraphFetchExecutio let rootTree = $clusteredTree->byPassClusteringInfo()->cast(@RoutedRootGraphFetchTree); let setImpls = $rootTree.sets->cast(@RootRelationalInstanceSetImplementation); let store = $sq.store->cast(@Database); - let dbConnection = $runtime->connectionByElement($store)->toOne()->cast(@DatabaseConnection)->map(x | ^$x(element = $store)); - let oneRuntime = ^Runtime(connections = [$dbConnection]); + let dbConnection = $runtime->connectionByElement($store)->toOne()->cast(@DatabaseConnection); + let oneRuntime = ^Runtime(connectionStores = [^ConnectionStore(connection=$dbConnection, element=$store)]); let batchSize = if($fe.func == graphFetch_T_MANY__RootGraphFetchTree_1__Integer_1__T_MANY_ || $fe.func == meta::pure::graphFetch::execution::graphFetchChecked_T_MANY__RootGraphFetchTree_1__Integer_1__Checked_MANY_, | $fe->instanceValueAtParameter(2)->cast(@Integer), | []); @@ -393,7 +395,7 @@ function meta::relational::graphFetch::executionPlan::planRootGraphFetchExecutio let sqlNode = $postProcessedQuery->buildSQLExecutionNode($dbConnection, addEnumMapSupportFunctions($sq, $mapping), $extensions); let allExecNodes = $postProcessorResult.executionNodes->concatenate($sqlNode)->concatenate($postProcessorResult.postExecutionNodes); let wrappedNode = generateExecutionNodeForPostProcessedResult($sqlNode, $allExecNodes, $postProcessorResult, $extensions); - + let children = $rootTree->generateRelationalChildGraphNodes($rootTree->nodePathName(), $setImpls, $simplePrimitiveProperties, $orderedPaths, $store, $mapping, $oneRuntime, $sq.inScopeVars, $selectWithCursor.milestoningContext, $exeCtx, $extensions, $debug); let columns = $sqlNode.resultColumns->filter(x | $x.label->startsWith('"pk_'))->map(x | ^SQLResultColumn(label = $x.label->substring(1, $x.label->length() - 1), dataType = $x.dataType->toOne())); let dbType = $dbConnection.type; @@ -427,7 +429,7 @@ function meta::relational::graphFetch::executionPlan::planRootGraphFetchExecutio function <> meta::relational::graphFetch::executionPlan::planGraphFetchExecutionPrimitiveChild(currentTree: RoutedPropertyGraphFetchTree[1], parentTree: GraphFetchTree[1], parentPath: String[1], orderedPaths: String[*], parentSets: RelationalInstanceSetImplementation[*], store: Database[1], mapping: Mapping[1], runtime: Runtime[1], inScopeVars: Map>[1], mc: TemporalMilestoningContext[0..1], exeCtx : ExecutionContext[1], extensions:Extension[*], debug : DebugContext[1]): RelationalPrimitiveQueryGraphFetchExecutionNode[1] { print(if($debug.debug,|$debug.space+'>Generating relational store local child node for primitive property :\''+$currentTree.property.name->toOne()+'\'\n',|'')); - + let currentPath = $parentPath + '.' + $currentTree->nodePathName(); /* Assertions */ @@ -462,7 +464,7 @@ function <> meta::relational::graphFetch::executionPlan::planGra /* Create execution node */ - let dbConnection = $runtime.connections->toOne()->cast(@DatabaseConnection); + let dbConnection = $runtime.connectionStores.connection->toOne()->cast(@DatabaseConnection); let sqlNode = $postProcessedQuery->buildSQLExecutionNode($dbConnection, $extensions); let allExecNodes = $postProcessorResult.executionNodes->concatenate($sqlNode)->concatenate($postProcessorResult.postExecutionNodes); let wrappedNode = generateExecutionNodeForPostProcessedResult($sqlNode, $allExecNodes, $postProcessorResult, $extensions); @@ -513,7 +515,7 @@ function <> meta::relational::graphFetch::executionPlan::planGra print(if($debug.debug,|$debug.space+' >Generated local store property query: '+$postProcessedQuery->meta::relational::functions::sqlQueryToString::processOperation(meta::relational::runtime::DatabaseType.H2, $extensions)+'\n',|'')); /* Create execution node */ - let dbConnection = $runtime.connections->toOne()->cast(@DatabaseConnection); + let dbConnection = $runtime.connectionStores.connection->toOne()->cast(@DatabaseConnection); let sqlNode = $postProcessedQuery->buildSQLExecutionNode($dbConnection, $extensions); let allExecNodes = $postProcessorResult.executionNodes->concatenate($sqlNode)->concatenate($postProcessorResult.postExecutionNodes); let wrappedNode = generateExecutionNodeForPostProcessedResult($sqlNode, $allExecNodes, $postProcessorResult, $extensions); @@ -576,7 +578,7 @@ function meta::relational::graphFetch::executionPlan::planCrossRootGraphFetchExe let sourceCls = $mapping->classMappingById($xStorePropertyMapping.sourceSetImplementationId)->toOne()->cast(@InstanceSetImplementation)->map(i | if($i.mappingClass->isNotEmpty(), | $i.mappingClass->toOne(), | $i.class)); let targetCls = $mapping->classMappingById($xStorePropertyMapping.targetSetImplementationId)->toOne()->cast(@InstanceSetImplementation)->map(i | if($i.mappingClass->isNotEmpty(), | $i.mappingClass->toOne(), | $i.class)); - + let sourcePropertyPathNodes = $propertyPathNodes->filter(ppn | $sourceCls->_subTypeOf($ppn->get(0).class)); let sourceFetchTree = $sourcePropertyPathNodes->meta::pure::lineage::scanProperties::propertyTree::buildPropertyTree()->propertyTreeToGraphFetchTree($sourceCls); let srcProperties = $sourceFetchTree.subTrees->cast(@PropertyGraphFetchTree)->map(st | @@ -610,9 +612,10 @@ function meta::relational::graphFetch::executionPlan::planCrossRootGraphFetchExe print(if($debug.debug,|$debug.space+' >Generate cross property query (with properties - '+$simplePrimitiveProperties->map(p|$p.name)->removeDuplicates()->joinStrings('[',', ',']')+'\n',|'')); let crossQuery = generateCrossPropertyQuery($rootTree, $parentIdx, $xStorePropertyMapping, $srcProperties, $mapping, $inScopeVars, $simplePrimitiveProperties, $mcForProperty, $debug->indent(2), $extensions); let dbConnectionPre = $runtime->connectionByElement($store)->cast(@DatabaseConnection) ; - - let dbConnection = if($clusteredTree.s.reprocessConnection->isEmpty(),|$dbConnectionPre,|$clusteredTree.s.reprocessConnection->toOne()->eval($dbConnectionPre))->cast(@DatabaseConnection) ; - let oneRuntime = ^Runtime(connections = $dbConnection); + let dbConnectionStorePre = $runtime.connectionStores->filter(connectionStore|$connectionStore.connection==$dbConnectionPre)->toOne(); + + let dbConnection = if($clusteredTree.s.reprocessConnection->isEmpty(),|$dbConnectionPre,|$clusteredTree.s.reprocessConnection->toOne()->eval($dbConnectionStorePre))->cast(@DatabaseConnection) ; + let oneRuntime = ^Runtime(connectionStores = ^$dbConnectionStorePre(connection=$dbConnection)); let postProcessorResult = $crossQuery->postProcessSQLQuery($store, [], $mapping, $oneRuntime, $exeCtx, $extensions); let postProcessedQuery = $postProcessorResult.query->cast(@SelectSQLQuery); print(if($debug.debug,|$debug.space+' >Generated cross property query: '+$postProcessedQuery->meta::relational::functions::sqlQueryToString::processOperation(meta::relational::runtime::DatabaseType.H2, $extensions)+'\n',|'')); @@ -629,7 +632,7 @@ function meta::relational::graphFetch::executionPlan::planCrossRootGraphFetchExe let dbConfig = $dbType->createDbConfig(); let tempTableName = tempTableName($currentIdx); let parentTempTableName = crossTempTableName($parentIdx); - + let tempTableStrategy = if(($hasChildren && useTempTableStrategy($dbType)), | let table = createTable($tempTableName,$columns,[],$dbConfig); let createTempTableNode = meta::relational::graphFetch::executionPlan::getCreateTempTableNode($dbType,$table,$dbConnection,$extensions); @@ -637,13 +640,13 @@ function meta::relational::graphFetch::executionPlan::planCrossRootGraphFetchExe let dropTempTableNode = meta::relational::graphFetch::executionPlan::getDropTempTableNode($dbType,$table,$dbConnection,$extensions); getTempTableStrategyForRootNode($dbType, $createTempTableNode, $loadTempTableNode, $dropTempTableNode);, | []); - + let parentTempTableColumns = $srcProperties->map(x | ^SQLResultColumn(label = $x.name->toOne(), dataType = $x->crossKeyRelationalType())); let parentTable = createTable($parentTempTableName,$parentTempTableColumns,[],$dbConfig); let parentCreateTempTableNode = meta::relational::graphFetch::executionPlan::getCreateTempTableNode($dbType,$parentTable,$dbConnection,$extensions); let parentLoadTempTableNode = meta::relational::graphFetch::executionPlan::getLoadTempTableNodeForRoot($dbType,$parentTable,$dbConnection,$extensions); let parentDropTempTableNode = meta::relational::graphFetch::executionPlan::getDropTempTableNode($dbType,$parentTable,$dbConnection,$extensions); - + ^RelationalCrossRootQueryTempTableGraphFetchExecutionNode ( parentTempTableStrategy = if(useTempTableStrategy($dbType),|getTempTableStrategyForRootNode($dbType, $parentCreateTempTableNode, $parentLoadTempTableNode, $parentDropTempTableNode),|[]), @@ -669,11 +672,11 @@ function <> meta::relational::graphFetch::executionPlan::assertC e: EmbeddedRelationalInstanceSetImplementation[1] | $e.setMappingOwner, r: RootRelationalInstanceSetImplementation[1] | $r ]); - + assert($r->resolvePrimaryKey()->isNotEmpty(), | 'Primary Key definition is must in graph fetch flow'); assert($r->meta::relational::functions::pureToSqlQuery::getGroupBy()->isEmpty(), | 'Store group by not allowed in graph fetch flow'); assert($r->meta::relational::functions::pureToSqlQuery::getDistinct() != true, | 'Store distinct not allowed in graph fetch flow'); - + $simplePrimitiveProperties->forAll({prop | assert($prop->meta::pure::milestoning::hasGeneratedMilestoningPropertyStereotype() || $setImpl->propertyMappingsByPropertyName($prop.name->toOne())->isNotEmpty(), | 'Property "' + $prop.name->toOne() + '" is not mapped in the set: "' + $setImpl.id + '"') @@ -709,7 +712,7 @@ function <> meta::relational::graphFetch::executionPlan::buildSQ function <> meta::relational::graphFetch::executionPlan::buildSQLExecutionNode(query: SelectSQLQuery[1], dbConnection: DatabaseConnection[1], enumMapSupportFunctions:String[*], extensions:Extension[*]):SQLExecutionNode[1] { let sql = $query->sqlQueryToString($dbConnection.type, $dbConnection.timeZone, $dbConnection.quoteIdentifiers, $extensions); - + ^SQLExecutionNode ( sqlComment = $query.comment, @@ -759,7 +762,7 @@ function <> meta::relational::graphFetch::executionPlan::generat let currentNode = ^RootJoinTreeNode(alias=^TableAlias(name = 'root', relationalElement = $mainTable)); let basePreFilter = ^SelectWithCursor(select = ^SelectSQLQuery(data = $currentNode), currentTreeNode = $currentNode, milestoningContext = $mc)->applyTypeFilter($srcSetImpl, '_gftm', $pureToSqlState, $debug, $extensions); let base = ^$basePreFilter(select = $basePreFilter.select->pushFilters($extensions)); - + let res = if ($isQualified, {| let newVars = newVarsForMilestoningContext($propTree, $inScopeVars); @@ -787,7 +790,7 @@ function meta::relational::graphFetch::executionPlan::generateNonPrimitiveProper let currentNode = ^RootJoinTreeNode(alias=^TableAlias(name = 'root', relationalElement = $mainTable)); let basePreFilter = ^SelectWithCursor(select = ^SelectSQLQuery(data = $currentNode), currentTreeNode = $currentNode, milestoningContext = $mc)->applyTypeFilter($srcSetImpl, '_gftm', $pureToSqlState, $debug, $extensions); let base = ^$basePreFilter(select = $basePreFilter.select->pushFilters($extensions)); - + let res = if ($isQualified, {| let newVars = newVarsForMilestoningContext($propTree, $inScopeVars); @@ -820,10 +823,10 @@ function meta::relational::graphFetch::executionPlan::generateNonPrimitiveProper e:EmbeddedRelationalInstanceSetImplementation[1] | $e.setMappingOwner, r:RootRelationalInstanceSetImplementation[1] | $r ]); - + // let targetWithFilter = $res->applyTypeFilter($targetMainSetImplementation, '_gftmp', $pureToSqlState, $debug); - let properties = $targetSetImplementation->dataTypePropertyMappings()->filter(x | $x.property->in($propertiesToFetch))->map({pm | + let properties = $targetSetImplementation->dataTypePropertyMappings()->filter(x | $x.property->in($propertiesToFetch))->map({pm | let newQuery = $pm->cast(@RelationalPropertyMapping).relationalOperationElement->processColumnsInRelationalOperationElements($pureToSqlState, $res->cast(@SelectWithCursor), '_gftmp', ^List(), false, $debug, $extensions); rebuildSelectWithCursor($pm.property.name->toOne(), [], $newQuery, true); }); @@ -837,7 +840,7 @@ function meta::relational::graphFetch::executionPlan::generateNonPrimitiveProper let pksAndProperties = $targetPks->concatenate($properties).select->mergeSQLQueryData('_gftmp', ^$pureToSqlState(shouldIsolate=true), $debug, $extensions); let newQueryMerged = $pksAndProperties->concatenate($res->cast(@SelectWithCursor).select)->mergeSQLQueryData('_gftmp', $pureToSqlState, $debug, $extensions); - let newQueryMergedWithMilestoneFilters = if($res.milestoningContext->isNotEmpty(), + let newQueryMergedWithMilestoneFilters = if($res.milestoningContext->isNotEmpty(), | let milestoningStrategy = $res.milestoningContext.currentMilestoningStrategy->toOne(); let tableFilter = $milestoningStrategy->getAllMilestonedTableFilter($newQueryMerged, $res.milestoningContext->toOne(), $pureToSqlState.inScopeVars, $extensions); let queryWithMilestoningFilters = $newQueryMerged->applyMilestoningFilters($tableFilter, getTableToTableIdentifyFunction(), true, $extensions)->cast(@SelectSQLQuery); @@ -947,7 +950,7 @@ function <> meta::relational::graphFetch::executionPlan::changeD let tempTableEl = ^VarSetPlaceHolder(varName = $var); let tempSelectSQL = ^SelectSQLQuery(data = ^RootJoinTreeNode(alias = ^TableAlias(name = 'root', relationalElement = $tempTableEl))); let tempAlias = ^TableAlias(name = 'driverTemp', relationalElement = $tempSelectSQL); - + let joinOperation = $primaryKeys->map({pk | ^DynaFunction ( @@ -1073,4 +1076,4 @@ function meta::pure::graphFetch::executionPlan::relationalGraphFetchExecutionNod $space + ' children = ' + $t.children->map(x | relationalGraphFetchExecutionNodeToString($x, $space + ' ', $extensions))->joinStrings('[\n'+ $space + ' ', '\n' + $space + ' ', '\n' + $space + ' ]\n') + $t.implementation->printImplementation('implementation', $space+' ', $extensions)+ $space + ')\n'; -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testCrossDatabaseGraphFetch.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testCrossDatabaseGraphFetch.pure index 05d8d548546..693cda19a8e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testCrossDatabaseGraphFetch.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testCrossDatabaseGraphFetch.pure @@ -98,15 +98,17 @@ Mapping meta::relational::graphFetch::tests::crossDatabase::CrossMappingWithRelO ###Pure import meta::pure::executionPlan::profiles::*; import meta::pure::graphFetch::execution::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::graphFetch::tests::crossDatabase::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; function <> meta::relational::graphFetch::tests::crossDatabase::setUpDBs():Any[*] { - let runtime1 = meta::relational::tests::testRuntime(EmployeeDB); - let connection1 = $runtime1.connections->toOne()->cast(@DatabaseConnection); + let runtime1 = meta::external::store::relational::tests::testRuntime(EmployeeDB); + let connection1 = $runtime1.connectionStores.connection->toOne()->cast(@DatabaseConnection); executeInDb('Drop table if exists employee;', $connection1); executeInDb('Create Table employee(name VARCHAR(100), id INT, ceoName VARCHAR(100));', $connection1); @@ -120,8 +122,8 @@ function <> meta::relational::graphFetch::tests::crossDataba executeInDb('Insert into ceo values (\'C2\', 2);', $connection1); - let runtime2 = meta::relational::tests::testRuntime(FirmDB); - let connection2 = $runtime2.connections->toOne()->cast(@DatabaseConnection); + let runtime2 = meta::external::store::relational::tests::testRuntime(FirmDB); + let connection2 = $runtime2.connectionStores.connection->toOne()->cast(@DatabaseConnection); executeInDb('Drop table if exists firm;', $connection2); executeInDb('Create Table firm(id INT, legalName VARCHAR(100), ceoIdentifier INT);', $connection2); @@ -142,20 +144,20 @@ function <> {serverVersion.start='v1_19_0'} meta::rel } } }#; - - - let runtime = ^Runtime(connections = meta::relational::tests::testRuntime(EmployeeDB)->concatenate(meta::relational::tests::testRuntime(FirmDB)).connections); - + + + let runtime = ^Runtime(connectionStores= meta::external::store::relational::tests::testRuntime(EmployeeDB)->concatenate(meta::external::store::relational::tests::testRuntime(FirmDB)).connectionStores); + let result = execute( {|Firm.all()->graphFetch($tree)->serialize($tree)}, CrossMappingWithRelOpWithJoinKeys, $runtime, meta::relational::extension::relationalExtensions() ).values; - + assertJsonStringsEqual( '[' + - '{"legalName":"F1","ceo":{"name":"C1"},"employees":[{"name":"E1"},{"name":"E2"}]},' + + '{"legalName":"F1","ceo":{"name":"C1"},"employees":[{"name":"E1"},{"name":"E2"}]},' + '{"legalName":"F2","ceo":{"name":"C2"},"employees":[{"name":"E3"}]}' + ']', $result diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testCrossStoreGraphFetch.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testCrossStoreGraphFetch.pure index 5926965b798..15b1adb115d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testCrossStoreGraphFetch.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testCrossStoreGraphFetch.pure @@ -104,12 +104,12 @@ Database meta::pure::graphFetch::tests::XStore::inMemoryAndRelational::db1 ( Table tradeTable (tradeId_source INT PRIMARY KEY, quantity INT, productId VARCHAR(100), traderKerb VARCHAR(100)) Table traderTable (kerberos VARCHAR(100) PRIMARY KEY, firstName VARCHAR(100), lastName VARCHAR(100)) - + Filter kerbFilter(startsWith(traderTable.kerberos,'gs_') = 'true') - + Join trade_trader(traderTable.kerberos = tradeTable.traderKerb) - - + + ) ###Relational @@ -117,7 +117,7 @@ Database meta::pure::graphFetch::tests::XStore::inMemoryAndRelational::db2 ( Table productTable (productId VARCHAR(100) PRIMARY KEY, productName VARCHAR(100), description VARCHAR(1000)) Table synonymTable (synonymId INT PRIMARY KEY, productId VARCHAR(100), type VARCHAR(200), name VARCHAR(200)) - + Join productTable_synonymTable (productTable.productId = synonymTable.productId) ) @@ -139,43 +139,43 @@ Mapping meta::pure::graphFetch::tests::XStore::inMemoryAndRelational::crossMappi +prodId : String[1] : [db1]tradeTable.productId, trader[trader_set] : [db1]@trade_trader } - + Product[prod_set] : Relational { productId : [db2]productTable.productId, productName : [db2]productTable.productName, description : [db2]productTable.description, synonyms[synonym_set] : [db2]@productTable_synonymTable } - + Synonym[synonym_set] : Relational { name : [db2]synonymTable.name, type: EnumerationMapping SynonymTypeMapping : [db2]synonymTable.type, product[prod_set] : [db2]@productTable_synonymTable } - + Trader[trader_set] : Relational { kerberos : [db1]traderTable.kerberos, firstName : [db1]traderTable.firstName, lastName : [db1]traderTable.lastName } - + TradeEvent[trade_event_set] : Relational { eventId : [db3]tradeEventTable.eventId, description : [db3]tradeEventTable.description, timestamp : [db3]tradeEventTable.timestamp, +tradeIdLocal : Integer[1] : [db3]tradeEventTable.tradeId } - + Trade_Product : XStore { product[trade_set, prod_set] : $this.prodId == $that.productId, trades[prod_set, trade_set] : $this.productId == $that.prodId } - + Trade_TradeEvent : XStore { tradeEvents[trade_set, trade_event_set] : $this.tradeId == $that.tradeIdLocal, trade[trade_event_set, trade_set] : $this.tradeIdLocal == $that.tradeId } - + SynonymType : EnumerationMapping SynonymTypeMapping { CUSIP : ['cusip', 'CUSIP'], ISIN : ['isin', 'ISIN'] @@ -193,14 +193,14 @@ Mapping meta::pure::graphFetch::tests::XStore::inMemoryAndRelational::crossMappi +prodId : String[1] : [db1]tradeTable.productId, trader[trader_set] : [db1]@trade_trader } - + TradeEvent[trade_event_set] : Relational { eventId : [db3]tradeEventTable.eventId, description : [db3]tradeEventTable.description, timestamp : [db3]tradeEventTable.timestamp, +tradeIdLocal : Integer[1] : [db3]tradeEventTable.tradeId } - + Trade_TradeEvent : XStore { tradeEvents[trade_set, trade_event_set] : ($this.tradeId == $that.tradeIdLocal) && ($that.timestamp > %2018-01-06), trade[trade_event_set, trade_set] : ($this.timestamp > %2018-01-06) && ($this.tradeIdLocal == $that.tradeId) @@ -219,32 +219,32 @@ Mapping meta::pure::graphFetch::tests::XStore::inMemoryAndRelational::crossMappi quantity : $src.s_tradeDetails->split(':')->at(1)->parseInteger(), trader[trader_set] : $src } - + Trader[trader_set] : Pure { ~src S_Trade kerberos : $src.s_traderDetails->split(':')->at(0), firstName : $src.s_traderDetails->split(':')->at(1), lastName : $src.s_traderDetails->split(':')->at(2) } - + Product[prod_set] : Relational { productId : [db2]productTable.productId, productName : [db2]productTable.productName, description : [db2]productTable.description, synonyms[synonym_set] : [db2]@productTable_synonymTable } - + Synonym[synonym_set] : Relational { name : [db2]synonymTable.name, type: EnumerationMapping SynonymTypeMapping : [db2]synonymTable.type, product[prod_set] : [db2]@productTable_synonymTable } - + Trade_Product : XStore { product[trade_set, prod_set] : $this.prodId == $that.productId, trades[prod_set, trade_set] : $this.productId == $that.prodId } - + SynonymType : EnumerationMapping SynonymTypeMapping { CUSIP : ['cusip', 'CUSIP'], ISIN : ['isin', 'ISIN'] @@ -263,32 +263,32 @@ Mapping meta::pure::graphFetch::tests::XStore::inMemoryAndRelational::crossMappi quantity : $src.s_tradeDetails->split(':')->at(1)->parseInteger(), trader[trader_set] : $src } - + Trader[trader_set] : Pure { ~src S_Trade kerberos : $src.s_traderDetails->split(':')->at(0), firstName : $src.s_traderDetails->split(':')->at(1), lastName : $src.s_traderDetails->split(':')->at(2) } - + Product[prod_set] : Relational { productId : [db2]productTable.productId, productName : [db2]productTable.productName, description : [db2]productTable.description, synonyms[synonym_set] : [db2]@productTable_synonymTable } - + Synonym[synonym_set] : Relational { name : [db2]synonymTable.name, type: EnumerationMapping SynonymTypeMapping : [db2]synonymTable.type, product[prod_set] : [db2]@productTable_synonymTable } - + T_Trade_Product : XStore { product[trade_set, prod_set] : $this.prodId == $that.productId, t_trades[prod_set, trade_set] : $this.productId == $that.prodId } - + SynonymType : EnumerationMapping SynonymTypeMapping { CUSIP : ['cusip', 'CUSIP'], ISIN : ['isin', 'ISIN'] @@ -306,25 +306,25 @@ Mapping meta::pure::graphFetch::tests::XStore::inMemoryAndRelational::crossMappi prodId* : $src.s_trades.s_tradeDetails->map(detail | $detail->split(':')->at(0)), quantity* : $src.s_trades.s_tradeDetails->map(detail | $detail->split(':')->at(1)->parseInteger()) } - + Product[prod_set] : Relational { productId : [db2]productTable.productId, productName : [db2]productTable.productName, description : [db2]productTable.description, synonyms[synonym_set] : [db2]@productTable_synonymTable } - + Synonym[synonym_set] : Relational { name : [db2]synonymTable.name, type: EnumerationMapping SynonymTypeMapping : [db2]synonymTable.type, product[prod_set] : [db2]@productTable_synonymTable } - + T_Trade_Product : XStore { product[trade_set, prod_set] : $this.prodId == $that.productId, t_trades[prod_set, trade_set] : $this.productId == $that.prodId } - + SynonymType : EnumerationMapping SynonymTypeMapping { CUSIP : ['cusip', 'CUSIP'], ISIN : ['isin', 'ISIN'] @@ -336,8 +336,10 @@ Mapping meta::pure::graphFetch::tests::XStore::inMemoryAndRelational::crossMappi import meta::pure::mapping::*; import meta::pure::alloy::connections::alloy::specification::*; import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::relational::mapping::*; import meta::pure::graphFetch::executionPlan::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::executionPlan::profiles::*; import meta::pure::executionPlan::toString::*; @@ -347,30 +349,43 @@ import meta::pure::graphFetch::tests::XStore::inMemoryAndRelational::*; import meta::relational::metamodel::execute::*; import meta::relational::functions::toDDL::*; import meta::pure::graphFetcha::tests::XStore::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; function <> meta::pure::graphFetch::tests::XStore::inMemoryAndRelational::createTablesInDb():Boolean[1] { - let runtime = ^Runtime(connections = [^TestDatabaseConnection(element=db1, type=DatabaseType.H2), ^TestDatabaseConnection(element=db2, type=DatabaseType.H2), ^TestDatabaseConnection(element=db3, type=DatabaseType.H2)]); - let dbConn1 = $runtime.connections->at(0)->cast(@DatabaseConnection); - let dbConn2 = $runtime.connections->at(1)->cast(@DatabaseConnection); - let dbConn3 = $runtime.connections->at(2)->cast(@DatabaseConnection); + let runtime = ^Runtime(connectionStores= [ + ^ConnectionStore( + element=db1, + connection= + ^TestDatabaseConnection(type=DatabaseType.H2)), + ^ConnectionStore( + element=db2, + connection= + ^TestDatabaseConnection(type=DatabaseType.H2)), + ^ConnectionStore( + element=db3, + connection= + ^TestDatabaseConnection(type=DatabaseType.H2))]); + let dbConn1 = $runtime.connectionStores->at(0).connection->cast(@DatabaseConnection); + let dbConn2 = $runtime.connectionStores->at(1).connection->cast(@DatabaseConnection); + let dbConn3 = $runtime.connectionStores->at(2).connection->cast(@DatabaseConnection); dropAndCreateTableInDb(db1, 'tradeTable', $dbConn1); dropAndCreateTableInDb(db1, 'traderTable', $dbConn2); dropAndCreateTableInDb(db2, 'productTable', $dbConn2); dropAndCreateTableInDb(db2, 'synonymTable', $dbConn2); dropAndCreateTableInDb(db3, 'tradeEventTable', $dbConn3); - + executeInDb('insert into tradeTable (tradeId_source, quantity, productId, traderkerb) values (1, 100, 30, \'abc\');', $dbConn2); executeInDb('insert into tradeTable (tradeId_source, quantity, productId, traderkerb) values (2, 200, 31, \'abc\');', $dbConn2); executeInDb('insert into tradeTable (tradeId_source, quantity, productId, traderkerb) values (3, 300, 30, \'xyz\');', $dbConn2); executeInDb('insert into tradeTable (tradeId_source, quantity, productId, traderkerb) values (4, 400, 31, \'xyz\');', $dbConn2); - + executeInDb('insert into productTable (productId, productname, description) values (30, \'Prod_1\', \'Product 1 description\');', $dbConn2); executeInDb('insert into productTable (productId, productname, description) values (31, \'Prod_2\', \'Product 2 description\');', $dbConn2); - + executeInDb('insert into synonymTable (synonymId, productId, type, name) values (1, 30, \'CUSIP\', \'Syn_1\');', $dbConn2); executeInDb('insert into synonymTable (synonymId, productId, type, name) values (2, 30, \'ISIN\', \'Syn_2\');', $dbConn2); executeInDb('insert into synonymTable (synonymId, productId, type, name) values (3, 31, \'cusip\', \'Syn_3\');', $dbConn2); @@ -378,11 +393,11 @@ function <> meta::pure::graphFetch::tests::XStore::inMemoryA executeInDb('insert into traderTable (kerberos, firstName, lastName) values (\'abc\', \'F_Name1\', \'L_Name_1\');', $dbConn2); executeInDb('insert into traderTable (kerberos, firstName, lastName) values (\'xyz\', \'F_Name2\', \'L_Name_2\');', $dbConn2); - + executeInDb('insert into tradeEventTable (eventId, tradeId, timestamp, description) values (\'1\', 1, \'2018-01-01 00:00:00\', \'Event_1\');', $dbConn3); executeInDb('insert into tradeEventTable (eventId, tradeId, timestamp, description) values (\'2\', 1, \'2019-01-01 00:00:00\', \'Event_2\');', $dbConn3); executeInDb('insert into tradeEventTable (eventId, tradeId, timestamp, description) values (\'3\', 2, \'2019-01-01 00:00:00\', \'Event_3\');', $dbConn3); - + true; } @@ -398,10 +413,10 @@ function <> {serverVersion.start='v1_19_0'} meta::pur }#; let query = {|Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::pure::graphFetch::tests::XStore::inMemoryAndRelational::crossMapping1; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; - + assertJsonStringsEqual( '[{"product":{"productName":"Prod_1"},"tradeId":1},'+ '{"product":{"productName":"Prod_2"},"tradeId":2},'+ @@ -425,10 +440,10 @@ function <> {serverVersion.start='v1_19_0'} meta::pur }#; let query = {|Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::pure::graphFetch::tests::XStore::inMemoryAndRelational::crossMapping1; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; - + assertJsonStringsEqual( '[{"product":{"productId":"30","description":"Product 1 description","productName":"Prod_1"},"tradeId":1},'+ '{"product":{"productId":"31","description":"Product 2 description","productName":"Prod_2"},"tradeId":2},'+ @@ -446,21 +461,21 @@ function <> {serverVersion.start='v1_19_0'} meta::pur product { productId, productName, - description + description }, tradeEvents { eventId, description, - timestamp + timestamp } } }#; let query = {|Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::pure::graphFetch::tests::XStore::inMemoryAndRelational::crossMapping1; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; - + assertJsonStringsEqual( '[{"product":{"productId":"30","description":"Product 1 description","productName":"Prod_1"},"tradeEvents":[{"eventId":"1","description":"Event_1","timestamp":"2018-01-01T00:00:00.000000000"},{"eventId":"2","description":"Event_2","timestamp":"2019-01-01T00:00:00.000000000"}],"tradeId":1},' + '{"product":{"productId":"31","description":"Product 2 description","productName":"Prod_2"},"tradeEvents":[{"eventId":"3","description":"Event_3","timestamp":"2019-01-01T00:00:00.000000000"}],"tradeId":2},' + @@ -492,16 +507,16 @@ function <> {serverVersion.start='v1_19_0'} meta::pur tradeEvents { eventId, description, - timestamp + timestamp } } }#; let query = {|Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::pure::graphFetch::tests::XStore::inMemoryAndRelational::crossMapping1; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; - + assertJsonStringsEqual( '[' + '{' + @@ -549,7 +564,7 @@ function <> {serverVersion.start='v1_19_0'} meta::pur description, synonyms { name, - type + type } }, tradeEvents { @@ -564,10 +579,10 @@ function <> {serverVersion.start='v1_19_0'} meta::pur }#; let query = {|Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::pure::graphFetch::tests::XStore::inMemoryAndRelational::crossMapping1; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; - + assertJsonStringsEqual( '[' + '{' + @@ -639,10 +654,10 @@ function <> {serverVersion.start='v1_19_0'} meta::pur }#; let query = {|Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::pure::graphFetch::tests::XStore::inMemoryAndRelational::crossMapping1; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; - + assertJsonStringsEqual( '[' + '{' + @@ -708,7 +723,7 @@ function <> {serverVersion.start='v1_19_0'} meta::pur description, synonyms { name, - type + type } } } @@ -717,10 +732,10 @@ function <> {serverVersion.start='v1_19_0'} meta::pur }#; let query = {|Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::pure::graphFetch::tests::XStore::inMemoryAndRelational::crossMapping1; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; - + assertJsonStringsEqual( '[' + '{' + @@ -760,16 +775,16 @@ function <> {serverVersion.start='v1_19_0'} meta::pur tradeEvents { eventId, description, - timestamp + timestamp } } }#; let query = {|Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::pure::graphFetch::tests::XStore::inMemoryAndRelational::crossMapping2; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; - + assertJsonStringsEqual( '[{"tradeEvents":[{"eventId":"2","description":"Event_2","timestamp":"2019-01-01T00:00:00.000000000"}],"tradeId":1},'+ '{"tradeEvents":[{"eventId":"3","description":"Event_3","timestamp":"2019-01-01T00:00:00.000000000"}],"tradeId":2},'+ @@ -800,23 +815,22 @@ function <> {serverVersion.start='v1_19_0'} meta::pur } } }#; - - let jsonConnection = ^meta::pure::mapping::modelToModel::JsonModelConnection + + let jsonConnection = ^meta::external::store::model::JsonModelConnection ( - element = ^meta::pure::mapping::modelToModel::ModelStore(), - class = S_Trade, + class = S_Trade, url = 'data:application/json,'+ '{"s_tradeId": 1, "s_tradeDetails": "30:100", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 2, "s_tradeDetails": "31:200", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 3, "s_tradeDetails": "30:300", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}'+ '{"s_tradeId": 4, "s_tradeDetails": "31:400", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}' ); - let dbRuntime = meta::relational::tests::testRuntime(); + let dbRuntime = meta::external::store::relational::tests::testRuntime(); let query = {|Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::pure::graphFetch::tests::XStore::inMemoryAndRelational::crossMapping3; - let runtime = ^$dbRuntime(connections = $dbRuntime.connections->concatenate($jsonConnection)); - + let runtime = ^$dbRuntime(connectionStores= $dbRuntime.connectionStores->concatenate(^ConnectionStore(element=^meta::external::store::model::ModelStore(),connection=$jsonConnection))); + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; assertJsonStringsEqual( @@ -867,25 +881,24 @@ function <> {serverVersion.start='v1_19_0'} meta::pur } } }#; - - let jsonConnection = ^meta::pure::mapping::modelToModel::JsonModelConnection + + let jsonConnection = ^meta::external::store::model::JsonModelConnection ( - element = ^meta::pure::mapping::modelToModel::ModelStore(), - class = S_Trade, + class = S_Trade, url = 'data:application/json,'+ '{"s_tradeId": 1, "s_tradeDetails": "30:100", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 2, "s_tradeDetails": "31:200", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 3, "s_tradeDetails": "30:300", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}'+ '{"s_tradeId": 4, "s_tradeDetails": "31:400", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}' ); - let dbRuntime = meta::relational::tests::testRuntime(); - + let dbRuntime = meta::external::store::relational::tests::testRuntime(); + let query = {|T_Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::pure::graphFetch::tests::XStore::inMemoryAndRelational::crossMapping4; - let runtime = ^$dbRuntime(connections = $dbRuntime.connections->concatenate($jsonConnection)); - + let runtime = ^$dbRuntime(connectionStores= $dbRuntime.connectionStores->concatenate(^ConnectionStore(element=^meta::external::store::model::ModelStore(),connection=$jsonConnection))); + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; - + assertJsonStringsEqual( '[' + '{' + @@ -929,25 +942,24 @@ function <> {serverVersion.start='v1_19_0'} meta::pur } } }#; - - let jsonConnection = ^meta::pure::mapping::modelToModel::JsonModelConnection + + let jsonConnection = ^meta::external::store::model::JsonModelConnection ( - element = ^meta::pure::mapping::modelToModel::ModelStore(), - class = S_TradesWrapper, + class = S_TradesWrapper, url = 'data:application/json,'+ '{"s_trades" : [{"s_tradeId": 1, "s_tradeDetails": "30:100", "s_traderDetails": "abc:F_Name_1:L_Name_1"},'+ '{"s_tradeId": 2, "s_tradeDetails": "31:200", "s_traderDetails": "abc:F_Name_1:L_Name_1"},'+ '{"s_tradeId": 3, "s_tradeDetails": "30:300", "s_traderDetails": "xyz:F_Name_2:L_Name_2"},'+ '{"s_tradeId": 4, "s_tradeDetails": "31:400", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}]}' ); - let dbRuntime = meta::relational::tests::testRuntime(); - + let dbRuntime = meta::external::store::relational::tests::testRuntime(); + let query = {|T_Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::pure::graphFetch::tests::XStore::inMemoryAndRelational::crossMapping5; - let runtime = ^$dbRuntime(connections = $dbRuntime.connections->concatenate($jsonConnection)); - + let runtime = ^$dbRuntime(connectionStores= $dbRuntime.connectionStores->concatenate(^ConnectionStore(element=^meta::external::store::model::ModelStore(),connection=$jsonConnection))); + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; - + assertJsonStringsEqual( '[' + '{' + @@ -985,45 +997,48 @@ function <> {serverVersion.start='v1_19_0'} meta::pur } } }#; - - let jsonConnection = ^meta::pure::mapping::modelToModel::JsonModelConnection + + let jsonConnection = ^ConnectionStore( + element = ^meta::external::store::model::ModelStore(), + connection= + ^meta::external::store::model::JsonModelConnection ( - element = ^meta::pure::mapping::modelToModel::ModelStore(), - class = S_Trade, + class = S_Trade, url = 'data:application/json,'+ '{"s_tradeId": 1, "s_tradeDetails": "productID 2:100", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 2, "s_tradeDetails": "31:200", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 3, "s_tradeDetails": "30:300", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}'+ '{"s_tradeId": 4, "s_tradeDetails": "31:400", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}' - ); - + )); + let dbRuntimeFromCSv = ^EngineRuntime( mappings = meta::pure::graphFetch::tests::XStore::inMemoryAndRelational::crossMapping3, - connections = ^meta::pure::alloy::connections::RelationalDatabaseConnection( + connectionStores = + ^ConnectionStore( + connection= ^meta::external::store::relational::runtime::RelationalDatabaseConnection( type = DatabaseType.H2, - datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification(testDataSetupCsv = + datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification(testDataSetupCsv = 'default\n'+ 'productTable\n'+ 'productId,productName,description\n'+ 'productID 2,productName 84,description 67\n' ), - authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::TestDatabaseAuthenticationStrategy(), - element = meta::pure::graphFetch::tests::XStore::inMemoryAndRelational::db2 - ) - ); + authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::TestDatabaseAuthenticationStrategy() + ), + element = meta::pure::graphFetch::tests::XStore::inMemoryAndRelational::db2)); let mapping = meta::pure::graphFetch::tests::XStore::inMemoryAndRelational::crossMapping3; - let runtime = ^$dbRuntimeFromCSv(connections = $dbRuntimeFromCSv.connections->concatenate($jsonConnection)); + let runtime = ^$dbRuntimeFromCSv(connectionStores = $dbRuntimeFromCSv.connectionStores->concatenate($jsonConnection)); let query = {|Trade.all()->graphFetch($tree)->from($mapping,$runtime)->serialize($tree)}; - - + + let plan = executionPlan($query, meta::relational::extension::relationalExtensions()); assertEquals(7, $plan.rootExecutionNode.executionNodes->at(0)->cast(@StoreMappingGlobalGraphFetchExecutionNode).children->at(0).localGraphFetchExecutionNode.executionNodes->at(0)->cast(@SQLExecutionNode).connection->cast(@RelationalDatabaseConnection) - .datasourceSpecification->cast(@LocalH2DatasourceSpecification).testDataSetupSqls->size()); + .datasourceSpecification->cast(@LocalH2DatasourceSpecification).testDataSetupSqls->size()); let result = meta::legend::executeLegendQuery($query,[], meta::relational::extension::relationalExtensions()); assertJsonStringsEqual('{"builder":{"_type":"json"},"values":[{"tradeId":1,"product":{"productId":"productID 2","productName":"productName 84","description":"description 67"}},{"tradeId":2,"product":null},{"tradeId":3,"product":null},{"tradeId":4,"product":null}]}',$result); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testCrossStoreGraphFetchMilestoning.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testCrossStoreGraphFetchMilestoning.pure index 5d47072f740..6948c281aeb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testCrossStoreGraphFetchMilestoning.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testCrossStoreGraphFetchMilestoning.pure @@ -142,7 +142,7 @@ Mapping meta::pure::graphFetch::tests::XStore::milestoning::TradeLinkageMappingF ~mainTable [TradeStore]Trade.Trade s_customerEntityId: [TradeStore]Trade.Trade.customerEntityId, s_tradeID: [TradeStore]Trade.Trade.tradeID - + } Trade_CustomerLegalEntity: XStore { @@ -155,6 +155,7 @@ import meta::pure::executionPlan::toString::*; import meta::pure::executionPlan::*; import meta::pure::graphFetch::tests::XStore::milestoning::*; import meta::pure::graphFetch::execution::*; +import meta::core::runtime::*; import meta::pure::runtime::*; @@ -166,23 +167,25 @@ function meta::pure::graphFetch::tests::XStore::milestoning::runtime():Runtime[1 'INSERT INTO Entity.Entity(entityId,country,in_z, out_z,from_z,thru_z) VALUES (12,\'US\',\'2023-10-12 00:00:00\', \'9999-12-31 00:00:00\', \'2023-10-12 00:00:00\',\'9999-12-31 00:00:00\');\n' + 'INSERT INTO Entity.Entity(entityId,country,in_z, out_z,from_z,thru_z) VALUES (34,\'US\',\'2023-10-12 00:00:00\', \'9999-12-31 00:00:00\', \'2023-10-18 00:00:00\',\'9999-12-31 00:00:00\');\n' + 'INSERT INTO Entity.Entity(entityId,country,in_z, out_z,from_z,thru_z) VALUES (34,\'US\',\'2023-10-18 00:00:00\', \'9999-12-31 00:00:00\', \'2023-10-12 00:00:00\',\'9999-12-31 00:00:00\');\n' + - 'INSERT INTO Entity.Entity(entityId,country,in_z, out_z,from_z,thru_z) VALUES (56,\'IE\',\'2023-10-12 00:00:00\', \'9999-12-31 00:00:00\', \'2023-10-12 00:00:00\',\'9999-12-31 00:00:00\');\n'; - - - let runtime = ^Runtime( connections = [ - ^meta::pure::mapping::modelToModel::JsonModelConnection + 'INSERT INTO Entity.Entity(entityId,country,in_z, out_z,from_z,thru_z) VALUES (56,\'IE\',\'2023-10-12 00:00:00\', \'9999-12-31 00:00:00\', \'2023-10-12 00:00:00\',\'9999-12-31 00:00:00\');'; + let runtime = ^Runtime( connectionStores = [ + ^ConnectionStore( + element = ^meta::external::store::model::ModelStore(), + connection = + ^meta::external::store::model::JsonModelConnection ( - element = ^meta::pure::mapping::modelToModel::ModelStore(), class = Trade, url = 'data:application/json,\n{"customerEntityId": 12}\n{"customerEntityId": 34}\n{"customerEntityId": 56}\n' - ), - ^meta::pure::alloy::connections::RelationalDatabaseConnection + )), + ^ConnectionStore( + element = EntityStore, + connection = + ^meta::external::store::relational::runtime::RelationalDatabaseConnection ( - element = EntityStore, type = meta::relational::runtime::DatabaseType.H2, datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification(testDataSetupSqls=[$csvData]), authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::TestDatabaseAuthenticationStrategy() - )]); + ))]); } @@ -198,27 +201,32 @@ function meta::pure::graphFetch::tests::XStore::milestoning::runtimeM2M2R():Runt 'Create Schema if not exists Trade;\n' + 'Drop Table if exists Trade.Trade;\n' + 'Create Table Trade.Trade(tradeID VARCHAR(50), customerEntityId INTEGER);\n' + - 'INSERT INTO Trade.Trade(tradeID,customerEntityId) VALUES (\'ABC\',12);\n' + 'INSERT INTO Trade.Trade(tradeID,customerEntityId) VALUES (\'ABC\',12);\n' ; - let runtime = ^Runtime( connections = [ - ^meta::pure::mapping::modelToModel::ModelChainConnection(element=^meta::pure::mapping::modelToModel::ModelStore(), mappings = TradeLinkageMappingForModelChain), - - ^meta::pure::alloy::connections::RelationalDatabaseConnection + let runtime = ^Runtime( connectionStores = [ + ^ConnectionStore( + element=^meta::external::store::model::ModelStore(), + connection= + ^meta::external::store::model::ModelChainConnection(mappings = TradeLinkageMappingForModelChain)), + ^ConnectionStore( + element = EntityStore, + connection = + ^meta::external::store::relational::runtime::RelationalDatabaseConnection ( - element = EntityStore, type = meta::relational::runtime::DatabaseType.H2, datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification(testDataSetupSqls=[$csvData]), authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::TestDatabaseAuthenticationStrategy() - ), - - ^meta::pure::alloy::connections::RelationalDatabaseConnection + )), + ^ConnectionStore( + element = TradeStore, + connection = + ^meta::external::store::relational::runtime::RelationalDatabaseConnection ( - element = TradeStore, type = meta::relational::runtime::DatabaseType.H2, datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification(testDataSetupSqls=[$csvData]), authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::TestDatabaseAuthenticationStrategy() - ) + )) ] ); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testCrossStoreUnion.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testCrossStoreUnion.pure index 0be213de5cd..e6af3b8c069 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testCrossStoreUnion.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testCrossStoreUnion.pure @@ -11,29 +11,29 @@ // 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::pure::graphFetch::tests::XStoreUnion::inMemoryAndRelational::*; - + Class meta::pure::graphFetch::tests::XStoreUnion::inMemoryAndRelational::Trade { tradeId : Integer[1]; traderKerb: String[0..1]; quantity : Integer[1]; } - + Class meta::pure::graphFetch::tests::XStoreUnion::inMemoryAndRelational::Product { productId : String[1]; productName : String[1]; description : String[1]; } - + Association meta::pure::graphFetch::tests::XStoreUnion::inMemoryAndRelational::Trade_Product { product : Product[1]; trades : Trade[*]; } - + Class meta::pure::graphFetch::tests::XStoreUnion::inMemoryAndRelational::S_Trade { s_tradeId : Integer[1]; @@ -217,6 +217,7 @@ Mapping meta::pure::graphFetch::tests::XStoreUnion::inMemoryAndRelational::cross ) ###Pure +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::executionPlan::profiles::*; import meta::pure::executionPlan::toString::*; @@ -226,12 +227,12 @@ import meta::pure::graphFetch::tests::XStoreUnion::inMemoryAndRelational::*; import meta::relational::metamodel::execute::*; import meta::relational::functions::toDDL::*; import meta::pure::graphFetcha::tests::XStore::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; function <> meta::pure::graphFetch::tests::XStoreUnion::inMemoryAndRelational::createTablesInDb():Boolean[1] { - let runtime = ^Runtime(connections = [^TestDatabaseConnection(element=dbUnion, type=DatabaseType.H2)]); - let dbConn = $runtime.connections->at(0)->cast(@DatabaseConnection); + let dbConn = ^TestDatabaseConnection(type=DatabaseType.H2); dropAndCreateTableInDb(dbUnion, 'tradeTable', $dbConn); dropAndCreateTableInDb(dbUnion, 'productTable', $dbConn); @@ -259,18 +260,19 @@ function <> {serverVersion.start='v1_24_0'} meta::pur let query = {|Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::pure::graphFetch::tests::XStoreUnion::inMemoryAndRelational::crossMappingUnion; - let jsonConnection = ^meta::pure::mapping::modelToModel::JsonModelConnection + let jsonConnection = ^ConnectionStore( + element = ^meta::external::store::model::ModelStore(), + connection=^meta::external::store::model::JsonModelConnection ( - element = ^meta::pure::mapping::modelToModel::ModelStore(), class = S_Trade, url = 'data:application/json,'+ '{"s_tradeId": 5, "s_tradeDetails": "40:100:Prod_3", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 6, "s_tradeDetails": "41:200:Prod_4", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 7, "s_tradeDetails": "40:300:Prod_3", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}'+ '{"s_tradeId": 8, "s_tradeDetails": "41:400:Prod_4", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}' - ); - let dbRuntime = meta::relational::tests::testRuntime(); - let runtime = ^$dbRuntime(connections = $dbRuntime.connections->concatenate($jsonConnection)); + )); + let dbRuntime = meta::external::store::relational::tests::testRuntime(); + let runtime = ^$dbRuntime(connectionStores = $dbRuntime.connectionStores->concatenate($jsonConnection)); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -306,18 +308,19 @@ function <> {serverVersion.start='v1_24_0'} meta::pur let query = {|Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::pure::graphFetch::tests::XStoreUnion::inMemoryAndRelational::crossMappingUnion; - let jsonConnection = ^meta::pure::mapping::modelToModel::JsonModelConnection + let jsonConnection = ^ConnectionStore( + element = ^meta::external::store::model::ModelStore(), + connection=^meta::external::store::model::JsonModelConnection ( - element = ^meta::pure::mapping::modelToModel::ModelStore(), class = S_Trade, url = 'data:application/json,'+ '{"s_tradeId": 5, "s_tradeDetails": "40:100:Prod_3", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 6, "s_tradeDetails": "41:200:Prod_4", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 7, "s_tradeDetails": "40:300:Prod_3", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}'+ '{"s_tradeId": 8, "s_tradeDetails": "41:400:Prod_4", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}' - ); - let dbRuntime = meta::relational::tests::testRuntime(); - let runtime = ^$dbRuntime(connections = $dbRuntime.connections->concatenate($jsonConnection)); + )); + let dbRuntime = meta::external::store::relational::tests::testRuntime(); + let runtime = ^$dbRuntime(connectionStores = $dbRuntime.connectionStores->concatenate($jsonConnection)); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -346,52 +349,56 @@ function <> {serverVersion.start='v1_24_0'} meta::pur let query = {|Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::pure::graphFetch::tests::XStoreUnion::inMemoryAndRelational::crossMappingUnion2; - let jsonConnection = ^meta::pure::mapping::modelToModel::JsonModelConnection + let jsonConnection = ^ConnectionStore( + element = ^meta::external::store::model::ModelStore(), + connection=^meta::external::store::model::JsonModelConnection ( - element = ^meta::pure::mapping::modelToModel::ModelStore(), class = S_Trade, url = 'data:application/json,'+ '{"s_tradeId": 5, "s_tradeDetails": "40:100:Prod_3", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 6, "s_tradeDetails": "41:200:Prod_4", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 7, "s_tradeDetails": "40:300:Prod_3", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}'+ '{"s_tradeId": 8, "s_tradeDetails": "41:400:Prod_4", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}' - ); + )); - let jsonConnection2 = ^meta::pure::mapping::modelToModel::JsonModelConnection + let jsonConnection2 = ^ConnectionStore( + element = ^meta::external::store::model::ModelStore(), + connection=^meta::external::store::model::JsonModelConnection ( - element = ^meta::pure::mapping::modelToModel::ModelStore(), class = S_Trade2, url = 'data:application/json,'+ '{"s_tradeId": 9 , "s_tradeDetails": "40:100:Prod_3", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 10, "s_tradeDetails": "41:200:Prod_4", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 11, "s_tradeDetails": "40:300:Prod_3", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}'+ '{"s_tradeId": 12, "s_tradeDetails": "41:400:Prod_4", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}' - ); + )); - let jsonConnection3 = ^meta::pure::mapping::modelToModel::JsonModelConnection + let jsonConnection3 = ^ConnectionStore( + element = ^meta::external::store::model::ModelStore(), + connection=^meta::external::store::model::JsonModelConnection ( - element = ^meta::pure::mapping::modelToModel::ModelStore(), class = S_Trade3, url = 'data:application/json,'+ '{"s_tradeId": 13 , "s_tradeDetails": "40:100:Prod_3", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 14, "s_tradeDetails": "41:200:Prod_4", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 15, "s_tradeDetails": "40:300:Prod_3", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}'+ '{"s_tradeId": 16, "s_tradeDetails": "41:400:Prod_4", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}' - ); + )); - let jsonConnection4 = ^meta::pure::mapping::modelToModel::JsonModelConnection + let jsonConnection4 = ^ConnectionStore( + element = ^meta::external::store::model::ModelStore(), + connection=^meta::external::store::model::JsonModelConnection ( - element = ^meta::pure::mapping::modelToModel::ModelStore(), class = S_Trade4, url = 'data:application/json,'+ '{"s_tradeId": 17, "s_tradeDetails": "40:100:Prod_3", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 18, "s_tradeDetails": "41:200:Prod_4", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 19, "s_tradeDetails": "40:300:Prod_3", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}'+ '{"s_tradeId": 20, "s_tradeDetails": "41:400:Prod_4", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}' - ); + )); - let dbRuntime = meta::relational::tests::testRuntime(); - let runtime = ^$dbRuntime(connections = $dbRuntime.connections->concatenate([$jsonConnection, $jsonConnection2, $jsonConnection3, $jsonConnection4])); + let dbRuntime = meta::external::store::relational::tests::testRuntime(); + let runtime = ^$dbRuntime(connectionStores = $dbRuntime.connectionStores->concatenate([$jsonConnection, $jsonConnection2, $jsonConnection3, $jsonConnection4])); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -439,52 +446,56 @@ function <> {serverVersion.start='v1_24_0'} meta::pur let query = {|Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::pure::graphFetch::tests::XStoreUnion::inMemoryAndRelational::crossMappingUnion2; - let jsonConnection = ^meta::pure::mapping::modelToModel::JsonModelConnection + let jsonConnection = ^ConnectionStore( + element = ^meta::external::store::model::ModelStore(), + connection=^meta::external::store::model::JsonModelConnection ( - element = ^meta::pure::mapping::modelToModel::ModelStore(), class = S_Trade, url = 'data:application/json,'+ '{"s_tradeId": 5, "s_tradeDetails": "40:100:Prod_3", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 6, "s_tradeDetails": "41:200:Prod_4", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 7, "s_tradeDetails": "40:300:Prod_3", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}'+ '{"s_tradeId": 8, "s_tradeDetails": "41:400:Prod_4", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}' - ); + )); - let jsonConnection2 = ^meta::pure::mapping::modelToModel::JsonModelConnection + let jsonConnection2 = ^ConnectionStore( + element = ^meta::external::store::model::ModelStore(), + connection=^meta::external::store::model::JsonModelConnection ( - element = ^meta::pure::mapping::modelToModel::ModelStore(), class = S_Trade2, url = 'data:application/json,'+ '{"s_tradeId": 9, "s_tradeDetails": "40:100:Prod_3", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 10, "s_tradeDetails": "41:200:Prod_4", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 11, "s_tradeDetails": "40:300:Prod_3", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}'+ '{"s_tradeId": 12, "s_tradeDetails": "41:400:Prod_4", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}' - ); + )); - let jsonConnection3 = ^meta::pure::mapping::modelToModel::JsonModelConnection + let jsonConnection3 = ^ConnectionStore( + element = ^meta::external::store::model::ModelStore(), + connection=^meta::external::store::model::JsonModelConnection ( - element = ^meta::pure::mapping::modelToModel::ModelStore(), class = S_Trade3, url = 'data:application/json,'+ '{"s_tradeId": 13 , "s_tradeDetails": "40:100:Prod_3", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 14, "s_tradeDetails": "41:200:Prod_4", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 15, "s_tradeDetails": "40:300:Prod_3", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}'+ '{"s_tradeId": 16, "s_tradeDetails": "41:400:Prod_4", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}' - ); + )); - let jsonConnection4 = ^meta::pure::mapping::modelToModel::JsonModelConnection + let jsonConnection4 = ^ConnectionStore( + element = ^meta::external::store::model::ModelStore(), + connection=^meta::external::store::model::JsonModelConnection ( - element = ^meta::pure::mapping::modelToModel::ModelStore(), class = S_Trade4, url = 'data:application/json,'+ '{"s_tradeId": 17, "s_tradeDetails": "40:100:Prod_3", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 18, "s_tradeDetails": "41:200:Prod_4", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 19, "s_tradeDetails": "40:300:Prod_3", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}'+ '{"s_tradeId": 20, "s_tradeDetails": "41:400:Prod_4", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}' - ); + )); - let dbRuntime = meta::relational::tests::testRuntime(); - let runtime = ^$dbRuntime(connections = $dbRuntime.connections->concatenate([$jsonConnection, $jsonConnection2, $jsonConnection3, $jsonConnection4])); + let dbRuntime = meta::external::store::relational::tests::testRuntime(); + let runtime = ^$dbRuntime(connectionStores = $dbRuntime.connectionStores->concatenate([$jsonConnection, $jsonConnection2, $jsonConnection3, $jsonConnection4])); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -511,4 +522,4 @@ function <> {serverVersion.start='v1_24_0'} meta::pur '{"product":{"productId":"41","description":"","productName":"Prod_4"},"quantity":400,"traderKerb":"xyz","tradeId":20}]', $result ); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchChain.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchChain.pure index 1cdce05a855..9a64119f513 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchChain.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchChain.pure @@ -17,6 +17,7 @@ import meta::relational::graphFetch::tests::chain::*; import meta::pure::executionPlan::profiles::*; import meta::pure::graphFetch::execution::*; import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; function <> meta::relational::graphFetch::tests::chain::setup(): Boolean[1] { @@ -31,15 +32,15 @@ function <> {serverVersion.start='v1_19_0'} meta::rel employeeCount } }#; - + let query = {|Target_Firm.all()->graphFetch($tree)->serialize($tree)}; let mapping = M2M_Mapping; - let modelChainConnection = ^meta::pure::mapping::modelToModel::ModelChainConnection( - element = ^meta::pure::mapping::modelToModel::ModelStore(), + let modelChainConnection = ^meta::external::store::model::ModelChainConnection( mappings = [meta::relational::tests::simpleRelationalMapping] ); - let runtime = ^meta::pure::runtime::Runtime( - connections = meta::relational::tests::testRuntime().connections->concatenate($modelChainConnection) + let runtime = ^meta::core::runtime::Runtime( + connectionStores = + meta::external::store::relational::tests::testRuntime().connectionStores->concatenate(^meta::core::runtime::ConnectionStore(element = ^meta::external::store::model::ModelStore(),connection=$modelChainConnection)) ); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -67,15 +68,15 @@ function <> {serverVersion.start='v1_19_0'} meta::rel } } }#; - + let query = {|Target_Firm.all()->graphFetch($tree)->serialize($tree)}; let mapping = M2M_Mapping; - let modelChainConnection = ^meta::pure::mapping::modelToModel::ModelChainConnection( - element = ^meta::pure::mapping::modelToModel::ModelStore(), + let modelChainConnection = ^meta::external::store::model::ModelChainConnection( mappings = [meta::relational::tests::simpleRelationalMapping] ); - let runtime = ^meta::pure::runtime::Runtime( - connections = meta::relational::tests::testRuntime().connections->concatenate($modelChainConnection) + let runtime = ^meta::core::runtime::Runtime( + connectionStores = + meta::external::store::relational::tests::testRuntime().connectionStores->concatenate(^meta::core::runtime::ConnectionStore(element = ^meta::external::store::model::ModelStore(),connection=$modelChainConnection)) ); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -147,15 +148,15 @@ function <> {serverVersion.start='v1_19_0'} meta::rel employeeCount } }#; - + let query = {|Target_Firm.all()->filter(x | $x.firmName == 'FIRM X')->graphFetch($tree)->serialize($tree)}; let mapping = M2M_Mapping; - let modelChainConnection = ^meta::pure::mapping::modelToModel::ModelChainConnection( - element = ^meta::pure::mapping::modelToModel::ModelStore(), + let modelChainConnection = ^meta::external::store::model::ModelChainConnection( mappings = [meta::relational::tests::simpleRelationalMapping] ); - let runtime = ^meta::pure::runtime::Runtime( - connections = meta::relational::tests::testRuntime().connections->concatenate($modelChainConnection) + let runtime = ^meta::core::runtime::Runtime( + connectionStores = + meta::external::store::relational::tests::testRuntime().connectionStores->concatenate(^meta::core::runtime::ConnectionStore(element = ^meta::external::store::model::ModelStore(),connection=$modelChainConnection)) ); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -171,18 +172,18 @@ function <> {serverVersion.start='v1_19_0'} meta::rel employeeCount } }#; - + let query = {| let name = 'FIRM X'; Target_Firm.all()->filter(x | $x.firmName == $name)->graphFetch($tree)->serialize($tree); }; let mapping = M2M_Mapping; - let modelChainConnection = ^meta::pure::mapping::modelToModel::ModelChainConnection( - element = ^meta::pure::mapping::modelToModel::ModelStore(), + let modelChainConnection = ^meta::external::store::model::ModelChainConnection( mappings = [meta::relational::tests::simpleRelationalMapping] ); - let runtime = ^meta::pure::runtime::Runtime( - connections = meta::relational::tests::testRuntime().connections->concatenate($modelChainConnection) + let runtime = ^meta::core::runtime::Runtime( + connectionStores = + meta::external::store::relational::tests::testRuntime().connectionStores->concatenate(^meta::core::runtime::ConnectionStore(element = ^meta::external::store::model::ModelStore(),connection=$modelChainConnection)) ); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -203,7 +204,7 @@ Class meta::relational::graphFetch::tests::chain::Target_Firm Class meta::relational::graphFetch::tests::chain::Target_Person { fullName : String[1]; - managers : String[0..1]; + managers : String[0..1]; } ###Mapping @@ -218,7 +219,7 @@ Mapping meta::relational::graphFetch::tests::chain::M2M_Mapping employeeCount : $src.employees->count(), employees : $src.employees } - + Target_Person : Pure { ~src Person fullName : $src.firstName->toUpper() + ' ' + $src.lastName->toUpper(), diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchEmbdded.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchEmbdded.pure index d9b240777f5..9420de56c13 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchEmbdded.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchEmbdded.pure @@ -33,7 +33,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Person.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::mapping::embedded::model::mapping::testMappingEmbedded; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -58,7 +58,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Person.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::mapping::embedded::model::mapping::testMappingEmbedded; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -83,7 +83,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Person.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::mapping::embedded::model::mapping::testMappingEmbedded; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -106,7 +106,7 @@ function <> {serverVersion.start='v1_19_0 }#; let query = {|Person.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::mapping::embedded::model::mapping::testMappingEmbedded; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -116,4 +116,4 @@ function <> {serverVersion.start='v1_19_0 '{"firstName":"Fabrice","firm":{"legalName":"Firm A","employeeByLastNameFirstName":null}}]', $result ); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchMilestoning.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchMilestoning.pure index 80d55159d86..205d1dcd439 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchMilestoning.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchMilestoning.pure @@ -33,7 +33,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Product.all(%2015-10-16)->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::milestoning::milestoningmap; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -56,7 +56,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Product.all(%2015-10-16)->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::milestoning::milestoningmap; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -81,7 +81,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Order.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::milestoning::milestoningmap; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -94,70 +94,70 @@ function <> {serverVersion.start='v1_19_0'} meta::rel // Adding plan test to assert on composite PK not null check generated (should be AND) let plan = meta::pure::executionPlan::executionPlan($query, $mapping, $runtime, meta::relational::extension::relationalExtensions())->meta::pure::executionPlan::toString::planToString(meta::relational::extension::relationalExtensions()); assertEquals( - 'PureExp\n' + - '(\n' + - ' type = String\n' + - ' expression = -> serialize(#{meta::relational::tests::milestoning::Order {id, product(2015-10-16) {name, type, classificationTypeStr()}}}#)\n' + - ' (\n' + - ' StoreMappingGlobalGraphFetch\n' + - ' (\n' + - ' type = PartialClass[impls=[(meta::relational::tests::milestoning::Order | milestoningmap.meta_relational_tests_milestoning_Order)], propertiesWithParameters = [id, product(2015-10-16)]]\n' + - ' resultSizeRange = *\n' + - ' store = meta::relational::tests::milestoning::db\n' + - ' localGraphFetchExecutionNode = \n' + - ' RelationalGraphFetch\n' + - ' (\n' + - ' type = PartialClass[impls=[(meta::relational::tests::milestoning::Order | milestoningmap.meta_relational_tests_milestoning_Order)], propertiesWithParameters = [id, product(2015-10-16)]]\n' + - ' nodeIndex = 0\n' + - ' relationalNode = \n' + - ' SQL\n' + - ' (\n' + - ' type = meta::pure::metamodel::type::Any\n' + - ' resultColumns = [("pk_0", INT), ("id", INT)]\n' + - ' sql = select "root".id as "pk_0", "root".id as "id" from OrderTable as "root"\n' + - ' connection = TestDatabaseConnection(type = "H2")\n' + - ' )\n' + - ' children = [\n' + - ' RelationalGraphFetch\n' + - ' (\n' + - ' type = PartialClass[impls=[(meta::relational::tests::milestoning::Product | milestoningmap.meta_relational_tests_milestoning_Product)], propertiesWithParameters = [classificationTypeStr(), name, type]]\n' + - ' nodeIndex = 2\n' + - ' relationalNode = \n' + - ' SQL\n' + - ' (\n' + - ' type = meta::pure::metamodel::type::Any\n' + - ' resultColumns = [("parent_key_gen_0", INT), ("pk_0", INT), ("pk_1", VARCHAR(200)), ("name", VARCHAR(200)), ("type", VARCHAR(200)), ("k_businessDate", VARCHAR(10))]\n' + + 'PureExp\n' + + '(\n' + + ' type = String\n' + + ' expression = -> serialize(#{meta::relational::tests::milestoning::Order {id, product(2015-10-16) {name, type, classificationTypeStr()}}}#)\n' + + ' (\n' + + ' StoreMappingGlobalGraphFetch\n' + + ' (\n' + + ' type = PartialClass[impls=[(meta::relational::tests::milestoning::Order | milestoningmap.meta_relational_tests_milestoning_Order)], propertiesWithParameters = [id, product(2015-10-16)]]\n' + + ' resultSizeRange = *\n' + + ' store = meta::relational::tests::milestoning::db\n' + + ' localGraphFetchExecutionNode = \n' + + ' RelationalGraphFetch\n' + + ' (\n' + + ' type = PartialClass[impls=[(meta::relational::tests::milestoning::Order | milestoningmap.meta_relational_tests_milestoning_Order)], propertiesWithParameters = [id, product(2015-10-16)]]\n' + + ' nodeIndex = 0\n' + + ' relationalNode = \n' + + ' SQL\n' + + ' (\n' + + ' type = meta::pure::metamodel::type::Any\n' + + ' resultColumns = [("pk_0", INT), ("id", INT)]\n' + + ' sql = select "root".id as "pk_0", "root".id as "id" from OrderTable as "root"\n' + + ' connection = TestDatabaseConnection(type = "H2")\n' + + ' )\n' + + ' children = [\n' + + ' RelationalGraphFetch\n' + + ' (\n' + + ' type = PartialClass[impls=[(meta::relational::tests::milestoning::Product | milestoningmap.meta_relational_tests_milestoning_Product)], propertiesWithParameters = [classificationTypeStr(), name, type]]\n' + + ' nodeIndex = 2\n' + + ' relationalNode = \n' + + ' SQL\n' + + ' (\n' + + ' type = meta::pure::metamodel::type::Any\n' + + ' resultColumns = [("parent_key_gen_0", INT), ("pk_0", INT), ("pk_1", VARCHAR(200)), ("name", VARCHAR(200)), ("type", VARCHAR(200)), ("k_businessDate", VARCHAR(10))]\n' + ' sql = select distinct "temp_table_node_0_0".pk_0 as "parent_key_gen_0", "producttable_0".id as "pk_0", "producttable_0".name as "pk_1", "producttable_0".name as "name", "producttable_0".type as "type", \'2015-10-16\' as "k_businessDate" from (select * from (${temp_table_node_0}) as "root") as "temp_table_node_0_0" inner join OrderTable as "root" on ("temp_table_node_0_0".pk_0 = "root".id) left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-10-16\' and "producttable_0".thru_z > DATE\'2015-10-16\') where "producttable_0".name is not null and "producttable_0".id is not null and "producttable_0".from_z <= DATE\'2015-10-16\' and "producttable_0".thru_z > DATE\'2015-10-16\'\n' + - ' connection = TestDatabaseConnection(type = "H2")\n' + - ' )\n' + - ' children = [\n' + - ' RelationalGraphFetch\n' + - ' (\n' + - ' type = String\n' + - ' nodeIndex = 5\n' + - ' relationalNode = \n' + - ' SQL\n' + - ' (\n' + - ' type = meta::pure::metamodel::type::Any\n' + - ' resultColumns = [("parent_key_gen_0", INT), ("parent_key_gen_1", VARCHAR(200)), ("node_5_result", VARCHAR(200))]\n' + + ' connection = TestDatabaseConnection(type = "H2")\n' + + ' )\n' + + ' children = [\n' + + ' RelationalGraphFetch\n' + + ' (\n' + + ' type = String\n' + + ' nodeIndex = 5\n' + + ' relationalNode = \n' + + ' SQL\n' + + ' (\n' + + ' type = meta::pure::metamodel::type::Any\n' + + ' resultColumns = [("parent_key_gen_0", INT), ("parent_key_gen_1", VARCHAR(200)), ("node_5_result", VARCHAR(200))]\n' + ' sql = select distinct "temp_table_node_2_0".pk_0 as "parent_key_gen_0", "temp_table_node_2_0".pk_1 as "parent_key_gen_1", "productclassificationtable_0".type as "node_5_result" from (select * from (${temp_table_node_2}) as "root") as "temp_table_node_2_0" inner join ProductTable as "root" on ("temp_table_node_2_0".pk_1 = "root".name and "temp_table_node_2_0".pk_0 = "root".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) where "productclassificationtable_0".type is not null and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\'\n' + - ' connection = TestDatabaseConnection(type = "H2")\n' + - ' )\n' + - ' children = [\n' + - ' \n' + - ' ]\n' + - ' )\n\n' + - ' ]\n' + - ' )\n\n' + - ' ]\n' + - ' )\n' + - ' children = [\n' + - ' \n' + - ' ]\n' + - ' localTreeIndices = [0, 1, 2, 3, 4, 5]\n' + - ' dependencyIndices = []\n' + - ' )\n' + - ' )\n' + + ' connection = TestDatabaseConnection(type = "H2")\n' + + ' )\n' + + ' children = [\n' + + ' \n' + + ' ]\n' + + ' )\n\n' + + ' ]\n' + + ' )\n\n' + + ' ]\n' + + ' )\n' + + ' children = [\n' + + ' \n' + + ' ]\n' + + ' localTreeIndices = [0, 1, 2, 3, 4, 5]\n' + + ' dependencyIndices = []\n' + + ' )\n' + + ' )\n' + ')\n', $plan ); @@ -178,7 +178,7 @@ function <> {serverVersion.start='v1_19_0 }#; let query = {|Order.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::milestoning::milestoningmap; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -202,7 +202,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Order.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::milestoning::milestoningmap; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -223,7 +223,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|StockProduct.all(%2015-10-16)->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::milestoning::milestoningmap; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -244,12 +244,12 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }}#; let query = {|Product.all(%2023-10-15T00:00:00)->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::milestoning::milestoningmap; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; assertJsonStringsEqual( - '[{"id":2,"name":"ProductName2","synonymsAllVersions":[{"synonym":"GS-Mod-S0"},{"synonym":"GS-Mod-S1"},{"synonym":"GS-Mod-S2"},{"synonym":"GS-Mod-S3"}]},' + + '[{"id":2,"name":"ProductName2","synonymsAllVersions":[{"synonym":"GS-Mod-S0"},{"synonym":"GS-Mod-S1"},{"synonym":"GS-Mod-S2"},{"synonym":"GS-Mod-S3"}]},' + ' {"id":3,"name":"ProductName3","synonymsAllVersions":[]}]', $result ); @@ -267,13 +267,13 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }}#; let query = {|Product.all(%2023-10-15T00:00:00)->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::milestoning::milestoningmap; - let runtime = meta::relational::tests::testRuntime(); - + let runtime = meta::external::store::relational::tests::testRuntime(); + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; assertJsonStringsEqual( - '[{"id":2,"name":"ProductName2","synonyms(2023-10-15T00:00:00+0000)":[{"synonym":"GS-Mod-S1"},{"synonym":"GS-Mod-S3"}]},' + + '[{"id":2,"name":"ProductName2","synonyms(2023-10-15T00:00:00+0000)":[{"synonym":"GS-Mod-S1"},{"synonym":"GS-Mod-S3"}]},' + ' {"id":3,"name":"ProductName3","synonyms(2023-10-15T00:00:00+0000)":[]}]"' ,$result); } @@ -327,7 +327,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#); }; let mapping = meta::relational::tests::milestoning::milestoningmap; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -375,7 +375,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#); }; let mapping = meta::relational::tests::milestoning::milestoningmap; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -405,7 +405,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#); }; let mapping = meta::relational::tests::milestoning::milestoningmap; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -446,7 +446,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#); }; let mapping = meta::relational::tests::milestoning::milestoningmap; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -479,7 +479,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#); }; let mapping = meta::relational::tests::milestoning::businessSnapshotMilestoningMap; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -508,7 +508,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#); }; let mapping = meta::relational::tests::milestoning::propagationMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -543,7 +543,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#); }; let mapping = meta::relational::tests::milestoning::propagationMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -566,7 +566,7 @@ function <> meta::relational::graphFetch::tests::milestoning::testM }#; let query = {|Order.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::milestoning::partiallyMilestoningUnionMap; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -578,7 +578,7 @@ function <> meta::relational::graphFetch::tests::milestoning::testM } -function meta::pure::graphFetch::tests::milestoning::getAlloyTestH2Connection():meta::pure::alloy::connections::RelationalDatabaseConnection[1] +function meta::pure::graphFetch::tests::milestoning::getAlloyTestH2Connection():meta::core::runtime::ConnectionStore[1] { let setupSqls='drop table if exists ProductTable;\n'+ 'create table ProductTable (id Integer, name VARCHAR(200),type VARCHAR(200),exchange VARCHAR(200), referenceSystemName VARCHAR(200), EXTERNALREFERENCESYSTEMNAME VARCHAR(200), classificationSystemId Integer, from_z TIMESTAMP, thru_z TIMESTAMP);\n'+ @@ -597,22 +597,24 @@ function meta::pure::graphFetch::tests::milestoning::getAlloyTestH2Connection(): 'insert into ProductSynonymTable values(2, \'ProductName3\',\'GS-Mod-S2\',\'CUSIP\',\'smith\',\'2015-8-15 00:00:00\',\'2015-10-17 00:00:00\');\n'+ 'insert into ProductSynonymTable values(2, \'ProductName3\',\'GS-Mod-S3\',\'CUSIP\',\'smith\',\'2015-10-17 00:00:00\',\'9999-12-31 00:00:00\');\n' ; - - ^meta::pure::alloy::connections::RelationalDatabaseConnection( + ^meta::core::runtime::ConnectionStore( element = meta::relational::tests::milestoning::db, - type = meta::relational::runtime::DatabaseType.H2, - authenticationStrategy = ^ meta::pure::alloy::connections::alloy::authentication::TestDatabaseAuthenticationStrategy(), - datasourceSpecification = ^ meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification(testDataSetupSqls=[$setupSqls]) - ); + connection = + ^meta::external::store::relational::runtime::RelationalDatabaseConnection( + type = meta::relational::runtime::DatabaseType.H2, + authenticationStrategy = ^ meta::pure::alloy::connections::alloy::authentication::TestDatabaseAuthenticationStrategy(), + datasourceSpecification = ^ meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification(testDataSetupSqls=[$setupSqls]) + ) + ); } -// Milestoning date Propagation +// Milestoning date Propagation //> following are only supported in engine compiler, Pure ide compiler raises compilation error that property needs date-arg function <> {serverVersion.start='v1_32_0'} meta::relational::graphFetch::tests::milestoning::testDatePropagationFromMilestonedRootToMilestonedProperty(): Boolean[1] { let mapping = meta::relational::tests::milestoning::milestoningmap; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let queryString = 'function my::func():String[1]{\n'+ 'meta::relational::tests::milestoning::Product.all(%2023-10-15T00:00:00)\n'+ @@ -639,12 +641,12 @@ function <> {serverVersion.start='v1_32_0'} meta::rel ' }\n'+ ' } \n'+ ' }#);'+ - '}'; + '}'; let query = meta::legend::compileLegendGrammar($queryString)->at(0)->cast(@FunctionDefinition<{->String[1]}>); - + let result = meta::pure::router::execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; assertJsonStringsEqual( - '[{"id":2,"name":"ProductName2","synonyms(2023-10-15T00:00:00+0000)":[{"synonym":"GS-Mod-S1"},{"synonym":"GS-Mod-S3"}]},' + + '[{"id":2,"name":"ProductName2","synonyms(2023-10-15T00:00:00+0000)":[{"synonym":"GS-Mod-S1"},{"synonym":"GS-Mod-S3"}]},' + ' {"id":3,"name":"ProductName3","synonyms(2023-10-15T00:00:00+0000)":[]}]', $result); } @@ -652,7 +654,7 @@ function <> {serverVersion.start='v1_32_0'} meta::rel function <> {serverVersion.start='v1_32_0'} meta::relational::graphFetch::tests::milestoning::testDatePropagationFromMilestonedRootToMilestonedProperty_WithPropertyAliasing(): Boolean[1] { let mapping = meta::relational::tests::milestoning::milestoningmap; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let queryString = 'function my::func():String[1]{\n'+ 'meta::relational::tests::milestoning::Product.all(%2023-10-15T00:00:00)\n'+ @@ -678,12 +680,12 @@ function <> {serverVersion.start='v1_32_0'} meta::rel ' }\n'+ ' } \n'+ ' }#);'+ - '}'; + '}'; let query = meta::legend::compileLegendGrammar($queryString)->at(0)->cast(@FunctionDefinition<{->String[1]}>); - + let result = meta::pure::router::execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; assertJsonStringsEqual( - '[{"id":2,"name":"ProductName2","synonyms":[{"synonym":"GS-Mod-S1"},{"synonym":"GS-Mod-S3"}]},' + + '[{"id":2,"name":"ProductName2","synonyms":[{"synonym":"GS-Mod-S1"},{"synonym":"GS-Mod-S3"}]},' + ' {"id":3,"name":"ProductName3","synonyms":[]}]', $result); } @@ -691,7 +693,7 @@ function <> {serverVersion.start='v1_32_0'} meta::rel function <> {serverVersion.start='v1_32_0'} meta::relational::graphFetch::tests::milestoning::testDatePropagationFromMilestonedRootToMilestonedProperty_Checked(): Boolean[1] { let mapping = meta::relational::tests::milestoning::milestoningmap; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let queryString = 'function my::func():String[1]{\n'+ 'meta::relational::tests::milestoning::Product.all(%2023-10-15T00:00:00)\n'+ @@ -717,12 +719,12 @@ function <> {serverVersion.start='v1_32_0'} meta::rel ' }\n'+ ' } \n'+ ' }#);'+ - '}'; + '}'; let query = meta::legend::compileLegendGrammar($queryString)->at(0)->cast(@FunctionDefinition<{->String[1]}>); - + let result = meta::pure::router::execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; assertJsonStringsEqual( '[{"defects":[],"value":{"name":"ProductName2","id":2,"synonyms(2023-10-15T00:00:00+0000)":[{"synonym":"GS-Mod-S1"},{"synonym":"GS-Mod-S3"}]}},'+ '{"defects":[],"value":{"name":"ProductName3","id":3,"synonyms(2023-10-15T00:00:00+0000)":[]}}]', $result); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchResultSourcing.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchResultSourcing.pure index c0147217377..d4e74ad7f9c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchResultSourcing.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testGraphFetchResultSourcing.pure @@ -12,11 +12,14 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::tests::csv::*; import meta::pure::graphFetch::execution::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::executionPlan::profiles::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::graphFetch::tests::resultSourcing::*; @@ -39,19 +42,18 @@ Class meta::relational::graphFetch::tests::resultSourcing::_SettlementDateClass settlementDate: Date[1]; } -function meta::relational::graphFetch::tests::resultSourcing::createDbAndGetConnection():Connection[1] +function meta::relational::graphFetch::tests::resultSourcing::createDbAndGetConnection():ConnectionStore[1] { - let connection = meta::relational::tests::testRuntime().connectionByElement(meta::relational::tests::db)->cast(@TestDatabaseConnection); - meta::relational::tests::createPersonTableAndFillDb($connection); - meta::relational::tests::createFirmTableAndFillDb($connection); - meta::relational::tests::createTradeTableAndFillDb($connection); + let connection = meta::external::store::relational::tests::testRuntime().connectionStores->filter(c|$c.element==meta::relational::tests::db)->toOne(); + meta::relational::tests::createPersonTableAndFillDb($connection.connection->cast(@TestDatabaseConnection)); + meta::relational::tests::createFirmTableAndFillDb($connection.connection->cast(@TestDatabaseConnection)); + meta::relational::tests::createTradeTableAndFillDb($connection.connection->cast(@TestDatabaseConnection)); $connection; } function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::resultSourcing::testSourcingJsonResultToQuery():Boolean[1] { let jsonConnection = ^JsonModelConnection( - element=^ModelStore(), class=meta::relational::graphFetch::tests::resultSourcing::_Firm, url='data:application/json,{"name":"Firm X","employees":[{"firstName":"Gunjan","lastName":"Shah"}]}' ); @@ -59,7 +61,10 @@ function <toOne()->graphFetch(#{meta::relational::graphFetch::tests::resultSourcing::Firm {name} }#); meta::relational::tests::model::simple::Person.all()->filter(y|$y.firm.legalName == $x->toOne().name)->project([col(y|$y.firstName,'firstName')])->sort(['firstName']); - }, mappingWithoutFilters, ^Runtime(connections = [$jsonConnection, createDbAndGetConnection()]),meta::relational::extension::relationalExtensions()); + }, mappingWithoutFilters, ^Runtime(connectionStores= [ + ^ConnectionStore( + element=^ModelStore(), + connection=$jsonConnection), createDbAndGetConnection()]),meta::relational::extension::relationalExtensions()); let expectedValue = 'firstName\n'+ 'Anthony\n'+ 'John\n'+ @@ -71,7 +76,6 @@ function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::resultSourcing::testSourcingJsonResultToQueryWithFiltersInMapping():Boolean[1] { let jsonConnection = ^JsonModelConnection( - element=^ModelStore(), class=meta::relational::graphFetch::tests::resultSourcing::_Firm, url='data:application/json,[{"name":"Firm A","employees":[{"firstName":"Gunjan","lastName":"Shah"}]},{"name":"Apple","employees":[{"firstName":"Tim","lastName":"Cook"}]}]' ); @@ -79,7 +83,10 @@ function <toOne()->graphFetch(#{meta::relational::graphFetch::tests::resultSourcing::Firm {name} }#); meta::relational::tests::model::simple::Person.all()->filter(y|$y.firm.legalName == $x->toOne().name)->project([col(y|$y.firstName,'firstName')])->sort(['firstName']); - }, mappingWithFilters, ^Runtime(connections = [$jsonConnection, createDbAndGetConnection()]),meta::relational::extension::relationalExtensions()); + }, mappingWithFilters, ^Runtime(connectionStores= [ + ^ConnectionStore( + element=^ModelStore(), + connection=$jsonConnection), createDbAndGetConnection()]),meta::relational::extension::relationalExtensions()); let expectedValue = 'firstName\n'+ 'Fabrice\n'; assertSameElements($expectedValue,$result.values->toCSV()); @@ -88,7 +95,6 @@ function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::resultSourcing::testSourcingJsonResultToQueryWithParametersInUrl():Boolean[1] { let jsonConnection = ^JsonModelConnection( - element=^ModelStore(), class=meta::relational::graphFetch::tests::resultSourcing::_Firm, url='data:application/json,[{"name":"Firm A","employees":[{"firstName":"Gunjan","lastName":"Shah"}]},{"name":"${firmName}","employees":[{"Tim":"Ursa","lastName":"Cook"}]}]' ); @@ -97,7 +103,10 @@ function <toOne()->graphFetch(#{meta::relational::graphFetch::tests::resultSourcing::Firm {name} }#); meta::relational::tests::model::simple::Person.all()->filter(y|$y.firm.legalName == $x->toOne().name)->project([col(y|$y.firstName,'firstName')])->sort(['firstName']); - }, mappingWithFilters, ^Runtime(connections = [$jsonConnection, createDbAndGetConnection()]),meta::relational::extension::relationalExtensions()); + }, mappingWithFilters, ^Runtime(connectionStores= [ + ^ConnectionStore( + element=^ModelStore(), + connection=$jsonConnection), createDbAndGetConnection()]),meta::relational::extension::relationalExtensions()); let expectedValue = 'firstName\n'+ 'Fabrice\n'; assertSameElements($expectedValue,$result.values->toCSV()); @@ -106,7 +115,6 @@ function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::resultSourcing::testSourcingJsonResultToQueryWithPureDateAsParam():Boolean[1] { let jsonConnection = ^JsonModelConnection( - element=^ModelStore(), class=meta::relational::graphFetch::tests::resultSourcing::_SettlementDateClass, url='data:application/json,{"settlementDate":"2014-12-05T21:00:00"}' ); @@ -114,7 +122,10 @@ function <toOne()->graphFetch(#{meta::relational::graphFetch::tests::resultSourcing::SettlementDateClass {settlementDate} }#); meta::relational::tests::model::simple::Trade.all()->filter(y|$y.settlementDateTime == $x->toOne().settlementDate)->project([col(y|$y.id,'id')])->sort(['id']); - }, meta::relational::graphFetch::tests::resultSourcing::identityMappingForDate, ^Runtime(connections = [$jsonConnection, createDbAndGetConnection()]), meta::relational::extension::relationalExtensions()); + }, meta::relational::graphFetch::tests::resultSourcing::identityMappingForDate, ^Runtime(connectionStores= [ + ^ConnectionStore( + element=^ModelStore(), + connection=$jsonConnection), createDbAndGetConnection()]), meta::relational::extension::relationalExtensions()); let expectedValue = 'id\n'+ '8\n'+ '9\n'; @@ -123,6 +134,7 @@ function <> meta::relational::graphFetch::tests::isolation::getRuntime(db: Database[1]):Runtime[1] { - ^Runtime(connections = ^TestDatabaseConnection(element=$db, type=DatabaseType.H2)) + ^Runtime(connectionStores= ^ConnectionStore(element=$db,connection=^TestDatabaseConnection(type=DatabaseType.H2))) } function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::isolation::testIsolationOfPropertyTargetFilter(): Boolean[1] { let runtime = getRuntime(IsolationTestDB1); - let connection = $runtime.connections->at(0)->cast(@DatabaseConnection); + let connection = $runtime.connectionStores.connection->at(0)->cast(@DatabaseConnection); dropAndCreateTableInDb(IsolationTestDB1, 'firmTable', $connection); dropAndCreateTableInDb(IsolationTestDB1, 'personTable', $connection); dropAndCreateTableInDb(IsolationTestDB1, 'personFirmBridgeTable', $connection); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testOrderedCrossStoreGraphFetch.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testOrderedCrossStoreGraphFetch.pure index 86baf1fd1af..6931605341f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testOrderedCrossStoreGraphFetch.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testOrderedCrossStoreGraphFetch.pure @@ -175,7 +175,7 @@ Mapping meta::pure::graphFetch::tests::XStore::ordered::orderedCrossMapping3 productId: [DB1]bridgeTable.productId, +tradeId: String[1] : [DB1]bridgeTable.tradeId } - + Product[prod_set] : Relational { productId : [DB1]productTable.productId, productName : [DB1]productTable.productName @@ -214,7 +214,7 @@ Mapping meta::pure::graphFetch::tests::XStore::ordered::orderedCrossMapping4 ~src S_Trade trade[trade_set] : $src } - + Trade[trade_set] : Pure { ~src S_Trade tradeId : $src.s_tradeId, @@ -225,7 +225,7 @@ Mapping meta::pure::graphFetch::tests::XStore::ordered::orderedCrossMapping4 productId: [DB1]bridgeTable.productId, +tradeId: String[1] : [DB1]bridgeTable.tradeId } - + Product[prod_set] : Relational { productId : [DB1]productTable.productId, productName : [DB1]productTable.productName @@ -256,6 +256,7 @@ Mapping meta::pure::graphFetch::tests::XStore::ordered::orderedCrossMapping4 ) ###Pure +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::executionPlan::profiles::*; import meta::pure::executionPlan::toString::*; @@ -264,12 +265,13 @@ import meta::pure::graphFetch::execution::*; import meta::pure::graphFetch::tests::XStore::ordered::*; import meta::relational::metamodel::execute::*; import meta::relational::functions::toDDL::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; function <> meta::pure::graphFetch::tests::XStore::ordered::createTablesInDb():Boolean[1] { - let runtime = ^Runtime(connections = [^TestDatabaseConnection(element=DB1, type=DatabaseType.H2)]); - let dbConn1 = $runtime.connections->at(0)->cast(@DatabaseConnection); + let runtime = ^Runtime(connectionStores= [^ConnectionStore(element=DB1,connection=^TestDatabaseConnection(type=DatabaseType.H2))]); + let dbConn1 = $runtime.connectionStores.connection->at(0)->cast(@DatabaseConnection); dropAndCreateTableInDb(DB1, 'productTable', $dbConn1); dropAndCreateTableInDb(DB1, 'synonymTable', $dbConn1); @@ -303,21 +305,20 @@ function <> {serverVersion.start='v1_32_0'} meta::pur } }#; - let jsonConnection = ^meta::pure::mapping::modelToModel::JsonModelConnection + let jsonConnection = ^meta::external::store::model::JsonModelConnection ( - element = ^meta::pure::mapping::modelToModel::ModelStore(), - class = S_Trade, + class = S_Trade, url = 'data:application/json,'+ '{"s_tradeId": 1, "s_tradeDetails": "30:100", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 2, "s_tradeDetails": "31:200", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 3, "s_tradeDetails": "30:300", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}'+ '{"s_tradeId": 4, "s_tradeDetails": "31:400", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}' ); - let dbRuntime = meta::relational::tests::testRuntime(); + let dbRuntime = meta::external::store::relational::tests::testRuntime(); let query = {|Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::pure::graphFetch::tests::XStore::ordered::orderedCrossMapping1; - let runtime = ^$dbRuntime(connections = $dbRuntime.connections->concatenate($jsonConnection)); + let runtime = ^$dbRuntime(connectionStores = $dbRuntime.connectionStores->concatenate(^ConnectionStore(connection=$jsonConnection,element = ^meta::external::store::model::ModelStore()))); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -345,21 +346,20 @@ function <> {serverVersion.start='v1_32_0'} meta::pur } }#; - let jsonConnection = ^meta::pure::mapping::modelToModel::JsonModelConnection + let jsonConnection = ^meta::external::store::model::JsonModelConnection ( - element = ^meta::pure::mapping::modelToModel::ModelStore(), - class = S_Trade, + class = S_Trade, url = 'data:application/json,'+ '{"s_tradeId": 1, "s_tradeDetails": "30:100", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 2, "s_tradeDetails": "31:200", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 3, "s_tradeDetails": "30:300", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}'+ '{"s_tradeId": 4, "s_tradeDetails": "31:400", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}' ); - let dbRuntime = meta::relational::tests::testRuntime(); + let dbRuntime = meta::external::store::relational::tests::testRuntime(); let query = {|Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::pure::graphFetch::tests::XStore::ordered::orderedCrossMapping1; - let runtime = ^$dbRuntime(connections = $dbRuntime.connections->concatenate($jsonConnection)); + let runtime = ^$dbRuntime(connectionStores = $dbRuntime.connectionStores->concatenate(^ConnectionStore(connection=$jsonConnection,element = ^meta::external::store::model::ModelStore()))); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -387,21 +387,20 @@ function <> {serverVersion.start='v1_32_0'} meta::pur } }#; - let jsonConnection = ^meta::pure::mapping::modelToModel::JsonModelConnection + let jsonConnection = ^meta::external::store::model::JsonModelConnection ( - element = ^meta::pure::mapping::modelToModel::ModelStore(), - class = S_Trade, + class = S_Trade, url = 'data:application/json,'+ '{"s_tradeId": 1, "s_tradeDetails": "30:100", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 2, "s_tradeDetails": "31:200", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 3, "s_tradeDetails": "30:300", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}'+ '{"s_tradeId": 4, "s_tradeDetails": "31:400", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}' ); - let dbRuntime = meta::relational::tests::testRuntime(); + let dbRuntime = meta::external::store::relational::tests::testRuntime(); let query = {|Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::pure::graphFetch::tests::XStore::ordered::orderedCrossMapping1; - let runtime = ^$dbRuntime(connections = $dbRuntime.connections->concatenate($jsonConnection)); + let runtime = ^$dbRuntime(connectionStores = $dbRuntime.connectionStores->concatenate(^ConnectionStore(connection=$jsonConnection,element = ^meta::external::store::model::ModelStore()))); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -426,21 +425,20 @@ function <> {serverVersion.start='v1_32_0'} meta::pur } }#; - let jsonConnection = ^meta::pure::mapping::modelToModel::JsonModelConnection + let jsonConnection = ^meta::external::store::model::JsonModelConnection ( - element = ^meta::pure::mapping::modelToModel::ModelStore(), - class = S_Trade, + class = S_Trade, url = 'data:application/json,'+ '{"s_tradeId": 1, "s_tradeDetails": "30:100", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 2, "s_tradeDetails": "31:200", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 3, "s_tradeDetails": "30:300", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}'+ '{"s_tradeId": 4, "s_tradeDetails": "31:400", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}' ); - let dbRuntime = meta::relational::tests::testRuntime(); + let dbRuntime = meta::external::store::relational::tests::testRuntime(); let query = {|Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::pure::graphFetch::tests::XStore::ordered::orderedCrossMapping2; - let runtime = ^$dbRuntime(connections = $dbRuntime.connections->concatenate($jsonConnection)); + let runtime = ^$dbRuntime(connectionStores = $dbRuntime.connectionStores->concatenate(^ConnectionStore(connection=$jsonConnection,element = ^meta::external::store::model::ModelStore()))); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -465,21 +463,20 @@ function <> {serverVersion.start='v1_32_0'} meta::pur } }#; - let jsonConnection = ^meta::pure::mapping::modelToModel::JsonModelConnection + let jsonConnection = ^meta::external::store::model::JsonModelConnection ( - element = ^meta::pure::mapping::modelToModel::ModelStore(), - class = S_Trade, + class = S_Trade, url = 'data:application/json,'+ '{"s_tradeId": 1, "s_tradeDetails": "30:100", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 2, "s_tradeDetails": "31:200", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 3, "s_tradeDetails": "30:300", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}'+ '{"s_tradeId": 4, "s_tradeDetails": "31:400", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}' ); - let dbRuntime = meta::relational::tests::testRuntime(); + let dbRuntime = meta::external::store::relational::tests::testRuntime(); let query = {|Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::pure::graphFetch::tests::XStore::ordered::orderedCrossMapping3; - let runtime = ^$dbRuntime(connections = $dbRuntime.connections->concatenate($jsonConnection)); + let runtime = ^$dbRuntime(connectionStores = $dbRuntime.connectionStores->concatenate(^ConnectionStore(connection=$jsonConnection,element = ^meta::external::store::model::ModelStore()))); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -506,21 +503,20 @@ function <> {serverVersion.start='v1_32_0'} meta::pur } }#; - let jsonConnection = ^meta::pure::mapping::modelToModel::JsonModelConnection + let jsonConnection = ^meta::external::store::model::JsonModelConnection ( - element = ^meta::pure::mapping::modelToModel::ModelStore(), - class = S_Trade, + class = S_Trade, url = 'data:application/json,'+ '{"s_tradeId": 1, "s_tradeDetails": "30:100", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 2, "s_tradeDetails": "31:200", "s_traderDetails": "abc:F_Name_1:L_Name_1"}'+ '{"s_tradeId": 3, "s_tradeDetails": "30:300", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}'+ '{"s_tradeId": 4, "s_tradeDetails": "31:400", "s_traderDetails": "xyz:F_Name_2:L_Name_2"}' ); - let dbRuntime = meta::relational::tests::testRuntime(); + let dbRuntime = meta::external::store::relational::tests::testRuntime(); let query = {|TradeWrapper.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::pure::graphFetch::tests::XStore::ordered::orderedCrossMapping4; - let runtime = ^$dbRuntime(connections = $dbRuntime.connections->concatenate($jsonConnection)); + let runtime = ^$dbRuntime(connectionStores = $dbRuntime.connectionStores->concatenate(^ConnectionStore(connection=$jsonConnection,element = ^meta::external::store::model::ModelStore()))); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testSimpleRelationalGraphFetch.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testSimpleRelationalGraphFetch.pure index d4165ae47af..c96539317f3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testSimpleRelationalGraphFetch.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testSimpleRelationalGraphFetch.pure @@ -16,6 +16,7 @@ import meta::relational::tests::model::simple::*; import meta::pure::executionPlan::profiles::*; import meta::pure::graphFetch::execution::*; import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; function <> meta::relational::graphFetch::tests::simple::setup(): Boolean[1] { @@ -37,7 +38,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Person.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -59,7 +60,7 @@ function <> {serverVersion.start='v1_19_0'} meta::re }#; let query = {|Person.all()->filter(x | $x.age < 22)->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -79,7 +80,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Person.all()->filter(x | $x.age <= 22)->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -103,7 +104,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Person.all()->graphFetch($tree, 2)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -136,7 +137,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Person.all()->filter(x | $x.age <= 22)->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -167,7 +168,7 @@ function <> {serverVersion.start='v1_19_0 }#; let query = {|Person.all()->filter(x | $x.age <= 22)->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -197,7 +198,7 @@ function <> {serverVersion.start='v1_32_0'} meta::rel }#; let query = {|Person.all()->filter(x | $x.manager.age <= 22)->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; assertJsonStringsEqual( @@ -226,7 +227,7 @@ function <> {serverVersion.start='v1_19_0 }#; let query = {|Person.all()->filter(x | $x.age <= 22)->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -264,7 +265,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Firm.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -289,7 +290,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Firm.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMappingWithFilter; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -312,7 +313,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Person.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMappingWithFilter; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -341,7 +342,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Person.all()->graphFetch($tree, 1)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -370,7 +371,7 @@ function <> {serverVersion.start='v1_21_0'} meta::rel }#; let query = {|Person.all()->graphFetchChecked($tree, 2)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -405,12 +406,12 @@ function <> {serverVersion.start='v1_20_0'} meta::rel let query = {|Person.all()->graphFetch($tree)->serialize($tree, $alloyConfig)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; assertJsonStringsEqual( - '[{"objectReference":"ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyNTQ6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoibWV0YTo6cmVsYXRpb25hbDo6dGVzdHM6OmRiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjoxfQ","value":{"firstName":"Peter","lastName":"Smith","firm":{"legalName":"Firm X","address":{"@type":"meta::relational::tests::model::simple::Address","type":"meta::relational::tests::model::simple::GeographicEntityType.CITY"},"@type":"meta::relational::tests::model::simple::Firm"},"@type":"meta::relational::tests::model::simple::Person","age":23}},{"objectReference":"ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyNTQ6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoibWV0YTo6cmVsYXRpb25hbDo6dGVzdHM6OmRiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjoyfQ","value":{"firstName":"John","lastName":"Johnson","firm":{"legalName":"Firm X","address":{"@type":"meta::relational::tests::model::simple::Address","type":"meta::relational::tests::model::simple::GeographicEntityType.CITY"},"@type":"meta::relational::tests::model::simple::Firm"},"@type":"meta::relational::tests::model::simple::Person","age":22}},{"objectReference":"ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyNTQ6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoibWV0YTo6cmVsYXRpb25hbDo6dGVzdHM6OmRiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjozfQ","value":{"firstName":"John","lastName":"Hill","firm":{"legalName":"Firm X","address":{"@type":"meta::relational::tests::model::simple::Address","type":"meta::relational::tests::model::simple::GeographicEntityType.CITY"},"@type":"meta::relational::tests::model::simple::Firm"},"@type":"meta::relational::tests::model::simple::Person","age":12}},{"objectReference":"ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyNTQ6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoibWV0YTo6cmVsYXRpb25hbDo6dGVzdHM6OmRiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjo0fQ","value":{"firstName":"Anthony","lastName":"Allen","firm":{"legalName":"Firm X","address":{"@type":"meta::relational::tests::model::simple::Address","type":"meta::relational::tests::model::simple::GeographicEntityType.CITY"},"@type":"meta::relational::tests::model::simple::Firm"},"@type":"meta::relational::tests::model::simple::Person","age":22}},{"objectReference":"ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyNTQ6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoibWV0YTo6cmVsYXRpb25hbDo6dGVzdHM6OmRiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjo1fQ","value":{"firstName":"Fabrice","lastName":"Roberts","firm":{"legalName":"Firm A","address":{"@type":"meta::relational::tests::model::simple::Address","type":"meta::relational::tests::model::simple::GeographicEntityType.CITY"},"@type":"meta::relational::tests::model::simple::Firm"},"@type":"meta::relational::tests::model::simple::Person","age":34}},{"objectReference":"ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyNTQ6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoibWV0YTo6cmVsYXRpb25hbDo6dGVzdHM6OmRiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjo2fQ","value":{"firstName":"Oliver","lastName":"Hill","firm":{"legalName":"Firm B","address":{"@type":"meta::relational::tests::model::simple::Address","type":"meta::relational::tests::model::simple::GeographicEntityType.CITY"},"@type":"meta::relational::tests::model::simple::Firm"},"@type":"meta::relational::tests::model::simple::Person","age":32}},{"objectReference":"ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyNTQ6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoibWV0YTo6cmVsYXRpb25hbDo6dGVzdHM6OmRiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjo3fQ","value":{"firstName":"David","lastName":"Harris","firm":{"legalName":"Firm C","address":{"@type":"meta::relational::tests::model::simple::Address","type":"meta::relational::tests::model::simple::GeographicEntityType.CITY"},"@type":"meta::relational::tests::model::simple::Firm"},"@type":"meta::relational::tests::model::simple::Person","age":35}}]', + '[{"objectReference":"ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyMjc6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjoxfQ","value":{"firstName":"Peter","lastName":"Smith","firm":{"legalName":"Firm X","address":{"@type":"meta::relational::tests::model::simple::Address","type":"meta::relational::tests::model::simple::GeographicEntityType.CITY"},"@type":"meta::relational::tests::model::simple::Firm"},"@type":"meta::relational::tests::model::simple::Person","age":23}},{"objectReference":"ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyMjc6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjoyfQ","value":{"firstName":"John","lastName":"Johnson","firm":{"legalName":"Firm X","address":{"@type":"meta::relational::tests::model::simple::Address","type":"meta::relational::tests::model::simple::GeographicEntityType.CITY"},"@type":"meta::relational::tests::model::simple::Firm"},"@type":"meta::relational::tests::model::simple::Person","age":22}},{"objectReference":"ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyMjc6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjozfQ","value":{"firstName":"John","lastName":"Hill","firm":{"legalName":"Firm X","address":{"@type":"meta::relational::tests::model::simple::Address","type":"meta::relational::tests::model::simple::GeographicEntityType.CITY"},"@type":"meta::relational::tests::model::simple::Firm"},"@type":"meta::relational::tests::model::simple::Person","age":12}},{"objectReference":"ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyMjc6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjo0fQ","value":{"firstName":"Anthony","lastName":"Allen","firm":{"legalName":"Firm X","address":{"@type":"meta::relational::tests::model::simple::Address","type":"meta::relational::tests::model::simple::GeographicEntityType.CITY"},"@type":"meta::relational::tests::model::simple::Firm"},"@type":"meta::relational::tests::model::simple::Person","age":22}},{"objectReference":"ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyMjc6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjo1fQ","value":{"firstName":"Fabrice","lastName":"Roberts","firm":{"legalName":"Firm A","address":{"@type":"meta::relational::tests::model::simple::Address","type":"meta::relational::tests::model::simple::GeographicEntityType.CITY"},"@type":"meta::relational::tests::model::simple::Firm"},"@type":"meta::relational::tests::model::simple::Person","age":34}},{"objectReference":"ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyMjc6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjo2fQ","value":{"firstName":"Oliver","lastName":"Hill","firm":{"legalName":"Firm B","address":{"@type":"meta::relational::tests::model::simple::Address","type":"meta::relational::tests::model::simple::GeographicEntityType.CITY"},"@type":"meta::relational::tests::model::simple::Firm"},"@type":"meta::relational::tests::model::simple::Person","age":32}},{"objectReference":"ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyMjc6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjo3fQ","value":{"firstName":"David","lastName":"Harris","firm":{"legalName":"Firm C","address":{"@type":"meta::relational::tests::model::simple::Address","type":"meta::relational::tests::model::simple::GeographicEntityType.CITY"},"@type":"meta::relational::tests::model::simple::Firm"},"@type":"meta::relational::tests::model::simple::Person","age":35}}]', $result ); } @@ -418,7 +419,7 @@ function <> {serverVersion.start='v1_20_0'} meta::rel function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::simple::testObjectReferenceInUsingResultReferences(): Boolean[1] { let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let tree1 = #{ Person { @@ -432,13 +433,13 @@ function <> {serverVersion.start='v1_19_0'} meta::rel ->map(x | $x->meta::json::getValue('objectReference')->cast(@meta::json::JSONString).value); assertSameElements( [ - 'ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyNTQ6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoibWV0YTo6cmVsYXRpb25hbDo6dGVzdHM6OmRiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjo0fQ', - 'ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyNTQ6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoibWV0YTo6cmVsYXRpb25hbDo6dGVzdHM6OmRiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjo1fQ', - 'ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyNTQ6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoibWV0YTo6cmVsYXRpb25hbDo6dGVzdHM6OmRiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjo2fQ', - 'ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyNTQ6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoibWV0YTo6cmVsYXRpb25hbDo6dGVzdHM6OmRiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjo3fQ', - 'ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyNTQ6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoibWV0YTo6cmVsYXRpb25hbDo6dGVzdHM6OmRiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjoxfQ', - 'ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyNTQ6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoibWV0YTo6cmVsYXRpb25hbDo6dGVzdHM6OmRiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjoyfQ', - 'ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyNTQ6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoibWV0YTo6cmVsYXRpb25hbDo6dGVzdHM6OmRiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjozfQ' + 'ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyMjc6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjo0fQ', + 'ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyMjc6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjo1fQ', + 'ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyMjc6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjo2fQ', + 'ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyMjc6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjo3fQ', + 'ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyMjc6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjoxfQ', + 'ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyMjc6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjoyfQ', + 'ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDA1MTptZXRhOjpyZWxhdGlvbmFsOjp0ZXN0czo6c2ltcGxlUmVsYXRpb25hbE1hcHBpbmdJbmM6MDAwMDAwMDA0MTptZXRhX3JlbGF0aW9uYWxfdGVzdHNfbW9kZWxfc2ltcGxlX1BlcnNvbjowMDAwMDAwMDQxOm1ldGFfcmVsYXRpb25hbF90ZXN0c19tb2RlbF9zaW1wbGVfUGVyc29uOjAwMDAwMDAyMjc6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCJ9LCJlbGVtZW50IjoiIiwicG9zdFByb2Nlc3NvcldpdGhQYXJhbWV0ZXIiOltdLCJwb3N0UHJvY2Vzc29ycyI6W10sInRpbWVab25lIjoiR01UIiwidHlwZSI6IkgyIn06MDAwMDAwMDAxMTp7InBrJF8wIjozfQ' ], $references ); @@ -475,7 +476,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Person.all()->graphFetch($tree, 1)->serialize($tree)}; let mapping = meta::relational::tests::PersonOtherNamesMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -535,16 +536,19 @@ function <> {serverVersion.start='v1_19_0'} meta::rel let query = {|Firm.all()->graphFetch(#{Firm{legalName,employees{firstName}}}#)->serialize(#{Firm{legalName,employees{firstName}}}#)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = ^meta::pure::runtime::Runtime + let runtime = ^meta::core::runtime::Runtime ( - connections = ^RelationalDatabaseConnection + connectionStores = + ^meta::core::runtime::ConnectionStore( + element=meta::relational::tests::db, + connection= + ^RelationalDatabaseConnection ( - element = meta::relational::tests::db, type = meta::relational::runtime::DatabaseType.H2, datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification(), authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::TestDatabaseAuthenticationStrategy(), postProcessors = ^MapperPostProcessor(mappers = ^TableNameMapper(schema = ^SchemaNameMapper(from = 'default', to = 'default'), from = 'personTable' , to = 'differentPersonTable')) - ) + )) ); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -565,7 +569,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|OrderPnl.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -592,7 +596,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|OrderPnl.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -625,7 +629,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|AccountPnl.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -750,7 +754,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Account.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -773,7 +777,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Account.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -794,7 +798,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Person.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -821,7 +825,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Person.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -848,7 +852,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Person.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -880,7 +884,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Firm.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -903,7 +907,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Product.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -927,7 +931,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Product.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -952,7 +956,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Product.all()->filter(x | $x.synonyms->exists(y | $y.type == ProductSynonymType.CUSIP))->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -978,7 +982,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Firm.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -1001,7 +1005,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Trade.all()->filter(x | $x.id > 8)->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -1023,7 +1027,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Trade.all()->filter(x | $x.id > 8)->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -1047,7 +1051,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Trade.all()->filter(x | $x.id < 3)->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -1082,7 +1086,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -1123,7 +1127,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -1149,7 +1153,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Product.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -1174,7 +1178,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Product.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -1202,7 +1206,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Product.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -1225,7 +1229,7 @@ function <> {serverVersion.start='v1_21_0'} meta::rel }#; let query = {|PersonWithConstraints.all()->graphFetchChecked($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -1245,7 +1249,7 @@ function <> {serverVersion.start='v1_21_0'} meta::rel }#; let query = {|Person.all()->graphFetchChecked($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -1268,7 +1272,7 @@ function <> {serverVersion.start='v1_21_0'} meta::rel }#; let query = {|PersonWithConstraints.all()->graphFetchChecked($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -1291,7 +1295,7 @@ function <> {serverVersion.start='v1_21_0'} meta::rel let query = {|meta::pure::executionPlan::constraints::tests::Person.all()->graphFetchChecked($tree)->serialize($tree)}; let mapping = meta::pure::executionPlan::constraints::tests::simpleRel; - let runtime = meta::relational::tests::testRuntime(meta::pure::executionPlan::constraints::tests::db); + let runtime = meta::external::store::relational::tests::testRuntime(meta::pure::executionPlan::constraints::tests::db); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -1315,16 +1319,16 @@ function <> {serverVersion.start='v1_19_0'} meta::rel long, new, package, private, protected, public, return, short, static, strictfp, super, switch, synchronized, this, throw, throws, - transient, try, void, volatile, while - } + transient, try, void, volatile, while + } }#; let query = {|testReservedWords.all()->filter(x|$x.class == 'Department A')->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; - + assertJsonStringsEqual('{"implements":19,"synchronized":"n","private":"e","const":8,"do":11,"float":17,"interface":"a","while":"v","long":"b","switch":"m","default":10,"goto":18,"protected":"f","public":"g","assert":3,"continue":9,"else":13,"catch":6,"class":"Department A","new":"c","quantity":1,"package":"d","static":"j","void":"t","break":4,"byte":5,"double":12,"finally":16,"this":"o","volatile":"u","abstract":2,"strictfp":"k","throws":"q","enum":14,"instanceof":20,"super":"l","boolean":1,"throw":"p","transient":"r","char":7,"final":15,"short":"i","try":"s","return":"h"}',$result); } @@ -1334,14 +1338,14 @@ function <> {serverVersion.start='v1_19_0'} meta::rel class { desks, students - } + } }#; let query = {|class.all()->filter(x|$x.students == 40)->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; - + assertJsonStringsEqual('{"students":40,"desks":25}',$result); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testSubTypeGraphFetch.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testSubTypeGraphFetch.pure index 8d37fbf78cc..845b7715b0b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testSubTypeGraphFetch.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/testSubTypeGraphFetch.pure @@ -18,15 +18,19 @@ import meta::relational::tests::model::simple::*; import meta::pure::executionPlan::profiles::*; import meta::pure::graphFetch::execution::*; import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::execute::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function <> meta::relational::graphFetch::tests::subType::setup(): Boolean[1] { - let runtime = ^Runtime(connections = [^TestDatabaseConnection(element=meta::relational::graphFetch::tests::subType::db, type=DatabaseType.H2)]); - let connection = $runtime.connections->at(0)->cast(@DatabaseConnection); + let runtime = ^Runtime(connectionStores= [^ConnectionStore(element=meta::relational::graphFetch::tests::subType::db,connection=^TestDatabaseConnection(type=DatabaseType.H2))]); + let connection = $runtime.connectionStores->at(0).connection->cast(@DatabaseConnection); executeInDb('Drop table if exists addressTable;', $connection); executeInDb('Drop table if exists landmarkTable;', $connection); executeInDb('Drop table if exists landmarkTable1;', $connection); @@ -88,13 +92,13 @@ function <> {serverVersion.start='v1_32_0'} meta::rel ' Id,\n'+ ' ->subType(@meta::relational::graphFetch::tests::subType::Street){\n'+ ' street\n'+ - ' }\n'+ + ' }\n'+ ' }\n'+ '}#'; let tree = meta::legend::compileLegendValueSpecification($treeString)->cast(@RootGraphFetchTree); let query = {|meta::relational::graphFetch::tests::subType::Address.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::graphFetch::tests::subType::unionMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; assertJsonStringsEqual( @@ -121,14 +125,14 @@ function <> {serverVersion.start='v1_32_0'} meta::rel ' coordinate{\n' + ' latitude,\n' + ' longitude\n' + - ' }\n'+ - ' }\n'+ + ' }\n'+ + ' }\n'+ ' }\n'+ '}#'; let tree = meta::legend::compileLegendValueSpecification($treeString)->cast(@RootGraphFetchTree); let query = {|meta::relational::graphFetch::tests::subType::Address.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::graphFetch::tests::subType::unionMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -156,14 +160,14 @@ function <> {serverVersion.start='v1_32_0'} meta::rel ' coordinate{\n' + ' latitude,\n' + ' longitude\n' + - ' }\n'+ - ' }\n'+ + ' }\n'+ + ' }\n'+ ' }\n'+ '}#'; let tree = meta::legend::compileLegendValueSpecification($treeString)->cast(@RootGraphFetchTree); let query = {|meta::relational::graphFetch::tests::subType::Address.all()->filter(x | $x.Id->in([1,3]))->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::graphFetch::tests::subType::unionMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -187,17 +191,17 @@ function <> {serverVersion.start='v1_32_0'} meta::rel ' coordinate{\n' + ' latitude,\n' + ' longitude\n' + - ' }\n'+ - ' },\n'+ + ' }\n'+ + ' },\n'+ ' ->subType(@meta::relational::graphFetch::tests::subType::City){\n'+ ' name\n' + - ' }\n'+ + ' }\n'+ ' }\n'+ '}#'; let tree = meta::legend::compileLegendValueSpecification($treeString)->cast(@RootGraphFetchTree); let query = {|meta::relational::graphFetch::tests::subType::Address.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::graphFetch::tests::subType::unionMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -225,16 +229,16 @@ function <> {serverVersion.start='v1_32_0'} meta::rel ' coordinate{\n' + ' latitude,\n' + ' longitude\n' + - ' }\n'+ - ' },\n'+ + ' }\n'+ + ' },\n'+ ' ->subType(@meta::relational::graphFetch::tests::subType::City){\n'+ ' name\n' + - ' }\n'+ + ' }\n'+ ' }\n'+ '}#'; let tree = meta::legend::compileLegendValueSpecification($treeString)->cast(@RootGraphFetchTree); let mapping = meta::relational::graphFetch::tests::subType::InheritanceMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let query = {|meta::relational::graphFetch::tests::subType::Address.all()->graphFetch($tree)->serialize($tree)}; let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -260,16 +264,16 @@ function <> {serverVersion.start='v1_32_0'} meta::rel ' coordinate{\n' + ' latitude,\n' + ' longitude\n' + - ' }\n'+ - ' },\n'+ + ' }\n'+ + ' },\n'+ ' ->subType(@meta::relational::graphFetch::tests::subType::City){\n'+ ' name\n' + - ' }\n'+ + ' }\n'+ ' }\n'+ '}#'; let tree = meta::legend::compileLegendValueSpecification($treeString)->cast(@RootGraphFetchTree); let mapping = meta::relational::graphFetch::tests::subType::unionMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let alloyConfigWithoutIncludingType = ^meta::pure::graphFetch::execution::AlloySerializationConfig( typeKeyName = '@type', @@ -289,7 +293,7 @@ function <> {serverVersion.start='v1_32_0'} meta::rel '{"name":"City2","Id":5,"landmark":{"lmName":"lm5"}},' + '{"name":"City3","Id":6,"landmark":{"lmName":"lm6"}}]', $result1); - + let alloyConfigIncludingType = ^meta::pure::graphFetch::execution::AlloySerializationConfig( typeKeyName = '@type', includeType = true, @@ -308,7 +312,7 @@ function <> {serverVersion.start='v1_32_0'} meta::rel '{"@type":"City","name":"City2","Id":5,"landmark":{"@type":"LandMark","lmName":"lm5"}},' + '{"@type":"City","name":"City3","Id":6,"landmark":{"@type":"LandMark","lmName":"lm6"}}]', $result2); - + let alloyConfigIncludingFullyQualifiedTypePath = ^meta::pure::graphFetch::execution::AlloySerializationConfig( typeKeyName = '@type', includeType = true, @@ -335,17 +339,17 @@ function <> {serverVersion.start='v1_32_0'} meta::rel ' meta::relational::graphFetch::tests::subType::Address{\n'+ ' type,\n'+ ' ->subType(@meta::relational::graphFetch::tests::subType::Street){\n'+ - ' street\n' + - ' },\n'+ + ' street\n' + + ' },\n'+ ' ->subType(@meta::relational::graphFetch::tests::subType::City){\n'+ ' name\n' + - ' }\n'+ + ' }\n'+ ' }\n'+ '}#'; let tree = meta::legend::compileLegendValueSpecification($treeString)->cast(@RootGraphFetchTree); let query = {|meta::relational::graphFetch::tests::subType::Address.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::graphFetch::tests::subType::unionMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -366,17 +370,17 @@ function <> {serverVersion.start='v1_32_0'} meta::rel ' meta::relational::graphFetch::tests::subType::Address{\n'+ ' Id,' + ' ->subType(@meta::relational::graphFetch::tests::subType::Street){\n'+ - ' type\n' + - ' },\n'+ + ' type\n' + + ' },\n'+ ' ->subType(@meta::relational::graphFetch::tests::subType::City){\n'+ ' type\n' + - ' }\n'+ + ' }\n'+ ' }\n'+ '}#'; let tree = meta::legend::compileLegendValueSpecification($treeString)->cast(@RootGraphFetchTree); let query = {|meta::relational::graphFetch::tests::subType::Address.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::graphFetch::tests::subType::unionMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -398,12 +402,12 @@ function <> {serverVersion.start='v1_32_0'} meta::rel ' Id,\n'+ ' landmark{\n' + ' lmName\n' + - ' }\n'+ + ' }\n'+ ' }\n'+ '}#'; let tree = meta::legend::compileLegendValueSpecification($treeString)->cast(@RootGraphFetchTree); let mapping = meta::relational::graphFetch::tests::subType::InheritanceMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let query = {|meta::relational::graphFetch::tests::subType::Address.all()->graphFetch($tree)->serialize($tree)}; let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -423,12 +427,12 @@ function <> {serverVersion.start='v1_32_0'} meta::rel ' Id,\n'+ ' landmark{\n' + ' lmName\n' + - ' }\n'+ + ' }\n'+ ' }\n'+ '}#'; let tree = meta::legend::compileLegendValueSpecification($treeString)->cast(@RootGraphFetchTree); let mapping = meta::relational::graphFetch::tests::subType::unionMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let query = {|meta::relational::graphFetch::tests::subType::Address.all()->graphFetch($tree)->serialize($tree)}; let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -454,20 +458,20 @@ function <> {serverVersion.start='v1_32_0'} meta::rel ' coordinate{\n' + ' latitude,\n' + ' longitude\n' + - ' }\n'+ - ' },\n'+ + ' }\n'+ + ' },\n'+ ' ->subType(@meta::relational::graphFetch::tests::subType::City){\n'+ ' name\n' + - ' }\n'+ + ' }\n'+ ' }\n'+ '}#'; let tree = meta::legend::compileLegendValueSpecification($treeString)->cast(@RootGraphFetchTree); let mapping = meta::relational::graphFetch::tests::subType::RootSubTypeWithRootPropertyUnionMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let query1 = {|meta::relational::graphFetch::tests::subType::Address.all()->graphFetch($tree)->serialize($tree)}; let result1 = execute($query1, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; - + assertJsonStringsEqual('[{"coordinate":{"latitude":"31.8951","longitude":" -77.0364"},"street":"str1","Id":1,"landmark":{"lmName":"lm1"}},' + '{"coordinate":{"latitude":"33.8951","longitude":" -75.0364"},"street":"str2","Id":2,"landmark":{"lmName":"lm2"}},' + '{"coordinate":null,"street":"str3","Id":3,"landmark":{"lmName":"lm3"}},' + @@ -490,16 +494,16 @@ function <> {serverVersion.start='v1_32_0'} meta::rel ' coordinate{\n' + ' latitude,\n' + ' longitude\n' + - ' }\n'+ - ' },\n'+ + ' }\n'+ + ' },\n'+ ' ->subType(@meta::relational::graphFetch::tests::subType::City){\n'+ ' name\n' + - ' }\n'+ + ' }\n'+ ' }\n'+ '}#'; let tree = meta::legend::compileLegendValueSpecification($treeString)->cast(@RootGraphFetchTree); let mapping = meta::relational::graphFetch::tests::subType::RootSubTypeWithSubtypeLevelPropertyUnionMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let query1 = {|meta::relational::graphFetch::tests::subType::Address.all()->graphFetch($tree)->serialize($tree)}; let result1 = execute($query1, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -526,20 +530,20 @@ function <> {serverVersion.start='v1_32_0'} meta::rel ' coordinate{\n' + ' latitude,\n' + ' longitude\n' + - ' }\n'+ - ' },\n'+ + ' }\n'+ + ' },\n'+ ' ->subType(@meta::relational::graphFetch::tests::subType::City){\n'+ ' name\n' + - ' }\n'+ + ' }\n'+ ' }\n'+ '}#'; let tree = meta::legend::compileLegendValueSpecification($treeString)->cast(@RootGraphFetchTree); let mapping = meta::relational::graphFetch::tests::subType::RootSubTypeWithSubtypeLevelAndRootLevelPropertyUnionMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let query1 = {|meta::relational::graphFetch::tests::subType::Address.all()->graphFetch($tree)->serialize($tree)}; let result1 = execute($query1, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; - + assertJsonStringsEqual('[{"coordinate":{"latitude":"31.8951","longitude":" -77.0364"},"street":"str1","Id":1,"landmark":{"lmName":"lm1"}},' + '{"coordinate":{"latitude":"33.8951","longitude":" -75.0364"},"street":"str2","Id":2,"landmark":{"lmName":"lm2"}},' + '{"coordinate":{"latitude":"34.8951","longitude":" -72.0364"},"street":"str3","Id":3,"landmark":{"lmName":"lm3"}},' + @@ -556,16 +560,16 @@ function <> {serverVersion.start='v1_32_0'} meta::rel ' Id,\n'+ ' ->subType(@meta::relational::graphFetch::tests::subType::Street){\n'+ ' landmarkName\n' + - ' }\n' + + ' }\n' + ' }\n'+ '}#'; let tree = meta::legend::compileLegendValueSpecification($treeString)->cast(@RootGraphFetchTree); let mapping = meta::relational::graphFetch::tests::subType::RootSubTypeWithSubtypeLevelAndRootLevelPropertyUnionMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let query1 = {|meta::relational::graphFetch::tests::subType::Address.all()->graphFetch($tree)->serialize($tree)}; let result1 = execute($query1, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; - + assertJsonStringsEqual('[{"Id":1,"landmarkName()":"lm1"},' + '{"Id":2,"landmarkName()":"lm2"},' + '{"Id":3,"landmarkName()":"lm3"},' + @@ -580,12 +584,12 @@ Class meta::relational::graphFetch::tests::subType::Address landmark : meta::relational::graphFetch::tests::subType::LandMark[1]; type : String[1]; } - + Class meta::relational::graphFetch::tests::subType::Street extends meta::relational::graphFetch::tests::subType::Address { street: String[1]; coordinate : meta::relational::graphFetch::tests::subType::Coordinate[1]; - landmarkName(){$this.landmark.lmName} : String[1]; + landmarkName(){$this.landmark.lmName} : String[1]; } Class meta::relational::graphFetch::tests::subType::City extends meta::relational::graphFetch::tests::subType::Address @@ -845,7 +849,7 @@ Database meta::relational::graphFetch::tests::subType::db Table cityTable(Id INT PRIMARY KEY, name VARCHAR(200)) Table landmarkTable(addId INT PRIMARY KEY, lmName VARCHAR(200)) Table landmarkTable1(addId INT PRIMARY KEY, lmName VARCHAR(200)) - Table landmarkTable2(addId INT PRIMARY KEY, lmName VARCHAR(200)) + Table landmarkTable2(addId INT PRIMARY KEY, lmName VARCHAR(200)) Table coordinateTable(streetId INT PRIMARY KEY, latitude VARCHAR(200), longitude VARCHAR(200)) Table coordinateTable1(streetId INT PRIMARY KEY, latitude VARCHAR(200), longitude VARCHAR(200)) Table coordinateTable2(streetId INT PRIMARY KEY, latitude VARCHAR(200), longitude VARCHAR(200)) @@ -864,5 +868,5 @@ Database meta::relational::graphFetch::tests::subType::db Filter address_filter(addressTable.type = 'address') Filter city_filter(addressTable.type = 'city') ) - - + + diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/union/relationalGraphFetchUnionWithMilestoning.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/union/relationalGraphFetchUnionWithMilestoning.pure index 80ce4600f79..b6f2ebfabaf 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/union/relationalGraphFetchUnionWithMilestoning.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/union/relationalGraphFetchUnionWithMilestoning.pure @@ -15,6 +15,7 @@ import meta::pure::executionPlan::toString::*; import meta::relational::metamodel::execute::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::pure::executionPlan::*; import meta::relational::tests::milestoning::*; import meta::pure::executionPlan::profiles::*; @@ -22,13 +23,13 @@ import meta::pure::graphFetch::execution::*; function <> meta::relational::graphFetch::tests::union::relationalGraphFetchUnionWithMilestoning::setUp():Boolean[1] { - let connection = meta::relational::tests::testRuntime(db).connections->toOne()->cast(@TestDatabaseConnection); - + let connection = meta::external::store::relational::tests::testRuntime(db).connectionStores.connection->toOne()->cast(@TestDatabaseConnection); + executeInDb('drop table if exists OrderTable;',$connection); executeInDb('create table OrderTable (orderDate TIMESTAMP, id Integer, prodFk Integer)',$connection); executeInDb('insert into OrderTable values(\'2015-8-26 00:00:00\', 1,1);',$connection); - + executeInDb('drop table if exists OrderTable2;',$connection); executeInDb('create table OrderTable2 (orderDate TIMESTAMP, id Integer, prodFk Integer)',$connection); executeInDb('insert into OrderTable2 values(\'2015-8-26 00:00:00\', 2,2);',$connection); @@ -37,12 +38,12 @@ function <> meta::relational::graphFe executeInDb('create table ProductTable (id Integer, name VARCHAR(200),type VARCHAR(200),exchange VARCHAR(200), referenceSystemName VARCHAR(200), EXTERNALREFERENCESYSTEMNAME VARCHAR(200), classificationSystemId Integer, from_z TIMESTAMP, thru_z TIMESTAMP);',$connection); executeInDb('insert into ProductTable values(1,\'ProductName1\',\'STOCK\',\'ISE\', \'SYS1\',\'SYS1\', 1, \'2015-8-15 00:00:00\', \'2015-8-26 00:00:00\');',$connection); executeInDb('insert into ProductTable values(2,\'ProductName2\',\'OPTION\',\'LNSE\', \'SYS1\',\'SYS1\', 1, \'2015-8-16 00:00:00\', \'2015-8-26 00:00:00\');',$connection); - + executeInDb('drop table if exists MilestonedProductTable2;',$connection); executeInDb('create table MilestonedProductTable2 (id Integer, name VARCHAR(200),type VARCHAR(200),exchange VARCHAR(200), referenceSystemName VARCHAR(200), EXTERNALREFERENCESYSTEMNAME VARCHAR(200), classificationSystemId Integer, from_z TIMESTAMP, thru_z TIMESTAMP);',$connection); executeInDb('insert into MilestonedProductTable2 values(1,\'ProductName3\',\'OPTION\',\'ISE\', \'SYS1\',\'SYS1\', 1, \'2015-8-15 00:00:00\', \'2015-10-24 00:00:00\');',$connection); executeInDb('insert into MilestonedProductTable2 values(2,\'ProductName4\',\'STOCK\',\'LNSE\', \'SYS1\',\'SYS1\', 1, \'2015-8-16 00:00:00\', \'2015-10-16 00:00:00\');',$connection); - + executeInDb('drop table if exists ProductSynonymTable;',$connection); executeInDb('create table ProductSynonymTable (prodId Integer, name VARCHAR(200), synonym VARCHAR(200), type VARCHAR(10), createdBy VARCHAR(200), from_z TIMESTAMP, thru_z TIMESTAMP);',$connection); @@ -57,7 +58,7 @@ function <> meta::relational::graphFe executeInDb('insert into ProductSynonymTableNoMilestoning values(6, \'ProductName1\',\'GS-Mod-S2\',\'STOCK\',\'Scottd\');',$connection); executeInDb('insert into ProductSynonymTableNoMilestoning values(7, \'ProductName2\',\'GS-Mod-S0\',\'CUSIP\',\'smith\');',$connection); executeInDb('insert into ProductSynonymTableNoMilestoning values(8, \'ProductName2\',\'GS-Mod-S1\',\'CUSIP\',\'smith\');',$connection); - + executeInDb('drop table if exists ProductClassificationTable;',$connection); executeInDb('create table ProductClassificationTable (type VARCHAR(200),type_description VARCHAR(400),system VARCHAR(200), exchange VARCHAR(200), from_z TIMESTAMP, thru_z TIMESTAMP);',$connection); executeInDb('insert into ProductClassificationTable values(\'STOCK\',\'STOCK DESC-V1\',\'SYS1\', \'LNSE\', \'2015-8-15 00:00:00\', \'2015-8-17 00:00:00\');',$connection); @@ -73,7 +74,7 @@ function <> meta::relational::graphFe executeInDb('insert into ProductClassificationTable2 values(\'STOCK\',\'STOCK DESC-V3\',\'SYS1\', \'LNSE\', \'2015-9-15 00:00:00\',\'2015-10-17 00:00:00\');',$connection); executeInDb('insert into ProductClassificationTable2 values(\'STOCK\',\'STOCK DESC-V4\',\'SYS1\', \'LNSE\', \'2015-10-17 00:00:00\',\'2015-12-31 00:00:00\');',$connection); executeInDb('insert into ProductClassificationTable2 values(\'OPTION\',\'OPTION DESC-V1\',\'SYS1\', \'ISE\', \'2015-8-17 00:00:00\',\'2020-8-23 00:00:00\');',$connection); - + executeInDb('drop table if exists ProductExchangeTable;',$connection); executeInDb('create table ProductExchangeTable (name VARCHAR(200), city VARCHAR(200), from_z TIMESTAMP, thru_z TIMESTAMP);',$connection); @@ -96,14 +97,14 @@ function <> {serverVersion.start='v1_32_0'} meta::rel { type }, - classificationTypeStr + classificationTypeStr } } }#; let query = {|Order.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::graphFetch::tests::union::relationalGraphFetchUnionWithMilestoning::MilestoningUnionMap; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let queryresult = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -125,14 +126,14 @@ function <> {serverVersion.start='v1_32_0'} meta::rel classificationExchangeName1, classificationExchangeName2, classificationExchangeName3 - + } } }#; let query = {|Order.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::graphFetch::tests::union::relationalGraphFetchUnionWithMilestoning::MilestoningUnionMap; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let queryresult = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -154,14 +155,14 @@ function <> {serverVersion.start='v1_32_0'} meta::rel synonyms(%2015-8-20){ type, synonym - } + } } } }#; let query = {|Order.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::graphFetch::tests::union::relationalGraphFetchUnionWithMilestoning::MilestoningUnionMap; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let queryresult = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; assertJsonStringsEqual( @@ -174,17 +175,17 @@ function <> {serverVersion.start='v1_32_0'} meta::rel ###Mapping import meta::relational::tests::milestoning::*; Mapping meta::relational::graphFetch::tests::union::relationalGraphFetchUnionWithMilestoning::MilestoningUnionMap -( +( *Order : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(o1, o2) } - + *Product : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(p1, p2) } - + *ProductClassification : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(c1, c2) @@ -199,7 +200,7 @@ Mapping meta::relational::graphFetch::tests::union::relationalGraphFetchUnionWit { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(s1, s2) } - + meta::relational::tests::milestoning::Order[o1] : Relational{ id : [db]OrderTable.id, product[p1] : [db]@Order_Product, @@ -211,18 +212,18 @@ Mapping meta::relational::graphFetch::tests::union::relationalGraphFetchUnionWit product[p1] : [db]@Order2_Product, product[p2] : [db]@Order2_MilestonedProductTable2 } - + meta::relational::tests::milestoning::Product[p1] : Relational{ - id : [db]ProductTable.id, + id : [db]ProductTable.id, name : [db]ProductTable.name, classification[c1] : [db]@Product_Classification, classification[c2] : [db]@Product_Classification2, synonyms[s1] : [db]@Product_Synonym, synonyms[s2] : [db]@Product_SynonymNoMilestoning } - + meta::relational::tests::milestoning::Product[p2] : Relational{ - id : [db]MilestonedProductTable2.id, + id : [db]MilestonedProductTable2.id, name : [db]MilestonedProductTable2.name, classification[c1] : [db]@MilestonedProductTable2_Classification, classification[c2] : [db]@MilestonedProductTable2_Classification2, @@ -234,22 +235,22 @@ Mapping meta::relational::graphFetch::tests::union::relationalGraphFetchUnionWit type : [db]ProductClassificationTable.type, description : [db]ProductClassificationTable.type_description, exchange[e1] : [db]@Classification_Exchange, - exchange[e2] : [db]@Classification_ExchangeNoMilestoning + exchange[e2] : [db]@Classification_ExchangeNoMilestoning } - + meta::relational::tests::milestoning::ProductClassification[c2] : Relational{ type : [db]ProductClassificationTable2.type, description : [db]ProductClassificationTable2.type_description, exchange[e1] : [db]@Classification2_Exchange, - exchange[e2] : [db]@Classification2_ExchangeNoMilestoning + exchange[e2] : [db]@Classification2_ExchangeNoMilestoning } - meta::relational::tests::milestoning::ProductSynonym[s1] : Relational{ + meta::relational::tests::milestoning::ProductSynonym[s1] : Relational{ type : [db]ProductSynonymTable.type, synonym : [db]ProductSynonymTable.synonym } - meta::relational::tests::milestoning::ProductSynonym[s2] : Relational{ + meta::relational::tests::milestoning::ProductSynonym[s2] : Relational{ type : [db]ProductSynonymTableNoMilestoning.type, synonym : [db]ProductSynonymTableNoMilestoning.synonym } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/union/testUnionPropertyLevel_Relational.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/union/testUnionPropertyLevel_Relational.pure index 946f25517d0..66b0169dafa 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/union/testUnionPropertyLevel_Relational.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/union/testUnionPropertyLevel_Relational.pure @@ -14,6 +14,7 @@ ###Pure import meta::pure::executionPlan::profiles::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::relational::metamodel::execute::*; @@ -21,40 +22,43 @@ import meta::relational::functions::database::*; import meta::relational::tests::mapping::union::*; import meta::pure::alloy::connections::alloy::specification::*; import meta::pure::alloy::connections::alloy::authentication::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::pure::executionPlan::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::graphFetch::execution::*; import meta::relational::tests::model::simple::*; function <> meta::relational::graphFetch::tests::union::propertyLevel::setup(): Boolean[1] { - let runtime = ^Runtime(connections = [^TestDatabaseConnection(element=meta::relational::tests::mapping::union::myDB, type=DatabaseType.H2)]); - let connection = $runtime.connections->at(0)->cast(@DatabaseConnection); - - executeInDb('Drop table if exists PersonSet1;', $connection); - executeInDb('Create Table PersonSet1 (ID INT, firstName_s1 VARCHAR(200), lastName_s1 VARCHAR(200), FirmID INT, ADDRESSID INT, NICKNAME VARCHAR(200));', $connection); - executeInDb('insert into PersonSet1 (ID, firstName_s1, lastName_s1, FirmID, ADDRESSID) values (1, \'Bran\', \'Scott\', 1, 1);', $connection); - executeInDb('insert into PersonSet1 (ID, firstName_s1, lastName_s1, FirmID, ADDRESSID) values (2, \'Ravi\', \'Anand\', 1, 2);', $connection); + let runtime = ^Runtime(connectionStores = [^ConnectionStore(element=meta::relational::tests::mapping::union::myDB, connection=^TestDatabaseConnection(type=DatabaseType.H2))]); + let connection = $runtime.connectionStores.connection->at(0)->cast(@DatabaseConnection); + + executeInDb('Drop table if exists PersonSet1;', $connection); + executeInDb('Create Table PersonSet1 (ID INT, firstName_s1 VARCHAR(200), lastName_s1 VARCHAR(200), FirmID INT, ADDRESSID INT, NICKNAME VARCHAR(200));', $connection); + executeInDb('insert into PersonSet1 (ID, firstName_s1, lastName_s1, FirmID, ADDRESSID) values (1, \'Bran\', \'Scott\', 1, 1);', $connection); + executeInDb('insert into PersonSet1 (ID, firstName_s1, lastName_s1, FirmID, ADDRESSID) values (2, \'Ravi\', \'Anand\', 1, 2);', $connection); executeInDb('insert into PersonSet1 (ID, firstName_s1, lastName_s1, FirmID, ADDRESSID) values (3, \'Sam\', \'Roberts\', 2, 2);', $connection); - executeInDb('insert into PersonSet1 (ID, firstName_s1, lastName_s1, FirmID, ADDRESSID) values (4, \'Novel\', \'David\', 2, 1);', $connection); + executeInDb('insert into PersonSet1 (ID, firstName_s1, lastName_s1, FirmID, ADDRESSID) values (4, \'Novel\', \'David\', 2, 1);', $connection); executeInDb('insert into PersonSet1 (ID, firstName_s1, lastName_s1, FirmID, ADDRESSID) values (21, \'Simran\', \'Bala\', 3, 1);', $connection); executeInDb('insert into PersonSet1 (ID, firstName_s1, lastName_s1, FirmID, ADDRESSID) values (22, \'CV\', \'Raman\', 3, 2);', $connection); - executeInDb('Drop table if exists PersonSet2;', $connection); - executeInDb('Create Table PersonSet2 (ID INT, firstName_s2 VARCHAR(200), lastName_s2 VARCHAR(200), FirmID INT, ADDRESSID INT);', $connection); - executeInDb('insert into PersonSet2 (ID, firstName_s2, lastName_s2, FirmID, ADDRESSID) values (5, \'Rahul\', \'Taylor\', 1, 1);', $connection); + executeInDb('Drop table if exists PersonSet2;', $connection); + executeInDb('Create Table PersonSet2 (ID INT, firstName_s2 VARCHAR(200), lastName_s2 VARCHAR(200), FirmID INT, ADDRESSID INT);', $connection); + executeInDb('insert into PersonSet2 (ID, firstName_s2, lastName_s2, FirmID, ADDRESSID) values (5, \'Rahul\', \'Taylor\', 1, 1);', $connection); executeInDb('insert into PersonSet2 (ID, firstName_s2, lastName_s2, FirmID, ADDRESSID) values (6, \'Pranay\', \'Wright\', 1, 2);', $connection); executeInDb('insert into PersonSet2 (ID, firstName_s2, lastName_s2, FirmID, ADDRESSID) values (7, \'Nitin\', \'Mark\', 2, 1);', $connection); - executeInDb('insert into PersonSet2 (ID, firstName_s2, lastName_s2, FirmID, ADDRESSID) values (8, \'Atul\', \'Allen\', 2, 2);', $connection); + executeInDb('insert into PersonSet2 (ID, firstName_s2, lastName_s2, FirmID, ADDRESSID) values (8, \'Atul\', \'Allen\', 2, 2);', $connection); executeInDb('insert into PersonSet2 (ID, firstName_s2, lastName_s2, FirmID, ADDRESSID) values (19, \'Raj\', \'Bark\', 3, 1);', $connection); - executeInDb('insert into PersonSet2 (ID, firstName_s2, lastName_s2, FirmID, ADDRESSID) values (20, \'Khali\', \'Simon\', 3, 2);', $connection); + executeInDb('insert into PersonSet2 (ID, firstName_s2, lastName_s2, FirmID, ADDRESSID) values (20, \'Khali\', \'Simon\', 3, 2);', $connection); - executeInDb('Drop table if exists PersonSet3;', $connection); - executeInDb('Create Table PersonSet3 (Set3ID INT, lastName_s3 VARCHAR(200), FirmID INT, ADDRESSID INT);', $connection); - executeInDb('insert into PersonSet3 (Set3ID, lastName_s3, FirmID, ADDRESSID) values (9, \'Rafael\', 1, 1);', $connection); + executeInDb('Drop table if exists PersonSet3;', $connection); + executeInDb('Create Table PersonSet3 (Set3ID INT, lastName_s3 VARCHAR(200), FirmID INT, ADDRESSID INT);', $connection); + executeInDb('insert into PersonSet3 (Set3ID, lastName_s3, FirmID, ADDRESSID) values (9, \'Rafael\', 1, 1);', $connection); executeInDb('insert into PersonSet3 (Set3ID, lastName_s3, FirmID, ADDRESSID) values (10, \'wick\', 1, 2);', $connection); executeInDb('insert into PersonSet3 (Set3ID, lastName_s3, FirmID, ADDRESSID) values (11, \'root\', 1, 3);', $connection); executeInDb('insert into PersonSet3 (Set3ID, lastName_s3, FirmID, ADDRESSID) values (13, \'gayle\', 2, 1);', $connection); @@ -64,36 +68,36 @@ function <> meta::relational::graphFetch::tests::union::prop executeInDb('insert into PersonSet3 (Set3ID, lastName_s3, FirmID, ADDRESSID) values (17, \'Smith\', 3, 2);', $connection); executeInDb('insert into PersonSet3 (Set3ID, lastName_s3, FirmID, ADDRESSID) values (18, \'Cook\', 3, 3);', $connection); - executeInDb('Drop table if exists FirmSet1;', $connection); - executeInDb('Create Table FirmSet1(id INT, name VARCHAR(200),NICKNAME VARCHAR(200));', $connection); - executeInDb('insert into FirmSet1 (id, name) values (1, \'Firm X\');', $connection); - - executeInDb('Drop table if exists FirmSet2;', $connection); - executeInDb('Create Table FirmSet2(id INT, name VARCHAR(200));', $connection); - executeInDb('insert into FirmSet2 (id, name) values (2, \'Firm A\');', $connection); - - executeInDb('Drop table if exists FirmSet3;', $connection); - executeInDb('Create Table FirmSet3(id INT, name VARCHAR(200));', $connection); - executeInDb('insert into FirmSet3(id, name) values (3, \'Firm B\');', $connection); - - executeInDb('Drop table if exists AddressSet1;', $connection); - executeInDb('Create Table AddressSet1(id INT, name VARCHAR(200));', $connection); - executeInDb('insert into AddressSet1 (id, name) values (1, \'New York\');', $connection); - - executeInDb('Drop table if exists AddressSet2;', $connection); - executeInDb('Create Table AddressSet2(id INT, name VARCHAR(200));', $connection); - executeInDb('insert into AddressSet2 (id, name) values (2, \'Hoboken\');', $connection); - - executeInDb('Drop table if exists AddressSet3;', $connection); - executeInDb('Create Table AddressSet3(id INT, name VARCHAR(200));', $connection); - executeInDb('insert into AddressSet3(id, name) values (3, \'Dalas\');', $connection); - - executeInDb('Drop table if exists Firm;', $connection); - executeInDb('Create Table Firm(id INT, name VARCHAR(200));', $connection); - executeInDb('insert into Firm (id, name) values (1, \'Firm X\');', $connection); - executeInDb('insert into Firm (id, name) values (2, \'Firm A\');', $connection); + executeInDb('Drop table if exists FirmSet1;', $connection); + executeInDb('Create Table FirmSet1(id INT, name VARCHAR(200),NICKNAME VARCHAR(200));', $connection); + executeInDb('insert into FirmSet1 (id, name) values (1, \'Firm X\');', $connection); + + executeInDb('Drop table if exists FirmSet2;', $connection); + executeInDb('Create Table FirmSet2(id INT, name VARCHAR(200));', $connection); + executeInDb('insert into FirmSet2 (id, name) values (2, \'Firm A\');', $connection); + + executeInDb('Drop table if exists FirmSet3;', $connection); + executeInDb('Create Table FirmSet3(id INT, name VARCHAR(200));', $connection); + executeInDb('insert into FirmSet3(id, name) values (3, \'Firm B\');', $connection); + + executeInDb('Drop table if exists AddressSet1;', $connection); + executeInDb('Create Table AddressSet1(id INT, name VARCHAR(200));', $connection); + executeInDb('insert into AddressSet1 (id, name) values (1, \'New York\');', $connection); + + executeInDb('Drop table if exists AddressSet2;', $connection); + executeInDb('Create Table AddressSet2(id INT, name VARCHAR(200));', $connection); + executeInDb('insert into AddressSet2 (id, name) values (2, \'Hoboken\');', $connection); + + executeInDb('Drop table if exists AddressSet3;', $connection); + executeInDb('Create Table AddressSet3(id INT, name VARCHAR(200));', $connection); + executeInDb('insert into AddressSet3(id, name) values (3, \'Dalas\');', $connection); + + executeInDb('Drop table if exists Firm;', $connection); + executeInDb('Create Table Firm(id INT, name VARCHAR(200));', $connection); + executeInDb('insert into Firm (id, name) values (1, \'Firm X\');', $connection); + executeInDb('insert into Firm (id, name) values (2, \'Firm A\');', $connection); true; -} +} function <> {serverVersion.start='v1_32_0'} meta::relational::graphFetch::tests::union::propertyLevel::test1():Boolean[1] { @@ -265,18 +269,18 @@ Mapping meta::relational::graphFetch::tests::union::propertyLevel::Mapping1 ( *Firm : Operation { - meta::pure::router::operations::special_union_OperationSetImplementation_1__SetImplementation_MANY_(firm_set1, firm_set2) + meta::pure::router::operations::special_union_OperationSetImplementation_1__SetImplementation_MANY_(firm_set1, firm_set2) } *Person : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(person_set1, person_set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(person_set1, person_set2) } *Address : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(a_set1, a_set2) - } + } Person[person_set1] : Relational { @@ -285,7 +289,7 @@ Mapping meta::relational::graphFetch::tests::union::propertyLevel::Mapping1 address[a_set1] : [myDB]@PersonSet1AddressSet1_ADDRESSID, address[a_set2] : [myDB]@PersonSet1AddressSet2_ADDRESSID } - + Person[person_set2] : Relational { lastName : [myDB]PersonSet2.lastName_s2, @@ -293,7 +297,7 @@ Mapping meta::relational::graphFetch::tests::union::propertyLevel::Mapping1 address[a_set1] : [myDB]@PersonSet2AddressSet1_ADDRESSID, address[a_set2] : [myDB]@PersonSet2AddressSet2_ADDRESSID } - + Firm[firm_set1] : Relational { legalName : [myDB]FirmSet1.name, @@ -316,7 +320,7 @@ Mapping meta::relational::graphFetch::tests::union::propertyLevel::Mapping1 Address[a_set2] : Relational { name : [myDB]AddressSet2.name - } + } ) // F @@ -328,33 +332,33 @@ Mapping meta::relational::graphFetch::tests::union::propertyLevel::Mapping2 ( *Person : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(person_set1, person_set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(person_set1, person_set2) } - + *Address : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(a_set1, a_set2) - } + } Person[person_set1] : Relational { lastName : [myDB]PersonSet1.lastName_s1, address[a_set1] : [myDB]@PersonSet1AddressSet1_ADDRESSID } - + Person[person_set2] : Relational { lastName : [myDB]PersonSet2.lastName_s2, address[a_set2] : [myDB]@PersonSet2AddressSet2_ADDRESSID } - + Firm : Relational { legalName : [myDB]Firm.name, employees[person_set1]:[myDB]@firmPersonSet1, employees[person_set2]:[myDB]@firmPersonSet2 } - + Address[a_set1] : Relational { name : [myDB]AddressSet1.name @@ -363,19 +367,19 @@ Mapping meta::relational::graphFetch::tests::union::propertyLevel::Mapping2 Address[a_set2] : Relational { name : [myDB]AddressSet2.name - } + } ) - // F - // / \ - // P1 P2 - // / \ / \ - // A1 A2 A1 A2 + // F + // / \ + // P1 P2 + // / \ / \ + // A1 A2 A1 A2 Mapping meta::relational::graphFetch::tests::union::propertyLevel::Mapping3 ( *Person : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(person_set1, person_set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(person_set1, person_set2) } *Address : Operation @@ -389,21 +393,21 @@ Mapping meta::relational::graphFetch::tests::union::propertyLevel::Mapping3 address[a_set1] : [myDB]@PersonSet1AddressSet1_ADDRESSID, address[a_set2] : [myDB]@PersonSet1AddressSet2_ADDRESSID } - + Person[person_set2] : Relational { lastName : [myDB]PersonSet2.lastName_s2, address[a_set1] : [myDB]@PersonSet2AddressSet1_ADDRESSID, address[a_set2] : [myDB]@PersonSet2AddressSet2_ADDRESSID } - + Firm : Relational { legalName : [myDB]Firm.name, employees[person_set1]:[myDB]@firmPersonSet1, employees[person_set2]:[myDB]@firmPersonSet2 } - + Address[a_set1] : Relational { name : [myDB]AddressSet1.name @@ -412,7 +416,7 @@ Mapping meta::relational::graphFetch::tests::union::propertyLevel::Mapping3 Address[a_set2] : Relational { name : [myDB]AddressSet2.name - } + } ) // F1 U F2 @@ -424,12 +428,12 @@ Mapping meta::relational::graphFetch::tests::union::propertyLevel::Mapping4 ( *Firm : Operation { - meta::pure::router::operations::special_union_OperationSetImplementation_1__SetImplementation_MANY_(firm_set1, firm_set2) + meta::pure::router::operations::special_union_OperationSetImplementation_1__SetImplementation_MANY_(firm_set1, firm_set2) } *Person : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(person_set1, person_set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(person_set1, person_set2) } *Address : Operation @@ -443,14 +447,14 @@ Mapping meta::relational::graphFetch::tests::union::propertyLevel::Mapping4 address[a_set1] : [myDB]@PersonSet1AddressSet1_ADDRESSID, address[a_set2] : [myDB]@PersonSet1AddressSet2_ADDRESSID } - + Person[person_set2] : Relational { lastName : [myDB]PersonSet2.lastName_s2, address[a_set1] : [myDB]@PersonSet2AddressSet1_ADDRESSID, address[a_set2] : [myDB]@PersonSet2AddressSet2_ADDRESSID } - + Firm[firm_set1] : Relational { legalName : [myDB]FirmSet1.name, @@ -462,7 +466,7 @@ Mapping meta::relational::graphFetch::tests::union::propertyLevel::Mapping4 legalName : [myDB]FirmSet2.name, employees[person_set2]:[myDB]@firm2_person2_join } - + Address[a_set1] : Relational { name : [myDB]AddressSet1.name @@ -471,7 +475,7 @@ Mapping meta::relational::graphFetch::tests::union::propertyLevel::Mapping4 Address[a_set2] : Relational { name : [myDB]AddressSet2.name - } + } ) // F1 U F2 @@ -483,12 +487,12 @@ Mapping meta::relational::graphFetch::tests::union::propertyLevel::Mapping5 ( *Firm : Operation { - meta::pure::router::operations::special_union_OperationSetImplementation_1__SetImplementation_MANY_(firm_set1, firm_set2) + meta::pure::router::operations::special_union_OperationSetImplementation_1__SetImplementation_MANY_(firm_set1, firm_set2) } *Person : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(person_set1, person_set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(person_set1, person_set2) } *Address : Operation @@ -501,13 +505,13 @@ Mapping meta::relational::graphFetch::tests::union::propertyLevel::Mapping5 lastName : [myDB]PersonSet1.lastName_s1, address[a_set1] : [myDB]@PersonSet1AddressSet1_ADDRESSID } - + Person[person_set2] : Relational { lastName : [myDB]PersonSet2.lastName_s2, address[a_set2] : [myDB]@PersonSet2AddressSet2_ADDRESSID } - + Firm[firm_set1] : Relational { legalName : [myDB]FirmSet1.name, @@ -521,7 +525,7 @@ Mapping meta::relational::graphFetch::tests::union::propertyLevel::Mapping5 employees[person_set1]:[myDB]@firm2_person1_join, employees[person_set2]:[myDB]@firm2_person2_join } - + Address[a_set1] : Relational { name : [myDB]AddressSet1.name @@ -530,7 +534,7 @@ Mapping meta::relational::graphFetch::tests::union::propertyLevel::Mapping5 Address[a_set2] : Relational { name : [myDB]AddressSet2.name - } + } ) // F1 U F2 // with 3 sets of each @@ -542,18 +546,18 @@ Mapping meta::relational::graphFetch::tests::union::propertyLevel::Mapping6 ( *Firm : Operation { - meta::pure::router::operations::special_union_OperationSetImplementation_1__SetImplementation_MANY_(firm_set1, firm_set2, firm_set3) + meta::pure::router::operations::special_union_OperationSetImplementation_1__SetImplementation_MANY_(firm_set1, firm_set2, firm_set3) } *Person : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(person_set1, person_set2, person_set3) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(person_set1, person_set2, person_set3) } *Address : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(a_set1, a_set2, a_set3) - } + } Person[person_set1] : Relational { @@ -562,7 +566,7 @@ Mapping meta::relational::graphFetch::tests::union::propertyLevel::Mapping6 address[a_set2] : [myDB]@PersonSet1AddressSet2_ADDRESSID, address[a_set3] : [myDB]@PersonSet1AddressSet3_ADDRESSID } - + Person[person_set2] : Relational { lastName : [myDB]PersonSet2.lastName_s2, @@ -578,7 +582,7 @@ Mapping meta::relational::graphFetch::tests::union::propertyLevel::Mapping6 address[a_set2] : [myDB]@PersonSet3AddressSet2_ADDRESSID, address[a_set3] : [myDB]@PersonSet3AddressSet3_ADDRESSID } - + Firm[firm_set1] : Relational { legalName : [myDB]FirmSet1.name, @@ -611,10 +615,10 @@ Mapping meta::relational::graphFetch::tests::union::propertyLevel::Mapping6 Address[a_set2] : Relational { name : [myDB]AddressSet2.name - } + } Address[a_set3] : Relational { name : [myDB]AddressSet3.name - } + } ) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/union/testUnionRootLevel_relational.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/union/testUnionRootLevel_relational.pure index 9407e83f501..7daa949252c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/union/testUnionRootLevel_relational.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/graphFetch/tests/union/testUnionRootLevel_relational.pure @@ -12,16 +12,16 @@ // 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. - + /* Test cases where ( forking at root level) - 1) Only Forking : there are two sets for root level prop and below properties belong to correpsonding joint sets + 1) Only Forking : there are two sets for root level prop and below properties belong to correpsonding joint sets {} / \ set11 set12 (root level property) - - + + {} / \ set11 set12 (root level property) @@ -35,28 +35,28 @@ set11 set12 (root level property) \ / set21 (level 1 property) - - + + */ import meta::relational::graphFetch::tests::union::rootLevel::*; - + Class meta::relational::graphFetch::tests::union::rootLevel::Trade { tradeId : Integer[1]; traderKerb: String[0..1]; quantity : Integer[1]; } - + Class meta::relational::graphFetch::tests::union::rootLevel::Product { productId : String[1]; productName : String[1]; description : String[1]; } - + Association meta::relational::graphFetch::tests::union::rootLevel::Trade_Product { product : Product[1]; @@ -88,7 +88,7 @@ Database meta::relational::graphFetch::tests::union::rootLevel::dbUnion_XStore ) // ================================================================================ -// Same Store +// Same Store // ================================================================================== ###Mapping @@ -175,6 +175,7 @@ Mapping meta::relational::graphFetch::tests::union::rootLevel::SameStoreMapping2 ###Pure +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::executionPlan::profiles::*; import meta::pure::executionPlan::toString::*; @@ -183,13 +184,16 @@ import meta::pure::graphFetch::execution::*; import meta::relational::graphFetch::tests::union::rootLevel::*; import meta::relational::metamodel::execute::*; import meta::relational::functions::toDDL::*; + + import meta::pure::graphFetcha::tests::XStore::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; function <> meta::relational::graphFetch::tests::union::rootLevel::createTablesInDb():Boolean[1] { // dbUnion - let dbConn = ^TestDatabaseConnection(element=dbUnion, type=DatabaseType.H2); + let dbConn = ^TestDatabaseConnection(type=DatabaseType.H2); dropAndCreateTableInDb(dbUnion, 'tradeTable', $dbConn); dropAndCreateTableInDb(dbUnion, 'productTable', $dbConn); @@ -214,7 +218,7 @@ function <> meta::relational::graphFetch::tests::union::root executeInDb('insert into productTable2 (productId, productname, description) values (41, \'Prod_4\', \'Product 4 description\');', $dbConn); //dbUnionXStore - let dbConn_XStore = ^TestDatabaseConnection(element=dbUnion_XStore, type=DatabaseType.H2); + let dbConn_XStore = ^TestDatabaseConnection(type=DatabaseType.H2); dropAndCreateTableInDb(dbUnion_XStore, 'tradeTable_XStore', $dbConn_XStore); dropAndCreateTableInDb(dbUnion_XStore, 'productTable_XStore', $dbConn_XStore); @@ -239,8 +243,8 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::graphFetch::tests::union::rootLevel::SameStoreMapping; - let runtime = meta::relational::tests::testRuntime(); - + let runtime = meta::external::store::relational::tests::testRuntime(); + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; assertJsonStringsEqual( @@ -275,7 +279,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel let query = {|Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::graphFetch::tests::union::rootLevel::SameStoreMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -309,7 +313,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel let query = {|Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::graphFetch::tests::union::rootLevel::SameStoreMapping2; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -380,7 +384,7 @@ Mapping meta::relational::graphFetch::tests::union::rootLevel::CrossStoreMapping } ) -//there are two disjoint sets for root level and below property comes from Same 3rd set +//there are two disjoint sets for root level and below property comes from Same 3rd set Mapping meta::relational::graphFetch::tests::union::rootLevel::CrossStoreMapping2 ( Trade[trade_set_relational1] : Relational @@ -422,6 +426,7 @@ Mapping meta::relational::graphFetch::tests::union::rootLevel::CrossStoreMapping ###Pure +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::executionPlan::profiles::*; import meta::pure::executionPlan::toString::*; @@ -430,7 +435,10 @@ import meta::pure::graphFetch::execution::*; import meta::relational::graphFetch::tests::union::rootLevel::*; import meta::relational::metamodel::execute::*; import meta::relational::functions::toDDL::*; + + import meta::pure::graphFetcha::tests::XStore::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; function <> {serverVersion.start='v1_19_0'} meta::relational::graphFetch::tests::union::rootLevel::testSimpleUnion_CrossStore():Boolean[1] @@ -444,7 +452,7 @@ function <> {serverVersion.start='v1_19_0'} meta::rel }#; let query = {|Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::graphFetch::tests::union::rootLevel::CrossStoreMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -479,7 +487,7 @@ function <> {serverVersion.start='v1_19_0'} meta::re let query = {|Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::graphFetch::tests::union::rootLevel::CrossStoreMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; @@ -489,7 +497,7 @@ function <> {serverVersion.start='v1_19_0'} meta::re '{"product":{"productId":"40","description":"Product 3 description","productName":"Prod_3"},"quantity":100,"traderKerb":"abc","tradeId":5},'+ '{"product":{"productId":"41","description":"Product 4 description","productName":"Prod_4"},"quantity":200,"traderKerb":"abc","tradeId":6},'+ - + '{"product":{"productId":"30","description":"Product 5 description XStore","productName":"Prod_5"},"quantity":100,"traderKerb":"abc_XStore","tradeId":9},'+ '{"product":{"productId":"31","description":"Product 6 description XStore","productName":"Prod_6"},"quantity":200,"traderKerb":"abc_XStore","tradeId":10}]', $result @@ -513,18 +521,18 @@ function <> {serverVersion.start='v1_19_0'} meta::re let query = {|Trade.all()->graphFetch($tree)->serialize($tree)}; let mapping = meta::relational::graphFetch::tests::union::rootLevel::CrossStoreMapping2; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; - + assertJsonStringsEqual( '[{"product":{"productId":"30","description":"Product 1 description","productName":"Prod_1"},"quantity":100,"traderKerb":"abc","tradeId":1},'+ '{"product":{"productId":"31","description":"Product 2 description","productName":"Prod_2"},"quantity":200,"traderKerb":"abc","tradeId":2},'+ '{"product":{"productId":"40","description":"Product 3 description","productName":"Prod_3"},"quantity":100,"traderKerb":"abc","tradeId":5},'+ '{"product":{"productId":"41","description":"Product 4 description","productName":"Prod_4"},"quantity":200,"traderKerb":"abc","tradeId":6}'+ - + '{"product":{"productId":"30","description":"Product 1 description","productName":"Prod_1"},"quantity":100,"traderKerb":"abc_XStore","tradeId":9},'+ '{"product":{"productId":"31","description":"Product 2 description","productName":"Prod_2"},"quantity":200,"traderKerb":"abc_XStore","tradeId":10}]', $result @@ -538,7 +546,7 @@ function <> {serverVersion.start='v1_19_0'} meta::re // ================================================================================== ###Relational -Database meta::relational::graphFetch::tests::union::rootLevel::BasicDB +Database meta::relational::graphFetch::tests::union::rootLevel::BasicDB ( Schema TEST_SCHEMA ( @@ -572,18 +580,18 @@ Database meta::relational::graphFetch::tests::union::rootLevel::BasicDB ###Pure import meta::relational::graphFetch::tests::union::rootLevel::*; -Class meta::relational::graphFetch::tests::union::rootLevel::Person +Class meta::relational::graphFetch::tests::union::rootLevel::Person { name: String[1]; age: Integer[1]; } -Class meta::relational::graphFetch::tests::union::rootLevel::Firm +Class meta::relational::graphFetch::tests::union::rootLevel::Firm { name: String[1]; -} +} -Class meta::relational::graphFetch::tests::union::rootLevel::VettedEmployer +Class meta::relational::graphFetch::tests::union::rootLevel::VettedEmployer { name: String[1]; } @@ -593,7 +601,7 @@ Class meta::relational::graphFetch::tests::union::rootLevel::RestrictedPerson name: String[1]; } -Association meta::relational::graphFetch::tests::union::rootLevel::Employment +Association meta::relational::graphFetch::tests::union::rootLevel::Employment { firm: Firm[1]; employees: Person[*]; @@ -612,8 +620,8 @@ import meta::relational::graphFetch::tests::union::rootLevel::*; Mapping meta::relational::graphFetch::tests::union::rootLevel::FirmsAndEmployees_Relational ( *Person: Operation - { - meta::pure::router::operations::special_union_OperationSetImplementation_1__SetImplementation_MANY_(p1, p2) + { + meta::pure::router::operations::special_union_OperationSetImplementation_1__SetImplementation_MANY_(p1, p2) } Person[p1]: Relational { @@ -641,14 +649,14 @@ Mapping meta::relational::graphFetch::tests::union::rootLevel::FirmsAndEmployees *meta::relational::graphFetch::tests::union::rootLevel::VettedEmployer: Pure { ~src meta::relational::graphFetch::tests::union::rootLevel::Firm - + name: $src.name } *meta::relational::graphFetch::tests::union::rootLevel::RestrictedPerson: Pure { ~src meta::relational::graphFetch::tests::union::rootLevel::Person - + name: $src.name, firm: $src.firm } @@ -659,7 +667,10 @@ import meta::pure::executionPlan::toString::*; import meta::pure::graphFetch::execution::*; import meta::pure::mapping::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::executionPlan::profiles::*; import meta::relational::graphFetch::tests::union::rootLevel::*; @@ -679,11 +690,14 @@ meta::relational::graphFetch::tests::union::rootLevel::testSpecialUnion_m2m2r(): let mapping = FirmsAndEmployees_M2M; let runtime = ^EngineRuntime( mappings = $mapping, - connections = [ - ^meta::pure::alloy::connections::RelationalDatabaseConnection( + connectionStores = [ + ^meta::core::runtime::ConnectionStore( + element = BasicDB, + connection = + ^meta::external::store::relational::runtime::RelationalDatabaseConnection( type = DatabaseType.H2, datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification( - testDataSetupCsv = + testDataSetupCsv = 'TEST_SCHEMA\n' + 'PEOPLE\n' + 'ID,NAME,AGE,FIRM_ID\n' + @@ -706,16 +720,15 @@ meta::relational::graphFetch::tests::union::rootLevel::testSpecialUnion_m2m2r(): '2,Cadillac\n' + '---\n' ), - authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::TestDatabaseAuthenticationStrategy(), - element = BasicDB - ), - ^ModelChainConnection(element = ^ModelStore(), mappings = [FirmsAndEmployees_Relational]) + authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::TestDatabaseAuthenticationStrategy() + )), + ^meta::core::runtime::ConnectionStore(element = ^ModelStore(), connection=^ModelChainConnection(mappings = [FirmsAndEmployees_Relational])) ] ); let extensions = meta::relational::extension::relationalExtensions(); let executionResults = meta::legend::executeLegendQuery( - {| + {| RestrictedPerson.all() ->graphFetch($tree)->serialize($tree) ->from($mapping, $runtime) @@ -723,20 +736,20 @@ meta::relational::graphFetch::tests::union::rootLevel::testSpecialUnion_m2m2r(): [], $extensions ); - + let expected = '{"builder":{"_type":"json"},"values":[' + '{"name":"Alice","firm":{"name":"Toyota"}},' + '{"name":"Bob","firm":{"name":"Cadillac"}},' + - '{"name":"Charlie","firm":{"name":"Ford"}},' + + '{"name":"Charlie","firm":{"name":"Ford"}},' + '{"name":"Dan","firm":{"name":"Cadillac"}},' + - '{"name":"Eve","firm":{"name":"Ford"}},' + - '{"name":"Frank","firm":{"name":"Ford"}}' + + '{"name":"Eve","firm":{"name":"Ford"}},' + + '{"name":"Frank","firm":{"name":"Ford"}}' + ']}'; - + assertJsonStringsEqual($expected, $executionResults); let executionResults2 = meta::legend::executeLegendQuery( - {| + {| RestrictedPerson.all() ->filter(x | $x.name->in(['Bob', 'Eve'])) ->graphFetch($tree)->serialize($tree) @@ -750,6 +763,6 @@ meta::relational::graphFetch::tests::union::rootLevel::testSpecialUnion_m2m2r(): '{"name":"Bob","firm":{"name":"Cadillac"}},' + '{"name":"Eve","firm":{"name":"Ford"}}' + ']}'; - + assertJsonStringsEqual($expected2, $executionResults2); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/helperFunctions/databaseHelperFunctions.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/helperFunctions/databaseHelperFunctions.pure index a2acfd45617..c4c3054f06a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/helperFunctions/databaseHelperFunctions.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/helperFunctions/databaseHelperFunctions.pure @@ -20,9 +20,11 @@ import meta::relational::metamodel::datatype::*; import meta::relational::metamodel::relation::*; import meta::relational::functions::database::model::definition::*; import meta::relational::functions::database::model::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::join::*; import meta::relational::functions::database::constructDb::*; @@ -269,7 +271,7 @@ function meta::relational::functions::database::testDatabaseDefinitionForRuntime { $database.schemas->map(s | $s.tables->map(t | let sql = createSelectOneRowSql($t, $s, DatabaseType.SybaseIQ); - executeInDb($sql, $runtime.connections->at(0)->cast(@DatabaseConnection)); + executeInDb($sql, $runtime.connectionStores->at(0).connection->cast(@DatabaseConnection)); ) ); } @@ -284,7 +286,7 @@ function meta::relational::functions::database::loadCsvDataToDbTable(csvData:Lis tablePostProcessor:Function<{Table[1]->Table[1]}>[1] ) : String[*] { - + loadCsvDataToDbTable($csvData, $db, createDbConfig(DatabaseType.H2), $tablePostProcessor); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/helperFunctions/helperFunctions.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/helperFunctions/helperFunctions.pure index 4b49bb7cd26..b5dc74be99f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/helperFunctions/helperFunctions.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/helperFunctions/helperFunctions.pure @@ -15,7 +15,9 @@ import meta::pure::mapping::*; import meta::relational::tests::csv::*; import meta::relational::functions::database::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::functions::pureToSqlQuery::*; import meta::pure::router::routing::*; @@ -60,7 +62,7 @@ function meta::relational::runtime::extractDBs(m:meta::pure::mapping::Mapping[*] let dbFromMappings = $allMappings->map(m| let db = $m->extractDBs(); print(if($db->size() > 1, |'WARNING: The system found multiple databases in the mapping "'+$m->elementToPath()+'": '+$db.name->joinStrings(','), |'')); $db;); - let dbFromRuntime = $r.connections.element->filter(c | $c->instanceOf(Database))->cast(@Database); + let dbFromRuntime = $r.connectionStores.element->filter(c | $c->instanceOf(Database))->cast(@Database); $dbFromMappings->concatenate($dbFromRuntime)->removeDuplicates(); } @@ -147,7 +149,7 @@ function meta::alloy::service::execution::splitCsvRow(s: String[1], delimiter: S ), | ^$splitterState(prevChar = $currentChar, currentTokenChars = $splitterState.currentTokenChars->add($currentChar)) ) - ) + ) }, ^meta::alloy::service::execution::SplitterState(tokens=[], inQuotes= false, prevChar = '', currentTokenChars=[])); $finalSplitterState.tokens->add($finalSplitterState.currentTokenChars->makeString()); @@ -405,4 +407,4 @@ function meta::relational::mapping::findMainClassInGetAllExpression(vs:ValueSpec { let getAllFe = $vs->findExpressionsForFunctionInValueSpecification([getAll_Class_1__T_MANY_, getAll_Class_1__Date_1__T_MANY_, getAll_Class_1__Date_1__Date_1__T_MANY_]); if($getAllFe->isEmpty(), | Any, | $getAllFe.parametersValues->at(0)->cast(@ExtendedRoutedValueSpecification)->byPassRouterInfo()->cast(@InstanceValue).values->toOne()->cast(@Class)); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/helperFunctions/tests/testDdlGeneration.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/helperFunctions/tests/testDdlGeneration.pure index 877f8ea3f17..9f4b19772f7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/helperFunctions/tests/testDdlGeneration.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/helperFunctions/tests/testDdlGeneration.pure @@ -22,6 +22,7 @@ import meta::relational::metamodel::join::*; import meta::relational::metamodel::execute::*; import meta::relational::functions::toDDL::*; import meta::relational::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; function <> meta::relational::tests::ddl::findTableByName():Boolean[1] @@ -52,7 +53,7 @@ function <> meta::relational::tests::ddl::createCreateTableStatementW function <> meta::relational::tests::ddl::dropAndCreateTable():Boolean[1] { - let c = meta::relational::tests::testRuntime(foo_db).connections->toOne()->cast(@TestDatabaseConnection); + let c = meta::external::store::relational::tests::testRuntime(foo_db).connectionStores.connection->toOne()->cast(@TestDatabaseConnection); dropAndCreateTableInDb(foo_db, 'bar_t', $c); executeInDb('insert into bar_t (id, version, description) values (1, 1, \'Glorp\')', $c); @@ -73,9 +74,9 @@ function <> meta::relational::tests::ddl::testCreateTempTableStatemen function <> meta::relational::tests::ddl::dropAndCreateTempTable():Boolean[1] { - let c = meta::relational::tests::testRuntime(foo_db).connections->toOne()->cast(@TestDatabaseConnection); + let c = meta::external::store::relational::tests::testRuntime(foo_db).connectionStores.connection->toOne()->cast(@TestDatabaseConnection); createTempTable('tt', ^Column(name='col', type=^meta::relational::metamodel::datatype::Integer()), createTempTableStatement(), $c); - + let res = executeInDb('select * from tt', $c); let columnNames = $res.columnNames; dropTempTable('tt', $c); @@ -107,4 +108,4 @@ Database meta::relational::tests::ddl::foo_db window integer, current_date date ) -) \ No newline at end of file +) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/helperFunctions/toDDL.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/helperFunctions/toDDL.pure index 1b63c59e993..24943d1cf78 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/helperFunctions/toDDL.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/helperFunctions/toDDL.pure @@ -18,9 +18,12 @@ import meta::pure::metamodel::function::*; import meta::relational::metamodel::*; import meta::relational::metamodel::execute::*; import meta::relational::functions::toDDL::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::relation::*; import apps::pure::api::relational::toDDL::*; +import meta::core::runtime::*; +import meta::pure::runtime::*; function meta::relational::functions::toDDL::dropAndCreateTableSql(database:Database[1], schemaName:String[1], tableName:String[1], applyContraints:Boolean[1]):String[1] { @@ -34,26 +37,60 @@ function meta::relational::functions::toDDL::dropAndCreateTableInDb(database:Dat dropAndCreateTableInDb($database, 'default', $tableName, $c); } +function meta::relational::functions::toDDL::dropAndCreateTableInDb(database:Database[1], tableName: String[1], connectionStore:ConnectionStore[1]) : Boolean[1] +{ + let c = $connectionStore.connection->cast(@DatabaseConnection); + dropAndCreateTableInDb($database, 'default', $tableName, $c); +} + function meta::relational::functions::toDDL::dropAndCreateTableInDb(database:Database[1], schema: String[1], tableName: String[1], c:DatabaseConnection[1]) : Boolean[1] { dropAndCreateTableInDb($database, $schema, $tableName, getTableToTableIdentityFunction(), $c, true, false); } +function meta::relational::functions::toDDL::dropAndCreateTableInDb(database:Database[1], schema: String[1], tableName: String[1], connectionStore:ConnectionStore[1]) : Boolean[1] +{ + let c = $connectionStore.connection->cast(@DatabaseConnection); + dropAndCreateTableInDb($database, $schema, $tableName, getTableToTableIdentityFunction(), $c, true, false); +} + + function <> meta::relational::functions::toDDL::dropAndCreateTableInDb(database:Database[1], schema: String[1], tableName: String[1], c:DatabaseConnection[1], applyConstraints:Boolean[1]) : Boolean[1] { dropAndCreateTableInDb($database, $schema, $tableName, getTableToTableIdentityFunction(), $c, $applyConstraints, false); } +function <> meta::relational::functions::toDDL::dropAndCreateTableInDb(database:Database[1], schema: String[1], tableName: String[1], connectionStore:ConnectionStore[1], applyConstraints:Boolean[1]) : Boolean[1] +{ + let c = $connectionStore.connection->cast(@DatabaseConnection); + dropAndCreateTableInDb($database, $schema, $tableName, getTableToTableIdentityFunction(), $c, $applyConstraints, false); +} + + function meta::relational::functions::toDDL::dropAndCreateTableInDb(database:Database[1], schema: String[1], tableName: String[1], tablePostProcess: Function<{Table[1]->Table[1]}>[1], c:DatabaseConnection[1]) : Boolean[1] { dropAndCreateTableInDb($database, $schema, $tableName, $tablePostProcess, $c, true, false); } +function meta::relational::functions::toDDL::dropAndCreateTableInDb(database:Database[1], schema: String[1], tableName: String[1], tablePostProcess: Function<{Table[1]->Table[1]}>[1], connectionStore:ConnectionStore[1]) : Boolean[1] +{ + let c = $connectionStore.connection->cast(@DatabaseConnection); + dropAndCreateTableInDb($database, $schema, $tableName, $tablePostProcess, $c, true, false); +} + + function meta::relational::functions::toDDL::dropAndCreateTableInDb(database:Database[1], schema: String[1], tableName: String[1], tablePostProcess: Function<{Table[1]->Table[1]}>[1], c:DatabaseConnection[1], applyConstraints:Boolean[1]) : Boolean[1] { dropAndCreateTableInDb($database, $schema, $tableName, $tablePostProcess, $c, $applyConstraints, false); } +function meta::relational::functions::toDDL::dropAndCreateTableInDb(database:Database[1], schema: String[1], tableName: String[1], tablePostProcess: Function<{Table[1]->Table[1]}>[1], connectionStore:ConnectionStore[1], applyConstraints:Boolean[1]) : Boolean[1] +{ + let c = $connectionStore.connection->cast(@DatabaseConnection); + dropAndCreateTableInDb($database, $schema, $tableName, $tablePostProcess, $c, $applyConstraints, false); +} + + function meta::relational::functions::toDDL::dropAndCreateTableInDb(database:Database[1], schema: String[1], tableName: String[1], tablePostProcess: Function<{Table[1]->Table[1]}>[1], c:DatabaseConnection[1], applyConstraints:Boolean[1], debug:Boolean[1]) : Boolean[1] { executeInDb(dropTableStatement($database, $schema, $tableName, $tablePostProcess), $c, $debug); @@ -61,11 +98,27 @@ function meta::relational::functions::toDDL::dropAndCreateTableInDb(database:Dat true; } +function meta::relational::functions::toDDL::dropAndCreateTableInDb(database:Database[1], schema: String[1], tableName: String[1], tablePostProcess: Function<{Table[1]->Table[1]}>[1], connectionStore:ConnectionStore[1], applyConstraints:Boolean[1], debug:Boolean[1]) : Boolean[1] +{ + let c = $connectionStore.connection->cast(@DatabaseConnection); + executeInDb(dropTableStatement($database, $schema, $tableName, $tablePostProcess), $c, $debug); + executeInDb(createTableStatement($database, $c.type, $schema, $tableName, $tablePostProcess, $applyConstraints), $c, $debug); + true; +} + + function meta::relational::functions::toDDL::dropAndCreateSchemaInDb(schema: String[1], c:DatabaseConnection[1]) : Boolean[1] { dropAndCreateSchemaInDb($schema, $c, false); } +function meta::relational::functions::toDDL::dropAndCreateSchemaInDb(schema: String[1], connectionStore:ConnectionStore[1]) : Boolean[1] +{ + let c = $connectionStore.connection->cast(@DatabaseConnection); + dropAndCreateSchemaInDb($schema, $c, false); +} + + function meta::relational::functions::toDDL::dropAndCreateSchemaInDb(schema: String[1], c:DatabaseConnection[1], debug:Boolean[1]) : Boolean[1] { executeInDb(dropSchemaStatement($schema), $c, $debug); @@ -73,6 +126,14 @@ function meta::relational::functions::toDDL::dropAndCreateSchemaInDb(schema: Str true; } +function meta::relational::functions::toDDL::dropAndCreateSchemaInDb(schema: String[1], connectionStore:ConnectionStore[1], debug:Boolean[1]) : Boolean[1] +{ + let c = $connectionStore.connection->cast(@DatabaseConnection); + executeInDb(dropSchemaStatement($schema), $c, $debug); + executeInDb(createSchemaStatement($schema), $c, $debug); + true; +} + //use corresponding functions parameterized with dbType instead function <> meta::relational::functions::toDDL::createSchemaStatement(schema:String[1]) : String[1] { @@ -110,19 +171,19 @@ function <> meta::relational::functions::toDDL::createTableStat } //deprecated -function <> meta::relational::functions::toDDL::createTableStatement(database:Database[1], schema: String[1], tableName: String[1], tablePostProcess: Function<{Table[1]->Table[1]}>[1], applyConstraints:Boolean[1]) : String[1] +function meta::relational::functions::toDDL::createTableStatement(database:Database[1], schema: String[1], tableName: String[1], tablePostProcess: Function<{Table[1]->Table[1]}>[1], applyConstraints:Boolean[1]) : String[1] { createTableStatement($database, $schema, $tableName, $tablePostProcess, $applyConstraints, createDbConfig(DatabaseType.H2))->toOne(); } //deprecated -function <> meta::relational::functions::toDDL::createTableStatement(database:Database[1], dbType:DatabaseType[1], schema: String[1], tableName: String[1], tablePostProcess: Function<{Table[1]->Table[1]}>[1], applyConstraints:Boolean[1]) : String[1] +function meta::relational::functions::toDDL::createTableStatement(database:Database[1], dbType:DatabaseType[1], schema: String[1], tableName: String[1], tablePostProcess: Function<{Table[1]->Table[1]}>[1], applyConstraints:Boolean[1]) : String[1] { createTableStatement($database, $schema, $tableName, $tablePostProcess, $applyConstraints, createDbConfig($dbType))->toOne(); } //deprecated -function <> meta::relational::functions::toDDL::getColumnTypeSqlText(columnType:meta::relational::metamodel::datatype::DataType[1], dbType:DatabaseType[1]):String[1] +function meta::relational::functions::toDDL::getColumnTypeSqlText(columnType:meta::relational::metamodel::datatype::DataType[1], dbType:DatabaseType[1]):String[1] { $columnType->match([ s : meta::relational::metamodel::datatype::SemiStructured[1] | $s->getSemiStructuredColumnTypeSqlText($dbType), @@ -131,7 +192,7 @@ function <> meta::relational::functions::toDDL::getColumnTypeSql } //deprecated -function <> meta::relational::functions::toDDL::getSemiStructuredColumnTypeSqlText(columnType:meta::relational::metamodel::datatype::SemiStructured[1], dbType:DatabaseType[1]):String[1] +function meta::relational::functions::toDDL::getSemiStructuredColumnTypeSqlText(columnType:meta::relational::metamodel::datatype::SemiStructured[1], dbType:DatabaseType[1]):String[1] { if ($dbType == DatabaseType.H2, | 'VARCHAR(4000)', @@ -159,7 +220,7 @@ function meta::relational::functions::toDDL::getTableToTableIdentityFunction():F {t:Table[1] |$t} } -function <> meta::relational::functions::toDDL::getTable(database:Database[1], schemaName: String[1], tableName: String[1]):Table[1] +function meta::relational::functions::toDDL::getTable(database:Database[1], schemaName: String[1], tableName: String[1]):Table[1] { let schema = $database->schema($schemaName); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/lineage/scanColumns/scanColumnsTests.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/lineage/scanColumns/scanColumnsTests.pure index a77dcb6b342..08a3d807a42 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/lineage/scanColumns/scanColumnsTests.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/lineage/scanColumns/scanColumnsTests.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::relational::metamodel::relation::*; import meta::pure::lineage::scanColumns::*; @@ -91,6 +92,6 @@ function <> meta::pure::lineage::scanColumns::t let tree = $p.result->buildPropertyTree(); let f = $tree->scanColumns(TestMappingWithViewJoins)->removeDuplicates(); - + assertEquals(['firmTable.ID ', 'personTable.AGE ', 'personTable.FIRMID ', 'personTable.FIRSTNAME ', 'personTable.ID '], $f->map(t|$t.column.owner->cast(@NamedRelation).name->toOne()+'.'+$t.column.name->toOne()+' <'+$t.context+'>')->sort()); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/lineage/scanRelations/scanRelations.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/lineage/scanRelations/scanRelations.pure index f7cfc623804..942dfd8ca5d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/lineage/scanRelations/scanRelations.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/lineage/scanRelations/scanRelations.pure @@ -19,7 +19,9 @@ import meta::relational::metamodel::operation::*; import meta::relational::functions::pureToSqlQuery::*; import meta::pure::router::clustering::*; import meta::relational::functions::sqlQueryToString::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::lineage::analytics::*; import meta::pure::functions::io::http::*; @@ -248,7 +250,7 @@ function <> meta::pure::lineage::scanRelations::scanRelationColu { let pn = $p.value->cast(@PropertyPathNode); $pn.property->toOne()->match([ - prop : Property[1] | + prop : Property[1] | let propMappings = if($prop->hasGeneratedMilestoningDatePropertyStereotype(), | [], | if($epm->isNotEmpty(), @@ -387,19 +389,19 @@ function <> meta::pure::lineage::scanRelations::generateSQLQuery } function meta::pure::lineage::scanRelations::generateRelationTreeFromRelationalOperationElement(relOp:RelationalOperationElement[1], debug: meta::pure::tools::DebugContext[1], extensions:Extension[*]):RelationTree[*] -{ +{ if($debug.debug, | print($debug.space + 'Generate Relation Tree From Relational Operation Element\n'), | []); - + $relOp->match([ vs:ViewSelectSQLQuery[1] | if($debug.debug, | print($debug.space + 'Process ViewSelectSQLQuery - ' + $vs.name + '\n'), |[]); - + let viewSelectTree = $vs.selectSQLQuery->generateRelationTreeFromRelationalOperationElement($debug->indent(), $extensions)->toOne(); let nestedViewTree = ^RelationTree(root = true, children = $viewSelectTree); ^RelationTree(relation = $vs.view, nestedViewTree= $nestedViewTree);, - + t:Table[1] | if($debug.debug, | print($debug.space + 'Process Table - ' + $t.name + '\n'), |[]); ^RelationTree(relation = $t);, - + v:View[1] | if($debug.debug, | print($debug.space + 'Process View - ' + $v.name + '\n'), |[]); ^RelationTree(relation = $v);, @@ -413,7 +415,7 @@ function meta::pure::lineage::scanRelations::generateRelationTreeFromRelationalO let orderByColumns = $sel.orderBy->map(o | $o.column->extractTableAliasColumns()); let groupByColumns = $sel.groupBy->map(o | $o->extractTableAliasColumns()); let havingColumns = $sel.havingOperation->map(o | $o->extractTableAliasColumns()); - + let allColumns = $projectColumns->concatenate($filterColumns)->concatenate($orderByColumns)->concatenate($groupByColumns)->concatenate($havingColumns)->removeDuplicates(); if($debug.debug, | print($debug.space + 'Processed Columns - ' + $allColumns->map(tac | $tac.alias.name + '.' + $tac.column.name)->joinStrings('[',', ', ']') + '\n');, |[]); @@ -444,16 +446,16 @@ function <> meta::pure::lineage::scanRelations::generateRelation $r->match([ j : JoinTreeNode[1] | if($debug.debug, | print($debug.space + 'Process JoinTreeNode - \n'), | []); - + let columnsFromChildren = $j->children()->map(child | $child.join.operation->extractTableAliasColumns()); let allColumns = $columns->concatenate($columnsFromChildren)->removeDuplicates(); - + if($debug.debug, | print($debug.space + 'Processed Columns - ' + $allColumns->map(tac | $tac.alias.name + '.' + $tac.column.name)->joinStrings('[',', ', ']') + '\n');, |[]); let baseTrees = $j.alias->generateRelationTreeFromRelationalOperationElement($debug->indent(), $extensions); let baseTreesColumns = $allColumns->filter(col | $col.alias.name == $j.alias.name); let baseTreesWithColumns = $baseTrees->map(tree | $tree->addColumnsToRelationTree($baseTreesColumns)); - + if($debug.debug, | print($debug.space + 'Generated Base Trees - \n\n' + $baseTreesWithColumns->map(tree | relationTreeAsString($tree, $debug->indent().space))->joinStrings($debug.space + '[\n','\n', '\n' +$debug.space+ ']') + '\n\n'), |[]); let treesWithJoin = $baseTreesWithColumns->map(tree | let processedJoin = processJoinFromTreeNode($j, $parentOperation->toOne(), $parentRelations, $tree.relation->toOne(), $tree, $parentTree->toOne(), $debug, $extensions); @@ -465,9 +467,9 @@ function <> meta::pure::lineage::scanRelations::generateRelation if($debug.debug, | print($debug.space + 'Generated Trees - \n\n' + $result->map(tree | relationTreeAsString($tree, $debug->indent().space))->joinStrings($debug.space + '[\n','\n', '\n' +$debug.space+ ']') + '\n\n'), |[]); $result;, - + r : RootJoinTreeNode[1] | if($debug.debug, | print($debug.space + 'Process RootJoinTreeNode\n'), | []); - + let colFromChildren = $r->children()->map(child | $child.join.operation->extractTableAliasColumns()); let allColumns = $columns->concatenate($colFromChildren)->removeDuplicates(); @@ -478,7 +480,7 @@ function <> meta::pure::lineage::scanRelations::generateRelation let baseTreesWithColumns = $baseTrees->map(tree | $tree->addColumnsToRelationTree($baseTreesColumns)); if($debug.debug, | print($debug.space + 'Generated Base Trees - \n\n' + $baseTreesWithColumns->map(tree | relationTreeAsString($tree, $debug->indent().space))->joinStrings($debug.space + '[\n','\n', '\n' +$debug.space+ ']') + '\n\n'), |[]); - + let childTreeCols = $allColumns->filter(c | $c.alias.name != $r.alias.name); let result = $baseTreesWithColumns->map(tree | let childTrees = $r->children()->map(child | $child->generateRelationTreeFromRelationalTreeNode($r.alias, $tree->flattenRelationTree().relation, $tree, $childTreeCols, $debug->indent(), $extensions);); $tree->addChildTrees($childTrees);); @@ -496,7 +498,7 @@ function <> meta::pure::lineage::scanRelations::getRelationName( function meta::pure::lineage::scanRelations::flattenRelationTree(tree:RelationTree[1]):RelationTree[*] { - $tree->concatenate($tree.nestedViewTree->map(t | $t->flattenRelationTree()))->concatenate($tree.children->map(child | $child->flattenRelationTree())); + $tree->concatenate($tree.nestedViewTree->map(t | $t->flattenRelationTree()))->concatenate($tree.children->map(child | $child->flattenRelationTree())); } function <> meta::pure::lineage::scanRelations::addChildTrees(parent: RelationTree[1], children:RelationTree[*]):RelationTree[1] @@ -509,9 +511,9 @@ function <> meta::pure::lineage::scanRelations::addChildTree(par { let parentRelation = $parent.relation->toOne(); let parentRelationFromJoin = $child.join->map(x|$x->otherTable($child.relation->toOne())).relation->toOne(); - + if(getRelationName($parentRelation) == getRelationName($parentRelationFromJoin), - | ^$parent(children += $child);, + | ^$parent(children += $child);, | ^$parent(children = $parent.children->map(pc | addChildTree($pc, $child)))); } @@ -524,7 +526,7 @@ function meta::pure::lineage::scanRelations::addColumnToRelationTree(tree:Relati { let columnOwner = $column.column.owner; let treeRelation = $tree.relation; - + if(($columnOwner->isNotEmpty() && $treeRelation->isNotEmpty() && ($treeRelation->toOne()->getRelationName() == $columnOwner->toOne()->getRelationName()) && $treeRelation.columns->cast(@Column)->exists(tc | $tc.name == $column.column.name)), |^$tree(columns = $tree.columns->concatenate($column.column)->removeDuplicates()), |$tree; @@ -542,13 +544,13 @@ function <> meta::pure::lineage::scanRelations::processJoinFromT let tableAliasColumns = $j.join.operation->extractTableAliasColumns()->removeDuplicates(); let oldToNewTableColumnAlias = $tableAliasColumns->map(tac | let orgColumn = $tac.column; - + assert($tac.alias.name->in([$targetAliasName, $sourceAliasName]), | 'Columns in join should refer either source alias or target alias'); - + let alias = if($tac.alias.name == $sourceAliasName, | $sourceOperation, |$targetOperation); let tree = if($tac.alias.name == $sourceAliasName, | $sourceTree, |$targetTree); let sourceColumn = $tac->extractSourceColumn($alias, $relationIndentifiers, $tree); - + if($sourceColumn->isEmpty(), |pair($tac, ^SQLNull()), |let namedRelation = $sourceColumn.owner->cast(@NamedRelation)->toOne(); @@ -558,7 +560,7 @@ function <> meta::pure::lineage::scanRelations::processJoinFromT let nonNullPairs = $oldToNewTableColumnAlias->filter(p | $p.second->instanceOf(TableAliasColumn))->cast(@Pair); let newAliases = $nonNullPairs.second.alias->removeDuplicatesBy(ta | $ta.relation->getRelationName()); - + let updatedNonNullPairs = if($newAliases->size() == 1, |$nonNullPairs->map(p | let isTargetOperation = ($p.first.alias.name == $targetAliasName); if($isTargetOperation, @@ -612,7 +614,7 @@ function <> meta::pure::lineage::scanRelations::processJoinFromT |let d = $r->cast(@DynaFunction); let filteredParams = $d.parameters->filter(p | !($p->instanceOf(DynaFunction) && $p->cast(@DynaFunction)->isNull($extensions))); assert($filteredParams->size() >= 1, | 'Expected atleast 1 parameter after filtering nulls'); - if($filteredParams->size() == 1, + if($filteredParams->size() == 1, | $filteredParams->toOne(), | ^$d(parameters = $filteredParams));, |$r)}; @@ -653,14 +655,14 @@ function <> meta::pure::lineage::scanRelations::extractSourceCol function <> meta::pure::lineage::scanRelations::extractSourceColumnFromSelectSQLQuery(select : SelectSQLQuery[1], tableAliasColumn:TableAliasColumn[1], relationIdentifiers:String[*], sourceTree:RelationTree[1]):Column[0..1] { - let reqTableAliasColumn = $select.columns->filter(col | let colName = $col->match([a:Alias[1] | $a.name, + let reqTableAliasColumn = $select.columns->filter(col | let colName = $col->match([a:Alias[1] | $a.name, tac:TableAliasColumn[1] | $tac.column.name]); $colName == $tableAliasColumn.column.name;)->extractTableAliasColumns()->removeDuplicates(); assert($reqTableAliasColumn->size() <= 1 ,|'Expected max 1 column. Found : ' + $reqTableAliasColumn->size()->toString()); - if($reqTableAliasColumn->isEmpty() || $select.data->isEmpty(), - |[], + if($reqTableAliasColumn->isEmpty() || $select.data->isEmpty(), + |[], |let rootTree = $select.data->toOne(); let childTrees = $rootTree->children()->map(child | $child->extractLine()); let sourceOperation = $rootTree->concatenate($childTrees)->filter(tree | $tree.alias.name == $reqTableAliasColumn.alias.name).alias->toOne(); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/lineage/scanRelations/scanRelationsTestWithViewsAndUnions.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/lineage/scanRelations/scanRelationsTestWithViewsAndUnions.pure index 3ce73960836..a4f5de59e63 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/lineage/scanRelations/scanRelationsTestWithViewsAndUnions.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/lineage/scanRelations/scanRelationsTestWithViewsAndUnions.pure @@ -48,7 +48,7 @@ function <> meta::pure::lineage::scanRelations: let relationTreeWithPureToSqlFlow = scanRelations(|Party.all()->project([r | $r.identifier.identifier],['id'])->distinct(), MappingWithJoinToSchemaInAnotherView, - meta::relational::tests::testRuntime(), + meta::external::store::relational::tests::testRuntime(), relationalExtensions()); let expectedWithPureToSqlFlow = 'root\n'+ ' ------> (t) Entity [entityID]\n'+ @@ -65,7 +65,7 @@ Class meta::pure::lineage::scanRelations::test::Party recognitionDate: Date[0..1]; } -Association meta::pure::lineage::scanRelations::test::Party_Identifier +Association meta::pure::lineage::scanRelations::test::Party_Identifier { party: meta::pure::lineage::scanRelations::test::Party[1]; identifier: meta::pure::lineage::scanRelations::test::Identifier[*]; @@ -84,10 +84,10 @@ import meta::pure::lineage::scanRelations::test::*; import meta::pure::router::operations::*; Mapping meta::pure::lineage::scanRelations::test::TopMapping -( +( include meta::pure::lineage::scanRelations::test::DetailMapping - - *Identifier[idAll] : Operation + + *Identifier[idAll] : Operation { union_OperationSetImplementation_1__SetImplementation_MANY_(id1, id2) } @@ -101,19 +101,19 @@ Mapping meta::pure::lineage::scanRelations::test::DetailMapping Party [p] : Relational { ~mainTable [DB1] E.Entity - + identifier [id1]: [DB2]@Entity_AltId_View, identifier [id2]: [DB2]@Entity_Self } - + Identifier [id1]: Relational { scope([DB2]E.AltID_View) ( identifier: txt ) - } - + } + *Identifier [id2]: Relational { scope([DB2]E.Entity) @@ -128,10 +128,10 @@ Mapping meta::pure::lineage::scanRelations::test::MappingWithJoinToSchemaInAnoth Party [p] : Relational { ~mainTable [DB1] E.Entity - + identifier: [DB2]@Entity_ViewSchema_AltId_View - } - + } + *Identifier: Relational { scope([DB2]ViewSchema.AltID_View) @@ -142,12 +142,12 @@ Mapping meta::pure::lineage::scanRelations::test::MappingWithJoinToSchemaInAnoth ) ###Relational -Database meta::pure::lineage::scanRelations::test::DB2 +Database meta::pure::lineage::scanRelations::test::DB2 ( include meta::pure::lineage::scanRelations::test::DB1 - Schema E - ( + Schema E + ( View AltID_View ( altID: E.AltIDToEntityMapping.alternativeID PRIMARY KEY, @@ -159,8 +159,8 @@ Database meta::pure::lineage::scanRelations::test::DB2 ) ) - Schema ViewSchema - ( + Schema ViewSchema + ( View AltID_View ( altID: E.AltIDToEntityMapping.alternativeID PRIMARY KEY, @@ -173,37 +173,37 @@ Database meta::pure::lineage::scanRelations::test::DB2 Join Entity_Self( E.Entity.entityID = {target}.entityID) ) -###Relational -Database meta::pure::lineage::scanRelations::test::DB1 +###Relational +Database meta::pure::lineage::scanRelations::test::DB1 ( - Schema E + Schema E ( - Table Entity + Table Entity ( - entityID INT PRIMARY KEY + entityID INT PRIMARY KEY ) - Table AlternativeID + Table AlternativeID ( alternativeID INT PRIMARY KEY, alternativeNameTXT VARCHAR(255) , - alternativeTypeID INT + alternativeTypeID INT ) - Table AltIDToEntityMapping + Table AltIDToEntityMapping ( alternativeID INT PRIMARY KEY, entityID INT PRIMARY KEY ) - Table LookupTable + Table LookupTable ( altrnIdentTypeCD CHAR(4) PRIMARY KEY, altrnIdentTypeID INT NOT NULL, - altrnIdentTypeNameTXT CHAR(60) + altrnIdentTypeNameTXT CHAR(60) ) ) Join AltIDToEntityMapping_AlternativeID(E.AltIDToEntityMapping.alternativeID = E.AlternativeID.alternativeID) Join AlternativeID_AltIdentifierType(E.AlternativeID.alternativeTypeID = E.LookupTable.altrnIdentTypeID) -) \ No newline at end of file +) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/lineage/scanRelations/scanRelationsTests.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/lineage/scanRelations/scanRelationsTests.pure index 866a624fcfb..ef715f56f75 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/lineage/scanRelations/scanRelationsTests.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/lineage/scanRelations/scanRelationsTests.pure @@ -38,7 +38,7 @@ function <> meta::pure::lineage::scanRelations: ' ------> (t) Owner(CarOwner) [VEHICLE_ID, name]\n'; assertEquals($expected, $relationTree-> relationTreeAsString()); - let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::relational::tests::testRuntime(), relationalExtensions())-> toOne(); + let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::external::store::relational::tests::testRuntime(), relationalExtensions())-> toOne(); let expected1 = 'root\n' + ' ------> (t) Person [ID, name]\n' + @@ -64,7 +64,7 @@ function <> meta::pure::lineage::scanRelations: ' ------> (t) Car(PersonCar) [c_PersonID, engineType]\n'; assertEquals($expected, $relationTree-> relationTreeAsString()); - let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::relational::tests::testRuntime(), relationalExtensions()); + let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::external::store::relational::tests::testRuntime(), relationalExtensions()); let expected1 = 'root\n' + ' ------> (t) Person [ID, name]\n' + ' ------> (t) Bicycle(equal_rootID_Bicycle_d#7_d_m3b_PersonID) [b_PersonID]\n' + @@ -85,7 +85,7 @@ function <> meta::pure::lineage::scanRelations: ' ------> (t) Car(PersonCar) [c_Description, c_PersonID]\n'; assertEquals($expected, $relationTree-> relationTreeAsString()); - let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::relational::tests::testRuntime(), relationalExtensions())-> toOne(); + let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::external::store::relational::tests::testRuntime(), relationalExtensions())-> toOne(); let expected1 = 'root\n' + ' ------> (t) Person [ID, name]\n' + ' ------> (t) Bicycle(or_equal_rootID_unionAlias_d#4_d_m2b_PersonID_0_equal_rootID_SQLNull) [b_Description, b_PersonID]\n' + @@ -98,7 +98,7 @@ function <> meta::pure::lineage::scanRelations: let query = {|meta::relational::tests::model::inheritance::Person.all()-> project([f|'constant'], ['col'])}; let mapping = meta::relational::tests::mapping::inheritance::relational::inheritanceMappingDB; let relationTree = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, relationalExtensions())-> toOne(); - let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::relational::tests::testRuntime(), relationalExtensions())-> toOne(); + let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::external::store::relational::tests::testRuntime(), relationalExtensions())-> toOne(); let expected = 'root\n'; assertEquals($expected, $relationTree-> relationTreeAsString()); @@ -114,7 +114,7 @@ function <> meta::pure::lineage::scanRelations: let query = {|meta::relational::tests::model::inheritance::Person.all()-> filter(p|$p.name == 'ok' && $p.vehicles-> subType(@meta::relational::tests::model::inheritance::Car).owner.name == 'test').name}; let mapping = meta::relational::tests::mapping::inheritance::relational::inheritanceMappingDB; let relationTree = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, relationalExtensions())-> toOne(); - let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::relational::tests::testRuntime(), relationalExtensions()); + let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::external::store::relational::tests::testRuntime(), relationalExtensions()); let expected = 'root\n' + ' ------> (t) Person [ID, name]\n' + @@ -148,7 +148,7 @@ function <> meta::pure::lineage::scanRelations: ' ------> (t) Owner(CarOwner) [VEHICLE_ID, name]\n'; assertEquals($expected, $relationTree-> relationTreeAsString()); - let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::relational::tests::testRuntime(), relationalExtensions()); + let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::external::store::relational::tests::testRuntime(), relationalExtensions()); let expected1 = 'root\n' + ' ------> (t) Person [ID, name]\n' + ' ------> (t) Bicycle(equal_rootID_Bicycle_d#7_d#2_m1b_PersonID) [ID, b_PersonID]\n' + @@ -169,7 +169,7 @@ function <> meta::pure::lineage::scanRelations: ' ------> (t) synonymTable(Product_Synonym) [NAME, PRODID, TYPE]\n'; assertEquals($expected, $relationTree-> relationTreeAsString()); - let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::relational::tests::testRuntime(), relationalExtensions()); + let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::external::store::relational::tests::testRuntime(), relationalExtensions()); let expected1 = 'root\n' + ' ------> (t) tradeTable [prodId]\n' + ' ------> (t) productTable(equal_rootprodId_productTable_d#4_d_m1ID) [ID, NAME]\n' + @@ -189,7 +189,7 @@ function <> meta::pure::lineage::scanRelations: ' ------> (t) firmTable(Firm_Person) [ID, LEGALNAME]\n'; assertEquals($expected, $relationTree-> relationTreeAsString()); - let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::relational::tests::testRuntime(), relationalExtensions())-> toOne(); + let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::external::store::relational::tests::testRuntime(), relationalExtensions())-> toOne(); let expected1 = 'root\n' + ' ------> (t) personTable [FIRMID, FIRSTNAME]\n' + ' ------> (t) firmTable(equal_firmTable_d#2_d#2_m1ID_rootFIRMID) [ID, LEGALNAME]\n'; @@ -208,7 +208,7 @@ function <> meta::pure::lineage::scanRelations: ' ------> (t) BiTemporalProductClassificationTableWithLatest(BiTemporalProductWithLatest_BiTemporalClassificationWithLatest) [type]\n'; assertEquals($expected, $relationTree-> relationTreeAsString()); - let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::relational::tests::testRuntime(), relationalExtensions()); + let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::external::store::relational::tests::testRuntime(), relationalExtensions()); let expected1 = 'root\n' + ' ------> (t) OrderTable [prodFk]\n' + ' ------> (t) BiTemporalProductTableWithLatest(equal_rootprodFk_BiTemporalProductTableWithLatest_d#8_d_m1id) [from_z, id, in_z, out_z, thru_z, type]\n' + @@ -231,7 +231,7 @@ function <> meta::pure::lineage::scanRelations: ' ------> (t) SystemAOrderDescriptionTable(OrderToSystemADescriptions_SystemAOrderDescriptionTable) [description, descriptionId]\n'; assertEquals($expected, $relationTree-> relationTreeAsString()); - let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::relational::tests::testRuntime(), relationalExtensions()); + let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::external::store::relational::tests::testRuntime(), relationalExtensions()); let expected1 = 'root\n' + ' ------> (t) OrderTable [id, prodFk]\n' + ' ------> (t) BiTemporalProductTable(equal_rootprodFk_BiTemporalProductTable_d#8_d_m1id) [from_z, id, in_z, out_z, thru_z, type]\n' + @@ -255,7 +255,7 @@ function <> meta::pure::lineage::scanRelations: ' ------> (t) BiTemporalProductClassificationTableWithLatest(BiTemporalProductWithLatest_BiTemporalClassificationWithLatest) [type]\n'; assertEquals($expected, $relationTree-> relationTreeAsString()); - let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::relational::tests::testRuntime(), relationalExtensions()); + let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::external::store::relational::tests::testRuntime(), relationalExtensions()); let expected1 = 'root\n' + ' ------> (t) OrderTable [prodFk]\n' + ' ------> (t) BiTemporalProductTableWithLatest(equal_rootprodFk_BiTemporalProductTableWithLatest_d#8_d_m1id) [from_z, id, in_z, out_z, thru_z, type]\n' + @@ -276,7 +276,7 @@ function <> meta::pure::lineage::scanRelations: ' ------> (t) PersonMaster(PersonMasterFirmSet2) [FirmID, firstName, lastName]\n'; assertEquals($expected, $relationTree-> relationTreeAsString()); - let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::relational::tests::testRuntime(), relationalExtensions()); + let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::external::store::relational::tests::testRuntime(), relationalExtensions()); let expected1 ='root\n' + ' ------> (t) FirmSet1 [ID, name]\n' + ' ------> (t) PersonMaster [FirmID, ID, firstName, lastName]\n' + @@ -292,7 +292,7 @@ function <> meta::pure::lineage::scanRelations: let query = {|Firm.all()-> project([p|$p.legalName, p|$p.employees.name], ['Firm','EmployeeName'])}; let mapping = meta::relational::tests::mapping::union::unionToUnionMapping3; - let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::relational::tests::testRuntime(), relationalExtensions()); + let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::external::store::relational::tests::testRuntime(), relationalExtensions()); let expected1 ='root\n' + ' ------> (t) FirmSet1 [ID, name]\n' + ' ------> (t) PersonSet1 [FirmID, firstName_s1, lastName_s1]\n' + @@ -315,7 +315,7 @@ function <> meta::pure::lineage::scanRelations: ' ------> (t) PersonSet2(PersonSet2FirmSet2) [FirmID, firstName_s2, lastName_s2]\n'; assertEquals($expected, $relationTree-> relationTreeAsString()); - let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::relational::tests::testRuntime(), relationalExtensions()); + let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::external::store::relational::tests::testRuntime(), relationalExtensions()); let expected1 ='root\n' + ' ------> (t) FirmSet1 [ID, name]\n' + ' ------> (t) PersonSet1 [FirmID, ID, firstName_s1, lastName_s1]\n' + @@ -345,7 +345,7 @@ function <> meta::pure::lineage::scanRelations: ' ------> (t) FirmSet2(PersonSet2FirmSet2) [ID, name]\n'; assertEquals($expected, $relationTree-> relationTreeAsString()); - let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::relational::tests::testRuntime(), relationalExtensions()); + let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::external::store::relational::tests::testRuntime(), relationalExtensions()); let expected1 ='root\n' + ' ------> (t) PersonSet1 [FirmID, ID, lastName_s1]\n' + ' ------> (t) AddressSet1 [ID, name]\n' + @@ -387,7 +387,7 @@ function <> meta::pure::lineage::scanRelations: ' ------> (t) PersonSet2(PersonSet2FirmSet2) [FirmID, lastName_s2]\n'; assertEquals($expected, $relationTree-> relationTreeAsString()); - let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::relational::tests::testRuntime(), relationalExtensions()); + let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::external::store::relational::tests::testRuntime(), relationalExtensions()); let expected1 ='root\n' + ' ------> (t) PersonSet1 [FirmID, ID, lastName_s1]\n' + ' ------> (t) AddressSet1 [ID, name]\n' + @@ -415,7 +415,7 @@ function <> meta::pure::lineage::scanRelations: let query = {|Firm.all()-> project([f|$f.legalName, f|$f.employees.firstName], ['legalName','employee_firstname'])}; let mapping = meta::relational::tests::mapping::union::unionToUnionMappingWithJoinToSameTableWithDiffKeys; - let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::relational::tests::testRuntime(), relationalExtensions()); + let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::external::store::relational::tests::testRuntime(), relationalExtensions()); let expected1 ='root\n' + ' ------> (t) Firm [ID, name]\n' + ' ------> (t) PersonSet4(equal_unionAlias_d#4_d_m2firmId_rootID) [FirmID_1, firstName_s1]\n' + @@ -440,7 +440,7 @@ function <> meta::pure::lineage::scanRelations: ' ------> (t) salesPersonTable(Order_SalesPerson) [ACCOUNT_ID, NAME, PERSON_ID]\n'; assertEquals($expected, $relationTree-> relationTreeAsString()); - let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::relational::tests::testRuntime(), relationalExtensions()); + let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::external::store::relational::tests::testRuntime(), relationalExtensions()); let expected1 = 'root\n' + ' ------> (v) orderPnlView [pnl]\n' + ' root\n' + @@ -468,7 +468,7 @@ function <> meta::pure::lineage::scanRelations: ' ------> (t) salesPersonTable(Order_SalesPerson) [ACCOUNT_ID, NAME, PERSON_ID]\n'; assertEquals($expected, $relationTree-> relationTreeAsString()); - let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::relational::tests::testRuntime(), relationalExtensions()); + let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::external::store::relational::tests::testRuntime(), relationalExtensions()); let expected1 = 'root\n' + ' ------> (v) orderPnlView [ORDER_ID, pnl]\n' + ' ------> (t) orderTable(equal_rootORDER_ID_orderTable_d_1_d_m2ID) [ID, settlementDateTime]\n' + @@ -498,7 +498,7 @@ function <> meta::pure::lineage::scanRelations: ' ------> (t) salesPersonTable(Order_SalesPerson) [ACCOUNT_ID, NAME, PERSON_ID]\n'; assertEquals($expected, $relationTree-> relationTreeAsString()); - let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::relational::tests::testRuntime(), relationalExtensions()); + let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::external::store::relational::tests::testRuntime(), relationalExtensions()); let expected1 ='root\n' + ' ------> (t) orderTable [ID]\n' + ' ------> (v) orderPnlView(equal_orderPnlView_d#2_d_m2ORDER_ID_rootID) [ORDER_ID, pnl]\n' + @@ -538,7 +538,7 @@ function <> meta::pure::lineage::scanRelations: ' ------> (t) salesPersonTable(Order_SalesPerson) [ACCOUNT_ID, NAME, PERSON_ID]\n'; assertEquals($expected, $relationTree-> relationTreeAsString()); - let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::relational::tests::testRuntime(), relationalExtensions()); + let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::external::store::relational::tests::testRuntime(), relationalExtensions()); let expected1 ='root\n'+ ' ------> (v) orderNegativePnlViewOnView [ORDER_ID, pnl]\n'+ ' ------> (t) orderTable(or_equal_SQLNull_orderTable_d_1_d_m2ID_equal_unionBaseORDER_ID_1_orderTable_d_1_d_m2ID) [ID, settlementDateTime]\n'+ @@ -577,7 +577,7 @@ function <> meta::pure::lineage::scanRelations: ' ------> (t) firmTable(Firm_Person) [ID, LEGALNAME]\n'; assertEquals($expected, $relationTree-> relationTreeAsString()); - let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::relational::tests::testRuntime(), relationalExtensions()); + let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::external::store::relational::tests::testRuntime(), relationalExtensions()); let expected1 ='root\n' + ' ------> (t) orderTable [ID, accountID]\n' + ' ------> (t) salesPersonTable(equal_rootaccountID_salesPersonTable_d#6_d_m2ACCOUNT_ID) [ACCOUNT_ID, PERSON_ID]\n' + @@ -593,7 +593,7 @@ function <> meta::pure::lineage::scanRelations: let query = {|meta::relational::tests::mapping::union::sqlQueryMerging::model::A.all()->filter(a|$a.p3 == 'A')->project([a|$a.pk, a|$a.p1, a|$a.p2], ['a_pk', 'a_p1', 'a_p3'])}; let mapping = meta::relational::tests::mapping::union::sqlQueryMerging::mapping::unionMapping; - let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::relational::tests::testRuntime(), relationalExtensions()); + let relationTreeFromPureToSQL = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, meta::external::store::relational::tests::testRuntime(), relationalExtensions()); let expected = 'root\n'+ ' ------> (t) aTable1 [fk, pk]\n'+ ' ------> (t) bTable1(equal_rootfk_bTable1_d#2_d_m2_m1fk) [fk]\n'+ @@ -706,7 +706,7 @@ function <> meta::pure::lineage::scanRelations: let query = {| tableToTDS(tableReference(meta::relational::tests::db,'default','personTable'))}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let relationTree = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, $runtime, relationalExtensions()); @@ -721,7 +721,7 @@ function <> meta::pure::lineage::scanRelations: ->project([col(r:TDSRow[1]|$r.getString('FIRSTNAME'), 'first_name'), col(r:TDSRow[1]|$r.getString('LASTNAME'), 'last_name')])}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let relationTree = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, $runtime, relationalExtensions()); @@ -736,7 +736,7 @@ function <> meta::pure::lineage::scanRelations: ->project([col(r:TDSRow[1]|$r.getString('FIRSTNAME'), 'first_name'), col(r:TDSRow[1]|$r.getString('FIRSTNAME'), 'name_again')])}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let relationTree = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, $runtime, relationalExtensions()); @@ -751,7 +751,7 @@ function <> meta::pure::lineage::scanRelations: ->restrict(['FIRSTNAME', 'AGE'])}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let relationTree = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, $runtime, relationalExtensions()); @@ -766,7 +766,7 @@ function <> meta::pure::lineage::scanRelations: ->meta::pure::tds::filter({r:TDSRow[1] | $r.getString('FIRSTNAME') == 'John'})}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let relationTree = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, $runtime, relationalExtensions()); @@ -782,7 +782,7 @@ function <> meta::pure::lineage::scanRelations: ->project([col(r:TDSRow[1]|$r.getString('LASTNAME'), 'name')])}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let relationTree = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, $runtime, relationalExtensions()); @@ -798,7 +798,7 @@ function <> meta::pure::lineage::scanRelations: ->project([col(r:TDSRow[1]|$r.getString('FIRSTNAME'), 'name')])}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let relationTree = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, $runtime, relationalExtensions()); @@ -814,7 +814,7 @@ function <> meta::pure::lineage::scanRelations: ->extend([col({r:TDSRow[1]|'Hello'}, 'hello')])}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let relationTree = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, $runtime, relationalExtensions()); @@ -828,7 +828,7 @@ function <> meta::pure::lineage::scanRelations: let query = {|tableToTDS(tableReference(meta::relational::tests::db,'default','personTable'))->project([col(r:TDSRow[1]|$r.getString('FIRSTNAME'), 'name')])->distinct()->take(2)}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let relationTree = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, $runtime, relationalExtensions()); @@ -843,7 +843,7 @@ function <> meta::pure::lineage::scanRelations: ->sort('LASTNAME')->project([col(r:TDSRow[1]|$r.getString('FIRSTNAME'), 'name')])}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let relationTree = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, $runtime, relationalExtensions()); @@ -858,7 +858,7 @@ function <> meta::pure::lineage::scanRelations: ->groupBy(['FIRSTNAME'], agg('cnt', x|$x.getString('LASTNAME'), y| $y->count()))}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let relationTree = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, $runtime, relationalExtensions()); @@ -874,7 +874,7 @@ function <> meta::pure::lineage::scanRelations: ->concatenate(Person.all()->project([col(p|$p.lastName, 'lastName')]))}; let mapping = meta::relational::tests::simpleRelationalMappingInc; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let relationTree = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, $runtime, relationalExtensions()); @@ -891,7 +891,7 @@ function <> meta::pure::lineage::scanRelations: ->concatenate(tableToTDS(tableReference(meta::relational::tests::dbInc,'default','firmTable'))->project([col(r:TDSRow[1]|$r.getString('LEGALNAME'), 'name')]))}; let mapping = meta::relational::tests::simpleRelationalMappingInc; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let relationTree = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, $runtime, relationalExtensions()); @@ -907,7 +907,7 @@ function <> meta::pure::lineage::scanRelations: ->join(tableToTDS(tableReference(meta::relational::tests::db,'default','firmTable')), JoinType.INNER, {a,b|$a.getInteger('eID') == $b.getInteger('ID');})}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let relationTree = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, $runtime, relationalExtensions()); @@ -925,7 +925,7 @@ function <> meta::pure::lineage::scanRelations: ->join(tableToTDS(tableReference(meta::relational::tests::db,'default','addressTable')), JoinType.INNER, {a,b|$a.getInteger('eID') == $b.getInteger('ID');})}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let relationTree = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, $runtime, relationalExtensions()); @@ -945,7 +945,7 @@ function <> meta::pure::lineage::scanRelations: ->join(tableToTDS(tableReference(meta::relational::tests::db,'default','locationTable'))->project([col(r:TDSRow[1]|$r.getInteger('PERSONID'), 'locationPersonID')]), JoinType.LEFT_OUTER, {a,b|$a.getInteger('personID') == $b.getInteger('locationPersonID');})}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let relationTree = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, $runtime, relationalExtensions()); @@ -963,7 +963,7 @@ function <> meta::pure::lineage::scanRelations: ->join(tableToTDS(tableReference(meta::relational::tests::db,'default','personTable')), JoinType.INNER, {a,b|$a.getInteger('personID') == $b.getInteger('ID');})}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let relationTree = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, $runtime, relationalExtensions()); @@ -981,7 +981,7 @@ function <> meta::pure::lineage::scanRelations: ->olapGroupBy('FIRSTNAME',asc('LASTNAME'),func('cnt',y|$y->sum()),'testCol1')}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let relationTree = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, $runtime, relationalExtensions()); @@ -998,7 +998,7 @@ function <> meta::pure::lineage::scanRelations: ->join(tableToTDS(tableReference(meta::relational::tests::db,'default','firmTable'))->project([col(r:TDSRow[1]|$r.getString('ID'), 'firmID'), col(r:TDSRow[1]|$r.getString('CEOID'), 'ceoID')]), JoinType.INNER, {a,b| true})}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let relationTree = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, $runtime, relationalExtensions()); @@ -1037,11 +1037,11 @@ function <> meta::pure::lineage::scanRelations: ) ->join( testJoinTDS_Person.all()->filter(x|$x.firstName->in('Pierre'))->project([x|$x.firstName, x|$x.age], ['fName', 'age']), - JoinType.LEFT_OUTER, 'First_1', 'fName' + JoinType.LEFT_OUTER, 'First_1', 'fName' )}; let mapping = testJoinTDSMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let relationTree = meta::pure::lineage::scanRelations::scanRelations($query, $mapping, $runtime, relationalExtensions()); let expectedTree = 'root\n'+ ' ------> (t) personTable [AGE, FIRSTNAME]\n'+ diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/businessDateMilestoningSetUp.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/businessDateMilestoningSetUp.pure index 8bcbc6f6d03..cfde0a0e74a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/businessDateMilestoningSetUp.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/businessDateMilestoningSetUp.pure @@ -13,14 +13,17 @@ // limitations under the License. import meta::relational::tests::milestoning::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::execute::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::relational::tests::milestoning::initSimpleRelationalDbWithMilestoningColumns():Any[0..1] { - let connection = meta::relational::tests::testRuntime(db).connections->toOne()->cast(@TestDatabaseConnection); + let connectionStore = meta::external::store::relational::tests::testRuntime(db).connectionStores->toOne(); + let connection = $connectionStore.connection->cast(@TestDatabaseConnection); executeInDb('Drop schema if exists productSchema cascade;', $connection); executeInDb('Create schema productSchema;', $connection); @@ -38,34 +41,35 @@ function meta::relational::tests::milestoning::initSimpleRelationalDbWithMilesto executeInDb('insert into productSchema.SynonymTable (id, prodid, type, name, from_z, thru_z) values (2, 1, \'ISIN\', \'ISIN1\', \'2015-10-26 00:00:00\', \'9999-12-31 00:00:00\');', $connection); executeInDb('insert into productSchema.SynonymTable (id, prodid, type, name, from_z, thru_z) values (3, 2, \'ISIN\', \'CUSIP2\', \'2015-8-26 00:00:00\', \'2015-10-26 00:00:00\');', $connection); executeInDb('insert into productSchema.SynonymTable (id, prodid, type, name, from_z, thru_z) values (4, 2, \'CUSIP\', \'ISIN2\', \'2015-10-26 00:00:00\', \'9999-12-31 00:00:00\');', $connection); -} +} function meta::relational::tests::milestoning::initDatabase():Runtime[1] { - let connection = meta::relational::tests::testRuntime(db).connections->toOne()->cast(@TestDatabaseConnection); - + let connectionStore = meta::external::store::relational::tests::testRuntime(db).connectionStores->toOne(); + let connection = $connectionStore.connection->cast(@TestDatabaseConnection); + executeInDb('drop table if exists OrderTable;',$connection); executeInDb('create table OrderTable (orderDate TIMESTAMP, id Integer, prodFk Integer)',$connection); executeInDb('insert into OrderTable values(\'2015-8-26 00:00:00\', 1,1);',$connection); executeInDb('insert into OrderTable values(\'2015-8-26 00:00:00\', 2,2);',$connection); - + executeInDb('drop table if exists ProductTable;',$connection); executeInDb('create table ProductTable (id Integer, name VARCHAR(200),type VARCHAR(200),exchange VARCHAR(200), referenceSystemName VARCHAR(200), EXTERNALREFERENCESYSTEMNAME VARCHAR(200), classificationSystemId Integer, from_z TIMESTAMP, thru_z TIMESTAMP);',$connection); executeInDb('insert into ProductTable values(1,\'ProductName\',\'STOCK\',\'ISE\', \'SYS1\',\'SYS1\', 1, \'2015-8-15 00:00:00\', \'2015-8-26 00:00:00\');',$connection); executeInDb('insert into ProductTable values(2,\'ProductName1\',\'STOCK\',\'LNSE\', \'SYS1\',\'SYS1\', 1, \'2015-8-26 00:00:00\', \'2015-10-16 00:00:00\');',$connection); executeInDb('insert into ProductTable values(2,\'ProductName2\',\'STOCK\',\'LNSE\', \'SYS1\', \'SYS1\',1, \'2015-10-16 00:00:00\', \'9999-12-31 00:00:00\');',$connection); executeInDb('insert into ProductTable values(3,\'ProductName3\',\'OPTION\',\'ISE\', \'SYS1\', \'SYS1\',1, \'2015-8-26 00:00:00\', \'9999-12-31 00:00:00\');',$connection); - + executeInDb('drop table if exists ProductTable2;',$connection); executeInDb('create table ProductTable2 (identifier Integer, key Integer , from_z TIMESTAMP, thru_z TIMESTAMP);',$connection); executeInDb('insert into ProductTable2 values(1, 1, \'2015-8-15 00:00:00\', \'2015-8-26 00:00:00\');',$connection); executeInDb('insert into ProductTable2 values(2, 1, \'2015-8-26 00:00:00\', \'2015-10-16 00:00:00\');',$connection); - + executeInDb('drop table if exists ProductTable3;',$connection); executeInDb('create table ProductTable3 (id Integer, name VARCHAR(200), from_z TIMESTAMP, thru_z TIMESTAMP);',$connection); executeInDb('insert into ProductTable3 values(1,\'ProductName\', \'2015-8-15 00:00:00\', \'2015-8-26 00:00:00\');',$connection); executeInDb('insert into ProductTable3 values(2,\'ProductName1\', \'2015-8-26 00:00:00\', \'2015-10-16 00:00:00\');',$connection); - + executeInDb('drop table if exists ProductTableWithBusinessSnapshotMilestoning;', $connection); executeInDb('create table ProductTableWithBusinessSnapshotMilestoning (id Integer, name VARCHAR(200), type VARCHAR(200), snapshotDate DATE);', $connection); executeInDb('insert into ProductTableWithBusinessSnapshotMilestoning values(1, \'ProductName\', \'STOCK\', \'2015-8-15\');', $connection); @@ -76,25 +80,25 @@ function meta::relational::tests::milestoning::initDatabase():Runtime[1] executeInDb('drop table if exists BiTemporalProductTable;',$connection); executeInDb('create table BiTemporalProductTable (id Integer, type VARCHAR(200), in_z TIMESTAMP, out_z TIMESTAMP, from_z TIMESTAMP, thru_z TIMESTAMP);',$connection); executeInDb('insert into BiTemporalProductTable values(1, \'STOCK\', \'2017-6-9 00:00:00\', \'9999-12-31 00:00:00\', \'2017-6-9 00:00:00\', \'2017-6-26 00:00:00\');',$connection); - + executeInDb('drop table if exists BiTemporalProductTableWithBusinessMilestoning;', $connection); executeInDb('create table BiTemporalProductTableWithBusinessMilestoning (id Integer, name VARCHAR(200), type VARCHAR(200), from_z TIMESTAMP, thru_z TIMESTAMP);', $connection); executeInDb('insert into BiTemporalProductTableWithBusinessMilestoning values(1, \'ProductName1\', \'STOCK\', \'2015-7-26 00:00:00\', \'2015-10-16 00:00:00\');', $connection); executeInDb('insert into BiTemporalProductTableWithBusinessMilestoning values(1, \'ProductName2\', \'STOCK\', \'2015-10-16 00:00:00\', \'9999-12-31 00:00:00\');', $connection); executeInDb('insert into BiTemporalProductTableWithBusinessMilestoning values(2, \'ProductName3\', \'OPTION\', \'2015-10-16 00:00:00\', \'9999-12-31 00:00:00\');', $connection); - + executeInDb('drop table if exists BiTemporalProductTableWithBusinessSnapshotMilestoning;', $connection); executeInDb('create table BiTemporalProductTableWithBusinessSnapshotMilestoning (id Integer, name VARCHAR(200), type VARCHAR(200), snapshotDate DATE);', $connection); executeInDb('insert into BiTemporalProductTableWithBusinessSnapshotMilestoning values(1 ,\'ProductName1\', \'STOCK\', \'2015-8-26\');', $connection); executeInDb('insert into BiTemporalProductTableWithBusinessSnapshotMilestoning values(1 ,\'ProductName2\', \'STOCK\', \'2015-10-16\');', $connection); executeInDb('insert into BiTemporalProductTableWithBusinessSnapshotMilestoning values(2 ,\'ProductName3\', \'OPTION\', \'2015-10-16\');', $connection); - + executeInDb('drop table if exists BiTemporalProductTableWithProcessingMilestoning;', $connection); executeInDb('create table BiTemporalProductTableWithProcessingMilestoning (id Integer, name VARCHAR(200), type VARCHAR(200), in_z TIMESTAMP, out_z TIMESTAMP);', $connection); executeInDb('insert into BiTemporalProductTableWithProcessingMilestoning values(1, \'ProductName1\', \'STOCK\', \'2015-7-26 00:00:00\', \'2015-10-16 00:00:00\');', $connection); executeInDb('insert into BiTemporalProductTableWithProcessingMilestoning values(1, \'ProductName2\', \'STOCK\', \'2015-10-16 00:00:00\', \'9999-12-31 00:00:00\');', $connection); executeInDb('insert into BiTemporalProductTableWithProcessingMilestoning values(2, \'ProductName3\', \'OPTION\', \'2015-10-16 00:00:00\', \'9999-12-31 00:00:00\');', $connection); - + executeInDb('drop table if exists BiTemporalProductTableWithNoMilestoning;', $connection); executeInDb('create table BiTemporalProductTableWithNoMilestoning (id Integer, name VARCHAR(200), type VARCHAR(200));', $connection); executeInDb('insert into BiTemporalProductTableWithNoMilestoning values(1, \'ProductName1\', \'STOCK\');', $connection); @@ -104,16 +108,16 @@ function meta::relational::tests::milestoning::initDatabase():Runtime[1] executeInDb('drop table if exists BiTemporalProductTableWithLatest;',$connection); executeInDb('create table BiTemporalProductTableWithLatest (id Integer, type VARCHAR(200), in_z TIMESTAMP, out_z TIMESTAMP, from_z TIMESTAMP, thru_z TIMESTAMP);',$connection); executeInDb('insert into BiTemporalProductTableWithLatest values(1, \'STOCK\', \'2017-6-9 00:00:00\', \'9999-12-31 00:00:00\', \'2017-6-9 00:00:00\', \'2017-6-26 00:00:00\');',$connection); - + executeInDb('Drop table if exists BiTemporalLocationTable;', $connection); executeInDb('Create Table BiTemporalLocationTable(id INT, kerberos VARCHAR(20), place VARCHAR(200), in_z TIMESTAMP, out_z TIMESTAMP, from_z TIMESTAMP, thru_z TIMESTAMP);', $connection); executeInDb('insert into BiTemporalLocationTable values (1, \'ggekko\', \'miami\', \'2015-6-9 00:00:00\', \'9999-12-31 00:00:00\', \'2017-6-9 00:00:00\', \'9999-12-29 19:00:00.0000\');', $connection); - + executeInDb('drop table if exists ProductTableNoMilestoning;',$connection); executeInDb('create table ProductTableNoMilestoning (id Integer, name VARCHAR(200),type VARCHAR(200),exchange VARCHAR(200), referenceSystemName VARCHAR(200), classificationSystemId Integer);',$connection); executeInDb('insert into ProductTableNoMilestoning values(1,\'ProductName\',\'STOCK\',\'ISE\', \'SYS1\', 1);',$connection); executeInDb('insert into ProductTableNoMilestoning values(2,\'ProductName3\',\'CDS\',\'ISE\', \'SYS1\', 1);',$connection); - + executeInDb('drop table if exists StockProductTable;',$connection); executeInDb('create table StockProductTable (id Integer, from_z TIMESTAMP, thru_z TIMESTAMP);',$connection); executeInDb('insert into StockProductTable values(1,\'2015-8-15 00:00:00\',\'2015-8-26 00:00:00\');',$connection); @@ -134,7 +138,7 @@ function meta::relational::tests::milestoning::initDatabase():Runtime[1] executeInDb('insert into ProductSynonymTable values(2, \'ProductName2\',\'GS-Mod-S1\',\'CUSIP\',\'smith\',\'2015-8-15 00:00:00\',\'9999-12-31 00:00:00\');',$connection); executeInDb('insert into ProductSynonymTable values(2, \'ProductName2\',\'GS-Mod-S2\',\'CUSIP\',\'smith\',\'2015-8-15 00:00:00\',\'2015-10-17 00:00:00\');',$connection); executeInDb('insert into ProductSynonymTable values(2, \'ProductName2\',\'GS-Mod-S3\',\'CUSIP\',\'smith\',\'2015-10-17 00:00:00\',\'9999-12-31 00:00:00\');',$connection); - + executeInDb('drop table if exists ProductClassificationTable;',$connection); executeInDb('create table ProductClassificationTable (type VARCHAR(200),type_description VARCHAR(400),system VARCHAR(200), exchange VARCHAR(200), from_z TIMESTAMP, thru_z TIMESTAMP);',$connection); executeInDb('insert into ProductClassificationTable values(\'STOCK\',\'STOCK DESC-V1\',\'SYS1\', \'LNSE\', \'2015-8-15 00:00:00\', \'2015-8-17 00:00:00\');',$connection); @@ -142,7 +146,7 @@ function meta::relational::tests::milestoning::initDatabase():Runtime[1] executeInDb('insert into ProductClassificationTable values(\'STOCK\',\'STOCK DESC-V3\',\'SYS1\', \'LNSE\', \'2015-9-15 00:00:00\',\'2015-10-17 00:00:00\');',$connection); executeInDb('insert into ProductClassificationTable values(\'STOCK\',\'STOCK DESC-V4\',\'SYS1\', \'LNSE\', \'2015-10-17 00:00:00\',\'9999-12-31 00:00:00\');',$connection); executeInDb('insert into ProductClassificationTable values(\'OPTION\',\'OPTION DESC-V1\',\'SYS1\', \'ISE\', \'2015-1-15 00:00:00\',\'2015-1-16 00:00:00\');',$connection); - + executeInDb('drop table if exists ProductClassificationTableWithBusinessSnapshotMilestoning;', $connection); executeInDb('create table ProductClassificationTableWithBusinessSnapshotMilestoning (type VARCHAR(200), type_description VARCHAR(400), snapshotDate DATE);', $connection); executeInDb('insert into ProductClassificationTableWithBusinessSnapshotMilestoning values(\'STOCK\', \ \'STOCK DESC-V1\', \'2015-8-15\');', $connection); @@ -158,7 +162,7 @@ function meta::relational::tests::milestoning::initDatabase():Runtime[1] executeInDb('insert into ProductClassificationTableNoMilestoning values(\'STOCK\',\'STOCK DESC-V3\',\'SYS1\', \'LNSE\');',$connection); executeInDb('insert into ProductClassificationTableNoMilestoning values(\'STOCK\',\'STOCK DESC-V4\',\'SYS1\', \'LNSE\');',$connection); executeInDb('insert into ProductClassificationTableNoMilestoning values(\'OPTION\',\'OPTION DESC-V1\',\'SYS1\', \'ISE\');',$connection); - + executeInDb('drop table if exists BiTemporalProductClassificationTable;',$connection); executeInDb('create table BiTemporalProductClassificationTable (type VARCHAR(200),type_description VARCHAR(400),system VARCHAR(200), exchange VARCHAR(200), in_z TIMESTAMP, out_z TIMESTAMP, from_z TIMESTAMP, thru_z TIMESTAMP);',$connection); executeInDb('insert into BiTemporalProductClassificationTable values(\'STOCK\',\'STOCK DESC-V1\',\'SYS1\', \'LNSE\', \'2017-6-11 00:00:00\', \'9999-12-31 00:00:00\', \'2017-6-10 00:00:00\', \'9999-12-31 00:00:00\');',$connection); @@ -168,29 +172,29 @@ function meta::relational::tests::milestoning::initDatabase():Runtime[1] executeInDb('insert into BiTemporalProductClassificationTableWithBusinessMilestoning values(\'STOCK\', \'STOCK DESC-V2\', \'2015-7-26\', \'2015-10-16\');', $connection); executeInDb('insert into BiTemporalProductClassificationTableWithBusinessMilestoning values(\'STOCK\', \'STOCK DESC-V3\', \'2015-10-16\', \'9999-12-31\');', $connection); executeInDb('insert into BiTemporalProductClassificationTableWithBusinessMilestoning values(\'OPTION\', \'OPTION DESC-V1\', \'2015-10-16\', \'9999-12-31\');', $connection); - + executeInDb('drop table if exists BiTemporalProductClassificationTableWithBusinessSnapshotMilestoning;', $connection); executeInDb('create table BiTemporalProductClassificationTableWithBusinessSnapshotMilestoning (type VARCHAR(200), type_description VARCHAR(400), snapshotDate DATE);', $connection); executeInDb('insert into BiTemporalProductClassificationTableWithBusinessSnapshotMilestoning values(\'STOCK\', \'STOCK DESC-V2\', \'2015-8-26\');', $connection); executeInDb('insert into BiTemporalProductClassificationTableWithBusinessSnapshotMilestoning values(\'STOCK\', \'STOCK DESC-V3\', \'2015-10-16\');', $connection); executeInDb('insert into BiTemporalProductClassificationTableWithBusinessSnapshotMilestoning values(\'OPTION\', \'OPTION DESC-V1\', \'2015-10-16\');', $connection); - + executeInDb('drop table if exists BiTemporalProductClassificationTableWithProcessingMilestoning;', $connection); executeInDb('create table BiTemporalProductClassificationTableWithProcessingMilestoning (type VARCHAR(200), type_description VARCHAR(400), in_z TIMESTAMP, out_z TIMESTAMP);', $connection); executeInDb('insert into BiTemporalProductClassificationTableWithProcessingMilestoning values(\'STOCK\', \'STOCK DESC-V2\', \'2015-7-26\', \'2015-10-16\');', $connection); executeInDb('insert into BiTemporalProductClassificationTableWithProcessingMilestoning values(\'STOCK\', \'STOCK DESC-V3\', \'2015-10-16\', \'9999-12-31\');', $connection); executeInDb('insert into BiTemporalProductClassificationTableWithProcessingMilestoning values(\'OPTION\', \'OPTION DESC-V1\', \'2015-10-16\', \'9999-12-31\');', $connection); - + executeInDb('drop table if exists BiTemporalProductClassificationTableWithNoMilestoning;', $connection); executeInDb('create table BiTemporalProductClassificationTableWithNoMilestoning (type VARCHAR(200), type_description VARCHAR(400));', $connection); executeInDb('insert into BiTemporalProductClassificationTableWithNoMilestoning values(\'STOCK\', \'STOCK DESC-V2\');', $connection); executeInDb('insert into BiTemporalProductClassificationTableWithNoMilestoning values(\'STOCK\', \'STOCK DESC-V3\');', $connection); executeInDb('insert into BiTemporalProductClassificationTableWithNoMilestoning values(\'OPTION\', \'OPTION DESC-V1\');', $connection); - + executeInDb('drop table if exists BiTemporalProductClassificationTableWithLatest;',$connection); executeInDb('create table BiTemporalProductClassificationTableWithLatest (type VARCHAR(200),type_description VARCHAR(400),system VARCHAR(200), exchange VARCHAR(200), in_z TIMESTAMP, out_z TIMESTAMP, from_z TIMESTAMP, thru_z TIMESTAMP);',$connection); executeInDb('insert into BiTemporalProductClassificationTableWithLatest values(\'STOCK\',\'STOCK DESC-V1\',\'SYS1\', \'LNSE\', \'2017-6-11 00:00:00\', \'9999-12-31\', \'2017-6-10 00:00:00\', \'9999-12-31\');',$connection); - + executeInDb('drop table if exists ProductClassificationSystemTable;',$connection); executeInDb('create table ProductClassificationSystemTable (id Integer, name VARCHAR(200), from_z TIMESTAMP, thru_z TIMESTAMP);',$connection); executeInDb('insert into ProductClassificationSystemTable values(1,\'SYS1\',\'2015-10-15 00:00:00\',\'9999-12-31 00:00:00\');',$connection); @@ -203,18 +207,18 @@ function meta::relational::tests::milestoning::initDatabase():Runtime[1] executeInDb('create table SystemDescriptionTable (systemName VARCHAR(200),description VARCHAR(200), from_z TIMESTAMP, thru_z TIMESTAMP);',$connection); executeInDb('insert into SystemDescriptionTable values(\'SYS1\',\'SYS1 description 1-v1\',\'2014-1-15 00:00:00\',\'2015-1-15 00:00:00\');',$connection); executeInDb('insert into SystemDescriptionTable values(\'SYS1\',\'SYS1 description 1-v2\',\'2015-1-15 00:00:00\',\'2015-8-15 00:00:00\');',$connection); - + executeInDb('drop table if exists ProductExchangeTable;',$connection); executeInDb('create table ProductExchangeTable (name VARCHAR(200), city VARCHAR(200), from_z TIMESTAMP, thru_z TIMESTAMP);',$connection); executeInDb('insert into ProductExchangeTable values(\'ISE\',\'Dublin\',\'2015-1-15 00:00:00\',\'2015-8-15 00:00:00\');',$connection); executeInDb('insert into ProductExchangeTable values(\'LNSE\',\'London\',\'2015-8-15 00:00:00\',\'9999-12-31 00:00:00\');',$connection); executeInDb('insert into ProductExchangeTable values(\'LNSE\',\'London\',\'2014-1-15 00:00:00\',\'2014-1-16 00:00:00\');',$connection); - + executeInDb('drop table if exists ProductExchangeTableNoMilestoning;',$connection); executeInDb('create table ProductExchangeTableNoMilestoning (name VARCHAR(200));',$connection); executeInDb('insert into ProductExchangeTableNoMilestoning values(\'ISE\');',$connection); executeInDb('insert into ProductExchangeTableNoMilestoning values(\'LNSE\');',$connection); - executeInDb('insert into ProductExchangeTableNoMilestoning values(\'LNSE\');',$connection); + executeInDb('insert into ProductExchangeTableNoMilestoning values(\'LNSE\');',$connection); executeInDb('drop table if exists OrderDescriptionTable;',$connection); executeInDb('create table OrderDescriptionTable (id VARCHAR(200),description VARCHAR(200));',$connection); @@ -225,7 +229,7 @@ function meta::relational::tests::milestoning::initDatabase():Runtime[1] executeInDb('create table OrderDetailsTable (id VARCHAR(200), settlementDate TIMESTAMP);',$connection); executeInDb('insert into OrderDetailsTable values(1,\'2015-8-26 00:00:00\');',$connection); executeInDb('insert into OrderDetailsTable values(2,\'2015-8-26 00:00:00\');',$connection); - + executeInDb('drop table if exists OrderDescriptionMilestonedTable;',$connection); executeInDb('create table OrderDescriptionMilestonedTable (id VARCHAR(200),description VARCHAR(200), from_z TIMESTAMP, thru_z TIMESTAMP);',$connection); executeInDb('insert into OrderDescriptionMilestonedTable values(1,\'order description 1\', \'2015-1-15 00:00:00\',\'2015-8-15 00:00:00\');',$connection); @@ -254,18 +258,18 @@ function meta::relational::tests::milestoning::initDatabase():Runtime[1] executeInDb('Create Table tradeTable(ID INT, accountID INT);', $connection); executeInDb('insert into tradeTable (ID, accountID) values (1, 1);', $connection); executeInDb('insert into tradeTable (ID, accountID) values (2, 2);', $connection); - + executeInDb('Drop table if exists tradePnlTable;', $connection); executeInDb('Create Table tradePnlTable(TRADE_ID INT, pnl FLOAT,from_z TIMESTAMP, thru_z TIMESTAMP);', $connection); executeInDb('insert into tradePnlTable (TRADE_ID, pnl, from_z, thru_z) values (1, 100,\'2016-1-1 00:00:00\',\'2016-6-1 00:00:00\');', $connection); executeInDb('insert into tradePnlTable (TRADE_ID, pnl, from_z, thru_z) values (1, 101,\'2016-6-1 00:00:00\',\'9999-12-31 00:00:00\');', $connection); executeInDb('insert into tradePnlTable (TRADE_ID, pnl, from_z, thru_z) values (2, 200,\'2016-1-1 00:00:00\',\'9999-12-31 00:00:00\');', $connection); - + executeInDb('Drop table if exists salesPersonTable;', $connection); executeInDb('Create Table salesPersonTable(ACCOUNT_ID INT, NAME VARCHAR(200),from_z TIMESTAMP, thru_z TIMESTAMP);', $connection); executeInDb('insert into salesPersonTable (account_id, name, from_z, thru_z) values (1, \'Joe Martinez\',\'2013-1-1 00:00:00\',\'9999-12-31 00:00:00\');', $connection); executeInDb('insert into salesPersonTable (account_id, name, from_z, thru_z) values (2, \'John Martinez\',\'2015-1-1 00:00:00\',\'9999-12-31 00:00:00\');', $connection); - + executeInDb('Drop table if exists TraderTable;', $connection); executeInDb('Create Table TraderTable(kerberos VARCHAR(20),in_z TIMESTAMP, out_z TIMESTAMP);', $connection); executeInDb('insert into TraderTable (kerberos, in_z, out_z) values (\'ggekko\',\'2013-1-1 00:00:00\',\'9999-12-31 00:00:00\');', $connection); @@ -276,12 +280,12 @@ function meta::relational::tests::milestoning::initDatabase():Runtime[1] executeInDb('insert into CertificationTable (kerberos, name, in_z, out_z) values (\'ggekko\', \'SRCE\',\'1980-1-1 00:00:00\',\'9999-12-31 00:00:00\');', $connection); executeInDb('insert into CertificationTable (kerberos, name, in_z, out_z) values (\'ggekko\', \'APCE\',\'1981-1-1 00:00:00\',\'9999-12-31 00:00:00\');', $connection); executeInDb('insert into CertificationTable (kerberos, name, in_z, out_z) values (\'bfox\', \'SRCE\',\'1987-1-1 00:00:00\',\'9999-12-31 00:00:00\');', $connection); - + executeInDb('drop table if exists MyOrderTable;', $connection); executeInDb('create table MyOrderTable (id Integer, prodFk Integer)', $connection); executeInDb('insert into MyOrderTable values(1, 1);', $connection); executeInDb('insert into MyOrderTable values(2, 2);', $connection); - + executeInDb('drop table if exists BiTemporalProductTable_In_From_Inclusive;', $connection); executeInDb('create table BiTemporalProductTable_In_From_Inclusive (id Integer, name VARCHAR(200), in_z TIMESTAMP, out_z TIMESTAMP, from_z TIMESTAMP, thru_z TIMESTAMP);' ,$connection); executeInDb('insert into BiTemporalProductTable_In_From_Inclusive values(1, \'abc1\', \'2018-05-02 00:00:00\', \'9999-12-31 00:00:00\', \'2018-05-01 00:00:00\', \'9999-12-31 00:00:00\');', $connection); @@ -289,7 +293,7 @@ function meta::relational::tests::milestoning::initDatabase():Runtime[1] executeInDb('insert into BiTemporalProductTable_In_From_Inclusive values(2, \'def2\', \'2018-05-04 00:00:00\', \'2018-05-07 00:00:00\', \'2018-05-03 00:00:00\', \'2018-05-06 00:00:00\');', $connection); executeInDb('insert into BiTemporalProductTable_In_From_Inclusive values(2, \'def3\', \'2018-05-07 00:00:00\', \'9999-12-31 00:00:00\', \'2018-05-06 00:00:00\', \'9999-12-31 00:00:00\');', $connection); executeInDb('insert into BiTemporalProductTable_In_From_Inclusive values(3, \'ghi1\', \'2018-05-09 00:00:00\', \'9999-12-31 00:00:00\', \'2018-05-08 00:00:00\', \'9999-12-31 00:00:00\');', $connection); - + executeInDb('drop table if exists BiTemporalProductTable_In_Thru_Inclusive;', $connection); executeInDb('create table BiTemporalProductTable_In_Thru_Inclusive (id Integer, name VARCHAR(200), in_z TIMESTAMP, out_z TIMESTAMP, from_z TIMESTAMP, thru_z TIMESTAMP);', $connection); executeInDb('insert into BiTemporalProductTable_In_Thru_Inclusive values(1, \'abc1\', \'2018-05-02 00:00:00\', \'9999-12-31 00:00:00\', \'2018-05-01 00:00:00\', \'9999-12-31 00:00:00\');', $connection); @@ -297,7 +301,7 @@ function meta::relational::tests::milestoning::initDatabase():Runtime[1] executeInDb('insert into BiTemporalProductTable_In_Thru_Inclusive values(2, \'def2\', \'2018-05-04 00:00:00\', \'2018-05-07 00:00:00\', \'2018-05-03 00:00:00\', \'2018-05-06 00:00:00\');', $connection); executeInDb('insert into BiTemporalProductTable_In_Thru_Inclusive values(2, \'def3\', \'2018-05-07 00:00:00\', \'9999-12-31 00:00:00\', \'2018-05-06 00:00:00\', \'9999-12-31 00:00:00\');', $connection); executeInDb('insert into BiTemporalProductTable_In_Thru_Inclusive values(3, \'ghi1\', \'2018-05-09 00:00:00\', \'9999-12-31 00:00:00\', \'2018-05-08 00:00:00\', \'9999-12-31 00:00:00\');', $connection); - + executeInDb('drop table if exists BiTemporalProductTable_Out_From_Inclusive;', $connection); executeInDb('create table BiTemporalProductTable_Out_From_Inclusive (id Integer, name VARCHAR(200), in_z TIMESTAMP, out_z TIMESTAMP, from_z TIMESTAMP, thru_z TIMESTAMP);' ,$connection); executeInDb('insert into BiTemporalProductTable_Out_From_Inclusive values(1, \'abc1\', \'2018-05-02 00:00:00\', \'9999-12-31 00:00:00\', \'2018-05-01 00:00:00\', \'9999-12-31 00:00:00\');', $connection); @@ -305,7 +309,7 @@ function meta::relational::tests::milestoning::initDatabase():Runtime[1] executeInDb('insert into BiTemporalProductTable_Out_From_Inclusive values(2, \'def2\', \'2018-05-04 00:00:00\', \'2018-05-07 00:00:00\', \'2018-05-03 00:00:00\', \'2018-05-06 00:00:00\');', $connection); executeInDb('insert into BiTemporalProductTable_Out_From_Inclusive values(2, \'def3\', \'2018-05-07 00:00:00\', \'9999-12-31 00:00:00\', \'2018-05-06 00:00:00\', \'9999-12-31 00:00:00\');', $connection); executeInDb('insert into BiTemporalProductTable_Out_From_Inclusive values(3, \'ghi1\', \'2018-05-09 00:00:00\', \'9999-12-31 00:00:00\', \'2018-05-08 00:00:00\', \'9999-12-31 00:00:00\');', $connection); - + executeInDb('drop table if exists BiTemporalProductTable_Out_Thru_Inclusive;', $connection); executeInDb('create table BiTemporalProductTable_Out_Thru_Inclusive (id Integer, name VARCHAR(200), in_z TIMESTAMP, out_z TIMESTAMP, from_z TIMESTAMP, thru_z TIMESTAMP);', $connection); executeInDb('insert into BiTemporalProductTable_Out_Thru_Inclusive values(1, \'abc1\', \'2018-05-02 00:00:00\', \'9999-12-31 00:00:00\', \'2018-05-01 00:00:00\', \'9999-12-31 00:00:00\');', $connection); @@ -320,9 +324,9 @@ function meta::relational::tests::milestoning::initDatabase():Runtime[1] executeInDb('Create Table intermediate(joinId INT NOT NULL,attribute INT NULL, PRIMARY KEY(joinId))', $connection); executeInDb('drop table if exists intermediateTwo;', $connection); executeInDb('Create Table intermediateTwo(joinId INT NOT NULL,linkToProduct INT NULL,type VARCHAR(200) NULL, PRIMARY KEY(joinId));', $connection); - - ^Runtime(connections=$connection); - + + ^Runtime(connectionStores=$connectionStore); + } @@ -331,10 +335,10 @@ import meta::relational::tests::milestoning::*; Mapping meta::relational::tests::milestoning::milestoningmapWithViewUsingViewColumns ( - TradePnl : Relational{ + TradePnl : Relational{ pnl : [db]tradePnlViewUsingView.pnl, supportContactName : [db]tradePnlViewUsingView.supportContactViaView - } + } ) Mapping meta::relational::tests::milestoning::ViewChainMapping @@ -348,7 +352,7 @@ Mapping meta::relational::tests::milestoning::ViewChainMapping product: @OrderPnl_inter>(INNER)@Inter_Inter ) } - + OrderPnlWithConstraint: Relational { scope([ViewChainDb]orderPNL) @@ -358,7 +362,7 @@ Mapping meta::relational::tests::milestoning::ViewChainMapping product: @OrderPnl_inter>(INNER)@Inter_Inter ) } - + Product: Relational { scope([ViewChainDb]default.interTwoView) @@ -368,7 +372,7 @@ Mapping meta::relational::tests::milestoning::ViewChainMapping type: n ) } - + ) ###Mapping @@ -376,18 +380,18 @@ import meta::relational::tests::milestoning::*; Mapping meta::relational::tests::milestoning::milestoningmapWithNestedView ( - TradePnl : Relational{ + TradePnl : Relational{ pnl : [db]tradePnlSuperView.pnl, supportContactName : [db]tradePnlSuperView.supportContactViaView - } + } ) Mapping meta::relational::tests::milestoning::milestoningmap2 ( meta::relational::tests::milestoning::Product : Relational{ - id : [db]ProductTable.id, + id : [db]ProductTable.id, isBrexitClassificationTypeExchange : [db]@Product_Classification > [db]@Classification_Exchange| case(equal([db]ProductExchangeTable.city,'London'), 'true', 'false') - } + } ) Mapping meta::relational::tests::milestoning::milestoningmap @@ -403,8 +407,8 @@ Mapping meta::relational::tests::milestoning::milestoningmap ascProduct : [db]@Order_Product, stockProduct : [db]@Order_StockProduct > [db]@Product_StockProduct, cusipProduct : [db]@Order_CusipSynonym > [db]@Product_Synonym - } - + } + meta::relational::tests::milestoning::OrderWithConstraint : Relational{ orderDate : [db]OrderTable.orderDate, product : [db]@Order_Product @@ -414,21 +418,21 @@ Mapping meta::relational::tests::milestoning::milestoningmap orderDate : [db]OrderTable.orderDate, product : [db]@Order_Product } - + meta::relational::tests::milestoning::OrderDescription : Relational{ - description : [db]OrderDescriptionTable.description - } - + description : [db]OrderDescriptionTable.description + } + meta::relational::tests::milestoning::OrderDetails : Relational{ - settlementDate : [db]OrderDetailsTable.settlementDate - } - + settlementDate : [db]OrderDetailsTable.settlementDate + } + meta::relational::tests::milestoning::SystemAOrderDescription : Relational{ - description : [db]SystemAOrderDescriptionTable.description - } - + description : [db]SystemAOrderDescriptionTable.description + } + meta::relational::tests::milestoning::Product : Relational{ - id : [db]ProductTable.id, + id : [db]ProductTable.id, name : [db]ProductTable.name, type : [db]ProductTable.type, classification : [db]@Product_Classification, @@ -439,50 +443,50 @@ Mapping meta::relational::tests::milestoning::milestoningmap stockProductName : [db]@Product_StockProduct > [db]@StockProduct_Description | ProductDescriptionTable.description, classificationType : EnumerationMapping classificationType : [db]@Product_Classification | ProductClassificationTable.type, biTemporalClassification : [db]@Product_BiTemporalClassification - } - + } + meta::relational::tests::milestoning::ProductWithConstraint1 : Relational{ name : [db]ProductTable.name, referenceSystem : [db]@Product_System - } + } meta::relational::tests::milestoning::ProductWithConstraint1b : Relational{ name : [db]ProductTable.name, referenceSystems : [db]@Product_System - } - + } + meta::relational::tests::milestoning::ProductWithConstraint2 : Relational{ name : [db]ProductTable.name, referenceSystem : [db]@Product_System - } - + } + meta::relational::tests::milestoning::ProductWithConstraint3 : Relational{ name : [db]ProductTable.name, referenceSystem : [db]@Product_System - } - + } + meta::relational::tests::milestoning::BiTemporalProduct : Relational{ id : [db]BiTemporalProductTable.id, biTemporalClassification : [db]@BiTemporalProduct_BiTemporalClassification, classification : [db]@BiTemporalProduct_Classification - } - + } + meta::relational::tests::milestoning::StockProduct : Relational{ ~filter [db] IsStockType - id : [db]ProductTable.id, + id : [db]ProductTable.id, name : [db]ProductTable.name, type : [db]ProductTable.type, classification : [db]@Product_Classification, exchange : [db]@Product_Exchange, synonyms : [db]@Product_Synonym, orders : [db]@Order_Product - } - + } + meta::relational::tests::milestoning::ProductSynonym : Relational{ synonym : [db]ProductSynonymTable.synonym, type : [db]ProductSynonymTable.type - } - + } + meta::relational::tests::milestoning::ProductClassification : Relational{ type : [db]ProductClassificationTable.type, description : [db]ProductClassificationTable.type_description, @@ -490,36 +494,36 @@ Mapping meta::relational::tests::milestoning::milestoningmap exchange : [db]@Classification_Exchange, exchangeName : [db]@Classification_Exchange | ProductExchangeTable.name, product : [db]@Product_Classification - } - + } + meta::relational::tests::milestoning::BiTemporalProductClassification : Relational{ type : [db]BiTemporalProductClassificationTable.type - } - + } + ProductClassificationType: EnumerationMapping classificationType { STOCK: ['STOCK'] } - + meta::relational::tests::milestoning::Exchange : Relational{ name : [db]ProductExchangeTable.name - } - + } + meta::relational::tests::milestoning::System : Relational{ name : [db]SystemTable.name, systemDescription : [db]@System_SystemDescrption } - + meta::relational::tests::milestoning::SystemDescription : Relational{ description : [db]SystemDescriptionTable.description } - - TradePnl : Relational{ + + TradePnl : Relational{ pnl : [db]tradePnlView.pnl, supportContactName : [db]tradePnlView.supportContact//, //trade: [db]@TradePnlView_Trade - } - + } + meta::relational::tests::milestoning::Trader : Relational { kerberos : [db]TraderTable.kerberos, certifications : [db]@Trader_Certifications, @@ -530,8 +534,8 @@ Mapping meta::relational::tests::milestoning::milestoningmap { place : [db]BiTemporalLocationTable.PLACE } - - + + meta::relational::tests::milestoning::Trader_AccreditedCertification : Relational { AssociationMapping @@ -540,7 +544,7 @@ Mapping meta::relational::tests::milestoning::milestoningmap accreditedCertifications : [db]@Trader_Certifications ) } - + meta::relational::tests::milestoning::Certification : Relational { name : [db]CertificationTable.name } @@ -549,11 +553,11 @@ Mapping meta::relational::tests::milestoning::milestoningmap Mapping meta::relational::tests::milestoning::milestoningmapwithconstraints ( include meta::relational::tests::milestoning::milestoningmap - + meta::relational::tests::milestoning::ProductWithConstraint1c : Relational{ name : [db]ProductTable.name, referenceSystem : [db]@Product_System - } + } ) ###Mapping @@ -565,15 +569,15 @@ Mapping meta::relational::tests::milestoning::milestoningmapMultipleJoinOperatio id : [db]OrderTable.id, orderDate : [db]OrderTable.orderDate, product : [db]@Order_Product - } - + } + meta::relational::tests::milestoning::Product : Relational{ - id : [db]ProductTable.id, + id : [db]ProductTable.id, name : [db]ProductTable.name, type : [db]ProductTable.type, classification : [db]@Product_Classification - } - + } + meta::relational::tests::milestoning::ProductClassification : Relational{ type : [db]ProductClassificationTable.type, description : [db]ProductClassificationTable.type_description, @@ -581,61 +585,61 @@ Mapping meta::relational::tests::milestoning::milestoningmapMultipleJoinOperatio exchange : [db]@Classification_Exchange_multipleOperations, exchangeName : [db]@Classification_Exchange_multipleOperations | ProductExchangeTable.name, product : [db]@Product_Classification - } + } ) Mapping meta::relational::tests::milestoning::noMilestoningMap ( - + meta::relational::tests::milestoning::ProductWithConstraint2 : Relational{ name : [db]ProductTableNoMilestoning.name, classification : [db]@ProductTableNoMilestoning_ProductClassificationTableNoMilestoning - } - + } + meta::relational::tests::milestoning::Order : Relational{ id : [db]OrderTable.id, product : [db]@Order_ProductNoMilestoning, biTemporalProduct : [db]@Order_ProductNoMilestoning } - + meta::relational::tests::milestoning::Product : Relational{ id : [db]ProductTableNoMilestoning.id, type : [db]ProductTableNoMilestoning.type - } - + } + meta::relational::tests::milestoning::BiTemporalProduct : Relational{ id : [db]ProductTableNoMilestoning.id, name : [db]ProductTableNoMilestoning.name, type : [db]ProductTableNoMilestoning.type, biTemporalClassification : [db]@ProductTableNoMilestoning_ProductClassificationTableNoMilestoning - } - + } + meta::relational::tests::milestoning::ProductClassification : Relational{ type : [db]ProductClassificationTableNoMilestoning.type, exchange : [db]@ProductClassificationTableNoMilestoning_ExchangeNoMilestoning - } - + } + meta::relational::tests::milestoning::Exchange : Relational{ name : [db]ProductExchangeTableNoMilestoning.name - } - + } + meta::relational::tests::milestoning::BiTemporalProductClassification : Relational{ type : [db]ProductClassificationTableNoMilestoning.type - } + } ) Mapping meta::relational::tests::milestoning::singleTemporalMappingForBiTemporalTypes ( meta::relational::tests::milestoning::BiTemporalProduct : Relational{ - id : [db]ProductTable.id, + id : [db]ProductTable.id, name : [db]ProductTable.name, biTemporalClassification : [db]@Product_Classification - } - + } + meta::relational::tests::milestoning::BiTemporalProductClassification : Relational{ type : [db]ProductClassificationTable.type - } - + } + ) Mapping meta::relational::tests::milestoning::propagationMapping @@ -645,16 +649,16 @@ Mapping meta::relational::tests::milestoning::propagationMapping id : [db]OrderTable.id, product : [db]@Order_Product } - + meta::relational::tests::milestoning::Product : Relational{ - id : [db]ProductTable.id, + id : [db]ProductTable.id, newActivity : [db]@Product_NewActivityInfo, cancelActivity : [db]@Product_CancelActivities > [db]@CancelActivities_NewActivityInfo, cancelProductActivity : [db]@Product_CancelActivities > (INNER) [db]@CancelActivities_NewActivityInfo, cancelProductActivityCreatedBy : [db]@Product_CancelActivities > (INNER) [db]@CancelActivities_NewActivityInfo | NewActivityInfoTable.created_by, referenceSystem : [db]@Product_System - } - + } + meta::relational::tests::milestoning::Exchange : Relational{ name : [db]ProductExchangeTable.name } @@ -663,21 +667,21 @@ Mapping meta::relational::tests::milestoning::propagationMapping type : [db]ProductClassificationTable.type, exchange : [db]@Classification_Exchange } - + meta::relational::tests::milestoning::NewActivityInfo : Relational{ createdBy : [db]NewActivityInfoTable.created_by } - + meta::relational::tests::milestoning::NewProductActivityInfo : Relational{ ~filter [db] NewActivityWithValidProduct createdBy : [db]NewActivityInfoTable.created_by } - + meta::relational::tests::milestoning::System : Relational{ name : [db]SystemTable.name, systemDescription : [db]@System_SystemDescrption } - + meta::relational::tests::milestoning::SystemDescription : Relational{ description : [db]SystemDescriptionTable.description } @@ -685,76 +689,76 @@ Mapping meta::relational::tests::milestoning::propagationMapping Mapping meta::relational::tests::milestoning::milestoningMapWithEmbedded ( - + meta::relational::tests::milestoning::StockProduct[StockProduct] : Relational{ - - id : [db]ProductTable.id, + + id : [db]ProductTable.id, name : [db]ProductTable.name, - + classification( type : [db]ProductTable.type, - system : [db]@StockProduct_ClassificationSystem > [db]@ClassificationSystem_System - ) - } - + system : [db]@StockProduct_ClassificationSystem > [db]@ClassificationSystem_System + ) + } + meta::relational::tests::milestoning::ProductClassification[ProductClassification] : Relational{ type : [db]ProductClassificationTable.type, description : [db]ProductClassificationTable.type_description - } - + } + meta::relational::tests::milestoning::System : Relational{ name : [db]SystemTable.name } - + ) Mapping meta::relational::tests::milestoning::milestoningMapWithEmbeddedSimple ( - + meta::relational::tests::milestoning::StockProduct[StockProduct] : Relational{ - - id : [db]ProductTable.id, + + id : [db]ProductTable.id, name : [db]ProductTable.name, - + classification( type : [db]ProductTable.type, - system : [db]@StockProduct_ClassificationSystem > [db]@ClassificationSystem_System - ) - } - + system : [db]@StockProduct_ClassificationSystem > [db]@ClassificationSystem_System + ) + } + meta::relational::tests::milestoning::Product : Relational{ - - id : [db]ProductTable.id, + + id : [db]ProductTable.id, name : [db]ProductTable.name, - + classification( type : [db]ProductTable.type, - system : [db]@StockProduct_ClassificationSystem > [db]@ClassificationSystem_System + system : [db]@StockProduct_ClassificationSystem > [db]@ClassificationSystem_System ), - + exchange() Inline[exchange] - } - + } + meta::relational::tests::milestoning::Exchange[exchange] : Relational{ name : [db]ProductTable.exchange } - + meta::relational::tests::milestoning::System : Relational{ name : [db]SystemTable.name } - + ) Mapping meta::relational::tests::milestoning::isolationFocusedMapping ( - + meta::relational::tests::milestoning::StockProduct[StockProduct] : Relational{ - ~filter [db]IsStockType + ~filter [db]IsStockType //~filter [db]@Product_Exchange | [db]LNSEProducts - - id : [db]ProductTable.id, + + id : [db]ProductTable.id, name : [db]ProductTable.name, - + classification( type : [db]ProductTable.type, exchange( @@ -764,44 +768,44 @@ Mapping meta::relational::tests::milestoning::isolationFocusedMapping name : [db]@StockProduct_ClassificationSystem > [db]@ClassificationSystem_System | SystemTable.name ) ) - } + } meta::relational::tests::milestoning::ProductClassification[ProductClassification] : Relational{ type : [db]ProductClassificationTable.type, description : [db]ProductClassificationTable.type_description - } - + } + meta::relational::tests::milestoning::System : Relational{ name : [db]SystemTable.name } - + ) Mapping meta::relational::tests::milestoning::otherwiseMapping ( - + meta::relational::tests::milestoning::StockProduct[StockProduct] : Relational { - ~filter [db]IsStockType - - id : [db]ProductTable.id, - + ~filter [db]IsStockType + + id : [db]ProductTable.id, + classification( type : [db]ProductTable.type ) Otherwise([ProductClassification]:[db]@Product_Classification) - } + } meta::relational::tests::milestoning::ProductClassification[ProductClassification] : Relational { type : [db]ProductClassificationTable.type, description : [db]ProductClassificationTable.type_description, exchange : [db]@Classification_Exchange - } + } meta::relational::tests::milestoning::Exchange : Relational { name : [db]ProductExchangeTable.name - } + } ) @@ -810,17 +814,17 @@ Mapping meta::relational::tests::milestoning::latestbitemporalmap meta::relational::tests::milestoning::Order : Relational{ id : [db]OrderTable.id, biTemporalProduct : [db]@Order_BiTemporalProductWithLatest - } - + } + meta::relational::tests::milestoning::BiTemporalProduct : Relational{ id : [db]BiTemporalProductTableWithLatest.id, biTemporalClassification : [db]@BiTemporalProductWithLatest_BiTemporalClassificationWithLatest - } - + } + meta::relational::tests::milestoning::BiTemporalProductClassification : Relational{ type : [db]BiTemporalProductClassificationTableWithLatest.type - } - + } + ) Mapping meta::relational::tests::milestoning::InFromInclusiveMapping @@ -830,7 +834,7 @@ Mapping meta::relational::tests::milestoning::InFromInclusiveMapping id : [db]BiTemporalProductTable_In_From_Inclusive.id, name : [db]BiTemporalProductTable_In_From_Inclusive.name } - + Order[oInFrom] : Relational { id : [db]MyOrderTable.id, @@ -845,7 +849,7 @@ Mapping meta::relational::tests::milestoning::InThruInclusiveMapping id : [db]BiTemporalProductTable_In_Thru_Inclusive.id, name : [db]BiTemporalProductTable_In_Thru_Inclusive.name } - + Order[oInThru] : Relational { id : [db]MyOrderTable.id, @@ -860,7 +864,7 @@ Mapping meta::relational::tests::milestoning::OutFromInclusiveMapping id : [db]BiTemporalProductTable_Out_From_Inclusive.id, name : [db]BiTemporalProductTable_Out_From_Inclusive.name } - + Order[oOutFrom] : Relational { id : [db]MyOrderTable.id, @@ -875,7 +879,7 @@ Mapping meta::relational::tests::milestoning::OutThruInclusiveMapping id : [db]BiTemporalProductTable_Out_Thru_Inclusive.id, name : [db]BiTemporalProductTable_Out_Thru_Inclusive.name } - + Order[oOutThru] : Relational { id : [db]MyOrderTable.id, @@ -887,7 +891,7 @@ Mapping meta::relational::tests::milestoning::InThruInclusiveUnionOutFromInclusi ( include meta::relational::tests::milestoning::InThruInclusiveMapping include meta::relational::tests::milestoning::OutFromInclusiveMapping - + *BiTemporalProduct : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(pInThru, pOutFrom) @@ -898,7 +902,7 @@ Mapping meta::relational::tests::milestoning::OutFromInclusiveUnionInThruInclusi ( include meta::relational::tests::milestoning::OutFromInclusiveMapping include meta::relational::tests::milestoning::InThruInclusiveMapping - + *BiTemporalProduct : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(pOutFrom, pInThru) @@ -908,19 +912,19 @@ Mapping meta::relational::tests::milestoning::OutFromInclusiveUnionInThruInclusi Mapping meta::relational::tests::milestoning::InThruInclusiveUnionInThruInclusiveMapping ( include meta::relational::tests::milestoning::InThruInclusiveMapping - + BiTemporalProduct[pInThru2] : Relational { id : [db]BiTemporalProductTable_In_Thru_Inclusive.id, name : [db]BiTemporalProductTable_In_Thru_Inclusive.name } - + Order[oInThru2] : Relational { id : [db]MyOrderTable.id, biTemporalProduct[pInThru2] : [db]@MyOrder_BiTemporalProductTable_In_Thru_Inclusive } - + *Order : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(oInThru, oInThru2) @@ -930,19 +934,19 @@ Mapping meta::relational::tests::milestoning::InThruInclusiveUnionInThruInclusiv Mapping meta::relational::tests::milestoning::OutFromInclusiveUnionOutFromInclusiveMapping ( include meta::relational::tests::milestoning::OutFromInclusiveMapping - + BiTemporalProduct[pOutFrom2] : Relational { id : [db]BiTemporalProductTable_Out_From_Inclusive.id, name : [db]BiTemporalProductTable_Out_From_Inclusive.name } - + Order[oOutFrom2] : Relational { id : [db]MyOrderTable.id, biTemporalProduct[pOutFrom2] : [db]@MyOrder_BiTemporalProductTable_Out_From_Inclusive } - + *Order : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(oOutFrom, oOutFrom2) @@ -955,13 +959,13 @@ Mapping meta::relational::tests::milestoning::businessSnapshotMilestoningMap id : [db]OrderTable.id, product[p] : [db]@Order_ProductWithBusinessSnapshotMilestoning } - + meta::relational::tests::milestoning::Product[p] : Relational{ - id : [db]ProductTableWithBusinessSnapshotMilestoning.id, + id : [db]ProductTableWithBusinessSnapshotMilestoning.id, name : [db]ProductTableWithBusinessSnapshotMilestoning.name, classification[c] : [db]@ProductWithBusinessSnapshotMilestoning_ClassificationWithBusinessSnapshotMilestoning } - + meta::relational::tests::milestoning::ProductClassification[c] : Relational{ type : [db]ProductClassificationTableWithBusinessSnapshotMilestoning.type, description : [db]ProductClassificationTableWithBusinessSnapshotMilestoning.type_description @@ -990,33 +994,33 @@ Mapping meta::relational::tests::milestoning::businessSnapshotMilestoningMapWith Mapping meta::relational::tests::milestoning::businessSnapshotMilestoningUnionMap ( include meta::relational::tests::milestoning::businessSnapshotMilestoningMap - + *Order : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(o, o2) } - + *Product : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(p, p2) } - + *ProductClassification : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(c, c2) } - + meta::relational::tests::milestoning::Order[o2] : Relational{ id : [db]OrderTable.id, product[p2] : [db]@Order_ProductWithBusinessSnapshotMilestoning } - + meta::relational::tests::milestoning::Product[p2] : Relational{ - id : [db]ProductTableWithBusinessSnapshotMilestoning.id, + id : [db]ProductTableWithBusinessSnapshotMilestoning.id, name : [db]ProductTableWithBusinessSnapshotMilestoning.name, classification[c2] : [db]@ProductWithBusinessSnapshotMilestoning_ClassificationWithBusinessSnapshotMilestoning } - + meta::relational::tests::milestoning::ProductClassification[c2] : Relational{ type : [db]ProductClassificationTableWithBusinessSnapshotMilestoning.type, description : [db]ProductClassificationTableWithBusinessSnapshotMilestoning.type_description @@ -1024,49 +1028,49 @@ Mapping meta::relational::tests::milestoning::businessSnapshotMilestoningUnionMa ) Mapping meta::relational::tests::milestoning::partiallyMilestoningUnionMap -( +( *Order : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(o1, o2) } - + *Product : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(p1, p2) } - + *ProductClassification : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(c1, c2) } - + meta::relational::tests::milestoning::Order[o1] : Relational{ id : [db]OrderTable.id, product[p1] : [db]@Order_Product } - + meta::relational::tests::milestoning::Product[p1] : Relational{ - id : [db]ProductTable.id, + id : [db]ProductTable.id, name : [db]ProductTable.name, classification[c1] : [db]@Product_Classification } - + meta::relational::tests::milestoning::ProductClassification[c1] : Relational{ type : [db]ProductClassificationTable.type, description : [db]ProductClassificationTable.type_description } - + meta::relational::tests::milestoning::Order[o2] : Relational{ id : [db]OrderTable.id, product[p2] : [db]@Order_ProductNoMilestoning } - + meta::relational::tests::milestoning::Product[p2] : Relational{ - id : [db]ProductTableNoMilestoning.id, + id : [db]ProductTableNoMilestoning.id, name : [db]ProductTableNoMilestoning.name, classification[c2] : [db]@ProductTableNoMilestoning_ProductClassificationTableNoMilestoning } - + meta::relational::tests::milestoning::ProductClassification[c2] : Relational{ type : [db]ProductClassificationTableNoMilestoning.type, description : [db]ProductClassificationTableNoMilestoning.type_description @@ -1074,81 +1078,81 @@ Mapping meta::relational::tests::milestoning::partiallyMilestoningUnionMap ) Mapping meta::relational::tests::milestoning::hybridMilestoningUnionMap -( +( *Order : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(o1, o2, o3, o4) } - + *BiTemporalProduct : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(p1, p2, p3, p4) } - + *BiTemporalProductClassification : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(c1, c2, c3, c4) } - + meta::relational::tests::milestoning::Order[o1] : Relational{ id : [db]OrderTable.id, biTemporalProduct[p1] : [db]@Order_BiTemporalProductWithBusinessMilestoning } - + meta::relational::tests::milestoning::Order[o2] : Relational{ id : [db]OrderTable.id, biTemporalProduct[p2] : [db]@Order_BiTemporalProductWithBusinessSnapshotMilestoning } - + meta::relational::tests::milestoning::Order[o3] : Relational{ id : [db]OrderTable.id, biTemporalProduct[p3] : [db]@Order_BiTemporalProductWithProcessingMilestoning } - + meta::relational::tests::milestoning::Order[o4] : Relational{ id : [db]OrderTable.id, biTemporalProduct[p4] : [db]@Order_BiTemporalProductWithNoMilestoning } - + meta::relational::tests::milestoning::BiTemporalProduct[p1] : Relational{ - id : [db]BiTemporalProductTableWithBusinessMilestoning.id, + id : [db]BiTemporalProductTableWithBusinessMilestoning.id, name : [db]BiTemporalProductTableWithBusinessMilestoning.name, biTemporalClassification[c1] : [db]@BiTemporalProductWithBusinessMilestoning_BiTemporalClassificationWithBusinessMilestoning } - + meta::relational::tests::milestoning::BiTemporalProduct[p2] : Relational{ - id : [db]BiTemporalProductTableWithBusinessSnapshotMilestoning.id, + id : [db]BiTemporalProductTableWithBusinessSnapshotMilestoning.id, name : [db]BiTemporalProductTableWithBusinessSnapshotMilestoning.name, biTemporalClassification[c2] : [db]@BiTemporalProductWithBusinessSnapshotMilestoning_BiTemporalClassificationWithBusinessSnapshotMilestoning } - + meta::relational::tests::milestoning::BiTemporalProduct[p3] : Relational{ - id : [db]BiTemporalProductTableWithProcessingMilestoning.id, + id : [db]BiTemporalProductTableWithProcessingMilestoning.id, name : [db]BiTemporalProductTableWithProcessingMilestoning.name, biTemporalClassification[c3] : [db]@BiTemporalProductWithProcessingMilestoning_BiTemporalClassificationWithProcessingMilestoning } - + meta::relational::tests::milestoning::BiTemporalProduct[p4] : Relational{ - id : [db]BiTemporalProductTableWithNoMilestoning.id, + id : [db]BiTemporalProductTableWithNoMilestoning.id, name : [db]BiTemporalProductTableWithNoMilestoning.name, biTemporalClassification[c4] : [db]@BiTemporalProductWithNoMilestoning_BiTemporalClassificationWithNoMilestoning } - + meta::relational::tests::milestoning::BiTemporalProductClassification[c1] : Relational{ type : [db]BiTemporalProductClassificationTableWithBusinessMilestoning.type, description : [db]BiTemporalProductClassificationTableWithBusinessMilestoning.type_description } - + meta::relational::tests::milestoning::BiTemporalProductClassification[c2] : Relational{ type : [db]BiTemporalProductClassificationTableWithBusinessSnapshotMilestoning.type, description : [db]BiTemporalProductClassificationTableWithBusinessSnapshotMilestoning.type_description } - + meta::relational::tests::milestoning::BiTemporalProductClassification[c3] : Relational{ type : [db]BiTemporalProductClassificationTableWithProcessingMilestoning.type, description : [db]BiTemporalProductClassificationTableWithProcessingMilestoning.type_description } - + meta::relational::tests::milestoning::BiTemporalProductClassification[c4] : Relational{ type : [db]BiTemporalProductClassificationTableWithNoMilestoning.type, description : [db]BiTemporalProductClassificationTableWithNoMilestoning.type_description @@ -1164,58 +1168,58 @@ Mapping meta::relational::tests::milestoning::TestMapping { id: [db] OrderTable.id, product: [db] @Order_Product - + } - + Product: Relational { ~mainTable [db]ProductTable name: [db] @productproductBridge1 > @ productProductBridge2 | ProductTable3.name - + } - + ) ###Mapping import meta::relational::tests::milestoning::*; Mapping meta::relational::tests::milestoning::milestoningUnionMapWithOrderNonUnion -( - +( + Order : Relational{ id : [db]OrderTable.id, product[p1] : [db]@Order_Product, product[p2] : [db]@Order_Product } - + *Product : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(p1, p2) } - + *ProductClassification : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(c1, c2) } - + meta::relational::tests::milestoning::Product[p1] : Relational{ - id : [db]ProductTable.id, + id : [db]ProductTable.id, name : [db]ProductTable.name, classification[c1] : [db]@Product_Classification } - + meta::relational::tests::milestoning::ProductClassification[c1] : Relational{ type : [db]ProductClassificationTable.type, description : [db]ProductClassificationTable.type_description, product[p1] : [db]@Product_Classification } - + meta::relational::tests::milestoning::Product[p2] : Relational{ - id : [db]ProductTable.id, + id : [db]ProductTable.id, name : [db]ProductTable.name, classification[c2] : [db]@Product_Classification } - + meta::relational::tests::milestoning::ProductClassification[c2] : Relational{ type : [db]ProductClassificationTable.type, description : [db]ProductClassificationTable.type_description, @@ -1230,7 +1234,7 @@ Mapping meta::relational::tests::milestoning::viewFilter::MilestoningWithFilters meta::relational::tests::milestoning::Product : Relational{ id : [db]@stockProductView_ProductTable | stockProductView.id, name : [db]ProductTable.name - } + } ) ###Relational @@ -1238,34 +1242,34 @@ Database meta::relational::tests::milestoning::ViewChainDb ( Table orderPNL (ID INT PRIMARY KEY, pnl INT, pName VARCHAR(200), linktoProduct INT) Table ProductTable(ID INT PRIMARY KEY, name VARCHAR(200), type VARCHAR(200), linkToOrder INTEGER) - - Table intermediate + + Table intermediate ( joinId INT PRIMARY KEY, attribute INT ) - - Table intermediateTwo + + Table intermediateTwo ( joinId INT PRIMARY KEY, linkToProduct INT, type VARCHAR(200) ) - + View interTwoView ( j: intermediateTwo.joinId, l: intermediateTwo.linkToProduct, n: intermediateTwo.type ) - + View ProductTableView ( name: ProductTable.name, type: ProductTable.type, link :ProductTable.ID ) - + Join OrderPnl_inter(orderPNL.ID = intermediate.joinId ) Join Inter_Inter (intermediate.joinId = interTwoView.j) Join InterTwo_Product(interTwoView.l = ProductTableView.link ) @@ -1283,7 +1287,7 @@ Mapping meta::relational::tests::milestoning::UnionOnViewWithMilestoningMapping name : [meta::relational::tests::milestoning::UnionOnViewWithMilestoning]ProductTable.name, classification[stock] : [meta::relational::tests::milestoning::UnionOnViewWithMilestoning]@Product_Classification, classification[option] : [meta::relational::tests::milestoning::UnionOnViewWithMilestoning]@Product_Classification - } + } *meta::relational::tests::milestoning::ProductClassification: Operation { @@ -1316,7 +1320,7 @@ Database meta::relational::tests::milestoning::UnionOnViewWithMilestoning ( business(BUS_FROM=from_z, BUS_THRU=thru_z, INFINITY_DATE=%9999-12-31T00:00:00.0000) ) - id Integer PRIMARY KEY, + id Integer PRIMARY KEY, name VARCHAR(200) PRIMARY KEY, type VARCHAR(200), exchange VARCHAR(200), @@ -1337,7 +1341,7 @@ Database meta::relational::tests::milestoning::UnionOnViewWithMilestoning type_description VARCHAR(400), system VARCHAR(200), exchange VARCHAR(200), - from_z DATE, + from_z DATE, thru_z DATE ) @@ -1366,18 +1370,18 @@ Database meta::relational::tests::milestoning::db( Table MyOrderTable(id Integer PRIMARY KEY, prodFk Integer) Table ProductTableNoMilestoning( - id Integer PRIMARY KEY, + id Integer PRIMARY KEY, name VARCHAR(200) PRIMARY KEY, type VARCHAR(200), exchange VARCHAR(200), classificationSystemId Integer, - referenceSystemName VARCHAR(200)) - + referenceSystemName VARCHAR(200)) + Table ProductTable( milestoning( business(BUS_FROM=from_z, BUS_THRU=thru_z, INFINITY_DATE=%9999-12-31T00:00:00.0000) ) - id Integer PRIMARY KEY, + id Integer PRIMARY KEY, name VARCHAR(200) PRIMARY KEY, type VARCHAR(200), exchange VARCHAR(200), @@ -1391,7 +1395,7 @@ Database meta::relational::tests::milestoning::db( milestoning( business(BUS_FROM=from_z, BUS_THRU=thru_z, INFINITY_DATE=%9999-12-31T00:00:00.0000) ) - id Integer PRIMARY KEY, + id Integer PRIMARY KEY, name VARCHAR(200) PRIMARY KEY, type VARCHAR(200), exchange VARCHAR(200), @@ -1399,17 +1403,17 @@ Database meta::relational::tests::milestoning::db( referenceSystemName VARCHAR(200), externalReferenceSystemName VARCHAR(200), from_z DATE, - thru_z DATE) - + thru_z DATE) + Table ProductTableWithBusinessSnapshotMilestoning( milestoning( business(BUS_SNAPSHOT_DATE=snapshotDate) ) - id Integer PRIMARY KEY, + id Integer PRIMARY KEY, name VARCHAR(200), type VARCHAR(200), snapshotDate DATE) - + Table BiTemporalProductTable_In_From_Inclusive( milestoning( processing(PROCESSING_IN=in_z, PROCESSING_OUT=out_z, OUT_IS_INCLUSIVE=false, INFINITY_DATE=%9999-12-31T00:00:00.0000), @@ -1417,117 +1421,117 @@ Database meta::relational::tests::milestoning::db( ) id Integer PRIMARY KEY, name VARCHAR(200) PRIMARY KEY, - in_z DATE, - out_z DATE, - from_z DATE, - thru_z DATE) - + in_z DATE, + out_z DATE, + from_z DATE, + thru_z DATE) + Table BiTemporalProductTable_In_Thru_Inclusive( milestoning( processing(PROCESSING_IN=in_z, PROCESSING_OUT=out_z, OUT_IS_INCLUSIVE=false, INFINITY_DATE=%9999-12-31T00:00:00.0000), business(BUS_FROM=from_z, BUS_THRU=thru_z, THRU_IS_INCLUSIVE=true, INFINITY_DATE=%9999-12-31T00:00:00.0000) ) - id Integer PRIMARY KEY, + id Integer PRIMARY KEY, name VARCHAR(200) PRIMARY KEY, - in_z DATE, - out_z DATE, - from_z DATE, + in_z DATE, + out_z DATE, + from_z DATE, thru_z DATE) - + Table BiTemporalProductTable_Out_From_Inclusive( milestoning( processing(PROCESSING_IN=in_z, PROCESSING_OUT=out_z, OUT_IS_INCLUSIVE=true, INFINITY_DATE=%9999-12-31T00:00:00.0000), business(BUS_FROM=from_z, BUS_THRU=thru_z, THRU_IS_INCLUSIVE=false, INFINITY_DATE=%9999-12-31T00:00:00.0000) ) - id Integer PRIMARY KEY, + id Integer PRIMARY KEY, name VARCHAR(200) PRIMARY KEY, type VARCHAR(200), - in_z DATE, - out_z DATE, - from_z DATE, - thru_z DATE) - + in_z DATE, + out_z DATE, + from_z DATE, + thru_z DATE) + Table BiTemporalProductTable_Out_Thru_Inclusive( milestoning( processing(PROCESSING_IN=in_z, PROCESSING_OUT=out_z, OUT_IS_INCLUSIVE=true, INFINITY_DATE=%9999-12-31T00:00:00.0000), business(BUS_FROM=from_z, BUS_THRU=thru_z, THRU_IS_INCLUSIVE=true, INFINITY_DATE=%9999-12-31T00:00:00.0000) ) - id Integer PRIMARY KEY, + id Integer PRIMARY KEY, name VARCHAR(200) PRIMARY KEY, type VARCHAR(200), - in_z DATE, - out_z DATE, - from_z DATE, + in_z DATE, + out_z DATE, + from_z DATE, thru_z DATE) - + Table BiTemporalProductTable( milestoning( processing(PROCESSING_IN=in_z, PROCESSING_OUT=out_z, INFINITY_DATE=%9999-12-31T00:00:00.0000), business(BUS_FROM=from_z, BUS_THRU=thru_z, INFINITY_DATE=%9999-12-31T00:00:00.0000) ) - id Integer PRIMARY KEY, + id Integer PRIMARY KEY, type VARCHAR(200), - in_z DATE, + in_z DATE, out_z DATE, - from_z DATE, + from_z DATE, thru_z DATE) - + Table BiTemporalProductTableWithBusinessMilestoning( milestoning( business(BUS_FROM=from_z, BUS_THRU=thru_z) ) - id Integer PRIMARY KEY, + id Integer PRIMARY KEY, name VARCHAR(200), type VARCHAR(200), - from_z DATE, + from_z DATE, thru_z DATE) - + Table BiTemporalProductTableWithBusinessSnapshotMilestoning( milestoning( business(BUS_SNAPSHOT_DATE=snapshotDate) ) - id Integer PRIMARY KEY, + id Integer PRIMARY KEY, name VARCHAR(200), type VARCHAR(200), snapshotDate DATE) - + Table BiTemporalProductTableWithProcessingMilestoning( milestoning( processing(PROCESSING_IN=in_z, PROCESSING_OUT=out_z) ) - id Integer PRIMARY KEY, + id Integer PRIMARY KEY, name VARCHAR(200), type VARCHAR(200), - in_z DATE, + in_z DATE, out_z DATE) - + Table BiTemporalProductTableWithNoMilestoning( - id Integer PRIMARY KEY, + id Integer PRIMARY KEY, name VARCHAR(200), type VARCHAR(200)) - + Table BiTemporalProductTableWithLatest( milestoning( processing(PROCESSING_IN=in_z, PROCESSING_OUT=out_z, INFINITY_DATE=%9999-12-31T00:00:00.0000), business(BUS_FROM=from_z, BUS_THRU=thru_z, INFINITY_DATE=%9999-12-31) ) - id Integer PRIMARY KEY, + id Integer PRIMARY KEY, type VARCHAR(200), - in_z DATE, + in_z DATE, out_z DATE, - from_z DATE, + from_z DATE, thru_z DATE) - + Table StockProductTable( milestoning( business(BUS_FROM=from_z, BUS_THRU=thru_z, INFINITY_DATE=%9999-12-31T00:00:00.0000) ) - id Integer, - from_z DATE, + id Integer, + from_z DATE, thru_z DATE) - + Table ProductDescriptionTable(id Integer PRIMARY KEY, description VARCHAR(200)) - + Table ProductSynonymTable( milestoning( business(BUS_FROM=from_z, BUS_THRU=thru_z) @@ -1546,14 +1550,14 @@ Database meta::relational::tests::milestoning::db( synonym VARCHAR(200) PRIMARY KEY, type VARCHAR(200) PRIMARY KEY, createdBy VARCHAR(200) - ) - + ) + Table ProductClassificationTableNoMilestoning( type VARCHAR(200) PRIMARY KEY, type_description VARCHAR(400), system VARCHAR(200), exchange VARCHAR(200)) - + Table ProductClassificationTable( milestoning( business(BUS_FROM=from_z, BUS_THRU=thru_z, INFINITY_DATE=%9999-12-31T00:00:00.0000) @@ -1562,9 +1566,9 @@ Database meta::relational::tests::milestoning::db( type_description VARCHAR(400), system VARCHAR(200), exchange VARCHAR(200), - from_z DATE, + from_z DATE, thru_z DATE) - + Table ProductClassificationTable2( milestoning( business(BUS_FROM=from_z, BUS_THRU=thru_z, INFINITY_DATE=%9999-12-31T00:00:00.0000) @@ -1573,7 +1577,7 @@ Database meta::relational::tests::milestoning::db( type_description VARCHAR(400), system VARCHAR(200), exchange VARCHAR(200), - from_z DATE, + from_z DATE, thru_z DATE) Table ProductClassificationTableWithBusinessSnapshotMilestoning( @@ -1583,7 +1587,7 @@ Database meta::relational::tests::milestoning::db( type VARCHAR(200) PRIMARY KEY, type_description VARCHAR(400), snapshotDate DATE) - + Table BiTemporalProductClassificationTable( milestoning( processing(PROCESSING_IN=in_z, PROCESSING_OUT=out_z), @@ -1595,18 +1599,18 @@ Database meta::relational::tests::milestoning::db( exchange VARCHAR(200), in_z DATE, out_z DATE, - from_z DATE, + from_z DATE, thru_z DATE) - + Table BiTemporalProductClassificationTableWithBusinessMilestoning( milestoning( business(BUS_FROM=from_z, BUS_THRU=thru_z) ) type VARCHAR(200) PRIMARY KEY, type_description VARCHAR(400), - from_z DATE, + from_z DATE, thru_z DATE) - + Table BiTemporalProductClassificationTableWithBusinessSnapshotMilestoning( milestoning( business(BUS_SNAPSHOT_DATE=snapshotDate) @@ -1615,7 +1619,7 @@ Database meta::relational::tests::milestoning::db( type_description VARCHAR(400), system VARCHAR(200), snapshotDate DATE) - + Table BiTemporalProductClassificationTableWithProcessingMilestoning( milestoning( processing(PROCESSING_IN=in_z, PROCESSING_OUT=out_z) @@ -1624,11 +1628,11 @@ Database meta::relational::tests::milestoning::db( type_description VARCHAR(400), in_z DATE, out_z DATE) - + Table BiTemporalProductClassificationTableWithNoMilestoning( type VARCHAR(200) PRIMARY KEY, type_description VARCHAR(400)) - + Table BiTemporalProductClassificationTableWithLatest( milestoning( processing(PROCESSING_IN=in_z, PROCESSING_OUT=out_z, INFINITY_DATE=%9999-12-31T00:00:00.0000), @@ -1640,22 +1644,22 @@ Database meta::relational::tests::milestoning::db( exchange VARCHAR(200), in_z DATE, out_z DATE, - from_z DATE, + from_z DATE, thru_z DATE) - + Table ProductExchangeTable( milestoning( business(BUS_FROM=from_z, BUS_THRU=thru_z, INFINITY_DATE=%9999-12-31T00:00:00.0000) ) city VARCHAR(200), name VARCHAR(200), - from_z DATE, + from_z DATE, thru_z DATE) - + Table ProductExchangeTableNoMilestoning( name VARCHAR(200), - from_z DATE, - thru_z DATE) + from_z DATE, + thru_z DATE) Table OrderToSystemADescriptions( milestoning( @@ -1663,57 +1667,57 @@ Database meta::relational::tests::milestoning::db( ) orderId Integer PRIMARY KEY, systemADescriptionId Integer PRIMARY KEY, - from_z DATE, + from_z DATE, thru_z DATE) - + Table SystemAOrderDescriptionTable(descriptionId Integer PRIMARY KEY, description VARCHAR(200)) - + Table CancelActivitiesTable( milestoning( business(BUS_FROM=from_z, BUS_THRU=thru_z) ) - productId Integer PRIMARY KEY, - from_z DATE, + productId Integer PRIMARY KEY, + from_z DATE, thru_z DATE ) - + Table NewActivityInfoTable( milestoning( business(BUS_FROM=from_z, BUS_THRU=thru_z) ) - productId Integer PRIMARY KEY, + productId Integer PRIMARY KEY, created_by VARCHAR(200), - from_z DATE, + from_z DATE, thru_z DATE ) - + Table ProductClassificationSystemTable( milestoning( business(BUS_FROM=from_z, BUS_THRU=thru_z) ) - id Integer PRIMARY KEY, + id Integer PRIMARY KEY, name VARCHAR(200), - from_z DATE, + from_z DATE, thru_z DATE) - + Table SystemTable(name VARCHAR(200) PRIMARY KEY) - + Table SystemDescriptionTable( milestoning( business(BUS_FROM=from_z, BUS_THRU=thru_z) ) - systemName Integer PRIMARY KEY, + systemName Integer PRIMARY KEY, description VARCHAR(200), - from_z DATE, - thru_z DATE) - - + from_z DATE, + thru_z DATE) + + Table tradeTable(ID INT PRIMARY KEY, accountID INT) - - Table tradePnlTable( + + Table tradePnlTable( milestoning(business(BUS_FROM=from_z, BUS_THRU=thru_z)) TRADE_ID INT PRIMARY KEY, pnl FLOAT,from_z DATE,thru_z DATE) - + Table salesPersonTable( milestoning(business(BUS_FROM=from_z, BUS_THRU=thru_z)) ACCOUNT_ID INT PRIMARY KEY, NAME VARCHAR(200), from_z DATE, thru_z DATE) @@ -1722,37 +1726,37 @@ Database meta::relational::tests::milestoning::db( milestoning( processing(PROCESSING_IN=in_z, PROCESSING_OUT=out_z) ) - kerberos VARCHAR(20) PRIMARY KEY, + kerberos VARCHAR(20) PRIMARY KEY, in_z DATE, out_z DATE) - + Table CertificationTable( milestoning( processing(PROCESSING_IN=in_z, PROCESSING_OUT=out_z) ) kerberos VARCHAR(20) PRIMARY KEY, - name VARCHAR(20) PRIMARY KEY, + name VARCHAR(20) PRIMARY KEY, in_z DATE, - out_z DATE) - + out_z DATE) + Table BiTemporalLocationTable( milestoning( processing(PROCESSING_IN=in_z, PROCESSING_OUT=out_z), business(BUS_FROM=from_z, BUS_THRU=thru_z, INFINITY_DATE=%9999-12-30T00:00:00.0000) ) - ID INT PRIMARY KEY, - kerberos VARCHAR(20), + ID INT PRIMARY KEY, + kerberos VARCHAR(20), PLACE VARCHAR(200), in_z DATE, out_z DATE, - from_z DATE, + from_z DATE, thru_z DATE) - + View tradePnlView ( - ~distinct - TRADE_ID: tradePnlTable.TRADE_ID PRIMARY KEY, - pnl: tradePnlTable.pnl, + ~distinct + TRADE_ID: tradePnlTable.TRADE_ID PRIMARY KEY, + pnl: tradePnlTable.pnl, supportContact : @TradePnlTable_Trade > @Trade_SalesPerson | salesPersonTable.NAME ) @@ -1760,29 +1764,29 @@ Database meta::relational::tests::milestoning::db( ( ACCOUNT_ID: salesPersonTable.ACCOUNT_ID, SALES_PERSON_NAME : salesPersonTable.NAME - ) - + ) + View tradePnlSuperView ( - ~distinct - TRADE_ID: tradePnlTable.TRADE_ID PRIMARY KEY, - pnl: tradePnlTable.pnl, + ~distinct + TRADE_ID: tradePnlTable.TRADE_ID PRIMARY KEY, + pnl: tradePnlTable.pnl, supportContactViaView : @TradePnlTable_Trade > @Trade_SalesPerson > @SalesPersonTable_SalesPersonView | salesPersonView.SALES_PERSON_NAME - ) - + ) + View tradePnlIntermediateView ( - ~distinct - TRADE_ID: tradePnlTable.TRADE_ID PRIMARY KEY, + ~distinct + TRADE_ID: tradePnlTable.TRADE_ID PRIMARY KEY, pnl: tradePnlTable.pnl - ) - + ) + View tradePnlViewUsingView ( - TRADE_ID: tradePnlIntermediateView.TRADE_ID PRIMARY KEY, - pnl: tradePnlIntermediateView.pnl, + TRADE_ID: tradePnlIntermediateView.TRADE_ID PRIMARY KEY, + pnl: tradePnlIntermediateView.pnl, supportContactViaView : @tradePnlIntermediateView_TradePnlTable > @TradePnlTable_Trade > @Trade_SalesPerson > @SalesPersonTable_SalesPersonView | salesPersonView.SALES_PERSON_NAME - ) + ) View stockProductView ( @@ -1797,10 +1801,10 @@ Database meta::relational::tests::milestoning::db( ) id Integer PRIMARY KEY, name VARCHAR(200), - from_z DATE, + from_z DATE, thru_z DATE ) - + Table ProductTable2 ( milestoning( @@ -1808,15 +1812,15 @@ Database meta::relational::tests::milestoning::db( ) identifier Integer PRIMARY KEY, key Integer, - from_z DATE, + from_z DATE, thru_z DATE ) - - + + Join Order_Product(OrderTable.prodFk=ProductTable.id) Join Order_MilestonedProductTable2(OrderTable.prodFk=MilestonedProductTable2.id) Join Order2_Product(OrderTable2.prodFk=ProductTable.id) - Join Order2_MilestonedProductTable2(OrderTable2.prodFk=MilestonedProductTable2.id) + Join Order2_MilestonedProductTable2(OrderTable2.prodFk=MilestonedProductTable2.id) Join Order_ProductWithBusinessSnapshotMilestoning(OrderTable.prodFk=ProductTableWithBusinessSnapshotMilestoning.id) Join Order2_ProductWithBusinessSnapshotMilestoning(OrderTable2.prodFk=ProductTableWithBusinessSnapshotMilestoning.id) Join Order_BiTemporalProduct(OrderTable.prodFk=BiTemporalProductTable.id) @@ -1849,7 +1853,7 @@ Database meta::relational::tests::milestoning::db( Join Product_Exchange(ProductTable.exchange=ProductExchangeTable.name) Join Product_ExchangeNoMilestoning(ProductTable.exchange=ProductExchangeTableNoMilestoning.name) Join MilestonedProductTable2_Exchange(MilestonedProductTable2.exchange=ProductExchangeTable.name) - Join MilestonedProductTable2_ExchangeNoMilestoning(MilestonedProductTable2.exchange=ProductExchangeTableNoMilestoning.name) + Join MilestonedProductTable2_ExchangeNoMilestoning(MilestonedProductTable2.exchange=ProductExchangeTableNoMilestoning.name) Join Product_Synonym(ProductTable.name=ProductSynonymTable.name) Join Product_SynonymNoMilestoning(ProductTable.name=ProductSynonymTableNoMilestoning.name) Join MilestonedProductTable2_Synonym(MilestonedProductTable2.name=ProductSynonymTable.name) @@ -1891,9 +1895,9 @@ Database meta::relational::tests::milestoning::db( Join SalesPersonTable_SalesPersonView(salesPersonTable.ACCOUNT_ID = salesPersonView.ACCOUNT_ID) Join tradePnlIntermediateView_TradePnlTable(tradePnlIntermediateView.TRADE_ID = tradePnlTable.TRADE_ID) Join stockProductView_ProductTable(stockProductView.id = ProductTable.id) - + Filter IsStockType(ProductTable.type='STOCK') Filter LNSEProducts(ProductExchangeTable.name='STOCK') Filter NewActivityWithValidProduct(NewActivityInfoTable.productId > 0) Filter filterById(StockProductTable.id > 152 or StockProductTable.id < 123) -) \ No newline at end of file +) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testBiTemporalDateMilestoning.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testBiTemporalDateMilestoning.pure index 3ee67402503..d4a58811596 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testBiTemporalDateMilestoning.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testBiTemporalDateMilestoning.pure @@ -16,6 +16,7 @@ import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::mapping::*; import meta::relational::functions::asserts::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::milestoning::*; function <> meta::relational::tests::milestoning::bitemporal::setUp():Any[0..1] @@ -43,8 +44,8 @@ function <> meta::relational::tests::milestoning::bitemporal::testBiT let tds = $result.values->toOne(); assertEquals( ['1', 'TDSNull'], $tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "bitemporalproducttable_0".id as "prodId" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= \'2017-06-10\' and "bitemporalproducttable_0".out_z > \'2017-06-10\' and "bitemporalproducttable_0".from_z <= \'2017-06-09\' and "bitemporalproducttable_0".thru_z > \'2017-06-09\'))', - 'select "bitemporalproducttable_0".id as "prodId" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= DATE\'2017-06-10\' and "bitemporalproducttable_0".out_z > DATE\'2017-06-10\' and "bitemporalproducttable_0".from_z <= DATE\'2017-06-09\' and "bitemporalproducttable_0".thru_z > DATE\'2017-06-09\'))', + 'select "bitemporalproducttable_0".id as "prodId" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= \'2017-06-10\' and "bitemporalproducttable_0".out_z > \'2017-06-10\' and "bitemporalproducttable_0".from_z <= \'2017-06-09\' and "bitemporalproducttable_0".thru_z > \'2017-06-09\'))', + 'select "bitemporalproducttable_0".id as "prodId" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= DATE\'2017-06-10\' and "bitemporalproducttable_0".out_z > DATE\'2017-06-10\' and "bitemporalproducttable_0".from_z <= DATE\'2017-06-09\' and "bitemporalproducttable_0".thru_z > DATE\'2017-06-09\'))', $result->sqlRemoveFormatting() ); } @@ -55,8 +56,8 @@ function <> meta::relational::tests::milestoning::bitemporal::testBiT let tds = $result.values->toOne(); assertEquals( ['1', 'TDSNull'], $tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "bitemporalproducttable_0".id as "id" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= \'2017-06-10\' and "bitemporalproducttable_0".out_z > \'2017-06-10\' and "bitemporalproducttable_0".from_z <= \'2017-06-09\' and "bitemporalproducttable_0".thru_z > \'2017-06-09\'))', - 'select "bitemporalproducttable_0".id as "id" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= DATE\'2017-06-10\' and "bitemporalproducttable_0".out_z > DATE\'2017-06-10\' and "bitemporalproducttable_0".from_z <= DATE\'2017-06-09\' and "bitemporalproducttable_0".thru_z > DATE\'2017-06-09\'))', + 'select "bitemporalproducttable_0".id as "id" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= \'2017-06-10\' and "bitemporalproducttable_0".out_z > \'2017-06-10\' and "bitemporalproducttable_0".from_z <= \'2017-06-09\' and "bitemporalproducttable_0".thru_z > \'2017-06-09\'))', + 'select "bitemporalproducttable_0".id as "id" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= DATE\'2017-06-10\' and "bitemporalproducttable_0".out_z > DATE\'2017-06-10\' and "bitemporalproducttable_0".from_z <= DATE\'2017-06-09\' and "bitemporalproducttable_0".thru_z > DATE\'2017-06-09\'))', $result->sqlRemoveFormatting() ); } @@ -67,8 +68,8 @@ function <> meta::relational::tests::milestoning::bitemporal::testMul let tds = $result.values->toOne(); assertEquals(['STOCK', 'TDSNull'], $tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= \'2017-06-10\' and "bitemporalproducttable_0".out_z > \'2017-06-10\' and "bitemporalproducttable_0".from_z <= \'2017-06-09\' and "bitemporalproducttable_0".thru_z > \'2017-06-09\')) left outer join (select "bitemporalproductclassificationtable_1".type as type from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1" where ("bitemporalproductclassificationtable_1".in_z <= \'2017-06-11\' and "bitemporalproductclassificationtable_1".out_z > \'2017-06-11\' and "bitemporalproductclassificationtable_1".from_z <= \'2017-06-10\' and "bitemporalproductclassificationtable_1".thru_z > \'2017-06-10\')) as "bitemporalproductclassificationtable_0" on ("bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)', - 'select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= DATE\'2017-06-10\' and "bitemporalproducttable_0".out_z > DATE\'2017-06-10\' and "bitemporalproducttable_0".from_z <= DATE\'2017-06-09\' and "bitemporalproducttable_0".thru_z > DATE\'2017-06-09\')) left outer join (select "bitemporalproductclassificationtable_1".type as type from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1" where ("bitemporalproductclassificationtable_1".in_z <= DATE\'2017-06-11\' and "bitemporalproductclassificationtable_1".out_z > DATE\'2017-06-11\' and "bitemporalproductclassificationtable_1".from_z <= DATE\'2017-06-10\' and "bitemporalproductclassificationtable_1".thru_z > DATE\'2017-06-10\')) as "bitemporalproductclassificationtable_0" on ("bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)', + 'select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= \'2017-06-10\' and "bitemporalproducttable_0".out_z > \'2017-06-10\' and "bitemporalproducttable_0".from_z <= \'2017-06-09\' and "bitemporalproducttable_0".thru_z > \'2017-06-09\')) left outer join (select "bitemporalproductclassificationtable_1".type as type from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1" where ("bitemporalproductclassificationtable_1".in_z <= \'2017-06-11\' and "bitemporalproductclassificationtable_1".out_z > \'2017-06-11\' and "bitemporalproductclassificationtable_1".from_z <= \'2017-06-10\' and "bitemporalproductclassificationtable_1".thru_z > \'2017-06-10\')) as "bitemporalproductclassificationtable_0" on ("bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)', + 'select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= DATE\'2017-06-10\' and "bitemporalproducttable_0".out_z > DATE\'2017-06-10\' and "bitemporalproducttable_0".from_z <= DATE\'2017-06-09\' and "bitemporalproducttable_0".thru_z > DATE\'2017-06-09\')) left outer join (select "bitemporalproductclassificationtable_1".type as type from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1" where ("bitemporalproductclassificationtable_1".in_z <= DATE\'2017-06-11\' and "bitemporalproductclassificationtable_1".out_z > DATE\'2017-06-11\' and "bitemporalproductclassificationtable_1".from_z <= DATE\'2017-06-10\' and "bitemporalproductclassificationtable_1".thru_z > DATE\'2017-06-10\')) as "bitemporalproductclassificationtable_0" on ("bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)', $result->sqlRemoveFormatting() ); } @@ -85,8 +86,8 @@ function <> meta::relational::tests::milestoning::bitemporal::testMul { let result = execute(|Order.all()->project(o|$o.biTemporalProduct(%latest, %latest).biTemporalClassification(%latest, %latest).type, 'type'), latestbitemporalmap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = \'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = \'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', - 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = DATE\'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', + 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = \'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = \'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', + 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = DATE\'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', $result->sqlRemoveFormatting() ); } @@ -95,8 +96,8 @@ function <> meta::relational::tests::milestoning::bitemporal::testMul { let result = execute(|Order.all()->project(#/Order/biTemporalProduct(%latest, %latest)/biTemporalClassification(%latest, %latest)/type#), latestbitemporalmap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = \'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = \'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', - 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = DATE\'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', + 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = \'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = \'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', + 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = DATE\'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', $result->sqlRemoveFormatting() ); } @@ -105,8 +106,8 @@ function <> meta::relational::tests::milestoning::bitemporal::testMul { let result = execute(|Order.all()->project(o|$o.biTemporalProduct(%latest, %latest).biTemporalClassification.type, 'type'), latestbitemporalmap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = \'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = \'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', - 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = DATE\'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', + 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = \'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = \'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', + 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = DATE\'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', $result->sqlRemoveFormatting() ); } @@ -117,10 +118,10 @@ function <> meta::relational::tests::milestoning::bitemporal::testPop let businessDate = %2015-10-16; let result = execute(|BiTemporalProduct.all($processingDate, $businessDate)->project([p|$p.id, p|$p.biTemporalClassificationType],['id','classificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "root".id as "id", "bitemporalproductclassificationtable_0".type as "classificationType" from BiTemporalProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= \'9999-12-31\' and "bitemporalproductclassificationtable_0".out_z > \'9999-12-31\' and "bitemporalproductclassificationtable_0".from_z <= \'2015-10-16\' and "bitemporalproductclassificationtable_0".thru_z > \'2015-10-16\')) where "root".in_z <= \'9999-12-31\' and "root".out_z > \'9999-12-31\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".id as "id", "bitemporalproductclassificationtable_0".type as "classificationType" from BiTemporalProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= DATE\'9999-12-31\' and "bitemporalproductclassificationtable_0".out_z > DATE\'9999-12-31\' and "bitemporalproductclassificationtable_0".from_z <= DATE\'2015-10-16\' and "bitemporalproductclassificationtable_0".thru_z > DATE\'2015-10-16\')) where "root".in_z <= DATE\'9999-12-31\' and "root".out_z > DATE\'9999-12-31\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".id as "id", "bitemporalproductclassificationtable_0".type as "classificationType" from BiTemporalProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= \'9999-12-31\' and "bitemporalproductclassificationtable_0".out_z > \'9999-12-31\' and "bitemporalproductclassificationtable_0".from_z <= \'2015-10-16\' and "bitemporalproductclassificationtable_0".thru_z > \'2015-10-16\')) where "root".in_z <= \'9999-12-31\' and "root".out_z > \'9999-12-31\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "id", "bitemporalproductclassificationtable_0".type as "classificationType" from BiTemporalProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= DATE\'9999-12-31\' and "bitemporalproductclassificationtable_0".out_z > DATE\'9999-12-31\' and "bitemporalproductclassificationtable_0".from_z <= DATE\'2015-10-16\' and "bitemporalproductclassificationtable_0".thru_z > DATE\'2015-10-16\')) where "root".in_z <= DATE\'9999-12-31\' and "root".out_z > DATE\'9999-12-31\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() - ); + ); let result2 = execute(|BiTemporalProduct.all($processingDate, $businessDate)->project([p|$p.id, p|$p.biTemporalClassificationTypeWithIndirect],['id','classificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( @@ -134,9 +135,9 @@ function <> meta::relational::tests::milestoning::bitemporal::testPop { let processingDate = %9999-12-31; let businessDate = %2015-10-16; - + let result = execute(|BiTemporalProduct.all($processingDate, $businessDate)->project([p|$p.id, p|$p.biTemporalClassificationTypeWithIndirect],['id','classificationType']), noMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions(), noDebug()); - assertSameSQL('select "root".id as "id", "productclassificationtablenomilestoning_0".type as "classificationType" from ProductTableNoMilestoning as "root" left outer join ProductClassificationTableNoMilestoning as "productclassificationtablenomilestoning_0" on ("root".type = "productclassificationtablenomilestoning_0".type)', $result); + assertSameSQL('select "root".id as "id", "productclassificationtablenomilestoning_0".type as "classificationType" from ProductTableNoMilestoning as "root" left outer join ProductClassificationTableNoMilestoning as "productclassificationtablenomilestoning_0" on ("root".type = "productclassificationtablenomilestoning_0".type)', $result); } function <> meta::relational::tests::milestoning::bitemporal::propagation::testBiTemporalQueryMappedToSingleTemporalStore():Boolean[1] @@ -145,8 +146,8 @@ function <> meta::relational::tests::milestoning::bitemporal::propaga let tds = $result.values->toOne(); assertEquals(['ProductName2,STOCK', 'ProductName3,TDSNull'], $tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".name as "productName", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and ("productclassificationtable_0".from_z <= \'2017-06-10\' and "productclassificationtable_0".thru_z > \'2017-06-10\')) where "root".from_z <= \'2017-06-10\' and "root".thru_z > \'2017-06-10\'', - 'select "root".name as "productName", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and ("productclassificationtable_0".from_z <= DATE\'2017-06-10\' and "productclassificationtable_0".thru_z > DATE\'2017-06-10\')) where "root".from_z <= DATE\'2017-06-10\' and "root".thru_z > DATE\'2017-06-10\'', + 'select "root".name as "productName", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and ("productclassificationtable_0".from_z <= \'2017-06-10\' and "productclassificationtable_0".thru_z > \'2017-06-10\')) where "root".from_z <= \'2017-06-10\' and "root".thru_z > \'2017-06-10\'', + 'select "root".name as "productName", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and ("productclassificationtable_0".from_z <= DATE\'2017-06-10\' and "productclassificationtable_0".thru_z > DATE\'2017-06-10\')) where "root".from_z <= DATE\'2017-06-10\' and "root".thru_z > DATE\'2017-06-10\'', $result->sqlRemoveFormatting() ); } @@ -157,8 +158,8 @@ function <> meta::relational::tests::milestoning::bitemporal::propaga let tds = $result.values->toOne(); assertEquals(['STOCK', 'TDSNull'], $tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= \'2017-06-11\' and "bitemporalproducttable_0".out_z > \'2017-06-11\' and "bitemporalproducttable_0".from_z <= \'2017-06-10\' and "bitemporalproducttable_0".thru_z > \'2017-06-10\')) left outer join (select "bitemporalproductclassificationtable_1".type as type from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1" where ("bitemporalproductclassificationtable_1".in_z <= \'2017-06-11\' and "bitemporalproductclassificationtable_1".out_z > \'2017-06-11\' and "bitemporalproductclassificationtable_1".from_z <= \'2017-06-10\' and "bitemporalproductclassificationtable_1".thru_z > \'2017-06-10\')) as "bitemporalproductclassificationtable_0" on ("bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)', - 'select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= DATE\'2017-06-11\' and "bitemporalproducttable_0".out_z > DATE\'2017-06-11\' and "bitemporalproducttable_0".from_z <= DATE\'2017-06-10\' and "bitemporalproducttable_0".thru_z > DATE\'2017-06-10\')) left outer join (select "bitemporalproductclassificationtable_1".type as type from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1" where ("bitemporalproductclassificationtable_1".in_z <= DATE\'2017-06-11\' and "bitemporalproductclassificationtable_1".out_z > DATE\'2017-06-11\' and "bitemporalproductclassificationtable_1".from_z <= DATE\'2017-06-10\' and "bitemporalproductclassificationtable_1".thru_z > DATE\'2017-06-10\')) as "bitemporalproductclassificationtable_0" on ("bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)', + 'select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= \'2017-06-11\' and "bitemporalproducttable_0".out_z > \'2017-06-11\' and "bitemporalproducttable_0".from_z <= \'2017-06-10\' and "bitemporalproducttable_0".thru_z > \'2017-06-10\')) left outer join (select "bitemporalproductclassificationtable_1".type as type from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1" where ("bitemporalproductclassificationtable_1".in_z <= \'2017-06-11\' and "bitemporalproductclassificationtable_1".out_z > \'2017-06-11\' and "bitemporalproductclassificationtable_1".from_z <= \'2017-06-10\' and "bitemporalproductclassificationtable_1".thru_z > \'2017-06-10\')) as "bitemporalproductclassificationtable_0" on ("bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)', + 'select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= DATE\'2017-06-11\' and "bitemporalproducttable_0".out_z > DATE\'2017-06-11\' and "bitemporalproducttable_0".from_z <= DATE\'2017-06-10\' and "bitemporalproducttable_0".thru_z > DATE\'2017-06-10\')) left outer join (select "bitemporalproductclassificationtable_1".type as type from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1" where ("bitemporalproductclassificationtable_1".in_z <= DATE\'2017-06-11\' and "bitemporalproductclassificationtable_1".out_z > DATE\'2017-06-11\' and "bitemporalproductclassificationtable_1".from_z <= DATE\'2017-06-10\' and "bitemporalproductclassificationtable_1".thru_z > DATE\'2017-06-10\')) as "bitemporalproductclassificationtable_0" on ("bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)', $result->sqlRemoveFormatting() ); } @@ -169,8 +170,8 @@ function <> meta::relational::tests::milestoning::bitemporal::propaga let tds = $result.values->toOne(); assertEquals(['STOCK'], $tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "bitemporalproductclassificationtable_0".type as "type" from BiTemporalProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= \'2017-06-11\' and "bitemporalproductclassificationtable_0".out_z > \'2017-06-11\' and "bitemporalproductclassificationtable_0".from_z <= \'2017-06-10\' and "bitemporalproductclassificationtable_0".thru_z > \'2017-06-10\')) where "root".in_z <= \'2017-06-11\' and "root".out_z > \'2017-06-11\' and "root".from_z <= \'2017-06-10\' and "root".thru_z > \'2017-06-10\'', - 'select "bitemporalproductclassificationtable_0".type as "type" from BiTemporalProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= DATE\'2017-06-11\' and "bitemporalproductclassificationtable_0".out_z > DATE\'2017-06-11\' and "bitemporalproductclassificationtable_0".from_z <= DATE\'2017-06-10\' and "bitemporalproductclassificationtable_0".thru_z > DATE\'2017-06-10\')) where "root".in_z <= DATE\'2017-06-11\' and "root".out_z > DATE\'2017-06-11\' and "root".from_z <= DATE\'2017-06-10\' and "root".thru_z > DATE\'2017-06-10\'', + 'select "bitemporalproductclassificationtable_0".type as "type" from BiTemporalProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= \'2017-06-11\' and "bitemporalproductclassificationtable_0".out_z > \'2017-06-11\' and "bitemporalproductclassificationtable_0".from_z <= \'2017-06-10\' and "bitemporalproductclassificationtable_0".thru_z > \'2017-06-10\')) where "root".in_z <= \'2017-06-11\' and "root".out_z > \'2017-06-11\' and "root".from_z <= \'2017-06-10\' and "root".thru_z > \'2017-06-10\'', + 'select "bitemporalproductclassificationtable_0".type as "type" from BiTemporalProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= DATE\'2017-06-11\' and "bitemporalproductclassificationtable_0".out_z > DATE\'2017-06-11\' and "bitemporalproductclassificationtable_0".from_z <= DATE\'2017-06-10\' and "bitemporalproductclassificationtable_0".thru_z > DATE\'2017-06-10\')) where "root".in_z <= DATE\'2017-06-11\' and "root".out_z > DATE\'2017-06-11\' and "root".from_z <= DATE\'2017-06-10\' and "root".thru_z > DATE\'2017-06-10\'', $result->sqlRemoveFormatting() ); } @@ -181,8 +182,8 @@ function <> meta::relational::tests::milestoning::bitemporal::propaga let tds = $result.values->toOne(); assertEquals(['STOCK'], $tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "bitemporalproductclassificationtable_0".type as "type" from BiTemporalProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= \'2017-06-11\' and "bitemporalproductclassificationtable_0".out_z > \'2017-06-11\' and "bitemporalproductclassificationtable_0".from_z <= \'2017-06-12\' and "bitemporalproductclassificationtable_0".thru_z > \'2017-06-12\')) where "root".in_z <= \'2017-06-11\' and "root".out_z > \'2017-06-11\' and "root".from_z <= \'2017-06-10\' and "root".thru_z > \'2017-06-10\'', - 'select "bitemporalproductclassificationtable_0".type as "type" from BiTemporalProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= DATE\'2017-06-11\' and "bitemporalproductclassificationtable_0".out_z > DATE\'2017-06-11\' and "bitemporalproductclassificationtable_0".from_z <= DATE\'2017-06-12\' and "bitemporalproductclassificationtable_0".thru_z > DATE\'2017-06-12\')) where "root".in_z <= DATE\'2017-06-11\' and "root".out_z > DATE\'2017-06-11\' and "root".from_z <= DATE\'2017-06-10\' and "root".thru_z > DATE\'2017-06-10\'', + 'select "bitemporalproductclassificationtable_0".type as "type" from BiTemporalProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= \'2017-06-11\' and "bitemporalproductclassificationtable_0".out_z > \'2017-06-11\' and "bitemporalproductclassificationtable_0".from_z <= \'2017-06-12\' and "bitemporalproductclassificationtable_0".thru_z > \'2017-06-12\')) where "root".in_z <= \'2017-06-11\' and "root".out_z > \'2017-06-11\' and "root".from_z <= \'2017-06-10\' and "root".thru_z > \'2017-06-10\'', + 'select "bitemporalproductclassificationtable_0".type as "type" from BiTemporalProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= DATE\'2017-06-11\' and "bitemporalproductclassificationtable_0".out_z > DATE\'2017-06-11\' and "bitemporalproductclassificationtable_0".from_z <= DATE\'2017-06-12\' and "bitemporalproductclassificationtable_0".thru_z > DATE\'2017-06-12\')) where "root".in_z <= DATE\'2017-06-11\' and "root".out_z > DATE\'2017-06-11\' and "root".from_z <= DATE\'2017-06-10\' and "root".thru_z > DATE\'2017-06-10\'', $result->sqlRemoveFormatting() ); } @@ -193,8 +194,8 @@ function <> meta::relational::tests::milestoning::bitemporal::propaga let tds = $result.values->toOne(); assertEquals(['STOCK'], $tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "productclassificationtable_0".type as "type" from BiTemporalProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2017-06-10\' and "productclassificationtable_0".thru_z > \'2017-06-10\') where "root".in_z <= \'2017-06-11\' and "root".out_z > \'2017-06-11\' and "root".from_z <= \'2017-06-10\' and "root".thru_z > \'2017-06-10\'', - 'select "productclassificationtable_0".type as "type" from BiTemporalProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2017-06-10\' and "productclassificationtable_0".thru_z > DATE\'2017-06-10\') where "root".in_z <= DATE\'2017-06-11\' and "root".out_z > DATE\'2017-06-11\' and "root".from_z <= DATE\'2017-06-10\' and "root".thru_z > DATE\'2017-06-10\'', + 'select "productclassificationtable_0".type as "type" from BiTemporalProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2017-06-10\' and "productclassificationtable_0".thru_z > \'2017-06-10\') where "root".in_z <= \'2017-06-11\' and "root".out_z > \'2017-06-11\' and "root".from_z <= \'2017-06-10\' and "root".thru_z > \'2017-06-10\'', + 'select "productclassificationtable_0".type as "type" from BiTemporalProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2017-06-10\' and "productclassificationtable_0".thru_z > DATE\'2017-06-10\') where "root".in_z <= DATE\'2017-06-11\' and "root".out_z > DATE\'2017-06-11\' and "root".from_z <= DATE\'2017-06-10\' and "root".thru_z > DATE\'2017-06-10\'', $result->sqlRemoveFormatting() ); } @@ -205,8 +206,8 @@ function <> meta::relational::tests::milestoning::bitemporal::propaga let tds = $result.values->toOne(); assertEquals(['ProductName2,STOCK', 'ProductName3,TDSNull'], $tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".name as "name", "bitemporalproductclassificationtable_0".type as "type" from ProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= \'9999-12-30\' and "bitemporalproductclassificationtable_0".out_z > \'9999-12-30\' and "bitemporalproductclassificationtable_0".from_z <= \'9999-12-29\' and "bitemporalproductclassificationtable_0".thru_z > \'9999-12-29\')) where "root".from_z <= \'9999-12-29\' and "root".thru_z > \'9999-12-29\'', - 'select "root".name as "name", "bitemporalproductclassificationtable_0".type as "type" from ProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= DATE\'9999-12-30\' and "bitemporalproductclassificationtable_0".out_z > DATE\'9999-12-30\' and "bitemporalproductclassificationtable_0".from_z <= DATE\'9999-12-29\' and "bitemporalproductclassificationtable_0".thru_z > DATE\'9999-12-29\')) where "root".from_z <= DATE\'9999-12-29\' and "root".thru_z > DATE\'9999-12-29\'', + 'select "root".name as "name", "bitemporalproductclassificationtable_0".type as "type" from ProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= \'9999-12-30\' and "bitemporalproductclassificationtable_0".out_z > \'9999-12-30\' and "bitemporalproductclassificationtable_0".from_z <= \'9999-12-29\' and "bitemporalproductclassificationtable_0".thru_z > \'9999-12-29\')) where "root".from_z <= \'9999-12-29\' and "root".thru_z > \'9999-12-29\'', + 'select "root".name as "name", "bitemporalproductclassificationtable_0".type as "type" from ProductTable as "root" left outer join BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_0" on ("root".type = "bitemporalproductclassificationtable_0".type and ("bitemporalproductclassificationtable_0".in_z <= DATE\'9999-12-30\' and "bitemporalproductclassificationtable_0".out_z > DATE\'9999-12-30\' and "bitemporalproductclassificationtable_0".from_z <= DATE\'9999-12-29\' and "bitemporalproductclassificationtable_0".thru_z > DATE\'9999-12-29\')) where "root".from_z <= DATE\'9999-12-29\' and "root".thru_z > DATE\'9999-12-29\'', $result->sqlRemoveFormatting() ); } @@ -217,8 +218,8 @@ function <> meta::relational::tests::milestoning::bitemporal::propaga let tds = $result.values->toOne(); assertEquals(['ggekko,miami', 'bfox,TDSNull'], $tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".kerberos as "traderName", "bitemporallocationtable_0".PLACE as "traderLocation" from TraderTable as "root" left outer join BiTemporalLocationTable as "bitemporallocationtable_0" on ("root".kerberos = "bitemporallocationtable_0".kerberos and ("bitemporallocationtable_0".in_z <= \'2015-10-16\' and "bitemporallocationtable_0".out_z > \'2015-10-16\' and "bitemporallocationtable_0".from_z <= \'9999-12-28\' and "bitemporallocationtable_0".thru_z > \'9999-12-28\')) where "root".in_z <= \'2015-10-16\' and "root".out_z > \'2015-10-16\'', - 'select "root".kerberos as "traderName", "bitemporallocationtable_0".PLACE as "traderLocation" from TraderTable as "root" left outer join BiTemporalLocationTable as "bitemporallocationtable_0" on ("root".kerberos = "bitemporallocationtable_0".kerberos and ("bitemporallocationtable_0".in_z <= DATE\'2015-10-16\' and "bitemporallocationtable_0".out_z > DATE\'2015-10-16\' and "bitemporallocationtable_0".from_z <= DATE\'9999-12-28\' and "bitemporallocationtable_0".thru_z > DATE\'9999-12-28\')) where "root".in_z <= DATE\'2015-10-16\' and "root".out_z > DATE\'2015-10-16\'', + 'select "root".kerberos as "traderName", "bitemporallocationtable_0".PLACE as "traderLocation" from TraderTable as "root" left outer join BiTemporalLocationTable as "bitemporallocationtable_0" on ("root".kerberos = "bitemporallocationtable_0".kerberos and ("bitemporallocationtable_0".in_z <= \'2015-10-16\' and "bitemporallocationtable_0".out_z > \'2015-10-16\' and "bitemporallocationtable_0".from_z <= \'9999-12-28\' and "bitemporallocationtable_0".thru_z > \'9999-12-28\')) where "root".in_z <= \'2015-10-16\' and "root".out_z > \'2015-10-16\'', + 'select "root".kerberos as "traderName", "bitemporallocationtable_0".PLACE as "traderLocation" from TraderTable as "root" left outer join BiTemporalLocationTable as "bitemporallocationtable_0" on ("root".kerberos = "bitemporallocationtable_0".kerberos and ("bitemporallocationtable_0".in_z <= DATE\'2015-10-16\' and "bitemporallocationtable_0".out_z > DATE\'2015-10-16\' and "bitemporallocationtable_0".from_z <= DATE\'9999-12-28\' and "bitemporallocationtable_0".thru_z > DATE\'9999-12-28\')) where "root".in_z <= DATE\'2015-10-16\' and "root".out_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -227,8 +228,8 @@ function <> meta::relational::tests::milestoning::bitemporal::testBiT { let result = execute(|Order.all()->project(o|$o.biTemporalProduct(%latest, %latest).biTemporalClassification.type, 'type'), latestbitemporalmap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = \'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = \'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', - 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = DATE\'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', + 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = \'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = \'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', + 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = DATE\'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', $result->sqlRemoveFormatting() ); } @@ -237,8 +238,8 @@ function <> meta::relational::tests::milestoning::bitemporal::testBiT { let result = execute(|Order.all()->project(o|$o.biTemporalProduct(%latest, %latest).biTemporalClassification(%2017-6-10).type, 'type'), latestbitemporalmap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = \'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".from_z <= \'2017-06-10\' and "bitemporalproductclassificationtablewithlatest_1".thru_z > \'2017-06-10\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', - 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = DATE\'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".from_z <= DATE\'2017-06-10\' and "bitemporalproductclassificationtablewithlatest_1".thru_z > DATE\'2017-06-10\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', + 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = \'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = \'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".from_z <= \'2017-06-10\' and "bitemporalproductclassificationtablewithlatest_1".thru_z > \'2017-06-10\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', + 'select "bitemporalproductclassificationtablewithlatest_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTableWithLatest as "bitemporalproducttablewithlatest_0" on ("root".prodFk = "bitemporalproducttablewithlatest_0".id and ("bitemporalproducttablewithlatest_0".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproducttablewithlatest_0".thru_z = DATE\'9999-12-31\')) left outer join (select "bitemporalproductclassificationtablewithlatest_1".type as type from BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_1" where ("bitemporalproductclassificationtablewithlatest_1".out_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "bitemporalproductclassificationtablewithlatest_1".from_z <= DATE\'2017-06-10\' and "bitemporalproductclassificationtablewithlatest_1".thru_z > DATE\'2017-06-10\')) as "bitemporalproductclassificationtablewithlatest_0" on ("bitemporalproducttablewithlatest_0".type = "bitemporalproductclassificationtablewithlatest_0".type)', $result->sqlRemoveFormatting() ); } @@ -258,11 +259,11 @@ function <> {meta::pure::executionPlan::profiles::serverVersion.start ->groupBy([p|$p.id], agg(p|$p.biTemporalClassification($date, $date).type,y|$y->count()), ['type','count']), - meta::relational::tests::milestoning::latestbitemporalmap, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + meta::relational::tests::milestoning::latestbitemporalmap, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); // let tds = $result.values->toOne(); assertEqualsH2Compatible( - 'select "root".id as "type", count("bitemporalproductclassificationtablewithlatest_0".type) as "count" from BiTemporalProductTableWithLatest as "root" left outer join BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_0" on ("root".type = "bitemporalproductclassificationtablewithlatest_0".type and ("bitemporalproductclassificationtablewithlatest_0".in_z <= \'2020-06-03 20:40:14.761\' and "bitemporalproductclassificationtablewithlatest_0".out_z > \'2020-06-03 20:40:14.761\' and "bitemporalproductclassificationtablewithlatest_0".from_z <= \'2020-06-03 20:40:14.761\' and "bitemporalproductclassificationtablewithlatest_0".thru_z > \'2020-06-03 20:40:14.761\')) where "root".in_z <= \'2020-08-08\' and "root".out_z > \'2020-08-08\' and "root".from_z <= \'2020-08-08\' and "root".thru_z > \'2020-08-08\' group by "type"', - 'select "root".id as "type", count("bitemporalproductclassificationtablewithlatest_0".type) as "count" from BiTemporalProductTableWithLatest as "root" left outer join BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_0" on ("root".type = "bitemporalproductclassificationtablewithlatest_0".type and ("bitemporalproductclassificationtablewithlatest_0".in_z <= TIMESTAMP\'2020-06-03 20:40:14.761\' and "bitemporalproductclassificationtablewithlatest_0".out_z > TIMESTAMP\'2020-06-03 20:40:14.761\' and "bitemporalproductclassificationtablewithlatest_0".from_z <= TIMESTAMP\'2020-06-03 20:40:14.761\' and "bitemporalproductclassificationtablewithlatest_0".thru_z > TIMESTAMP\'2020-06-03 20:40:14.761\')) where "root".in_z <= DATE\'2020-08-08\' and "root".out_z > DATE\'2020-08-08\' and "root".from_z <= DATE\'2020-08-08\' and "root".thru_z > DATE\'2020-08-08\' group by "type"', + 'select "root".id as "type", count("bitemporalproductclassificationtablewithlatest_0".type) as "count" from BiTemporalProductTableWithLatest as "root" left outer join BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_0" on ("root".type = "bitemporalproductclassificationtablewithlatest_0".type and ("bitemporalproductclassificationtablewithlatest_0".in_z <= \'2020-06-03 20:40:14.761\' and "bitemporalproductclassificationtablewithlatest_0".out_z > \'2020-06-03 20:40:14.761\' and "bitemporalproductclassificationtablewithlatest_0".from_z <= \'2020-06-03 20:40:14.761\' and "bitemporalproductclassificationtablewithlatest_0".thru_z > \'2020-06-03 20:40:14.761\')) where "root".in_z <= \'2020-08-08\' and "root".out_z > \'2020-08-08\' and "root".from_z <= \'2020-08-08\' and "root".thru_z > \'2020-08-08\' group by "type"', + 'select "root".id as "type", count("bitemporalproductclassificationtablewithlatest_0".type) as "count" from BiTemporalProductTableWithLatest as "root" left outer join BiTemporalProductClassificationTableWithLatest as "bitemporalproductclassificationtablewithlatest_0" on ("root".type = "bitemporalproductclassificationtablewithlatest_0".type and ("bitemporalproductclassificationtablewithlatest_0".in_z <= TIMESTAMP\'2020-06-03 20:40:14.761\' and "bitemporalproductclassificationtablewithlatest_0".out_z > TIMESTAMP\'2020-06-03 20:40:14.761\' and "bitemporalproductclassificationtablewithlatest_0".from_z <= TIMESTAMP\'2020-06-03 20:40:14.761\' and "bitemporalproductclassificationtablewithlatest_0".thru_z > TIMESTAMP\'2020-06-03 20:40:14.761\')) where "root".in_z <= DATE\'2020-08-08\' and "root".out_z > DATE\'2020-08-08\' and "root".from_z <= DATE\'2020-08-08\' and "root".thru_z > DATE\'2020-08-08\' group by "type"', $result->sqlRemoveFormatting() ); } @@ -274,13 +275,13 @@ function <> meta::relational::tests::milestoning::bitemporal::testBiT let result3 = execute(|Order.all()->project(o|$o.biTemporalProduct($o.orderDate->toOne(), $o.orderDate->toOne()).biTemporalClassification(%2017-6-10, %2017-6-11).type, 'type'), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let result4 = execute(|Order.all()->project(o|$o.biTemporalProduct(%2017-6-10, $o.orderDate->toOne()).biTemporalClassification.type, 'type'), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let result5 = execute(|Order.all()->project(o|$o.biTemporalProduct($o.orderDate->toOne(), %2017-6-10).biTemporalClassification.type, 'type'), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertSameSQL('select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= "root".orderDate and "bitemporalproducttable_0".out_z > "root".orderDate and "bitemporalproducttable_0".from_z <= "root".orderDate and "bitemporalproducttable_0".thru_z > "root".orderDate)) left outer join (select "bitemporalproductclassificationtable_1".type as type, "bitemporalproductclassificationtable_1".in_z as in_z, "bitemporalproductclassificationtable_1".out_z as out_z, "bitemporalproductclassificationtable_1".from_z as from_z, "bitemporalproductclassificationtable_1".thru_z as thru_z from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1") as "bitemporalproductclassificationtable_0" on (("bitemporalproductclassificationtable_0".in_z <= "root".orderDate and "bitemporalproductclassificationtable_0".out_z > "root".orderDate and "bitemporalproductclassificationtable_0".from_z <= "root".orderDate and "bitemporalproductclassificationtable_0".thru_z > "root".orderDate) and "bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)',$result1); assertEqualsH2Compatible( 'select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= "root".orderDate and "bitemporalproducttable_0".out_z > "root".orderDate and "bitemporalproducttable_0".from_z <= "root".orderDate and "bitemporalproducttable_0".thru_z > "root".orderDate)) left outer join (select "bitemporalproductclassificationtable_1".type as type, "bitemporalproductclassificationtable_1".in_z as in_z, "bitemporalproductclassificationtable_1".out_z as out_z, "bitemporalproductclassificationtable_1".from_z as from_z, "bitemporalproductclassificationtable_1".thru_z as thru_z from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1") as "bitemporalproductclassificationtable_0" on (("bitemporalproductclassificationtable_0".in_z <= "root".orderDate and "bitemporalproductclassificationtable_0".out_z > "root".orderDate and "bitemporalproductclassificationtable_0".from_z <= \'2017-06-10\' and "bitemporalproductclassificationtable_0".thru_z > \'2017-06-10\') and "bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)', 'select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= "root".orderDate and "bitemporalproducttable_0".out_z > "root".orderDate and "bitemporalproducttable_0".from_z <= "root".orderDate and "bitemporalproducttable_0".thru_z > "root".orderDate)) left outer join (select "bitemporalproductclassificationtable_1".type as type, "bitemporalproductclassificationtable_1".in_z as in_z, "bitemporalproductclassificationtable_1".out_z as out_z, "bitemporalproductclassificationtable_1".from_z as from_z, "bitemporalproductclassificationtable_1".thru_z as thru_z from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1") as "bitemporalproductclassificationtable_0" on (("bitemporalproductclassificationtable_0".in_z <= "root".orderDate and "bitemporalproductclassificationtable_0".out_z > "root".orderDate and "bitemporalproductclassificationtable_0".from_z <= DATE\'2017-06-10\' and "bitemporalproductclassificationtable_0".thru_z > DATE\'2017-06-10\') and "bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)', $result2->sqlRemoveFormatting() - ); + ); assertEqualsH2Compatible( 'select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= "root".orderDate and "bitemporalproducttable_0".out_z > "root".orderDate and "bitemporalproducttable_0".from_z <= "root".orderDate and "bitemporalproducttable_0".thru_z > "root".orderDate)) left outer join (select "bitemporalproductclassificationtable_1".type as type from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1" where ("bitemporalproductclassificationtable_1".in_z <= \'2017-06-10\' and "bitemporalproductclassificationtable_1".out_z > \'2017-06-10\' and "bitemporalproductclassificationtable_1".from_z <= \'2017-06-11\' and "bitemporalproductclassificationtable_1".thru_z > \'2017-06-11\')) as "bitemporalproductclassificationtable_0" on ("bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)', 'select "bitemporalproductclassificationtable_0".type as "type" from OrderTable as "root" left outer join BiTemporalProductTable as "bitemporalproducttable_0" on ("root".prodFk = "bitemporalproducttable_0".id and ("bitemporalproducttable_0".in_z <= "root".orderDate and "bitemporalproducttable_0".out_z > "root".orderDate and "bitemporalproducttable_0".from_z <= "root".orderDate and "bitemporalproducttable_0".thru_z > "root".orderDate)) left outer join (select "bitemporalproductclassificationtable_1".type as type from BiTemporalProductClassificationTable as "bitemporalproductclassificationtable_1" where ("bitemporalproductclassificationtable_1".in_z <= DATE\'2017-06-10\' and "bitemporalproductclassificationtable_1".out_z > DATE\'2017-06-10\' and "bitemporalproductclassificationtable_1".from_z <= DATE\'2017-06-11\' and "bitemporalproductclassificationtable_1".thru_z > DATE\'2017-06-11\')) as "bitemporalproductclassificationtable_0" on ("bitemporalproducttable_0".type = "bitemporalproductclassificationtable_0".type)', diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testBusinessDateMilestoning.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testBusinessDateMilestoning.pure index b8b6fd3aa06..ed708024918 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testBusinessDateMilestoning.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testBusinessDateMilestoning.pure @@ -17,6 +17,7 @@ import meta::pure::executionPlan::*; import meta::relational::validation::*; import meta::pure::executionPlan::toString::*; import meta::pure::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::functions::sqlstring::*; import meta::relational::functions::asserts::*; @@ -24,8 +25,10 @@ import meta::relational::mapping::*; import meta::relational::milestoning::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::milestoning::*; import meta::relational::tests::milestoning::businessdate::*; @@ -39,8 +42,8 @@ function <> meta::relational::tests::milestoning::businessdate::testC let busDate = %2015-10-16; let result = validate(|ProductWithConstraint1.all($busDate),meta::relational::tests::milestoning::milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure property: systemDescription is processed with the correct milestoning date, note that there are no milestoning properties on its left through which a date could be propagated\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName and "systemdescriptiontable_0".from_z <= \'2015-10-16\' and "systemdescriptiontable_0".thru_z > \'2015-10-16\') where not char_length("systemdescriptiontable_0".description) < 10 and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure property: systemDescription is processed with the correct milestoning date, note that there are no milestoning properties on its left through which a date could be propagated\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName and "systemdescriptiontable_0".from_z <= DATE\'2015-10-16\' and "systemdescriptiontable_0".thru_z > DATE\'2015-10-16\') where not char_length("systemdescriptiontable_0".description) < 10 and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure property: systemDescription is processed with the correct milestoning date, note that there are no milestoning properties on its left through which a date could be propagated\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName and "systemdescriptiontable_0".from_z <= \'2015-10-16\' and "systemdescriptiontable_0".thru_z > \'2015-10-16\') where not char_length("systemdescriptiontable_0".description) < 10 and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure property: systemDescription is processed with the correct milestoning date, note that there are no milestoning properties on its left through which a date could be propagated\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName and "systemdescriptiontable_0".from_z <= DATE\'2015-10-16\' and "systemdescriptiontable_0".thru_z > DATE\'2015-10-16\') where not char_length("systemdescriptiontable_0".description) < 10 and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -50,8 +53,8 @@ function <> meta::relational::tests::milestoning::businessdate::testC let busDate = %2015-10-16;//parent milestoning context not propagated through map let result = validate(|ProductWithConstraint1b.all($busDate),meta::relational::tests::milestoning::milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure Ensure parent (this) milestoning context propagated through (auto) map\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName and "systemdescriptiontable_0".from_z <= \'2015-10-16\' and "systemdescriptiontable_0".thru_z > \'2015-10-16\') where not char_length("systemdescriptiontable_0".description) < 10 and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure Ensure parent (this) milestoning context propagated through (auto) map\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName and "systemdescriptiontable_0".from_z <= DATE\'2015-10-16\' and "systemdescriptiontable_0".thru_z > DATE\'2015-10-16\') where not char_length("systemdescriptiontable_0".description) < 10 and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure Ensure parent (this) milestoning context propagated through (auto) map\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName and "systemdescriptiontable_0".from_z <= \'2015-10-16\' and "systemdescriptiontable_0".thru_z > \'2015-10-16\') where not char_length("systemdescriptiontable_0".description) < 10 and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure Ensure parent (this) milestoning context propagated through (auto) map\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName and "systemdescriptiontable_0".from_z <= DATE\'2015-10-16\' and "systemdescriptiontable_0".thru_z > DATE\'2015-10-16\') where not char_length("systemdescriptiontable_0".description) < 10 and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -61,8 +64,8 @@ function <> meta::relational::tests::milestoning::businessdate::testC let busDate = %2015-10-16; let result = validate(|ProductWithConstraint1c.all($busDate),meta::relational::tests::milestoning::milestoningmapwithconstraints, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure parent (this) milestoning context propagated through project\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" where not (not (not exists(select 1 from SystemTable as "systemtable_0" left outer join (select "systemdescriptiontable_1".systemName as systemName, "systemdescriptiontable_1".description as description from SystemDescriptionTable as "systemdescriptiontable_1" where "systemdescriptiontable_1".from_z <= \'2015-10-16\' and "systemdescriptiontable_1".thru_z > \'2015-10-16\') as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName) where "root".referenceSystemName = "systemtable_0".name))) and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure parent (this) milestoning context propagated through project\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" where not (not (not exists(select 1 from SystemTable as "systemtable_0" left outer join (select "systemdescriptiontable_1".systemName as systemName, "systemdescriptiontable_1".description as description from SystemDescriptionTable as "systemdescriptiontable_1" where "systemdescriptiontable_1".from_z <= DATE\'2015-10-16\' and "systemdescriptiontable_1".thru_z > DATE\'2015-10-16\') as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName) where "root".referenceSystemName = "systemtable_0".name))) and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure parent (this) milestoning context propagated through project\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" where not (not (not exists(select 1 from SystemTable as "systemtable_0" left outer join (select "systemdescriptiontable_1".systemName as systemName, "systemdescriptiontable_1".description as description from SystemDescriptionTable as "systemdescriptiontable_1" where "systemdescriptiontable_1".from_z <= \'2015-10-16\' and "systemdescriptiontable_1".thru_z > \'2015-10-16\') as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName) where "root".referenceSystemName = "systemtable_0".name))) and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure parent (this) milestoning context propagated through project\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" where not (not (not exists(select 1 from SystemTable as "systemtable_0" left outer join (select "systemdescriptiontable_1".systemName as systemName, "systemdescriptiontable_1".description as description from SystemDescriptionTable as "systemdescriptiontable_1" where "systemdescriptiontable_1".from_z <= DATE\'2015-10-16\' and "systemdescriptiontable_1".thru_z > DATE\'2015-10-16\') as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName) where "root".referenceSystemName = "systemtable_0".name))) and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -72,8 +75,8 @@ function <> meta::relational::tests::milestoning::businessdate::testC let busDate = %2015-10-16; let result = validate(|ProductWithConstraint2.all($busDate),meta::relational::tests::milestoning::milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure property: exchange is processed with the correct milestoning date, and that the milestoning property on the left (classification) is not propagagted\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2019-01-01\' and "productclassificationtable_0".thru_z > \'2019-01-01\') left outer join ProductExchangeTable as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where not char_length("productexchangetable_0".name) is null and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure property: exchange is processed with the correct milestoning date, and that the milestoning property on the left (classification) is not propagagted\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2019-01-01\' and "productclassificationtable_0".thru_z > DATE\'2019-01-01\') left outer join ProductExchangeTable as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-16\' and "productexchangetable_0".thru_z > DATE\'2015-10-16\') where not char_length("productexchangetable_0".name) is null and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure property: exchange is processed with the correct milestoning date, and that the milestoning property on the left (classification) is not propagagted\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2019-01-01\' and "productclassificationtable_0".thru_z > \'2019-01-01\') left outer join ProductExchangeTable as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where not char_length("productexchangetable_0".name) is null and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure property: exchange is processed with the correct milestoning date, and that the milestoning property on the left (classification) is not propagagted\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2019-01-01\' and "productclassificationtable_0".thru_z > DATE\'2019-01-01\') left outer join ProductExchangeTable as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-16\' and "productexchangetable_0".thru_z > DATE\'2015-10-16\') where not char_length("productexchangetable_0".name) is null and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -90,8 +93,8 @@ function <> meta::relational::tests::milestoning::businessdate::testC let busDate = %2015-10-16; let result = validate(|ProductWithConstraint3.all($busDate),meta::relational::tests::milestoning::milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure that milestoning qualified properties passed function arguments which reference $this.temporalDate are processed correctly\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, \'2015-10-16\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, \'2015-10-16\')) left outer join ProductExchangeTable as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where ("productexchangetable_0".name <> \'exchangeName\' OR "productexchangetable_0".name is null) and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure that milestoning qualified properties passed function arguments which reference $this.temporalDate are processed correctly\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, DATE\'2015-10-16\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, DATE\'2015-10-16\')) left outer join ProductExchangeTable as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-16\' and "productexchangetable_0".thru_z > DATE\'2015-10-16\') where ("productexchangetable_0".name <> \'exchangeName\' OR "productexchangetable_0".name is null) and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure that milestoning qualified properties passed function arguments which reference $this.temporalDate are processed correctly\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, \'2015-10-16\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, \'2015-10-16\')) left outer join ProductExchangeTable as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where ("productexchangetable_0".name <> \'exchangeName\' OR "productexchangetable_0".name is null) and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select \'CST\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'Ensure that milestoning qualified properties passed function arguments which reference $this.temporalDate are processed correctly\' as "MESSAGE", "root".id as "id", "root".name as "name" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, DATE\'2015-10-16\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, DATE\'2015-10-16\')) left outer join ProductExchangeTable as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-16\' and "productexchangetable_0".thru_z > DATE\'2015-10-16\') where ("productexchangetable_0".name <> \'exchangeName\' OR "productexchangetable_0".name is null) and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -110,8 +113,8 @@ function <> meta::relational::tests::milestoning::businessdate::testP let tds = $result.values->at(0); assertEquals(['ProductName2,STOCK', 'ProductName3,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); @@ -131,10 +134,10 @@ function <> meta::relational::tests::milestoning::businessdate::testM let result = execute(|Product.all($busDate)->project([p|$p.name, p|$p.classificationExchangeName1],['name','classificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEqualsH2Compatible( - 'select "root".name as "name", "productexchangetable_0".name as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= \'2019-01-01\' and "productexchangetable_1".thru_z > \'2019-01-01\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".name as "name", "productexchangetable_0".name as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= DATE\'2019-01-01\' and "productexchangetable_1".thru_z > DATE\'2019-01-01\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".name as "name", "productexchangetable_0".name as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= \'2019-01-01\' and "productexchangetable_1".thru_z > \'2019-01-01\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name", "productexchangetable_0".name as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= DATE\'2019-01-01\' and "productexchangetable_1".thru_z > DATE\'2019-01-01\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() - ); + ); } function <> meta::relational::tests::milestoning::businessdate::testMilestonedThisBusinessDateInPosition2InQualfiedPropertySequence():Boolean[1] @@ -143,10 +146,10 @@ function <> meta::relational::tests::milestoning::businessdate::testM let result = execute(|Product.all($busDate)->project([p|$p.name, p|$p.classificationExchangeName2],['name','classificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEqualsH2Compatible( - 'select "root".name as "name", "productexchangetable_0".name as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2019-01-01\' and "productclassificationtable_0".thru_z > \'2019-01-01\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= \'2015-10-16\' and "productexchangetable_1".thru_z > \'2015-10-16\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".name as "name", "productexchangetable_0".name as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2019-01-01\' and "productclassificationtable_0".thru_z > DATE\'2019-01-01\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= DATE\'2015-10-16\' and "productexchangetable_1".thru_z > DATE\'2015-10-16\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".name as "name", "productexchangetable_0".name as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2019-01-01\' and "productclassificationtable_0".thru_z > \'2019-01-01\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= \'2015-10-16\' and "productexchangetable_1".thru_z > \'2015-10-16\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name", "productexchangetable_0".name as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2019-01-01\' and "productclassificationtable_0".thru_z > DATE\'2019-01-01\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= DATE\'2015-10-16\' and "productexchangetable_1".thru_z > DATE\'2015-10-16\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() - ); + ); } function <> meta::relational::tests::milestoning::businessdate::testMilestonedThisBusinessDateUsedAsParameterToFunctionParametersOfMilestonedQualifiedProperty():Boolean[1] @@ -155,15 +158,15 @@ function <> meta::relational::tests::milestoning::businessdate::testM let result = execute(|Product.all($busDate)->project([p|$p.name, p|$p.classificationExchangeName3],['name','classificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEqualsH2Compatible( - 'select "root".name as "name", "productexchangetable_0".name as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, \'2015-10-16\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, \'2015-10-16\')) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= dateadd(DAY, 1, \'2015-10-16\') and "productexchangetable_1".thru_z > dateadd(DAY, 1, \'2015-10-16\')) as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".name as "name", "productexchangetable_0".name as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, DATE\'2015-10-16\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, DATE\'2015-10-16\')) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= dateadd(DAY, 1, DATE\'2015-10-16\') and "productexchangetable_1".thru_z > dateadd(DAY, 1, DATE\'2015-10-16\')) as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".name as "name", "productexchangetable_0".name as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, \'2015-10-16\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, \'2015-10-16\')) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= dateadd(DAY, 1, \'2015-10-16\') and "productexchangetable_1".thru_z > dateadd(DAY, 1, \'2015-10-16\')) as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name", "productexchangetable_0".name as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= dateadd(DAY, 1, DATE\'2015-10-16\') and "productclassificationtable_0".thru_z > dateadd(DAY, 1, DATE\'2015-10-16\')) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= dateadd(DAY, 1, DATE\'2015-10-16\') and "productexchangetable_1".thru_z > dateadd(DAY, 1, DATE\'2015-10-16\')) as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() - ); + ); } function <> meta::relational::tests::milestoning::businessdate::testMilestonedThisBusinessDateUsedAsParameterToFunctionInMilestoningQualifiedPropertyMappedToView():Boolean[1] { - let connection = testRuntime().connections->filter(c|$c->instanceOf(DatabaseConnection))->first()->toOne()->cast(@TestDatabaseConnection); + let connection = testRuntime().connectionStores.connection->filter(c|$c->instanceOf(DatabaseConnection))->first()->toOne()->cast(@TestDatabaseConnection); let busDate = %2015-10-16; let result = validate(|OrderPnlWithConstraint.all($busDate),meta::relational::tests::milestoning::ViewChainMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( @@ -179,15 +182,15 @@ function <> meta::relational::tests::milestoning::businessdate::testM let result = execute(|Product.all($busDate)->project([p|$p.name, p|$p.classification(constantDate()).type],['name','classificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEqualsH2Compatible( - 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-01-01\' and "productclassificationtable_0".thru_z > \'2015-01-01\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-01-01\' and "productclassificationtable_0".thru_z > DATE\'2015-01-01\') where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-01-01\' and "productclassificationtable_0".thru_z > \'2015-01-01\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-01-01\' and "productclassificationtable_0".thru_z > DATE\'2015-01-01\') where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() - ); + ); } function <> meta::relational::tests::milestoning::businessdate::testViewChainsWithBusinessDate():Boolean[1] { - let connection = testRuntime().connections->filter(c|$c->instanceOf(DatabaseConnection))->first()->toOne()->cast(@TestDatabaseConnection); + let connection = testRuntime().connectionStores.connection->filter(c|$c->instanceOf(DatabaseConnection))->first()->toOne()->cast(@TestDatabaseConnection); let businessDate = %2018-07-31; let result = toSQL(|OrderPnl.all($businessDate)->project([x|$x.product.name],['name']), ViewChainMapping, testRuntime(), meta::relational::extension::relationalExtensions()).toSQLString($connection.type, $connection.timeZone, $connection.quoteIdentifiers, ^meta::relational::functions::sqlQueryToString::Format(newLine='', indent='')); assertSameSQL('select "producttableview_0".name as "name" from orderPNL as "root" left outer join (select "intermediate_1".joinId as joinId, "intertwoview_0".l as l from intermediate as "intermediate_1" inner join (select "root".joinId as j, "root".linkToProduct as l, "root".type as n, \'2018-07-31\' as "k_businessDate" from intermediateTwo as "root") as "intertwoview_0" on ("intermediate_1".joinId = "intertwoview_0".j)) as "intermediate_0" on ("root".ID = "intermediate_0".joinId) left outer join (select "root".name as name, "root".type as type, "root".ID as link, \'2018-07-31\' as "k_businessDate" from ProductTable as "root") as "producttableview_0" on ("intermediate_0".l = "producttableview_0".link)',$result); @@ -209,8 +212,8 @@ function <> meta::relational::tests::milestoning::latestDate::testPop assertEquals([2,3], $products.id); assertEquals([%9999-12-31T00:00:00.0000+0000, %9999-12-31T00:00:00.0000+0000], $products.businessDate); assertEqualsH2Compatible( - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'9999-12-31T00:00:00.0000+0000\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".thru_z = \'9999-12-31 00:00:00.0000\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = \'9999-12-31 00:00:00.0000\') where "root".thru_z = \'9999-12-31 00:00:00.0000\'', - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'9999-12-31T00:00:00.0000+0000\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') where "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'9999-12-31T00:00:00.0000+0000\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".thru_z = \'9999-12-31 00:00:00.0000\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = \'9999-12-31 00:00:00.0000\') where "root".thru_z = \'9999-12-31 00:00:00.0000\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'9999-12-31T00:00:00.0000+0000\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') where "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\'', $result->sqlRemoveFormatting() ); } @@ -262,8 +265,8 @@ function <> meta::relational::tests::milestoning::businessdate::testM assertEquals(1, $products->size()); assertEquals('ProductName2', $products->at(0).name); assertEqualsH2Compatible( - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-17\' and "productexchangetable_0".thru_z > \'2015-10-17\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-17\' and "productexchangetable_0".thru_z > DATE\'2015-10-17\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-17\' and "productexchangetable_0".thru_z > \'2015-10-17\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-17\' and "productexchangetable_0".thru_z > DATE\'2015-10-17\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -273,8 +276,8 @@ function <> meta::relational::tests::milestoning::latestDate::testMil let date = %2015-10-15; let result = execute(|Product.all($date)->filter(p|$p.classification(%2015-10-16).type=='STOCK' && $p.exchange(%latest).name=='LNSE'), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-15\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-15\' and "stockproducttable_0".thru_z > \'2015-10-15\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-15\' and "productclassificationtable_0".thru_z > \'2015-10-15\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".thru_z = \'9999-12-31 00:00:00.0000\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-15\' and "root".thru_z > \'2015-10-15\'', - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-15\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-15\' and "stockproducttable_0".thru_z > DATE\'2015-10-15\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-15\' and "productclassificationtable_0".thru_z > DATE\'2015-10-15\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= DATE\'2015-10-15\' and "root".thru_z > DATE\'2015-10-15\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-15\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-15\' and "stockproducttable_0".thru_z > \'2015-10-15\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-15\' and "productclassificationtable_0".thru_z > \'2015-10-15\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".thru_z = \'9999-12-31 00:00:00.0000\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-15\' and "root".thru_z > \'2015-10-15\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-15\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-15\' and "stockproducttable_0".thru_z > DATE\'2015-10-15\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-15\' and "productclassificationtable_0".thru_z > DATE\'2015-10-15\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= DATE\'2015-10-15\' and "root".thru_z > DATE\'2015-10-15\'', $result->sqlRemoveFormatting() ); } @@ -296,8 +299,8 @@ function <> meta::relational::tests::milestoning::businessdate::testM assertEquals(1, $products->size()); assertEquals('ProductName', $products->at(0).name); assertEqualsH2Compatible( - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-08-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-08-16\' and "stockproducttable_0".thru_z > \'2015-08-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-08-16\' and "productclassificationtable_0".thru_z > \'2015-08-16\') left outer join (select distinct "ordertable_1".prodFk from OrderTable as "ordertable_1" where "ordertable_1".id = 1) as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk is not null and "root".from_z <= \'2015-08-16\' and "root".thru_z > \'2015-08-16\'', - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-08-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-08-16\' and "stockproducttable_0".thru_z > DATE\'2015-08-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-08-16\' and "productclassificationtable_0".thru_z > DATE\'2015-08-16\') left outer join (select distinct "ordertable_1".prodFk from OrderTable as "ordertable_1" where "ordertable_1".id = 1) as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk is not null and "root".from_z <= DATE\'2015-08-16\' and "root".thru_z > DATE\'2015-08-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-08-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-08-16\' and "stockproducttable_0".thru_z > \'2015-08-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-08-16\' and "productclassificationtable_0".thru_z > \'2015-08-16\') left outer join (select distinct "ordertable_1".prodFk from OrderTable as "ordertable_1" where "ordertable_1".id = 1) as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk is not null and "root".from_z <= \'2015-08-16\' and "root".thru_z > \'2015-08-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-08-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-08-16\' and "stockproducttable_0".thru_z > DATE\'2015-08-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-08-16\' and "productclassificationtable_0".thru_z > DATE\'2015-08-16\') left outer join (select distinct "ordertable_1".prodFk from OrderTable as "ordertable_1" where "ordertable_1".id = 1) as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk is not null and "root".from_z <= DATE\'2015-08-16\' and "root".thru_z > DATE\'2015-08-16\'', $result->sqlRemoveFormatting() ); } @@ -320,8 +323,8 @@ function <> meta::relational::tests::milestoning::businessdate::testN assertEquals(1,$orders->size()); assertEquals(2, $orders->at(0).id); assertEqualsH2Compatible( - 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-10-15\' and "producttable_1".thru_z > \'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', - 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= DATE\'2015-10-15\' and "producttable_1".thru_z > DATE\'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', + 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-10-15\' and "producttable_1".thru_z > \'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', + 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= DATE\'2015-10-15\' and "producttable_1".thru_z > DATE\'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', $result->sqlRemoveFormatting() ); } @@ -330,8 +333,8 @@ function <> meta::relational::tests::milestoning::latestDate::testNon { let result = execute(|Order.all()->filter(o|$o.product(%latest)->exists(p|$p.id==2)), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".thru_z = \'9999-12-31 00:00:00.0000\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', - 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', + 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".thru_z = \'9999-12-31 00:00:00.0000\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', + 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', $result->sqlRemoveFormatting() ); } @@ -343,8 +346,8 @@ function <> meta::relational::tests::milestoning::businessdate::testN assertEquals(1,$orders->size()); assertEquals(2, $orders->at(0).id); assertEqualsH2Compatible( - 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-15\' and "producttable_0".thru_z > \'2015-10-15\') where "producttable_0".id = 2', - 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-10-15\' and "producttable_0".thru_z > DATE\'2015-10-15\') where "producttable_0".id = 2', + 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-15\' and "producttable_0".thru_z > \'2015-10-15\') where "producttable_0".id = 2', + 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-10-15\' and "producttable_0".thru_z > DATE\'2015-10-15\') where "producttable_0".id = 2', $result->sqlRemoveFormatting() ); } @@ -355,8 +358,8 @@ function <> meta::relational::tests::milestoning::businessdate::testN let orders = $result.values; assertEquals(0,$orders->size()); assertEqualsH2Compatible( - 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-08-25\' and "producttable_1".thru_z > \'2015-08-25\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', - 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= DATE\'2015-08-25\' and "producttable_1".thru_z > DATE\'2015-08-25\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', + 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-08-25\' and "producttable_1".thru_z > \'2015-08-25\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', + 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= DATE\'2015-08-25\' and "producttable_1".thru_z > DATE\'2015-08-25\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', $result->sqlRemoveFormatting() ); } @@ -368,8 +371,8 @@ function <> meta::relational::tests::milestoning::businessdate::testN let tds = $result.values->at(0); assertEquals(['2,ProductName1'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".id as "orderId", "producttable_2".name as "productName" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-10-15\' and "producttable_1".thru_z > \'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) left outer join ProductTable as "producttable_2" on ("root".prodFk = "producttable_2".id and "producttable_2".from_z <= \'2015-10-15\' and "producttable_2".thru_z > \'2015-10-15\') where "producttable_0".id is not null', - 'select "root".id as "orderId", "producttable_2".name as "productName" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= DATE\'2015-10-15\' and "producttable_1".thru_z > DATE\'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) left outer join ProductTable as "producttable_2" on ("root".prodFk = "producttable_2".id and "producttable_2".from_z <= DATE\'2015-10-15\' and "producttable_2".thru_z > DATE\'2015-10-15\') where "producttable_0".id is not null', + 'select "root".id as "orderId", "producttable_2".name as "productName" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-10-15\' and "producttable_1".thru_z > \'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) left outer join ProductTable as "producttable_2" on ("root".prodFk = "producttable_2".id and "producttable_2".from_z <= \'2015-10-15\' and "producttable_2".thru_z > \'2015-10-15\') where "producttable_0".id is not null', + 'select "root".id as "orderId", "producttable_2".name as "productName" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= DATE\'2015-10-15\' and "producttable_1".thru_z > DATE\'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) left outer join ProductTable as "producttable_2" on ("root".prodFk = "producttable_2".id and "producttable_2".from_z <= DATE\'2015-10-15\' and "producttable_2".thru_z > DATE\'2015-10-15\') where "producttable_0".id is not null', $result->sqlRemoveFormatting() ); } @@ -381,8 +384,8 @@ function <> meta::relational::tests::milestoning::businessdate::testN let tds = $result.values->at(0); assertEquals(['2,ProductName2'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".id as "orderId", "producttable_2".name as "productName" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-10-15\' and "producttable_1".thru_z > \'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) left outer join ProductTable as "producttable_2" on ("root".prodFk = "producttable_2".id and "producttable_2".from_z <= \'2015-10-16\' and "producttable_2".thru_z > \'2015-10-16\') where "producttable_0".id is not null', - 'select "root".id as "orderId", "producttable_2".name as "productName" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= DATE\'2015-10-15\' and "producttable_1".thru_z > DATE\'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) left outer join ProductTable as "producttable_2" on ("root".prodFk = "producttable_2".id and "producttable_2".from_z <= DATE\'2015-10-16\' and "producttable_2".thru_z > DATE\'2015-10-16\') where "producttable_0".id is not null', + 'select "root".id as "orderId", "producttable_2".name as "productName" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-10-15\' and "producttable_1".thru_z > \'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) left outer join ProductTable as "producttable_2" on ("root".prodFk = "producttable_2".id and "producttable_2".from_z <= \'2015-10-16\' and "producttable_2".thru_z > \'2015-10-16\') where "producttable_0".id is not null', + 'select "root".id as "orderId", "producttable_2".name as "productName" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= DATE\'2015-10-15\' and "producttable_1".thru_z > DATE\'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) left outer join ProductTable as "producttable_2" on ("root".prodFk = "producttable_2".id and "producttable_2".from_z <= DATE\'2015-10-16\' and "producttable_2".thru_z > DATE\'2015-10-16\') where "producttable_0".id is not null', $result->sqlRemoveFormatting() ); } @@ -394,8 +397,8 @@ function <> meta::relational::tests::milestoning::businessdate::testM let tds = $result.values->at(0); assertEquals(['ProductName2,STOCK DESC-V3'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".name as "name", "productclassificationtable_0".type_description as "classificationDescription" from ProductTable as "root" left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-17\' and "productexchangetable_0".thru_z > \'2015-10-17\') left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".name as "name", "productclassificationtable_0".type_description as "classificationDescription" from ProductTable as "root" left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-17\' and "productexchangetable_0".thru_z > DATE\'2015-10-17\') left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type_description as "classificationDescription" from ProductTable as "root" left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-17\' and "productexchangetable_0".thru_z > \'2015-10-17\') left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type_description as "classificationDescription" from ProductTable as "root" left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-17\' and "productexchangetable_0".thru_z > DATE\'2015-10-17\') left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -416,8 +419,8 @@ function <> meta::relational::tests::milestoning::businessdate::testM let tds = $result.values->at(0); assertEquals(['ProductName2,GS-Mod-S1*GS-Mod-S2'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".name as "prodName", "producttable_1".aggCol as "synonyms" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-17\' and "productexchangetable_0".thru_z > \'2015-10-17\') left outer join (select "producttable_2".name as name, "producttable_2".id as id, group_concat("productsynonymtable_0".synonym separator \'*\' ) as aggCol from ProductTable as "producttable_2" left outer join ProductSynonymTable as "productsynonymtable_0" on ("producttable_2".name = "productsynonymtable_0".name and "productsynonymtable_0".from_z <= \'2015-10-16\' and "productsynonymtable_0".thru_z > \'2015-10-16\') group by "producttable_2".id,"producttable_2".name) as "producttable_1" on ("root".name = "producttable_1".name and "root".id = "producttable_1".id) where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".name as "prodName", "producttable_1".aggCol as "synonyms" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-17\' and "productexchangetable_0".thru_z > DATE\'2015-10-17\') left outer join (select "producttable_2".name as name, "producttable_2".id as id, group_concat("productsynonymtable_0".synonym separator \'*\' ) as aggCol from ProductTable as "producttable_2" left outer join ProductSynonymTable as "productsynonymtable_0" on ("producttable_2".name = "productsynonymtable_0".name and "productsynonymtable_0".from_z <= DATE\'2015-10-16\' and "productsynonymtable_0".thru_z > DATE\'2015-10-16\') group by "producttable_2".id,"producttable_2".name) as "producttable_1" on ("root".name = "producttable_1".name and "root".id = "producttable_1".id) where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".name as "prodName", "producttable_1".aggCol as "synonyms" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-17\' and "productexchangetable_0".thru_z > \'2015-10-17\') left outer join (select "producttable_2".name as name, "producttable_2".id as id, group_concat("productsynonymtable_0".synonym separator \'*\' ) as aggCol from ProductTable as "producttable_2" left outer join ProductSynonymTable as "productsynonymtable_0" on ("producttable_2".name = "productsynonymtable_0".name and "productsynonymtable_0".from_z <= \'2015-10-16\' and "productsynonymtable_0".thru_z > \'2015-10-16\') group by "producttable_2".id,"producttable_2".name) as "producttable_1" on ("root".name = "producttable_1".name and "root".id = "producttable_1".id) where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "prodName", "producttable_1".aggCol as "synonyms" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-17\' and "productexchangetable_0".thru_z > DATE\'2015-10-17\') left outer join (select "producttable_2".name as name, "producttable_2".id as id, group_concat("productsynonymtable_0".synonym separator \'*\' ) as aggCol from ProductTable as "producttable_2" left outer join ProductSynonymTable as "productsynonymtable_0" on ("producttable_2".name = "productsynonymtable_0".name and "productsynonymtable_0".from_z <= DATE\'2015-10-16\' and "productsynonymtable_0".thru_z > DATE\'2015-10-16\') group by "producttable_2".id,"producttable_2".name) as "producttable_1" on ("root".name = "producttable_1".name and "root".id = "producttable_1".id) where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -439,8 +442,8 @@ function <> meta::relational::tests::milestoning::businessdate::testM let tds = $result.values->at(0); assertEquals(['ProductName2,GS-Mod-S1*GS-Mod-S2'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".name as "prodName", group_concat("productsynonymtable_0".synonym separator \'*\') as "synonyms" from ProductTable as "root" left outer join ProductSynonymTable as "productsynonymtable_0" on ("root".name = "productsynonymtable_0".name and "productsynonymtable_0".from_z <= \'2015-10-16\' and "productsynonymtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-17\' and "productexchangetable_0".thru_z > \'2015-10-17\') where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\' group by "prodName"', - 'select "root".name as "prodName", group_concat("productsynonymtable_0".synonym separator \'*\') as "synonyms" from ProductTable as "root" left outer join ProductSynonymTable as "productsynonymtable_0" on ("root".name = "productsynonymtable_0".name and "productsynonymtable_0".from_z <= DATE\'2015-10-16\' and "productsynonymtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-17\' and "productexchangetable_0".thru_z > DATE\'2015-10-17\') where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\' group by "prodName"', + 'select "root".name as "prodName", group_concat("productsynonymtable_0".synonym separator \'*\') as "synonyms" from ProductTable as "root" left outer join ProductSynonymTable as "productsynonymtable_0" on ("root".name = "productsynonymtable_0".name and "productsynonymtable_0".from_z <= \'2015-10-16\' and "productsynonymtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-17\' and "productexchangetable_0".thru_z > \'2015-10-17\') where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\' group by "prodName"', + 'select "root".name as "prodName", group_concat("productsynonymtable_0".synonym separator \'*\') as "synonyms" from ProductTable as "root" left outer join ProductSynonymTable as "productsynonymtable_0" on ("root".name = "productsynonymtable_0".name and "productsynonymtable_0".from_z <= DATE\'2015-10-16\' and "productsynonymtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-17\' and "productexchangetable_0".thru_z > DATE\'2015-10-17\') where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\' group by "prodName"', $result->sqlRemoveFormatting() ); } @@ -462,7 +465,7 @@ function <> meta::relational::tests::milestoning::businessdate::testB [$result, $result2]->map(r|let orders = $r.values; assertEquals(1,$orders->size()); assertEquals([2], $orders->map(o|$o.id));); - + assertSameSQL('select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= "root".orderDate and "producttable_0".thru_z > "root".orderDate) where "producttable_0".type = \'STOCK\'',$result); assertSameSQL('select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id) left outer join OrderDetailsTable as "orderdetailstable_0" on ("root".id = "orderdetailstable_0".id) where "producttable_0".from_z <= "orderdetailstable_0".settlementDate and "producttable_0".thru_z > "orderdetailstable_0".settlementDate and "producttable_0".type = \'STOCK\'',$result2); } @@ -496,8 +499,8 @@ function <> meta::relational::tests::milestoning::businessdate::testB let tds = $result.values->at(0); assertEquals(['order description 1,TDSNull', 'order description 2,ProductName2'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "orderdescriptiontable_0".description as "orderDesc", "producttable_0".name as "prodName" from OrderTable as "root" left outer join OrderDescriptionTable as "orderdescriptiontable_0" on ("root".id = "orderdescriptiontable_0".id) left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2016-01-01\' and "producttable_0".thru_z > \'2016-01-01\')', - 'select "orderdescriptiontable_0".description as "orderDesc", "producttable_0".name as "prodName" from OrderTable as "root" left outer join OrderDescriptionTable as "orderdescriptiontable_0" on ("root".id = "orderdescriptiontable_0".id) left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2016-01-01\' and "producttable_0".thru_z > DATE\'2016-01-01\')', + 'select "orderdescriptiontable_0".description as "orderDesc", "producttable_0".name as "prodName" from OrderTable as "root" left outer join OrderDescriptionTable as "orderdescriptiontable_0" on ("root".id = "orderdescriptiontable_0".id) left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2016-01-01\' and "producttable_0".thru_z > \'2016-01-01\')', + 'select "orderdescriptiontable_0".description as "orderDesc", "producttable_0".name as "prodName" from OrderTable as "root" left outer join OrderDescriptionTable as "orderdescriptiontable_0" on ("root".id = "orderdescriptiontable_0".id) left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2016-01-01\' and "producttable_0".thru_z > DATE\'2016-01-01\')', $result->sqlRemoveFormatting() ); } @@ -551,8 +554,8 @@ function <> meta::relational::tests::milestoning::businessdate::testB let tds = $result.values->at(0); assertEquals(['order description 1,TDSNull', 'order description 2,ProductName2'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "orderdescriptiontable_0".description as "orderDesc", "producttable_0".name as "prodName" from OrderTable as "root" left outer join OrderDescriptionTable as "orderdescriptiontable_0" on ("root".id = "orderdescriptiontable_0".id) left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2016-01-01\' and "producttable_0".thru_z > \'2016-01-01\')', - 'select "orderdescriptiontable_0".description as "orderDesc", "producttable_0".name as "prodName" from OrderTable as "root" left outer join OrderDescriptionTable as "orderdescriptiontable_0" on ("root".id = "orderdescriptiontable_0".id) left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2016-01-01\' and "producttable_0".thru_z > DATE\'2016-01-01\')', + 'select "orderdescriptiontable_0".description as "orderDesc", "producttable_0".name as "prodName" from OrderTable as "root" left outer join OrderDescriptionTable as "orderdescriptiontable_0" on ("root".id = "orderdescriptiontable_0".id) left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2016-01-01\' and "producttable_0".thru_z > \'2016-01-01\')', + 'select "orderdescriptiontable_0".description as "orderDesc", "producttable_0".name as "prodName" from OrderTable as "root" left outer join OrderDescriptionTable as "orderdescriptiontable_0" on ("root".id = "orderdescriptiontable_0".id) left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2016-01-01\' and "producttable_0".thru_z > DATE\'2016-01-01\')', $result->sqlRemoveFormatting() ); } @@ -578,8 +581,8 @@ function <> meta::relational::tests::milestoning:: assertEquals(1, $products->size()); assertEquals('ProductName2', $products->at(0).name); assertEqualsH2Compatible( - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-16\' and "productexchangetable_0".thru_z > DATE\'2015-10-16\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-16\' and "productexchangetable_0".thru_z > DATE\'2015-10-16\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -594,8 +597,8 @@ function <> meta::relational::tests::milestoning::bus assertEquals(1, $products->size()); assertEquals('ProductName2', $products->at(0).name); assertEqualsH2Compatible( - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", DATE\'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-16\' and "productexchangetable_0".thru_z > DATE\'2015-10-16\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", DATE\'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-16\' and "productexchangetable_0".thru_z > DATE\'2015-10-16\') where ("productclassificationtable_1".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -606,7 +609,7 @@ function <> meta::relational::tests::milestoning::businessdate::testE let date = %2015-10-16; Product.all($date)->filter(p|$p.classification($date).type=='STOCK' && $p.exchange($date).name=='LNSE'); }, milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertEqualsH2Compatible( + assertEqualsH2Compatible( 'Sequence\n'+ '(\n'+ ' type = Class[impls=(meta::relational::tests::milestoning::Product | milestoningmap.meta_relational_tests_milestoning_Product)]\n'+ @@ -680,8 +683,8 @@ function <> meta::relational::tests::milestoning::businessdate::testN assertEquals(1,$orders->size()); assertEquals(2, $orders->at(0).id); assertEqualsH2Compatible( - 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-10-15\' and "producttable_1".thru_z > \'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', - 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= DATE\'2015-10-15\' and "producttable_1".thru_z > DATE\'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', + 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-10-15\' and "producttable_1".thru_z > \'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', + 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join (select distinct "producttable_1".id from ProductTable as "producttable_1" where "producttable_1".from_z <= DATE\'2015-10-15\' and "producttable_1".thru_z > DATE\'2015-10-15\' and "producttable_1".id = 2) as "producttable_0" on ("root".prodFk = "producttable_0".id) where "producttable_0".id is not null', $result->sqlRemoveFormatting() ); } @@ -692,12 +695,12 @@ function <> meta::relational::tests::milestoning::businessdate::testM let result = execute(|Order.all()->project([o|$o.id, o|$o.product($businessDate).stockProductName],['id','stockProductName']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let result2 = execute(|Order.all()->project([o|$o.id, o|$o.product($o.orderDetails.settlementDate).classificationType],['id','productClassificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let result3 = execute(|Order.all()->project([o|$o.id, o|$o.product($o.orderDetails.settlementDate->adjust(-1, DurationUnit.DAYS)).classificationType],['id','productClassificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - + let tds = $result.values->at(0); assertEquals(['1,TDSNull', '2,ProductName2'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".id as "id", "productdescriptiontable_0".description as "stockProductName" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= \'2015-10-16\' and "stockproducttable_1".thru_z > \'2015-10-16\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id)', - 'select "root".id as "id", "productdescriptiontable_0".description as "stockProductName" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-10-16\' and "producttable_0".thru_z > DATE\'2015-10-16\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= DATE\'2015-10-16\' and "stockproducttable_1".thru_z > DATE\'2015-10-16\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id)', + 'select "root".id as "id", "productdescriptiontable_0".description as "stockProductName" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= \'2015-10-16\' and "stockproducttable_1".thru_z > \'2015-10-16\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id)', + 'select "root".id as "id", "productdescriptiontable_0".description as "stockProductName" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-10-16\' and "producttable_0".thru_z > DATE\'2015-10-16\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= DATE\'2015-10-16\' and "stockproducttable_1".thru_z > DATE\'2015-10-16\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id)', $result->sqlRemoveFormatting() ); assertSameSQL('select "root".id as "id", "productclassificationtable_0".type as "productClassificationType" from OrderTable as "root" left outer join (select "ordertable_2".id as id, "orderdetailstable_0".settlementDate as settlementDate, "producttable_0".type as type from OrderTable as "ordertable_2" left outer join ProductTable as "producttable_0" on ("ordertable_2".prodFk = "producttable_0".id) left outer join OrderDetailsTable as "orderdetailstable_0" on ("ordertable_2".id = "orderdetailstable_0".id) where "producttable_0".from_z <= "orderdetailstable_0".settlementDate and "producttable_0".thru_z > "orderdetailstable_0".settlementDate) as "ordertable_1" on ("root".id = "ordertable_1".id) left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".from_z as from_z, "productclassificationtable_1".thru_z as thru_z from ProductClassificationTable as "productclassificationtable_1") as "productclassificationtable_0" on ("productclassificationtable_0".from_z <= "ordertable_1".settlementDate and "productclassificationtable_0".thru_z > "ordertable_1".settlementDate and "ordertable_1".type = "productclassificationtable_0".type)', $result2); @@ -711,8 +714,8 @@ function <> meta::relational::tests::milestoning::businessdate::testM let tds = $result.values->at(0); assertEquals(['1,TDSNull', '2,ProductName2'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".id as "id", "productdescriptiontable_0".description as "stockProductName" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= \'2015-10-16\' and "stockproducttable_1".thru_z > \'2015-10-16\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id)', - 'select "root".id as "id", "productdescriptiontable_0".description as "stockProductName" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-10-16\' and "producttable_0".thru_z > DATE\'2015-10-16\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= DATE\'2015-10-16\' and "stockproducttable_1".thru_z > DATE\'2015-10-16\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id)', + 'select "root".id as "id", "productdescriptiontable_0".description as "stockProductName" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= \'2015-10-16\' and "stockproducttable_1".thru_z > \'2015-10-16\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id)', + 'select "root".id as "id", "productdescriptiontable_0".description as "stockProductName" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-10-16\' and "producttable_0".thru_z > DATE\'2015-10-16\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= DATE\'2015-10-16\' and "stockproducttable_1".thru_z > DATE\'2015-10-16\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id)', $result->sqlRemoveFormatting() ); } @@ -722,8 +725,8 @@ function <> meta::relational::tests::milestoning::businessdate::testM let businessDate = %2015-10-16; let result = execute(|Order.all()->project([o|$o.id, o|$o.product($businessDate).classificationWithDateConstant().exchangeName],['id','productExchangeNameUsingDateConstantPropagatedFromQP']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "root".id as "id", "productexchangetable_0".name as "productExchangeNameUsingDateConstantPropagatedFromQP" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".exchange from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= \'9999-12-31\' and "productclassificationtable_1".thru_z > \'9999-12-31\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= \'9999-12-31\' and "productexchangetable_1".thru_z > \'9999-12-31\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name)', - 'select "root".id as "id", "productexchangetable_0".name as "productExchangeNameUsingDateConstantPropagatedFromQP" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-10-16\' and "producttable_0".thru_z > DATE\'2015-10-16\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".exchange from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= DATE\'9999-12-31\' and "productclassificationtable_1".thru_z > DATE\'9999-12-31\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= DATE\'9999-12-31\' and "productexchangetable_1".thru_z > DATE\'9999-12-31\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name)', + 'select "root".id as "id", "productexchangetable_0".name as "productExchangeNameUsingDateConstantPropagatedFromQP" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".exchange from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= \'9999-12-31\' and "productclassificationtable_1".thru_z > \'9999-12-31\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= \'9999-12-31\' and "productexchangetable_1".thru_z > \'9999-12-31\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name)', + 'select "root".id as "id", "productexchangetable_0".name as "productExchangeNameUsingDateConstantPropagatedFromQP" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-10-16\' and "producttable_0".thru_z > DATE\'2015-10-16\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".exchange from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= DATE\'9999-12-31\' and "productclassificationtable_1".thru_z > DATE\'9999-12-31\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= DATE\'9999-12-31\' and "productexchangetable_1".thru_z > DATE\'9999-12-31\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name)', $result->sqlRemoveFormatting() ); } @@ -736,8 +739,8 @@ function <> meta::relational::tests::milestoning::businessdate::testM let tds = $result.values->at(0); assertEquals(['1,TDSNull', '2,ProductName2'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".id as "orderId", "producttable_0".name as "stockProductName" from OrderTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".prodFk = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join (select "producttable_1".id as id, "producttable_1".name as name from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-10-16\' and "producttable_1".thru_z > \'2015-10-16\') as "producttable_0" on ("producttable_0".id = "stockproducttable_0".id)', - 'select "root".id as "orderId", "producttable_0".name as "stockProductName" from OrderTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".prodFk = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join (select "producttable_1".id as id, "producttable_1".name as name from ProductTable as "producttable_1" where "producttable_1".from_z <= DATE\'2015-10-16\' and "producttable_1".thru_z > DATE\'2015-10-16\') as "producttable_0" on ("producttable_0".id = "stockproducttable_0".id)', + 'select "root".id as "orderId", "producttable_0".name as "stockProductName" from OrderTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".prodFk = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join (select "producttable_1".id as id, "producttable_1".name as name from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-10-16\' and "producttable_1".thru_z > \'2015-10-16\') as "producttable_0" on ("producttable_0".id = "stockproducttable_0".id)', + 'select "root".id as "orderId", "producttable_0".name as "stockProductName" from OrderTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".prodFk = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join (select "producttable_1".id as id, "producttable_1".name as name from ProductTable as "producttable_1" where "producttable_1".from_z <= DATE\'2015-10-16\' and "producttable_1".thru_z > DATE\'2015-10-16\') as "producttable_0" on ("producttable_0".id = "stockproducttable_0".id)', $result->sqlRemoveFormatting() ); } @@ -766,8 +769,8 @@ function <> meta::relational::tests::milestoning::businessdate::testM let tds = $result.values->at(0); assertEquals(['LNSE'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "productexchangetable_0".name as "1" from ProductTable as "root" left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where "root".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "productexchangetable_0".name as "1" from ProductTable as "root" left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-16\' and "productexchangetable_0".thru_z > DATE\'2015-10-16\') where "root".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "productexchangetable_0".name as "1" from ProductTable as "root" left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where "root".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "productexchangetable_0".name as "1" from ProductTable as "root" left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-16\' and "productexchangetable_0".thru_z > DATE\'2015-10-16\') where "root".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -781,7 +784,7 @@ function <> meta::relational::tests::milestoning::businessdate::testI let tds = $result.values->at(0); assertEquals(['SYS1'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "systemtable_0".name as "name" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= \'2015-10-17\' and "productclassificationsystemtable_0".thru_z > \'2015-10-17\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "root".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "systemtable_0".name as "name" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= \'2015-10-17\' and "productclassificationsystemtable_0".thru_z > \'2015-10-17\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "root".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', 'select "systemtable_0".name as "name" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= DATE\'2015-10-17\' and "productclassificationsystemtable_0".thru_z > DATE\'2015-10-17\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "root".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); @@ -790,14 +793,14 @@ function <> meta::relational::tests::milestoning::businessdate::testI function <> meta::relational::tests::milestoning::businessdate::testIsolationWhereLeftSideOfFilterIsEmbedded():Boolean[1] { let businessDate = %2015-10-16; - + let result = execute(|Product.all($businessDate)->filter(p|$p.classification.system.name=='SYS1')->project([p|$p.name],['name']), milestoningMapWithEmbeddedSimple, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); - + assertEquals(['ProductName2', 'ProductName3'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".name as "name" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= \'2015-10-16\' and "productclassificationsystemtable_0".thru_z > \'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "systemtable_0".name = \'SYS1\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".name as "name" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationsystemtable_0".thru_z > DATE\'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "systemtable_0".name = \'SYS1\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".name as "name" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= \'2015-10-16\' and "productclassificationsystemtable_0".thru_z > \'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "systemtable_0".name = \'SYS1\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationsystemtable_0".thru_z > DATE\'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "systemtable_0".name = \'SYS1\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -811,7 +814,7 @@ function <> meta::relational::tests::milestoning::businessdate::testD { let query = {|Order.all()->project([o|$o.id, o|$o.stockProduct(constantDate()).name],['orderId','stockProductName'])}; let sql = toSQLString($query, milestoningmap, meta::relational::runtime::DatabaseType.H2, meta::relational::extension::relationalExtensions()); - + assertEqualsH2Compatible( 'select "root".id as "orderId", "ProductTable_d#7_l_d_m2_r".name as "stockProductName" from OrderTable as "root" left outer join StockProductTable as "StockProductTable_d#7_d_m2" on ("root".prodFk = "StockProductTable_d#7_d_m2".id and "StockProductTable_d#7_d_m2".from_z <= \'2015-01-01\' and "StockProductTable_d#7_d_m2".thru_z > \'2015-01-01\') left outer join (select "ProductTable_d#7_l".id as id, "ProductTable_d#7_l".name as name from ProductTable as "ProductTable_d#7_l" where "ProductTable_d#7_l".from_z <= \'2015-01-01\' and "ProductTable_d#7_l".thru_z > \'2015-01-01\') as "ProductTable_d#7_l_d_m2_r" on ("ProductTable_d#7_l_d_m2_r".id = "StockProductTable_d#7_d_m2".id)', 'select "root".id as "orderId", "ProductTable_d#7_l_d_m2_r".name as "stockProductName" from OrderTable as "root" left outer join StockProductTable as "StockProductTable_d#7_d_m2" on ("root".prodFk = "StockProductTable_d#7_d_m2".id and "StockProductTable_d#7_d_m2".from_z <= DATE\'2015-01-01\' and "StockProductTable_d#7_d_m2".thru_z > DATE\'2015-01-01\') left outer join (select "ProductTable_d#7_l".id as id, "ProductTable_d#7_l".name as name from ProductTable as "ProductTable_d#7_l" where "ProductTable_d#7_l".from_z <= DATE\'2015-01-01\' and "ProductTable_d#7_l".thru_z > DATE\'2015-01-01\') as "ProductTable_d#7_l_d_m2_r" on ("ProductTable_d#7_l_d_m2_r".id = "StockProductTable_d#7_d_m2".id)', @@ -824,10 +827,10 @@ function <> meta::relational::tests::milestoning::businessdate::testD let businessDate = %2015-10-16; let query = {|Product.all($businessDate)->filter(p|$p.classification(constantDate()).system.name=='SYS1')->project([p|$p.name],['name'])}; let sql = toSQLString($query, milestoningMapWithEmbeddedSimple, meta::relational::runtime::DatabaseType.H2, meta::relational::extension::relationalExtensions()); - + assertEqualsH2Compatible( - 'select "root".name as "name" from ProductTable as "root" left outer join ProductClassificationSystemTable as "ProductClassificationSystemTable_d#5_d#2_m1" on ("root".classificationSystemId = "ProductClassificationSystemTable_d#5_d#2_m1".id and "ProductClassificationSystemTable_d#5_d#2_m1".from_z <= \'2015-01-01\' and "ProductClassificationSystemTable_d#5_d#2_m1".thru_z > \'2015-01-01\') left outer join SystemTable as "SystemTable_d#5_l_d#2_m1_r" on ("ProductClassificationSystemTable_d#5_d#2_m1".name = "SystemTable_d#5_l_d#2_m1_r".name) where "SystemTable_d#5_l_d#2_m1_r".name = \'SYS1\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".name as "name" from ProductTable as "root" left outer join ProductClassificationSystemTable as "ProductClassificationSystemTable_d#5_d#2_m1" on ("root".classificationSystemId = "ProductClassificationSystemTable_d#5_d#2_m1".id and "ProductClassificationSystemTable_d#5_d#2_m1".from_z <= DATE\'2015-01-01\' and "ProductClassificationSystemTable_d#5_d#2_m1".thru_z > DATE\'2015-01-01\') left outer join SystemTable as "SystemTable_d#5_l_d#2_m1_r" on ("ProductClassificationSystemTable_d#5_d#2_m1".name = "SystemTable_d#5_l_d#2_m1_r".name) where "SystemTable_d#5_l_d#2_m1_r".name = \'SYS1\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".name as "name" from ProductTable as "root" left outer join ProductClassificationSystemTable as "ProductClassificationSystemTable_d#5_d#2_m1" on ("root".classificationSystemId = "ProductClassificationSystemTable_d#5_d#2_m1".id and "ProductClassificationSystemTable_d#5_d#2_m1".from_z <= \'2015-01-01\' and "ProductClassificationSystemTable_d#5_d#2_m1".thru_z > \'2015-01-01\') left outer join SystemTable as "SystemTable_d#5_l_d#2_m1_r" on ("ProductClassificationSystemTable_d#5_d#2_m1".name = "SystemTable_d#5_l_d#2_m1_r".name) where "SystemTable_d#5_l_d#2_m1_r".name = \'SYS1\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name" from ProductTable as "root" left outer join ProductClassificationSystemTable as "ProductClassificationSystemTable_d#5_d#2_m1" on ("root".classificationSystemId = "ProductClassificationSystemTable_d#5_d#2_m1".id and "ProductClassificationSystemTable_d#5_d#2_m1".from_z <= DATE\'2015-01-01\' and "ProductClassificationSystemTable_d#5_d#2_m1".thru_z > DATE\'2015-01-01\') left outer join SystemTable as "SystemTable_d#5_l_d#2_m1_r" on ("ProductClassificationSystemTable_d#5_d#2_m1".name = "SystemTable_d#5_l_d#2_m1_r".name) where "SystemTable_d#5_l_d#2_m1_r".name = \'SYS1\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $sql->sqlRemoveFormatting() ); } @@ -837,7 +840,7 @@ function <> meta::relational::tests::milestoning::businessdate::test // Fix : https://github.com/finos/legend-engine/pull/1121 let query = {|Product.allVersions()->filter(p|$p.classificationAllVersions.system.name=='SYS1')->project([p|$p.name],['name'])}; let sql = toSQLString($query, milestoningMapWithEmbeddedSimple, meta::relational::runtime::DatabaseType.H2, meta::relational::extension::relationalExtensions()); - + // Actual SQL - select "root".name as "name" from ProductTable as "root" left outer join ProductClassificationSystemTable as "ProductClassificationSystemTable_d#6_f_d_d#2_m1" on ("root".classificationSystemId = "ProductClassificationSystemTable_d#6_f_d_d#2_m1".id and "ProductClassificationSystemTable_d#6_f_d_d#2_m1".from_z <= "root".from_z and "ProductClassificationSystemTable_d#6_f_d_d#2_m1".thru_z > "root".from_z) left outer join SystemTable as "SystemTable_d#6_f_d_l_d#2_m1_r" on ("ProductClassificationSystemTable_d#6_f_d_d#2_m1".name = "SystemTable_d#6_f_d_l_d#2_m1_r".name) where "SystemTable_d#6_f_d_l_d#2_m1_r".name = \'SYS1\'' // This part of join ('"ProductClassificationSystemTable_d#6_f_d_d#2_m1".from_z <= "root".from_z and "ProductClassificationSystemTable_d#6_f_d_d#2_m1".thru_z > "root".from_z') is incorrect as we have allVersions in query assertSameSQL('select "root".name as "name" from ProductTable as "root" left outer join ProductClassificationSystemTable as "ProductClassificationSystemTable_d#6_f_d_d#2_m1" on ("root".classificationSystemId = "ProductClassificationSystemTable_d#6_f_d_d#2_m1".id) left outer join SystemTable as "SystemTable_d#6_f_d_l_d#2_m1_r" on ("ProductClassificationSystemTable_d#6_f_d_d#2_m1".name = "SystemTable_d#6_f_d_l_d#2_m1_r".name) where "SystemTable_d#6_f_d_l_d#2_m1_r".name = \'SYS1\'', $sql); @@ -852,8 +855,8 @@ function <> meta::relational::tests::milestoning::businessdate::testM assertSameElements([200.0, 101.0], $pnls->map(p|$p.pnl)); assertEquals([$businessDate,$businessDate], $pnls->map(p|$p.businessDate)); assertEqualsH2Compatible( - 'select "root".TRADE_ID as "pk_0", "root".pnl as "pnl", "root".supportContact as "supportContactName", \'2016-07-22\' as "k_businessDate" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersontable_0".NAME as supportContact, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" left outer join tradeTable as "tradetable_0" on ("root".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= \'2016-07-22\' and "salespersontable_0".thru_z > \'2016-07-22\') where "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\') as "root"', - 'select "root".TRADE_ID as "pk_0", "root".pnl as "pnl", "root".supportContact as "supportContactName", \'2016-07-22\' as "k_businessDate" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersontable_0".NAME as supportContact, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" left outer join tradeTable as "tradetable_0" on ("root".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= DATE\'2016-07-22\' and "salespersontable_0".thru_z > DATE\'2016-07-22\') where "root".from_z <= DATE\'2016-07-22\' and "root".thru_z > DATE\'2016-07-22\') as "root"', + 'select "root".TRADE_ID as "pk_0", "root".pnl as "pnl", "root".supportContact as "supportContactName", \'2016-07-22\' as "k_businessDate" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersontable_0".NAME as supportContact, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" left outer join tradeTable as "tradetable_0" on ("root".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= \'2016-07-22\' and "salespersontable_0".thru_z > \'2016-07-22\') where "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\') as "root"', + 'select "root".TRADE_ID as "pk_0", "root".pnl as "pnl", "root".supportContact as "supportContactName", \'2016-07-22\' as "k_businessDate" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersontable_0".NAME as supportContact, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" left outer join tradeTable as "tradetable_0" on ("root".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= DATE\'2016-07-22\' and "salespersontable_0".thru_z > DATE\'2016-07-22\') where "root".from_z <= DATE\'2016-07-22\' and "root".thru_z > DATE\'2016-07-22\') as "root"', $result->sqlRemoveFormatting() ); } @@ -867,8 +870,8 @@ function <> meta::relational::tests::milestoning::businessdate::testM assertSameElements([200.0, 101.0], $pnls->map(p|$p.pnl)); assertEquals([$businessDate,$businessDate], $pnls->map(p|$p.businessDate)); assertEqualsH2Compatible( - 'select "root".TRADE_ID as "pk_0", "root".pnl as "pnl", "root".supportContactViaView as "supportContactName", \'2016-07-22\' as "k_businessDate" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersonview_0".SALES_PERSON_NAME as supportContactViaView, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" left outer join tradeTable as "tradetable_0" on ("root".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= \'2016-07-22\' and "salespersontable_0".thru_z > \'2016-07-22\') left outer join (select "root".ACCOUNT_ID as ACCOUNT_ID, "root".NAME as SALES_PERSON_NAME from salesPersonTable as "root" where "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\') as "salespersonview_0" on ("salespersontable_0".ACCOUNT_ID = "salespersonview_0".ACCOUNT_ID) where "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\') as "root"', - 'select "root".TRADE_ID as "pk_0", "root".pnl as "pnl", "root".supportContactViaView as "supportContactName", \'2016-07-22\' as "k_businessDate" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersonview_0".SALES_PERSON_NAME as supportContactViaView, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" left outer join tradeTable as "tradetable_0" on ("root".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= DATE\'2016-07-22\' and "salespersontable_0".thru_z > DATE\'2016-07-22\') left outer join (select "root".ACCOUNT_ID as ACCOUNT_ID, "root".NAME as SALES_PERSON_NAME from salesPersonTable as "root" where "root".from_z <= DATE\'2016-07-22\' and "root".thru_z > DATE\'2016-07-22\') as "salespersonview_0" on ("salespersontable_0".ACCOUNT_ID = "salespersonview_0".ACCOUNT_ID) where "root".from_z <= DATE\'2016-07-22\' and "root".thru_z > DATE\'2016-07-22\') as "root"', + 'select "root".TRADE_ID as "pk_0", "root".pnl as "pnl", "root".supportContactViaView as "supportContactName", \'2016-07-22\' as "k_businessDate" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersonview_0".SALES_PERSON_NAME as supportContactViaView, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" left outer join tradeTable as "tradetable_0" on ("root".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= \'2016-07-22\' and "salespersontable_0".thru_z > \'2016-07-22\') left outer join (select "root".ACCOUNT_ID as ACCOUNT_ID, "root".NAME as SALES_PERSON_NAME from salesPersonTable as "root" where "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\') as "salespersonview_0" on ("salespersontable_0".ACCOUNT_ID = "salespersonview_0".ACCOUNT_ID) where "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\') as "root"', + 'select "root".TRADE_ID as "pk_0", "root".pnl as "pnl", "root".supportContactViaView as "supportContactName", \'2016-07-22\' as "k_businessDate" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersonview_0".SALES_PERSON_NAME as supportContactViaView, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" left outer join tradeTable as "tradetable_0" on ("root".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= DATE\'2016-07-22\' and "salespersontable_0".thru_z > DATE\'2016-07-22\') left outer join (select "root".ACCOUNT_ID as ACCOUNT_ID, "root".NAME as SALES_PERSON_NAME from salesPersonTable as "root" where "root".from_z <= DATE\'2016-07-22\' and "root".thru_z > DATE\'2016-07-22\') as "salespersonview_0" on ("salespersontable_0".ACCOUNT_ID = "salespersonview_0".ACCOUNT_ID) where "root".from_z <= DATE\'2016-07-22\' and "root".thru_z > DATE\'2016-07-22\') as "root"', $result->sqlRemoveFormatting() ); } @@ -882,8 +885,8 @@ function <> meta::relational::tests::milestoning::businessdate::testM assertSameElements([200.0, 101.0], $pnls->map(p|$p.pnl)); assertEquals([$businessDate,$businessDate], $pnls->map(p|$p.businessDate)); assertEqualsH2Compatible( - 'select "root".TRADE_ID as "pk_0", "root".pnl as "pnl", "root".supportContactViaView as "supportContactName", \'2016-07-22\' as "k_businessDate" from (select "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersonview_0".SALES_PERSON_NAME as supportContactViaView, \'2016-07-22\' as "k_businessDate" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" where "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\') as "root" left outer join tradePnlTable as "tradepnltable_1" on ("root".TRADE_ID = "tradepnltable_1".TRADE_ID and "tradepnltable_1".from_z <= \'2016-07-22\' and "tradepnltable_1".thru_z > \'2016-07-22\') left outer join tradeTable as "tradetable_0" on ("tradepnltable_1".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= \'2016-07-22\' and "salespersontable_0".thru_z > \'2016-07-22\') left outer join (select "root".ACCOUNT_ID as ACCOUNT_ID, "root".NAME as SALES_PERSON_NAME from salesPersonTable as "root" where "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\') as "salespersonview_0" on ("salespersontable_0".ACCOUNT_ID = "salespersonview_0".ACCOUNT_ID)) as "root"', - 'select "root".TRADE_ID as "pk_0", "root".pnl as "pnl", "root".supportContactViaView as "supportContactName", \'2016-07-22\' as "k_businessDate" from (select "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersonview_0".SALES_PERSON_NAME as supportContactViaView, \'2016-07-22\' as "k_businessDate" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" where "root".from_z <= DATE\'2016-07-22\' and "root".thru_z > DATE\'2016-07-22\') as "root" left outer join tradePnlTable as "tradepnltable_1" on ("root".TRADE_ID = "tradepnltable_1".TRADE_ID and "tradepnltable_1".from_z <= DATE\'2016-07-22\' and "tradepnltable_1".thru_z > DATE\'2016-07-22\') left outer join tradeTable as "tradetable_0" on ("tradepnltable_1".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= DATE\'2016-07-22\' and "salespersontable_0".thru_z > DATE\'2016-07-22\') left outer join (select "root".ACCOUNT_ID as ACCOUNT_ID, "root".NAME as SALES_PERSON_NAME from salesPersonTable as "root" where "root".from_z <= DATE\'2016-07-22\' and "root".thru_z > DATE\'2016-07-22\') as "salespersonview_0" on ("salespersontable_0".ACCOUNT_ID = "salespersonview_0".ACCOUNT_ID)) as "root"', + 'select "root".TRADE_ID as "pk_0", "root".pnl as "pnl", "root".supportContactViaView as "supportContactName", \'2016-07-22\' as "k_businessDate" from (select "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersonview_0".SALES_PERSON_NAME as supportContactViaView, \'2016-07-22\' as "k_businessDate" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" where "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\') as "root" left outer join tradePnlTable as "tradepnltable_1" on ("root".TRADE_ID = "tradepnltable_1".TRADE_ID and "tradepnltable_1".from_z <= \'2016-07-22\' and "tradepnltable_1".thru_z > \'2016-07-22\') left outer join tradeTable as "tradetable_0" on ("tradepnltable_1".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= \'2016-07-22\' and "salespersontable_0".thru_z > \'2016-07-22\') left outer join (select "root".ACCOUNT_ID as ACCOUNT_ID, "root".NAME as SALES_PERSON_NAME from salesPersonTable as "root" where "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\') as "salespersonview_0" on ("salespersontable_0".ACCOUNT_ID = "salespersonview_0".ACCOUNT_ID)) as "root"', + 'select "root".TRADE_ID as "pk_0", "root".pnl as "pnl", "root".supportContactViaView as "supportContactName", \'2016-07-22\' as "k_businessDate" from (select "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersonview_0".SALES_PERSON_NAME as supportContactViaView, \'2016-07-22\' as "k_businessDate" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" where "root".from_z <= DATE\'2016-07-22\' and "root".thru_z > DATE\'2016-07-22\') as "root" left outer join tradePnlTable as "tradepnltable_1" on ("root".TRADE_ID = "tradepnltable_1".TRADE_ID and "tradepnltable_1".from_z <= DATE\'2016-07-22\' and "tradepnltable_1".thru_z > DATE\'2016-07-22\') left outer join tradeTable as "tradetable_0" on ("tradepnltable_1".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= DATE\'2016-07-22\' and "salespersontable_0".thru_z > DATE\'2016-07-22\') left outer join (select "root".ACCOUNT_ID as ACCOUNT_ID, "root".NAME as SALES_PERSON_NAME from salesPersonTable as "root" where "root".from_z <= DATE\'2016-07-22\' and "root".thru_z > DATE\'2016-07-22\') as "salespersonview_0" on ("salespersontable_0".ACCOUNT_ID = "salespersonview_0".ACCOUNT_ID)) as "root"', $result->sqlRemoveFormatting() ); } @@ -895,8 +898,8 @@ function <> meta::relational::tests::milestoning::businessdate::testM let tds = $result.values->at(0); assertEquals(['101.0,Joe Martinez', '200.0,John Martinez'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".pnl as "pnl", "root".supportContact as "supportContact" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersontable_0".NAME as supportContact, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" left outer join tradeTable as "tradetable_0" on ("root".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= \'2016-07-22\' and "salespersontable_0".thru_z > \'2016-07-22\') where "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\') as "root"', - 'select "root".pnl as "pnl", "root".supportContact as "supportContact" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersontable_0".NAME as supportContact, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" left outer join tradeTable as "tradetable_0" on ("root".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= DATE\'2016-07-22\' and "salespersontable_0".thru_z > DATE\'2016-07-22\') where "root".from_z <= DATE\'2016-07-22\' and "root".thru_z > DATE\'2016-07-22\') as "root"', + 'select "root".pnl as "pnl", "root".supportContact as "supportContact" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersontable_0".NAME as supportContact, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" left outer join tradeTable as "tradetable_0" on ("root".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= \'2016-07-22\' and "salespersontable_0".thru_z > \'2016-07-22\') where "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\') as "root"', + 'select "root".pnl as "pnl", "root".supportContact as "supportContact" from (select distinct "root".TRADE_ID as TRADE_ID, "root".pnl as pnl, "salespersontable_0".NAME as supportContact, \'2016-07-22\' as "k_businessDate" from tradePnlTable as "root" left outer join tradeTable as "tradetable_0" on ("root".TRADE_ID = "tradetable_0".ID) left outer join salesPersonTable as "salespersontable_0" on ("tradetable_0".accountID = "salespersontable_0".ACCOUNT_ID and "salespersontable_0".from_z <= DATE\'2016-07-22\' and "salespersontable_0".thru_z > DATE\'2016-07-22\') where "root".from_z <= DATE\'2016-07-22\' and "root".thru_z > DATE\'2016-07-22\') as "root"', $result->sqlRemoveFormatting() ); } @@ -908,10 +911,10 @@ function <> meta::relational::tests::milestoning::businessdate::testI assertEquals(1, $products->size()); assertEquals('ProductName2', $products->at(0).name); assertEqualsH2Compatible( - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2016-07-22\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2016-07-22\' and "stockproducttable_0".thru_z > \'2016-07-22\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2016-07-22\' and "productclassificationtable_0".thru_z > \'2016-07-22\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2016-07-23\' and "productclassificationtable_1".thru_z > \'2016-07-23\') left outer join ProductTable as "producttable_1" on ("producttable_1".type = "productclassificationtable_1".type and "producttable_1".from_z <= \'2016-07-23\' and "producttable_1".thru_z > \'2016-07-23\') left outer join ProductClassificationTable as "productclassificationtable_2" on ("root".type = "productclassificationtable_2".type and "productclassificationtable_2".from_z <= \'2016-07-24\' and "productclassificationtable_2".thru_z > \'2016-07-24\') left outer join ProductTable as "producttable_2" on ("producttable_2".type = "productclassificationtable_2".type and "producttable_2".from_z <= \'2016-07-24\' and "producttable_2".thru_z > \'2016-07-24\') where "root".name = case when "root".id = 1 then "producttable_1".name else "producttable_2".name end and "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\'', - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2016-07-22\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2016-07-22\' and "stockproducttable_0".thru_z > DATE\'2016-07-22\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2016-07-22\' and "productclassificationtable_0".thru_z > DATE\'2016-07-22\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2016-07-23\' and "productclassificationtable_1".thru_z > DATE\'2016-07-23\') left outer join ProductTable as "producttable_1" on ("producttable_1".type = "productclassificationtable_1".type and "producttable_1".from_z <= DATE\'2016-07-23\' and "producttable_1".thru_z > DATE\'2016-07-23\') left outer join ProductClassificationTable as "productclassificationtable_2" on ("root".type = "productclassificationtable_2".type and "productclassificationtable_2".from_z <= DATE\'2016-07-24\' and "productclassificationtable_2".thru_z > DATE\'2016-07-24\') left outer join ProductTable as "producttable_2" on ("producttable_2".type = "productclassificationtable_2".type and "producttable_2".from_z <= DATE\'2016-07-24\' and "producttable_2".thru_z > DATE\'2016-07-24\') where "root".name = case when "root".id = 1 then "producttable_1".name else "producttable_2".name end and "root".from_z <= DATE\'2016-07-22\' and "root".thru_z > DATE\'2016-07-22\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2016-07-22\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2016-07-22\' and "stockproducttable_0".thru_z > \'2016-07-22\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2016-07-22\' and "productclassificationtable_0".thru_z > \'2016-07-22\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2016-07-23\' and "productclassificationtable_1".thru_z > \'2016-07-23\') left outer join ProductTable as "producttable_1" on ("producttable_1".type = "productclassificationtable_1".type and "producttable_1".from_z <= \'2016-07-23\' and "producttable_1".thru_z > \'2016-07-23\') left outer join ProductClassificationTable as "productclassificationtable_2" on ("root".type = "productclassificationtable_2".type and "productclassificationtable_2".from_z <= \'2016-07-24\' and "productclassificationtable_2".thru_z > \'2016-07-24\') left outer join ProductTable as "producttable_2" on ("producttable_2".type = "productclassificationtable_2".type and "producttable_2".from_z <= \'2016-07-24\' and "producttable_2".thru_z > \'2016-07-24\') where "root".name = case when "root".id = 1 then "producttable_1".name else "producttable_2".name end and "root".from_z <= \'2016-07-22\' and "root".thru_z > \'2016-07-22\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2016-07-22\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2016-07-22\' and "stockproducttable_0".thru_z > DATE\'2016-07-22\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2016-07-22\' and "productclassificationtable_0".thru_z > DATE\'2016-07-22\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2016-07-23\' and "productclassificationtable_1".thru_z > DATE\'2016-07-23\') left outer join ProductTable as "producttable_1" on ("producttable_1".type = "productclassificationtable_1".type and "producttable_1".from_z <= DATE\'2016-07-23\' and "producttable_1".thru_z > DATE\'2016-07-23\') left outer join ProductClassificationTable as "productclassificationtable_2" on ("root".type = "productclassificationtable_2".type and "productclassificationtable_2".from_z <= DATE\'2016-07-24\' and "productclassificationtable_2".thru_z > DATE\'2016-07-24\') left outer join ProductTable as "producttable_2" on ("producttable_2".type = "productclassificationtable_2".type and "producttable_2".from_z <= DATE\'2016-07-24\' and "producttable_2".thru_z > DATE\'2016-07-24\') where "root".name = case when "root".id = 1 then "producttable_1".name else "producttable_2".name end and "root".from_z <= DATE\'2016-07-22\' and "root".thru_z > DATE\'2016-07-22\'', $result->sqlRemoveFormatting() - ); + ); } function <> meta::relational::tests::milestoning::qualifier::setUp():Any[0..1] @@ -930,8 +933,8 @@ function <> meta::relational::tests::milestoning:: assertEquals(1, $products->size()); assertEquals('ProductName2', $products->at(0).name); assertEqualsH2Compatible( - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -946,8 +949,8 @@ function <> meta::relational::tests::milestoning::qua assertEquals(1, $products->size()); assertEquals('ProductName2', $products->at(0).name); assertEqualsH2Compatible( - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", DATE\'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", DATE\'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -962,8 +965,8 @@ function <> meta::relational::tests::milestoning::qualifier::testProj let products = $result.values->at(0); assertEquals(1, $products->size()); assertEqualsH2Compatible( - 'select "productclassificationtable_0".type = \'STOCK\' as "c1" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "productclassificationtable_0".type = \'STOCK\' as "c1" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "productclassificationtable_0".type = \'STOCK\' as "c1" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "productclassificationtable_0".type = \'STOCK\' as "c1" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -974,8 +977,8 @@ function <> meta::relational::tests::milestoning::businessdate::testM let businessDate = %2015-10-16; let result = execute(|Order.all()->project([o|$o.id, o|$o.product($businessDate).classificationWithDateConstant().exchangeName],['id','productExchangeNameUsingDateConstantPropagatedFromQP']), milestoningmapMultipleJoinOperations, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "root".id as "id", "productexchangetable_0".name as "productExchangeNameUsingDateConstantPropagatedFromQP" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".exchange from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= \'9999-12-31\' and "productclassificationtable_1".thru_z > \'9999-12-31\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= \'9999-12-31\' and "productexchangetable_1".thru_z > \'9999-12-31\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name or ("productclassificationtable_0".exchange is null and "productexchangetable_0".name is null))', - 'select "root".id as "id", "productexchangetable_0".name as "productExchangeNameUsingDateConstantPropagatedFromQP" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-10-16\' and "producttable_0".thru_z > DATE\'2015-10-16\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".exchange from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= DATE\'9999-12-31\' and "productclassificationtable_1".thru_z > DATE\'9999-12-31\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= DATE\'9999-12-31\' and "productexchangetable_1".thru_z > DATE\'9999-12-31\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name or ("productclassificationtable_0".exchange is null and "productexchangetable_0".name is null))', + 'select "root".id as "id", "productexchangetable_0".name as "productExchangeNameUsingDateConstantPropagatedFromQP" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".exchange from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= \'9999-12-31\' and "productclassificationtable_1".thru_z > \'9999-12-31\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= \'9999-12-31\' and "productexchangetable_1".thru_z > \'9999-12-31\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name or ("productclassificationtable_0".exchange is null and "productexchangetable_0".name is null))', + 'select "root".id as "id", "productexchangetable_0".name as "productExchangeNameUsingDateConstantPropagatedFromQP" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-10-16\' and "producttable_0".thru_z > DATE\'2015-10-16\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".exchange from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= DATE\'9999-12-31\' and "productclassificationtable_1".thru_z > DATE\'9999-12-31\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type) left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= DATE\'9999-12-31\' and "productexchangetable_1".thru_z > DATE\'9999-12-31\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name or ("productclassificationtable_0".exchange is null and "productexchangetable_0".name is null))', $result->sqlRemoveFormatting() ); } @@ -983,18 +986,18 @@ function <> meta::relational::tests::milestoning::businessdate::testM function <> meta::relational::tests::milestoning::businessdate::testConcatenationOfTemporalTdsQueries():Boolean[1] { let bds = [%2015-8-16, %2015-8-27, %2015-10-16, %2015-10-17]; - + let lfs = $bds->map(bd:Date[1]| {|Product.all($bd)->filter(p|$p.classification($bd).system.name=='SYS1' || $p.type=='OPTION')->project([p|$bd, p|$p.name, p|$p.exchange($bd).name],['businessDate', 'productName', 'exchangeName'])}->evaluateAndDeactivate()); - + let concatLambda = meta::relational::milestoning::concatenateTemporalTdsQueries($lfs); - + let result = execute($concatLambda, milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - + let tds = $result.values->at(0); assertEquals(['2015-08-16,ProductName,TDSNull', '2015-08-27,ProductName1,LNSE', '2015-08-27,ProductName3,TDSNull', '2015-10-16,ProductName2,LNSE', '2015-10-16,ProductName3,TDSNull', '2015-10-17,ProductName2,LNSE', '2015-10-17,ProductName3,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "unionalias_0"."businessDate" as "businessDate", "unionalias_0"."productName" as "productName", "unionalias_0"."exchangeName" as "exchangeName" from (select \'2015-08-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-08-16\' and "productexchangetable_0".thru_z > \'2015-08-16\') where (("productclassificationtable_0".from_z <= \'2015-08-16\' and "productclassificationtable_0".thru_z > \'2015-08-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-08-16\' and "root".thru_z > \'2015-08-16\' UNION ALL select \'2015-08-27\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-08-27\' and "productexchangetable_0".thru_z > \'2015-08-27\') where (("productclassificationtable_0".from_z <= \'2015-08-27\' and "productclassificationtable_0".thru_z > \'2015-08-27\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-08-27\' and "root".thru_z > \'2015-08-27\' UNION ALL select \'2015-10-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where (("productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\' UNION ALL select \'2015-10-17\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-17\' and "productexchangetable_0".thru_z > \'2015-10-17\') where (("productclassificationtable_0".from_z <= \'2015-10-17\' and "productclassificationtable_0".thru_z > \'2015-10-17\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-10-17\' and "root".thru_z > \'2015-10-17\') as "unionalias_0"', - 'select "unionalias_0"."businessDate" as "businessDate", "unionalias_0"."productName" as "productName", "unionalias_0"."exchangeName" as "exchangeName" from (select DATE\'2015-08-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-08-16\' and "productexchangetable_0".thru_z > DATE\'2015-08-16\') where (("productclassificationtable_0".from_z <= DATE\'2015-08-16\' and "productclassificationtable_0".thru_z > DATE\'2015-08-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= DATE\'2015-08-16\' and "root".thru_z > DATE\'2015-08-16\' UNION ALL select DATE\'2015-08-27\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-08-27\' and "productexchangetable_0".thru_z > DATE\'2015-08-27\') where (("productclassificationtable_0".from_z <= DATE\'2015-08-27\' and "productclassificationtable_0".thru_z > DATE\'2015-08-27\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= DATE\'2015-08-27\' and "root".thru_z > DATE\'2015-08-27\' UNION ALL select DATE\'2015-10-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-16\' and "productexchangetable_0".thru_z > DATE\'2015-10-16\') where (("productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\' UNION ALL select DATE\'2015-10-17\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-17\' and "productexchangetable_0".thru_z > DATE\'2015-10-17\') where (("productclassificationtable_0".from_z <= DATE\'2015-10-17\' and "productclassificationtable_0".thru_z > DATE\'2015-10-17\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= DATE\'2015-10-17\' and "root".thru_z > DATE\'2015-10-17\') as "unionalias_0"', + 'select "unionalias_0"."businessDate" as "businessDate", "unionalias_0"."productName" as "productName", "unionalias_0"."exchangeName" as "exchangeName" from (select \'2015-08-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-08-16\' and "productexchangetable_0".thru_z > \'2015-08-16\') where (("productclassificationtable_0".from_z <= \'2015-08-16\' and "productclassificationtable_0".thru_z > \'2015-08-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-08-16\' and "root".thru_z > \'2015-08-16\' UNION ALL select \'2015-08-27\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-08-27\' and "productexchangetable_0".thru_z > \'2015-08-27\') where (("productclassificationtable_0".from_z <= \'2015-08-27\' and "productclassificationtable_0".thru_z > \'2015-08-27\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-08-27\' and "root".thru_z > \'2015-08-27\' UNION ALL select \'2015-10-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where (("productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\' UNION ALL select \'2015-10-17\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-17\' and "productexchangetable_0".thru_z > \'2015-10-17\') where (("productclassificationtable_0".from_z <= \'2015-10-17\' and "productclassificationtable_0".thru_z > \'2015-10-17\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-10-17\' and "root".thru_z > \'2015-10-17\') as "unionalias_0"', + 'select "unionalias_0"."businessDate" as "businessDate", "unionalias_0"."productName" as "productName", "unionalias_0"."exchangeName" as "exchangeName" from (select DATE\'2015-08-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-08-16\' and "productexchangetable_0".thru_z > DATE\'2015-08-16\') where (("productclassificationtable_0".from_z <= DATE\'2015-08-16\' and "productclassificationtable_0".thru_z > DATE\'2015-08-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= DATE\'2015-08-16\' and "root".thru_z > DATE\'2015-08-16\' UNION ALL select DATE\'2015-08-27\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-08-27\' and "productexchangetable_0".thru_z > DATE\'2015-08-27\') where (("productclassificationtable_0".from_z <= DATE\'2015-08-27\' and "productclassificationtable_0".thru_z > DATE\'2015-08-27\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= DATE\'2015-08-27\' and "root".thru_z > DATE\'2015-08-27\' UNION ALL select DATE\'2015-10-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-16\' and "productexchangetable_0".thru_z > DATE\'2015-10-16\') where (("productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\' UNION ALL select DATE\'2015-10-17\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-17\' and "productexchangetable_0".thru_z > DATE\'2015-10-17\') where (("productclassificationtable_0".from_z <= DATE\'2015-10-17\' and "productclassificationtable_0".thru_z > DATE\'2015-10-17\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= DATE\'2015-10-17\' and "root".thru_z > DATE\'2015-10-17\') as "unionalias_0"', $result->sqlRemoveFormatting() ); } @@ -1002,18 +1005,18 @@ function <> meta::relational::tests::milestoning::businessdate::testC function <> meta::relational::tests::milestoning::businessdate::testConcatenationOfTemporalTdsQueriesWithGroupBy():Boolean[1] { let bds = [%2015-8-16, %2015-8-27, %2015-10-16, %2015-10-17]; - + let lfs = $bds->map(bd:Date[1]| {|Product.all($bd)->filter(p|$p.classification($bd).system.name=='SYS1' || $p.type=='OPTION')->project([p|$bd, p|$p.name, p|$p.exchange($bd).name],['businessDate', 'productName', 'exchangeName'])->groupBy(['businessDate', 'productName', 'exchangeName'], [agg('count', x| $x.getString('productName'), a | $a -> count())])}->evaluateAndDeactivate()); - + let concatLambda = meta::relational::milestoning::concatenateTemporalTdsQueries($lfs); - + let result = execute($concatLambda, milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - + let tds = $result.values->at(0); assertEquals(['2015-08-16,ProductName,TDSNull,1', '2015-08-27,ProductName1,LNSE,1', '2015-08-27,ProductName3,TDSNull,1', '2015-10-16,ProductName2,LNSE,1', '2015-10-16,ProductName3,TDSNull,1', '2015-10-17,ProductName2,LNSE,1', '2015-10-17,ProductName3,TDSNull,1'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "unionalias_0"."businessDate" as "businessDate", "unionalias_0"."productName" as "productName", "unionalias_0"."exchangeName" as "exchangeName", "unionalias_0"."count" as "count" from (select \'2015-08-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-08-16\' and "productexchangetable_0".thru_z > \'2015-08-16\') where (("productclassificationtable_0".from_z <= \'2015-08-16\' and "productclassificationtable_0".thru_z > \'2015-08-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-08-16\' and "root".thru_z > \'2015-08-16\' group by "businessDate","productName","exchangeName" UNION ALL select \'2015-08-27\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-08-27\' and "productexchangetable_0".thru_z > \'2015-08-27\') where (("productclassificationtable_0".from_z <= \'2015-08-27\' and "productclassificationtable_0".thru_z > \'2015-08-27\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-08-27\' and "root".thru_z > \'2015-08-27\' group by "businessDate","productName","exchangeName" UNION ALL select \'2015-10-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where (("productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\' group by "businessDate","productName","exchangeName" UNION ALL select \'2015-10-17\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-17\' and "productexchangetable_0".thru_z > \'2015-10-17\') where (("productclassificationtable_0".from_z <= \'2015-10-17\' and "productclassificationtable_0".thru_z > \'2015-10-17\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-10-17\' and "root".thru_z > \'2015-10-17\' group by "businessDate","productName","exchangeName") as "unionalias_0"', - 'select "unionalias_0"."businessDate" as "businessDate", "unionalias_0"."productName" as "productName", "unionalias_0"."exchangeName" as "exchangeName", "unionalias_0"."count" as "count" from (select DATE\'2015-08-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-08-16\' and "productexchangetable_0".thru_z > DATE\'2015-08-16\') where (("productclassificationtable_0".from_z <= DATE\'2015-08-16\' and "productclassificationtable_0".thru_z > DATE\'2015-08-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= DATE\'2015-08-16\' and "root".thru_z > DATE\'2015-08-16\' group by "businessDate","productName","exchangeName" UNION ALL select DATE\'2015-08-27\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-08-27\' and "productexchangetable_0".thru_z > DATE\'2015-08-27\') where (("productclassificationtable_0".from_z <= DATE\'2015-08-27\' and "productclassificationtable_0".thru_z > DATE\'2015-08-27\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= DATE\'2015-08-27\' and "root".thru_z > DATE\'2015-08-27\' group by "businessDate","productName","exchangeName" UNION ALL select DATE\'2015-10-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-16\' and "productexchangetable_0".thru_z > DATE\'2015-10-16\') where (("productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\' group by "businessDate","productName","exchangeName" UNION ALL select DATE\'2015-10-17\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-17\' and "productexchangetable_0".thru_z > DATE\'2015-10-17\') where (("productclassificationtable_0".from_z <= DATE\'2015-10-17\' and "productclassificationtable_0".thru_z > DATE\'2015-10-17\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= DATE\'2015-10-17\' and "root".thru_z > DATE\'2015-10-17\' group by "businessDate","productName","exchangeName") as "unionalias_0"', + 'select "unionalias_0"."businessDate" as "businessDate", "unionalias_0"."productName" as "productName", "unionalias_0"."exchangeName" as "exchangeName", "unionalias_0"."count" as "count" from (select \'2015-08-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-08-16\' and "productexchangetable_0".thru_z > \'2015-08-16\') where (("productclassificationtable_0".from_z <= \'2015-08-16\' and "productclassificationtable_0".thru_z > \'2015-08-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-08-16\' and "root".thru_z > \'2015-08-16\' group by "businessDate","productName","exchangeName" UNION ALL select \'2015-08-27\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-08-27\' and "productexchangetable_0".thru_z > \'2015-08-27\') where (("productclassificationtable_0".from_z <= \'2015-08-27\' and "productclassificationtable_0".thru_z > \'2015-08-27\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-08-27\' and "root".thru_z > \'2015-08-27\' group by "businessDate","productName","exchangeName" UNION ALL select \'2015-10-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where (("productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\' group by "businessDate","productName","exchangeName" UNION ALL select \'2015-10-17\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-17\' and "productexchangetable_0".thru_z > \'2015-10-17\') where (("productclassificationtable_0".from_z <= \'2015-10-17\' and "productclassificationtable_0".thru_z > \'2015-10-17\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= \'2015-10-17\' and "root".thru_z > \'2015-10-17\' group by "businessDate","productName","exchangeName") as "unionalias_0"', + 'select "unionalias_0"."businessDate" as "businessDate", "unionalias_0"."productName" as "productName", "unionalias_0"."exchangeName" as "exchangeName", "unionalias_0"."count" as "count" from (select DATE\'2015-08-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-08-16\' and "productexchangetable_0".thru_z > DATE\'2015-08-16\') where (("productclassificationtable_0".from_z <= DATE\'2015-08-16\' and "productclassificationtable_0".thru_z > DATE\'2015-08-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= DATE\'2015-08-16\' and "root".thru_z > DATE\'2015-08-16\' group by "businessDate","productName","exchangeName" UNION ALL select DATE\'2015-08-27\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-08-27\' and "productexchangetable_0".thru_z > DATE\'2015-08-27\') where (("productclassificationtable_0".from_z <= DATE\'2015-08-27\' and "productclassificationtable_0".thru_z > DATE\'2015-08-27\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= DATE\'2015-08-27\' and "root".thru_z > DATE\'2015-08-27\' group by "businessDate","productName","exchangeName" UNION ALL select DATE\'2015-10-16\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-16\' and "productexchangetable_0".thru_z > DATE\'2015-10-16\') where (("productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\' group by "businessDate","productName","exchangeName" UNION ALL select DATE\'2015-10-17\' as "businessDate", "root".name as "productName", "productexchangetable_0".name as "exchangeName", count("root".name) as "count" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join SystemTable as "systemtable_0" on ("productclassificationtable_0".system = "systemtable_0".name) left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-17\' and "productexchangetable_0".thru_z > DATE\'2015-10-17\') where (("productclassificationtable_0".from_z <= DATE\'2015-10-17\' and "productclassificationtable_0".thru_z > DATE\'2015-10-17\' and "systemtable_0".name = \'SYS1\') or "root".type = \'OPTION\') and "root".from_z <= DATE\'2015-10-17\' and "root".thru_z > DATE\'2015-10-17\' group by "businessDate","productName","exchangeName") as "unionalias_0"', $result->sqlRemoveFormatting() ); } @@ -1025,8 +1028,8 @@ function <> meta::relational::tests::milestoning::businessdate::testP let order = $result.values; assertEquals([2, 2], $order.id); assertEqualsH2Compatible( - 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".id as id, "root".name as "ProductTablename_ProductTableNoMilestoningname" from ProductTable as "root" where "root".from_z <= \'2015-09-01\' and "root".thru_z > \'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".id as id, "root".name as "ProductTablename_ProductTableNoMilestoningname" from ProductTableNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (("unionalias_1"."from_z_0" <= \'2015-09-01\' and "unionalias_1"."thru_z_0" > \'2015-09-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null)) where "unionalias_1"."ProductTablename_ProductTableNoMilestoningname" = \'ProductName1\'', - 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".id as id, "root".name as "ProductTablename_ProductTableNoMilestoningname" from ProductTable as "root" where "root".from_z <= DATE\'2015-09-01\' and "root".thru_z > DATE\'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".id as id, "root".name as "ProductTablename_ProductTableNoMilestoningname" from ProductTableNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (("unionalias_1"."from_z_0" <= DATE\'2015-09-01\' and "unionalias_1"."thru_z_0" > DATE\'2015-09-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null)) where "unionalias_1"."ProductTablename_ProductTableNoMilestoningname" = \'ProductName1\'', + 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".id as id, "root".name as "ProductTablename_ProductTableNoMilestoningname" from ProductTable as "root" where "root".from_z <= \'2015-09-01\' and "root".thru_z > \'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".id as id, "root".name as "ProductTablename_ProductTableNoMilestoningname" from ProductTableNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (("unionalias_1"."from_z_0" <= \'2015-09-01\' and "unionalias_1"."thru_z_0" > \'2015-09-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null)) where "unionalias_1"."ProductTablename_ProductTableNoMilestoningname" = \'ProductName1\'', + 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".id as id, "root".name as "ProductTablename_ProductTableNoMilestoningname" from ProductTable as "root" where "root".from_z <= DATE\'2015-09-01\' and "root".thru_z > DATE\'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".id as id, "root".name as "ProductTablename_ProductTableNoMilestoningname" from ProductTableNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (("unionalias_1"."from_z_0" <= DATE\'2015-09-01\' and "unionalias_1"."thru_z_0" > DATE\'2015-09-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null)) where "unionalias_1"."ProductTablename_ProductTableNoMilestoningname" = \'ProductName1\'', $result->sqlRemoveFormatting() ); } @@ -1037,8 +1040,8 @@ function <> meta::relational::tests::milestoning::businessdate::testP let order = $result.values; assertEquals([1, 1, 2, 2, 1, 1, 2, 2], $order.id); assertEqualsH2Compatible( - 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".id as id, "root".type as type_0, null as type_1 from ProductTable as "root" where "root".from_z <= \'2015-09-01\' and "root".thru_z > \'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".id as id, null as type_0, "root".type as type_1 from ProductTableNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (("unionalias_1"."from_z_0" <= \'2015-09-01\' and "unionalias_1"."thru_z_0" > \'2015-09-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null)) left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTable as "root" where "root".from_z <= \'2015-09-01\' and "root".thru_z > \'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTableNoMilestoning as "root") as "unionalias_2" on (("unionalias_1".type_0 = "unionalias_2".type or "unionalias_1".type_1 = "unionalias_2".type) and (("unionalias_2"."from_z_0" <= \'2015-09-01\' and "unionalias_2"."thru_z_0" > \'2015-09-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."thru_z_0") is null)) where "unionalias_2"."ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" = \'STOCK DESC-V2\'', - 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".id as id, "root".type as type_0, null as type_1 from ProductTable as "root" where "root".from_z <= DATE\'2015-09-01\' and "root".thru_z > DATE\'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".id as id, null as type_0, "root".type as type_1 from ProductTableNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (("unionalias_1"."from_z_0" <= DATE\'2015-09-01\' and "unionalias_1"."thru_z_0" > DATE\'2015-09-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null)) left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTable as "root" where "root".from_z <= DATE\'2015-09-01\' and "root".thru_z > DATE\'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTableNoMilestoning as "root") as "unionalias_2" on (("unionalias_1".type_0 = "unionalias_2".type or "unionalias_1".type_1 = "unionalias_2".type) and (("unionalias_2"."from_z_0" <= DATE\'2015-09-01\' and "unionalias_2"."thru_z_0" > DATE\'2015-09-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."thru_z_0") is null)) where "unionalias_2"."ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" = \'STOCK DESC-V2\'', + 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".id as id, "root".type as type_0, null as type_1 from ProductTable as "root" where "root".from_z <= \'2015-09-01\' and "root".thru_z > \'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".id as id, null as type_0, "root".type as type_1 from ProductTableNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (("unionalias_1"."from_z_0" <= \'2015-09-01\' and "unionalias_1"."thru_z_0" > \'2015-09-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null)) left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTable as "root" where "root".from_z <= \'2015-09-01\' and "root".thru_z > \'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTableNoMilestoning as "root") as "unionalias_2" on (("unionalias_1".type_0 = "unionalias_2".type or "unionalias_1".type_1 = "unionalias_2".type) and (("unionalias_2"."from_z_0" <= \'2015-09-01\' and "unionalias_2"."thru_z_0" > \'2015-09-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."thru_z_0") is null)) where "unionalias_2"."ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" = \'STOCK DESC-V2\'', + 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".id as id, "root".type as type_0, null as type_1 from ProductTable as "root" where "root".from_z <= DATE\'2015-09-01\' and "root".thru_z > DATE\'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".id as id, null as type_0, "root".type as type_1 from ProductTableNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (("unionalias_1"."from_z_0" <= DATE\'2015-09-01\' and "unionalias_1"."thru_z_0" > DATE\'2015-09-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null)) left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTable as "root" where "root".from_z <= DATE\'2015-09-01\' and "root".thru_z > DATE\'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTableNoMilestoning as "root") as "unionalias_2" on (("unionalias_1".type_0 = "unionalias_2".type or "unionalias_1".type_1 = "unionalias_2".type) and (("unionalias_2"."from_z_0" <= DATE\'2015-09-01\' and "unionalias_2"."thru_z_0" > DATE\'2015-09-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."thru_z_0") is null)) where "unionalias_2"."ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" = \'STOCK DESC-V2\'', $result->sqlRemoveFormatting() ); } @@ -1049,8 +1052,8 @@ function <> meta::relational::tests::milestoning::businessdate::testP let product = $result.values; assertEquals([2, 2, 1, 1], $product.id); assertEqualsH2Compatible( - 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_1_0" as "pk_1_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_1_1" as "pk_1_1", "unionBase"."id" as "id", "unionBase"."name" as "name", "unionBase"."k_businessDate" as "k_businessDate", "unionBase"."from_z_0" as "from_z_0", "unionBase"."thru_z_0" as "thru_z_0" from (select \'0\' as u_type, "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".id as "id", "root".name as "name", \'2015-09-01\' as "k_businessDate", "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".type as type_0, null as type_1 from ProductTable as "root" where "root".from_z <= \'2015-09-01\' and "root".thru_z > \'2015-09-01\' UNION ALL select \'1\' as u_type, null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".id as "id", "root".name as "name", \'2015-09-01\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as type_0, "root".type as type_1 from ProductTableNoMilestoning as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTable as "root" where "root".from_z <= \'2015-09-01\' and "root".thru_z > \'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTableNoMilestoning as "root") as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (("unionalias_1"."from_z_0" <= \'2015-09-01\' and "unionalias_1"."thru_z_0" > \'2015-09-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null)) where "unionalias_1"."ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" = \'STOCK DESC-V2\'', - 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_1_0" as "pk_1_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_1_1" as "pk_1_1", "unionBase"."id" as "id", "unionBase"."name" as "name", "unionBase"."k_businessDate" as "k_businessDate", "unionBase"."from_z_0" as "from_z_0", "unionBase"."thru_z_0" as "thru_z_0" from (select \'0\' as u_type, "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".id as "id", "root".name as "name", \'2015-09-01\' as "k_businessDate", "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".type as type_0, null as type_1 from ProductTable as "root" where "root".from_z <= DATE\'2015-09-01\' and "root".thru_z > DATE\'2015-09-01\' UNION ALL select \'1\' as u_type, null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".id as "id", "root".name as "name", \'2015-09-01\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as type_0, "root".type as type_1 from ProductTableNoMilestoning as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTable as "root" where "root".from_z <= DATE\'2015-09-01\' and "root".thru_z > DATE\'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTableNoMilestoning as "root") as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (("unionalias_1"."from_z_0" <= DATE\'2015-09-01\' and "unionalias_1"."thru_z_0" > DATE\'2015-09-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null)) where "unionalias_1"."ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" = \'STOCK DESC-V2\'', + 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_1_0" as "pk_1_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_1_1" as "pk_1_1", "unionBase"."id" as "id", "unionBase"."name" as "name", "unionBase"."k_businessDate" as "k_businessDate", "unionBase"."from_z_0" as "from_z_0", "unionBase"."thru_z_0" as "thru_z_0" from (select \'0\' as u_type, "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".id as "id", "root".name as "name", \'2015-09-01\' as "k_businessDate", "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".type as type_0, null as type_1 from ProductTable as "root" where "root".from_z <= \'2015-09-01\' and "root".thru_z > \'2015-09-01\' UNION ALL select \'1\' as u_type, null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".id as "id", "root".name as "name", \'2015-09-01\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as type_0, "root".type as type_1 from ProductTableNoMilestoning as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTable as "root" where "root".from_z <= \'2015-09-01\' and "root".thru_z > \'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTableNoMilestoning as "root") as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (("unionalias_1"."from_z_0" <= \'2015-09-01\' and "unionalias_1"."thru_z_0" > \'2015-09-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null)) where "unionalias_1"."ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" = \'STOCK DESC-V2\'', + 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_1_0" as "pk_1_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_1_1" as "pk_1_1", "unionBase"."id" as "id", "unionBase"."name" as "name", "unionBase"."k_businessDate" as "k_businessDate", "unionBase"."from_z_0" as "from_z_0", "unionBase"."thru_z_0" as "thru_z_0" from (select \'0\' as u_type, "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".id as "id", "root".name as "name", \'2015-09-01\' as "k_businessDate", "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".type as type_0, null as type_1 from ProductTable as "root" where "root".from_z <= DATE\'2015-09-01\' and "root".thru_z > DATE\'2015-09-01\' UNION ALL select \'1\' as u_type, null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".id as "id", "root".name as "name", \'2015-09-01\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as type_0, "root".type as type_1 from ProductTableNoMilestoning as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTable as "root" where "root".from_z <= DATE\'2015-09-01\' and "root".thru_z > DATE\'2015-09-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".type as type, "root".type_description as "ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" from ProductClassificationTableNoMilestoning as "root") as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (("unionalias_1"."from_z_0" <= DATE\'2015-09-01\' and "unionalias_1"."thru_z_0" > DATE\'2015-09-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null)) where "unionalias_1"."ProductClassificationTabletype_description_ProductClassificationTableNoMilestoningtype_description" = \'STOCK DESC-V2\'', $result->sqlRemoveFormatting() ); } @@ -1061,8 +1064,8 @@ function <> meta::relational::tests::milestoning::businessdate::testM let result = execute(| meta::relational::tests::milestoning::Order.all()->project([o|$o.product($businessDate)->filter(p|$p.name=='ProductName1').name],['productName']) , TestMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals(['TDSNull','ProductName1'], $result.values.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "producttable_0".name as "productName" from OrderTable as "root" left outer join (select "producttable_1".id as id, "producttable_1".from_z as from_z, "producttable_1".thru_z as thru_z, "producttable3_2".name as name from ProductTable as "producttable_1" left outer join (select "producttable2_1".identifier as identifier from ProductTable2 as "producttable2_1" where "producttable2_1".from_z <= \'2015-09-01\' and "producttable2_1".thru_z > \'2015-09-01\') as "producttable2_0" on ("producttable_1".id = "producttable2_0".identifier) left outer join (select "producttable3_1".name as name, "producttable3_1".id as id from ProductTable3 as "producttable3_1" where "producttable3_1".from_z <= \'2015-09-01\' and "producttable3_1".thru_z > \'2015-09-01\') as "producttable3_0" on ("producttable2_0".identifier = "producttable3_0".id) left outer join ProductTable2 as "producttable2_2" on ("producttable_1".id = "producttable2_2".identifier and "producttable2_2".from_z <= \'2015-09-01\' and "producttable2_2".thru_z > \'2015-09-01\') left outer join (select "producttable3_2".name as name, "producttable3_2".id as id from ProductTable3 as "producttable3_2" where "producttable3_2".from_z <= \'2015-09-01\' and "producttable3_2".thru_z > \'2015-09-01\') as "producttable3_2" on ("producttable2_2".identifier = "producttable3_2".id) where "producttable3_0".name = \'ProductName1\') as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-09-01\' and "producttable_0".thru_z > \'2015-09-01\')', - 'select "producttable_0".name as "productName" from OrderTable as "root" left outer join (select "producttable_1".id as id, "producttable_1".from_z as from_z, "producttable_1".thru_z as thru_z, "producttable3_2".name as name from ProductTable as "producttable_1" left outer join (select "producttable2_1".identifier as identifier from ProductTable2 as "producttable2_1" where "producttable2_1".from_z <= DATE\'2015-09-01\' and "producttable2_1".thru_z > DATE\'2015-09-01\') as "producttable2_0" on ("producttable_1".id = "producttable2_0".identifier) left outer join (select "producttable3_1".name as name, "producttable3_1".id as id from ProductTable3 as "producttable3_1" where "producttable3_1".from_z <= DATE\'2015-09-01\' and "producttable3_1".thru_z > DATE\'2015-09-01\') as "producttable3_0" on ("producttable2_0".identifier = "producttable3_0".id) left outer join ProductTable2 as "producttable2_2" on ("producttable_1".id = "producttable2_2".identifier and "producttable2_2".from_z <= DATE\'2015-09-01\' and "producttable2_2".thru_z > DATE\'2015-09-01\') left outer join (select "producttable3_2".name as name, "producttable3_2".id as id from ProductTable3 as "producttable3_2" where "producttable3_2".from_z <= DATE\'2015-09-01\' and "producttable3_2".thru_z > DATE\'2015-09-01\') as "producttable3_2" on ("producttable2_2".identifier = "producttable3_2".id) where "producttable3_0".name = \'ProductName1\') as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-09-01\' and "producttable_0".thru_z > DATE\'2015-09-01\')', + 'select "producttable_0".name as "productName" from OrderTable as "root" left outer join (select "producttable_1".id as id, "producttable_1".from_z as from_z, "producttable_1".thru_z as thru_z, "producttable3_2".name as name from ProductTable as "producttable_1" left outer join (select "producttable2_1".identifier as identifier from ProductTable2 as "producttable2_1" where "producttable2_1".from_z <= \'2015-09-01\' and "producttable2_1".thru_z > \'2015-09-01\') as "producttable2_0" on ("producttable_1".id = "producttable2_0".identifier) left outer join (select "producttable3_1".name as name, "producttable3_1".id as id from ProductTable3 as "producttable3_1" where "producttable3_1".from_z <= \'2015-09-01\' and "producttable3_1".thru_z > \'2015-09-01\') as "producttable3_0" on ("producttable2_0".identifier = "producttable3_0".id) left outer join ProductTable2 as "producttable2_2" on ("producttable_1".id = "producttable2_2".identifier and "producttable2_2".from_z <= \'2015-09-01\' and "producttable2_2".thru_z > \'2015-09-01\') left outer join (select "producttable3_2".name as name, "producttable3_2".id as id from ProductTable3 as "producttable3_2" where "producttable3_2".from_z <= \'2015-09-01\' and "producttable3_2".thru_z > \'2015-09-01\') as "producttable3_2" on ("producttable2_2".identifier = "producttable3_2".id) where "producttable3_0".name = \'ProductName1\') as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-09-01\' and "producttable_0".thru_z > \'2015-09-01\')', + 'select "producttable_0".name as "productName" from OrderTable as "root" left outer join (select "producttable_1".id as id, "producttable_1".from_z as from_z, "producttable_1".thru_z as thru_z, "producttable3_2".name as name from ProductTable as "producttable_1" left outer join (select "producttable2_1".identifier as identifier from ProductTable2 as "producttable2_1" where "producttable2_1".from_z <= DATE\'2015-09-01\' and "producttable2_1".thru_z > DATE\'2015-09-01\') as "producttable2_0" on ("producttable_1".id = "producttable2_0".identifier) left outer join (select "producttable3_1".name as name, "producttable3_1".id as id from ProductTable3 as "producttable3_1" where "producttable3_1".from_z <= DATE\'2015-09-01\' and "producttable3_1".thru_z > DATE\'2015-09-01\') as "producttable3_0" on ("producttable2_0".identifier = "producttable3_0".id) left outer join ProductTable2 as "producttable2_2" on ("producttable_1".id = "producttable2_2".identifier and "producttable2_2".from_z <= DATE\'2015-09-01\' and "producttable2_2".thru_z > DATE\'2015-09-01\') left outer join (select "producttable3_2".name as name, "producttable3_2".id as id from ProductTable3 as "producttable3_2" where "producttable3_2".from_z <= DATE\'2015-09-01\' and "producttable3_2".thru_z > DATE\'2015-09-01\') as "producttable3_2" on ("producttable2_2".identifier = "producttable3_2".id) where "producttable3_0".name = \'ProductName1\') as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-09-01\' and "producttable_0".thru_z > DATE\'2015-09-01\')', $result->sqlRemoveFormatting() ); } @@ -1073,8 +1076,8 @@ function <> meta::relational::tests::milestoning::businessdate::testF let result = execute(| meta::relational::tests::milestoning::Order.all()->project([o|$o.product($businessDate)->filter(p|$p.name=='ProductName1').name],['productName'])->filter(x|$x.getString('productName')=='ProductName1') , TestMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals(['ProductName1'], $result.values.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "producttable_0".name as "productName" from OrderTable as "root" left outer join (select "producttable_1".id as id, "producttable_1".from_z as from_z, "producttable_1".thru_z as thru_z, "producttable3_2".name as name from ProductTable as "producttable_1" left outer join (select "producttable2_1".identifier as identifier from ProductTable2 as "producttable2_1" where "producttable2_1".from_z <= \'2015-09-01\' and "producttable2_1".thru_z > \'2015-09-01\') as "producttable2_0" on ("producttable_1".id = "producttable2_0".identifier) left outer join (select "producttable3_1".name as name, "producttable3_1".id as id from ProductTable3 as "producttable3_1" where "producttable3_1".from_z <= \'2015-09-01\' and "producttable3_1".thru_z > \'2015-09-01\') as "producttable3_0" on ("producttable2_0".identifier = "producttable3_0".id) left outer join ProductTable2 as "producttable2_2" on ("producttable_1".id = "producttable2_2".identifier and "producttable2_2".from_z <= \'2015-09-01\' and "producttable2_2".thru_z > \'2015-09-01\') left outer join (select "producttable3_2".name as name, "producttable3_2".id as id from ProductTable3 as "producttable3_2" where "producttable3_2".from_z <= \'2015-09-01\' and "producttable3_2".thru_z > \'2015-09-01\') as "producttable3_2" on ("producttable2_2".identifier = "producttable3_2".id) where "producttable3_0".name = \'ProductName1\') as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-09-01\' and "producttable_0".thru_z > \'2015-09-01\') where "producttable_0".name = \'ProductName1\'', - 'select "producttable_0".name as "productName" from OrderTable as "root" left outer join (select "producttable_1".id as id, "producttable_1".from_z as from_z, "producttable_1".thru_z as thru_z, "producttable3_2".name as name from ProductTable as "producttable_1" left outer join (select "producttable2_1".identifier as identifier from ProductTable2 as "producttable2_1" where "producttable2_1".from_z <= DATE\'2015-09-01\' and "producttable2_1".thru_z > DATE\'2015-09-01\') as "producttable2_0" on ("producttable_1".id = "producttable2_0".identifier) left outer join (select "producttable3_1".name as name, "producttable3_1".id as id from ProductTable3 as "producttable3_1" where "producttable3_1".from_z <= DATE\'2015-09-01\' and "producttable3_1".thru_z > DATE\'2015-09-01\') as "producttable3_0" on ("producttable2_0".identifier = "producttable3_0".id) left outer join ProductTable2 as "producttable2_2" on ("producttable_1".id = "producttable2_2".identifier and "producttable2_2".from_z <= DATE\'2015-09-01\' and "producttable2_2".thru_z > DATE\'2015-09-01\') left outer join (select "producttable3_2".name as name, "producttable3_2".id as id from ProductTable3 as "producttable3_2" where "producttable3_2".from_z <= DATE\'2015-09-01\' and "producttable3_2".thru_z > DATE\'2015-09-01\') as "producttable3_2" on ("producttable2_2".identifier = "producttable3_2".id) where "producttable3_0".name = \'ProductName1\') as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-09-01\' and "producttable_0".thru_z > DATE\'2015-09-01\') where "producttable_0".name = \'ProductName1\'', + 'select "producttable_0".name as "productName" from OrderTable as "root" left outer join (select "producttable_1".id as id, "producttable_1".from_z as from_z, "producttable_1".thru_z as thru_z, "producttable3_2".name as name from ProductTable as "producttable_1" left outer join (select "producttable2_1".identifier as identifier from ProductTable2 as "producttable2_1" where "producttable2_1".from_z <= \'2015-09-01\' and "producttable2_1".thru_z > \'2015-09-01\') as "producttable2_0" on ("producttable_1".id = "producttable2_0".identifier) left outer join (select "producttable3_1".name as name, "producttable3_1".id as id from ProductTable3 as "producttable3_1" where "producttable3_1".from_z <= \'2015-09-01\' and "producttable3_1".thru_z > \'2015-09-01\') as "producttable3_0" on ("producttable2_0".identifier = "producttable3_0".id) left outer join ProductTable2 as "producttable2_2" on ("producttable_1".id = "producttable2_2".identifier and "producttable2_2".from_z <= \'2015-09-01\' and "producttable2_2".thru_z > \'2015-09-01\') left outer join (select "producttable3_2".name as name, "producttable3_2".id as id from ProductTable3 as "producttable3_2" where "producttable3_2".from_z <= \'2015-09-01\' and "producttable3_2".thru_z > \'2015-09-01\') as "producttable3_2" on ("producttable2_2".identifier = "producttable3_2".id) where "producttable3_0".name = \'ProductName1\') as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-09-01\' and "producttable_0".thru_z > \'2015-09-01\') where "producttable_0".name = \'ProductName1\'', + 'select "producttable_0".name as "productName" from OrderTable as "root" left outer join (select "producttable_1".id as id, "producttable_1".from_z as from_z, "producttable_1".thru_z as thru_z, "producttable3_2".name as name from ProductTable as "producttable_1" left outer join (select "producttable2_1".identifier as identifier from ProductTable2 as "producttable2_1" where "producttable2_1".from_z <= DATE\'2015-09-01\' and "producttable2_1".thru_z > DATE\'2015-09-01\') as "producttable2_0" on ("producttable_1".id = "producttable2_0".identifier) left outer join (select "producttable3_1".name as name, "producttable3_1".id as id from ProductTable3 as "producttable3_1" where "producttable3_1".from_z <= DATE\'2015-09-01\' and "producttable3_1".thru_z > DATE\'2015-09-01\') as "producttable3_0" on ("producttable2_0".identifier = "producttable3_0".id) left outer join ProductTable2 as "producttable2_2" on ("producttable_1".id = "producttable2_2".identifier and "producttable2_2".from_z <= DATE\'2015-09-01\' and "producttable2_2".thru_z > DATE\'2015-09-01\') left outer join (select "producttable3_2".name as name, "producttable3_2".id as id from ProductTable3 as "producttable3_2" where "producttable3_2".from_z <= DATE\'2015-09-01\' and "producttable3_2".thru_z > DATE\'2015-09-01\') as "producttable3_2" on ("producttable2_2".identifier = "producttable3_2".id) where "producttable3_0".name = \'ProductName1\') as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-09-01\' and "producttable_0".thru_z > DATE\'2015-09-01\') where "producttable_0".name = \'ProductName1\'', $result->sqlRemoveFormatting() ); } @@ -1085,8 +1088,8 @@ function <> meta::relational::tests::milestoning::businessdate::testI let orders = $result.values; assertEquals([1], $orders.id); assertEqualsH2Compatible( - 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-08-15\' and "producttable_0".thru_z > \'2015-08-15\') where case when "producttable_0".name is null then \'empty\' else "producttable_0".name end = \'ProductName\'', - 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-08-15\' and "producttable_0".thru_z > DATE\'2015-08-15\') where case when "producttable_0".name is null then \'empty\' else "producttable_0".name end = \'ProductName\'', + 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-08-15\' and "producttable_0".thru_z > \'2015-08-15\') where case when "producttable_0".name is null then \'empty\' else "producttable_0".name end = \'ProductName\'', + 'select "root".id as "pk_0", "root".id as "id", "root".orderDate as "orderDate" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-08-15\' and "producttable_0".thru_z > DATE\'2015-08-15\') where case when "producttable_0".name is null then \'empty\' else "producttable_0".name end = \'ProductName\'', $result->sqlRemoveFormatting() ); } @@ -1095,12 +1098,12 @@ function <> meta::relational::tests::milestoning::businessdate::testM { let result = execute(|Product.all(%latest)->project([p|$p.id, p|$p.isBrexitClassificationTypeExchange],['id', 'isBrexitClassificationTypeExchange']), meta::relational::tests::milestoning::milestoningmap2, - meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->toOne(); assertEquals(['2, true', '3, false'], $tds.rows->map(r|$r.values->makeString(', '))); assertEqualsH2Compatible( - 'select "root".id as "id", case when "productexchangetable_0".city = \'London\' then \'true\' else \'false\' end as "isBrexitClassificationTypeExchange" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = \'9999-12-31 00:00:00.0000\') left outer join (select "productexchangetable_1".city as city, "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".thru_z = \'9999-12-31 00:00:00.0000\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".thru_z = \'9999-12-31 00:00:00.0000\'', - 'select "root".id as "id", cast(case when "productexchangetable_0".city = \'London\' then \'true\' else \'false\' end as boolean) as "isBrexitClassificationTypeExchange" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') left outer join (select "productexchangetable_1".city as city, "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\'', + 'select "root".id as "id", case when "productexchangetable_0".city = \'London\' then \'true\' else \'false\' end as "isBrexitClassificationTypeExchange" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = \'9999-12-31 00:00:00.0000\') left outer join (select "productexchangetable_1".city as city, "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".thru_z = \'9999-12-31 00:00:00.0000\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".thru_z = \'9999-12-31 00:00:00.0000\'', + 'select "root".id as "id", cast(case when "productexchangetable_0".city = \'London\' then \'true\' else \'false\' end as boolean) as "isBrexitClassificationTypeExchange" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') left outer join (select "productexchangetable_1".city as city, "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\'', $result->sqlRemoveFormatting() ); } @@ -1115,12 +1118,12 @@ function <> meta::relational::tests::milestoning::businessdate::testD function <> meta::relational::tests::milestoning::businessdate::testMilestoningFilterPropagationThroughFilter():Boolean[1] { let result = execute(|Product.all(%2015-8-15)->filter(p|$p.orders->filter(o | $o.id == 1)->isNotEmpty())->project([p|$p.name],['name']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions(), noDebug()); - + let tds = $result.values->at(0); assertEquals(['ProductName'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".name as "name" from ProductTable as "root" where not (not exists(select 1 from OrderTable as "ordertable_0" where "ordertable_0".id = 1 and "root".from_z <= \'2015-08-15\' and "root".thru_z > \'2015-08-15\' and "ordertable_0".prodFk = "root".id)) and "root".from_z <= \'2015-08-15\' and "root".thru_z > \'2015-08-15\'', - 'select "root".name as "name" from ProductTable as "root" where not (not exists(select 1 from OrderTable as "ordertable_0" where "ordertable_0".id = 1 and "root".from_z <= DATE\'2015-08-15\' and "root".thru_z > DATE\'2015-08-15\' and "ordertable_0".prodFk = "root".id)) and "root".from_z <= DATE\'2015-08-15\' and "root".thru_z > DATE\'2015-08-15\'', + 'select "root".name as "name" from ProductTable as "root" where not (not exists(select 1 from OrderTable as "ordertable_0" where "ordertable_0".id = 1 and "root".from_z <= \'2015-08-15\' and "root".thru_z > \'2015-08-15\' and "ordertable_0".prodFk = "root".id)) and "root".from_z <= \'2015-08-15\' and "root".thru_z > \'2015-08-15\'', + 'select "root".name as "name" from ProductTable as "root" where not (not exists(select 1 from OrderTable as "ordertable_0" where "ordertable_0".id = 1 and "root".from_z <= DATE\'2015-08-15\' and "root".thru_z > DATE\'2015-08-15\' and "ordertable_0".prodFk = "root".id)) and "root".from_z <= DATE\'2015-08-15\' and "root".thru_z > DATE\'2015-08-15\'', $result->sqlRemoveFormatting() ); } @@ -1128,12 +1131,12 @@ function <> meta::relational::tests::milestoning::businessdate::testM function <> meta::relational::tests::milestoning::businessdate::testMilestoningFilterPropagationThroughNestedFilter():Boolean[1] { let result = execute(|Product.all(%2015-8-15)->filter(p|$p.orders->filter(o | $o.id == 1).description->isNotEmpty())->project([p|$p.name],['name']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions(), noDebug()); - + let tds = $result.values->at(0); assertEquals(['ProductName'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".name as "name" from ProductTable as "root" left outer join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) left outer join (select distinct "orderdescriptiontable_0".id from ProductTable as "root" left outer join OrderTable as "ordertable_1" on ("ordertable_1".prodFk = "root".id) left outer join OrderDescriptionTable as "orderdescriptiontable_0" on ("ordertable_1".id = "orderdescriptiontable_0".id and "orderdescriptiontable_0".id = 1) where "ordertable_1".id = 1 and "root".from_z <= \'2015-08-15\' and "root".thru_z > \'2015-08-15\') as "producttable_1" on ("ordertable_0".id = "producttable_1".id and "producttable_1".id = 1) where ("ordertable_0".id = 1 and "root".from_z <= \'2015-08-15\' and "root".thru_z > \'2015-08-15\' and not "producttable_1".id is null) and "root".from_z <= \'2015-08-15\' and "root".thru_z > \'2015-08-15\'', - 'select "root".name as "name" from ProductTable as "root" left outer join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) left outer join (select distinct "orderdescriptiontable_0".id from ProductTable as "root" left outer join OrderTable as "ordertable_1" on ("ordertable_1".prodFk = "root".id) left outer join OrderDescriptionTable as "orderdescriptiontable_0" on ("ordertable_1".id = "orderdescriptiontable_0".id and "orderdescriptiontable_0".id = 1) where "ordertable_1".id = 1 and "root".from_z <= DATE\'2015-08-15\' and "root".thru_z > DATE\'2015-08-15\') as "producttable_1" on ("ordertable_0".id = "producttable_1".id and "producttable_1".id = 1) where ("ordertable_0".id = 1 and "root".from_z <= DATE\'2015-08-15\' and "root".thru_z > DATE\'2015-08-15\' and not "producttable_1".id is null) and "root".from_z <= DATE\'2015-08-15\' and "root".thru_z > DATE\'2015-08-15\'', + 'select "root".name as "name" from ProductTable as "root" left outer join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) left outer join (select distinct "orderdescriptiontable_0".id from ProductTable as "root" left outer join OrderTable as "ordertable_1" on ("ordertable_1".prodFk = "root".id) left outer join OrderDescriptionTable as "orderdescriptiontable_0" on ("ordertable_1".id = "orderdescriptiontable_0".id and "orderdescriptiontable_0".id = 1) where "ordertable_1".id = 1 and "root".from_z <= \'2015-08-15\' and "root".thru_z > \'2015-08-15\') as "producttable_1" on ("ordertable_0".id = "producttable_1".id and "producttable_1".id = 1) where ("ordertable_0".id = 1 and "root".from_z <= \'2015-08-15\' and "root".thru_z > \'2015-08-15\' and not "producttable_1".id is null) and "root".from_z <= \'2015-08-15\' and "root".thru_z > \'2015-08-15\'', + 'select "root".name as "name" from ProductTable as "root" left outer join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) left outer join (select distinct "orderdescriptiontable_0".id from ProductTable as "root" left outer join OrderTable as "ordertable_1" on ("ordertable_1".prodFk = "root".id) left outer join OrderDescriptionTable as "orderdescriptiontable_0" on ("ordertable_1".id = "orderdescriptiontable_0".id and "orderdescriptiontable_0".id = 1) where "ordertable_1".id = 1 and "root".from_z <= DATE\'2015-08-15\' and "root".thru_z > DATE\'2015-08-15\') as "producttable_1" on ("ordertable_0".id = "producttable_1".id and "producttable_1".id = 1) where ("ordertable_0".id = 1 and "root".from_z <= DATE\'2015-08-15\' and "root".thru_z > DATE\'2015-08-15\' and not "producttable_1".id is null) and "root".from_z <= DATE\'2015-08-15\' and "root".thru_z > DATE\'2015-08-15\'', $result->sqlRemoveFormatting() ); } @@ -1143,8 +1146,8 @@ function <> meta::relational::tests::milestoning::businessdate::testM // Note: Using now in test deliberately to safegaurd change in sql gen flow. Since change depends on variable date hence not asserting on values but sql let result = execute(|Product.all(%2015-8-15)->filter(p|$p.orders.orderDate->toOne() < now())->project([p|$p.name],['name']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions(), noDebug()); assertEqualsH2Compatible( - 'select "root".name as "name" from ProductTable as "root" left outer join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".orderDate < current_timestamp() and "root".from_z <= \'2015-08-15\' and "root".thru_z > \'2015-08-15\'', - 'select "root".name as "name" from ProductTable as "root" left outer join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".orderDate < current_timestamp() and "root".from_z <= DATE\'2015-08-15\' and "root".thru_z > DATE\'2015-08-15\'', + 'select "root".name as "name" from ProductTable as "root" left outer join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".orderDate < current_timestamp() and "root".from_z <= \'2015-08-15\' and "root".thru_z > \'2015-08-15\'', + 'select "root".name as "name" from ProductTable as "root" left outer join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".orderDate < current_timestamp() and "root".from_z <= DATE\'2015-08-15\' and "root".thru_z > DATE\'2015-08-15\'', $result->sqlRemoveFormatting() ); } @@ -1152,10 +1155,10 @@ function <> meta::relational::tests::milestoning::businessdate::testM function <> meta::relational::tests::milestoning::businessdate::testFilterOnView():Boolean[1] { let query = {|meta::relational::tests::milestoning::Product.all(%2017-6-10)->filter(x|!($x.id->isEmpty()))->project([x|$x.id],['Id'])->distinct()}; - let result = meta::pure::router::execute($query,meta::relational::tests::milestoning::viewFilter::MilestoningWithFiltersOnView,meta::relational::tests::testRuntime(),meta::relational::extension::relationalExtensions()); + let result = meta::pure::router::execute($query,meta::relational::tests::milestoning::viewFilter::MilestoningWithFiltersOnView,meta::external::store::relational::tests::testRuntime(),meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select distinct "stockproductview_0".id as "Id" from ProductTable as "root" left outer join (select "root".id as id, \'2017-06-10\' as "k_businessDate" from StockProductTable as "root" where ("root".id > 152 or "root".id < 123) and "root".from_z <= \'2017-06-10\' and "root".thru_z > \'2017-06-10\') as "stockproductview_0" on ("stockproductview_0".id = "root".id) where not "stockproductview_0".id is null and "root".from_z <= \'2017-06-10\' and "root".thru_z > \'2017-06-10\'', - 'select distinct "stockproductview_0".id as "Id" from ProductTable as "root" left outer join (select "root".id as id, \'2017-06-10\' as "k_businessDate" from StockProductTable as "root" where ("root".id > 152 or "root".id < 123) and "root".from_z <= DATE\'2017-06-10\' and "root".thru_z > DATE\'2017-06-10\') as "stockproductview_0" on ("stockproductview_0".id = "root".id) where not "stockproductview_0".id is null and "root".from_z <= DATE\'2017-06-10\' and "root".thru_z > DATE\'2017-06-10\'', + 'select distinct "stockproductview_0".id as "Id" from ProductTable as "root" left outer join (select "root".id as id, \'2017-06-10\' as "k_businessDate" from StockProductTable as "root" where ("root".id > 152 or "root".id < 123) and "root".from_z <= \'2017-06-10\' and "root".thru_z > \'2017-06-10\') as "stockproductview_0" on ("stockproductview_0".id = "root".id) where not "stockproductview_0".id is null and "root".from_z <= \'2017-06-10\' and "root".thru_z > \'2017-06-10\'', + 'select distinct "stockproductview_0".id as "Id" from ProductTable as "root" left outer join (select "root".id as id, \'2017-06-10\' as "k_businessDate" from StockProductTable as "root" where ("root".id > 152 or "root".id < 123) and "root".from_z <= DATE\'2017-06-10\' and "root".thru_z > DATE\'2017-06-10\') as "stockproductview_0" on ("stockproductview_0".id = "root".id) where not "stockproductview_0".id is null and "root".from_z <= DATE\'2017-06-10\' and "root".thru_z > DATE\'2017-06-10\'', $result->meta::relational::mapping::sqlRemoveFormatting() ); } @@ -1163,7 +1166,7 @@ function <> meta::relational::tests::milestoning::businessdate::testF function <> meta::relational::tests::milestoning::businessdate::testMilestoningFilterPropagationThroughProject():Boolean[1] { let result = execute(|Product.all(%2015-8-15)->project([p|$p.name, p|$p.orders->filter(o | $o.id == 1)->isNotEmpty()],['name', 'check']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - + let tds = $result.values->at(0); assertEquals(['ProductName,true'],$tds.rows->map(r|$r.values->makeString(','))); assertSameSQL('select "root".name as "name", not "producttable_1".prodFk is null as "check" from ProductTable as "root" left outer join (select distinct "ordertable_0".prodFk from ProductTable as "root" left outer join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".id = 1) as "producttable_1" on ("producttable_1".prodFk = "root".id) where "root".from_z <= \'2015-08-15\' and "root".thru_z > \'2015-08-15\'', $result); @@ -1171,22 +1174,22 @@ function <> meta::relational::tests::milestoning::busines /* Generates below SQL Problem is that the subquery also has ProductTable as root but has no milestoning filters on from_z and thruz_z - - select - "root".name as "name", - not "producttable_1".prodFk is null as "check" - from ProductTable as "root" + + select + "root".name as "name", + not "producttable_1".prodFk is null as "check" + from ProductTable as "root" left outer join ( - select distinct - "ordertable_0".prodFk + select distinct + "ordertable_0".prodFk from ProductTable as "root" <------------ Milestoned product table in subquery but no filters left outer join OrderTable as "ordertable_0" - on ("ordertable_0".prodFk = "root".id) + on ("ordertable_0".prodFk = "root".id) where "ordertable_0".id = 1 ) as "producttable_1" - on ("producttable_1".prodFk = "root".id) + on ("producttable_1".prodFk = "root".id) where "root".from_z <= '2022-01-01' and "root".thru_z > '2022-01-01' - + */ } @@ -1194,7 +1197,7 @@ function <> meta::relational::tests::milestoning::businessdate::testC { let busDate = %2015-10-16; let result = execute({| - + let businessDate = $busDate; myGetAllProduct($busDate)->project([p|$p.name, p|$busDate->datePart()],['name','businessDate']) @@ -1209,8 +1212,8 @@ function <> meta::relational::tests::milestoning::businessdate::testC let tds = $result.values->at(0); assertEquals([%2015-10-15,'ProductName1', %2015-10-15,'ProductName3', %2015-10-16,'ProductName2', %2015-10-16,'ProductName3'],$tds.rows.values); assertEqualsH2Compatible( - 'select "unionalias_0"."businessDate" as "businessDate", "unionalias_0"."name" as "name" from (select "root".name as "name", cast(truncate(\'2015-10-16\') as date) as "businessDate" from ProductTable as "root" where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\' UNION ALL select "root".name as "name", cast(truncate(dateadd(DAY, -1, \'2015-10-16\')) as date) as "businessDate" from ProductTable as "root" where "root".from_z <= dateadd(DAY, -1, \'2015-10-16\') and "root".thru_z > dateadd(DAY, -1, \'2015-10-16\')) as "unionalias_0" order by "businessDate","name"', - 'select "unionalias_0"."businessDate" as "businessDate", "unionalias_0"."name" as "name" from (select "root".name as "name", cast(truncate(DATE\'2015-10-16\') as date) as "businessDate" from ProductTable as "root" where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\' UNION ALL select "root".name as "name", cast(truncate(dateadd(DAY, -1, DATE\'2015-10-16\')) as date) as "businessDate" from ProductTable as "root" where "root".from_z <= dateadd(DAY, -1, DATE\'2015-10-16\') and "root".thru_z > dateadd(DAY, -1, DATE\'2015-10-16\')) as "unionalias_0" order by "businessDate","name"', + 'select "unionalias_0"."businessDate" as "businessDate", "unionalias_0"."name" as "name" from (select "root".name as "name", cast(truncate(\'2015-10-16\') as date) as "businessDate" from ProductTable as "root" where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\' UNION ALL select "root".name as "name", cast(truncate(dateadd(DAY, -1, \'2015-10-16\')) as date) as "businessDate" from ProductTable as "root" where "root".from_z <= dateadd(DAY, -1, \'2015-10-16\') and "root".thru_z > dateadd(DAY, -1, \'2015-10-16\')) as "unionalias_0" order by "businessDate","name"', + 'select "unionalias_0"."businessDate" as "businessDate", "unionalias_0"."name" as "name" from (select "root".name as "name", cast(truncate(DATE\'2015-10-16\') as date) as "businessDate" from ProductTable as "root" where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\' UNION ALL select "root".name as "name", cast(truncate(dateadd(DAY, -1, DATE\'2015-10-16\')) as date) as "businessDate" from ProductTable as "root" where "root".from_z <= dateadd(DAY, -1, DATE\'2015-10-16\') and "root".thru_z > dateadd(DAY, -1, DATE\'2015-10-16\')) as "unionalias_0" order by "businessDate","name"', $result->sqlRemoveFormatting() ); } @@ -1219,4 +1222,4 @@ function <> meta::relational::tests::milestoning::businessdate::testC function <> meta::relational::tests::milestoning::businessdate::myGetAllProduct(d:Date[1]):Product[*] { Product.all($d) -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testBusinessSnapshotMilestoning.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testBusinessSnapshotMilestoning.pure index eb1aa91a997..c451f3966c0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testBusinessSnapshotMilestoning.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testBusinessSnapshotMilestoning.pure @@ -13,10 +13,13 @@ // limitations under the License. ###Pure +import meta::core::runtime::*; import meta::relational::functions::sqlQueryToString::h2::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::milestoning::*; import meta::relational::functions::asserts::*; @@ -24,8 +27,8 @@ function <> meta::relational::tests::milestoning::snapshot::testQuery { let result = execute(|Product.all(%2015-08-26)->filter(p|$p.name == 'ProductName1')->project([p|$p.id],['id']), businessSnapshotMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate = \'2015-08-26\'', - 'select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate = DATE\'2015-08-26\'', + 'select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate = \'2015-08-26\'', + 'select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate = DATE\'2015-08-26\'', $result->sqlRemoveFormatting() ); assertEquals(2, $result.values.rows.get('id')); @@ -35,8 +38,8 @@ function <> meta::relational::tests::milestoning::snapshot::testQuery { let result = execute(|Order.all()->filter(o|$o.product(%2015-08-26).name == 'ProductName1')->project([o|$o.product(%2015-08-26).id],['id']), businessSnapshotMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "producttablewithbusinesssnapshotmilestoning_0".id as "id" from OrderTable as "root" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("root".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2015-08-26\') where "producttablewithbusinesssnapshotmilestoning_0".name = \'ProductName1\'', - 'select "producttablewithbusinesssnapshotmilestoning_0".id as "id" from OrderTable as "root" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("root".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2015-08-26\') where "producttablewithbusinesssnapshotmilestoning_0".name = \'ProductName1\'', + 'select "producttablewithbusinesssnapshotmilestoning_0".id as "id" from OrderTable as "root" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("root".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2015-08-26\') where "producttablewithbusinesssnapshotmilestoning_0".name = \'ProductName1\'', + 'select "producttablewithbusinesssnapshotmilestoning_0".id as "id" from OrderTable as "root" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("root".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2015-08-26\') where "producttablewithbusinesssnapshotmilestoning_0".name = \'ProductName1\'', $result->sqlRemoveFormatting() ); assertEquals(2, $result.values.rows.get('id')); @@ -46,8 +49,8 @@ function <> meta::relational::tests::milestoning::snapshot::testQuery { let result = execute(|Product.all(%2015-08-26)->filter(p|$p.classification.description == 'STOCK DESC-V2')->project([p|$p.classification.type],['type']), businessSnapshotMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2015-08-26\') where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\' and "root".snapshotDate = \'2015-08-26\'', - 'select "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2015-08-26\') where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\' and "root".snapshotDate = DATE\'2015-08-26\'', + 'select "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2015-08-26\') where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\' and "root".snapshotDate = \'2015-08-26\'', + 'select "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2015-08-26\') where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\' and "root".snapshotDate = DATE\'2015-08-26\'', $result->sqlRemoveFormatting() ); assertEquals('STOCK', $result.values.rows.get('type')); @@ -57,8 +60,8 @@ function <> meta::relational::tests::milestoning::snapshot::testQuery { let result = execute(|Order.all()->filter(o|$o.product(%2015-08-26).classification.description == 'STOCK DESC-V2')->project([o|$o.product(%2015-08-26).classification.type],['type']), businessSnapshotMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "productclassificationtablewithbusinesssnapshotmilestoning_1".type as "type" from OrderTable as "root" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("root".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2015-08-26\') left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("producttablewithbusinesssnapshotmilestoning_0".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2015-08-26\') left outer join (select "productclassificationtablewithbusinesssnapshotmilestoning_2".type as type from ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_2" where "productclassificationtablewithbusinesssnapshotmilestoning_2".snapshotDate = \'2015-08-26\') as "productclassificationtablewithbusinesssnapshotmilestoning_1" on ("producttablewithbusinesssnapshotmilestoning_0".type = "productclassificationtablewithbusinesssnapshotmilestoning_1".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\'', - 'select "productclassificationtablewithbusinesssnapshotmilestoning_1".type as "type" from OrderTable as "root" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("root".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2015-08-26\') left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("producttablewithbusinesssnapshotmilestoning_0".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2015-08-26\') left outer join (select "productclassificationtablewithbusinesssnapshotmilestoning_2".type as type from ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_2" where "productclassificationtablewithbusinesssnapshotmilestoning_2".snapshotDate = DATE\'2015-08-26\') as "productclassificationtablewithbusinesssnapshotmilestoning_1" on ("producttablewithbusinesssnapshotmilestoning_0".type = "productclassificationtablewithbusinesssnapshotmilestoning_1".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\'', + 'select "productclassificationtablewithbusinesssnapshotmilestoning_1".type as "type" from OrderTable as "root" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("root".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2015-08-26\') left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("producttablewithbusinesssnapshotmilestoning_0".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2015-08-26\') left outer join (select "productclassificationtablewithbusinesssnapshotmilestoning_2".type as type from ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_2" where "productclassificationtablewithbusinesssnapshotmilestoning_2".snapshotDate = \'2015-08-26\') as "productclassificationtablewithbusinesssnapshotmilestoning_1" on ("producttablewithbusinesssnapshotmilestoning_0".type = "productclassificationtablewithbusinesssnapshotmilestoning_1".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\'', + 'select "productclassificationtablewithbusinesssnapshotmilestoning_1".type as "type" from OrderTable as "root" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("root".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2015-08-26\') left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("producttablewithbusinesssnapshotmilestoning_0".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2015-08-26\') left outer join (select "productclassificationtablewithbusinesssnapshotmilestoning_2".type as type from ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_2" where "productclassificationtablewithbusinesssnapshotmilestoning_2".snapshotDate = DATE\'2015-08-26\') as "productclassificationtablewithbusinesssnapshotmilestoning_1" on ("producttablewithbusinesssnapshotmilestoning_0".type = "productclassificationtablewithbusinesssnapshotmilestoning_1".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\'', $result->sqlRemoveFormatting() ); assertEquals('STOCK', $result.values.rows.get('type')); @@ -68,8 +71,8 @@ function <> meta::relational::tests::milestoning::snapshot::testUnion { let result = execute(|Product.all(%2015-08-26)->filter(p|$p.name == 'ProductName1')->project([p|$p.id],['id']), businessSnapshotMilestoningUnionMap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionBase"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" as "id" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", "root".id as "pk_0_0", null as "pk_0_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", null as "pk_0_0", "root".id as "pk_0_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionBase" where "unionBase"."ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname" = \'ProductName1\'', - 'select "unionBase"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" as "id" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", "root".id as "pk_0_0", null as "pk_0_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", null as "pk_0_0", "root".id as "pk_0_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\') as "unionBase" where "unionBase"."ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname" = \'ProductName1\'', + 'select "unionBase"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" as "id" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", "root".id as "pk_0_0", null as "pk_0_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", null as "pk_0_0", "root".id as "pk_0_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionBase" where "unionBase"."ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname" = \'ProductName1\'', + 'select "unionBase"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" as "id" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", "root".id as "pk_0_0", null as "pk_0_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", null as "pk_0_0", "root".id as "pk_0_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\') as "unionBase" where "unionBase"."ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname" = \'ProductName1\'', $result->sqlRemoveFormatting() ); assertEquals([2, 2], $result.values.rows.get('id')); @@ -79,8 +82,8 @@ function <> meta::relational::tests::milestoning::snapshot::testUnion { let result = execute(|Order.all()->filter(o|$o.product(%2015-08-26).name == 'ProductName1')->project([o|$o.product(%2015-08-26).id],['id']), businessSnapshotMilestoningUnionMap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionalias_1"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" as "id" from (select "root".prodFk as prodFk_0, null as prodFk_1, "root".id as "pk_0_0", null as "pk_0_1" from OrderTable as "root" UNION ALL select null as prodFk_0, "root".prodFk as prodFk_1, null as "pk_0_0", "root".id as "pk_0_1" from OrderTable as "root") as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".id as id, "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".id as id, "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = \'2015-08-26\' or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname" = \'ProductName1\'', - 'select "unionalias_1"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" as "id" from (select "root".prodFk as prodFk_0, null as prodFk_1, "root".id as "pk_0_0", null as "pk_0_1" from OrderTable as "root" UNION ALL select null as prodFk_0, "root".prodFk as prodFk_1, null as "pk_0_0", "root".id as "pk_0_1" from OrderTable as "root") as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".id as id, "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".id as id, "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\') as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = DATE\'2015-08-26\' or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname" = \'ProductName1\'', + 'select "unionalias_1"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" as "id" from (select "root".prodFk as prodFk_0, null as prodFk_1, "root".id as "pk_0_0", null as "pk_0_1" from OrderTable as "root" UNION ALL select null as prodFk_0, "root".prodFk as prodFk_1, null as "pk_0_0", "root".id as "pk_0_1" from OrderTable as "root") as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".id as id, "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".id as id, "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = \'2015-08-26\' or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname" = \'ProductName1\'', + 'select "unionalias_1"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" as "id" from (select "root".prodFk as prodFk_0, null as prodFk_1, "root".id as "pk_0_0", null as "pk_0_1" from OrderTable as "root" UNION ALL select null as prodFk_0, "root".prodFk as prodFk_1, null as "pk_0_0", "root".id as "pk_0_1" from OrderTable as "root") as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".id as id, "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".id as id, "root".name as "ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\') as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = DATE\'2015-08-26\' or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductTableWithBusinessSnapshotMilestoningname_ProductTableWithBusinessSnapshotMilestoningname" = \'ProductName1\'', $result->sqlRemoveFormatting() ); assertEquals([2, 2, 2, 2], $result.values.rows.get('id')); @@ -90,8 +93,8 @@ function <> meta::relational::tests::milestoning::snapshot::testUnion { let result = execute(|Product.all(%2015-08-26)->filter(p|$p.classification.description == 'STOCK DESC-V2')->project([p|$p.classification.type],['type']), businessSnapshotMilestoningUnionMap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type_0, null as type_1, "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", null as type_0, "root".type as type_1, null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = \'2015-08-26\' or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', - 'select "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type_0, null as type_1, "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", null as type_0, "root".type as type_1, null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\') as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\') as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = DATE\'2015-08-26\' or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', + 'select "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type_0, null as type_1, "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", null as type_0, "root".type as type_1, null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = \'2015-08-26\' or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', + 'select "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type_0, null as type_1, "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", null as type_0, "root".type as type_1, null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\') as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\') as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = DATE\'2015-08-26\' or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', $result->sqlRemoveFormatting() ); assertEquals(['STOCK', 'STOCK', 'STOCK', 'STOCK'], $result.values.rows.get('type')); @@ -101,19 +104,19 @@ function <> meta::relational::tests::milestoning::snapshot::testUnion { let result = execute(|Order.all()->filter(o|$o.product(%2015-08-26).classification.description == 'STOCK DESC-V2')->project([o|$o.product(%2015-08-26).classification.type],['type']), businessSnapshotMilestoningUnionMap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionalias_3"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".prodFk as prodFk_0, null as prodFk_1, "root".id as "pk_0_0", null as "pk_0_1" from OrderTable as "root" UNION ALL select null as prodFk_0, "root".prodFk as prodFk_1, null as "pk_0_0", "root".id as "pk_0_1" from OrderTable as "root") as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".id as id, "root".type as type_0, null as type_1 from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".id as id, null as type_0, "root".type as type_1 from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = \'2015-08-26\' or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionalias_2" on (("unionalias_1".type_0 = "unionalias_2".type or "unionalias_1".type_1 = "unionalias_2".type) and (coalesce("unionalias_2"."snapshotDate_0", "unionalias_2"."snapshotDate_1") = \'2015-08-26\' or coalesce("unionalias_2"."snapshotDate_0", "unionalias_2"."snapshotDate_1") is null)) left outer join (select "unionalias_4".type as type, "unionalias_4"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionalias_4" where coalesce("unionalias_4"."snapshotDate_0", "unionalias_4"."snapshotDate_1") = \'2015-08-26\' or coalesce("unionalias_4"."snapshotDate_0", "unionalias_4"."snapshotDate_1") is null) as "unionalias_3" on ("unionalias_1".type_0 = "unionalias_3".type or "unionalias_1".type_1 = "unionalias_3".type) where "unionalias_2"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', - 'select "unionalias_3"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".prodFk as prodFk_0, null as prodFk_1, "root".id as "pk_0_0", null as "pk_0_1" from OrderTable as "root" UNION ALL select null as prodFk_0, "root".prodFk as prodFk_1, null as "pk_0_0", "root".id as "pk_0_1" from OrderTable as "root") as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".id as id, "root".type as type_0, null as type_1 from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".id as id, null as type_0, "root".type as type_1 from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\') as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = DATE\'2015-08-26\' or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\') as "unionalias_2" on (("unionalias_1".type_0 = "unionalias_2".type or "unionalias_1".type_1 = "unionalias_2".type) and (coalesce("unionalias_2"."snapshotDate_0", "unionalias_2"."snapshotDate_1") = DATE\'2015-08-26\' or coalesce("unionalias_2"."snapshotDate_0", "unionalias_2"."snapshotDate_1") is null)) left outer join (select "unionalias_4".type as type, "unionalias_4"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\') as "unionalias_4" where coalesce("unionalias_4"."snapshotDate_0", "unionalias_4"."snapshotDate_1") = DATE\'2015-08-26\' or coalesce("unionalias_4"."snapshotDate_0", "unionalias_4"."snapshotDate_1") is null) as "unionalias_3" on ("unionalias_1".type_0 = "unionalias_3".type or "unionalias_1".type_1 = "unionalias_3".type) where "unionalias_2"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', + 'select "unionalias_3"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".prodFk as prodFk_0, null as prodFk_1, "root".id as "pk_0_0", null as "pk_0_1" from OrderTable as "root" UNION ALL select null as prodFk_0, "root".prodFk as prodFk_1, null as "pk_0_0", "root".id as "pk_0_1" from OrderTable as "root") as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".id as id, "root".type as type_0, null as type_1 from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".id as id, null as type_0, "root".type as type_1 from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = \'2015-08-26\' or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionalias_2" on (("unionalias_1".type_0 = "unionalias_2".type or "unionalias_1".type_1 = "unionalias_2".type) and (coalesce("unionalias_2"."snapshotDate_0", "unionalias_2"."snapshotDate_1") = \'2015-08-26\' or coalesce("unionalias_2"."snapshotDate_0", "unionalias_2"."snapshotDate_1") is null)) left outer join (select "unionalias_4".type as type, "unionalias_4"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2015-08-26\') as "unionalias_4" where coalesce("unionalias_4"."snapshotDate_0", "unionalias_4"."snapshotDate_1") = \'2015-08-26\' or coalesce("unionalias_4"."snapshotDate_0", "unionalias_4"."snapshotDate_1") is null) as "unionalias_3" on ("unionalias_1".type_0 = "unionalias_3".type or "unionalias_1".type_1 = "unionalias_3".type) where "unionalias_2"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', + 'select "unionalias_3"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".prodFk as prodFk_0, null as prodFk_1, "root".id as "pk_0_0", null as "pk_0_1" from OrderTable as "root" UNION ALL select null as prodFk_0, "root".prodFk as prodFk_1, null as "pk_0_0", "root".id as "pk_0_1" from OrderTable as "root") as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".id as id, "root".type as type_0, null as type_1 from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".id as id, null as type_0, "root".type as type_1 from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\') as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = DATE\'2015-08-26\' or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\') as "unionalias_2" on (("unionalias_1".type_0 = "unionalias_2".type or "unionalias_1".type_1 = "unionalias_2".type) and (coalesce("unionalias_2"."snapshotDate_0", "unionalias_2"."snapshotDate_1") = DATE\'2015-08-26\' or coalesce("unionalias_2"."snapshotDate_0", "unionalias_2"."snapshotDate_1") is null)) left outer join (select "unionalias_4".type as type, "unionalias_4"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2015-08-26\') as "unionalias_4" where coalesce("unionalias_4"."snapshotDate_0", "unionalias_4"."snapshotDate_1") = DATE\'2015-08-26\' or coalesce("unionalias_4"."snapshotDate_0", "unionalias_4"."snapshotDate_1") is null) as "unionalias_3" on ("unionalias_1".type_0 = "unionalias_3".type or "unionalias_1".type_1 = "unionalias_3".type) where "unionalias_2"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', $result->sqlRemoveFormatting() ); assertEquals(['STOCK', 'STOCK', 'STOCK', 'STOCK', 'STOCK', 'STOCK', 'STOCK', 'STOCK', 'STOCK', 'STOCK', 'STOCK', 'STOCK', 'STOCK', 'STOCK', 'STOCK', 'STOCK'], $result.values.rows.get('type')); } function <> meta::relational::tests::milestoning::snapshot::testAllVersionInRangeForBuisnessSnapshotMilestoning():Boolean[1] -{ +{ let result = execute(|Product.allVersionsInRange(%2012-1-1, %2016-1-1)->filter(p|$p.name == 'ProductName1')->project([p|$p.id],['id']), businessSnapshotMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate >= \'2012-01-01\' and "root".snapshotDate <= \'2016-01-01\'', - 'select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate >= DATE\'2012-01-01\' and "root".snapshotDate <= DATE\'2016-01-01\'', + 'select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate >= \'2012-01-01\' and "root".snapshotDate <= \'2016-01-01\'', + 'select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate >= DATE\'2012-01-01\' and "root".snapshotDate <= DATE\'2016-01-01\'', $result->sqlRemoveFormatting() ); assertEquals(2, $result.values.rows.get('id')); @@ -123,8 +126,8 @@ function <> meta::relational::tests::milestoning::snapshot::testBuisn { let result = execute(|Product.allVersions()->filter(x|$x.classificationAllVersionsInRange(%2015-1-1, %2015-9-1).type == 'STOCK')->project([x|$x.classificationAllVersionsInRange(%2015-1-1, %2015-9-1).type], ['type'])->distinct(), businessSnapshotMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select distinct "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate >= \'2015-01-01\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate <= \'2015-09-01\') where "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'STOCK\'', - 'select distinct "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate >= DATE\'2015-01-01\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate <= DATE\'2015-09-01\') where "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'STOCK\'', + 'select distinct "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate >= \'2015-01-01\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate <= \'2015-09-01\') where "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'STOCK\'', + 'select distinct "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate >= DATE\'2015-01-01\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate <= DATE\'2015-09-01\') where "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'STOCK\'', $result->sqlRemoveFormatting() ); assertSameElements(['STOCK'], $result.values.rows.getString('type')); @@ -134,8 +137,8 @@ function <> meta::relational::tests::milestoning::rangeQuery::testBui { let result = execute(|Product.allVersionsInRange(%2015-1-1, %2015-9-1)->filter(x|$x.classificationAllVersionsInRange(%2015-1-1, %2015-9-1).type == 'STOCK')->project([x|$x.classificationAllVersionsInRange(%2015-1-1, %2015-9-1).type], ['type'])->distinct(), businessSnapshotMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select distinct "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate >= \'2015-01-01\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate <= \'2015-09-01\') where "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'STOCK\' and "root".snapshotDate >= \'2015-01-01\' and "root".snapshotDate <= \'2015-09-01\'', - 'select distinct "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate >= DATE\'2015-01-01\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate <= DATE\'2015-09-01\') where "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'STOCK\' and "root".snapshotDate >= DATE\'2015-01-01\' and "root".snapshotDate <= DATE\'2015-09-01\'', + 'select distinct "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate >= \'2015-01-01\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate <= \'2015-09-01\') where "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'STOCK\' and "root".snapshotDate >= \'2015-01-01\' and "root".snapshotDate <= \'2015-09-01\'', + 'select distinct "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate >= DATE\'2015-01-01\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate <= DATE\'2015-09-01\') where "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'STOCK\' and "root".snapshotDate >= DATE\'2015-01-01\' and "root".snapshotDate <= DATE\'2015-09-01\'', $result->sqlRemoveFormatting() ); assertSameElements(['STOCK'], $result.values.rows.getString('type')); @@ -145,8 +148,8 @@ function <> meta::relational::tests::milestoning::snapshot::testDateT { let result = execute(|Product.all(%2015-08-26T02:00:00)->filter(p|$p.name == 'ProductName1')->project([p|$p.id],['id']), businessSnapshotMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)', - 'select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)', + 'select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)', + 'select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)', $result->sqlRemoveFormatting() ); assertEquals(2, $result.values.rows.get('id')); @@ -156,8 +159,8 @@ function <> meta::relational::tests::milestoning::snapshot::testDateT { let result = execute({|let dt = '2015-08-26T02:00:00'->parseDate(); Product.all($dt)->filter(p|$p.name == 'ProductName1')->project([p|$p.id],['id']);}, businessSnapshotMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)', - 'select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)', + 'select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)', + 'select "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".name = \'ProductName1\' and "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)', $result->sqlRemoveFormatting() ); assertEquals(2, $result.values.rows.get('id')); @@ -167,8 +170,8 @@ function <> meta::relational::tests::milestoning::snapshot::testDateT { let result = execute(|Product.all(%2015-08-26T02:00:00)->filter(p|$p.classification.description == 'STOCK DESC-V2')->project([p|$p.classification.type],['type']), businessSnapshotMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)) where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\' and "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)', - 'select "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)) where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\' and "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)', + 'select "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)) where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\' and "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)', + 'select "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)) where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\' and "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)', $result->sqlRemoveFormatting() ); assertEquals('STOCK', $result.values.rows.get('type')); @@ -178,8 +181,8 @@ function <> meta::relational::tests::milestoning::snapshot::testDateT { let result = execute({|let dt = '2015-08-26T02:00:00'->parseDate(); Product.all($dt)->filter(p|$p.classification.description == 'STOCK DESC-V2')->project([p|$p.classification.type],['type']);}, businessSnapshotMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)) where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\' and "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)', - 'select "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)) where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\' and "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)', + 'select "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)) where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\' and "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)', + 'select "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "type" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)) where "productclassificationtablewithbusinesssnapshotmilestoning_0".type_description = \'STOCK DESC-V2\' and "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)', $result->sqlRemoveFormatting() ); assertEquals('STOCK', $result.values.rows.get('type')); @@ -189,8 +192,8 @@ function <> meta::relational::tests::milestoning::snapshot::testDateT { let result = execute(|Product.all(%2015-08-26T02:00:00)->filter(p|$p.classification.description == 'STOCK DESC-V2')->project([p|$p.classification.type],['type']), businessSnapshotMilestoningUnionMap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type_0, null as type_1, "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", null as type_0, "root".type as type_1, null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)) as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)) as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = cast(truncate(\'2015-08-26 02:00:00\') as date) or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', - 'select "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type_0, null as type_1, "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", null as type_0, "root".type as type_1, null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)) as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)) as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date) or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', + 'select "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type_0, null as type_1, "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", null as type_0, "root".type as type_1, null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)) as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)) as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = cast(truncate(\'2015-08-26 02:00:00\') as date) or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', + 'select "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type_0, null as type_1, "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", null as type_0, "root".type as type_1, null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)) as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)) as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date) or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', $result->sqlRemoveFormatting() ); assertEquals(['STOCK', 'STOCK', 'STOCK', 'STOCK'], $result.values.rows.get('type')); @@ -200,8 +203,8 @@ function <> meta::relational::tests::milestoning::snapshot::testDateT { let result = execute({|let dt = '2015-08-26T02:00:00'->parseDate(); Product.all($dt)->filter(p|$p.classification.description == 'STOCK DESC-V2')->project([p|$p.classification.type],['type']);}, businessSnapshotMilestoningUnionMap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type_0, null as type_1, "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", null as type_0, "root".type as type_1, null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)) as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)) as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = cast(truncate(\'2015-08-26 02:00:00\') as date) or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', - 'select "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type_0, null as type_1, "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", null as type_0, "root".type as type_1, null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)) as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)) as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date) or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', + 'select "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type_0, null as type_1, "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", null as type_0, "root".type as type_1, null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)) as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(\'2015-08-26 02:00:00\') as date)) as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = cast(truncate(\'2015-08-26 02:00:00\') as date) or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', + 'select "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" as "type" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type_0, null as type_1, "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", null as type_0, "root".type as type_1, null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)) as "unionBase" left outer join (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date) UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".type as type, "root".type_description as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description", "root".type as "ProductClassificationTableWithBusinessSnapshotMilestoningtype_ProductClassificationTableWithBusinessSnapshotMilestoningtype" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date)) as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type) and (coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") = cast(truncate(TIMESTAMP\'2015-08-26 02:00:00\') as date) or coalesce("unionalias_1"."snapshotDate_0", "unionalias_1"."snapshotDate_1") is null)) where "unionalias_1"."ProductClassificationTableWithBusinessSnapshotMilestoningtype_description_ProductClassificationTableWithBusinessSnapshotMilestoningtype_description" = \'STOCK DESC-V2\'', $result->sqlRemoveFormatting() ); assertEquals(['STOCK', 'STOCK', 'STOCK', 'STOCK'], $result.values.rows.get('type')); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testGetAllForEachDate.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testGetAllForEachDate.pure index 9809e77d8d8..0da46b6c41e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testGetAllForEachDate.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testGetAllForEachDate.pure @@ -17,19 +17,22 @@ import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::mapping::*; import meta::relational::functions::asserts::*; import meta::relational::tests::csv::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::tests::milestoning::businessdate::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::functions::collection::*; import meta::relational::metamodel::execute::*; import meta::relational::tests::milestoning::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::milestoning::*; function <> meta::relational::tests::milestoning::temporalDateProjectionQuery::testProcessingTemporalQueryWithInnerQuery():Boolean[1] { let query = {|Product->getAllForEachDate(Calendar.all()->filter(x|($x.calendarDate > %2020-01-02) && ($x.calendarDate < %2020-02-02)).calendarDate)->filter(x|$x.businessDate > %2020-01-07)->project([col(x | $x.name, 'name'),col(x|$x.businessDate,'date')])}; - let result = execute($query,Calendarmap,^Runtime(connections=meta::relational::tests::milestoning::initDatabaseForCalendar()), meta::relational::extension::relationalExtensions()); + let result = execute($query,Calendarmap,^Runtime(connectionStores=meta::relational::tests::milestoning::initDatabaseForCalendar()), meta::relational::extension::relationalExtensions()); let expectedValue = 'name,date\n'+ 'ProductName,2020-01-08\n'+ 'ProductName2,2020-01-08\n'+ @@ -54,7 +57,7 @@ function <> meta::relational::tests::milestoning:: function <> meta::relational::tests::milestoning::temporalDateProjectionQuery::testProcessingTemporalQueryWithInclusivityBehaviour():Boolean[1] { let query = {|Product->getAllForEachDate(Calendar.all()->filter(x|($x.calendarDate > %2015-10-13) && ($x.calendarDate < %2015-10-19)).calendarDate)->project([col(x | $x.name, 'name'),col(x|$x.businessDate,'date')])}; - let result = execute($query,Calendarmap,^Runtime(connections=meta::relational::tests::milestoning::initDatabaseForCalendar()), meta::relational::extension::relationalExtensions()); + let result = execute($query,Calendarmap,^Runtime(connectionStores=meta::relational::tests::milestoning::initDatabaseForCalendar()), meta::relational::extension::relationalExtensions()); let expectedValue = 'name,date\n'+ 'ProductName1,2015-10-15\n'+ 'ProductName3,2015-10-15\n'+ @@ -69,7 +72,7 @@ function <> meta::relational::tests::milestoning:: function <> meta::relational::tests::milestoning::temporalDateProjectionQuery::testProcessingTemporalQueryWithInnerQueryWithFilter():Boolean[1] { let query = {|Product->getAllForEachDate(Calendar.all()->filter(x|($x.calendarDate > %2020-01-02) && ($x.calendarDate < %2020-01-15)).calendarDate)->filter(x|$x.name == 'ProductName3')->project([col(x | $x.name, 'name'),col(x|$x.businessDate,'date')])}; - let result = execute($query,Calendarmap,^Runtime(connections=meta::relational::tests::milestoning::initDatabaseForCalendar()), meta::relational::extension::relationalExtensions()); + let result = execute($query,Calendarmap,^Runtime(connectionStores=meta::relational::tests::milestoning::initDatabaseForCalendar()), meta::relational::extension::relationalExtensions()); let expectedValue = 'name,date\n'+ 'ProductName3,2020-01-03\n'+ 'ProductName3,2020-01-04\n'+ @@ -89,7 +92,7 @@ function <> meta::relational::tests::milestoning:: function <> meta::relational::tests::milestoning::temporalDateProjectionQuery::testProcessingTemporalQueryWithInnerQueryWithQualifiedProperty():Boolean[1] { let query = {|Product->getAllForEachDate(Calendar.all()->filter(x|($x.calendarDate > %2020-01-02) && ($x.calendarDate < %2020-02-02)).calendarDate)->filter(x|$x.classification($x.businessDate).type == 'STOCK')->project([col(x | $x.classification($x.businessDate).type,'type'),col(x|$x.classification($x.businessDate).description, 'type_description'),col(x|$x.businessDate,'date')])->distinct()->sort(['type_description','date'])}; - let result = execute($query,Calendarmap,^Runtime(connections=meta::relational::tests::milestoning::initDatabaseForCalendar()), meta::relational::extension::relationalExtensions()); + let result = execute($query,Calendarmap,^Runtime(connectionStores=meta::relational::tests::milestoning::initDatabaseForCalendar()), meta::relational::extension::relationalExtensions()); let expectedValue = 'type,type_description,date\n'+ 'STOCK,STOCK DESC-V1,2020-01-03\n'+ 'STOCK,STOCK DESC-V1,2020-01-04\n'+ @@ -110,7 +113,7 @@ function <> meta::relational::tests::milestoning:: function <> meta::relational::tests::milestoning::temporalDateProjectionQuery::testProcessingTemporalQueryWithInnerQueryOnDeepProperty():Boolean[1] { let query = {|Product->getAllForEachDate(Calendar.all()->filter(x|($x.calendarDate > %2020-01-02) && ($x.calendarDate < %2020-02-02)).calendarDate)->filter(x|$x.classification($x.businessDate).type == 'STOCK')->project([col(x | $x.classification($x.businessDate).exchange.name, 'name'),col(x|$x.classification($x.businessDate).description,'type'),col(x|$x.businessDate,'date')])->distinct()->sort(['date','type'])}; - let result = execute($query,Calendarmap,^Runtime(connections=meta::relational::tests::milestoning::initDatabaseForCalendar()), meta::relational::extension::relationalExtensions()); + let result = execute($query,Calendarmap,^Runtime(connectionStores=meta::relational::tests::milestoning::initDatabaseForCalendar()), meta::relational::extension::relationalExtensions()); let expectedValue = 'name,type,date\n'+ 'LNSE,STOCK DESC-V1,2020-01-03\n'+ 'LNSE,STOCK DESC-V4,2020-01-03\n'+ @@ -131,7 +134,7 @@ function <> meta::relational::tests::milestoning:: function <> meta::relational::tests::milestoning::temporalDateProjectionQuery::testProcessingTemporalQueryMilestonedThisBusinessDatesInProject():Boolean[1] { let query = {|Product->getAllForEachDate(Calendar.all()->filter(x|($x.calendarDate > %2020-01-02) && ($x.calendarDate < %2020-01-07)).calendarDate)->filter(x|$x.classification($x.businessDate).type == 'STOCK')->project([col(x | $x.classificationTypeStr,'type'),col(x|$x.classification($x.businessDate).description,'description'),col(x|$x.businessDate,'date')])->distinct()->sort(['date','description'])}; - let result = execute($query,Calendarmap,^Runtime(connections=meta::relational::tests::milestoning::initDatabaseForCalendar()), meta::relational::extension::relationalExtensions()); + let result = execute($query,Calendarmap,^Runtime(connectionStores=meta::relational::tests::milestoning::initDatabaseForCalendar()), meta::relational::extension::relationalExtensions()); let expectedValue = 'type,description,date\n'+ 'STOCK,STOCK DESC-V1,2020-01-03\n'+ 'STOCK,STOCK DESC-V4,2020-01-03\n'+ @@ -144,7 +147,7 @@ function <> meta::relational::tests::milestoning:: function <> meta::relational::tests::milestoning::temporalDateProjectionQuery::testProcessingTemporalQueryInPosition1InQualfiedPropertySequence():Boolean[1] { let query = {|Product->getAllForEachDate(Calendar.all()->filter(x|($x.calendarDate > %2020-01-02) && ($x.calendarDate < %2020-01-07)).calendarDate)->filter(x|$x.classification($x.businessDate).type == 'STOCK')->project([col(x | $x.classificationExchangeName1,'type'),col(x|$x.classification($x.businessDate).description,'description'),col(x|$x.businessDate,'date')])->distinct()->sort(['date','description'])}; - let result = execute($query,Calendarmap,^Runtime(connections=meta::relational::tests::milestoning::initDatabaseForCalendar()), meta::relational::extension::relationalExtensions()); + let result = execute($query,Calendarmap,^Runtime(connectionStores=meta::relational::tests::milestoning::initDatabaseForCalendar()), meta::relational::extension::relationalExtensions()); let expectedValue = 'type,description,date\n'+ 'LNSE,STOCK DESC-V1,2020-01-03\n'+ 'LNSE,STOCK DESC-V4,2020-01-03\n'+ @@ -158,7 +161,7 @@ function <> meta::relational::tests::milestoning:: function <> meta::relational::tests::milestoning::temporalDateProjectionQuery::testProcessingTemporalQueryWithFilterInMapping():Boolean[1] { let query = {|StockProduct->getAllForEachDate(Calendar.all()->filter(x|($x.calendarDate > %2020-01-02) && ($x.calendarDate <%2020-01-07)).calendarDate)->filter(x|$x.classification($x.businessDate).exchange.name == 'LNSE')->project([col(x | $x.classificationExchangeName1,'type'),col(x|$x.classification($x.businessDate).description,'description'),col(x|$x.businessDate,'date')])->distinct()->sort(['date','description'])}; - let result = execute($query,Calendarmap,^Runtime(connections=meta::relational::tests::milestoning::initDatabaseForCalendar()), meta::relational::extension::relationalExtensions()); + let result = execute($query,Calendarmap,^Runtime(connectionStores=meta::relational::tests::milestoning::initDatabaseForCalendar()), meta::relational::extension::relationalExtensions()); let expectedValue = 'type,description,date\n'+ 'LNSE,STOCK DESC-V1,2020-01-03\n'+ 'LNSE,STOCK DESC-V4,2020-01-03\n'+ @@ -171,7 +174,7 @@ function <> meta::relational::tests::milestoning:: function <> meta::relational::tests::milestoning::temporalDateProjectionQuery::testProcessingTemporalQueryWithAssociationProperty():Boolean[1] { let query = {|Product->getAllForEachDate(Calendar.all()->filter(x|($x.calendarDate > %2020-01-02) && ($x.calendarDate < %2020-02-02)).calendarDate)->filter(p|$p.orders->exists(o|$o.id == 1))->project([col(x|$x.businessDate,'date')])}; - let result = execute($query,Calendarmap,^Runtime(connections=meta::relational::tests::milestoning::initDatabaseForCalendar()), meta::relational::extension::relationalExtensions()); + let result = execute($query,Calendarmap,^Runtime(connectionStores=meta::relational::tests::milestoning::initDatabaseForCalendar()), meta::relational::extension::relationalExtensions()); let expectedValue = 'date\n'+ '2020-01-03\n'+ '2020-01-04\n'+ @@ -186,7 +189,7 @@ function <> meta::relational::tests::milestoning:: function <> meta::relational::tests::milestoning::temporalDateProjectionQuery::testProcessingTemporalModelQueryOnRoot():Boolean[1] { let query = {|Certification->getAllForEachDate(Calendar.all()->filter(x|($x.calendarDate > %2020-01-02) && ($x.calendarDate < %2020-01-07)).calendarDate)->filter(x|$x.name == 'APCE' || $x.name == 'SRCE')->project([x|$x.name, x|$x.processingDate], ['name', 'date'])->distinct()}; - let result = execute($query,Calendarmap,^Runtime(connections=meta::relational::tests::milestoning::initDatabaseForCalendar()), meta::relational::extension::relationalExtensions()); + let result = execute($query,Calendarmap,^Runtime(connectionStores=meta::relational::tests::milestoning::initDatabaseForCalendar()), meta::relational::extension::relationalExtensions()); let expectedValue = 'name,date\n'+ 'SRCE,2020-01-03\n'+ 'SRCE,2020-01-04\n'; @@ -197,7 +200,7 @@ function <> meta::relational::tests::milestoning:: function <> meta::relational::tests::milestoning::temporalDateProjectionQuery::testProcessingTemporalModelOnPropertyWithPropogatedDate():Boolean[1] { let query = {|Certification->getAllForEachDate(Calendar.all()->filter(x|($x.calendarDate > %2020-01-02) && ($x.calendarDate < %2020-01-07)).calendarDate)->filter(x|$x.trader($x.processingDate).kerberos == 'ggekko')->project([x|$x.trader($x.processingDate).kerberos, x|$x.processingDate], ['kerberos', 'date'])}; - let result = execute($query,Calendarmap,^Runtime(connections=meta::relational::tests::milestoning::initDatabaseForCalendar()), meta::relational::extension::relationalExtensions()); + let result = execute($query,Calendarmap,^Runtime(connectionStores=meta::relational::tests::milestoning::initDatabaseForCalendar()), meta::relational::extension::relationalExtensions()); let expectedValue = 'kerberos,date\n'+ 'ggekko,2020-01-03\n'+ 'ggekko,2020-01-04\n'; @@ -211,10 +214,12 @@ function <> meta::relational::tests::milestoning:: // assertSameSQL(); // } -function meta::relational::tests::milestoning::initDatabaseForCalendar():TestDatabaseConnection[1] +function meta::relational::tests::milestoning::initDatabaseForCalendar():ConnectionStore[1] { - let connection = ^TestDatabaseConnection(element = Calendardb, type = DatabaseType.H2); - + + let connection = ^TestDatabaseConnection(type = DatabaseType.H2); + let connectionStore = ^ConnectionStore(element = Calendardb,connection=$connection); + executeInDb('drop table if exists CalendarTable;',$connection); executeInDb('create table CalendarTable (calendar_date DATE PRIMARY KEY, quarter_number INT)',$connection); executeInDb('insert into CalendarTable values(\'2020-01-01\', 1);',$connection); @@ -285,25 +290,25 @@ function meta::relational::tests::milestoning::initDatabaseForCalendar():TestDat executeInDb('insert into CalendarTable values(\'2015-10-15\', 2);',$connection); executeInDb('insert into CalendarTable values(\'2015-10-16\', 2);',$connection); executeInDb('insert into CalendarTable values(\'2015-10-17\', 2);',$connection); - + executeInDb('drop table if exists ProductExchangeTable;',$connection); executeInDb('create table ProductExchangeTable (name VARCHAR(200), city VARCHAR(200), from_z TIMESTAMP, thru_z TIMESTAMP);',$connection); executeInDb('insert into ProductExchangeTable values(\'ISE\',\'Dublin\',\'2020-01-09 00:00:00\',\'2020-01-31 00:00:00\');',$connection); executeInDb('insert into ProductExchangeTable values(\'LNSE\',\'London\',\'2015-8-15 00:00:00\',\'9999-12-31 00:00:00\');',$connection); executeInDb('insert into ProductExchangeTable values(\'LNSE\',\'London\',\'2014-1-15 00:00:00\',\'2014-1-16 00:00:00\');',$connection); - + executeInDb('drop table if exists ProductTable;',$connection); executeInDb('create table ProductTable (id Integer, name VARCHAR(200),type VARCHAR(200),exchange VARCHAR(200), referenceSystemName VARCHAR(200), EXTERNALREFERENCESYSTEMNAME VARCHAR(200), classificationSystemId Integer, from_z TIMESTAMP, thru_z TIMESTAMP);',$connection); executeInDb('insert into ProductTable values(1,\'ProductName\',\'STOCK\',\'ISE\', \'SYS1\',\'SYS1\', 1, \'2020-01-01 00:00:00\', \'2020-01-30 00:00:00\');',$connection); executeInDb('insert into ProductTable values(2,\'ProductName1\',\'STOCK\',\'LNSE\', \'SYS1\',\'SYS1\', 1, \'2015-8-26 00:00:00\', \'2015-10-16 00:00:00\');',$connection); executeInDb('insert into ProductTable values(2,\'ProductName2\',\'STOCK\',\'LNSE\', \'SYS1\', \'SYS1\',1, \'2015-10-16 00:00:00\', \'9999-12-31 00:00:00\');',$connection); executeInDb('insert into ProductTable values(3,\'ProductName3\',\'OPTION\',\'ISE\', \'SYS1\', \'SYS1\',1, \'2015-8-26 00:00:00\', \'9999-12-31 00:00:00\');',$connection); - + executeInDb('drop table if exists OrderTable;',$connection); executeInDb('create table OrderTable (orderDate TIMESTAMP, id Integer, prodFk Integer)',$connection); executeInDb('insert into OrderTable values(\'2015-8-26 00:00:00\', 1,1);',$connection); executeInDb('insert into OrderTable values(\'2015-8-26 00:00:00\', 2,2);',$connection); - + executeInDb('drop table if exists ProductClassificationTable;',$connection); executeInDb('create table ProductClassificationTable (type VARCHAR(200),type_description VARCHAR(400),system VARCHAR(200), exchange VARCHAR(200), from_z TIMESTAMP, thru_z TIMESTAMP);',$connection); executeInDb('insert into ProductClassificationTable values(\'STOCK\',\'STOCK DESC-V1\',\'SYS1\', \'LNSE\', \'2020-01-02 00:00:00\', \'2020-01-10 00:00:00\');',$connection); @@ -311,18 +316,18 @@ function meta::relational::tests::milestoning::initDatabaseForCalendar():TestDat executeInDb('insert into ProductClassificationTable values(\'STOCK\',\'STOCK DESC-V3\',\'SYS1\', \'LNSE\', \'2015-9-15 00:00:00\',\'2015-10-17 00:00:00\');',$connection); executeInDb('insert into ProductClassificationTable values(\'STOCK\',\'STOCK DESC-V4\',\'SYS1\', \'LNSE\', \'2015-10-17 00:00:00\',\'9999-12-31 00:00:00\');',$connection); executeInDb('insert into ProductClassificationTable values(\'OPTION\',\'OPTION DESC-V1\',\'SYS1\', \'ISE\', \'2015-1-15 00:00:00\',\'2015-1-16 00:00:00\');',$connection); - + executeInDb('Drop table if exists CertificationTable;', $connection); executeInDb('Create Table CertificationTable(kerberos VARCHAR(20), name VARCHAR(200),in_z TIMESTAMP, out_z TIMESTAMP);', $connection); executeInDb('insert into CertificationTable (kerberos, name, in_z, out_z) values (\'ggekko\', \'SRCE\',\'2020-01-02 00:00:00\',\'2020-01-10 00:00:00\');', $connection); executeInDb('insert into CertificationTable (kerberos, name, in_z, out_z) values (\'ggekko\', \'APCE\',\'2015-9-15 00:00:00\',\'2015-10-17 00:00:00\');', $connection); executeInDb('insert into CertificationTable (kerberos, name, in_z, out_z) values (\'bfox\', \'SRCE\',\'1987-1-1 00:00:00\',\'9999-12-31 00:00:00\');', $connection); - + executeInDb('Drop table if exists TraderTable;', $connection); executeInDb('Create Table TraderTable(kerberos VARCHAR(20),in_z TIMESTAMP, out_z TIMESTAMP);', $connection); executeInDb('insert into TraderTable (kerberos, in_z, out_z) values (\'ggekko\',\'2020-01-01 00:00:00\',\'2020-01-10 00:00:00\');', $connection); executeInDb('insert into TraderTable (kerberos, in_z, out_z) values (\'bfox\',\'2015-1-1 00:00:00\',\'2015-12-31 00:00:00\');', $connection); - $connection; + $connectionStore; } Class meta::relational::tests::milestoning::Calendar{ @@ -330,11 +335,11 @@ Class meta::relational::tests::milestoning::Calendar{ quarterNumberInYear : Integer[1]; } -###Relational +###Relational Database meta::relational::tests::milestoning::Calendardb( - - include meta::relational::tests::milestoning::db - + + include meta::relational::tests::milestoning::db + Table CalendarTable( calendar_date DATE PRIMARY KEY, quarter_number INT @@ -345,9 +350,9 @@ Database meta::relational::tests::milestoning::Calendardb( import meta::relational::tests::milestoning::*; Mapping meta::relational::tests::milestoning::Calendarmap( - - include milestoningmap[db->Calendardb] - + + include milestoningmap[db->Calendardb] + Calendar :Relational{ calendarDate : [Calendardb]CalendarTable.calendar_date, quarterNumberInYear : [Calendardb]CalendarTable.quarter_number diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testInheritanceMappingWithMilestonedTypes.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testInheritanceMappingWithMilestonedTypes.pure index c157c6012cb..1aa879ea6d1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testInheritanceMappingWithMilestonedTypes.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testInheritanceMappingWithMilestonedTypes.pure @@ -16,9 +16,11 @@ import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::milestoning::inheritance::union::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::milestoning::*; @@ -28,8 +30,8 @@ function <> meta::relational::tests::milestoning: let result = execute(|Order.all()->project([o|$o.id, o|$o.product(%2016-9-23).synonymsByType('CUSIP').createActivity.createdBy], ['orderId','productSynonymCreator']), inheritanceUnionMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals(['1,TDSNull', '2,smith', '2,smith', '2,smith', '2,smith'], $result.values->at(0).rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".id as "orderId", "productsynonymintermediate_0"."ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" as "productSynonymCreator" from OrderTable as "root" left outer join (select "orderproductintermediate_1".orderId as orderId, "producttable_0".id as id from orderProductIntermediate as "orderproductintermediate_1" inner join ProductTable as "producttable_0" on ("orderproductintermediate_1".prodId = "producttable_0".id) where "producttable_0".from_z <= \'2016-09-23\' and "producttable_0".thru_z > \'2016-09-23\') as "orderproductintermediate_0" on ("root".id = "orderproductintermediate_0".orderId) left outer join (select "productsynonymintermediate_1".prodId as prodId, "unionalias_0"."ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" as "ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" from productSynonymIntermediate as "productsynonymintermediate_1" inner join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".prodId as prodId_0, null as prodId_1, \'CUSIP\' as "CUSIP_ISIN", "root".createdBy as "ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" from ProductSynonymTable as "root" UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as prodId_0, "root".prodId as prodId_1, \'ISIN\' as "CUSIP_ISIN", "root".createdBy as "ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" from ProductSynonymTable as "root") as "unionalias_0" on ("productsynonymintermediate_1".synProdId = "unionalias_0".prodId_0 or "productsynonymintermediate_1".synProdId = "unionalias_0".prodId_1) where "unionalias_0"."CUSIP_ISIN" = \'CUSIP\') as "productsynonymintermediate_0" on ("orderproductintermediate_0".id = "productsynonymintermediate_0".prodId)', - 'select "root".id as "orderId", "productsynonymintermediate_0"."ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" as "productSynonymCreator" from OrderTable as "root" left outer join (select "orderproductintermediate_1".orderId as orderId, "producttable_0".id as id from orderProductIntermediate as "orderproductintermediate_1" inner join ProductTable as "producttable_0" on ("orderproductintermediate_1".prodId = "producttable_0".id) where "producttable_0".from_z <= DATE\'2016-09-23\' and "producttable_0".thru_z > DATE\'2016-09-23\') as "orderproductintermediate_0" on ("root".id = "orderproductintermediate_0".orderId) left outer join (select "productsynonymintermediate_1".prodId as prodId, "unionalias_0"."ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" as "ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" from productSynonymIntermediate as "productsynonymintermediate_1" inner join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".prodId as prodId_0, null as prodId_1, \'CUSIP\' as "CUSIP_ISIN", "root".createdBy as "ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" from ProductSynonymTable as "root" UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as prodId_0, "root".prodId as prodId_1, \'ISIN\' as "CUSIP_ISIN", "root".createdBy as "ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" from ProductSynonymTable as "root") as "unionalias_0" on ("productsynonymintermediate_1".synProdId = "unionalias_0".prodId_0 or "productsynonymintermediate_1".synProdId = "unionalias_0".prodId_1) where "unionalias_0"."CUSIP_ISIN" = \'CUSIP\') as "productsynonymintermediate_0" on ("orderproductintermediate_0".id = "productsynonymintermediate_0".prodId)', + 'select "root".id as "orderId", "productsynonymintermediate_0"."ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" as "productSynonymCreator" from OrderTable as "root" left outer join (select "orderproductintermediate_1".orderId as orderId, "producttable_0".id as id from orderProductIntermediate as "orderproductintermediate_1" inner join ProductTable as "producttable_0" on ("orderproductintermediate_1".prodId = "producttable_0".id) where "producttable_0".from_z <= \'2016-09-23\' and "producttable_0".thru_z > \'2016-09-23\') as "orderproductintermediate_0" on ("root".id = "orderproductintermediate_0".orderId) left outer join (select "productsynonymintermediate_1".prodId as prodId, "unionalias_0"."ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" as "ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" from productSynonymIntermediate as "productsynonymintermediate_1" inner join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".prodId as prodId_0, null as prodId_1, \'CUSIP\' as "CUSIP_ISIN", "root".createdBy as "ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" from ProductSynonymTable as "root" UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as prodId_0, "root".prodId as prodId_1, \'ISIN\' as "CUSIP_ISIN", "root".createdBy as "ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" from ProductSynonymTable as "root") as "unionalias_0" on ("productsynonymintermediate_1".synProdId = "unionalias_0".prodId_0 or "productsynonymintermediate_1".synProdId = "unionalias_0".prodId_1) where "unionalias_0"."CUSIP_ISIN" = \'CUSIP\') as "productsynonymintermediate_0" on ("orderproductintermediate_0".id = "productsynonymintermediate_0".prodId)', + 'select "root".id as "orderId", "productsynonymintermediate_0"."ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" as "productSynonymCreator" from OrderTable as "root" left outer join (select "orderproductintermediate_1".orderId as orderId, "producttable_0".id as id from orderProductIntermediate as "orderproductintermediate_1" inner join ProductTable as "producttable_0" on ("orderproductintermediate_1".prodId = "producttable_0".id) where "producttable_0".from_z <= DATE\'2016-09-23\' and "producttable_0".thru_z > DATE\'2016-09-23\') as "orderproductintermediate_0" on ("root".id = "orderproductintermediate_0".orderId) left outer join (select "productsynonymintermediate_1".prodId as prodId, "unionalias_0"."ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" as "ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" from productSynonymIntermediate as "productsynonymintermediate_1" inner join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".prodId as prodId_0, null as prodId_1, \'CUSIP\' as "CUSIP_ISIN", "root".createdBy as "ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" from ProductSynonymTable as "root" UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as prodId_0, "root".prodId as prodId_1, \'ISIN\' as "CUSIP_ISIN", "root".createdBy as "ProductSynonymTablecreatedBy_ProductSynonymTablecreatedBy" from ProductSynonymTable as "root") as "unionalias_0" on ("productsynonymintermediate_1".synProdId = "unionalias_0".prodId_0 or "productsynonymintermediate_1".synProdId = "unionalias_0".prodId_1) where "unionalias_0"."CUSIP_ISIN" = \'CUSIP\') as "productsynonymintermediate_0" on ("orderproductintermediate_0".id = "productsynonymintermediate_0".prodId)', $result->sqlRemoveFormatting() ); } @@ -40,8 +42,8 @@ function <> meta::relational::tests::milestoning: let result = execute(|Order.all()->project([o|$o.id, o|$o.product(%2016-9-23)->filter(p|($p.id==1 || $p.id==2) && $p.referenceSystem.name=='SYS1').id], ['orderId','filteredProductId']), inheritanceUnionMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals(['1,TDSNull', '2,2'], $result.values->at(0).rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".id as "orderId", "orderproductintermediate_0".id as "filteredProductId" from OrderTable as "root" left outer join (select "orderproductintermediate_1".orderId as orderId, "producttable_0".id as id, "producttable_0".referenceSystemName as referenceSystemName from orderProductIntermediate as "orderproductintermediate_1" inner join ProductTable as "producttable_0" on ("orderproductintermediate_1".prodId = "producttable_0".id) left outer join SystemTable as "systemtable_0" on ("producttable_0".referenceSystemName = "systemtable_0".name) where (("producttable_0".id = 1 or "producttable_0".id = 2) and "systemtable_0".name = \'SYS1\') and "producttable_0".from_z <= \'2016-09-23\' and "producttable_0".thru_z > \'2016-09-23\') as "orderproductintermediate_0" on ("root".id = "orderproductintermediate_0".orderId)', - 'select "root".id as "orderId", "orderproductintermediate_0".id as "filteredProductId" from OrderTable as "root" left outer join (select "orderproductintermediate_1".orderId as orderId, "producttable_0".id as id, "producttable_0".referenceSystemName as referenceSystemName from orderProductIntermediate as "orderproductintermediate_1" inner join ProductTable as "producttable_0" on ("orderproductintermediate_1".prodId = "producttable_0".id) left outer join SystemTable as "systemtable_0" on ("producttable_0".referenceSystemName = "systemtable_0".name) where (("producttable_0".id = 1 or "producttable_0".id = 2) and "systemtable_0".name = \'SYS1\') and "producttable_0".from_z <= DATE\'2016-09-23\' and "producttable_0".thru_z > DATE\'2016-09-23\') as "orderproductintermediate_0" on ("root".id = "orderproductintermediate_0".orderId)', + 'select "root".id as "orderId", "orderproductintermediate_0".id as "filteredProductId" from OrderTable as "root" left outer join (select "orderproductintermediate_1".orderId as orderId, "producttable_0".id as id, "producttable_0".referenceSystemName as referenceSystemName from orderProductIntermediate as "orderproductintermediate_1" inner join ProductTable as "producttable_0" on ("orderproductintermediate_1".prodId = "producttable_0".id) left outer join SystemTable as "systemtable_0" on ("producttable_0".referenceSystemName = "systemtable_0".name) where (("producttable_0".id = 1 or "producttable_0".id = 2) and "systemtable_0".name = \'SYS1\') and "producttable_0".from_z <= \'2016-09-23\' and "producttable_0".thru_z > \'2016-09-23\') as "orderproductintermediate_0" on ("root".id = "orderproductintermediate_0".orderId)', + 'select "root".id as "orderId", "orderproductintermediate_0".id as "filteredProductId" from OrderTable as "root" left outer join (select "orderproductintermediate_1".orderId as orderId, "producttable_0".id as id, "producttable_0".referenceSystemName as referenceSystemName from orderProductIntermediate as "orderproductintermediate_1" inner join ProductTable as "producttable_0" on ("orderproductintermediate_1".prodId = "producttable_0".id) left outer join SystemTable as "systemtable_0" on ("producttable_0".referenceSystemName = "systemtable_0".name) where (("producttable_0".id = 1 or "producttable_0".id = 2) and "systemtable_0".name = \'SYS1\') and "producttable_0".from_z <= DATE\'2016-09-23\' and "producttable_0".thru_z > DATE\'2016-09-23\') as "orderproductintermediate_0" on ("root".id = "orderproductintermediate_0".orderId)', $result->sqlRemoveFormatting() ); } @@ -52,8 +54,8 @@ function <> meta::relational::tests::milestoning: let result = execute(|Order.all()->project([o|$o.id, o|$o.product(%2016-9-23)->filter(p|$p.id==2).id, o|$o.product(%2016-9-23)->filter(p|$p.id==2).name], ['orderId','productId','productName']), inheritanceUnionMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals(['1,TDSNull,TDSNull', '2,2,ProductName2'], $result.values->at(0).rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".id as "orderId", "orderproductintermediate_0".id as "productId", "orderproductintermediate_0".name as "productName" from OrderTable as "root" left outer join (select "orderproductintermediate_1".orderId as orderId, "producttable_0".id as id, "producttable_0".name as name from orderProductIntermediate as "orderproductintermediate_1" inner join ProductTable as "producttable_0" on ("orderproductintermediate_1".prodId = "producttable_0".id) where "producttable_0".from_z <= \'2016-09-23\' and "producttable_0".thru_z > \'2016-09-23\') as "orderproductintermediate_0" on ("root".id = "orderproductintermediate_0".orderId and "orderproductintermediate_0".id = 2)', - 'select "root".id as "orderId", "orderproductintermediate_0".id as "productId", "orderproductintermediate_0".name as "productName" from OrderTable as "root" left outer join (select "orderproductintermediate_1".orderId as orderId, "producttable_0".id as id, "producttable_0".name as name from orderProductIntermediate as "orderproductintermediate_1" inner join ProductTable as "producttable_0" on ("orderproductintermediate_1".prodId = "producttable_0".id) where "producttable_0".from_z <= DATE\'2016-09-23\' and "producttable_0".thru_z > DATE\'2016-09-23\') as "orderproductintermediate_0" on ("root".id = "orderproductintermediate_0".orderId and "orderproductintermediate_0".id = 2)', + 'select "root".id as "orderId", "orderproductintermediate_0".id as "productId", "orderproductintermediate_0".name as "productName" from OrderTable as "root" left outer join (select "orderproductintermediate_1".orderId as orderId, "producttable_0".id as id, "producttable_0".name as name from orderProductIntermediate as "orderproductintermediate_1" inner join ProductTable as "producttable_0" on ("orderproductintermediate_1".prodId = "producttable_0".id) where "producttable_0".from_z <= \'2016-09-23\' and "producttable_0".thru_z > \'2016-09-23\') as "orderproductintermediate_0" on ("root".id = "orderproductintermediate_0".orderId and "orderproductintermediate_0".id = 2)', + 'select "root".id as "orderId", "orderproductintermediate_0".id as "productId", "orderproductintermediate_0".name as "productName" from OrderTable as "root" left outer join (select "orderproductintermediate_1".orderId as orderId, "producttable_0".id as id, "producttable_0".name as name from orderProductIntermediate as "orderproductintermediate_1" inner join ProductTable as "producttable_0" on ("orderproductintermediate_1".prodId = "producttable_0".id) where "producttable_0".from_z <= DATE\'2016-09-23\' and "producttable_0".thru_z > DATE\'2016-09-23\') as "orderproductintermediate_0" on ("root".id = "orderproductintermediate_0".orderId and "orderproductintermediate_0".id = 2)', $result->sqlRemoveFormatting() ); } @@ -65,8 +67,8 @@ function <> meta::relational::tests::milestoning: let result = execute(|BiTemporalProduct.all(%2018-05-10, %2018-05-09)->project([p|$p.name, p|$p.type],['name', 'type']), inheritanceUnionMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals(['p1s1,STOCK', 'p2s1,STOCK', 'p3s1,STOCK', 'p10s2,notSet', 'p11s2,notSet'], $result.values->at(0).rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "unionBase"."BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename" as "name", "unionBase"."BiTemporalProductTable_Out_From_Inclusive_ClassificationProductClassificationTabletype_notSet" as "type" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".in_z as "in_z_0", "root".out_z as "out_z_0", null as "from_z_1", null as "thru_z_1", null as "in_z_1", null as "out_z_1", "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", "productclassificationtable_0".type as "BiTemporalProductTable_Out_From_Inclusive_ClassificationProductClassificationTabletype_notSet" from BiTemporalProductTable_Out_From_Inclusive as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2018-05-09\' and "productclassificationtable_0".thru_z > \'2018-05-09\') where "root".in_z < \'2018-05-10\' and "root".out_z >= \'2018-05-10\' and "root".from_z <= \'2018-05-09\' and "root".thru_z > \'2018-05-09\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "in_z_0", null as "out_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".in_z as "in_z_1", "root".out_z as "out_z_1", null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", \'notSet\' as "BiTemporalProductTable_Out_From_Inclusive_ClassificationProductClassificationTabletype_notSet" from BiTemporalProductTable_Out_Thru_Inclusive as "root" where "root".in_z < \'2018-05-10\' and "root".out_z >= \'2018-05-10\' and "root".from_z < \'2018-05-09\' and "root".thru_z >= \'2018-05-09\') as "unionBase"', - 'select "unionBase"."BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename" as "name", "unionBase"."BiTemporalProductTable_Out_From_Inclusive_ClassificationProductClassificationTabletype_notSet" as "type" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".in_z as "in_z_0", "root".out_z as "out_z_0", null as "from_z_1", null as "thru_z_1", null as "in_z_1", null as "out_z_1", "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", "productclassificationtable_0".type as "BiTemporalProductTable_Out_From_Inclusive_ClassificationProductClassificationTabletype_notSet" from BiTemporalProductTable_Out_From_Inclusive as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2018-05-09\' and "productclassificationtable_0".thru_z > DATE\'2018-05-09\') where "root".in_z < DATE\'2018-05-10\' and "root".out_z >= DATE\'2018-05-10\' and "root".from_z <= DATE\'2018-05-09\' and "root".thru_z > DATE\'2018-05-09\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "in_z_0", null as "out_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".in_z as "in_z_1", "root".out_z as "out_z_1", null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", \'notSet\' as "BiTemporalProductTable_Out_From_Inclusive_ClassificationProductClassificationTabletype_notSet" from BiTemporalProductTable_Out_Thru_Inclusive as "root" where "root".in_z < DATE\'2018-05-10\' and "root".out_z >= DATE\'2018-05-10\' and "root".from_z < DATE\'2018-05-09\' and "root".thru_z >= DATE\'2018-05-09\') as "unionBase"', + 'select "unionBase"."BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename" as "name", "unionBase"."BiTemporalProductTable_Out_From_Inclusive_ClassificationProductClassificationTabletype_notSet" as "type" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".in_z as "in_z_0", "root".out_z as "out_z_0", null as "from_z_1", null as "thru_z_1", null as "in_z_1", null as "out_z_1", "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", "productclassificationtable_0".type as "BiTemporalProductTable_Out_From_Inclusive_ClassificationProductClassificationTabletype_notSet" from BiTemporalProductTable_Out_From_Inclusive as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2018-05-09\' and "productclassificationtable_0".thru_z > \'2018-05-09\') where "root".in_z < \'2018-05-10\' and "root".out_z >= \'2018-05-10\' and "root".from_z <= \'2018-05-09\' and "root".thru_z > \'2018-05-09\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "in_z_0", null as "out_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".in_z as "in_z_1", "root".out_z as "out_z_1", null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", \'notSet\' as "BiTemporalProductTable_Out_From_Inclusive_ClassificationProductClassificationTabletype_notSet" from BiTemporalProductTable_Out_Thru_Inclusive as "root" where "root".in_z < \'2018-05-10\' and "root".out_z >= \'2018-05-10\' and "root".from_z < \'2018-05-09\' and "root".thru_z >= \'2018-05-09\') as "unionBase"', + 'select "unionBase"."BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename" as "name", "unionBase"."BiTemporalProductTable_Out_From_Inclusive_ClassificationProductClassificationTabletype_notSet" as "type" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".in_z as "in_z_0", "root".out_z as "out_z_0", null as "from_z_1", null as "thru_z_1", null as "in_z_1", null as "out_z_1", "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", "productclassificationtable_0".type as "BiTemporalProductTable_Out_From_Inclusive_ClassificationProductClassificationTabletype_notSet" from BiTemporalProductTable_Out_From_Inclusive as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2018-05-09\' and "productclassificationtable_0".thru_z > DATE\'2018-05-09\') where "root".in_z < DATE\'2018-05-10\' and "root".out_z >= DATE\'2018-05-10\' and "root".from_z <= DATE\'2018-05-09\' and "root".thru_z > DATE\'2018-05-09\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "in_z_0", null as "out_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".in_z as "in_z_1", "root".out_z as "out_z_1", null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", \'notSet\' as "BiTemporalProductTable_Out_From_Inclusive_ClassificationProductClassificationTabletype_notSet" from BiTemporalProductTable_Out_Thru_Inclusive as "root" where "root".in_z < DATE\'2018-05-10\' and "root".out_z >= DATE\'2018-05-10\' and "root".from_z < DATE\'2018-05-09\' and "root".thru_z >= DATE\'2018-05-09\') as "unionBase"', $result->sqlRemoveFormatting() ); } @@ -77,8 +79,8 @@ function <> meta::relational::tests::milestoning: let result = execute(|BiTemporalProduct.all(%2018-05-10, %2018-05-09)->project([p|$p.name,p|$p.classification.type],['name', 'type']), inheritanceUnionMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals(['p1s1,STOCK', 'p2s1,STOCK', 'p3s1,STOCK', 'p10s2,STOCK', 'p11s2,STOCK'], $result.values->at(0).rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "unionBase"."BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename" as "name", "productclassificationtable_0".type as "type" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".in_z as "in_z_0", "root".out_z as "out_z_0", null as "from_z_1", null as "thru_z_1", null as "in_z_1", null as "out_z_1", "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", "root".type as type_0, null as type_1 from BiTemporalProductTable_Out_From_Inclusive as "root" where "root".in_z < \'2018-05-10\' and "root".out_z >= \'2018-05-10\' and "root".from_z <= \'2018-05-09\' and "root".thru_z > \'2018-05-09\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "in_z_0", null as "out_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".in_z as "in_z_1", "root".out_z as "out_z_1", null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", null as type_0, "root".type as type_1 from BiTemporalProductTable_Out_Thru_Inclusive as "root" where "root".in_z < \'2018-05-10\' and "root".out_z >= \'2018-05-10\' and "root".from_z < \'2018-05-09\' and "root".thru_z >= \'2018-05-09\') as "unionBase" left outer join ProductClassificationTable as "productclassificationtable_0" on (("unionBase".type_0 = "productclassificationtable_0".type or "unionBase".type_1 = "productclassificationtable_0".type) and "productclassificationtable_0".from_z <= \'2018-05-09\' and "productclassificationtable_0".thru_z > \'2018-05-09\')', - 'select "unionBase"."BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename" as "name", "productclassificationtable_0".type as "type" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".in_z as "in_z_0", "root".out_z as "out_z_0", null as "from_z_1", null as "thru_z_1", null as "in_z_1", null as "out_z_1", "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", "root".type as type_0, null as type_1 from BiTemporalProductTable_Out_From_Inclusive as "root" where "root".in_z < DATE\'2018-05-10\' and "root".out_z >= DATE\'2018-05-10\' and "root".from_z <= DATE\'2018-05-09\' and "root".thru_z > DATE\'2018-05-09\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "in_z_0", null as "out_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".in_z as "in_z_1", "root".out_z as "out_z_1", null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", null as type_0, "root".type as type_1 from BiTemporalProductTable_Out_Thru_Inclusive as "root" where "root".in_z < DATE\'2018-05-10\' and "root".out_z >= DATE\'2018-05-10\' and "root".from_z < DATE\'2018-05-09\' and "root".thru_z >= DATE\'2018-05-09\') as "unionBase" left outer join ProductClassificationTable as "productclassificationtable_0" on (("unionBase".type_0 = "productclassificationtable_0".type or "unionBase".type_1 = "productclassificationtable_0".type) and "productclassificationtable_0".from_z <= DATE\'2018-05-09\' and "productclassificationtable_0".thru_z > DATE\'2018-05-09\')', + 'select "unionBase"."BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename" as "name", "productclassificationtable_0".type as "type" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".in_z as "in_z_0", "root".out_z as "out_z_0", null as "from_z_1", null as "thru_z_1", null as "in_z_1", null as "out_z_1", "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", "root".type as type_0, null as type_1 from BiTemporalProductTable_Out_From_Inclusive as "root" where "root".in_z < \'2018-05-10\' and "root".out_z >= \'2018-05-10\' and "root".from_z <= \'2018-05-09\' and "root".thru_z > \'2018-05-09\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "in_z_0", null as "out_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".in_z as "in_z_1", "root".out_z as "out_z_1", null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", null as type_0, "root".type as type_1 from BiTemporalProductTable_Out_Thru_Inclusive as "root" where "root".in_z < \'2018-05-10\' and "root".out_z >= \'2018-05-10\' and "root".from_z < \'2018-05-09\' and "root".thru_z >= \'2018-05-09\') as "unionBase" left outer join ProductClassificationTable as "productclassificationtable_0" on (("unionBase".type_0 = "productclassificationtable_0".type or "unionBase".type_1 = "productclassificationtable_0".type) and "productclassificationtable_0".from_z <= \'2018-05-09\' and "productclassificationtable_0".thru_z > \'2018-05-09\')', + 'select "unionBase"."BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename" as "name", "productclassificationtable_0".type as "type" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", "root".in_z as "in_z_0", "root".out_z as "out_z_0", null as "from_z_1", null as "thru_z_1", null as "in_z_1", null as "out_z_1", "root".id as "pk_0_0", "root".name as "pk_1_0", null as "pk_0_1", null as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", "root".type as type_0, null as type_1 from BiTemporalProductTable_Out_From_Inclusive as "root" where "root".in_z < DATE\'2018-05-10\' and "root".out_z >= DATE\'2018-05-10\' and "root".from_z <= DATE\'2018-05-09\' and "root".thru_z > DATE\'2018-05-09\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "in_z_0", null as "out_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".in_z as "in_z_1", "root".out_z as "out_z_1", null as "pk_0_0", null as "pk_1_0", "root".id as "pk_0_1", "root".name as "pk_1_1", "root".name as "BiTemporalProductTable_Out_From_Inclusivename_BiTemporalProductTable_Out_Thru_Inclusivename", null as type_0, "root".type as type_1 from BiTemporalProductTable_Out_Thru_Inclusive as "root" where "root".in_z < DATE\'2018-05-10\' and "root".out_z >= DATE\'2018-05-10\' and "root".from_z < DATE\'2018-05-09\' and "root".thru_z >= DATE\'2018-05-09\') as "unionBase" left outer join ProductClassificationTable as "productclassificationtable_0" on (("unionBase".type_0 = "productclassificationtable_0".type or "unionBase".type_1 = "productclassificationtable_0".type) and "productclassificationtable_0".from_z <= DATE\'2018-05-09\' and "productclassificationtable_0".thru_z > DATE\'2018-05-09\')', $result->sqlRemoveFormatting() ); } @@ -86,14 +88,14 @@ function <> meta::relational::tests::milestoning: function <> meta::relational::tests::milestoning::inheritance::union::createTablesAndFillDb():Any[0..1] { let runtime = meta::relational::tests::milestoning::initDatabase(); - - let connection = $runtime.connections->at(0)->cast(@TestDatabaseConnection); - + + let connection = $runtime.connectionStores.connection->at(0)->cast(@TestDatabaseConnection); + executeInDb('Drop table if exists productSynonymIntermediate;', $connection); executeInDb('Create Table productSynonymIntermediate (prodId INT, synProdId INT);', $connection); executeInDb('insert into productSynonymIntermediate values(1, 1);', $connection); executeInDb('insert into productSynonymIntermediate values(2, 2);', $connection); - + executeInDb('Drop table if exists orderProductIntermediate;', $connection); executeInDb('Create Table orderProductIntermediate (orderId INT, prodId INT);', $connection); executeInDb('insert into orderProductIntermediate values(1, 1);', $connection); @@ -104,18 +106,19 @@ function <> meta::relational::tests::milestoning::inheritanc executeInDb('insert into BiTemporalProductTable_Out_From_Inclusive values(1, \'p1s1\', \'STOCK\', \'2018-05-02 00:00:00\', \'9999-12-31 00:00:00\', \'2018-05-01 00:00:00\', \'9999-12-31 00:00:00\');', $connection); executeInDb('insert into BiTemporalProductTable_Out_From_Inclusive values(2, \'p2s1\', \'STOCK\', \'2018-05-07 00:00:00\', \'9999-12-31 00:00:00\', \'2018-05-06 00:00:00\', \'9999-12-31 00:00:00\');', $connection); executeInDb('insert into BiTemporalProductTable_Out_From_Inclusive values(3, \'p3s1\', \'STOCK\', \'2018-05-09 00:00:00\', \'9999-12-31 00:00:00\', \'2018-05-08 00:00:00\', \'9999-12-31 00:00:00\');', $connection); - + executeInDb('drop table if exists BiTemporalProductTable_Out_Thru_Inclusive;', $connection); executeInDb('create table BiTemporalProductTable_Out_Thru_Inclusive (id Integer, name VARCHAR(200), type VARCHAR(200), in_z TIMESTAMP, out_z TIMESTAMP, from_z TIMESTAMP, thru_z TIMESTAMP);', $connection); executeInDb('insert into BiTemporalProductTable_Out_Thru_Inclusive values(10, \'p10s2\', \'STOCK\', \'2018-05-07 00:00:00\', \'9999-12-31 00:00:00\', \'2018-05-06 00:00:00\', \'9999-12-31 00:00:00\');', $connection); executeInDb('insert into BiTemporalProductTable_Out_Thru_Inclusive values(11, \'p11s2\', \'STOCK\', \'2018-05-09 00:00:00\', \'9999-12-31 00:00:00\', \'2018-05-08 00:00:00\', \'9999-12-31 00:00:00\');', $connection); - + } ###Mapping import meta::relational::tests::milestoning::inheritance::union::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::milestoning::*; Mapping meta::relational::tests::milestoning::inheritance::union::inheritanceUnionMapping @@ -124,18 +127,18 @@ Mapping meta::relational::tests::milestoning::inheritance::union::inheritanceUni ~mainTable [inheritanceUnionDB]OrderTable id : [inheritanceUnionDB]OrderTable.id, product : [inheritanceUnionDB]@Order_OrderProductIntermediate > (INNER) @OrderProductIntermediate_Product - } + } meta::relational::tests::milestoning::Product : Relational{ - ~mainTable [inheritanceUnionDB]ProductTable - id : [inheritanceUnionDB]ProductTable.id, - name : [inheritanceUnionDB]ProductTable.name, + ~mainTable [inheritanceUnionDB]ProductTable + id : [inheritanceUnionDB]ProductTable.id, + name : [inheritanceUnionDB]ProductTable.name, referenceSystem : [inheritanceUnionDB]@Product_System, - + synonyms[cusip] : [inheritanceUnionDB]@Product_SynonymIntermediate > (INNER) @SynonymIntermediate_Synonym, synonyms[isin] : [inheritanceUnionDB]@Product_SynonymIntermediate > (INNER) @SynonymIntermediate_Synonym - } - + } + *ProductSynonym[unionedSynonyms] : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(cusip,isin); @@ -147,27 +150,27 @@ Mapping meta::relational::tests::milestoning::inheritance::union::inheritanceUni synonym : synonym, type : 'CUSIP', createActivity( createdBy : createdBy) - ) - } - + ) + } + meta::relational::tests::milestoning::ProductSynonym[isin] : Relational{ scope([inheritanceUnionDB]ProductSynonymTable) ( synonym : synonym, type : 'ISIN', createActivity( createdBy : createdBy) - ) + ) } - + meta::relational::tests::milestoning::System : Relational{ name : [inheritanceUnionDB]SystemTable.name } - + *BiTemporalProduct : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) } - + BiTemporalProduct[set1] : Relational { id : [inheritanceUnionDB]BiTemporalProductTable_Out_From_Inclusive.id, @@ -175,7 +178,7 @@ Mapping meta::relational::tests::milestoning::inheritance::union::inheritanceUni type : [inheritanceUnionDB]@BiTemporalProductTable_Out_From_Inclusive_Classification | ProductClassificationTable.type, classification : [inheritanceUnionDB]@BiTemporalProductTable_Out_From_Inclusive_Classification } - + BiTemporalProduct[set2] : Relational { id : [inheritanceUnionDB]BiTemporalProductTable_Out_Thru_Inclusive.id, @@ -183,10 +186,10 @@ Mapping meta::relational::tests::milestoning::inheritance::union::inheritanceUni type : 'notSet', classification : [inheritanceUnionDB]@BiTemporalProductTable_Out_Thru_Inclusive_Classification } - + meta::relational::tests::milestoning::ProductClassification : Relational{ type : [inheritanceUnionDB]ProductClassificationTable.type - } + } ) @@ -196,13 +199,13 @@ Mapping meta::relational::tests::milestoning::inheritance::union::inheritanceUni Database meta::relational::tests::milestoning::inheritance::union::inheritanceUnionDB ( include meta::relational::tests::milestoning::db - + Table orderProductIntermediate(orderId INT PRIMARY KEY, prodId INT PRIMARY KEY) Table productSynonymIntermediate(prodId INT PRIMARY KEY, synProdId INT PRIMARY KEY) - + Join Order_OrderProductIntermediate(OrderTable.id = orderProductIntermediate.orderId) Join OrderProductIntermediate_Product(orderProductIntermediate.prodId = ProductTable.id) - + Join Product_SynonymIntermediate(ProductTable.id = productSynonymIntermediate.prodId) Join SynonymIntermediate_Synonym(productSynonymIntermediate.synProdId = ProductSynonymTable.prodId ) ) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testLatestDateMilestoning.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testLatestDateMilestoning.pure index 5e7d0a06b81..47edb52aa36 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testLatestDateMilestoning.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testLatestDateMilestoning.pure @@ -15,6 +15,7 @@ import meta::relational::functions::asserts::*; import meta::relational::tests::milestoning::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::milestoning::latestDate::setUp():Any[0..1] { @@ -25,21 +26,21 @@ function <> meta::relational::tests::milestoning::latestDate function <> meta::relational::tests::milestoning::latestDate::testLatestIgnoredForNonMilestonedMappedClassesAllQuery():Boolean[1] { let result = execute(|Product.all(%latest), noMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".type as "type" from ProductTableNoMilestoning as "root"',$result); + assertSameSQL('select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".type as "type" from ProductTableNoMilestoning as "root"',$result); } function <> meta::relational::tests::milestoning::latestDate::testLatestIgnoredForNonMilestonedMappedBiTemporalClassesAllQuery():Boolean[1] { let result = execute(|BiTemporalProduct.all(%latest, %latest), noMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameSQL('select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type" from ProductTableNoMilestoning as "root"',$result); + assertSameSQL('select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type" from ProductTableNoMilestoning as "root"',$result); } function <> meta::relational::tests::milestoning::latestDate::testLatestIgnoredForNonMilestonedMappedClasses():Boolean[1] { let result = execute(|Order.all()->filter(o|or($o.product(%latest).type=='STOCK',$o.product(%latest).type=='OPTION')), noMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions()); let result2 = execute(|Order.all()->filter(o|or($o.product(%2015-08-15).type=='STOCK',$o.product(%2015-10-16).type=='OPTION')), noMilestoningMap, testRuntime(), meta::relational::extension::relationalExtensions()); - + let orders = $result.values; assertEquals(1,$orders->size()); assertEquals(1, $orders->at(0).id); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testMilestoningColumnProjection.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testMilestoningColumnProjection.pure index f3801d44359..f1023d172e8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testMilestoningColumnProjection.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testMilestoningColumnProjection.pure @@ -16,6 +16,7 @@ import meta::relational::functions::asserts::*; import meta::relational::tests::milestoning::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::milestoning::projection::testMilestoningColumnProjectionForRoot():Boolean[1] { @@ -24,7 +25,7 @@ function <> meta::relational::tests::milestoning::projection::testMil let data = $result.values.rows; assertSameElements([1, 2, 2, 3], $data.getInteger('id')); assertSameElements([%2015-08-15T00:00:00.000000000+0000, %2015-08-26T00:00:00.000000000+0000, %2015-08-26T00:00:00.000000000+0000, %2015-10-16T00:00:00.000000000+0000], $data.getDate('from')); - assertSameElements([%2015-08-26T00:00:00.000000000+0000, %2015-10-16T00:00:00.000000000+0000, %9999-12-31T00:00:00.000000000+0000, %9999-12-31T00:00:00.000000000+0000], $data.getDate('thru')); + assertSameElements([%2015-08-26T00:00:00.000000000+0000, %2015-10-16T00:00:00.000000000+0000, %9999-12-31T00:00:00.000000000+0000, %9999-12-31T00:00:00.000000000+0000], $data.getDate('thru')); } function <> meta::relational::tests::milestoning::projection::testMilestoningColumnProjectionForEmbedded():Boolean[1] @@ -34,7 +35,7 @@ function <> meta::relational::tests::milestoning::projection::testMil let data = $result.values.rows; assertSameElements(['OPTION', 'STOCK', 'STOCK', 'STOCK'], $data.getString('type')); assertSameElements([%2015-08-15T00:00:00.000000000+0000, %2015-08-26T00:00:00.000000000+0000, %2015-08-26T00:00:00.000000000+0000, %2015-10-16T00:00:00.000000000+0000], $data.getDate('from')); - assertSameElements([%2015-08-26T00:00:00.000000000+0000, %2015-10-16T00:00:00.000000000+0000, %9999-12-31T00:00:00.000000000+0000, %9999-12-31T00:00:00.000000000+0000], $data.getDate('thru')); + assertSameElements([%2015-08-26T00:00:00.000000000+0000, %2015-10-16T00:00:00.000000000+0000, %9999-12-31T00:00:00.000000000+0000, %9999-12-31T00:00:00.000000000+0000], $data.getDate('thru')); } function <> meta::relational::tests::milestoning::projection::testMilestoningColumnProjectionForInlineEmbedded():Boolean[1] @@ -44,7 +45,7 @@ function <> meta::relational::tests::milestoning::projection::testMil let data = $result.values.rows; assertSameElements(['ISE', 'ISE', 'LNSE', 'LNSE'], $data.getString('name')); assertSameElements([%2015-08-15T00:00:00.000000000+0000, %2015-08-26T00:00:00.000000000+0000, %2015-08-26T00:00:00.000000000+0000, %2015-10-16T00:00:00.000000000+0000], $data.getDate('from')); - assertSameElements([%2015-08-26T00:00:00.000000000+0000, %2015-10-16T00:00:00.000000000+0000, %9999-12-31T00:00:00.000000000+0000, %9999-12-31T00:00:00.000000000+0000], $data.getDate('thru')); + assertSameElements([%2015-08-26T00:00:00.000000000+0000, %2015-10-16T00:00:00.000000000+0000, %9999-12-31T00:00:00.000000000+0000, %9999-12-31T00:00:00.000000000+0000], $data.getDate('thru')); } function <> meta::relational::tests::milestoning::projection::testMilestoningColumnProjectionWithNonMilestonedTable():Boolean[1] @@ -54,7 +55,7 @@ function <> meta::relational::tests::milestoning::projection::testMil let data = $result.values.rows; assertSameElements([1, 2], $data.getInteger('id')); assertSameElements([^TDSNull(), ^TDSNull()], $data.get('from')); - assertSameElements([^TDSNull(), ^TDSNull()], $data.get('thru')); + assertSameElements([^TDSNull(), ^TDSNull()], $data.get('thru')); } function <> meta::relational::tests::milestoning::projection::setUp():Any[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/milestoning/tests/testMilestoningContextPropagation.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testMilestoningContextPropagation.pure index 542cfcc1e91..b8e3c6c73bc 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testMilestoningContextPropagation.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testMilestoningContextPropagation.pure @@ -14,11 +14,14 @@ import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::functions::asserts::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::mapping::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::milestoning::*; function <> meta::relational::tests::milestoning::contextpropagation::setup():Any[0..1] @@ -35,8 +38,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['system A order description 1', 'system A order description 2'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "systemaorderdescriptiontable_0".description as "systemADescription" from OrderTable as "root" left outer join OrderToSystemADescriptions as "ordertosystemadescriptions_0" on ("root".id = "ordertosystemadescriptions_0".orderId and "ordertosystemadescriptions_0".from_z <= \'2015-08-14\' and "ordertosystemadescriptions_0".thru_z > \'2015-08-14\') left outer join SystemAOrderDescriptionTable as "systemaorderdescriptiontable_0" on ("ordertosystemadescriptions_0".systemADescriptionId = "systemaorderdescriptiontable_0".descriptionId)', - 'select "systemaorderdescriptiontable_0".description as "systemADescription" from OrderTable as "root" left outer join OrderToSystemADescriptions as "ordertosystemadescriptions_0" on ("root".id = "ordertosystemadescriptions_0".orderId and "ordertosystemadescriptions_0".from_z <= DATE\'2015-08-14\' and "ordertosystemadescriptions_0".thru_z > DATE\'2015-08-14\') left outer join SystemAOrderDescriptionTable as "systemaorderdescriptiontable_0" on ("ordertosystemadescriptions_0".systemADescriptionId = "systemaorderdescriptiontable_0".descriptionId)', + 'select "systemaorderdescriptiontable_0".description as "systemADescription" from OrderTable as "root" left outer join OrderToSystemADescriptions as "ordertosystemadescriptions_0" on ("root".id = "ordertosystemadescriptions_0".orderId and "ordertosystemadescriptions_0".from_z <= \'2015-08-14\' and "ordertosystemadescriptions_0".thru_z > \'2015-08-14\') left outer join SystemAOrderDescriptionTable as "systemaorderdescriptiontable_0" on ("ordertosystemadescriptions_0".systemADescriptionId = "systemaorderdescriptiontable_0".descriptionId)', + 'select "systemaorderdescriptiontable_0".description as "systemADescription" from OrderTable as "root" left outer join OrderToSystemADescriptions as "ordertosystemadescriptions_0" on ("root".id = "ordertosystemadescriptions_0".orderId and "ordertosystemadescriptions_0".from_z <= DATE\'2015-08-14\' and "ordertosystemadescriptions_0".thru_z > DATE\'2015-08-14\') left outer join SystemAOrderDescriptionTable as "systemaorderdescriptiontable_0" on ("ordertosystemadescriptions_0".systemADescriptionId = "systemaorderdescriptiontable_0".descriptionId)', $result->sqlRemoveFormatting() ); } @@ -50,8 +53,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['ProductName', 'TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "productdescriptiontable_0".description as "stockProductName" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-08-15\' and "producttable_0".thru_z > \'2015-08-15\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= \'2015-08-15\' and "stockproducttable_1".thru_z > \'2015-08-15\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id)', - 'select "productdescriptiontable_0".description as "stockProductName" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-08-15\' and "producttable_0".thru_z > DATE\'2015-08-15\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= DATE\'2015-08-15\' and "stockproducttable_1".thru_z > DATE\'2015-08-15\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id)', + 'select "productdescriptiontable_0".description as "stockProductName" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-08-15\' and "producttable_0".thru_z > \'2015-08-15\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= \'2015-08-15\' and "stockproducttable_1".thru_z > \'2015-08-15\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id)', + 'select "productdescriptiontable_0".description as "stockProductName" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-08-15\' and "producttable_0".thru_z > DATE\'2015-08-15\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= DATE\'2015-08-15\' and "stockproducttable_1".thru_z > DATE\'2015-08-15\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id)', $result->sqlRemoveFormatting() ); } @@ -65,8 +68,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['SYS1', 'SYS1'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "systemtable_0".name as "systemName" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= \'2015-10-16\' and "productclassificationsystemtable_0".thru_z > \'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "systemtable_0".name as "systemName" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationsystemtable_0".thru_z > DATE\'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "systemtable_0".name as "systemName" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= \'2015-10-16\' and "productclassificationsystemtable_0".thru_z > \'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "systemtable_0".name as "systemName" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationsystemtable_0".thru_z > DATE\'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -80,8 +83,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: assertEquals(['ProductName2,STOCK', 'ProductName3,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -90,8 +93,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: { let result = execute(|Product.all(%latest)->project([p|$p.name, p|$p.classificationType],['name','classificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = \'9999-12-31 00:00:00.0000\') where "root".thru_z = \'9999-12-31 00:00:00.0000\'', - 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') where "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\'', + 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = \'9999-12-31 00:00:00.0000\') where "root".thru_z = \'9999-12-31 00:00:00.0000\'', + 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') where "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\'', $result->sqlRemoveFormatting() ); } @@ -105,8 +108,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: assertEquals(['ProductName2,STOCK', 'ProductName3,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where ("root".name <> \'\' OR "root".name is null) and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where ("root".name <> \'\' OR "root".name is null) and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where ("root".name <> \'\' OR "root".name is null) and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where ("root".name <> \'\' OR "root".name is null) and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -119,8 +122,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: assertEquals([ProductClassificationType.STOCK], $result.values->map(p|$p.classificationType)); assertEqualsH2Compatible( - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -134,8 +137,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: assertEquals(['2,smith', '3,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".id as "name", "newactivityinfotable_0".created_by as "classificationType" from ProductTable as "root" left outer join NewActivityInfoTable as "newactivityinfotable_0" on ("root".id = "newactivityinfotable_0".productId) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".id as "name", "newactivityinfotable_0".created_by as "classificationType" from ProductTable as "root" left outer join NewActivityInfoTable as "newactivityinfotable_0" on ("root".id = "newactivityinfotable_0".productId) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".id as "name", "newactivityinfotable_0".created_by as "classificationType" from ProductTable as "root" left outer join NewActivityInfoTable as "newactivityinfotable_0" on ("root".id = "newactivityinfotable_0".productId) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "name", "newactivityinfotable_0".created_by as "classificationType" from ProductTable as "root" left outer join NewActivityInfoTable as "newactivityinfotable_0" on ("root".id = "newactivityinfotable_0".productId) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -149,8 +152,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: assertEquals(['2,smith', '3,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".id as "name", "newactivityinfotable_0".created_by as "classificationType" from ProductTable as "root" left outer join CancelActivitiesTable as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId and "cancelactivitiestable_0".from_z <= \'2015-10-16\' and "cancelactivitiestable_0".thru_z > \'2015-10-16\') left outer join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_0".productId = "newactivityinfotable_0".productId) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".id as "name", "newactivityinfotable_0".created_by as "classificationType" from ProductTable as "root" left outer join CancelActivitiesTable as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId and "cancelactivitiestable_0".from_z <= DATE\'2015-10-16\' and "cancelactivitiestable_0".thru_z > DATE\'2015-10-16\') left outer join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_0".productId = "newactivityinfotable_0".productId) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".id as "name", "newactivityinfotable_0".created_by as "classificationType" from ProductTable as "root" left outer join CancelActivitiesTable as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId and "cancelactivitiestable_0".from_z <= \'2015-10-16\' and "cancelactivitiestable_0".thru_z > \'2015-10-16\') left outer join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_0".productId = "newactivityinfotable_0".productId) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "name", "newactivityinfotable_0".created_by as "classificationType" from ProductTable as "root" left outer join CancelActivitiesTable as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId and "cancelactivitiestable_0".from_z <= DATE\'2015-10-16\' and "cancelactivitiestable_0".thru_z > DATE\'2015-10-16\') left outer join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_0".productId = "newactivityinfotable_0".productId) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -164,8 +167,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: assertEquals(['2,smith', '3,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".id as "name", "cancelactivitiestable_0".created_by as "classificationType" from ProductTable as "root" left outer join (select "cancelactivitiestable_1".productId as productId, "newactivityinfotable_0".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_1" inner join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_1".productId = "newactivityinfotable_0".productId) where "newactivityinfotable_0".productId > 0 and "cancelactivitiestable_1".from_z <= \'2015-10-16\' and "cancelactivitiestable_1".thru_z > \'2015-10-16\') as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".id as "name", "cancelactivitiestable_0".created_by as "classificationType" from ProductTable as "root" left outer join (select "cancelactivitiestable_1".productId as productId, "newactivityinfotable_0".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_1" inner join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_1".productId = "newactivityinfotable_0".productId) where "newactivityinfotable_0".productId > 0 and "cancelactivitiestable_1".from_z <= DATE\'2015-10-16\' and "cancelactivitiestable_1".thru_z > DATE\'2015-10-16\') as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".id as "name", "cancelactivitiestable_0".created_by as "classificationType" from ProductTable as "root" left outer join (select "cancelactivitiestable_1".productId as productId, "newactivityinfotable_0".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_1" inner join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_1".productId = "newactivityinfotable_0".productId) where "newactivityinfotable_0".productId > 0 and "cancelactivitiestable_1".from_z <= \'2015-10-16\' and "cancelactivitiestable_1".thru_z > \'2015-10-16\') as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "name", "cancelactivitiestable_0".created_by as "classificationType" from ProductTable as "root" left outer join (select "cancelactivitiestable_1".productId as productId, "newactivityinfotable_0".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_1" inner join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_1".productId = "newactivityinfotable_0".productId) where "newactivityinfotable_0".productId > 0 and "cancelactivitiestable_1".from_z <= DATE\'2015-10-16\' and "cancelactivitiestable_1".thru_z > DATE\'2015-10-16\') as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -175,8 +178,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: let businessDate = %2015-10-16; let result = execute(|Product.all($businessDate)->filter(p| $p.cancelProductActivity.createdBy == 'David' || $p.newActivity.createdBy == 'Peter'), propagationMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "cancelactivitiestable_0".created_by as "cancelProductActivityCreatedBy", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join (select "cancelactivitiestable_0".productId as productId, "cancelactivitiestable_0".from_z as from_z, "cancelactivitiestable_0".thru_z as thru_z, "newactivityinfotable_0".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_0" inner join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_0".productId = "newactivityinfotable_0".productId and "newactivityinfotable_0".from_z <= \'2015-10-16\' and "newactivityinfotable_0".thru_z > \'2015-10-16\')) as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId and "cancelactivitiestable_0".from_z <= \'2015-10-16\' and "cancelactivitiestable_0".thru_z > \'2015-10-16\') left outer join (select "cancelactivitiestable_2".productId as productId, "newactivityinfotable_1".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_2" inner join NewActivityInfoTable as "newactivityinfotable_1" on ("cancelactivitiestable_2".productId = "newactivityinfotable_1".productId) where "newactivityinfotable_1".productId > 0 and "cancelactivitiestable_2".from_z <= \'2015-10-16\' and "cancelactivitiestable_2".thru_z > \'2015-10-16\') as "cancelactivitiestable_1" on ("root".id = "cancelactivitiestable_1".productId) left outer join NewActivityInfoTable as "newactivityinfotable_2" on ("root".id = "newactivityinfotable_2".productId) where ("cancelactivitiestable_1".created_by = \'David\' or "newactivityinfotable_2".created_by = \'Peter\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "cancelactivitiestable_0".created_by as "cancelProductActivityCreatedBy", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join (select "cancelactivitiestable_0".productId as productId, "cancelactivitiestable_0".from_z as from_z, "cancelactivitiestable_0".thru_z as thru_z, "newactivityinfotable_0".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_0" inner join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_0".productId = "newactivityinfotable_0".productId and "newactivityinfotable_0".from_z <= DATE\'2015-10-16\' and "newactivityinfotable_0".thru_z > DATE\'2015-10-16\')) as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId and "cancelactivitiestable_0".from_z <= DATE\'2015-10-16\' and "cancelactivitiestable_0".thru_z > DATE\'2015-10-16\') left outer join (select "cancelactivitiestable_2".productId as productId, "newactivityinfotable_1".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_2" inner join NewActivityInfoTable as "newactivityinfotable_1" on ("cancelactivitiestable_2".productId = "newactivityinfotable_1".productId) where "newactivityinfotable_1".productId > 0 and "cancelactivitiestable_2".from_z <= DATE\'2015-10-16\' and "cancelactivitiestable_2".thru_z > DATE\'2015-10-16\') as "cancelactivitiestable_1" on ("root".id = "cancelactivitiestable_1".productId) left outer join NewActivityInfoTable as "newactivityinfotable_2" on ("root".id = "newactivityinfotable_2".productId) where ("cancelactivitiestable_1".created_by = \'David\' or "newactivityinfotable_2".created_by = \'Peter\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "cancelactivitiestable_0".created_by as "cancelProductActivityCreatedBy", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join (select "cancelactivitiestable_0".productId as productId, "cancelactivitiestable_0".from_z as from_z, "cancelactivitiestable_0".thru_z as thru_z, "newactivityinfotable_0".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_0" inner join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_0".productId = "newactivityinfotable_0".productId and "newactivityinfotable_0".from_z <= \'2015-10-16\' and "newactivityinfotable_0".thru_z > \'2015-10-16\')) as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId and "cancelactivitiestable_0".from_z <= \'2015-10-16\' and "cancelactivitiestable_0".thru_z > \'2015-10-16\') left outer join (select "cancelactivitiestable_2".productId as productId, "newactivityinfotable_1".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_2" inner join NewActivityInfoTable as "newactivityinfotable_1" on ("cancelactivitiestable_2".productId = "newactivityinfotable_1".productId) where "newactivityinfotable_1".productId > 0 and "cancelactivitiestable_2".from_z <= \'2015-10-16\' and "cancelactivitiestable_2".thru_z > \'2015-10-16\') as "cancelactivitiestable_1" on ("root".id = "cancelactivitiestable_1".productId) left outer join NewActivityInfoTable as "newactivityinfotable_2" on ("root".id = "newactivityinfotable_2".productId) where ("cancelactivitiestable_1".created_by = \'David\' or "newactivityinfotable_2".created_by = \'Peter\') and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "cancelactivitiestable_0".created_by as "cancelProductActivityCreatedBy", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join (select "cancelactivitiestable_0".productId as productId, "cancelactivitiestable_0".from_z as from_z, "cancelactivitiestable_0".thru_z as thru_z, "newactivityinfotable_0".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_0" inner join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_0".productId = "newactivityinfotable_0".productId and "newactivityinfotable_0".from_z <= DATE\'2015-10-16\' and "newactivityinfotable_0".thru_z > DATE\'2015-10-16\')) as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId and "cancelactivitiestable_0".from_z <= DATE\'2015-10-16\' and "cancelactivitiestable_0".thru_z > DATE\'2015-10-16\') left outer join (select "cancelactivitiestable_2".productId as productId, "newactivityinfotable_1".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_2" inner join NewActivityInfoTable as "newactivityinfotable_1" on ("cancelactivitiestable_2".productId = "newactivityinfotable_1".productId) where "newactivityinfotable_1".productId > 0 and "cancelactivitiestable_2".from_z <= DATE\'2015-10-16\' and "cancelactivitiestable_2".thru_z > DATE\'2015-10-16\') as "cancelactivitiestable_1" on ("root".id = "cancelactivitiestable_1".productId) left outer join NewActivityInfoTable as "newactivityinfotable_2" on ("root".id = "newactivityinfotable_2".productId) where ("cancelactivitiestable_1".created_by = \'David\' or "newactivityinfotable_2".created_by = \'Peter\') and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -190,8 +193,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: assertEquals(['2,TDSNull', '3,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".id as "name", "cancelactivitiestable_0".created_by as "cancelProductActivityCreatedBy" from ProductTable as "root" left outer join (select "cancelactivitiestable_1".productId as productId, "newactivityinfotable_0".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_1" inner join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_1".productId = "newactivityinfotable_0".productId) where "newactivityinfotable_0".from_z <= \'2015-10-16\' and "newactivityinfotable_0".thru_z > \'2015-10-16\' and "cancelactivitiestable_1".from_z <= \'2015-10-16\' and "cancelactivitiestable_1".thru_z > \'2015-10-16\') as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".id as "name", "cancelactivitiestable_0".created_by as "cancelProductActivityCreatedBy" from ProductTable as "root" left outer join (select "cancelactivitiestable_1".productId as productId, "newactivityinfotable_0".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_1" inner join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_1".productId = "newactivityinfotable_0".productId) where "newactivityinfotable_0".from_z <= DATE\'2015-10-16\' and "newactivityinfotable_0".thru_z > DATE\'2015-10-16\' and "cancelactivitiestable_1".from_z <= DATE\'2015-10-16\' and "cancelactivitiestable_1".thru_z > DATE\'2015-10-16\') as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".id as "name", "cancelactivitiestable_0".created_by as "cancelProductActivityCreatedBy" from ProductTable as "root" left outer join (select "cancelactivitiestable_1".productId as productId, "newactivityinfotable_0".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_1" inner join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_1".productId = "newactivityinfotable_0".productId) where "newactivityinfotable_0".from_z <= \'2015-10-16\' and "newactivityinfotable_0".thru_z > \'2015-10-16\' and "cancelactivitiestable_1".from_z <= \'2015-10-16\' and "cancelactivitiestable_1".thru_z > \'2015-10-16\') as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "name", "cancelactivitiestable_0".created_by as "cancelProductActivityCreatedBy" from ProductTable as "root" left outer join (select "cancelactivitiestable_1".productId as productId, "newactivityinfotable_0".created_by as created_by from CancelActivitiesTable as "cancelactivitiestable_1" inner join NewActivityInfoTable as "newactivityinfotable_0" on ("cancelactivitiestable_1".productId = "newactivityinfotable_0".productId) where "newactivityinfotable_0".from_z <= DATE\'2015-10-16\' and "newactivityinfotable_0".thru_z > DATE\'2015-10-16\' and "cancelactivitiestable_1".from_z <= DATE\'2015-10-16\' and "cancelactivitiestable_1".thru_z > DATE\'2015-10-16\') as "cancelactivitiestable_0" on ("root".id = "cancelactivitiestable_0".productId) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -205,8 +208,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: assertEquals(['2,SYS1 description 1-v1', '2,SYS1 description 1-v2', '3,SYS1 description 1-v1', '3,SYS1 description 1-v2'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".id as "name", "systemdescriptiontable_0".description as "sysDescription" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".id as "name", "systemdescriptiontable_0".description as "sysDescription" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".id as "name", "systemdescriptiontable_0".description as "sysDescription" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "name", "systemdescriptiontable_0".description as "sysDescription" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -215,8 +218,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: { let result = execute(|Product.all(%latest)->project([p|$p.id, p|$p.referenceSystem.systemDescriptionAllVersions.description],['name','sysDescription']), propagationMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "root".id as "name", "systemdescriptiontable_0".description as "sysDescription" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName) where "root".thru_z = \'9999-12-31 00:00:00.0000\'', - 'select "root".id as "name", "systemdescriptiontable_0".description as "sysDescription" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName) where "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\'', + 'select "root".id as "name", "systemdescriptiontable_0".description as "sysDescription" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName) where "root".thru_z = \'9999-12-31 00:00:00.0000\'', + 'select "root".id as "name", "systemdescriptiontable_0".description as "sysDescription" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName) where "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\'', $result->sqlRemoveFormatting() ); } @@ -230,8 +233,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: assertEquals(['1,TDSNull', '2,SYS1 description 1-v1', '2,SYS1 description 1-v2'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".id as "name", "systemdescriptiontable_0".description as "sysDescription" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("producttable_0".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName)', - 'select "root".id as "name", "systemdescriptiontable_0".description as "sysDescription" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-10-16\' and "producttable_0".thru_z > DATE\'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("producttable_0".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName)', + 'select "root".id as "name", "systemdescriptiontable_0".description as "sysDescription" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("producttable_0".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName)', + 'select "root".id as "name", "systemdescriptiontable_0".description as "sysDescription" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-10-16\' and "producttable_0".thru_z > DATE\'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("producttable_0".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName)', $result->sqlRemoveFormatting() ); } @@ -242,8 +245,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $resultWithDatePropogated.values->at(0); assertEquals(['2,STOCK'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".id as "id", "productclassificationtable_1".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-15\' and "productclassificationtable_0".thru_z > \'2015-10-15\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".id as "id", "productclassificationtable_1".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-15\' and "productclassificationtable_0".thru_z > DATE\'2015-10-15\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".id as "id", "productclassificationtable_1".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-15\' and "productclassificationtable_0".thru_z > \'2015-10-15\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "id", "productclassificationtable_1".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-15\' and "productclassificationtable_0".thru_z > DATE\'2015-10-15\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $resultWithDatePropogated->sqlRemoveFormatting() ); let resultWithDateSpecified = execute(|Product.all(%2015-10-16)->filter(p|$p.classification(%2015-10-15).type=='STOCK')->project([p|$p.id, p|$p.classification(%2015-10-16).type],['id','classificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); @@ -259,8 +262,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: assertEquals(['ProductName2'], $products->map(p|$p.name)); assertEquals([%2015-10-16], $products->map(p|$p.businessDate)); assertEqualsH2Compatible( - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -271,8 +274,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['STOCK'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "productclassificationtable_0".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -285,8 +288,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: assertEquals(['ProductName2'], $products->map(p|$p.name)); assertEquals([%2015-10-16], $products->map(p|$p.businessDate)); assertEqualsH2Compatible( - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-17\' and "productclassificationtable_1".thru_z > \'2015-10-17\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-17\' and "productclassificationtable_1".thru_z > DATE\'2015-10-17\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= \'2015-10-16\' and "stockproducttable_0".thru_z > \'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-17\' and "productclassificationtable_1".thru_z > \'2015-10-17\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'2015-10-16\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".from_z <= DATE\'2015-10-16\' and "stockproducttable_0".thru_z > DATE\'2015-10-16\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-17\' and "productclassificationtable_1".thru_z > DATE\'2015-10-17\') where "productclassificationtable_1".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -295,8 +298,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: { let result = execute(|Product.all(%latest)->filter(p|$p.classification(%2015-10-17).type=='STOCK'), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'9999-12-31T00:00:00.0000+0000\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".thru_z = \'9999-12-31 00:00:00.0000\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = \'9999-12-31 00:00:00.0000\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-17\' and "productclassificationtable_1".thru_z > \'2015-10-17\') where "productclassificationtable_1".type = \'STOCK\' and "root".thru_z = \'9999-12-31 00:00:00.0000\'', - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'9999-12-31T00:00:00.0000+0000\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-17\' and "productclassificationtable_1".thru_z > DATE\'2015-10-17\') where "productclassificationtable_1".type = \'STOCK\' and "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'9999-12-31T00:00:00.0000+0000\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".thru_z = \'9999-12-31 00:00:00.0000\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = \'9999-12-31 00:00:00.0000\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-17\' and "productclassificationtable_1".thru_z > \'2015-10-17\') where "productclassificationtable_1".type = \'STOCK\' and "root".thru_z = \'9999-12-31 00:00:00.0000\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'9999-12-31T00:00:00.0000+0000\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-17\' and "productclassificationtable_1".thru_z > DATE\'2015-10-17\') where "productclassificationtable_1".type = \'STOCK\' and "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\'', $result->sqlRemoveFormatting() ); } @@ -305,8 +308,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: { let result = execute(|Product.all(%latest)->filter(p|$p.classification.type=='STOCK'), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'9999-12-31T00:00:00.0000+0000\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".thru_z = \'9999-12-31 00:00:00.0000\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = \'9999-12-31 00:00:00.0000\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".thru_z = \'9999-12-31 00:00:00.0000\') where "productclassificationtable_1".type = \'STOCK\' and "root".thru_z = \'9999-12-31 00:00:00.0000\'', - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'9999-12-31T00:00:00.0000+0000\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') where "productclassificationtable_1".type = \'STOCK\' and "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'9999-12-31T00:00:00.0000+0000\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".thru_z = \'9999-12-31 00:00:00.0000\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = \'9999-12-31 00:00:00.0000\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".thru_z = \'9999-12-31 00:00:00.0000\') where "productclassificationtable_1".type = \'STOCK\' and "root".thru_z = \'9999-12-31 00:00:00.0000\'', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", "productdescriptiontable_0".description as "stockProductName", "productclassificationtable_0".type as "classificationType", \'9999-12-31T00:00:00.0000+0000\' as "k_businessDate" from ProductTable as "root" left outer join StockProductTable as "stockproducttable_0" on ("root".id = "stockproducttable_0".id and "stockproducttable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') where "productclassificationtable_1".type = \'STOCK\' and "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\'', $result->sqlRemoveFormatting() ); } @@ -317,8 +320,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['STOCK'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "productclassificationtable_1".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2017-10-16\' and "productclassificationtable_0".thru_z > \'2017-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2018-10-16\' and "productclassificationtable_1".thru_z > \'2018-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "productclassificationtable_1".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2017-10-16\' and "productclassificationtable_0".thru_z > DATE\'2017-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2018-10-16\' and "productclassificationtable_1".thru_z > DATE\'2018-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "productclassificationtable_1".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2017-10-16\' and "productclassificationtable_0".thru_z > \'2017-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2018-10-16\' and "productclassificationtable_1".thru_z > \'2018-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "productclassificationtable_1".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2017-10-16\' and "productclassificationtable_0".thru_z > DATE\'2017-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2018-10-16\' and "productclassificationtable_1".thru_z > DATE\'2018-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -329,8 +332,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['STOCK'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "productclassificationtable_1".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2017-10-16\' and "productclassificationtable_0".thru_z > \'2017-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "productclassificationtable_1".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2017-10-16\' and "productclassificationtable_0".thru_z > DATE\'2017-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "productclassificationtable_1".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2017-10-16\' and "productclassificationtable_0".thru_z > \'2017-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= \'2015-10-16\' and "productclassificationtable_1".thru_z > \'2015-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "productclassificationtable_1".type as "classificationType" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2017-10-16\' and "productclassificationtable_0".thru_z > DATE\'2017-10-16\') left outer join ProductClassificationTable as "productclassificationtable_1" on ("root".type = "productclassificationtable_1".type and "productclassificationtable_1".from_z <= DATE\'2015-10-16\' and "productclassificationtable_1".thru_z > DATE\'2015-10-16\') where "productclassificationtable_0".type = \'STOCK\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -341,8 +344,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['2','3'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".id as "id" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName and "systemdescriptiontable_0".from_z <= \'2014-10-17\' and "systemdescriptiontable_0".thru_z > \'2014-10-17\') where "systemdescriptiontable_0".description = \'SYS1 description 1-v1\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".id as "id" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName and "systemdescriptiontable_0".from_z <= DATE\'2014-10-17\' and "systemdescriptiontable_0".thru_z > DATE\'2014-10-17\') where "systemdescriptiontable_0".description = \'SYS1 description 1-v1\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".id as "id" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName and "systemdescriptiontable_0".from_z <= \'2014-10-17\' and "systemdescriptiontable_0".thru_z > \'2014-10-17\') where "systemdescriptiontable_0".description = \'SYS1 description 1-v1\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "id" from ProductTable as "root" left outer join SystemTable as "systemtable_0" on ("root".referenceSystemName = "systemtable_0".name) left outer join SystemDescriptionTable as "systemdescriptiontable_0" on ("systemtable_0".name = "systemdescriptiontable_0".systemName and "systemdescriptiontable_0".from_z <= DATE\'2014-10-17\' and "systemdescriptiontable_0".thru_z > DATE\'2014-10-17\') where "systemdescriptiontable_0".description = \'SYS1 description 1-v1\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -352,7 +355,7 @@ function <> meta::relational::tests::milestoning::contextpropagation: // { // let resultWithDatePropagated = execute(|Product.all(%2015-10-16)->map(p|$p.classification(%2015-1-15))->project([c|$c.description, c|$c.exchange.name], ['productClassificationDescription','productClassificationExchangeName']), milestoningmap,testRuntime(), meta::relational::extension::relationalExtensions()); // let tds = $resultWithDatePropagated.values->at(0); - + // assertEquals(['OPTION DESC-V1,ISE'],$tds.rows->map(r|$r.values->makeString(','))); // assertSameSQL('select "ProductClassificationTable_d#2_f_d#4_d#2_f_d_m1".type_description as "productClassificationDescription", "ProductExchangeTable_d#6_d_m2_md".name as "productClassificationExchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "ProductClassificationTable_d#2_f_d#4_d#2_f_d_m1" on ("root".type = "ProductClassificationTable_d#2_f_d#4_d#2_f_d_m1".type) left outer join (select "ProductExchangeTable_d#6".name as name from ProductExchangeTable as "ProductExchangeTable_d#6" where "ProductExchangeTable_d#6".from_z <= \'2015-01-15\' and "ProductExchangeTable_d#6".thru_z > \'2015-01-15\') as "ProductExchangeTable_d#6_d_m2_md" on ("ProductClassificationTable_d#2_f_d#4_d#2_f_d_m1".exchange = "ProductExchangeTable_d#6_d_m2_md".name) where "ProductClassificationTable_d#2_f_d#4_d#2_f_d_m1".from_z <= \'2015-01-15\' and "ProductClassificationTable_d#2_f_d#4_d#2_f_d_m1".thru_z > \'2015-01-15\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'',$resultWithDatePropagated->sqlRemoveFormatting()); // let resultWithDateSpecified = execute(|Product.all(%2015-10-16)->map(p|$p.classification(%2015-1-15))->project([c|$c.description, c|$c.exchange(%2015-1-15).name], ['productClassificationDescription','productClassificationExchangeName']), milestoningmap,testRuntime(), meta::relational::extension::relationalExtensions()); @@ -385,7 +388,7 @@ function <> meta::relational::tests::milestoning::context { let result = execute(|Product.all(%2015-10-16)->map(p|$p.classification)->project([c|$c.type], ['productClassificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); - + assertEquals(['STOCK'],$tds.rows->map(r|$r.values->makeString(','))); assertSameSQL('select "ProductClassificationTable_d#2_f_d#4_d#2_f_d_m1".type as "productClassificationType" from ProductTable as "root" left outer join ProductClassificationTable as "ProductClassificationTable_d#2_f_d#4_d#2_f_d_m1" on ("root".type = "ProductClassificationTable_d#2_f_d#4_d#2_f_d_m1".type) where "ProductClassificationTable_d#2_f_d#4_d#2_f_d_m1".from_z <= \'2015-10-16\' and "ProductClassificationTable_d#2_f_d#4_d#2_f_d_m1".thru_z > \'2015-10-16\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'',$result); } @@ -395,7 +398,7 @@ function <> meta::relational::tests::milestoning::context // { // let result = execute(|Product.all(%2015-10-16)->map(p|$p.classification)->project([c|$c.exchange.name], ['productClassificationExchangeName']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); // let tds = $result.values->at(0); - + // assertEquals(['LNSE'],$tds.rows->map(r|$r.values->makeString(','))); // assertSameSQL('select "ProductExchangeTable_d#6_d_m1_md".name as "productClassificationExchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "ProductClassificationTable_d#2_f_d#4_d#2_f_d_m1" on ("root".type = "ProductClassificationTable_d#2_f_d#4_d#2_f_d_m1".type) left outer join (select "ProductExchangeTable_d#6".name as name from ProductExchangeTable as "ProductExchangeTable_d#6" where "ProductExchangeTable_d#6".from_z <= \'2015-10-16\' and "ProductExchangeTable_d#6".thru_z > \'2015-10-16\') as "ProductExchangeTable_d#6_d_m1_md" on ("ProductClassificationTable_d#2_f_d#4_d#2_f_d_m1".exchange = "ProductExchangeTable_d#6_d_m1_md".name) where "ProductClassificationTable_d#2_f_d#4_d#2_f_d_m1".from_z <= \'2015-10-16\' and "ProductClassificationTable_d#2_f_d#4_d#2_f_d_m1".thru_z > \'2015-10-16\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'',$result); // } @@ -404,7 +407,7 @@ function <> meta::relational::tests::milestoning::context { let result = execute(|Product.all(%2015-10-16)->map(p|$p.classification)->project([c|$c.description, c|$c.exchange(%2014-1-15).name], ['productClassificationDescription','productClassificationExchangeName']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); - + assertEquals(['STOCK DESC-V3,LNSE'],$tds.rows->map(r|$r.values->makeString(','))); assertSameSQL('select "ProductClassificationTable_d#2_f_d#4_d#2_f_d_m1".type_description as "productClassificationDescription", "ProductExchangeTable_d#6_d_m2_md".name as "productClassificationExchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "ProductClassificationTable_d#2_f_d#4_d#2_f_d_m1" on ("root".type = "ProductClassificationTable_d#2_f_d#4_d#2_f_d_m1".type) left outer join (select "ProductExchangeTable_d#6".name as name from ProductExchangeTable as "ProductExchangeTable_d#6" where "ProductExchangeTable_d#6".from_z <= \'2014-01-15\' and "ProductExchangeTable_d#6".thru_z > \'2014-01-15\') as "ProductExchangeTable_d#6_d_m2_md" on ("ProductClassificationTable_d#2_f_d#4_d#2_f_d_m1".exchange = "ProductExchangeTable_d#6_d_m2_md".name) where "ProductClassificationTable_d#2_f_d#4_d#2_f_d_m1".from_z <= \'2015-10-16\' and "ProductClassificationTable_d#2_f_d#4_d#2_f_d_m1".thru_z > \'2015-10-16\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'',$result); } @@ -423,10 +426,10 @@ function <> meta::relational::tests::milestoning::contextpropagation: let resultWithDatePropogated = execute(|Product.all(%2015-10-16)->filter(p|$p.classification(%2015-10-15)->exists(c|$c.type=='STOCK'))->project([p|$p.id, p|$p.classification.type],['id','classificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $resultWithDatePropogated.values->at(0); assertEquals(['2,STOCK'],$tds.rows->map(r|$r.values->makeString(','))); - + assertEqualsH2Compatible( - 'select "root".id as "id", "productclassificationtable_2".type as "classificationType" from ProductTable as "root" left outer join (select distinct "productclassificationtable_1".type from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= \'2015-10-15\' and "productclassificationtable_1".thru_z > \'2015-10-15\' and "productclassificationtable_1".type = \'STOCK\') as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join ProductClassificationTable as "productclassificationtable_2" on ("root".type = "productclassificationtable_2".type and "productclassificationtable_2".from_z <= \'2015-10-16\' and "productclassificationtable_2".thru_z > \'2015-10-16\') where "productclassificationtable_0".type is not null and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".id as "id", "productclassificationtable_2".type as "classificationType" from ProductTable as "root" left outer join (select distinct "productclassificationtable_1".type from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= DATE\'2015-10-15\' and "productclassificationtable_1".thru_z > DATE\'2015-10-15\' and "productclassificationtable_1".type = \'STOCK\') as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join ProductClassificationTable as "productclassificationtable_2" on ("root".type = "productclassificationtable_2".type and "productclassificationtable_2".from_z <= DATE\'2015-10-16\' and "productclassificationtable_2".thru_z > DATE\'2015-10-16\') where "productclassificationtable_0".type is not null and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".id as "id", "productclassificationtable_2".type as "classificationType" from ProductTable as "root" left outer join (select distinct "productclassificationtable_1".type from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= \'2015-10-15\' and "productclassificationtable_1".thru_z > \'2015-10-15\' and "productclassificationtable_1".type = \'STOCK\') as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join ProductClassificationTable as "productclassificationtable_2" on ("root".type = "productclassificationtable_2".type and "productclassificationtable_2".from_z <= \'2015-10-16\' and "productclassificationtable_2".thru_z > \'2015-10-16\') where "productclassificationtable_0".type is not null and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".id as "id", "productclassificationtable_2".type as "classificationType" from ProductTable as "root" left outer join (select distinct "productclassificationtable_1".type from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= DATE\'2015-10-15\' and "productclassificationtable_1".thru_z > DATE\'2015-10-15\' and "productclassificationtable_1".type = \'STOCK\') as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type) left outer join ProductClassificationTable as "productclassificationtable_2" on ("root".type = "productclassificationtable_2".type and "productclassificationtable_2".from_z <= DATE\'2015-10-16\' and "productclassificationtable_2".thru_z > DATE\'2015-10-16\') where "productclassificationtable_0".type is not null and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $resultWithDatePropogated->sqlRemoveFormatting() ); let resultWithDateSpecified = execute(|Product.all(%2015-10-16)->filter(p|$p.classification(%2015-10-15)->exists(c|$c.type=='STOCK'))->project([p|$p.id, p|$p.classification(%2015-10-16).type],['id','classificationType']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); @@ -449,8 +452,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['1,STOCK DESC-V1', '2,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".id as "orderId", "productclassificationtable_0".type_description as "classificationDescription" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-08-15\' and "producttable_0".thru_z > \'2015-08-15\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".type_description as type_description from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= \'2015-08-15\' and "productclassificationtable_1".thru_z > \'2015-08-15\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type)', - 'select "root".id as "orderId", "productclassificationtable_0".type_description as "classificationDescription" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-08-15\' and "producttable_0".thru_z > DATE\'2015-08-15\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".type_description as type_description from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= DATE\'2015-08-15\' and "productclassificationtable_1".thru_z > DATE\'2015-08-15\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type)', + 'select "root".id as "orderId", "productclassificationtable_0".type_description as "classificationDescription" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-08-15\' and "producttable_0".thru_z > \'2015-08-15\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".type_description as type_description from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= \'2015-08-15\' and "productclassificationtable_1".thru_z > \'2015-08-15\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type)', + 'select "root".id as "orderId", "productclassificationtable_0".type_description as "classificationDescription" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-08-15\' and "producttable_0".thru_z > DATE\'2015-08-15\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".type_description as type_description from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= DATE\'2015-08-15\' and "productclassificationtable_1".thru_z > DATE\'2015-08-15\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type)', $result->sqlRemoveFormatting() ); } @@ -464,8 +467,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['1,STOCK DESC-V1', '2,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".id as "orderId", "productclassificationtable_0".type_description as "classificationDescription" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-08-15\' and "producttable_0".thru_z > \'2015-08-15\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".type_description as type_description from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= \'2015-08-15\' and "productclassificationtable_1".thru_z > \'2015-08-15\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type)', - 'select "root".id as "orderId", "productclassificationtable_0".type_description as "classificationDescription" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-08-15\' and "producttable_0".thru_z > DATE\'2015-08-15\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".type_description as type_description from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= DATE\'2015-08-15\' and "productclassificationtable_1".thru_z > DATE\'2015-08-15\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type)', + 'select "root".id as "orderId", "productclassificationtable_0".type_description as "classificationDescription" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= \'2015-08-15\' and "producttable_0".thru_z > \'2015-08-15\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".type_description as type_description from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= \'2015-08-15\' and "productclassificationtable_1".thru_z > \'2015-08-15\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type)', + 'select "root".id as "orderId", "productclassificationtable_0".type_description as "classificationDescription" from OrderTable as "root" left outer join ProductTable as "producttable_0" on ("root".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-08-15\' and "producttable_0".thru_z > DATE\'2015-08-15\') left outer join (select "productclassificationtable_1".type as type, "productclassificationtable_1".type_description as type_description from ProductClassificationTable as "productclassificationtable_1" where "productclassificationtable_1".from_z <= DATE\'2015-08-15\' and "productclassificationtable_1".thru_z > DATE\'2015-08-15\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type)', $result->sqlRemoveFormatting() ); } @@ -473,14 +476,14 @@ function <> meta::relational::tests::milestoning::contextpropagation: function <> meta::relational::tests::milestoning::contextpropagation::testMilestoningContextPropagatedThroughFilterToNoArgMilestonedQualifiedPropertyInProjectPath():Boolean[1] { let businessDate = %2015-8-15; - + let result = execute(|Product.all(%2015-10-16)->filter(p|$p.name!='')->project([#/Product/name#, #/Product/classification/description#]), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - + let tds = $result.values->at(0); assertEquals(['ProductName2,STOCK DESC-V3', 'ProductName3,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where ("root".name <> \'\' OR "root".name is null) and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where ("root".name <> \'\' OR "root".name is null) and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where ("root".name <> \'\' OR "root".name is null) and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where ("root".name <> \'\' OR "root".name is null) and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -490,10 +493,10 @@ function <> meta::relational::tests::milestoning::contextpropagation: let result = execute(|ProductClassification.all(%2015-10-16)->project([#/ProductClassification/product/stockProductName#]), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(['ProductName2'],$tds.rows->map(r|$r.values->makeString(','))); - let expectedLegacyH2SQL = 'select "productdescriptiontable_0".description as "stockProductName" from ProductClassificationTable as "root" left outer join ProductTable as "producttable_0" on ("producttable_0".type = "root".type and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= \'2015-10-16\' and "stockproducttable_1".thru_z > \'2015-10-16\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\''; - let expectedNewH2SQL = 'select "productdescriptiontable_0".description as "stockProductName" from ProductClassificationTable as "root" left outer join ProductTable as "producttable_0" on ("producttable_0".type = "root".type and "producttable_0".from_z <= DATE\'2015-10-16\' and "producttable_0".thru_z > DATE\'2015-10-16\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= DATE\'2015-10-16\' and "stockproducttable_1".thru_z > DATE\'2015-10-16\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\''; + let expectedLegacyH2SQL = 'select "productdescriptiontable_0".description as "stockProductName" from ProductClassificationTable as "root" left outer join ProductTable as "producttable_0" on ("producttable_0".type = "root".type and "producttable_0".from_z <= \'2015-10-16\' and "producttable_0".thru_z > \'2015-10-16\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= \'2015-10-16\' and "stockproducttable_1".thru_z > \'2015-10-16\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\''; + let expectedNewH2SQL = 'select "productdescriptiontable_0".description as "stockProductName" from ProductClassificationTable as "root" left outer join ProductTable as "producttable_0" on ("producttable_0".type = "root".type and "producttable_0".from_z <= DATE\'2015-10-16\' and "producttable_0".thru_z > DATE\'2015-10-16\') left outer join (select "stockproducttable_1".id as id from StockProductTable as "stockproducttable_1" where "stockproducttable_1".from_z <= DATE\'2015-10-16\' and "stockproducttable_1".thru_z > DATE\'2015-10-16\') as "stockproducttable_0" on ("producttable_0".id = "stockproducttable_0".id) left outer join ProductDescriptionTable as "productdescriptiontable_0" on ("stockproducttable_0".id = "productdescriptiontable_0".id) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\''; assertEqualsH2Compatible($expectedLegacyH2SQL, $expectedNewH2SQL, $result->sqlRemoveFormatting()); - let businessDate = %2015-8-15; + let businessDate = %2015-8-15; let resultWithVar = execute(|ProductClassification.all(%2015-10-16)->project([#/ProductClassification/product/stockProductName#]), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible($expectedLegacyH2SQL, $expectedNewH2SQL, $resultWithVar->sqlRemoveFormatting()); } @@ -501,14 +504,14 @@ function <> meta::relational::tests::milestoning::contextpropagation: function <> meta::relational::tests::milestoning::contextpropagation::testMilestoningContextPropagatedFromMilestoningQualifiedPropertyWithArgToNoArgMilestonedQualifiedPropertyInProjectPath():Boolean[1] { let businessDate = %2015-8-15; - + let result = execute(|Product.all(%2015-10-16)->filter(p|$p.name!='')->project([#/Product/name#, #/Product/classification(%2016-10-16)/exchange/name#],['productName','exchangeName']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); - + let tds = $result.values->at(0); assertEquals(['ProductName2,LNSE', 'ProductName3,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2016-10-16\' and "productclassificationtable_0".thru_z > \'2016-10-16\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= \'2016-10-16\' and "productexchangetable_1".thru_z > \'2016-10-16\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where ("root".name <> \'\' OR "root".name is null) and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2016-10-16\' and "productclassificationtable_0".thru_z > DATE\'2016-10-16\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= DATE\'2016-10-16\' and "productexchangetable_1".thru_z > DATE\'2016-10-16\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where ("root".name <> \'\' OR "root".name is null) and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2016-10-16\' and "productclassificationtable_0".thru_z > \'2016-10-16\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= \'2016-10-16\' and "productexchangetable_1".thru_z > \'2016-10-16\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where ("root".name <> \'\' OR "root".name is null) and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "productName", "productexchangetable_0".name as "exchangeName" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2016-10-16\' and "productclassificationtable_0".thru_z > DATE\'2016-10-16\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= DATE\'2016-10-16\' and "productexchangetable_1".thru_z > DATE\'2016-10-16\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where ("root".name <> \'\' OR "root".name is null) and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -516,14 +519,14 @@ function <> meta::relational::tests::milestoning::contextpropagation: function <> meta::relational::tests::milestoning::contextpropagation::testMilestoningContextPropagatedUsingVariableInProjectPath():Boolean[1] { let businessDate = %2015-10-16; - + let result = execute(|Product.all($businessDate)->project([#/Product/name#, #/Product/classification/description#]), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(['ProductName2,STOCK DESC-V3', 'ProductName3,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -531,14 +534,14 @@ function <> meta::relational::tests::milestoning::contextpropagation: function <> meta::relational::tests::milestoning::contextpropagation::testCurrentMappingPropagationThroughMilestonedQualifiedPropertyWithEmbeddedLeftSideToSubsequentPropertyInProjectPath():Boolean[1] { let businessDate = %2015-10-16; - + let result = execute(|StockProduct.all($businessDate)->project([#/Product/name#, #/Product/classification/system/name#],['productName','classificationSystemName']), milestoningMapWithEmbeddedSimple, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(['ProductName2,SYS1', 'ProductName3,SYS1'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".name as "productName", "systemtable_0".name as "classificationSystemName" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= \'2015-10-16\' and "productclassificationsystemtable_0".thru_z > \'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".name as "productName", "systemtable_0".name as "classificationSystemName" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationsystemtable_0".thru_z > DATE\'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".name as "productName", "systemtable_0".name as "classificationSystemName" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= \'2015-10-16\' and "productclassificationsystemtable_0".thru_z > \'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "productName", "systemtable_0".name as "classificationSystemName" from ProductTable as "root" left outer join ProductClassificationSystemTable as "productclassificationsystemtable_0" on ("root".classificationSystemId = "productclassificationsystemtable_0".id and "productclassificationsystemtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationsystemtable_0".thru_z > DATE\'2015-10-16\') left outer join SystemTable as "systemtable_0" on ("productclassificationsystemtable_0".name = "systemtable_0".name) where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -546,14 +549,14 @@ function <> meta::relational::tests::milestoning::contextpropagation: function <> meta::relational::tests::milestoning::contextpropagation::testMilestoningContextPropagatedUsingVariableInProject():Boolean[1] { let businessDate = %2015-10-16; - + let result = execute(|Product.all($businessDate)->project([p|$p.name, p|$p.classification.description],['name','description']), milestoningmap, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(['ProductName2,STOCK DESC-V3', 'ProductName3,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -573,8 +576,8 @@ function <> meta::relational::tests::milestoning::contextpropagation: let tds = $result.values->at(0); assertEquals(['ProductName2,STOCK DESC-V3', 'ProductName3,TDSNull'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', - 'select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') where "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\'', + 'select "root".name as "name", "productclassificationtable_0".type_description as "description" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') where "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\'', $result->sqlRemoveFormatting() ); } @@ -588,4 +591,5 @@ function <> meta::relational::tests::milestoning:: 'select "ordertable_1".aggCol as "classificationDescription" from OrderTable as "root" left outer join (select "ordertable_2".id as id, group_concat("productclassificationtable_0".type_description ) as aggCol from OrderTable as "ordertable_2" left outer join ProductTable as "producttable_0" on ("ordertable_2".prodFk = "producttable_0".id and "producttable_0".from_z <= DATE\'2015-08-14\' and "producttable_0".thru_z > DATE\'2015-08-14\') left outer join (select "productclassificationtable_0".type as type, "productclassificationtable_0".type_description as type_description from ProductClassificationTable as "productclassificationtable_0" where "productclassificationtable_0".from_z <= DATE\'2015-08-14\' and "productclassificationtable_0".thru_z > DATE\'2015-08-14\') as "productclassificationtable_0" on ("producttable_0".type = "productclassificationtable_0".type) group by "ordertable_2".id) as "ordertable_1" on ("root".id = "ordertable_1".id)', $result->sqlRemoveFormatting() ); -} \ No newline at end of file +} + diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testMilestoningWithDistinct.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testMilestoningWithDistinct.pure index e219dd61a47..3bdc5afe544 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testMilestoningWithDistinct.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testMilestoningWithDistinct.pure @@ -17,15 +17,17 @@ import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::mapping::*; import meta::relational::metamodel::execute::*; import meta::relational::functions::asserts::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::milestoning::*; import meta::relational::tests::milestoning::distinct::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::milestoning::distinct::setUp():Any[0..1] { - let connection = meta::relational::tests::testRuntime(milestoningdistinctdb).connections->toOne()->cast(@TestDatabaseConnection); - + let connection = meta::external::store::relational::tests::testRuntime(milestoningdistinctdb).connectionStores.connection->toOne()->cast(@TestDatabaseConnection); + executeInDb('drop table if exists ProductTable;',$connection); executeInDb('create table ProductTable (id Integer, name VARCHAR(200),type VARCHAR(200), from_z TIMESTAMP, thru_z TIMESTAMP);',$connection); executeInDb('insert into ProductTable values(1,\'ProductName\',\'STOCK\',\'2015-8-15 00:00:00\', \'9999-12-31 00:00:00\');',$connection); @@ -41,20 +43,20 @@ function <> meta::relational::tests::milestoning::distinct::testDisti let tds = $result.values->at(0); assertEquals(['1,ProductName,STOCK', '2,ProductName1,STOCK'], $tds.rows->map(r|$r.values->makeString(','))->sort()); assertEqualsH2Compatible( - 'select "root".id as "id", "root".name as "name", "root".type as "type" from (select distinct "producttable_1".id as id, "producttable_1".name as name, "producttable_1".type as type, \'2015-08-16\' as "k_businessDate" from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-08-16\' and "producttable_1".thru_z > \'2015-08-16\') as "root"', - 'select "root".id as "id", "root".name as "name", "root".type as "type" from (select distinct "producttable_1".id as id, "producttable_1".name as name, "producttable_1".type as type, \'2015-08-16\' as "k_businessDate" from ProductTable as "producttable_1" where "producttable_1".from_z <= DATE\'2015-08-16\' and "producttable_1".thru_z > DATE\'2015-08-16\') as "root"', + 'select "root".id as "id", "root".name as "name", "root".type as "type" from (select distinct "producttable_1".id as id, "producttable_1".name as name, "producttable_1".type as type, \'2015-08-16\' as "k_businessDate" from ProductTable as "producttable_1" where "producttable_1".from_z <= \'2015-08-16\' and "producttable_1".thru_z > \'2015-08-16\') as "root"', + 'select "root".id as "id", "root".name as "name", "root".type as "type" from (select distinct "producttable_1".id as id, "producttable_1".name as name, "producttable_1".type as type, \'2015-08-16\' as "k_businessDate" from ProductTable as "producttable_1" where "producttable_1".from_z <= DATE\'2015-08-16\' and "producttable_1".thru_z > DATE\'2015-08-16\') as "root"', $result->sqlRemoveFormatting() - ); + ); } ###Relational Database meta::relational::tests::milestoning::distinct::milestoningdistinctdb( - + Table ProductTable( milestoning( business(BUS_FROM=from_z, BUS_THRU=thru_z) ) - id Integer PRIMARY KEY, + id Integer PRIMARY KEY, name VARCHAR(200) PRIMARY KEY, type VARCHAR(200), from_z DATE PRIMARY KEY, @@ -69,9 +71,8 @@ Mapping meta::relational::tests::milestoning::distinct::milestoningdistinctmappi ( Product : Relational{ ~distinct - id : [milestoningdistinctdb]ProductTable.id, + id : [milestoningdistinctdb]ProductTable.id, name : [milestoningdistinctdb]ProductTable.name, type : [milestoningdistinctdb]ProductTable.type - } + } ) - \ No newline at end of file diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testMilestoningWithInclusive.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testMilestoningWithInclusive.pure index 7223f598d34..fd7b1fccaa7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testMilestoningWithInclusive.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testMilestoningWithInclusive.pure @@ -13,9 +13,11 @@ // limitations under the License. import meta::relational::functions::sqlQueryToString::h2::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::milestoning::*; import meta::relational::tests::milestoning::inclusive::*; @@ -26,7 +28,7 @@ function <> meta::relational::tests::milestoning::inclusive::testInFr let expectedNewSQL1 = 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate" from BiTemporalProductTable_In_From_Inclusive as "root" where "root".id = 2 and "root".in_z <= DATE\'2018-05-05\' and "root".out_z > DATE\'2018-05-05\' and "root".from_z <= DATE\'2018-05-04\' and "root".thru_z > DATE\'2018-05-04\''; assertEqualsH2Compatible($expectedLegacySQL1, $expectedNewSQL1, $result1->sqlRemoveFormatting()); assertSameElements(['def2'], $result1.values.name); - + let result2 = execute(|Order.all()->filter(o | $o.biTemporalProduct(%2018-05-05, %2018-05-04).name == 'def2'), InFromInclusiveMapping, testRuntime(), meta::relational::extension::relationalExtensions()); let expectedLegacySQL2 = 'select "root".id as "pk_0", "root".id as "id" from MyOrderTable as "root" left outer join BiTemporalProductTable_In_From_Inclusive as "bitemporalproducttable_in_from_inclusive_0" on ("root".prodFk = "bitemporalproducttable_in_from_inclusive_0".id and ("bitemporalproducttable_in_from_inclusive_0".in_z <= \'2018-05-05\' and "bitemporalproducttable_in_from_inclusive_0".out_z > \'2018-05-05\' and "bitemporalproducttable_in_from_inclusive_0".from_z <= \'2018-05-04\' and "bitemporalproducttable_in_from_inclusive_0".thru_z > \'2018-05-04\')) where "bitemporalproducttable_in_from_inclusive_0".name = \'def2\''; let expectedNewSQL2 = 'select "root".id as "pk_0", "root".id as "id" from MyOrderTable as "root" left outer join BiTemporalProductTable_In_From_Inclusive as "bitemporalproducttable_in_from_inclusive_0" on ("root".prodFk = "bitemporalproducttable_in_from_inclusive_0".id and ("bitemporalproducttable_in_from_inclusive_0".in_z <= DATE\'2018-05-05\' and "bitemporalproducttable_in_from_inclusive_0".out_z > DATE\'2018-05-05\' and "bitemporalproducttable_in_from_inclusive_0".from_z <= DATE\'2018-05-04\' and "bitemporalproducttable_in_from_inclusive_0".thru_z > DATE\'2018-05-04\')) where "bitemporalproducttable_in_from_inclusive_0".name = \'def2\''; @@ -41,7 +43,7 @@ function <> meta::relational::tests::milestoning::inclusive::testInTh let expectedNewSQL1 = 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate" from BiTemporalProductTable_In_Thru_Inclusive as "root" where "root".id = 2 and "root".in_z <= DATE\'2018-05-05\' and "root".out_z > DATE\'2018-05-05\' and "root".from_z < DATE\'2018-05-04\' and "root".thru_z >= DATE\'2018-05-04\''; assertEqualsH2Compatible($expectedLegacySQL1, $expectedNewSQL1, $result1->sqlRemoveFormatting()); assertSameElements(['def2'], $result1.values.name); - + let result2 = execute(|Order.all()->filter(o | $o.biTemporalProduct(%2018-05-05, %2018-05-04).name == 'def2'), InThruInclusiveMapping, testRuntime(), meta::relational::extension::relationalExtensions()); let expectedLegacySQL2 = 'select "root".id as "pk_0", "root".id as "id" from MyOrderTable as "root" left outer join BiTemporalProductTable_In_Thru_Inclusive as "bitemporalproducttable_in_thru_inclusive_0" on ("root".prodFk = "bitemporalproducttable_in_thru_inclusive_0".id and ("bitemporalproducttable_in_thru_inclusive_0".in_z <= \'2018-05-05\' and "bitemporalproducttable_in_thru_inclusive_0".out_z > \'2018-05-05\' and "bitemporalproducttable_in_thru_inclusive_0".from_z < \'2018-05-04\' and "bitemporalproducttable_in_thru_inclusive_0".thru_z >= \'2018-05-04\')) where "bitemporalproducttable_in_thru_inclusive_0".name = \'def2\''; let expectedNewSQL2 = 'select "root".id as "pk_0", "root".id as "id" from MyOrderTable as "root" left outer join BiTemporalProductTable_In_Thru_Inclusive as "bitemporalproducttable_in_thru_inclusive_0" on ("root".prodFk = "bitemporalproducttable_in_thru_inclusive_0".id and ("bitemporalproducttable_in_thru_inclusive_0".in_z <= DATE\'2018-05-05\' and "bitemporalproducttable_in_thru_inclusive_0".out_z > DATE\'2018-05-05\' and "bitemporalproducttable_in_thru_inclusive_0".from_z < DATE\'2018-05-04\' and "bitemporalproducttable_in_thru_inclusive_0".thru_z >= DATE\'2018-05-04\')) where "bitemporalproducttable_in_thru_inclusive_0".name = \'def2\''; @@ -56,7 +58,7 @@ function <> meta::relational::tests::milestoning::inclusive::testOutF let expectedNewH2SQL1 = 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate" from BiTemporalProductTable_Out_From_Inclusive as "root" where "root".id = 2 and "root".in_z < DATE\'2018-05-05\' and "root".out_z >= DATE\'2018-05-05\' and "root".from_z <= DATE\'2018-05-04\' and "root".thru_z > DATE\'2018-05-04\''; assertEqualsH2Compatible($expectedLegacyH2SQL1, $expectedNewH2SQL1, $result1->sqlRemoveFormatting()); assertSameElements(['def2'], $result1.values.name); - + let result2 = execute(|Order.all()->filter(o | $o.biTemporalProduct(%2018-05-05, %2018-05-04).name == 'def2'), OutFromInclusiveMapping, testRuntime(), meta::relational::extension::relationalExtensions()); let expectedLegacyH2SQL2 = 'select "root".id as "pk_0", "root".id as "id" from MyOrderTable as "root" left outer join BiTemporalProductTable_Out_From_Inclusive as "bitemporalproducttable_out_from_inclusive_0" on ("root".prodFk = "bitemporalproducttable_out_from_inclusive_0".id and ("bitemporalproducttable_out_from_inclusive_0".in_z < \'2018-05-05\' and "bitemporalproducttable_out_from_inclusive_0".out_z >= \'2018-05-05\' and "bitemporalproducttable_out_from_inclusive_0".from_z <= \'2018-05-04\' and "bitemporalproducttable_out_from_inclusive_0".thru_z > \'2018-05-04\')) where "bitemporalproducttable_out_from_inclusive_0".name = \'def2\''; let expectedNewH2SQL2 = 'select "root".id as "pk_0", "root".id as "id" from MyOrderTable as "root" left outer join BiTemporalProductTable_Out_From_Inclusive as "bitemporalproducttable_out_from_inclusive_0" on ("root".prodFk = "bitemporalproducttable_out_from_inclusive_0".id and ("bitemporalproducttable_out_from_inclusive_0".in_z < DATE\'2018-05-05\' and "bitemporalproducttable_out_from_inclusive_0".out_z >= DATE\'2018-05-05\' and "bitemporalproducttable_out_from_inclusive_0".from_z <= DATE\'2018-05-04\' and "bitemporalproducttable_out_from_inclusive_0".thru_z > DATE\'2018-05-04\')) where "bitemporalproducttable_out_from_inclusive_0".name = \'def2\''; @@ -71,7 +73,7 @@ function <> meta::relational::tests::milestoning::inclusive::testOutT let expectedNewH2SQL1 = 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", \'2018-05-05\' as "k_processingDate", \'2018-05-04\' as "k_businessDate" from BiTemporalProductTable_Out_Thru_Inclusive as "root" where "root".id = 2 and "root".in_z < DATE\'2018-05-05\' and "root".out_z >= DATE\'2018-05-05\' and "root".from_z < DATE\'2018-05-04\' and "root".thru_z >= DATE\'2018-05-04\''; assertEqualsH2Compatible($expectedLegacyH2SQL1, $expectedNewH2SQL1, $result1->sqlRemoveFormatting()); assertSameElements(['def2'], $result1.values.name); - + let result2 = execute(|Order.all()->filter(o | $o.biTemporalProduct(%2018-05-05, %2018-05-04).name == 'def2'), OutThruInclusiveMapping, testRuntime(), meta::relational::extension::relationalExtensions()); let expectedLegacyH2SQL2 = 'select "root".id as "pk_0", "root".id as "id" from MyOrderTable as "root" left outer join BiTemporalProductTable_Out_Thru_Inclusive as "bitemporalproducttable_out_thru_inclusive_0" on ("root".prodFk = "bitemporalproducttable_out_thru_inclusive_0".id and ("bitemporalproducttable_out_thru_inclusive_0".in_z < \'2018-05-05\' and "bitemporalproducttable_out_thru_inclusive_0".out_z >= \'2018-05-05\' and "bitemporalproducttable_out_thru_inclusive_0".from_z < \'2018-05-04\' and "bitemporalproducttable_out_thru_inclusive_0".thru_z >= \'2018-05-04\')) where "bitemporalproducttable_out_thru_inclusive_0".name = \'def2\''; let expectedNewH2SQL2 = 'select "root".id as "pk_0", "root".id as "id" from MyOrderTable as "root" left outer join BiTemporalProductTable_Out_Thru_Inclusive as "bitemporalproducttable_out_thru_inclusive_0" on ("root".prodFk = "bitemporalproducttable_out_thru_inclusive_0".id and ("bitemporalproducttable_out_thru_inclusive_0".in_z < DATE\'2018-05-05\' and "bitemporalproducttable_out_thru_inclusive_0".out_z >= DATE\'2018-05-05\' and "bitemporalproducttable_out_thru_inclusive_0".from_z < DATE\'2018-05-04\' and "bitemporalproducttable_out_thru_inclusive_0".thru_z >= DATE\'2018-05-04\')) where "bitemporalproducttable_out_thru_inclusive_0".name = \'def2\''; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testOtherwise.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testOtherwise.pure index 6afa11e0a3b..c98556c04b0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testOtherwise.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testOtherwise.pure @@ -24,11 +24,11 @@ function <> meta::relational::tests::milestoning::otherwise: function <> meta::relational::tests::milestoning::otherwise::testAssoWithOtherwise():Boolean[1] { let result = execute(|meta::relational::tests::milestoning::StockProduct.all(%latest)->project(p|$p.classification(%latest).description, 'ok'), - meta::relational::tests::milestoning::otherwiseMapping, - meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions(), noDebug()); + meta::relational::tests::milestoning::otherwiseMapping, + meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions(), noDebug()); assertEqualsH2Compatible( - 'select "productclassificationtable_0".type_description as "ok" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".type = \'STOCK\' and "productclassificationtable_0".thru_z = \'9999-12-31 00:00:00.0000\') where "root".type = \'STOCK\' and "root".thru_z = \'9999-12-31 00:00:00.0000\'', - 'select "productclassificationtable_0".type_description as "ok" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".type = \'STOCK\' and "productclassificationtable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') where "root".type = \'STOCK\' and "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\'', + 'select "productclassificationtable_0".type_description as "ok" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".type = \'STOCK\' and "productclassificationtable_0".thru_z = \'9999-12-31 00:00:00.0000\') where "root".type = \'STOCK\' and "root".thru_z = \'9999-12-31 00:00:00.0000\'', + 'select "productclassificationtable_0".type_description as "ok" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".type = \'STOCK\' and "productclassificationtable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\') where "root".type = \'STOCK\' and "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\'', $result->sqlRemoveFormatting() ); } @@ -36,11 +36,11 @@ function <> meta::relational::tests::milestoning::otherwise::testAsso function <> meta::relational::tests::milestoning::otherwise::testAssoWithOtherwiseDeep():Boolean[1] { let result = execute(|meta::relational::tests::milestoning::StockProduct.all(%latest)->project(p|$p.classification(%2008-10-10).exchange(%2009-12-10).name, 'ok'), - meta::relational::tests::milestoning::otherwiseMapping, - meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions(), noDebug()); + meta::relational::tests::milestoning::otherwiseMapping, + meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions(), noDebug()); assertEqualsH2Compatible( - 'select "productexchangetable_0".name as "ok" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".type = \'STOCK\' and "productclassificationtable_0".from_z <= \'2008-10-10\' and "productclassificationtable_0".thru_z > \'2008-10-10\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= \'2009-12-10\' and "productexchangetable_1".thru_z > \'2009-12-10\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".type = \'STOCK\' and "root".thru_z = \'9999-12-31 00:00:00.0000\'', - 'select "productexchangetable_0".name as "ok" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".type = \'STOCK\' and "productclassificationtable_0".from_z <= DATE\'2008-10-10\' and "productclassificationtable_0".thru_z > DATE\'2008-10-10\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= DATE\'2009-12-10\' and "productexchangetable_1".thru_z > DATE\'2009-12-10\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".type = \'STOCK\' and "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\'', + 'select "productexchangetable_0".name as "ok" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".type = \'STOCK\' and "productclassificationtable_0".from_z <= \'2008-10-10\' and "productclassificationtable_0".thru_z > \'2008-10-10\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= \'2009-12-10\' and "productexchangetable_1".thru_z > \'2009-12-10\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".type = \'STOCK\' and "root".thru_z = \'9999-12-31 00:00:00.0000\'', + 'select "productexchangetable_0".name as "ok" from ProductTable as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".type = \'STOCK\' and "productclassificationtable_0".from_z <= DATE\'2008-10-10\' and "productclassificationtable_0".thru_z > DATE\'2008-10-10\') left outer join (select "productexchangetable_1".name as name from ProductExchangeTable as "productexchangetable_1" where "productexchangetable_1".from_z <= DATE\'2009-12-10\' and "productexchangetable_1".thru_z > DATE\'2009-12-10\') as "productexchangetable_0" on ("productclassificationtable_0".exchange = "productexchangetable_0".name) where "root".type = \'STOCK\' and "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.0000\'', $result->sqlRemoveFormatting() ); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testProcessingDateMilestoning.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testProcessingDateMilestoning.pure index 9d102591ed1..3a860319bbf 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testProcessingDateMilestoning.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testProcessingDateMilestoning.pure @@ -17,6 +17,7 @@ import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::milestoning::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::milestoning::processingDate::setUp():Any[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/milestoning/tests/testTemporalDate.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testTemporalDate.pure index d5c1b35c928..ccc67f8ad6b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testTemporalDate.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testTemporalDate.pure @@ -18,6 +18,7 @@ import meta::relational::mapping::*; import meta::relational::functions::asserts::*; import meta::relational::tests::milestoning::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::milestoning::temporalDate::testBusinessDateForAllVersions():Boolean[1] { diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testTemporalMilestoningPostProcessor.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testTemporalMilestoningPostProcessor.pure index a0a8b616db3..446e8d2d846 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testTemporalMilestoningPostProcessor.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testTemporalMilestoningPostProcessor.pure @@ -18,11 +18,13 @@ import meta::pure::extension::*; import meta::relational::extension::*; import meta::relational::tests::milestoning::multi::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::milestoning::temporalpostprocessor::*; import meta::relational::postProcessor::*; import meta::relational::functions::database::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::functions::asserts::*; import meta::relational::tests::milestoning::temporalpostprocessor::*; import meta::relational::milestoning::*; @@ -30,6 +32,7 @@ import meta::relational::metamodel::operation::*; import meta::relational::metamodel::*; import meta::relational::tests::csv::metamodel::execute::*; import meta::relational::metamodel::relation::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::model::simple::*; @@ -43,7 +46,7 @@ function <> meta::relational::tests::milestoning:: { meta::relational::tests::milestoning::initSimpleRelationalDbWithMilestoningColumns(); let ignoredDate = %2015-10-16T00:00:00; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let latestDatePP = dateEqualityTemporalMilestoningProcessor(meta::relational::tests::db, 'thru_z', %9999-12-31T00:00:00.000, relationalExtensions()); @@ -53,8 +56,9 @@ function <> meta::relational::tests::milestoning:: let tds = $result.values->at(0); assertEquals(['Firm A,ISIN1', 'Firm D,ISIN2'],$tds.rows->map(r|$r.values->makeString(','))); assertEqualsH2Compatible( - 'select "root".NAME as "name", "synonymtable_0".NAME as "synonym" from productSchema.productTable as "root" left outer join productSchema.synonymTable as "synonymtable_0" on ("synonymtable_0".PRODID = "root".ID and "synonymtable_0".thru_z = \'9999-12-31 00:00:00.000\') where "root".thru_z = \'9999-12-31 00:00:00.000\'', - 'select "root".NAME as "name", "synonymtable_0".NAME as "synonym" from productSchema.productTable as "root" left outer join productSchema.synonymTable as "synonymtable_0" on ("synonymtable_0".PRODID = "root".ID and "synonymtable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.000\') where "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.000\'', + 'select "root".NAME as "name", "synonymtable_0".NAME as "synonym" from productSchema.productTable as "root" left outer join productSchema.synonymTable as "synonymtable_0" on ("synonymtable_0".PRODID = "root".ID and "synonymtable_0".thru_z = \'9999-12-31 00:00:00.000\') where "root".thru_z = \'9999-12-31 00:00:00.000\'', + 'select "root".NAME as "name", "synonymtable_0".NAME as "synonym" from productSchema.productTable as "root" left outer join productSchema.synonymTable as "synonymtable_0" on ("synonymtable_0".PRODID = "root".ID and "synonymtable_0".thru_z = TIMESTAMP\'9999-12-31 00:00:00.000\') where "root".thru_z = TIMESTAMP\'9999-12-31 00:00:00.000\'', $result->sqlRemoveFormatting() ); -} \ No newline at end of file +} + diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testTemporalRangeQuery.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testTemporalRangeQuery.pure index a9b10f01c95..07076b56590 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testTemporalRangeQuery.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testTemporalRangeQuery.pure @@ -19,6 +19,7 @@ import meta::relational::functions::asserts::*; import meta::relational::tests::milestoning::businessdate::*; import meta::relational::tests::milestoning::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::milestoning::rangeQuery::testBusinessTemporalRangeQueryOnRoot():Boolean[1] { diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testUnionOperationWithHybridMilestoningAcrossTables.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testUnionOperationWithHybridMilestoningAcrossTables.pure index 2620ac5b888..69a4335bd55 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testUnionOperationWithHybridMilestoningAcrossTables.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/milestoning/tests/testUnionOperationWithHybridMilestoningAcrossTables.pure @@ -14,10 +14,12 @@ ###Pure import meta::relational::functions::sqlQueryToString::h2::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::milestoning::*; import meta::relational::tests::milestoning::union::*; @@ -25,14 +27,14 @@ function <> meta::relational::tests::milestoning::union::testHybridMi { let result = execute(|Order.all()->filter(o|$o.biTemporalProduct(%2015-8-25, %2018-8-26).name == 'ProductName1'), hybridMilestoningUnionMap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_0_2" as "pk_0_2", "unionBase"."pk_0_3" as "pk_0_3", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'2\' as u_type, null as "pk_0_0", null as "pk_0_1", "root".id as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, "root".prodFk as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'3\' as u_type, null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".id as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, null as prodFk_2, "root".prodFk as prodFk_3 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithBusinessMilestoning as "root" where "root".from_z <= \'2018-08-26\' and "root".thru_z > \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithProcessingMilestoning as "root" where "root".in_z <= \'2015-08-25\' and "root".out_z > \'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id or "unionBase".prodFk_2 = "unionalias_1".id or "unionBase".prodFk_3 = "unionalias_1".id) and (("unionalias_1"."in_z_2" <= \'2015-08-25\' and "unionalias_1"."out_z_2" > \'2015-08-25\') or coalesce("unionalias_1"."in_z_2", "unionalias_1"."out_z_2") is null and (("unionalias_1"."from_z_0" <= \'2018-08-26\' and "unionalias_1"."thru_z_0" > \'2018-08-26\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null) and ("unionalias_1"."snapshotDate_1" = \'2018-08-26\' or "unionalias_1"."snapshotDate_1" is null))) where "unionalias_1"."BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" = \'ProductName1\'', - 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_0_2" as "pk_0_2", "unionBase"."pk_0_3" as "pk_0_3", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'2\' as u_type, null as "pk_0_0", null as "pk_0_1", "root".id as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, "root".prodFk as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'3\' as u_type, null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".id as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, null as prodFk_2, "root".prodFk as prodFk_3 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithBusinessMilestoning as "root" where "root".from_z <= DATE\'2018-08-26\' and "root".thru_z > DATE\'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithProcessingMilestoning as "root" where "root".in_z <= DATE\'2015-08-25\' and "root".out_z > DATE\'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id or "unionBase".prodFk_2 = "unionalias_1".id or "unionBase".prodFk_3 = "unionalias_1".id) and (("unionalias_1"."in_z_2" <= DATE\'2015-08-25\' and "unionalias_1"."out_z_2" > DATE\'2015-08-25\') or coalesce("unionalias_1"."in_z_2", "unionalias_1"."out_z_2") is null and (("unionalias_1"."from_z_0" <= DATE\'2018-08-26\' and "unionalias_1"."thru_z_0" > DATE\'2018-08-26\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null) and ("unionalias_1"."snapshotDate_1" = DATE\'2018-08-26\' or "unionalias_1"."snapshotDate_1" is null))) where "unionalias_1"."BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" = \'ProductName1\'', + 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_0_2" as "pk_0_2", "unionBase"."pk_0_3" as "pk_0_3", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'2\' as u_type, null as "pk_0_0", null as "pk_0_1", "root".id as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, "root".prodFk as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'3\' as u_type, null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".id as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, null as prodFk_2, "root".prodFk as prodFk_3 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithBusinessMilestoning as "root" where "root".from_z <= \'2018-08-26\' and "root".thru_z > \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithProcessingMilestoning as "root" where "root".in_z <= \'2015-08-25\' and "root".out_z > \'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id or "unionBase".prodFk_2 = "unionalias_1".id or "unionBase".prodFk_3 = "unionalias_1".id) and (("unionalias_1"."in_z_2" <= \'2015-08-25\' and "unionalias_1"."out_z_2" > \'2015-08-25\') or coalesce("unionalias_1"."in_z_2", "unionalias_1"."out_z_2") is null and (("unionalias_1"."from_z_0" <= \'2018-08-26\' and "unionalias_1"."thru_z_0" > \'2018-08-26\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null) and ("unionalias_1"."snapshotDate_1" = \'2018-08-26\' or "unionalias_1"."snapshotDate_1" is null))) where "unionalias_1"."BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" = \'ProductName1\'', + 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_0_2" as "pk_0_2", "unionBase"."pk_0_3" as "pk_0_3", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'2\' as u_type, null as "pk_0_0", null as "pk_0_1", "root".id as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, "root".prodFk as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'3\' as u_type, null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".id as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, null as prodFk_2, "root".prodFk as prodFk_3 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithBusinessMilestoning as "root" where "root".from_z <= DATE\'2018-08-26\' and "root".thru_z > DATE\'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithProcessingMilestoning as "root" where "root".in_z <= DATE\'2015-08-25\' and "root".out_z > DATE\'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".name as "BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" from BiTemporalProductTableWithNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id or "unionBase".prodFk_2 = "unionalias_1".id or "unionBase".prodFk_3 = "unionalias_1".id) and (("unionalias_1"."in_z_2" <= DATE\'2015-08-25\' and "unionalias_1"."out_z_2" > DATE\'2015-08-25\') or coalesce("unionalias_1"."in_z_2", "unionalias_1"."out_z_2") is null and (("unionalias_1"."from_z_0" <= DATE\'2018-08-26\' and "unionalias_1"."thru_z_0" > DATE\'2018-08-26\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null) and ("unionalias_1"."snapshotDate_1" = DATE\'2018-08-26\' or "unionalias_1"."snapshotDate_1" is null))) where "unionalias_1"."BiTemporalProductTableWithBusinessMilestoningname_BiTemporalProductTableWithBusinessSnapshotMilestoningname_BiTemporalProductTableWithProcessingMilestoningname_BiTemporalProductTableWithNoMilestoningname" = \'ProductName1\'', $result->sqlRemoveFormatting() ); assertEquals([1, 1, 1, 1, 1, 1, 1, 1], $result.values.id); } -/* +/* FIXME: Inflow execution vs plan generation do not perform the same table alias trimming. If a table alias is hashed, we also add an index to the end for plan execution ONLY eg: hash_0 but for non-hashed names we leave the fully-qualified name for plan execution and in-flow. @@ -55,10 +57,10 @@ function <> meta::relational::tests::milestoning::union::testHyb tableNames: String[*] ): Boolean[1] { - let result = execute(|Order.all()->filter(o|$o.biTemporalProduct(%2015-8-25, %2018-8-26).biTemporalClassification.description == 'STOCK DESC-V2'), hybridMilestoningUnionMap, testRuntime(), meta::relational::extension::relationalExtensions()); + let result = execute(|Order.all()->filter(o|$o.biTemporalProduct(%2015-8-25, %2018-8-26).biTemporalClassification.description == 'STOCK DESC-V2'), hybridMilestoningUnionMap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_0_2" as "pk_0_2", "unionBase"."pk_0_3" as "pk_0_3", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'2\' as u_type, null as "pk_0_0", null as "pk_0_1", "root".id as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, "root".prodFk as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'3\' as u_type, null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".id as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, null as prodFk_2, "root".prodFk as prodFk_3 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".type as type_0, null as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessMilestoning as "root" where "root".from_z <= \'2018-08-26\' and "root".thru_z > \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, null as type_0, "root".type as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".id as id, null as type_0, null as type_1, "root".type as type_2, null as type_3 from BiTemporalProductTableWithProcessingMilestoning as "root" where "root".in_z <= \'2015-08-25\' and "root".out_z > \'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, null as type_0, null as type_1, null as type_2, "root".type as type_3 from BiTemporalProductTableWithNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id or "unionBase".prodFk_2 = "unionalias_1".id or "unionBase".prodFk_3 = "unionalias_1".id) and (("unionalias_1"."in_z_2" <= \'2015-08-25\' and "unionalias_1"."out_z_2" > \'2015-08-25\') or coalesce("unionalias_1"."in_z_2", "unionalias_1"."out_z_2") is null and (("unionalias_1"."from_z_0" <= \'2018-08-26\' and "unionalias_1"."thru_z_0" > \'2018-08-26\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null) and ("unionalias_1"."snapshotDate_1" = \'2018-08-26\' or "unionalias_1"."snapshotDate_1" is null))) left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessMilestoning as "root" where "root".from_z <= \'2018-08-26\' and "root".thru_z > \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithProcessingMilestoning as "root" where "root".in_z <= \'2015-08-25\' and "root".out_z > \'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithNoMilestoning as "root") as "unionalias_2" on (("unionalias_1".type_0 = "unionalias_2".type or "unionalias_1".type_1 = "unionalias_2".type or "unionalias_1".type_2 = "unionalias_2".type or "unionalias_1".type_3 = "unionalias_2".type) and (("unionalias_2"."in_z_2" <= \'2015-08-25\' and "unionalias_2"."out_z_2" > \'2015-08-25\') or coalesce("unionalias_2"."in_z_2", "unionalias_2"."out_z_2") is null and (("unionalias_2"."from_z_0" <= \'2018-08-26\' and "unionalias_2"."thru_z_0" > \'2018-08-26\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."thru_z_0") is null) and ("unionalias_2"."snapshotDate_1" = \'2018-08-26\' or "unionalias_2"."snapshotDate_1" is null))) where "unionalias_2"."%s" = \'STOCK DESC-V2\''->format($tableNames), - 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_0_2" as "pk_0_2", "unionBase"."pk_0_3" as "pk_0_3", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'2\' as u_type, null as "pk_0_0", null as "pk_0_1", "root".id as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, "root".prodFk as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'3\' as u_type, null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".id as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, null as prodFk_2, "root".prodFk as prodFk_3 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".type as type_0, null as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessMilestoning as "root" where "root".from_z <= DATE\'2018-08-26\' and "root".thru_z > DATE\'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, null as type_0, "root".type as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".id as id, null as type_0, null as type_1, "root".type as type_2, null as type_3 from BiTemporalProductTableWithProcessingMilestoning as "root" where "root".in_z <= DATE\'2015-08-25\' and "root".out_z > DATE\'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, null as type_0, null as type_1, null as type_2, "root".type as type_3 from BiTemporalProductTableWithNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id or "unionBase".prodFk_2 = "unionalias_1".id or "unionBase".prodFk_3 = "unionalias_1".id) and (("unionalias_1"."in_z_2" <= DATE\'2015-08-25\' and "unionalias_1"."out_z_2" > DATE\'2015-08-25\') or coalesce("unionalias_1"."in_z_2", "unionalias_1"."out_z_2") is null and (("unionalias_1"."from_z_0" <= DATE\'2018-08-26\' and "unionalias_1"."thru_z_0" > DATE\'2018-08-26\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null) and ("unionalias_1"."snapshotDate_1" = DATE\'2018-08-26\' or "unionalias_1"."snapshotDate_1" is null))) left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessMilestoning as "root" where "root".from_z <= DATE\'2018-08-26\' and "root".thru_z > DATE\'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithProcessingMilestoning as "root" where "root".in_z <= DATE\'2015-08-25\' and "root".out_z > DATE\'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithNoMilestoning as "root") as "unionalias_2" on (("unionalias_1".type_0 = "unionalias_2".type or "unionalias_1".type_1 = "unionalias_2".type or "unionalias_1".type_2 = "unionalias_2".type or "unionalias_1".type_3 = "unionalias_2".type) and (("unionalias_2"."in_z_2" <= DATE\'2015-08-25\' and "unionalias_2"."out_z_2" > DATE\'2015-08-25\') or coalesce("unionalias_2"."in_z_2", "unionalias_2"."out_z_2") is null and (("unionalias_2"."from_z_0" <= DATE\'2018-08-26\' and "unionalias_2"."thru_z_0" > DATE\'2018-08-26\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."thru_z_0") is null) and ("unionalias_2"."snapshotDate_1" = DATE\'2018-08-26\' or "unionalias_2"."snapshotDate_1" is null))) where "unionalias_2"."%s" = \'STOCK DESC-V2\''->format($tableNames), + 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_0_2" as "pk_0_2", "unionBase"."pk_0_3" as "pk_0_3", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'2\' as u_type, null as "pk_0_0", null as "pk_0_1", "root".id as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, "root".prodFk as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'3\' as u_type, null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".id as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, null as prodFk_2, "root".prodFk as prodFk_3 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".type as type_0, null as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessMilestoning as "root" where "root".from_z <= \'2018-08-26\' and "root".thru_z > \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, null as type_0, "root".type as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".id as id, null as type_0, null as type_1, "root".type as type_2, null as type_3 from BiTemporalProductTableWithProcessingMilestoning as "root" where "root".in_z <= \'2015-08-25\' and "root".out_z > \'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, null as type_0, null as type_1, null as type_2, "root".type as type_3 from BiTemporalProductTableWithNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id or "unionBase".prodFk_2 = "unionalias_1".id or "unionBase".prodFk_3 = "unionalias_1".id) and (("unionalias_1"."in_z_2" <= \'2015-08-25\' and "unionalias_1"."out_z_2" > \'2015-08-25\') or coalesce("unionalias_1"."in_z_2", "unionalias_1"."out_z_2") is null and (("unionalias_1"."from_z_0" <= \'2018-08-26\' and "unionalias_1"."thru_z_0" > \'2018-08-26\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null) and ("unionalias_1"."snapshotDate_1" = \'2018-08-26\' or "unionalias_1"."snapshotDate_1" is null))) left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessMilestoning as "root" where "root".from_z <= \'2018-08-26\' and "root".thru_z > \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithProcessingMilestoning as "root" where "root".in_z <= \'2015-08-25\' and "root".out_z > \'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithNoMilestoning as "root") as "unionalias_2" on (("unionalias_1".type_0 = "unionalias_2".type or "unionalias_1".type_1 = "unionalias_2".type or "unionalias_1".type_2 = "unionalias_2".type or "unionalias_1".type_3 = "unionalias_2".type) and (("unionalias_2"."in_z_2" <= \'2015-08-25\' and "unionalias_2"."out_z_2" > \'2015-08-25\') or coalesce("unionalias_2"."in_z_2", "unionalias_2"."out_z_2") is null and (("unionalias_2"."from_z_0" <= \'2018-08-26\' and "unionalias_2"."thru_z_0" > \'2018-08-26\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."thru_z_0") is null) and ("unionalias_2"."snapshotDate_1" = \'2018-08-26\' or "unionalias_2"."snapshotDate_1" is null))) where "unionalias_2"."%s" = \'STOCK DESC-V2\''->format($tableNames), + 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_0_2" as "pk_0_2", "unionBase"."pk_0_3" as "pk_0_3", "unionBase"."id" as "id" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".prodFk as prodFk_0, null as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, "root".prodFk as prodFk_1, null as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'2\' as u_type, null as "pk_0_0", null as "pk_0_1", "root".id as "pk_0_2", null as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, "root".prodFk as prodFk_2, null as prodFk_3 from OrderTable as "root" UNION ALL select \'3\' as u_type, null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".id as "pk_0_3", "root".id as "id", null as prodFk_0, null as prodFk_1, null as prodFk_2, "root".prodFk as prodFk_3 from OrderTable as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, "root".type as type_0, null as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessMilestoning as "root" where "root".from_z <= DATE\'2018-08-26\' and "root".thru_z > DATE\'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, null as type_0, "root".type as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".id as id, null as type_0, null as type_1, "root".type as type_2, null as type_3 from BiTemporalProductTableWithProcessingMilestoning as "root" where "root".in_z <= DATE\'2015-08-25\' and "root".out_z > DATE\'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".id as id, null as type_0, null as type_1, null as type_2, "root".type as type_3 from BiTemporalProductTableWithNoMilestoning as "root") as "unionalias_1" on (("unionBase".prodFk_0 = "unionalias_1".id or "unionBase".prodFk_1 = "unionalias_1".id or "unionBase".prodFk_2 = "unionalias_1".id or "unionBase".prodFk_3 = "unionalias_1".id) and (("unionalias_1"."in_z_2" <= DATE\'2015-08-25\' and "unionalias_1"."out_z_2" > DATE\'2015-08-25\') or coalesce("unionalias_1"."in_z_2", "unionalias_1"."out_z_2") is null and (("unionalias_1"."from_z_0" <= DATE\'2018-08-26\' and "unionalias_1"."thru_z_0" > DATE\'2018-08-26\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null) and ("unionalias_1"."snapshotDate_1" = DATE\'2018-08-26\' or "unionalias_1"."snapshotDate_1" is null))) left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessMilestoning as "root" where "root".from_z <= DATE\'2018-08-26\' and "root".thru_z > DATE\'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithProcessingMilestoning as "root" where "root".in_z <= DATE\'2015-08-25\' and "root".out_z > DATE\'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithNoMilestoning as "root") as "unionalias_2" on (("unionalias_1".type_0 = "unionalias_2".type or "unionalias_1".type_1 = "unionalias_2".type or "unionalias_1".type_2 = "unionalias_2".type or "unionalias_1".type_3 = "unionalias_2".type) and (("unionalias_2"."in_z_2" <= DATE\'2015-08-25\' and "unionalias_2"."out_z_2" > DATE\'2015-08-25\') or coalesce("unionalias_2"."in_z_2", "unionalias_2"."out_z_2") is null and (("unionalias_2"."from_z_0" <= DATE\'2018-08-26\' and "unionalias_2"."thru_z_0" > DATE\'2018-08-26\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."thru_z_0") is null) and ("unionalias_2"."snapshotDate_1" = DATE\'2018-08-26\' or "unionalias_2"."snapshotDate_1" is null))) where "unionalias_2"."%s" = \'STOCK DESC-V2\''->format($tableNames), $result->sqlRemoveFormatting() ); assertEquals([1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1], $result.values.id); @@ -84,8 +86,8 @@ function <> meta::relational::tests::milestoning::union::testHyb { let result = execute(|BiTemporalProduct.all(%2015-8-25, %2018-8-26)->filter(p|$p.biTemporalClassification.description == 'STOCK DESC-V2'), hybridMilestoningUnionMap, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_0_2" as "pk_0_2", "unionBase"."pk_0_3" as "pk_0_3", "unionBase"."id" as "id", "unionBase"."name" as "name", "unionBase"."k_processingDate" as "k_processingDate", "unionBase"."k_businessDate" as "k_businessDate", "unionBase"."from_z_0" as "from_z_0", "unionBase"."thru_z_0" as "thru_z_0", "unionBase"."snapshotDate_1" as "snapshotDate_1", "unionBase"."in_z_2" as "in_z_2", "unionBase"."out_z_2" as "out_z_2" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type_0, null as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessMilestoning as "root" where "root".from_z <= \'2018-08-26\' and "root".thru_z > \'2018-08-26\' UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", null as type_0, "root".type as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2018-08-26\' UNION ALL select \'2\' as u_type, null as "pk_0_0", null as "pk_0_1", "root".id as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", null as type_0, null as type_1, "root".type as type_2, null as type_3 from BiTemporalProductTableWithProcessingMilestoning as "root" where "root".in_z <= \'2015-08-25\' and "root".out_z > \'2015-08-25\' UNION ALL select \'3\' as u_type, null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".id as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", null as type_0, null as type_1, null as type_2, "root".type as type_3 from BiTemporalProductTableWithNoMilestoning as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessMilestoning as "root" where "root".from_z <= \'2018-08-26\' and "root".thru_z > \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithProcessingMilestoning as "root" where "root".in_z <= \'2015-08-25\' and "root".out_z > \'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithNoMilestoning as "root") as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type or "unionBase".type_2 = "unionalias_1".type or "unionBase".type_3 = "unionalias_1".type) and (("unionalias_1"."in_z_2" <= \'2015-08-25\' and "unionalias_1"."out_z_2" > \'2015-08-25\') or coalesce("unionalias_1"."in_z_2", "unionalias_1"."out_z_2") is null and (("unionalias_1"."from_z_0" <= \'2018-08-26\' and "unionalias_1"."thru_z_0" > \'2018-08-26\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null) and ("unionalias_1"."snapshotDate_1" = \'2018-08-26\' or "unionalias_1"."snapshotDate_1" is null))) where "unionalias_1"."%s" = \'STOCK DESC-V2\''->format($tableNames), - 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_0_2" as "pk_0_2", "unionBase"."pk_0_3" as "pk_0_3", "unionBase"."id" as "id", "unionBase"."name" as "name", "unionBase"."k_processingDate" as "k_processingDate", "unionBase"."k_businessDate" as "k_businessDate", "unionBase"."from_z_0" as "from_z_0", "unionBase"."thru_z_0" as "thru_z_0", "unionBase"."snapshotDate_1" as "snapshotDate_1", "unionBase"."in_z_2" as "in_z_2", "unionBase"."out_z_2" as "out_z_2" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type_0, null as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessMilestoning as "root" where "root".from_z <= DATE\'2018-08-26\' and "root".thru_z > DATE\'2018-08-26\' UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", null as type_0, "root".type as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2018-08-26\' UNION ALL select \'2\' as u_type, null as "pk_0_0", null as "pk_0_1", "root".id as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", null as type_0, null as type_1, "root".type as type_2, null as type_3 from BiTemporalProductTableWithProcessingMilestoning as "root" where "root".in_z <= DATE\'2015-08-25\' and "root".out_z > DATE\'2015-08-25\' UNION ALL select \'3\' as u_type, null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".id as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", null as type_0, null as type_1, null as type_2, "root".type as type_3 from BiTemporalProductTableWithNoMilestoning as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessMilestoning as "root" where "root".from_z <= DATE\'2018-08-26\' and "root".thru_z > DATE\'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithProcessingMilestoning as "root" where "root".in_z <= DATE\'2015-08-25\' and "root".out_z > DATE\'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithNoMilestoning as "root") as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type or "unionBase".type_2 = "unionalias_1".type or "unionBase".type_3 = "unionalias_1".type) and (("unionalias_1"."in_z_2" <= DATE\'2015-08-25\' and "unionalias_1"."out_z_2" > DATE\'2015-08-25\') or coalesce("unionalias_1"."in_z_2", "unionalias_1"."out_z_2") is null and (("unionalias_1"."from_z_0" <= DATE\'2018-08-26\' and "unionalias_1"."thru_z_0" > DATE\'2018-08-26\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null) and ("unionalias_1"."snapshotDate_1" = DATE\'2018-08-26\' or "unionalias_1"."snapshotDate_1" is null))) where "unionalias_1"."%s" = \'STOCK DESC-V2\''->format($tableNames), + 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_0_2" as "pk_0_2", "unionBase"."pk_0_3" as "pk_0_3", "unionBase"."id" as "id", "unionBase"."name" as "name", "unionBase"."k_processingDate" as "k_processingDate", "unionBase"."k_businessDate" as "k_businessDate", "unionBase"."from_z_0" as "from_z_0", "unionBase"."thru_z_0" as "thru_z_0", "unionBase"."snapshotDate_1" as "snapshotDate_1", "unionBase"."in_z_2" as "in_z_2", "unionBase"."out_z_2" as "out_z_2" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type_0, null as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessMilestoning as "root" where "root".from_z <= \'2018-08-26\' and "root".thru_z > \'2018-08-26\' UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", null as type_0, "root".type as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2018-08-26\' UNION ALL select \'2\' as u_type, null as "pk_0_0", null as "pk_0_1", "root".id as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", null as type_0, null as type_1, "root".type as type_2, null as type_3 from BiTemporalProductTableWithProcessingMilestoning as "root" where "root".in_z <= \'2015-08-25\' and "root".out_z > \'2015-08-25\' UNION ALL select \'3\' as u_type, null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".id as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", null as type_0, null as type_1, null as type_2, "root".type as type_3 from BiTemporalProductTableWithNoMilestoning as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessMilestoning as "root" where "root".from_z <= \'2018-08-26\' and "root".thru_z > \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithProcessingMilestoning as "root" where "root".in_z <= \'2015-08-25\' and "root".out_z > \'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithNoMilestoning as "root") as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type or "unionBase".type_2 = "unionalias_1".type or "unionBase".type_3 = "unionalias_1".type) and (("unionalias_1"."in_z_2" <= \'2015-08-25\' and "unionalias_1"."out_z_2" > \'2015-08-25\') or coalesce("unionalias_1"."in_z_2", "unionalias_1"."out_z_2") is null and (("unionalias_1"."from_z_0" <= \'2018-08-26\' and "unionalias_1"."thru_z_0" > \'2018-08-26\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null) and ("unionalias_1"."snapshotDate_1" = \'2018-08-26\' or "unionalias_1"."snapshotDate_1" is null))) where "unionalias_1"."%s" = \'STOCK DESC-V2\''->format($tableNames), + 'select "unionBase".u_type as u_type, "unionBase"."pk_0_0" as "pk_0_0", "unionBase"."pk_0_1" as "pk_0_1", "unionBase"."pk_0_2" as "pk_0_2", "unionBase"."pk_0_3" as "pk_0_3", "unionBase"."id" as "id", "unionBase"."name" as "name", "unionBase"."k_processingDate" as "k_processingDate", "unionBase"."k_businessDate" as "k_businessDate", "unionBase"."from_z_0" as "from_z_0", "unionBase"."thru_z_0" as "thru_z_0", "unionBase"."snapshotDate_1" as "snapshotDate_1", "unionBase"."in_z_2" as "in_z_2", "unionBase"."out_z_2" as "out_z_2" from (select \'0\' as u_type, "root".id as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type_0, null as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessMilestoning as "root" where "root".from_z <= DATE\'2018-08-26\' and "root".thru_z > DATE\'2018-08-26\' UNION ALL select \'1\' as u_type, null as "pk_0_0", "root".id as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", null as type_0, "root".type as type_1, null as type_2, null as type_3 from BiTemporalProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2018-08-26\' UNION ALL select \'2\' as u_type, null as "pk_0_0", null as "pk_0_1", "root".id as "pk_0_2", null as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", null as type_0, null as type_1, "root".type as type_2, null as type_3 from BiTemporalProductTableWithProcessingMilestoning as "root" where "root".in_z <= DATE\'2015-08-25\' and "root".out_z > DATE\'2015-08-25\' UNION ALL select \'3\' as u_type, null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".id as "pk_0_3", "root".id as "id", "root".name as "name", \'2015-08-25\' as "k_processingDate", \'2018-08-26\' as "k_businessDate", null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", null as type_0, null as type_1, null as type_2, "root".type as type_3 from BiTemporalProductTableWithNoMilestoning as "root") as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessMilestoning as "root" where "root".from_z <= DATE\'2018-08-26\' and "root".thru_z > DATE\'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".snapshotDate as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2018-08-26\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", "root".in_z as "in_z_2", "root".out_z as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithProcessingMilestoning as "root" where "root".in_z <= DATE\'2015-08-25\' and "root".out_z > DATE\'2015-08-25\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "snapshotDate_1", null as "in_z_2", null as "out_z_2", "root".type as type, "root".type_description as "%s" from BiTemporalProductClassificationTableWithNoMilestoning as "root") as "unionalias_1" on (("unionBase".type_0 = "unionalias_1".type or "unionBase".type_1 = "unionalias_1".type or "unionBase".type_2 = "unionalias_1".type or "unionBase".type_3 = "unionalias_1".type) and (("unionalias_1"."in_z_2" <= DATE\'2015-08-25\' and "unionalias_1"."out_z_2" > DATE\'2015-08-25\') or coalesce("unionalias_1"."in_z_2", "unionalias_1"."out_z_2") is null and (("unionalias_1"."from_z_0" <= DATE\'2018-08-26\' and "unionalias_1"."thru_z_0" > DATE\'2018-08-26\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."thru_z_0") is null) and ("unionalias_1"."snapshotDate_1" = DATE\'2018-08-26\' or "unionalias_1"."snapshotDate_1" is null))) where "unionalias_1"."%s" = \'STOCK DESC-V2\''->format($tableNames), $result->sqlRemoveFormatting() ); assertEquals([1, 1, 1, 1, 1, 1, 1, 1], $result.values.id); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelToModelToRelational/m2m2rShowcase.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelToModelToRelational/m2m2rShowcase.pure index 91d7dacdbce..b65f96877be 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelToModelToRelational/m2m2rShowcase.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelToModelToRelational/m2m2rShowcase.pure @@ -1,10 +1,13 @@ import meta::relational::functions::sqlQueryToString::h2::*; import meta::pure::executionPlan::toString::*; +import meta::core::runtime::*; import meta::pure::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::alloy::connections::alloy::authentication::*; import meta::pure::alloy::connections::alloy::specification::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; function <> meta::relational::tests::m2m2r::testProp1():Boolean[1] { @@ -33,7 +36,7 @@ function <> meta::relational::tests::m2m2r::tes meta::relational::tests::m2m2r::AxionToModelMapping, meta::relational::tests::m2m2r::runtime(), meta::relational::extension::relationalExtensions(), noDebug())->planToString( meta::relational::extension::relationalExtensions()); - let expected = + let expected = 'Relational\n' + '(\n' + ' type = TDS[(name, String, "", ""), (prop2, String, "", "")]\n' + @@ -41,7 +44,7 @@ function <> meta::relational::tests::m2m2r::tes ' sql = select "root".name as "name", case when "sourceannouncement_0".description like \'%RECEIVE CASH%\' then \'Cash\' else \'Stock\' end as "prop2" from S.sourceEntitlement as "root" left outer join S.SourceAnnouncement as "sourceannouncement_0" on ("root".id = "sourceannouncement_0".id)\n' + ' connection = RelationalDatabaseConnection(type = "H2")\n' + ')\n' ; - + assertEquals($expected, $result); } @@ -53,7 +56,7 @@ function <> meta::relational::tests::m2m2r::tes meta::relational::tests::m2m2r::AxionToModelMapping, meta::relational::tests::m2m2r::runtime(), meta::relational::extension::relationalExtensions(), noDebug())->planToString( meta::relational::extension::relationalExtensions()); - let expectedLegacyH2 = + let expectedLegacyH2 = 'Relational\n' + '(\n' + ' type = TDS[(name, String, "", ""), (prop3, Number, "", "")]\n' + @@ -61,7 +64,7 @@ function <> meta::relational::tests::m2m2r::tes ' sql = select "root".name as "name", case when "sourceannouncement_0".basis = 0.0 then 0.0 else (((1.0 * "root".entitledQuantity) / "sourceannouncement_0".basis) * "sourceannouncement_0".grossRate) end as "prop3" from S.sourceEntitlement as "root" left outer join S.SourceAnnouncement as "sourceannouncement_0" on ("root".id = "sourceannouncement_0".id)\n' + ' connection = RelationalDatabaseConnection(type = "H2")\n' + ')\n' ; - let expectedNewH2 = + let expectedNewH2 = 'Relational\n' + '(\n' + ' type = TDS[(name, String, "", ""), (prop3, Number, "", "")]\n' + @@ -124,23 +127,23 @@ function <> meta::relational::tests::m2m2r::tes assertEquals($expected, $result); } -function meta::relational::tests::m2m2r::runtimeSimple():meta::pure::runtime::Runtime[1] +function meta::relational::tests::m2m2r::runtimeSimple():meta::core::runtime::Runtime[1] { - meta::pure::runtime::getRuntimeWithModelConnection(meta::relational::tests::m2m2r::Entitlement,[]) + meta::core::runtime::getRuntimeWithModelConnection(meta::relational::tests::m2m2r::Entitlement,[]) } function meta::relational::tests::m2m2r::runtime():Runtime[1] { - ^meta::pure::runtime::Runtime( - connections=[ - ^meta::pure::alloy::connections::RelationalDatabaseConnection( + ^meta::core::runtime::Runtime( + connectionStores=[ + ^meta::core::runtime::ConnectionStore( element = meta::relational::tests::m2m2r::SourceDB, - type = DatabaseType.H2, - authenticationStrategy = ^TestDatabaseAuthenticationStrategy(), - datasourceSpecification = ^LocalH2DatasourceSpecification() - ), - ^ModelChainConnection(element = ^ModelStore(), mappings = [meta::relational::tests::m2m2r::AxionToModelMapping]) - + connection = ^meta::external::store::relational::runtime::RelationalDatabaseConnection( + type = DatabaseType.H2, + authenticationStrategy = ^TestDatabaseAuthenticationStrategy(), + datasourceSpecification = ^LocalH2DatasourceSpecification() + )), + ^ConnectionStore(element = ^ModelStore(),connection=^ModelChainConnection( mappings = [meta::relational::tests::m2m2r::AxionToModelMapping])) ] ) } @@ -157,7 +160,7 @@ Class meta::relational::tests::m2m2r::Entitlement prop3() { - if($this.announcement.basis==0.0, + if($this.announcement.basis==0.0, |0.0, | ($this.entitledQuantity->toOne()/$this.announcement.basis->toOne())* $this.announcement.grossRate->toOne()); }:Number[1]; @@ -215,7 +218,7 @@ Association meta::relational::tests::m2m2r::SourceEntitlementAnnouncementAssocia Mapping meta::relational::tests::m2m2r::AxionToModelMapping ( include meta::relational::tests::m2m2r::AxionRelational - + *meta::relational::tests::m2m2r::Entitlement: Pure { ~src meta::relational::tests::m2m2r::SourceEntitlement @@ -234,7 +237,7 @@ Mapping meta::relational::tests::m2m2r::AxionToModelMapping } ) -###Mapping +###Mapping Mapping meta::relational::tests::m2m2r::AxionRelational ( @@ -255,7 +258,7 @@ Mapping meta::relational::tests::m2m2r::AxionRelational } ) -###Mapping +###Mapping Mapping meta::relational::tests::m2m2r::AxionTargetRelational ( diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelToModelToRelational/milestoned/milestonedSourceToMilestonedTargetProperty.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelToModelToRelational/milestoned/milestonedSourceToMilestonedTargetProperty.pure index df46222e171..8d0d1c2c3cc 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelToModelToRelational/milestoned/milestonedSourceToMilestonedTargetProperty.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelToModelToRelational/milestoned/milestonedSourceToMilestonedTargetProperty.pure @@ -21,6 +21,7 @@ import meta::pure::alloy::connections::alloy::specification::*; import meta::pure::alloy::connections::alloy::authentication::*; import meta::relational::runtime::*; import meta::pure::runtime::*; +import meta::core::runtime::*; function <> meta::pure::graphFetch::tests::m2m2r::milestoning::milestonedSourceToMilestonedTargetProperty::testWithHardcodedDate():Boolean[1] { @@ -136,12 +137,12 @@ function meta::pure::graphFetch::tests::m2m2r::milestoning::milestonedSourceToMi ' id: $src.id,\n'+ ' name: $src.name,\n'+ ' synonyms:$src.synonyms'+ //syntactic sugar for better UX - ' }\n' + + ' }\n' + ' *meta::relational::tests::milestoning::TargetProductSynonym: Pure\n'+ ' {\n'+ ' ~src meta::relational::tests::milestoning::ProductSynonym\n'+ ' synonym: $src.synonym\n'+ - ' }\n' + + ' }\n' + ')'; let mapping = meta::legend::compileLegendGrammar($mappingStr)->at(0)->cast(@Mapping); @@ -164,7 +165,7 @@ Mapping meta::relational::tests::m2m2r::milestoning::milestonedSourceToMilestone name: $src.name, synonymsMilestonedAllVersions: $src.synonymsMilestonedAllVersions } - + *meta::relational::tests::milestoning::TargetProductSynonymMilestoned: Pure { ~src meta::relational::tests::milestoning::ProductSynonymMilestoned diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelToModelToRelational/milestoned/milestonedSourceToNonMilestonedTargetProperty.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelToModelToRelational/milestoned/milestonedSourceToNonMilestonedTargetProperty.pure index a486ea51381..179c65edb53 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelToModelToRelational/milestoned/milestonedSourceToNonMilestonedTargetProperty.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelToModelToRelational/milestoned/milestonedSourceToNonMilestonedTargetProperty.pure @@ -21,11 +21,12 @@ import meta::pure::alloy::connections::alloy::specification::*; import meta::pure::alloy::connections::alloy::authentication::*; import meta::relational::runtime::*; import meta::pure::runtime::*; +import meta::core::runtime::*; -//fix transform property platform code +//fix transform property platform code function <> meta::pure::graphFetch::tests::m2m2r::milestoning::milestonedSourceToNonMilestonedTargetProperty::test_ViaNoArgMapping():Boolean[1] { - let mapping = meta::pure::graphFetch::tests::m2m2r::milestoning::milestonedSourceToNonMilestonedTargetProperty::getNoArgMapping(); + let mapping = meta::pure::graphFetch::tests::m2m2r::milestoning::milestonedSourceToNonMilestonedTargetProperty::getNoArgMapping(); let runtime = getModelChainRuntime($mapping); let query={bdate:DateTime[1]|meta::relational::tests::milestoning::TargetProductMilestoned.all($bdate)->graphFetch( @@ -34,8 +35,8 @@ function <> meta::pure::graphFetch::tests id, name, synonymsNonMilestoned - { - synonym + { + synonym } } }# @@ -62,7 +63,7 @@ function <> meta::pure::graphFetch::tests function <> meta::pure::graphFetch::tests::m2m2r::milestoning::milestonedSourceToNonMilestonedTargetProperty::testWithHardcodedDate_ViaNoArgMapping():Boolean[1] { - let mapping = meta::pure::graphFetch::tests::m2m2r::milestoning::milestonedSourceToNonMilestonedTargetProperty::getNoArgMapping(); + let mapping = meta::pure::graphFetch::tests::m2m2r::milestoning::milestonedSourceToNonMilestonedTargetProperty::getNoArgMapping(); let runtime = getModelChainRuntime($mapping); let query={|meta::relational::tests::milestoning::TargetProductMilestoned.all(%2023-10-15T00:00:00)->graphFetch( @@ -71,8 +72,8 @@ function <> meta::pure::graphFetch::tests id, name, synonymsNonMilestoned - { - synonym + { + synonym } } }# @@ -108,8 +109,8 @@ function <> meta::pure::graphFetch::tests::m2m2r::mil id, name, synonymsNonMilestoned - { - synonym + { + synonym } } }# @@ -138,7 +139,7 @@ function <> meta::pure::graphFetch::tests::m2m2r::mil function <> meta::pure::graphFetch::tests::m2m2r::milestoning::milestonedSourceToNonMilestonedTargetProperty::testFlatten_ViaNoArgMapping():Boolean[1] { - let mapping = meta::pure::graphFetch::tests::m2m2r::milestoning::milestonedSourceToNonMilestonedTargetProperty::getNoArgFlattenMapping(); + let mapping = meta::pure::graphFetch::tests::m2m2r::milestoning::milestonedSourceToNonMilestonedTargetProperty::getNoArgFlattenMapping(); let runtime = getModelChainRuntime($mapping); let query={bdate:DateTime[1]|meta::relational::tests::milestoning::TargetProductFlattened.all($bdate)->graphFetch( @@ -169,7 +170,7 @@ function <> meta::pure::graphFetch::tests::m2m2r::mil function <> meta::pure::graphFetch::tests::m2m2r::milestoning::milestonedSourceToNonMilestonedTargetProperty::testFlatten_ViaNoArgMapping_ViaAssociation():Boolean[1] { - let mapping = meta::pure::graphFetch::tests::m2m2r::milestoning::milestonedSourceToNonMilestonedTargetProperty::getNoArgFlattenMapping_ViaAssociation(); + let mapping = meta::pure::graphFetch::tests::m2m2r::milestoning::milestonedSourceToNonMilestonedTargetProperty::getNoArgFlattenMapping_ViaAssociation(); let runtime = getModelChainRuntime($mapping); let query={bdate:DateTime[1]|meta::relational::tests::milestoning::TargetProductFlattened.all($bdate)->graphFetch( @@ -231,7 +232,7 @@ function <> meta::pure::graphFetch::tests::m2m2r::mil function <> meta::pure::graphFetch::tests::m2m2r::milestoning::milestonedSourceToNonMilestonedTargetProperty::testFlatten_ViaHardcodedDateMapping():Boolean[1] { - let mapping = meta::relational::tests::m2m2r::milestoning::milestonedSourceToNonMilestonedTargetProperty::TargetToModeMappingWithComplexPropertyFlattened_HardcodedDate; + let mapping = meta::relational::tests::m2m2r::milestoning::milestonedSourceToNonMilestonedTargetProperty::TargetToModeMappingWithComplexPropertyFlattened_HardcodedDate; let runtime = getModelChainRuntime($mapping); let query={bdate:DateTime[1]|meta::relational::tests::milestoning::TargetProductFlattened.all($bdate)->graphFetch( @@ -272,12 +273,12 @@ function meta::pure::graphFetch::tests::m2m2r::milestoning::milestonedSourceToNo ' id: $src.id,\n'+ ' name: $src.name,\n'+ ' synonymsNonMilestoned:$src.synonymsMilestoned\n'+ - ' }\n' + + ' }\n' + ' *meta::relational::tests::milestoning::TargetProductSynonymNonMilestoned: Pure\n'+ ' {\n'+ ' ~src meta::relational::tests::milestoning::ProductSynonymMilestoned\n'+ ' synonym: $src.synonym\n'+ - ' }\n' + + ' }\n' + ')'; let mapping = meta::legend::compileLegendGrammar($mappingStr)->at(0)->cast(@Mapping); @@ -299,7 +300,7 @@ function meta::pure::graphFetch::tests::m2m2r::milestoning::milestonedSourceToNo ' id: $src.id,\n'+ ' name: $src.name,\n'+ ' synonymNames:$src.synonymsMilestoned.synonym\n'+ - ' }\n' + + ' }\n' + ')'; let mapping = meta::legend::compileLegendGrammar($mappingStr)->at(0)->cast(@Mapping); @@ -320,7 +321,7 @@ function meta::pure::graphFetch::tests::m2m2r::milestoning::milestonedSourceToNo ' id: $src.id,\n'+ ' name: $src.name,\n'+ ' synonymNames:$src.synonymsMilestonedViaAssociation.synonym\n'+ - ' }\n' + + ' }\n' + ')'; let mapping = meta::legend::compileLegendGrammar($mappingStr)->at(0)->cast(@Mapping); @@ -375,4 +376,4 @@ Mapping meta::relational::tests::m2m2r::milestoning::milestonedSourceToNonMilest name: $src.name, synonymNames:$src.synonymsMilestoned(%2023-10-15T00:00:00).synonym } -) \ No newline at end of file +) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelToModelToRelational/milestoned/nonMilestonedSourceToMilestonedTargetProperty.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelToModelToRelational/milestoned/nonMilestonedSourceToMilestonedTargetProperty.pure index fe1c8d90a80..08b3e03702a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelToModelToRelational/milestoned/nonMilestonedSourceToMilestonedTargetProperty.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelToModelToRelational/milestoned/nonMilestonedSourceToMilestonedTargetProperty.pure @@ -20,6 +20,7 @@ import meta::pure::graphFetch::execution::*; import meta::pure::alloy::connections::alloy::specification::*; import meta::pure::alloy::connections::alloy::authentication::*; import meta::pure::runtime::*; +import meta::core::runtime::*; //empty target property in result because source is not milestoned function <> meta::pure::graphFetch::tests::m2m2r::milestoning::nonMilestonedSourceToMilestonedTargetProperty::testWithHardcodedDate():Boolean[1] @@ -95,7 +96,7 @@ import meta::relational::tests::*; Mapping meta::relational::tests::m2m2r::milestoning::nonMilestonedSourceToMilestonedTargetProperty::TargetToModelMappingWithMilestonedComplexProperty ( include meta::relational::tests::milestoning::milestoningMapSmall - + *meta::relational::tests::milestoning::TargetProductMilestoned: Pure { ~src meta::relational::tests::milestoning::ProductMilestoned @@ -103,7 +104,7 @@ Mapping meta::relational::tests::m2m2r::milestoning::nonMilestonedSourceToMilest name: $src.name, synonymsMilestonedAllVersions: $src.synonymsNonMilestoned } - + *meta::relational::tests::milestoning::TargetProductSynonymMilestoned: Pure { ~src meta::relational::tests::milestoning::ProductSynonymNonMilestoned diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelToModelToRelational/milestoned/shared.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelToModelToRelational/milestoned/shared.pure index 25c0a015af2..d8b94811264 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelToModelToRelational/milestoned/shared.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/modelToModelToRelational/milestoned/shared.pure @@ -21,13 +21,14 @@ import meta::pure::alloy::connections::alloy::specification::*; import meta::pure::alloy::connections::alloy::authentication::*; import meta::relational::runtime::*; import meta::pure::runtime::*; +import meta::core::runtime::*; -function meta::pure::graphFetch::tests::m2m2r::milestoning::getModelChainRuntime(m2m:meta::pure::mapping::Mapping[1]):Runtime[1] +function meta::pure::graphFetch::tests::m2m2r::milestoning::getModelChainRuntime(m2m:meta::pure::mapping::Mapping[1]):meta::core::runtime::Runtime[1] { - ^meta::pure::runtime::Runtime( - connections=[ + ^meta::core::runtime::Runtime( + connectionStores=[ meta::pure::graphFetch::tests::milestoning::getAlloyTestH2Connection(), - ^meta::pure::mapping::modelToModel::ModelChainConnection(element = ^meta::pure::mapping::modelToModel::ModelStore(), mappings = [$m2m]) + ^meta::core::runtime::ConnectionStore(element = ^meta::external::store::model::ModelStore(), connection=^meta::external::store::model::ModelChainConnection(mappings = [$m2m])) ] ); } @@ -97,23 +98,23 @@ import meta::relational::tests::milestoning::*; Mapping meta::relational::tests::milestoning::milestoningMapSmall ( meta::relational::tests::milestoning::ProductMilestoned : Relational{ - id : [db]ProductTable.id, + id : [db]ProductTable.id, name : [db]ProductTable.name, type : [db]ProductTable.type, synonymsMilestoned : [db]@Product_Synonym, synonymsMilestonedViaAssociation : [db]@Product_Synonym, synonymsNonMilestoned : [db]@Product_Synonym - } - + } + meta::relational::tests::milestoning::ProductSynonymMilestoned : Relational{ synonym : [db]ProductSynonymTable.synonym, type : [db]ProductSynonymTable.type - } - + } + meta::relational::tests::milestoning::ProductSynonymNonMilestoned : Relational{ synonym : [meta::relational::tests::milestoning::db]ProductSynonymTable.synonym, type : [meta::relational::tests::milestoning::db]ProductSynonymTable.type - } + } -) +) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/mutation/relationalMutation.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/mutation/relationalMutation.pure index 0f2166f6f46..3820d2c500a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/mutation/relationalMutation.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/mutation/relationalMutation.pure @@ -15,6 +15,7 @@ import meta::pure::router::clustering::*; import meta::pure::router::metamodel::clustering::*; import meta::pure::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::extension::*; import meta::pure::graphFetch::*; @@ -24,6 +25,7 @@ import meta::external::format::shared::binding::*; import meta::external::format::shared::executionPlan::*; import meta::relational::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::*; import meta::relational::metamodel::relation::*; @@ -49,7 +51,7 @@ function <> meta::relational::mutation::executionPlan::validateP function <> meta::relational::mutation::executionPlan::collectPropertyGraphFetchTrees(parent: GraphFetchTree[1]): PropertyGraphFetchTree[*] { - if($parent->instanceOf(PropertyGraphFetchTree), + if($parent->instanceOf(PropertyGraphFetchTree), | $parent.subTrees->map(tree | $tree->collectPropertyGraphFetchTrees())->concatenate($parent->cast(@PropertyGraphFetchTree)), | $parent.subTrees->map(tree | $tree->collectPropertyGraphFetchTrees())); } @@ -69,13 +71,13 @@ function <> meta::relational::mutation::executionPlan::validateG function meta::relational::mutation::executionPlan::planMutationExecution(sq: StoreQuery[1], ext: RoutedValueSpecification[0..1], mapping: Mapping[1], runtime: Runtime[1], exeCtx: ExecutionContext[1], extensions: Extension[*], debug: DebugContext[1]): ExecutionNode[1] { let rootType = $sq.fe.genericType.rawType->toOne(); - + // validate mapping is allowed -- currently only simple relational mappings against table columns are supported let rootMapping = validateMappingIsSupportedForMutation($mapping, $rootType); // validate graph fetch tree -- cannot specify properties deeper than the mapping supports, must include primary key properties let rootGraphFetchTree = $sq.fe.parametersValues->at(1)->cast(@InstanceValue).values->at(0)->cast(@RootGraphFetchTree)->toOne(); let propertyNamesInTree = validateGraphFetchTreeForMapping($rootMapping, $rootGraphFetchTree); - + let inScopePropertyMappings = $rootMapping.propertyMappings->cast(@RelationalPropertyMapping)->filter(pm | $pm.property.name->in($propertyNamesInTree)); let propertyMappingHasBindingFunction = {pm: RelationalPropertyMapping[1] | $pm.transformer->isNotEmpty() && $pm.transformer->toOne()->instanceOf(BindingTransformer)}; @@ -87,13 +89,13 @@ function meta::relational::mutation::executionPlan::planMutationExecution(sq: St let uniquifyColumnNames = {p: String[1] | 'generatedColumnName_' + $p->toUpper()->toOne()}; let columnValueGenerators = $inScopePropertyMappings - ->map(pm | + ->map(pm | pair( - $pm, + $pm, ^PureExpressionPlatformExecutionNode( resultType = if($propertyMappingHasBindingFunction->eval($pm),| ^ClassResultType(type = $pm.property.genericType.rawType->toOne()), | ^DataTypeResultType(type = $pm.property.genericType.rawType->toOne())), requiredVariableInputs = $generatedVariableInput, - expression = + expression = ^SimpleFunctionExpression( multiplicity = $pm.property.multiplicity, importGroup = system::imports::coreImport, @@ -110,12 +112,12 @@ function meta::relational::mutation::executionPlan::planMutationExecution(sq: St ) ) ) - ->map(p | + ->map(p | let pm = $p.first; pair( $uniquifyColumnNames->eval($pm.relationalOperationElement->cast(@TableAliasColumn).column.name), if($propertyMappingHasBindingFunction->eval($pm), - | + | let bindingTransfomer = $pm.transformer->toOne()->cast(@BindingTransformer); let propertyTree = $rootGraphFetchTree->collectPropertyGraphFetchTrees()->filter(pt | $pt.property == $pm.property)->toOne(); let tree = ^RootGraphFetchTree(class = $pm.property.genericType.rawType->toOne()->cast(@Class), subTrees = $propertyTree.subTrees); @@ -127,15 +129,15 @@ function meta::relational::mutation::executionPlan::planMutationExecution(sq: St tree = $tree, binding = $bindingTransfomer.binding, executionNodes = $p.second); - , + , | $p.second ) ); ) ->newMap(); - let databaseColumnToFreeMarkerVariable = - $inScopePropertyMappings->map(pm | + let databaseColumnToFreeMarkerVariable = + $inScopePropertyMappings->map(pm | pair( $pm.relationalOperationElement->cast(@TableAliasColumn).column.name, ^Literal( @@ -149,9 +151,9 @@ function meta::relational::mutation::executionPlan::planMutationExecution(sq: St )->newMap(); let mainTable = $rootMapping.mainTableAlias.relationalElement->cast(@Table); - let dbConnection = $runtime.connections->at(0)->cast(@DatabaseConnection); - - let upsertQuery = + let dbConnection = $runtime.connectionStores.connection->at(0)->cast(@DatabaseConnection); + + let upsertQuery = ^UpsertSQLQuery( data = $mainTable, equalityStatements = $databaseColumnToFreeMarkerVariable diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/connectionAwareProcessors.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/connectionAwareProcessors.pure index 299e2f99120..de1e02f3715 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/connectionAwareProcessors.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/connectionAwareProcessors.pure @@ -15,17 +15,19 @@ import meta::relational::mapping::*; import meta::pure::mapping::*; import meta::relational::metamodel::relation::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::extension::*; import meta::relational::extension::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::*; -function meta::relational::mapping::connectionAwareProcessors(query:SQLQuery[1], runtime:Runtime[1], store:Database[0..1], exeCtx:ExecutionContext[1], extensions:Extension[*]): PostProcessorResult[1] +function meta::relational::mapping::connectionAwareProcessors(query:SQLQuery[1], runtime:meta::core::runtime::Runtime[1], store:Database[0..1], exeCtx:ExecutionContext[1], extensions:Extension[*]): PostProcessorResult[1] { - let connection = if($store->isNotEmpty(),|let connection =$runtime->connectionByElement($store->toOne()),|$runtime.connections->at(0)); + let connection = if($store->isNotEmpty(),|let connection =$runtime->connectionByElement($store->toOne()),|$runtime.connectionStores.connection->at(0)); let connectionAwarePostProcessors = if($connection->instanceOf(DatabaseConnection), | $connection->cast(@DatabaseConnection).sqlQueryPostProcessorsConnectionAware, | []); let connectionAwarePostProcessorOutput = $connectionAwarePostProcessors->fold({pp,q|$pp->eval($q, $connection->cast(@DatabaseConnection)).values->toOne()}, $query->cast(@SelectSQLQuery)); ^PostProcessorResult(query = $connectionAwarePostProcessorOutput,resultPostProcessor = { result:Result[1] | $result}); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/dbSpecificProcessor.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/dbSpecificProcessor.pure index b8d66232272..e7b85ed6907 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/dbSpecificProcessor.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/dbSpecificProcessor.pure @@ -13,12 +13,15 @@ // limitations under the License. import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::relational::mapping::*; import meta::pure::mapping::*; import meta::relational::metamodel::relation::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::extension::*; import meta::relational::extension::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::*; import meta::pure::functions::collection::*; @@ -26,7 +29,8 @@ import meta::relational::functions::sqlQueryToString::*; function meta::relational::mapping::dbSpecificProcessor(query:SQLQuery[1], runtime:Runtime[1], store:Database[0..1], exeCtx:ExecutionContext[1], extensions:Extension[*]): PostProcessorResult[1] { - let conn = $runtime.connections->filter(c|$c->instanceOf(DatabaseConnection))->cast(@DatabaseConnection); + let connectionStore = $runtime.connectionStores->filter(c|$c.connection->instanceOf(DatabaseConnection)); + let conn = $connectionStore.connection->cast(@DatabaseConnection); let postProcessorQuery = if($conn->isNotEmpty(), | let type = $conn.type; assert(type->size()==1, 'found not enough or too many DB types'); @@ -69,4 +73,4 @@ function meta::relational::mapping::trimColumnNamePostProcessors():meta::pure::m [ meta::relational::postProcessor::reAliasColumnName::trimColumnName_SelectSQLQuery_1__Runtime_1__Result_1_ ] -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/defaultPostProcessor.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/defaultPostProcessor.pure index b045637b176..2ce7b7cf31b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/defaultPostProcessor.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/defaultPostProcessor.pure @@ -14,11 +14,13 @@ import meta::relational::mapping::*; import meta::relational::metamodel::join::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::relation::*; import meta::pure::extension::*; import meta::relational::extension::*; import meta::pure::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::*; @@ -46,7 +48,7 @@ function meta::relational::mapping::postProcessorList():meta::pure::metamodel::f function meta::relational::mapping::defaultProcessors(query:SQLQuery[1], runtime:Runtime[1], store:Database[0..1], exeCtx:ExecutionContext[1], extensions:Extension[*]): PostProcessorResult[1] { - let connection = if($store->isNotEmpty(),|let connection =$runtime->connectionByElement($store->toOne()),|$runtime.connections->at(0)); + let connection = if($store->isNotEmpty(),|let connection =$runtime->connectionByElement($store->toOne()),|$runtime.connectionStores.connection->at(0)); let connectionProcessors = if($connection->instanceOf(DatabaseConnection), | $connection->cast(@DatabaseConnection).sqlQueryPostProcessors, | []); let defaultPostProcessorOutput = sqlQueryDefaultPostProcessors()->fold({pp,q|$pp->eval($q, $extensions).values->toOne()}, $query->cast(@SelectSQLQuery)); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/processInOperation.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/processInOperation.pure index 92eb1f3705c..48938985b61 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/processInOperation.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/processInOperation.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::translation::*; import meta::relational::functions::sqlQueryToString::*; @@ -24,10 +25,12 @@ import meta::relational::functions::pureToSqlQuery::metamodel::*; import meta::relational::postProcessor::*; import meta::pure::extension::*; import meta::relational::extension::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::*; import meta::relational::mapping::*; import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::pure::alloy::connections::alloy::specification::*; function meta::relational::postProcessor::getCollectionThresholdLimitForDatabaseType(dbType:DatabaseType[1], isTestRun:Boolean[1]):Integer[0..1] @@ -39,8 +42,8 @@ function meta::relational::postProcessor::getCollectionThresholdLimitForDatabase function meta::relational::postProcessor::getDbSpecificTempTableCreationLogicSupplierForDatabaseType(dbType:DatabaseType[1], isTestRun:Boolean[1]):Function<{String[1]->String[1]}>[0..1] { - if($isTestRun, - | {varName:String[1] | 'instanceOf(' + $varName + ', "StreamingResult")'}, + if($isTestRun, + | {varName:String[1] | 'instanceOf(' + $varName + ', "StreamingResult")'}, | $dbType->createDbConfig([]).dbExtension.extraTempTableCreationLogicSupplierForIn); } @@ -52,7 +55,7 @@ function <> meta::relational::postProcessor::prefixForWrapperAll function meta::relational::postProcessor::processInOperation(query:SQLQuery[1], runtime:Runtime[1], store:Database[0..1], exeCtx:ExecutionContext[1], extensions:Extension[*]):PostProcessorResult[1] { let connection = $runtime->connectionByElement($store->toOne())->meta::relational::mapping::updateConnection($extensions)->cast(@DatabaseConnection); - let isTestRun = $connection->instanceOf(TestDatabaseConnection) + let isTestRun = $connection->instanceOf(TestDatabaseConnection) || ($connection->instanceOf(RelationalDatabaseConnection) && $connection->cast(@RelationalDatabaseConnection).datasourceSpecification->instanceOf(LocalH2DatasourceSpecification)); let dbThreshold = $connection.type->getCollectionThresholdLimitForDatabaseType($isTestRun); let dbSpecificTempTableCreationLogicSupplier = $connection.type->getDbSpecificTempTableCreationLogicSupplierForDatabaseType($isTestRun); @@ -181,7 +184,7 @@ function meta::relational::postProcessor::generatePostProcessorResult(changedFun ); ); - if($outerAllocationNodeName->in($result.executionNodes->filter(node | $node->instanceOf(AllocationExecutionNode))->cast(@AllocationExecutionNode).varName), + if($outerAllocationNodeName->in($result.executionNodes->filter(node | $node->instanceOf(AllocationExecutionNode))->cast(@AllocationExecutionNode).varName), |$result, |^$result(executionNodes += $processedResultForTempTable.executionNodes->concatenate($executionNodeToBeAdded), postExecutionNodes +=$processedResultForTempTable.postExecutionNodes, templateFunctions +=$processedResultForTempTable.templateFunctions)); }, ^PostProcessorResult(query = $query)); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/processObjectReferenceIn.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/processObjectReferenceIn.pure index 2669b80d31f..53be19b096d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/processObjectReferenceIn.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/processObjectReferenceIn.pure @@ -20,9 +20,11 @@ import meta::relational::functions::pureToSqlQuery::*; import meta::relational::functions::pureToSqlQuery::metamodel::*; import meta::relational::postProcessor::*; import meta::relational::transform::fromPure::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::extension::*; import meta::relational::extension::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::*; @@ -33,10 +35,13 @@ function meta::relational::postProcessor::getObjectReferenceStoreType():String[1 function meta::relational::postProcessor::processObjectReferenceInOperation(query:SQLQuery[1], runtime:Runtime[1], store:Database[0..1], exeCtx:ExecutionContext[1], extensions:Extension[*]):PostProcessorResult[1] { - let connection = $runtime->connectionByElement($store->toOne())->meta::relational::mapping::updateConnection($extensions)->cast(@DatabaseConnection); + let connectionPre = $runtime->connectionByElement($store->toOne()); + let connectionStorePre = $runtime.connectionStores->filter(c|$c.connection==$connectionPre)->toOne(); + let connection = $connectionPre->meta::relational::mapping::updateConnection($extensions)->cast(@DatabaseConnection); + let connectionStore = ^$connectionStorePre(connection=$connection); let tempTableNamePrefix = 'tempTableForObjectReferenceIn_'; let columnName = 'ObjectReferenceInCollectionColumn'; - + let varPrefixForStoringPKValues = 'tempVarForStoringPKValues_'; let translationContext = ^TranslationContext(dbType = $connection.type); @@ -49,7 +54,7 @@ function meta::relational::postProcessor::processObjectReferenceInOperation(quer let selectSQLQuery = generateTempTableSelectSQLQuery('default', $tempTableName, $tempTableColumnName, pureTypeToDataType(String, $translationContext)->toOne()); - ^DynaFunction(name = 'in', + ^DynaFunction(name = 'in', parameters = [$d.parameters->at(0), $selectSQLQuery]);, |$d);, rel : RelationalOperationElement[1] | $rel; @@ -58,7 +63,7 @@ function meta::relational::postProcessor::processObjectReferenceInOperation(quer let transformedQuery = $query->transform($transform, ^Map()); let changedFunctions = $transformedQuery.second->keyValues()->filter(p | $p.first->instanceOf(DynaFunction) && $p.first->cast(@DynaFunction).name == 'objectReferenceIn' && $p.first->buildUniqueName(true, $extensions) != $p.second->buildUniqueName(true, $extensions)); - + $changedFunctions->fold({func, result | let origObjectRefInFunction = $func.first->cast(@DynaFunction); let newObjectRefInFunction = $func.second->cast(@DynaFunction); @@ -68,20 +73,20 @@ function meta::relational::postProcessor::processObjectReferenceInOperation(quer let nameForAllocationNodeStoringPkValues = $tempTableName->replace($tempTableNamePrefix, $varPrefixForStoringPKValues); let collectionVarName = $origObjectRefInFunction.parameters->at(1)->cast(@LiteralList).values.value->cast(@VarPlaceHolder).name->toOne(); - + let pkOrder = $origObjectRefInFunction.parameters->at(2)->cast(@LiteralList).values.value->cast(@String); let storeType = getObjectReferenceStoreType(); - let transformLambda = {objectRefs:String[*]| + let transformLambda = {objectRefs:String[*]| $objectRefs->parseObjectReferences($storeType, $pkOrder)}; let reprocessedLambda = $transformLambda->reprocessLambdaWithInScopeVars([pair('pkOrder', ^List(values = $pkOrder)), pair('storeType', ^List(values = $storeType))]->newMap()); let reprocessedExpressionSeq = $reprocessedLambda.expressionSequence->toOne()->evaluateAndDeactivate()->cast(@SimpleFunctionExpression); - let expressionSeqWithInputVarName = ^$reprocessedExpressionSeq(parametersValues = [^VariableExpression(name=$collectionVarName, genericType = ^GenericType(rawType=String), multiplicity=ZeroMany), + let expressionSeqWithInputVarName = ^$reprocessedExpressionSeq(parametersValues = [^VariableExpression(name=$collectionVarName, genericType = ^GenericType(rawType=String), multiplicity=ZeroMany), $reprocessedExpressionSeq.parametersValues->at(1), $reprocessedExpressionSeq.parametersValues->at(2)]); let allocationNodeForPkValues = ^AllocationExecutionNode( varName = $nameForAllocationNodeStoringPkValues, executionNodes = ^PureExpressionPlatformExecutionNode( - expression = $expressionSeqWithInputVarName, + expression = $expressionSeqWithInputVarName, resultType = ^ResultType(type = List)), resultType = ^ResultType(type = List) ); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/trimColumnNamePostProcessor.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/trimColumnNamePostProcessor.pure index d4641990d8f..87257b009bc 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/trimColumnNamePostProcessor.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/trimColumnNamePostProcessor.pure @@ -12,7 +12,9 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::core::runtime::*; import meta::pure::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::join::*; import meta::relational::functions::pureToSqlQuery::*; @@ -25,9 +27,9 @@ import meta::relational::metamodel::*; import meta::pure::functions::collection::*; import meta::relational::functions::sqlQueryToString::*; -function meta::relational::postProcessor::reAliasColumnName::trimColumnName(query:SelectSQLQuery[1],connection:DatabaseConnection[1]):Result[1] +function meta::relational::postProcessor::reAliasColumnName::trimColumnName(query:SelectSQLQuery[1],connection:ConnectionStore[1]):Result[1] { - trimColumnName($query, ^Runtime(connections = $connection)); + trimColumnName($query, ^Runtime(connectionStores= $connection)); } function meta::relational::postProcessor::reAliasColumnName::trimColumnName(query:SelectSQLQuery[1],runtime:Runtime[1]):Result[1] @@ -35,8 +37,8 @@ function meta::relational::postProcessor::reAliasColumnName::trimColumnName(quer let tableNames = $query->search($runtime); let result =if($tableNames->size()>0, |let myMap = $tableNames->groupBy(p|$p.first); - let keyValuePairs = $myMap->keyValues()->map(keyValue| let list = $keyValue.second.values->removeDuplicates(); - let rangeOf = range($list->size()); + let keyValuePairs = $myMap->keyValues()->map(keyValue| let list = $keyValue.second.values->removeDuplicates(); + let rangeOf = range($list->size()); $rangeOf->map(r| let originalName = $list->at($r).second; let shortenedNamePrefix = $list->at($r).first; let indexedShortenedName = '"'+$shortenedNamePrefix + '_' +$r->toString()+ '"'; @@ -50,7 +52,7 @@ function meta::relational::postProcessor::reAliasColumnName::trimColumnName(quer function meta::relational::postProcessor::reAliasColumnName::lengthConfig(runtime: Runtime[1]):Integer[1] { - let type = $runtime.connections->filter(c|$c->instanceOf(DatabaseConnection))->cast(@DatabaseConnection).type; + let type = $runtime.connectionStores.connection->filter(c|$c->instanceOf(DatabaseConnection))->cast(@DatabaseConnection).type; let length = $type->cast(@DatabaseType)->toOne()->createDbConfig([]).dbExtension.aliasLimit; if($length->isEmpty(), @@ -96,7 +98,7 @@ function meta::relational::postProcessor::reAliasColumnName::search(q:Relationa { $q->map(a| let alias = $a.alias; - let relElement = $alias.relationalElement; + let relElement = $alias.relationalElement; let results = $relElement ->search($runtime)->concatenate($a.childrenData->cast(@JoinTreeNode)->search($runtime)) ->concatenate($a->match([ j: JoinTreeNode[1]| $j.join.target->search($runtime)->concatenate($j.join.aliases.first->search($runtime))->concatenate($j.join.aliases.second->search($runtime));, @@ -111,17 +113,17 @@ function meta::relational::postProcessor::reAliasColumnName::search(q:Relationa function meta::relational::postProcessor::reAliasColumnName::replace(r:RelationalOperationElement[1], m:Map[1]):RelationalOperationElement[1] { $r->match([ - v:VarSetPlaceHolder[1] | $v;, + v:VarSetPlaceHolder[1] | $v;, s:SelectSQLQuery[1] | let newS = ^$s( data=if($s.data->isNotEmpty(), | $s.data->toOne()->replace($m), | [])->cast(@RootJoinTreeNode), columns = $s.columns->map(c| $c->replace($m)), extraFilteringOperation = $s.extraFilteringOperation->map(ef|$ef->replace($m)), savedFilteringOperation = $s.savedFilteringOperation->map(sf|pair($sf.first->replace($m), $sf.second->replace($m))), groupBy=$s.groupBy->map(gb|$gb->replace($m)), havingOperation=$s.havingOperation->map(ho|$ho->replace($m)), - orderBy = $s.orderBy->map(ob|$ob->replace($m)), + orderBy = $s.orderBy->map(ob|$ob->replace($m)), filteringOperation= $s.filteringOperation->map(fo | $fo->replace($m))); if(!$newS.leftSideOfFilter->isEmpty(),| ^$newS(leftSideOfFilter=$s.leftSideOfFilter->toOne()->meta::relational::functions::pureToSqlQuery::findOneNode($s.data->toOne(), $newS.data->toOne())),|$newS);, - + v:ViewSelectSQLQuery[1] | ^$v(selectSQLQuery=$v.selectSQLQuery->replace($m)->cast(@SelectSQLQuery));, u:Union[1] | ^$u(queries = $u.queries->map(q|$q->replace($m);)->cast(@SelectSQLQuery));, ta: TableAlias[1]| ^$ta(relationalElement = $ta.relationalElement->replace($m));, @@ -130,12 +132,12 @@ function meta::relational::postProcessor::reAliasColumnName::replace(r:Relationa a:Alias[1] | ^$a(name = if($m->get($a.name)->isNotEmpty(),|$m->get($a.name)->toOne(),|$a.name),relationalElement=$a.relationalElement->replace($m));, u:UnaryOperation[1] | ^$u(nested=replace($u.nested, $m));, b:BinaryOperation[1] | ^$b(left=replace($b.left, $m), right=replace($b.right, $m));, - roj: RelationalOperationElementWithJoin[1]| ^$roj(relationalOperationElement=$roj.relationalOperationElement->map(r|$r->replace($m)),joinTreeNode=$roj.joinTreeNode->map(j|$j->replace($m))->cast(@JoinTreeNode));, + roj: RelationalOperationElementWithJoin[1]| ^$roj(relationalOperationElement=$roj.relationalOperationElement->map(r|$r->replace($m)),joinTreeNode=$roj.joinTreeNode->map(j|$j->replace($m))->cast(@JoinTreeNode));, va:VariableArityOperation[1] | ^$va(args=$va.args->map(e | $e->replace($m)));, d:DynaFunction[1] | ^$d(parameters=$d.parameters->map(p | $p->replace($m)));, wc:WindowColumn[1] |^$wc(window = $wc.window->replace($m)->cast(@meta::relational::metamodel::Window),func=$wc.func->replace($m)->cast(@DynaFunction));, w:meta::relational::metamodel::Window[1]|^$w(partition=$w.partition->map(p|$p->replace($m)), sortBy=$w.sortBy->map(p|$p->replace($m)));, - j:JoinStrings[1] | ^$j(strings=$j.strings->map(v | $v->replace($m)), + j:JoinStrings[1] | ^$j(strings=$j.strings->map(v | $v->replace($m)), prefix=if($j.prefix->isEmpty(), | [], | $j.prefix->toOne()->replace($m)), separator=if($j.separator->isEmpty(), | [], | $j.separator->toOne()->replace($m)), suffix=if($j.suffix->isEmpty(), | [], | $j.suffix->toOne()->replace($m)));, @@ -161,8 +163,8 @@ function meta::relational::postProcessor::reAliasColumnName::replace(r:Relationa let replaceedJoin = ^$join(aliases=$join.aliases->map(a|pair(replace($a.first,$m)->cast(@TableAlias), replace($a.second,$m)->cast(@TableAlias))), operation = $join.operation->replace($m)->cast(@Operation), target=if(!$join.target->isEmpty(),|replace($join.target->toOne(),$m)->cast(@TableAlias),|[])); - ^$j(join=$replaceedJoin, alias=$j.alias->replace($m)->cast(@TableAlias), childrenData=$j.childrenData->map(c | $c->cast(@JoinTreeNode)->replace($m)));, - r:RootJoinTreeNode[1] | ^$r(alias=$r.alias->replace($m)->cast(@TableAlias), childrenData=$r.childrenData->map(c | $c->cast(@JoinTreeNode)->replace($m))); + ^$j(join=$replaceedJoin, alias=$j.alias->replace($m)->cast(@TableAlias), childrenData=$j.childrenData->map(c | $c->cast(@JoinTreeNode)->replace($m)));, + r:RootJoinTreeNode[1] | ^$r(alias=$r.alias->replace($m)->cast(@TableAlias), childrenData=$r.childrenData->map(c | $c->cast(@JoinTreeNode)->replace($m))); ]); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/postProcessor.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/postProcessor.pure index 5b8bbb9cabb..ec8ce79f068 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/postProcessor.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/postProcessor.pure @@ -20,9 +20,11 @@ import meta::relational::extension::*; import meta::relational::transform::fromPure::*; import meta::relational::functions::sqlQueryToString::*; import meta::pure::executionPlan::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::relational::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::relation::*; import meta::relational::metamodel::*; @@ -46,29 +48,29 @@ function meta::relational::mapping::postProcessSQLQuery(query: SQLQuery[1], stor { let postProcessorResult = $query->defaultPlanPostProcessors($runtime,$ext,$m,$store,$exeCtx, $extensions) ->userPlanPostProcessors($runtime,$ext,$m,$store,$exeCtx); - + $extensions->map(e|$e.moduleExtension('relational')->cast(@RelationalExtension).relational_plan_postProcessors)->fold({pp, result | $pp->eval($result, $runtime, $ext, $m, $store, $exeCtx)}, $postProcessorResult); } function meta::relational::mapping::postProcessSQLQueryWithDefaultPostProcessors(query: SQLQuery[1], store:Database[1], ext:RoutedValueSpecification[0..1], m:Mapping[0..1], runtime:Runtime[1], exeCtx:ExecutionContext[1], extensions:Extension[*]):PostProcessorResult[1] { let postProcessorResult = $query->defaultPlanPostProcessors($runtime,$ext,$m,$store,$exeCtx, $extensions); - + $extensions->map(e|$e.moduleExtension('relational')->cast(@RelationalExtension).relational_plan_postProcessors)->fold({pp, result | $pp->eval($result, $runtime, $ext, $m, $store, $exeCtx)}, $postProcessorResult); } //Execution -function meta::relational::mapping::postProcessQuery(exeCtx:ExecutionContext[1], query:SQLQuery[1], runtime: Runtime[1], store:Database[0..1], extensions:meta::pure::extension::Extension[*]):PostProcessorResult[1] +function meta::relational::mapping::postProcessQuery(exeCtx:ExecutionContext[1], query:SQLQuery[1], runtime: Runtime[1], store:Database[*], extensions:meta::pure::extension::Extension[*]):PostProcessorResult[1] { let defaultPostProcessors = sqlQueryDefaultPostProcessors(); let postProcesedQuery = if($defaultPostProcessors->isEmpty(), | $query, | $defaultPostProcessors->fold({pp,q|$pp->eval($q, $extensions).values->toOne()}, $query->cast(@SelectSQLQuery))); - let c = if($store->isNotEmpty(),|$runtime->connectionByElement($store->toOne()),|$runtime.connections->at(0)); + let c = if($store->isNotEmpty(),|$store->map(s|$runtime->connectionByElement($s))->removeDuplicates()->toOne(),|$runtime.connectionStores.connection->at(0)); let postProcessors1 = if($c->instanceOf(DatabaseConnection), | $c->cast(@DatabaseConnection).sqlQueryPostProcessors, | []); let newQuery1 = if($postProcessors1->isEmpty(), | $postProcesedQuery, | $postProcessors1->fold({pp,q|$pp->eval($q).values->toOne()}, $postProcesedQuery->cast(@SelectSQLQuery))); let postProcessors = if($c->instanceOf(DatabaseConnection), | $c->cast(@DatabaseConnection).sqlQueryPostProcessorsConnectionAware, | []); let newQuery = if($postProcessors->isEmpty(), | $newQuery1, | $postProcessors->fold({pp,q|$pp->eval($q, $c->cast(@DatabaseConnection)).values->toOne()}, $newQuery1->cast(@SelectSQLQuery))); - let newQueryAfterTrimColumnNameProcessing = if($runtime.connections->filter(c|$c->instanceOf(DatabaseConnection))->isNotEmpty(), - | let type = $runtime.connections->filter(c|$c->instanceOf(DatabaseConnection))->cast(@DatabaseConnection).type; + let newQueryAfterTrimColumnNameProcessing = if($runtime.connectionStores.connection->filter(c|$c->instanceOf(DatabaseConnection))->isNotEmpty(), + | let type = $runtime.connectionStores.connection->filter(c|$c->instanceOf(DatabaseConnection))->cast(@DatabaseConnection).type; if ($type->isNotEmpty() && $type->toOne()->createDbConfig([]).dbExtension.aliasLimit->isNotEmpty() && $type != DatabaseType.H2, | trimColumnNamePostProcessors()->eval($newQuery->cast(@SelectSQLQuery),$runtime).values->cast(@SelectSQLQuery);, | $newQuery);, @@ -246,7 +248,7 @@ function meta::relational::postProcessor::transform(r:RelationalOperationElement function meta::relational::postProcessor::transformNonCached(r:RelationalTreeNode[1], parentAlias:TableAlias[0..1], f:meta::pure::metamodel::function::Function[1]):RelationalTreeNode[1] { $r->match([ - j:JoinTreeNode[1] | + j:JoinTreeNode[1] | let join = $j.join; let transformedAlias = $j.alias->transformNonCached($f)->cast(@TableAlias); let joinTarget = if($j.join.target->isNotEmpty(), @@ -274,7 +276,7 @@ function meta::relational::postProcessor::transformNonCached(r:RelationalOperati { let tR = $f->cast(@meta::pure::metamodel::function::Function<{RelationalOperationElement[1]->RelationalOperationElement[1]}>)->eval($r); let toReturn = $tR->match([ - s:SelectSQLQuery[1] | + s:SelectSQLQuery[1] | let newS = ^$s( data= if($s.data->isEmpty(), | [], |$s.data->toOne()->transformNonCached([], $f)->cast(@RootJoinTreeNode)), columns=$s.columns->map(c|$c->transformNonCached($f)), filteringOperation=$s.filteringOperation->map(c|$c->transformNonCached($f)), @@ -284,32 +286,32 @@ function meta::relational::postProcessor::transformNonCached(r:RelationalOperati ); let newSWithLeftSideModified = if(!$newS.leftSideOfFilter->isEmpty(),| ^$newS(leftSideOfFilter=$s.leftSideOfFilter->toOne()->meta::relational::functions::pureToSqlQuery::findOneNode($s.data->toOne(), $newS.data->toOne())),|$newS); $newSWithLeftSideModified;, - + v:ViewSelectSQLQuery[1] | ^$v(selectSQLQuery=$v.selectSQLQuery->transformNonCached($f)->cast(@SelectSQLQuery)), - + u:Union[1] | ^$u(queries=$u.queries->map(q|$q->transformNonCached($f)->cast(@SelectSQLQuery))), - + a:Alias[1] | ^$a(relationalElement=$a.relationalElement->transformNonCached($f)), - + u:UnaryOperation[1] | ^$u(nested=transformNonCached($u.nested, $f)), - + b:BinaryOperation[1] | ^$b(left= transformNonCached($b.left, $f), right=transformNonCached($b.right, $f)), - + va:VariableArityOperation[1] | ^$va(args=$va.args->map(a|$a->transformNonCached($f))), - + d:DynaFunction[1] | ^$d(parameters=$d.parameters->map(p|$p->transformNonCached($f))), - - j:JoinStrings[1] | + + j:JoinStrings[1] | ^$j( strings = $j.strings->map(s|$s->transformNonCached($f)), prefix = $j.prefix->map(s|$s->transformNonCached($f)), separator = $j.separator->map(s|$s->transformNonCached($f)), suffix = $j.suffix->map(s|$s->transformNonCached($f)) ), - + s: SemiStructuredPropertyAccess[1] | ^$s(operand = $s.operand->transformNonCached($f), property = $s.property->transformNonCached($f), index = $s.index->map(i | $i->transformNonCached($f))), s: SemiStructuredArrayElementAccess[1] | ^$s(operand = $s.operand->transformNonCached($f), index = $s.index->transformNonCached($f)), - + rel:RelationalOperationElement[1] | $rel ]); } @@ -366,8 +368,8 @@ function meta::relational::postProcessor::replaceTablesInJoin(r:RelationalTreeNo function meta::relational::runtime::addPostProcessors(r:Runtime[1], store:Store[0..1], pps : meta::pure::metamodel::function::Function<{SelectSQLQuery[1]->meta::pure::mapping::Result[1]}>[*]):Runtime[1] { - let connection = if($store->isNotEmpty(),| let conn = $r->connectionByElement($store->toOne()),|$r.connections->at(0)); - $connection->match([d:DatabaseConnection[1]| let updatedConnections = $r.connections->remove($d)->add(^$d(sqlQueryPostProcessors+=$pps)); - ^$r(connections=$updatedConnections);, - a:Any[1]| fail('Connection must be of type DatabaseConnection'); $r;]); + let connection = if($store->isNotEmpty(),| let conn = $r.connectionStores->filter(c|$c.element==$store->toOne()),|$r.connectionStores->at(0)); + $connection.connection->match([d:DatabaseConnection[1]| let updatedConnections = $r.connectionStores->map(c|if($c.connection!=$d,|$c,|^$c(connection=^$d(sqlQueryPostProcessors+=$pps)))); + ^$r(connectionStores=$updatedConnections);, + a:Any[1]| fail('Connection must be of type DatabaseConnection'); $r;]); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/tests/testPostProcessor.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/tests/testPostProcessor.pure index 1efb8c6a3b0..5fadc7ea659 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/tests/testPostProcessor.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/tests/testPostProcessor.pure @@ -17,6 +17,8 @@ import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::relation::*; import meta::relational::metamodel::*; @@ -36,7 +38,7 @@ function <> meta::relational::tests::postProcessor::testReplaceTableP let oldTable = db->schema('default')->toOne()->table('personTable')->toOne(); let newTable = db->schema('default')->toOne()->table('differentPersonTable')->toOne(); let result = execute(|Person.all(), simpleRelationalMapping, runtimeWithTableReplace(pair($oldTable, $newTable)), meta::relational::extension::relationalExtensions()); - + assertSameSQL('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from differentPersonTable as "root"', $result); } @@ -46,13 +48,16 @@ function <> meta::relational::tests::postProcessor::testReplaceTableM let oldTable = db->schema('default')->toOne()->table('personTable')->toOne(); let newTable = db->schema('default')->toOne()->table('differentPersonTable')->toOne(); - let runtime = ^meta::pure::runtime::Runtime + let runtime = ^meta::core::runtime::Runtime ( - connections = ^TestDatabaseConnection( - element = db, + connectionStores = + ^meta::core::runtime::ConnectionStore( + element = db, + connection=^TestDatabaseConnection( type=DatabaseType.H2, sqlQueryPostProcessors = [{query:SelectSQLQuery[1] | replaceTables($query, pair($oldTable, $newTable)) }, {query:SelectSQLQuery[1] | replaceTables($query, pair($newTable, $oldTable))}] ) + ) ); let result = execute(|Person.all(), simpleRelationalMapping, $runtime, meta::relational::extension::relationalExtensions()); @@ -65,7 +70,7 @@ function <> meta::relational::tests::postProcessor::testReplaceTables let pair1 = pair(db->schema('default')->toOne()->table('personTable')->toOne(),db->schema('default')->toOne()->table('differentPersonTable')->toOne()); let pair2 = pair(db->schema('default')->toOne()->table('firmTable')->toOne(),db->schema('default')->toOne()->table('otherFirmTable')->toOne()); let result = execute(|Firm.all()->project([f|$f.legalName, f|$f.employees.firstName],['firm', 'employee']), simpleRelationalMapping, runtimeWithTableReplace([$pair1, $pair2]), meta::relational::extension::relationalExtensions()); - + assertSameSQL('select "root".LEGALNAME as "firm", "persontable_0".FIRSTNAME as "employee" from otherFirmTable as "root" left outer join differentPersonTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID)', $result); } @@ -95,16 +100,18 @@ function <> meta::relational::tests::postProcessor::testReplaceTableP assertSameSQL('select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".orderDate as "date", "root".settlementDateTime as "settlementDateTime" from orderTable as "root" left outer join (select distinct "salespersontable_1".ACCOUNT_ID from (select "salespersontable_1".ACCOUNT_ID as ACCOUNT_ID, "personfirmview_0".firm_name as firm_name from salesPersonTable as "salespersontable_1" inner join (select "root".ID as PERSON_ID, "root".LASTNAME as lastName, "firmtable_0".LEGALNAME as firm_name from differentPersonTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID)) as "personfirmview_0" on ("salespersontable_1".PERSON_ID = "personfirmview_0".PERSON_ID)) as "salespersontable_1" where "salespersontable_1".firm_name = \'Johnson\') as "salespersontable_0" on ("root".accountID = "salespersontable_0".ACCOUNT_ID) where "salespersontable_0".ACCOUNT_ID is not null', $result); } -function meta::relational::tests::postProcessor::runtimeWithTableReplace(oldToNewPairs:Pair[*] ):meta::pure::runtime::Runtime[1] +function meta::relational::tests::postProcessor::runtimeWithTableReplace(oldToNewPairs:Pair[*] ):meta::core::runtime::Runtime[1] { - - let runtime = ^meta::pure::runtime::Runtime + + let runtime = ^meta::core::runtime::Runtime ( - connections = ^TestDatabaseConnection( - element = db, + connectionStores = + ^meta::core::runtime::ConnectionStore( + element = db, + connection=^TestDatabaseConnection( type=DatabaseType.H2, sqlQueryPostProcessorsConnectionAware = [{query:SelectSQLQuery[1],conn:DatabaseConnection[1] | replaceTables($query, $oldToNewPairs) }] - ) + )) ); } @@ -121,16 +128,18 @@ function <> meta::relational::tests::postProcessor::nonExecutable::te } -function meta::relational::tests::postProcessor::nonExecutable::runtimeWithNonExecutable():meta::pure::runtime::Runtime[1] +function meta::relational::tests::postProcessor::nonExecutable::runtimeWithNonExecutable():meta::core::runtime::Runtime[1] { - - let runtime = ^meta::pure::runtime::Runtime + + let runtime = ^meta::core::runtime::Runtime ( - connections = ^TestDatabaseConnection( - element = db, + connectionStores = + ^meta::core::runtime::ConnectionStore( + element = db, + connection=^TestDatabaseConnection( type=DatabaseType.H2, sqlQueryPostProcessors = [{query:SelectSQLQuery[1] | nonExecutable($query, meta::relational::extension::relationalExtensions()) }] - ) + )) ); } @@ -222,7 +231,7 @@ function <> meta::relational::tests::postProcessor::testSqlRealiasVie function <> meta::relational::tests::postProcessor::testSqlRealiasFreeMarker():Boolean[1] { let result = execute({| let type = meta::relational::tests::model::simple::ProductSynonymType.CUSIP; - meta::relational::tests::model::simple::Trade.all()->filter(x|$x.product->toOne().synonymByType(meta::relational::tests::model::simple::ProductSynonymType.CUSIP).type == $type)->project([t|$t.product.name],['id'])->distinct();}, + meta::relational::tests::model::simple::Trade.all()->filter(x|$x.product->toOne().synonymByType(meta::relational::tests::model::simple::ProductSynonymType.CUSIP).type == $type)->project([t|$t.product.name],['id'])->distinct();}, simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSameElements(['Firm A,Firm C,Firm X'], $result.values.rows->map(r|$r.values)->makeString(',')); assertSameSQL('select distinct "producttable_0".NAME as "id" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) left outer join productSchema.synonymTable as "synonymtable_0" on ("synonymtable_0".PRODID = "producttable_0".ID and "synonymtable_0".TYPE = \'CUSIP\') where "synonymtable_0".TYPE = \'CUSIP\'', $result); @@ -236,7 +245,7 @@ function <> meta::relational::tests::postProcessor::testSQLRealiasCas function <> meta::relational::tests::postProcessor::testDb2ColumnRename():Boolean[1] { - let runtime = ^meta::pure::runtime::Runtime(connections = ^TestDatabaseConnection(element = meta::relational::tests::mapping::union::myDB, type = DatabaseType.DB2)); + let runtime = ^meta::core::runtime::Runtime(connectionStores = ^meta::core::runtime::ConnectionStore(element = meta::relational::tests::mapping::union::myDB, connection=^TestDatabaseConnection(type = DatabaseType.DB2))); let result = meta::relational::functions::sqlstring::toSQL(|Person.all()->project([p|$p.lastName], ['name']), meta::relational::tests::mapping::union::unionMappingWithLongPropertyMapping, $runtime, meta::relational::extension::relationalExtensions()).sqlQueries->at(0)->cast(@SelectSQLQuery)->meta::relational::postProcessor::reAliasColumnName::trimColumnName($runtime).values->meta::relational::functions::sqlQueryToString::sqlQueryToString(DatabaseType.DB2, '', [], meta::relational::extension::relationalExtensions()); assertEquals('select "unionBase"."concat_thisStringIsThisLongMakeTheGeneratedAliasExplodePastTheDb2limitOf128Characters_concat_ForTestPurposesOnly_Perso_0" as "name" from (select "root".ID as "pk_0_0", null as "pk_0_1", (\'thisStringIsThisLongMakeTheGeneratedAliasExplodePastTheDb2limitOf128Characters\' concat (\'ForTestPurposesOnly\' concat "root".lastName_s1)) as "concat_thisStringIsThisLongMakeTheGeneratedAliasExplodePastTheDb2limitOf128Characters_concat_ForTestPurposesOnly_Perso_0" from PersonSet1 as "root" UNION ALL select null as "pk_0_0", "root".ID as "pk_0_1", (\'thisStringIsThisLongMakeTheGeneratedAliasExplodePastTheDb2limitOf128Characters\' concat (\'ForTestPurposesOnly\' concat "root".lastName_s2)) as "concat_thisStringIsThisLongMakeTheGeneratedAliasExplodePastTheDb2limitOf128Characters_concat_ForTestPurposesOnly_Perso_0" from PersonSet2 as "root") as "unionBase"',$result); } @@ -244,9 +253,10 @@ function <> meta::relational::tests::postProcessor::testDb2ColumnRena function <> meta::relational::tests::postProcessor::testPostProcessTransformJoinOp():Boolean[1] { let runtime = testRuntime(); - let conn = $runtime.connections->at(0)->cast(@TestDatabaseConnection); - let runtimeWithPostProcessor = ^$runtime(connections = ^$conn(sqlQueryPostProcessors= [{query:meta::relational::metamodel::relation::SelectSQLQuery[1] | $query->meta::relational::postProcessor::postprocess({rel | $rel->match([t:TableAliasColumn[1] | if($t.column.type->instanceOf(meta::relational::metamodel::datatype::Integer), | ^Literal(value=2), |$t ) , r:RelationalOperationElement[1] |$r])}) }])); - + let connectionStore = $runtime.connectionStores->at(0); + let conn = $connectionStore.connection->cast(@TestDatabaseConnection); + let runtimeWithPostProcessor = ^$runtime(connectionStores = ^$connectionStore(connection=^$conn(sqlQueryPostProcessors= [{query:meta::relational::metamodel::relation::SelectSQLQuery[1] | $query->meta::relational::postProcessor::postprocess({rel | $rel->match([t:TableAliasColumn[1] | if($t.column.type->instanceOf(meta::relational::metamodel::datatype::Integer), | ^Literal(value=2), |$t ) , r:RelationalOperationElement[1] |$r])}) }]))); + let result = meta::relational::functions::sqlstring::toSQL(|Trade.all()->project([x|$x.id, x|$x.initiator.name], ['TradeID', 'Initiator']), simpleRelationalMapping, $runtimeWithPostProcessor, meta::relational::extension::relationalExtensions()).sqlQueries->at(0)->cast(@SelectSQLQuery)->meta::relational::functions::sqlQueryToString::sqlQueryToString(DatabaseType.H2, '', [], meta::relational::extension::relationalExtensions()); assertEquals('select 2 as "TradeID", concat("persontable_0".FIRSTNAME, \' \', "persontable_0".LASTNAME) as "Initiator" from tradeTable as "root" left outer join tradeEventTable as "tradeeventtable_0" on (2 = 2 and "tradeeventtable_0".eventDate = "root".tradeDate) left outer join personTable as "persontable_0" on (2 = 2)', $result); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/userPostProcessor/userPostProcessor.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/userPostProcessor/userPostProcessor.pure index 1f4f3f1f664..0a2a59dfff5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/userPostProcessor/userPostProcessor.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/userPostProcessor/userPostProcessor.pure @@ -13,14 +13,16 @@ // limitations under the License. import meta::relational::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::*; import meta::pure::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::relational::mapping::userPlanPostProcessors(result:PostProcessorResult[1], runtime:Runtime[1], ext:RoutedValueSpecification[0..1], m:Mapping[0..1], store:Database[0..1], exeCtx:ExecutionContext[1]): PostProcessorResult[1] { - let postProcessorsWithParameters = $runtime.connections->filter(c|$c->instanceOf(DatabaseConnection))->cast(@DatabaseConnection).queryPostProcessorsWithParameter; + let postProcessorsWithParameters = $runtime.connectionStores->filter(c|$c.connection->instanceOf(DatabaseConnection)).connection->cast(@DatabaseConnection).queryPostProcessorsWithParameter; let postProcessorResult = if($postProcessorsWithParameters->isNotEmpty(), | $postProcessorsWithParameters->fold({i, prevResult|let struct = $i.postProcessor->cast(@ConcreteFunctionDefinition<{->PostProcessor[1]}>)->eval(); let res = $struct.sqlQueryPostProcessorForPlan->cast(@ConcreteFunctionDefinition<{SQLQuery[1], Mapping[0..1], Runtime[1], Database[0..1], ExecutionContext[1], PostProcessorParameter[*]->PostProcessorResult[1]}>)->toOne()->eval($prevResult.query,$m,$runtime->toOne(),$store,$exeCtx,$i.parameters)->toOne(); @@ -28,4 +30,4 @@ function meta::relational::mapping::userPlanPostProcessors(result:PostProcessorR $result), |$result; ); -} \ No newline at end of file +} 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/v1_20_0/extension/extension_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/v1_20_0/extension/extension_relational.pure index f4270e6fcf3..1505da9e665 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_20_0/extension/extension_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/v1_20_0/extension/extension_relational.pure @@ -18,6 +18,7 @@ import meta::protocols::pure::v1_20_0::transformation::fromPureGraph::store::csv import meta::protocols::pure::v1_20_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_20_0::transformation::fromPureGraph::store::relational::*; import meta::protocols::pure::v1_20_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::protocols::pure::v1_20_0::invocation::execution::execute::*; import meta::relational::mapping::*; @@ -32,7 +33,7 @@ function meta::protocols::pure::v1_20_0::extension::getRelationalExtension(type: ]->filter(f|$f.first == $type); assert($res->isNotEmpty(), |'Can\'t find the type '+$type); $res->at(0).second->eval(); - + } function meta::protocols::pure::v1_20_0::extension::getRelationalExtension():meta::protocols::pure::v1_20_0::extension::SerializerExtension_v1_20_0[1] @@ -49,7 +50,7 @@ function meta::protocols::pure::v1_20_0::extension::getRelationalExtension():met transfers_valueSpecification_transformAny = { inScope:String[*], open:Map>[1], m:Multiplicity[1], fe:FunctionExpression[0..1],useAppliedFunction:Boolean[1], extensions:meta::pure::extension::Extension[*] | [ - r:meta::pure::runtime::Runtime[1]| + r:meta::core::runtime::Runtime[1]| ^meta::protocols::pure::v1_20_0::metamodel::valueSpecification::raw::RuntimeInstance ( _type = 'runtimeInstance', @@ -235,7 +236,7 @@ function meta::protocols::pure::v1_20_0::extension::getRelationalExtension():met let rv = $resultJSON->fromJSON(meta::protocols::pure::v1_20_0::metamodel::invocation::execution::execute::RelationalTDSResult, $extendedJSONDeserializationConfig); $rv->cast(@meta::protocols::pure::v1_20_0::metamodel::invocation::execution::execute::RelationalTDSResult)->toOne()->processTDSResult($extensions);} ), - + pair (builderType:String[1]| $builderType->isNotEmpty() && $builderType->toOne()=='classBuilder', {resultJSON:String[1], result:JSONObject[1], m:Mapping[1], pureRuntime:Runtime[1],extendedJSONDeserializationConfig:ExtendedJSONDeserializationConfig[1], context:ExecutionContext[0..1]| let r = $resultJSON->fromJSON(meta::protocols::pure::v1_20_0::metamodel::invocation::execution::execute::RelationalClassResult, $extendedJSONDeserializationConfig); @@ -251,7 +252,7 @@ function meta::protocols::pure::v1_20_0::extension::getRelationalExtension():met ]} , - invocation_execution_transformContext = + invocation_execution_transformContext = [ r:meta::relational::runtime::RelationalExecutionContext[1]| let importDataFlowFkCols = if($r.importDataFlowFksByTable->isEmpty(), |[], @@ -281,10 +282,10 @@ function meta::protocols::pure::v1_20_0::extension::getRelationalExtension():met ]}, transfers_store_transformConnection2 = {extensions:meta::pure::extension::Extension[*] | [ - db:meta::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_20_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) + db:meta::external::store::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_20_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) ]}, scan_buildPureModelAsText_getAllElementsFromMapping = {stores : meta::pure::store::Store[*] | - $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) + $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) } ) } @@ -306,4 +307,4 @@ function meta::protocols::pure::v1_20_0::transformation::fromPureGraph::executio identifierForGetter = $c.identifierForGetter, parametersForGetter = $c.parametersForGetter ) -} \ No newline at end of file +} 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/v1_20_0/invocations/execution_relational_execute.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_20_0/invocations/execution_relational_execute.pure index e094b0fa6c0..9631b8980ae 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_20_0/invocations/execution_relational_execute.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_20_0/invocations/execution_relational_execute.pure @@ -19,12 +19,14 @@ import meta::pure::extension::*; import meta::relational::extension::*; import meta::protocols::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_20_0::transformation::fromPureGraph::context::*; import meta::pure::router::routing::*; import meta::protocols::pure::v1_20_0::invocation::execution::execute::*; import meta::protocols::pure::v1_20_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_20_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::pure::milestoning::*; @@ -172,7 +174,10 @@ function meta::protocols::pure::v1_20_0::invocation::execution::execute::generat function meta::protocols::pure::v1_20_0::invocation::execution::execute::generateAlloyRelationalStoreObjectReference(mapping:Mapping[1], set:RelationalInstanceSetImplementation[1], sets:SetImplementation[*], runtime:Runtime[1], pkMap:Map[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_20_0::metamodel::objectReference::AlloyRelationalStoreObjectReference[1] { let store = $set.stores->toOne(); - let databaseConnection = $runtime->connectionByElement($store->toOne())->meta::protocols::pure::v1_20_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->cast(@meta::protocols::pure::v1_20_0::metamodel::store::relational::connection::DatabaseConnection); + let conn = $runtime->connectionByElement($store->toOne()); + let connectionStore = $runtime.connectionStores->filter(c|$c.connection==$conn); + let databaseConnection = $connectionStore->map(ce|$ce.connection->meta::protocols::pure::v1_20_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$ce.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) + ->toOne()->cast(@meta::protocols::pure::v1_20_0::metamodel::store::relational::connection::DatabaseConnection); let setIdx = if($sets->size() == 1, | '', | '_' + $sets->indexOf($set)->toString()); let transformedPkMap = meta::relational::mapping::resolvePrimaryKeysNames($set->cast(@RelationalInstanceSetImplementation), $pkMap, $setIdx, true, $extensions); @@ -190,10 +195,10 @@ function meta::protocols::pure::v1_20_0::invocation::execution::execute::decodeA { let parsedObjectRef = meta::alloy::objectReference::decodeAndParseAlloyObjectReference($ref); let type = $parsedObjectRef->get('type')->cast(@String)->toOne(); - + if($type->toLower() == 'relational', | meta::protocols::pure::v1_20_0::invocation::execution::execute::getAlloyRelationalStoreObjectReference($parsedObjectRef), - | fail('Not Supported Yet!!'); + | fail('Not Supported Yet!!'); ^meta::protocols::pure::v1_20_0::metamodel::objectReference::AlloyObjectReference ( type = meta::protocols::pure::v1_20_0::metamodel::objectReference::AlloyObjectReferenceType.Relational, 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/v1_20_0/invocations/execution_relational_testData.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_20_0/invocations/execution_relational_testData.pure index b34e6aec6a6..c1c44bb96b1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_20_0/invocations/execution_relational_testData.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_20_0/invocations/execution_relational_testData.pure @@ -18,6 +18,7 @@ import meta::protocols::pure::v1_20_0::invocation::execution::execute::*; import meta::protocols::pure::v1_20_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_20_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::alloy::metadataServer::*; @@ -94,7 +95,7 @@ function meta::protocols::pure::v1_20_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_20_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_20_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -164,7 +165,7 @@ function meta::protocols::pure::v1_20_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_20_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_20_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -235,7 +236,7 @@ function meta::protocols::pure::v1_20_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->map(element | + |let stores = $pureRuntime.connectionStores.element->map(element | $element->match([ store:meta::pure::store::Store[1] | $store->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() 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/v1_20_0/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/v1_20_0/transfers/connection_relational.pure index 60da615a9d4..e1d0f4a0f11 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_20_0/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/v1_20_0/transfers/connection_relational.pure @@ -26,18 +26,18 @@ import meta::protocols::pure::v1_20_0::metamodel::store::relational::connection: import meta::protocols::pure::v1_20_0::metamodel::store::relational::element::*; import meta::protocols::pure::v1_20_0::transformation::fromPureGraph::model::*; -function meta::protocols::pure::v1_20_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_20_0::metamodel::store::relational::connection::DatabaseConnection[1] +function meta::protocols::pure::v1_20_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::external::store::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_20_0::metamodel::store::relational::connection::DatabaseConnection[1] { let _type = $otherConnection->class()->toString(); - let element = $otherConnection.element->match([d:meta::pure::store::Store[1]|$d->elementToPath(),s:String[1]|$s]); + let element = ''; let type = $otherConnection.type->toString(); - let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::pure::alloy::connections::RelationalDatabaseConnection), + let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::external::store::relational::runtime::RelationalDatabaseConnection), | [], | $otherConnection.queryPostProcessorsWithParameter->transformPostProcessors($extensions)); let alloyConnection = $otherConnection->match($extensions.serializerExtension('v1_20_0')->cast(@meta::protocols::pure::v1_20_0::extension::SerializerExtension_v1_20_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_20_0::extension::RelationalModuleSerializerExtension).transfers_connection_transformDatabaseConnection->map(f | $f->eval($_type, $element, $type, $postProcessorsWithParams))->concatenate([ - test:meta::relational::runtime::TestDatabaseConnection[1]| + test:meta::external::store::relational::runtime::TestDatabaseConnection[1]| ^RelationalDatabaseConnection( _type = 'RelationalDatabaseConnection', type = $type, @@ -54,10 +54,10 @@ function meta::protocols::pure::v1_20_0::transformation::fromPureGraph::connecti ), postProcessorWithParameter = $postProcessorsWithParams ), - relational:meta::pure::alloy::connections::RelationalDatabaseConnection[1] | + relational:meta::external::store::relational::runtime::RelationalDatabaseConnection[1] | let processors = transformPostProcessors($relational.postProcessors, $extensions); relational($type, $element, $relational.timeZone, $relational.quoteIdentifiers, $processors, $relational.datasourceSpecification, $relational.authenticationStrategy, $extensions);, - dbCon:meta::relational::runtime::DatabaseConnection[1]| + dbCon:meta::external::store::relational::runtime::DatabaseConnection[1]| ^meta::protocols::pure::v1_20_0::metamodel::store::relational::connection::DatabaseConnection( _type = $_type, timeZone = $dbCon.timeZone, 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/v1_20_0/transfers/metamodel_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/v1_20_0/transfers/metamodel_relational.pure index 14ff3a017e8..0b1cc4b8fda 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_20_0/transfers/metamodel_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/v1_20_0/transfers/metamodel_relational.pure @@ -20,6 +20,7 @@ import meta::protocols::pure::v1_20_0::transformation::fromPureGraph::mapping::m import meta::protocols::pure::v1_20_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_20_0::transformation::fromPureGraph::modelToModel::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_20_0::transformation::fromPureGraph::domain::*; import meta::protocols::pure::v1_20_0::transformation::fromPureGraph::store::csv::*; import meta::pure::mapping::*; 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/v1_21_0/extension/extension_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/v1_21_0/extension/extension_relational.pure index e64fcc378c1..eb30293b27f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_21_0/extension/extension_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/v1_21_0/extension/extension_relational.pure @@ -18,6 +18,7 @@ import meta::protocols::pure::v1_21_0::transformation::fromPureGraph::store::csv import meta::protocols::pure::v1_21_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_21_0::transformation::fromPureGraph::store::relational::*; import meta::protocols::pure::v1_21_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::protocols::pure::v1_21_0::invocation::execution::execute::*; import meta::relational::mapping::*; @@ -32,7 +33,7 @@ function meta::protocols::pure::v1_21_0::extension::getRelationalExtension(type: ]->filter(f|$f.first == $type); assert($res->isNotEmpty(), |'Can\'t find the type '+$type); $res->at(0).second->eval(); - + } function meta::protocols::pure::v1_21_0::extension::getRelationalExtension():meta::protocols::pure::v1_21_0::extension::SerializerExtension_v1_21_0[1] @@ -50,7 +51,7 @@ function meta::protocols::pure::v1_21_0::extension::getRelationalExtension():met transfers_valueSpecification_transformAny = { inScope:String[*], open:Map>[1], m:Multiplicity[1], fe:FunctionExpression[0..1],useAppliedFunction:Boolean[1], extensions:meta::pure::extension::Extension[*] | [ - r:meta::pure::runtime::Runtime[1]| + r:meta::core::runtime::Runtime[1]| ^meta::protocols::pure::v1_21_0::metamodel::valueSpecification::raw::RuntimeInstance ( _type = 'runtimeInstance', @@ -236,7 +237,7 @@ function meta::protocols::pure::v1_21_0::extension::getRelationalExtension():met let rv = $resultJSON->fromJSON(meta::protocols::pure::v1_21_0::metamodel::invocation::execution::execute::RelationalTDSResult, $extendedJSONDeserializationConfig); $rv->cast(@meta::protocols::pure::v1_21_0::metamodel::invocation::execution::execute::RelationalTDSResult)->toOne()->processTDSResult($extensions);} ), - + pair (builderType:String[1]| $builderType->isNotEmpty() && $builderType->toOne()=='classBuilder', {resultJSON:String[1], result:JSONObject[1], m:Mapping[1], pureRuntime:Runtime[1],extendedJSONDeserializationConfig:ExtendedJSONDeserializationConfig[1], context:ExecutionContext[0..1]| let r = $resultJSON->fromJSON(meta::protocols::pure::v1_21_0::metamodel::invocation::execution::execute::RelationalClassResult, $extendedJSONDeserializationConfig); @@ -252,7 +253,7 @@ function meta::protocols::pure::v1_21_0::extension::getRelationalExtension():met ]} , - invocation_execution_transformContext = + invocation_execution_transformContext = [ r:meta::relational::runtime::RelationalExecutionContext[1]| let importDataFlowFkCols = if($r.importDataFlowFksByTable->isEmpty(), |[], @@ -282,10 +283,10 @@ function meta::protocols::pure::v1_21_0::extension::getRelationalExtension():met ]}, transfers_store_transformConnection2 = {extensions:meta::pure::extension::Extension[*] | [ - db:meta::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) + db:meta::external::store::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) ]}, scan_buildPureModelAsText_getAllElementsFromMapping = {stores : meta::pure::store::Store[*] | - $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) + $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) } ) } @@ -323,4 +324,4 @@ function meta::protocols::pure::v1_21_0::transformation::fromPureGraph::executio identifierForGetter = $c.identifierForGetter, parametersForGetter = $c.parametersForGetter ) -} \ No newline at end of file +} 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/v1_21_0/invocations/execution_relational_execute.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_21_0/invocations/execution_relational_execute.pure index b76d1123c27..89771e6edb4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_21_0/invocations/execution_relational_execute.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_21_0/invocations/execution_relational_execute.pure @@ -19,12 +19,14 @@ import meta::pure::extension::*; import meta::relational::extension::*; import meta::protocols::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_21_0::transformation::fromPureGraph::context::*; import meta::pure::router::routing::*; import meta::protocols::pure::v1_21_0::invocation::execution::execute::*; import meta::protocols::pure::v1_21_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_21_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::pure::milestoning::*; @@ -172,7 +174,10 @@ function meta::protocols::pure::v1_21_0::invocation::execution::execute::generat function meta::protocols::pure::v1_21_0::invocation::execution::execute::generateAlloyRelationalStoreObjectReference(mapping:Mapping[1], set:RelationalInstanceSetImplementation[1], sets:SetImplementation[*], runtime:Runtime[1], pkMap:Map[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_21_0::metamodel::objectReference::AlloyRelationalStoreObjectReference[1] { let store = $set.stores->toOne(); - let databaseConnection = $runtime->connectionByElement($store->toOne())->meta::protocols::pure::v1_21_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->cast(@meta::protocols::pure::v1_21_0::metamodel::store::relational::connection::DatabaseConnection); + let conn = $runtime->connectionByElement($store->toOne()); + let connectionStore = $runtime.connectionStores->filter(c|$c.connection==$conn); + let databaseConnection = $connectionStore->map(ce|$ce.connection->meta::protocols::pure::v1_21_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$ce.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) + ->toOne()->cast(@meta::protocols::pure::v1_21_0::metamodel::store::relational::connection::DatabaseConnection); let setIdx = if($sets->size() == 1, | '', | '_' + $sets->indexOf($set)->toString()); let transformedPkMap = meta::relational::mapping::resolvePrimaryKeysNames($set->cast(@RelationalInstanceSetImplementation), $pkMap, $setIdx, true, $extensions); @@ -190,10 +195,10 @@ function meta::protocols::pure::v1_21_0::invocation::execution::execute::decodeA { let parsedObjectRef = meta::alloy::objectReference::decodeAndParseAlloyObjectReference($ref); let type = $parsedObjectRef->get('type')->cast(@String)->toOne(); - + if($type->toLower() == 'relational', | meta::protocols::pure::v1_21_0::invocation::execution::execute::getAlloyRelationalStoreObjectReference($parsedObjectRef), - | fail('Not Supported Yet!!'); + | fail('Not Supported Yet!!'); ^meta::protocols::pure::v1_21_0::metamodel::objectReference::AlloyObjectReference ( type = meta::protocols::pure::v1_21_0::metamodel::objectReference::AlloyObjectReferenceType.Relational, 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/v1_21_0/invocations/execution_relational_testData.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_21_0/invocations/execution_relational_testData.pure index b93748808d3..23cc84044f2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_21_0/invocations/execution_relational_testData.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_21_0/invocations/execution_relational_testData.pure @@ -18,6 +18,7 @@ import meta::protocols::pure::v1_21_0::invocation::execution::execute::*; import meta::protocols::pure::v1_21_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_21_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::alloy::metadataServer::*; @@ -94,7 +95,7 @@ function meta::protocols::pure::v1_21_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_21_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_21_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -164,7 +165,7 @@ function meta::protocols::pure::v1_21_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_21_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_21_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -235,7 +236,7 @@ function meta::protocols::pure::v1_21_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->map(element | + |let stores = $pureRuntime.connectionStores.element->map(element | $element->match([ store:meta::pure::store::Store[1] | $store->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() 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/v1_21_0/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/v1_21_0/transfers/connection_relational.pure index 59924e86c6c..eb7f87d0a2f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_21_0/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/v1_21_0/transfers/connection_relational.pure @@ -26,18 +26,18 @@ import meta::protocols::pure::v1_21_0::metamodel::store::relational::connection: import meta::protocols::pure::v1_21_0::metamodel::store::relational::element::*; import meta::protocols::pure::v1_21_0::transformation::fromPureGraph::model::*; -function meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_21_0::metamodel::store::relational::connection::DatabaseConnection[1] +function meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::external::store::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_21_0::metamodel::store::relational::connection::DatabaseConnection[1] { let _type = $otherConnection->class()->toString(); - let element = $otherConnection.element->match([d:meta::pure::store::Store[1]|$d->elementToPath(),s:String[1]|$s]); + let element = ''; let type = $otherConnection.type->toString(); - let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::pure::alloy::connections::RelationalDatabaseConnection), + let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::external::store::relational::runtime::RelationalDatabaseConnection), | [], | $otherConnection.queryPostProcessorsWithParameter->transformPostProcessors($extensions)); let alloyConnection = $otherConnection->match($extensions.serializerExtension('v1_21_0')->cast(@meta::protocols::pure::v1_21_0::extension::SerializerExtension_v1_21_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_21_0::extension::RelationalModuleSerializerExtension).transfers_connection_transformDatabaseConnection->map(f | $f->eval($_type, $element, $type, $postProcessorsWithParams))->concatenate([ - test:meta::relational::runtime::TestDatabaseConnection[1]| + test:meta::external::store::relational::runtime::TestDatabaseConnection[1]| ^RelationalDatabaseConnection( _type = 'RelationalDatabaseConnection', type = $type, @@ -54,10 +54,10 @@ function meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connecti ), postProcessorWithParameter = $postProcessorsWithParams ), - relational:meta::pure::alloy::connections::RelationalDatabaseConnection[1] | + relational:meta::external::store::relational::runtime::RelationalDatabaseConnection[1] | let processors = transformPostProcessors($relational.postProcessors, $extensions); relational($type, $element, $relational.timeZone, $relational.quoteIdentifiers, $processors, $relational.datasourceSpecification, $relational.authenticationStrategy, $extensions);, - dbCon:meta::relational::runtime::DatabaseConnection[1]| + dbCon:meta::external::store::relational::runtime::DatabaseConnection[1]| ^meta::protocols::pure::v1_21_0::metamodel::store::relational::connection::DatabaseConnection( _type = $_type, timeZone = $dbCon.timeZone, 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/v1_21_0/transfers/metamodel_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/v1_21_0/transfers/metamodel_relational.pure index d4764d5d9e6..25e2f776f8a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_21_0/transfers/metamodel_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/v1_21_0/transfers/metamodel_relational.pure @@ -20,6 +20,7 @@ import meta::protocols::pure::v1_21_0::transformation::fromPureGraph::mapping::m import meta::protocols::pure::v1_21_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_21_0::transformation::fromPureGraph::modelToModel::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_21_0::transformation::fromPureGraph::domain::*; import meta::protocols::pure::v1_21_0::transformation::fromPureGraph::store::csv::*; import meta::pure::mapping::*; 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/v1_22_0/extension/extension_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/v1_22_0/extension/extension_relational.pure index 109ffab4fa3..24bd18f5c8f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_22_0/extension/extension_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/v1_22_0/extension/extension_relational.pure @@ -18,6 +18,7 @@ import meta::protocols::pure::v1_22_0::transformation::fromPureGraph::store::csv import meta::protocols::pure::v1_22_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_22_0::transformation::fromPureGraph::store::relational::*; import meta::protocols::pure::v1_22_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::protocols::pure::v1_22_0::invocation::execution::execute::*; import meta::relational::mapping::*; @@ -32,7 +33,7 @@ function meta::protocols::pure::v1_22_0::extension::getRelationalExtension(type: ]->filter(f|$f.first == $type); assert($res->isNotEmpty(), |'Can\'t find the type '+$type); $res->at(0).second->eval(); - + } function meta::protocols::pure::v1_22_0::extension::getRelationalExtension():meta::protocols::pure::v1_22_0::extension::SerializerExtension_v1_22_0[1] @@ -50,7 +51,7 @@ function meta::protocols::pure::v1_22_0::extension::getRelationalExtension():met transfers_valueSpecification_transformAny = { inScope:String[*], open:Map>[1], m:Multiplicity[1], fe:FunctionExpression[0..1],useAppliedFunction:Boolean[1], extensions:meta::pure::extension::Extension[*] | [ - r:meta::pure::runtime::Runtime[1]| + r:meta::core::runtime::Runtime[1]| ^meta::protocols::pure::v1_22_0::metamodel::valueSpecification::raw::RuntimeInstance ( _type = 'runtimeInstance', @@ -236,7 +237,7 @@ function meta::protocols::pure::v1_22_0::extension::getRelationalExtension():met let rv = $resultJSON->fromJSON(meta::protocols::pure::v1_22_0::metamodel::invocation::execution::execute::RelationalTDSResult, $extendedJSONDeserializationConfig); $rv->cast(@meta::protocols::pure::v1_22_0::metamodel::invocation::execution::execute::RelationalTDSResult)->toOne()->processTDSResult($extensions);} ), - + pair (builderType:String[1]| $builderType->isNotEmpty() && $builderType->toOne()=='classBuilder', {resultJSON:String[1], result:JSONObject[1], m:Mapping[1], pureRuntime:Runtime[1],extendedJSONDeserializationConfig:ExtendedJSONDeserializationConfig[1], context:ExecutionContext[0..1]| let r = $resultJSON->fromJSON(meta::protocols::pure::v1_22_0::metamodel::invocation::execution::execute::RelationalClassResult, $extendedJSONDeserializationConfig); @@ -252,7 +253,7 @@ function meta::protocols::pure::v1_22_0::extension::getRelationalExtension():met ]} , - invocation_execution_transformContext = + invocation_execution_transformContext = [ r:meta::relational::runtime::RelationalExecutionContext[1]| let importDataFlowFkCols = if($r.importDataFlowFksByTable->isEmpty(), |[], @@ -282,10 +283,10 @@ function meta::protocols::pure::v1_22_0::extension::getRelationalExtension():met ]}, transfers_store_transformConnection2 = {extensions:meta::pure::extension::Extension[*] | [ - db:meta::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) + db:meta::external::store::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) ]}, scan_buildPureModelAsText_getAllElementsFromMapping = {stores : meta::pure::store::Store[*] | - $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) + $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) } ) } @@ -323,4 +324,4 @@ function meta::protocols::pure::v1_22_0::transformation::fromPureGraph::executio identifierForGetter = $c.identifierForGetter, parametersForGetter = $c.parametersForGetter ) -} \ No newline at end of file +} 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/v1_22_0/invocations/execution_relational_execute.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_22_0/invocations/execution_relational_execute.pure index 56578fdb013..8a550f9de47 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_22_0/invocations/execution_relational_execute.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_22_0/invocations/execution_relational_execute.pure @@ -19,12 +19,14 @@ import meta::pure::extension::*; import meta::relational::extension::*; import meta::protocols::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_22_0::transformation::fromPureGraph::context::*; import meta::pure::router::routing::*; import meta::protocols::pure::v1_22_0::invocation::execution::execute::*; import meta::protocols::pure::v1_22_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_22_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::pure::milestoning::*; @@ -172,7 +174,10 @@ function meta::protocols::pure::v1_22_0::invocation::execution::execute::generat function meta::protocols::pure::v1_22_0::invocation::execution::execute::generateAlloyRelationalStoreObjectReference(mapping:Mapping[1], set:RelationalInstanceSetImplementation[1], sets:SetImplementation[*], runtime:Runtime[1], pkMap:Map[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_22_0::metamodel::objectReference::AlloyRelationalStoreObjectReference[1] { let store = $set.stores->toOne(); - let databaseConnection = $runtime->connectionByElement($store->toOne())->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->cast(@meta::protocols::pure::v1_22_0::metamodel::store::relational::connection::DatabaseConnection); + let conn = $runtime->connectionByElement($store->toOne()); + let connectionStore = $runtime.connectionStores->filter(c|$c.connection==$conn); + let databaseConnection = $connectionStore->map(ce|$ce.connection->meta::protocols::pure::v1_22_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$ce.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) + ->toOne()->cast(@meta::protocols::pure::v1_22_0::metamodel::store::relational::connection::DatabaseConnection); let setIdx = if($sets->size() == 1, | '', | '_' + $sets->indexOf($set)->toString()); let transformedPkMap = meta::relational::mapping::resolvePrimaryKeysNames($set->cast(@RelationalInstanceSetImplementation), $pkMap, $setIdx, true, $extensions); @@ -190,10 +195,10 @@ function meta::protocols::pure::v1_22_0::invocation::execution::execute::decodeA { let parsedObjectRef = meta::alloy::objectReference::decodeAndParseAlloyObjectReference($ref); let type = $parsedObjectRef->get('type')->cast(@String)->toOne(); - + if($type->toLower() == 'relational', | meta::protocols::pure::v1_22_0::invocation::execution::execute::getAlloyRelationalStoreObjectReference($parsedObjectRef), - | fail('Not Supported Yet!!'); + | fail('Not Supported Yet!!'); ^meta::protocols::pure::v1_22_0::metamodel::objectReference::AlloyObjectReference ( type = meta::protocols::pure::v1_22_0::metamodel::objectReference::AlloyObjectReferenceType.Relational, 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/v1_22_0/invocations/execution_relational_testData.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_22_0/invocations/execution_relational_testData.pure index ad92fcf1b8f..316135cacf1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_22_0/invocations/execution_relational_testData.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_22_0/invocations/execution_relational_testData.pure @@ -18,6 +18,7 @@ import meta::protocols::pure::v1_22_0::invocation::execution::execute::*; import meta::protocols::pure::v1_22_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_22_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::alloy::metadataServer::*; @@ -94,7 +95,7 @@ function meta::protocols::pure::v1_22_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_22_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_22_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -164,7 +165,7 @@ function meta::protocols::pure::v1_22_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_22_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_22_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -235,7 +236,7 @@ function meta::protocols::pure::v1_22_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->map(element | + |let stores = $pureRuntime.connectionStores.element->map(element | $element->match([ store:meta::pure::store::Store[1] | $store->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() 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/v1_22_0/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/v1_22_0/transfers/connection_relational.pure index 2a4e9505d8d..e08bf95f7e3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_22_0/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/v1_22_0/transfers/connection_relational.pure @@ -26,18 +26,18 @@ import meta::protocols::pure::v1_22_0::metamodel::store::relational::connection: import meta::protocols::pure::v1_22_0::metamodel::store::relational::element::*; import meta::protocols::pure::v1_22_0::transformation::fromPureGraph::model::*; -function meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_22_0::metamodel::store::relational::connection::DatabaseConnection[1] +function meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::external::store::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_22_0::metamodel::store::relational::connection::DatabaseConnection[1] { let _type = $otherConnection->class()->toString(); - let element = $otherConnection.element->match([d:meta::pure::store::Store[1]|$d->elementToPath(),s:String[1]|$s]); + let element = ''; let type = $otherConnection.type->toString(); - let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::pure::alloy::connections::RelationalDatabaseConnection), + let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::external::store::relational::runtime::RelationalDatabaseConnection), | [], | $otherConnection.queryPostProcessorsWithParameter->transformPostProcessors($extensions)); let alloyConnection = $otherConnection->match($extensions.serializerExtension('v1_22_0')->cast(@meta::protocols::pure::v1_22_0::extension::SerializerExtension_v1_22_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_22_0::extension::RelationalModuleSerializerExtension).transfers_connection_transformDatabaseConnection->map(f | $f->eval($_type, $element, $type, $postProcessorsWithParams))->concatenate([ - test:meta::relational::runtime::TestDatabaseConnection[1]| + test:meta::external::store::relational::runtime::TestDatabaseConnection[1]| ^RelationalDatabaseConnection( _type = 'RelationalDatabaseConnection', type = $type, @@ -54,10 +54,10 @@ function meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connecti ), postProcessorWithParameter = $postProcessorsWithParams ), - relational:meta::pure::alloy::connections::RelationalDatabaseConnection[1] | + relational:meta::external::store::relational::runtime::RelationalDatabaseConnection[1] | let processors = transformPostProcessors($relational.postProcessors, $extensions); relational($type, $element, $relational.timeZone, $relational.quoteIdentifiers, $processors, $relational.datasourceSpecification, $relational.authenticationStrategy, $extensions);, - dbCon:meta::relational::runtime::DatabaseConnection[1]| + dbCon:meta::external::store::relational::runtime::DatabaseConnection[1]| ^meta::protocols::pure::v1_22_0::metamodel::store::relational::connection::DatabaseConnection( _type = $_type, timeZone = $dbCon.timeZone, 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/v1_22_0/transfers/metamodel_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/v1_22_0/transfers/metamodel_relational.pure index 356d18d7ed8..e5c0a9368a6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_22_0/transfers/metamodel_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/v1_22_0/transfers/metamodel_relational.pure @@ -20,6 +20,7 @@ import meta::protocols::pure::v1_22_0::transformation::fromPureGraph::mapping::m import meta::protocols::pure::v1_22_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_22_0::transformation::fromPureGraph::modelToModel::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_22_0::transformation::fromPureGraph::domain::*; import meta::protocols::pure::v1_22_0::transformation::fromPureGraph::store::csv::*; import meta::pure::mapping::*; 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/v1_23_0/extension/extension_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/v1_23_0/extension/extension_relational.pure index cf0dbdf7d52..57a0ab5e9f5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_23_0/extension/extension_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/v1_23_0/extension/extension_relational.pure @@ -18,6 +18,7 @@ import meta::protocols::pure::v1_23_0::transformation::fromPureGraph::store::csv import meta::protocols::pure::v1_23_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_23_0::transformation::fromPureGraph::store::relational::*; import meta::protocols::pure::v1_23_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::protocols::pure::v1_23_0::invocation::execution::execute::*; import meta::relational::mapping::*; @@ -32,7 +33,7 @@ function meta::protocols::pure::v1_23_0::extension::getRelationalExtension(type: ]->filter(f|$f.first == $type); assert($res->isNotEmpty(), |'Can\'t find the type '+$type); $res->at(0).second->eval(); - + } function meta::protocols::pure::v1_23_0::extension::getRelationalExtension():meta::protocols::pure::v1_23_0::extension::SerializerExtension_v1_23_0[1] @@ -50,7 +51,7 @@ function meta::protocols::pure::v1_23_0::extension::getRelationalExtension():met transfers_valueSpecification_transformAny = { inScope:String[*], open:Map>[1], m:Multiplicity[1], fe:FunctionExpression[0..1],useAppliedFunction:Boolean[1], extensions:meta::pure::extension::Extension[*] | [ - r:meta::pure::runtime::Runtime[1]| + r:meta::core::runtime::Runtime[1]| ^meta::protocols::pure::v1_23_0::metamodel::valueSpecification::raw::RuntimeInstance ( _type = 'runtimeInstance', @@ -236,7 +237,7 @@ function meta::protocols::pure::v1_23_0::extension::getRelationalExtension():met let rv = $resultJSON->fromJSON(meta::protocols::pure::v1_23_0::metamodel::invocation::execution::execute::RelationalTDSResult, $extendedJSONDeserializationConfig); $rv->cast(@meta::protocols::pure::v1_23_0::metamodel::invocation::execution::execute::RelationalTDSResult)->toOne()->processTDSResult($extensions);} ), - + pair (builderType:String[1]| $builderType->isNotEmpty() && $builderType->toOne()=='classBuilder', {resultJSON:String[1], result:JSONObject[1], m:Mapping[1], pureRuntime:Runtime[1],extendedJSONDeserializationConfig:ExtendedJSONDeserializationConfig[1], context:ExecutionContext[0..1]| let r = $resultJSON->fromJSON(meta::protocols::pure::v1_23_0::metamodel::invocation::execution::execute::RelationalClassResult, $extendedJSONDeserializationConfig); @@ -252,7 +253,7 @@ function meta::protocols::pure::v1_23_0::extension::getRelationalExtension():met ]} , - invocation_execution_transformContext = + invocation_execution_transformContext = [ r:meta::relational::runtime::RelationalExecutionContext[1]| let importDataFlowFkCols = if($r.importDataFlowFksByTable->isEmpty(), |[], @@ -282,10 +283,10 @@ function meta::protocols::pure::v1_23_0::extension::getRelationalExtension():met ]}, transfers_store_transformConnection2 = {extensions:meta::pure::extension::Extension[*] | [ - db:meta::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) + db:meta::external::store::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) ]}, scan_buildPureModelAsText_getAllElementsFromMapping = {stores : meta::pure::store::Store[*] | - $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) + $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) } ) } @@ -323,4 +324,4 @@ function meta::protocols::pure::v1_23_0::transformation::fromPureGraph::executio identifierForGetter = $c.identifierForGetter, parametersForGetter = $c.parametersForGetter ) -} \ No newline at end of file +} 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/v1_23_0/invocations/execution_relational_execute.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_23_0/invocations/execution_relational_execute.pure index aeba3a0fd2c..2095030acad 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_23_0/invocations/execution_relational_execute.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_23_0/invocations/execution_relational_execute.pure @@ -19,12 +19,14 @@ import meta::pure::extension::*; import meta::relational::extension::*; import meta::protocols::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_23_0::transformation::fromPureGraph::context::*; import meta::pure::router::routing::*; import meta::protocols::pure::v1_23_0::invocation::execution::execute::*; import meta::protocols::pure::v1_23_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_23_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::pure::milestoning::*; @@ -172,7 +174,10 @@ function meta::protocols::pure::v1_23_0::invocation::execution::execute::generat function meta::protocols::pure::v1_23_0::invocation::execution::execute::generateAlloyRelationalStoreObjectReference(mapping:Mapping[1], set:RelationalInstanceSetImplementation[1], sets:SetImplementation[*], runtime:Runtime[1], pkMap:Map[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_23_0::metamodel::objectReference::AlloyRelationalStoreObjectReference[1] { let store = $set.stores->toOne(); - let databaseConnection = $runtime->connectionByElement($store->toOne())->meta::protocols::pure::v1_23_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->cast(@meta::protocols::pure::v1_23_0::metamodel::store::relational::connection::DatabaseConnection); + let conn = $runtime->connectionByElement($store->toOne()); + let connectionStore = $runtime.connectionStores->filter(c|$c.connection==$conn); + let databaseConnection = $connectionStore->map(ce|$ce.connection->meta::protocols::pure::v1_23_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$ce.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) + ->toOne()->cast(@meta::protocols::pure::v1_23_0::metamodel::store::relational::connection::DatabaseConnection); let setIdx = if($sets->size() == 1, | '', | '_' + $sets->indexOf($set)->toString()); let transformedPkMap = meta::relational::mapping::resolvePrimaryKeysNames($set->cast(@RelationalInstanceSetImplementation), $pkMap, $setIdx, true, $extensions); @@ -190,10 +195,10 @@ function meta::protocols::pure::v1_23_0::invocation::execution::execute::decodeA { let parsedObjectRef = meta::alloy::objectReference::decodeAndParseAlloyObjectReference($ref); let type = $parsedObjectRef->get('type')->cast(@String)->toOne(); - + if($type->toLower() == 'relational', | meta::protocols::pure::v1_23_0::invocation::execution::execute::getAlloyRelationalStoreObjectReference($parsedObjectRef), - | fail('Not Supported Yet!!'); + | fail('Not Supported Yet!!'); ^meta::protocols::pure::v1_23_0::metamodel::objectReference::AlloyObjectReference ( type = meta::protocols::pure::v1_23_0::metamodel::objectReference::AlloyObjectReferenceType.Relational, 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/v1_23_0/invocations/execution_relational_testData.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_23_0/invocations/execution_relational_testData.pure index 50c8cfa1acf..6e97b08c2a6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_23_0/invocations/execution_relational_testData.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_23_0/invocations/execution_relational_testData.pure @@ -18,6 +18,7 @@ import meta::protocols::pure::v1_23_0::invocation::execution::execute::*; import meta::protocols::pure::v1_23_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_23_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::alloy::metadataServer::*; @@ -94,7 +95,7 @@ function meta::protocols::pure::v1_23_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_23_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_23_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -164,7 +165,7 @@ function meta::protocols::pure::v1_23_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_23_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_23_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -235,7 +236,7 @@ function meta::protocols::pure::v1_23_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->map(element | + |let stores = $pureRuntime.connectionStores.element->map(element | $element->match([ store:meta::pure::store::Store[1] | $store->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() 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/v1_23_0/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/v1_23_0/transfers/connection_relational.pure index 68b144bd204..d7b2e86faac 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_23_0/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/v1_23_0/transfers/connection_relational.pure @@ -26,18 +26,18 @@ import meta::protocols::pure::v1_23_0::metamodel::store::relational::connection: import meta::protocols::pure::v1_23_0::metamodel::store::relational::element::*; import meta::protocols::pure::v1_23_0::transformation::fromPureGraph::model::*; -function meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_23_0::metamodel::store::relational::connection::DatabaseConnection[1] +function meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::external::store::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_23_0::metamodel::store::relational::connection::DatabaseConnection[1] { let _type = $otherConnection->class()->toString(); - let element = $otherConnection.element->match([d:meta::pure::store::Store[1]|$d->elementToPath(),s:String[1]|$s]); + let element = ''; let type = $otherConnection.type->toString(); - let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::pure::alloy::connections::RelationalDatabaseConnection), + let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::external::store::relational::runtime::RelationalDatabaseConnection), | [], | $otherConnection.queryPostProcessorsWithParameter->transformPostProcessors($extensions)); let alloyConnection = $otherConnection->match($extensions.serializerExtension('v1_23_0')->cast(@meta::protocols::pure::v1_23_0::extension::SerializerExtension_v1_23_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_23_0::extension::RelationalModuleSerializerExtension).transfers_connection_transformDatabaseConnection->map(f | $f->eval($_type, $element, $type, $postProcessorsWithParams))->concatenate([ - test:meta::relational::runtime::TestDatabaseConnection[1]| + test:meta::external::store::relational::runtime::TestDatabaseConnection[1]| ^RelationalDatabaseConnection( _type = 'RelationalDatabaseConnection', type = $type, @@ -54,10 +54,10 @@ function meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connecti ), postProcessorWithParameter = $postProcessorsWithParams ), - relational:meta::pure::alloy::connections::RelationalDatabaseConnection[1] | + relational:meta::external::store::relational::runtime::RelationalDatabaseConnection[1] | let processors = transformPostProcessors($relational.postProcessors, $extensions); relational($type, $element, $relational.timeZone, $relational.quoteIdentifiers, $processors, $relational.datasourceSpecification, $relational.authenticationStrategy, $extensions);, - dbCon:meta::relational::runtime::DatabaseConnection[1]| + dbCon:meta::external::store::relational::runtime::DatabaseConnection[1]| ^meta::protocols::pure::v1_23_0::metamodel::store::relational::connection::DatabaseConnection( _type = $_type, timeZone = $dbCon.timeZone, 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/v1_23_0/transfers/metamodel_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/v1_23_0/transfers/metamodel_relational.pure index b1ec2590bf2..e3d35e9be23 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_23_0/transfers/metamodel_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/v1_23_0/transfers/metamodel_relational.pure @@ -20,6 +20,7 @@ import meta::protocols::pure::v1_23_0::transformation::fromPureGraph::mapping::m import meta::protocols::pure::v1_23_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_23_0::transformation::fromPureGraph::modelToModel::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_23_0::transformation::fromPureGraph::domain::*; import meta::protocols::pure::v1_23_0::transformation::fromPureGraph::store::csv::*; import meta::pure::mapping::*; 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/v1_24_0/extension/extension_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/v1_24_0/extension/extension_relational.pure index 2a31d3411af..bbc3f9c5b07 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_24_0/extension/extension_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/v1_24_0/extension/extension_relational.pure @@ -18,6 +18,7 @@ import meta::protocols::pure::v1_24_0::transformation::fromPureGraph::store::csv import meta::protocols::pure::v1_24_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_24_0::transformation::fromPureGraph::store::relational::*; import meta::protocols::pure::v1_24_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::protocols::pure::v1_24_0::invocation::execution::execute::*; import meta::relational::mapping::*; @@ -32,7 +33,7 @@ function meta::protocols::pure::v1_24_0::extension::getRelationalExtension(type: ]->filter(f|$f.first == $type); assert($res->isNotEmpty(), |'Can\'t find the type '+$type); $res->at(0).second->eval(); - + } function meta::protocols::pure::v1_24_0::extension::getRelationalExtension():meta::protocols::pure::v1_24_0::extension::SerializerExtension_v1_24_0[1] @@ -50,7 +51,7 @@ function meta::protocols::pure::v1_24_0::extension::getRelationalExtension():met transfers_valueSpecification_transformAny = { inScope:String[*], open:Map>[1], m:Multiplicity[1], fe:FunctionExpression[0..1],useAppliedFunction:Boolean[1], extensions:meta::pure::extension::Extension[*] | [ - r:meta::pure::runtime::Runtime[1]| + r:meta::core::runtime::Runtime[1]| ^meta::protocols::pure::v1_24_0::metamodel::valueSpecification::raw::RuntimeInstance ( _type = 'runtimeInstance', @@ -236,7 +237,7 @@ function meta::protocols::pure::v1_24_0::extension::getRelationalExtension():met let rv = $resultJSON->fromJSON(meta::protocols::pure::v1_24_0::metamodel::invocation::execution::execute::RelationalTDSResult, $extendedJSONDeserializationConfig); $rv->cast(@meta::protocols::pure::v1_24_0::metamodel::invocation::execution::execute::RelationalTDSResult)->toOne()->processTDSResult($extensions);} ), - + pair (builderType:String[1]| $builderType->isNotEmpty() && $builderType->toOne()=='classBuilder', {resultJSON:String[1], result:JSONObject[1], m:Mapping[1], pureRuntime:Runtime[1],extendedJSONDeserializationConfig:ExtendedJSONDeserializationConfig[1], context:ExecutionContext[0..1]| let r = $resultJSON->fromJSON(meta::protocols::pure::v1_24_0::metamodel::invocation::execution::execute::RelationalClassResult, $extendedJSONDeserializationConfig); @@ -252,7 +253,7 @@ function meta::protocols::pure::v1_24_0::extension::getRelationalExtension():met ]} , - invocation_execution_transformContext = + invocation_execution_transformContext = [ r:meta::relational::runtime::RelationalExecutionContext[1]| let importDataFlowFkCols = if($r.importDataFlowFksByTable->isEmpty(), |[], @@ -282,10 +283,10 @@ function meta::protocols::pure::v1_24_0::extension::getRelationalExtension():met ]}, transfers_store_transformConnection2 = {extensions:meta::pure::extension::Extension[*] | [ - db:meta::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) + db:meta::external::store::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) ]}, scan_buildPureModelAsText_getAllElementsFromMapping = {stores : meta::pure::store::Store[*] | - $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) + $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) } ) } @@ -326,4 +327,4 @@ function meta::protocols::pure::v1_24_0::transformation::fromPureGraph::executio identifierForGetter = $c.identifierForGetter, parametersForGetter = $c.parametersForGetter ) -} \ No newline at end of file +} 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/v1_24_0/invocations/execution_relation_executeInRelationalDb.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_24_0/invocations/execution_relation_executeInRelationalDb.pure index 5415cb6c632..4c967c5081c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_24_0/invocations/execution_relation_executeInRelationalDb.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_24_0/invocations/execution_relation_executeInRelationalDb.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::alloy::metadataServer::*; import meta::pure::functions::io::http::*; import meta::protocols::pure::v1_24_0::invocation::execution::executeInRelationalDb::*; @@ -21,9 +22,9 @@ function meta::protocols::pure::v1_24_0::invocation::execution::executeInRelatio { let conn1= $conn->meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) ->cast(@meta::protocols::pure::v1_24_0::metamodel::store::relational::connection::RelationalDatabaseConnection); - + let input= ^ExecuteInRelationalDbInput(sqls=$sqls, connection = $conn1)->alloyToJSON(); - + let resp= executeHTTPRaw(^URL(host=$host, port=$port , path='/api/pure/v1/utilities/tests/executeInRelationalDb'), HTTPMethod.POST , 'application/json', @@ -41,4 +42,4 @@ Class meta::protocols::pure::v1_24_0::invocation::execution::executeInRelational { connection : meta::protocols::pure::v1_24_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1]; sqls : String[*]; -} \ No newline at end of file +} 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/v1_24_0/invocations/execution_relational_execute.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_24_0/invocations/execution_relational_execute.pure index 5dd124691b3..a2d2901823b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_24_0/invocations/execution_relational_execute.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_24_0/invocations/execution_relational_execute.pure @@ -19,12 +19,14 @@ import meta::pure::extension::*; import meta::relational::extension::*; import meta::protocols::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_24_0::transformation::fromPureGraph::context::*; import meta::pure::router::routing::*; import meta::protocols::pure::v1_24_0::invocation::execution::execute::*; import meta::protocols::pure::v1_24_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_24_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::pure::milestoning::*; @@ -172,7 +174,10 @@ function meta::protocols::pure::v1_24_0::invocation::execution::execute::generat function meta::protocols::pure::v1_24_0::invocation::execution::execute::generateAlloyRelationalStoreObjectReference(mapping:Mapping[1], set:RelationalInstanceSetImplementation[1], sets:SetImplementation[*], runtime:Runtime[1], pkMap:Map[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_24_0::metamodel::objectReference::AlloyRelationalStoreObjectReference[1] { let store = $set.stores->toOne(); - let databaseConnection = $runtime->connectionByElement($store->toOne())->meta::protocols::pure::v1_24_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->cast(@meta::protocols::pure::v1_24_0::metamodel::store::relational::connection::DatabaseConnection); + let conn = $runtime->connectionByElement($store->toOne()); + let connectionStore = $runtime.connectionStores->filter(c|$c.connection==$conn); + let databaseConnection = $connectionStore->map(ce|$ce.connection->meta::protocols::pure::v1_24_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$ce.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) + ->toOne()->cast(@meta::protocols::pure::v1_24_0::metamodel::store::relational::connection::DatabaseConnection); let setIdx = if($sets->size() == 1, | '', | '_' + $sets->indexOf($set)->toString()); let transformedPkMap = meta::relational::mapping::resolvePrimaryKeysNames($set->cast(@RelationalInstanceSetImplementation), $pkMap, $setIdx, true, $extensions); @@ -190,10 +195,10 @@ function meta::protocols::pure::v1_24_0::invocation::execution::execute::decodeA { let parsedObjectRef = meta::alloy::objectReference::decodeAndParseAlloyObjectReference($ref); let type = $parsedObjectRef->get('type')->cast(@String)->toOne(); - + if($type->toLower() == 'relational', | meta::protocols::pure::v1_24_0::invocation::execution::execute::getAlloyRelationalStoreObjectReference($parsedObjectRef), - | fail('Not Supported Yet!!'); + | fail('Not Supported Yet!!'); ^meta::protocols::pure::v1_24_0::metamodel::objectReference::AlloyObjectReference ( type = meta::protocols::pure::v1_24_0::metamodel::objectReference::AlloyObjectReferenceType.Relational, 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/v1_24_0/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/v1_24_0/invocations/execution_relational_testConnection.pure index 98166a37062..cff8f44a28e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_24_0/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/v1_24_0/invocations/execution_relational_testConnection.pure @@ -13,6 +13,8 @@ // limitations under the License. import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::protocols::pure::v1_24_0::invocation::execution::testConnection::*; import meta::json::*; @@ -29,7 +31,7 @@ import meta::protocols::pure::v1_24_0::metamodel::store::relational::connection: import meta::protocols::pure::v1_24_0::metamodel::store::relational::element::*; import meta::protocols::pure::v1_24_0::transformation::toPureGraph::model::*; -function meta::protocols::pure::v1_24_0::invocation::execution::testConnection::getTestConnection(dbType:DatabaseType[1], host:String[1], port:Integer[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[0..1] +function meta::protocols::pure::v1_24_0::invocation::execution::testConnection::getTestConnection(dbType:DatabaseType[1], host:String[1], port:Integer[1], extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[0..1] { let resp= executeHTTPRaw(^URL(host=$host, port=$port , path='/api/pure/v1/utilities/tests/connections/'+ $dbType->toString()), HTTPMethod.GET , @@ -39,18 +41,18 @@ function meta::protocols::pure::v1_24_0::invocation::execution::testConnection:: if($resp.statusCode != 200, | println($resp.statusCode->toString()+' \''+$resp.entity->replace('\\n', '\n')->replace('\\t', '')+'\''), - | + | let res = $resp.entity->toOne()->toString(); $res -> meta::protocols::pure::v1_24_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection($extensions); ); } -function meta::protocols::pure::v1_24_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection(connectionJSON:String[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[0..1] +function meta::protocols::pure::v1_24_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection(connectionJSON:String[1], extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[0..1] { - let protocolConn = meta::json::fromJSON($connectionJSON, + let protocolConn = meta::json::fromJSON($connectionJSON, meta::protocols::pure::v1_24_0::metamodel::store::relational::connection::RelationalDatabaseConnection , - ^JSONDeserializationConfig( + ^JSONDeserializationConfig( typeKeyName='_type', failOnUnknownProperties=false , retainTypeField=true, @@ -70,11 +72,11 @@ function meta::protocols::pure::v1_24_0::transformation::toPureGraph::connection ) ); let pureConn = $protocolConn->meta::protocols::pure::v1_24_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection($extensions); - $pureConn->cast(@meta::pure::alloy::connections::RelationalDatabaseConnection); + $pureConn; } -function meta::protocols::pure::v1_24_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection(conn : meta::protocols::pure::v1_24_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1] , extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[1] +function meta::protocols::pure::v1_24_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection(conn : meta::protocols::pure::v1_24_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1] , extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[1] { let element = if($conn.element=='', // legend test server sends '' as element for testConnections , as store is not known before hand | ^Database(name='dummyDB'), @@ -82,20 +84,21 @@ function meta::protocols::pure::v1_24_0::transformation::toPureGraph::connection ); let type = extractEnumValue(meta::relational::runtime::DatabaseType, $conn.type); - - ^meta::pure::alloy::connections::RelationalDatabaseConnection( + + ^meta::core::runtime::ConnectionStore( + element=$element, + connection=^meta::external::store::relational::runtime::RelationalDatabaseConnection( timeZone = $conn.timeZone, quoteIdentifiers = $conn.quoteIdentifiers, - element = $element, type = $type, datasourceSpecification = $conn.datasourceSpecification->meta::protocols::pure::v1_24_0::transformation::toPureGraph::connection::transformDatasourceSpecification($extensions), authenticationStrategy = $conn.authenticationStrategy->meta::protocols::pure::v1_24_0::transformation::toPureGraph::connection::transformAuthenticationStrategy($extensions), postProcessors = $conn.postProcessors->meta::protocols::pure::v1_24_0::transformation::toPureGraph::connection::transformPostProcessors($extensions) - ); + )); } function meta::protocols::pure::v1_24_0::transformation::toPureGraph::connection::transformAuthenticationStrategy(a: meta::protocols::pure::v1_24_0::metamodel::store::relational::connection::alloy::authentication::AuthenticationStrategy[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy[1] -{ +{ $a->match($extensions.serializerExtension('v1_24_0')->cast(@meta::protocols::pure::v1_24_0::extension::SerializerExtension_v1_24_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_24_0::extension::RelationalModuleSerializerExtension).reverse_transfers_connection_transformAuthenticationStrategy->concatenate([ d:meta::protocols::pure::v1_24_0::metamodel::store::relational::connection::alloy::authentication::DelegatedKerberosAuthenticationStrategy[1] | ^meta::pure::alloy::connections::alloy::authentication::DelegatedKerberosAuthenticationStrategy( @@ -194,4 +197,4 @@ function meta::protocols::pure::v1_24_0::transformation::toPureGraph::connection ) ]) ) -} \ No newline at end of file +} 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/v1_24_0/invocations/execution_relational_testData.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_24_0/invocations/execution_relational_testData.pure index 2795d7e6216..a624af191f2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_24_0/invocations/execution_relational_testData.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_24_0/invocations/execution_relational_testData.pure @@ -18,6 +18,7 @@ import meta::protocols::pure::v1_24_0::invocation::execution::execute::*; import meta::protocols::pure::v1_24_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_24_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::alloy::metadataServer::*; @@ -94,7 +95,7 @@ function meta::protocols::pure::v1_24_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_24_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_24_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -164,7 +165,7 @@ function meta::protocols::pure::v1_24_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_24_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_24_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -235,7 +236,7 @@ function meta::protocols::pure::v1_24_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->map(element | + |let stores = $pureRuntime.connectionStores.element->map(element | $element->match([ store:meta::pure::store::Store[1] | $store->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() 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/v1_24_0/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/v1_24_0/transfers/connection_relational.pure index dba57eb05ad..bb7ff7e6a87 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_24_0/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/v1_24_0/transfers/connection_relational.pure @@ -26,18 +26,18 @@ import meta::protocols::pure::v1_24_0::metamodel::store::relational::connection: import meta::protocols::pure::v1_24_0::metamodel::store::relational::element::*; import meta::protocols::pure::v1_24_0::transformation::fromPureGraph::model::*; -function meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_24_0::metamodel::store::relational::connection::DatabaseConnection[1] +function meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::external::store::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_24_0::metamodel::store::relational::connection::DatabaseConnection[1] { let _type = $otherConnection->class()->toString(); - let element = $otherConnection.element->match([d:meta::pure::store::Store[1]|$d->elementToPath(),s:String[1]|$s]); + let element = ''; let type = $otherConnection.type->toString(); - let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::pure::alloy::connections::RelationalDatabaseConnection), + let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::external::store::relational::runtime::RelationalDatabaseConnection), | [], | $otherConnection.queryPostProcessorsWithParameter->transformPostProcessors($extensions)); let alloyConnection = $otherConnection->match($extensions.serializerExtension('v1_24_0')->cast(@meta::protocols::pure::v1_24_0::extension::SerializerExtension_v1_24_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_24_0::extension::RelationalModuleSerializerExtension).transfers_connection_transformDatabaseConnection->map(f | $f->eval($_type, $element, $type, $postProcessorsWithParams))->concatenate([ - test:meta::relational::runtime::TestDatabaseConnection[1]| + test:meta::external::store::relational::runtime::TestDatabaseConnection[1]| ^RelationalDatabaseConnection( _type = 'RelationalDatabaseConnection', type = $type, @@ -54,10 +54,10 @@ function meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connecti ), postProcessorWithParameter = $postProcessorsWithParams ), - relational:meta::pure::alloy::connections::RelationalDatabaseConnection[1] | + relational:meta::external::store::relational::runtime::RelationalDatabaseConnection[1] | let processors = transformPostProcessors($relational.postProcessors, $extensions); relational($type, $element, $relational.timeZone, $relational.quoteIdentifiers, $processors, $relational.datasourceSpecification, $relational.authenticationStrategy, $extensions);, - dbCon:meta::relational::runtime::DatabaseConnection[1]| + dbCon:meta::external::store::relational::runtime::DatabaseConnection[1]| ^meta::protocols::pure::v1_24_0::metamodel::store::relational::connection::DatabaseConnection( _type = $_type, timeZone = $dbCon.timeZone, 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/v1_24_0/transfers/metamodel_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/v1_24_0/transfers/metamodel_relational.pure index fdde2bb1b08..7607ed74450 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_24_0/transfers/metamodel_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/v1_24_0/transfers/metamodel_relational.pure @@ -20,6 +20,7 @@ import meta::protocols::pure::v1_24_0::transformation::fromPureGraph::mapping::m import meta::protocols::pure::v1_24_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_24_0::transformation::fromPureGraph::modelToModel::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_24_0::transformation::fromPureGraph::domain::*; import meta::protocols::pure::v1_24_0::transformation::fromPureGraph::store::csv::*; import meta::pure::mapping::*; 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/v1_25_0/extension/extension_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/v1_25_0/extension/extension_relational.pure index 28023a9e8dc..0c7d42657c2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_25_0/extension/extension_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/v1_25_0/extension/extension_relational.pure @@ -18,6 +18,7 @@ import meta::protocols::pure::v1_25_0::transformation::fromPureGraph::store::csv import meta::protocols::pure::v1_25_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_25_0::transformation::fromPureGraph::store::relational::*; import meta::protocols::pure::v1_25_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::protocols::pure::v1_25_0::invocation::execution::execute::*; import meta::relational::mapping::*; @@ -32,7 +33,7 @@ function meta::protocols::pure::v1_25_0::extension::getRelationalExtension(type: ]->filter(f|$f.first == $type); assert($res->isNotEmpty(), |'Can\'t find the type '+$type); $res->at(0).second->eval(); - + } function meta::protocols::pure::v1_25_0::extension::getRelationalExtension():meta::protocols::pure::v1_25_0::extension::SerializerExtension_v1_25_0[1] @@ -50,7 +51,7 @@ function meta::protocols::pure::v1_25_0::extension::getRelationalExtension():met transfers_valueSpecification_transformAny = { inScope:String[*], open:Map>[1], m:Multiplicity[1], fe:FunctionExpression[0..1],useAppliedFunction:Boolean[1], extensions:meta::pure::extension::Extension[*] | [ - r:meta::pure::runtime::Runtime[1]| + r:meta::core::runtime::Runtime[1]| ^meta::protocols::pure::v1_25_0::metamodel::valueSpecification::raw::RuntimeInstance ( _type = 'runtimeInstance', @@ -236,7 +237,7 @@ function meta::protocols::pure::v1_25_0::extension::getRelationalExtension():met let rv = $resultJSON->fromJSON(meta::protocols::pure::v1_25_0::metamodel::invocation::execution::execute::RelationalTDSResult, $extendedJSONDeserializationConfig); $rv->cast(@meta::protocols::pure::v1_25_0::metamodel::invocation::execution::execute::RelationalTDSResult)->toOne()->processTDSResult($extensions);} ), - + pair (builderType:String[1]| $builderType->isNotEmpty() && $builderType->toOne()=='classBuilder', {resultJSON:String[1], result:JSONObject[1], m:Mapping[1], pureRuntime:Runtime[1],extendedJSONDeserializationConfig:ExtendedJSONDeserializationConfig[1], context:ExecutionContext[0..1]| let r = $resultJSON->fromJSON(meta::protocols::pure::v1_25_0::metamodel::invocation::execution::execute::RelationalClassResult, $extendedJSONDeserializationConfig); @@ -252,7 +253,7 @@ function meta::protocols::pure::v1_25_0::extension::getRelationalExtension():met ]} , - invocation_execution_transformContext = + invocation_execution_transformContext = [ r:meta::relational::runtime::RelationalExecutionContext[1]| let importDataFlowFkCols = if($r.importDataFlowFksByTable->isEmpty(), |[], @@ -282,10 +283,10 @@ function meta::protocols::pure::v1_25_0::extension::getRelationalExtension():met ]}, transfers_store_transformConnection2 = {extensions:meta::pure::extension::Extension[*] | [ - db:meta::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) + db:meta::external::store::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) ]}, scan_buildPureModelAsText_getAllElementsFromMapping = {stores : meta::pure::store::Store[*] | - $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) + $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) } ) } @@ -326,4 +327,4 @@ function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::executio identifierForGetter = $c.identifierForGetter, parametersForGetter = $c.parametersForGetter ) -} \ No newline at end of file +} 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/v1_25_0/invocations/execution_relation_executeInRelationalDb.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_25_0/invocations/execution_relation_executeInRelationalDb.pure index a8df9c2d472..041dc57e1e0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_25_0/invocations/execution_relation_executeInRelationalDb.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_25_0/invocations/execution_relation_executeInRelationalDb.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::alloy::metadataServer::*; import meta::pure::functions::io::http::*; import meta::protocols::pure::v1_25_0::invocation::execution::executeInRelationalDb::*; @@ -21,9 +22,9 @@ function meta::protocols::pure::v1_25_0::invocation::execution::executeInRelatio { let conn1= $conn->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) ->cast(@meta::protocols::pure::v1_25_0::metamodel::store::relational::connection::RelationalDatabaseConnection); - + let input= ^ExecuteInRelationalDbInput(sqls=$sqls, connection = $conn1)->alloyToJSON(); - + let resp= executeHTTPRaw(^URL(host=$host, port=$port , path='/api/pure/v1/utilities/tests/executeInRelationalDb'), HTTPMethod.POST , 'application/json', @@ -41,4 +42,4 @@ Class meta::protocols::pure::v1_25_0::invocation::execution::executeInRelational { connection : meta::protocols::pure::v1_25_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1]; sqls : String[*]; -} \ No newline at end of file +} 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/v1_25_0/invocations/execution_relational_execute.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_25_0/invocations/execution_relational_execute.pure index e667d9205a8..0fbef27bf81 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_25_0/invocations/execution_relational_execute.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_25_0/invocations/execution_relational_execute.pure @@ -19,12 +19,14 @@ import meta::pure::extension::*; import meta::relational::extension::*; import meta::protocols::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_25_0::transformation::fromPureGraph::context::*; import meta::pure::router::routing::*; import meta::protocols::pure::v1_25_0::invocation::execution::execute::*; import meta::protocols::pure::v1_25_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_25_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::pure::milestoning::*; @@ -172,7 +174,10 @@ function meta::protocols::pure::v1_25_0::invocation::execution::execute::generat function meta::protocols::pure::v1_25_0::invocation::execution::execute::generateAlloyRelationalStoreObjectReference(mapping:Mapping[1], set:RelationalInstanceSetImplementation[1], sets:SetImplementation[*], runtime:Runtime[1], pkMap:Map[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_25_0::metamodel::objectReference::AlloyRelationalStoreObjectReference[1] { let store = $set.stores->toOne(); - let databaseConnection = $runtime->connectionByElement($store->toOne())->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->cast(@meta::protocols::pure::v1_25_0::metamodel::store::relational::connection::DatabaseConnection); + let conn = $runtime->connectionByElement($store->toOne()); + let connectionStore = $runtime.connectionStores->filter(c|$c.connection==$conn); + let databaseConnection = $connectionStore->map(ce|$ce.connection->meta::protocols::pure::v1_25_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$ce.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) + ->toOne()->cast(@meta::protocols::pure::v1_25_0::metamodel::store::relational::connection::DatabaseConnection); let setIdx = if($sets->size() == 1, | '', | '_' + $sets->indexOf($set)->toString()); let transformedPkMap = meta::relational::mapping::resolvePrimaryKeysNames($set->cast(@RelationalInstanceSetImplementation), $pkMap, $setIdx, true, $extensions); @@ -190,10 +195,10 @@ function meta::protocols::pure::v1_25_0::invocation::execution::execute::decodeA { let parsedObjectRef = meta::alloy::objectReference::decodeAndParseAlloyObjectReference($ref); let type = $parsedObjectRef->get('type')->cast(@String)->toOne(); - + if($type->toLower() == 'relational', | meta::protocols::pure::v1_25_0::invocation::execution::execute::getAlloyRelationalStoreObjectReference($parsedObjectRef), - | fail('Not Supported Yet!!'); + | fail('Not Supported Yet!!'); ^meta::protocols::pure::v1_25_0::metamodel::objectReference::AlloyObjectReference ( type = meta::protocols::pure::v1_25_0::metamodel::objectReference::AlloyObjectReferenceType.Relational, 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/v1_25_0/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/v1_25_0/invocations/execution_relational_testConnection.pure index 99554b7201a..0890d618b7a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_25_0/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/v1_25_0/invocations/execution_relational_testConnection.pure @@ -13,6 +13,8 @@ // limitations under the License. import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::protocols::pure::v1_25_0::invocation::execution::testConnection::*; import meta::json::*; @@ -29,7 +31,7 @@ import meta::protocols::pure::v1_25_0::metamodel::store::relational::connection: import meta::protocols::pure::v1_25_0::metamodel::store::relational::element::*; import meta::protocols::pure::v1_25_0::transformation::toPureGraph::model::*; -function meta::protocols::pure::v1_25_0::invocation::execution::testConnection::getTestConnection(dbType:DatabaseType[1], host:String[1], port:Integer[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[0..1] +function meta::protocols::pure::v1_25_0::invocation::execution::testConnection::getTestConnection(dbType:DatabaseType[1], host:String[1], port:Integer[1], extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[0..1] { let resp= executeHTTPRaw(^URL(host=$host, port=$port , path='/api/pure/v1/utilities/tests/connections/'+ $dbType->toString()), HTTPMethod.GET , @@ -39,18 +41,18 @@ function meta::protocols::pure::v1_25_0::invocation::execution::testConnection:: if($resp.statusCode != 200, | println($resp.statusCode->toString()+' \''+$resp.entity->replace('\\n', '\n')->replace('\\t', '')+'\''), - | + | let res = $resp.entity->toOne()->toString(); $res -> meta::protocols::pure::v1_25_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection($extensions); ); } -function meta::protocols::pure::v1_25_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection(connectionJSON:String[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[0..1] +function meta::protocols::pure::v1_25_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection(connectionJSON:String[1], extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[0..1] { - let protocolConn = meta::json::fromJSON($connectionJSON, + let protocolConn = meta::json::fromJSON($connectionJSON, meta::protocols::pure::v1_25_0::metamodel::store::relational::connection::RelationalDatabaseConnection , - ^JSONDeserializationConfig( + ^JSONDeserializationConfig( typeKeyName='_type', failOnUnknownProperties=false , retainTypeField=true, @@ -71,11 +73,11 @@ function meta::protocols::pure::v1_25_0::transformation::toPureGraph::connection ) ); let pureConn = $protocolConn->meta::protocols::pure::v1_25_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection($extensions); - $pureConn->cast(@meta::pure::alloy::connections::RelationalDatabaseConnection); + $pureConn; } -function meta::protocols::pure::v1_25_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection(conn : meta::protocols::pure::v1_25_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1] , extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[1] +function meta::protocols::pure::v1_25_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection(conn : meta::protocols::pure::v1_25_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1] , extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[1] { let element = if($conn.element=='', // legend test server sends '' as element for testConnections , as store is not known before hand | ^Database(name='dummyDB'), @@ -83,20 +85,21 @@ function meta::protocols::pure::v1_25_0::transformation::toPureGraph::connection ); let type = extractEnumValue(meta::relational::runtime::DatabaseType, $conn.type); - - ^meta::pure::alloy::connections::RelationalDatabaseConnection( + + ^meta::core::runtime::ConnectionStore( + element=$element, + connection=^meta::external::store::relational::runtime::RelationalDatabaseConnection( timeZone = $conn.timeZone, quoteIdentifiers = $conn.quoteIdentifiers, - element = $element, type = $type, datasourceSpecification = $conn.datasourceSpecification->meta::protocols::pure::v1_25_0::transformation::toPureGraph::connection::transformDatasourceSpecification($extensions), authenticationStrategy = $conn.authenticationStrategy->meta::protocols::pure::v1_25_0::transformation::toPureGraph::connection::transformAuthenticationStrategy($extensions), postProcessors = $conn.postProcessors->meta::protocols::pure::v1_25_0::transformation::toPureGraph::connection::transformPostProcessors($extensions) - ); + )); } function meta::protocols::pure::v1_25_0::transformation::toPureGraph::connection::transformAuthenticationStrategy(a: meta::protocols::pure::v1_25_0::metamodel::store::relational::connection::alloy::authentication::AuthenticationStrategy[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy[1] -{ +{ $a->match($extensions.serializerExtension('v1_25_0')->cast(@meta::protocols::pure::v1_25_0::extension::SerializerExtension_v1_25_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_25_0::extension::RelationalModuleSerializerExtension).reverse_transfers_connection_transformAuthenticationStrategy->concatenate([ d:meta::protocols::pure::v1_25_0::metamodel::store::relational::connection::alloy::authentication::DelegatedKerberosAuthenticationStrategy[1] | ^meta::pure::alloy::connections::alloy::authentication::DelegatedKerberosAuthenticationStrategy( @@ -200,4 +203,4 @@ function meta::protocols::pure::v1_25_0::transformation::toPureGraph::connection ) ]) ) -} \ No newline at end of file +} 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/v1_25_0/invocations/execution_relational_testData.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_25_0/invocations/execution_relational_testData.pure index f2732896bea..58e0acf5f27 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_25_0/invocations/execution_relational_testData.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_25_0/invocations/execution_relational_testData.pure @@ -18,6 +18,7 @@ import meta::protocols::pure::v1_25_0::invocation::execution::execute::*; import meta::protocols::pure::v1_25_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_25_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::alloy::metadataServer::*; @@ -94,7 +95,7 @@ function meta::protocols::pure::v1_25_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_25_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_25_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -164,7 +165,7 @@ function meta::protocols::pure::v1_25_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_25_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_25_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -235,7 +236,7 @@ function meta::protocols::pure::v1_25_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->map(element | + |let stores = $pureRuntime.connectionStores.element->map(element | $element->match([ store:meta::pure::store::Store[1] | $store->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() 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/v1_25_0/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/v1_25_0/transfers/connection_relational.pure index 2463fb8a1cd..7c1d686bc2d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_25_0/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/v1_25_0/transfers/connection_relational.pure @@ -26,18 +26,18 @@ import meta::protocols::pure::v1_25_0::metamodel::store::relational::connection: import meta::protocols::pure::v1_25_0::metamodel::store::relational::element::*; import meta::protocols::pure::v1_25_0::transformation::fromPureGraph::model::*; -function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_25_0::metamodel::store::relational::connection::DatabaseConnection[1] +function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::external::store::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_25_0::metamodel::store::relational::connection::DatabaseConnection[1] { let _type = $otherConnection->class()->toString(); - let element = $otherConnection.element->match([d:meta::pure::store::Store[1]|$d->elementToPath(),s:String[1]|$s]); + let element = ''; let type = $otherConnection.type->toString(); - let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::pure::alloy::connections::RelationalDatabaseConnection), + let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::external::store::relational::runtime::RelationalDatabaseConnection), | [], | $otherConnection.queryPostProcessorsWithParameter->transformPostProcessors($extensions)); let alloyConnection = $otherConnection->match($extensions.serializerExtension('v1_25_0')->cast(@meta::protocols::pure::v1_25_0::extension::SerializerExtension_v1_25_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_25_0::extension::RelationalModuleSerializerExtension).transfers_connection_transformDatabaseConnection->map(f | $f->eval($_type, $element, $type, $postProcessorsWithParams))->concatenate([ - test:meta::relational::runtime::TestDatabaseConnection[1]| + test:meta::external::store::relational::runtime::TestDatabaseConnection[1]| ^RelationalDatabaseConnection( _type = 'RelationalDatabaseConnection', type = $type, @@ -54,10 +54,10 @@ function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connecti ), postProcessorWithParameter = $postProcessorsWithParams ), - relational:meta::pure::alloy::connections::RelationalDatabaseConnection[1] | + relational:meta::external::store::relational::runtime::RelationalDatabaseConnection[1] | let processors = transformPostProcessors($relational.postProcessors, $extensions); relational($type, $element, $relational.timeZone, $relational.quoteIdentifiers, $processors, $relational.datasourceSpecification, $relational.authenticationStrategy, $extensions);, - dbCon:meta::relational::runtime::DatabaseConnection[1]| + dbCon:meta::external::store::relational::runtime::DatabaseConnection[1]| ^meta::protocols::pure::v1_25_0::metamodel::store::relational::connection::DatabaseConnection( _type = $_type, timeZone = $dbCon.timeZone, 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/v1_25_0/transfers/metamodel_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/v1_25_0/transfers/metamodel_relational.pure index 00b88832522..31d51c03b03 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_25_0/transfers/metamodel_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/v1_25_0/transfers/metamodel_relational.pure @@ -20,6 +20,7 @@ import meta::protocols::pure::v1_25_0::transformation::fromPureGraph::mapping::m import meta::protocols::pure::v1_25_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_25_0::transformation::fromPureGraph::modelToModel::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_25_0::transformation::fromPureGraph::domain::*; import meta::protocols::pure::v1_25_0::transformation::fromPureGraph::store::csv::*; import meta::pure::mapping::*; 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/v1_26_0/extension/extension_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/v1_26_0/extension/extension_relational.pure index 9a6851513c2..fc7f076c9a7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_26_0/extension/extension_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/v1_26_0/extension/extension_relational.pure @@ -18,6 +18,7 @@ import meta::protocols::pure::v1_26_0::transformation::fromPureGraph::store::csv import meta::protocols::pure::v1_26_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_26_0::transformation::fromPureGraph::store::relational::*; import meta::protocols::pure::v1_26_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::protocols::pure::v1_26_0::invocation::execution::execute::*; import meta::relational::mapping::*; @@ -32,7 +33,7 @@ function meta::protocols::pure::v1_26_0::extension::getRelationalExtension(type: ]->filter(f|$f.first == $type); assert($res->isNotEmpty(), |'Can\'t find the type '+$type); $res->at(0).second->eval(); - + } function meta::protocols::pure::v1_26_0::extension::getRelationalExtension():meta::protocols::pure::v1_26_0::extension::SerializerExtension_v1_26_0[1] @@ -50,7 +51,7 @@ function meta::protocols::pure::v1_26_0::extension::getRelationalExtension():met transfers_valueSpecification_transformAny = { inScope:String[*], open:Map>[1], m:Multiplicity[1], fe:FunctionExpression[0..1],useAppliedFunction:Boolean[1], extensions:meta::pure::extension::Extension[*] | [ - r:meta::pure::runtime::Runtime[1]| + r:meta::core::runtime::Runtime[1]| ^meta::protocols::pure::v1_26_0::metamodel::valueSpecification::raw::RuntimeInstance ( _type = 'runtimeInstance', @@ -236,7 +237,7 @@ function meta::protocols::pure::v1_26_0::extension::getRelationalExtension():met let rv = $resultJSON->fromJSON(meta::protocols::pure::v1_26_0::metamodel::invocation::execution::execute::RelationalTDSResult, $extendedJSONDeserializationConfig); $rv->cast(@meta::protocols::pure::v1_26_0::metamodel::invocation::execution::execute::RelationalTDSResult)->toOne()->processTDSResult($extensions);} ), - + pair (builderType:String[1]| $builderType->isNotEmpty() && $builderType->toOne()=='classBuilder', {resultJSON:String[1], result:JSONObject[1], m:Mapping[1], pureRuntime:Runtime[1],extendedJSONDeserializationConfig:ExtendedJSONDeserializationConfig[1], context:ExecutionContext[0..1]| let r = $resultJSON->fromJSON(meta::protocols::pure::v1_26_0::metamodel::invocation::execution::execute::RelationalClassResult, $extendedJSONDeserializationConfig); @@ -252,7 +253,7 @@ function meta::protocols::pure::v1_26_0::extension::getRelationalExtension():met ]} , - invocation_execution_transformContext = + invocation_execution_transformContext = [ r:meta::relational::runtime::RelationalExecutionContext[1]| let importDataFlowFkCols = if($r.importDataFlowFksByTable->isEmpty(), |[], @@ -282,10 +283,10 @@ function meta::protocols::pure::v1_26_0::extension::getRelationalExtension():met ]}, transfers_store_transformConnection2 = {extensions:meta::pure::extension::Extension[*] | [ - db:meta::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) + db:meta::external::store::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) ]}, scan_buildPureModelAsText_getAllElementsFromMapping = {stores : meta::pure::store::Store[*] | - $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) + $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) } ) } @@ -326,4 +327,4 @@ function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::executio identifierForGetter = $c.identifierForGetter, parametersForGetter = $c.parametersForGetter ) -} \ No newline at end of file +} 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/v1_26_0/invocations/execution_relation_executeInRelationalDb.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_26_0/invocations/execution_relation_executeInRelationalDb.pure index 61a59be2a69..376e0230ca3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_26_0/invocations/execution_relation_executeInRelationalDb.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_26_0/invocations/execution_relation_executeInRelationalDb.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::alloy::metadataServer::*; import meta::pure::functions::io::http::*; import meta::protocols::pure::v1_26_0::invocation::execution::executeInRelationalDb::*; @@ -21,9 +22,9 @@ function meta::protocols::pure::v1_26_0::invocation::execution::executeInRelatio { let conn1= $conn->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) ->cast(@meta::protocols::pure::v1_26_0::metamodel::store::relational::connection::RelationalDatabaseConnection); - + let input= ^ExecuteInRelationalDbInput(sqls=$sqls, connection = $conn1)->alloyToJSON(); - + let resp= executeHTTPRaw(^URL(host=$host, port=$port , path='/api/pure/v1/utilities/tests/executeInRelationalDb'), HTTPMethod.POST , 'application/json', @@ -41,4 +42,4 @@ Class meta::protocols::pure::v1_26_0::invocation::execution::executeInRelational { connection : meta::protocols::pure::v1_26_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1]; sqls : String[*]; -} \ No newline at end of file +} 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/v1_26_0/invocations/execution_relational_execute.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_26_0/invocations/execution_relational_execute.pure index a766a0e186d..74f7ce5ffee 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_26_0/invocations/execution_relational_execute.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_26_0/invocations/execution_relational_execute.pure @@ -19,12 +19,14 @@ import meta::pure::extension::*; import meta::relational::extension::*; import meta::protocols::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_26_0::transformation::fromPureGraph::context::*; import meta::pure::router::routing::*; import meta::protocols::pure::v1_26_0::invocation::execution::execute::*; import meta::protocols::pure::v1_26_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_26_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::pure::milestoning::*; @@ -172,7 +174,10 @@ function meta::protocols::pure::v1_26_0::invocation::execution::execute::generat function meta::protocols::pure::v1_26_0::invocation::execution::execute::generateAlloyRelationalStoreObjectReference(mapping:Mapping[1], set:RelationalInstanceSetImplementation[1], sets:SetImplementation[*], runtime:Runtime[1], pkMap:Map[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_26_0::metamodel::objectReference::AlloyRelationalStoreObjectReference[1] { let store = $set.stores->toOne(); - let databaseConnection = $runtime->connectionByElement($store->toOne())->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->cast(@meta::protocols::pure::v1_26_0::metamodel::store::relational::connection::DatabaseConnection); + let conn = $runtime->connectionByElement($store->toOne()); + let connectionStore = $runtime.connectionStores->filter(c|$c.connection==$conn); + let databaseConnection = $connectionStore->map(ce|$ce.connection->meta::protocols::pure::v1_26_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$ce.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) + ->toOne()->cast(@meta::protocols::pure::v1_26_0::metamodel::store::relational::connection::DatabaseConnection); let setIdx = if($sets->size() == 1, | '', | '_' + $sets->indexOf($set)->toString()); let transformedPkMap = meta::relational::mapping::resolvePrimaryKeysNames($set->cast(@RelationalInstanceSetImplementation), $pkMap, $setIdx, true, $extensions); @@ -190,10 +195,10 @@ function meta::protocols::pure::v1_26_0::invocation::execution::execute::decodeA { let parsedObjectRef = meta::alloy::objectReference::decodeAndParseAlloyObjectReference($ref); let type = $parsedObjectRef->get('type')->cast(@String)->toOne(); - + if($type->toLower() == 'relational', | meta::protocols::pure::v1_26_0::invocation::execution::execute::getAlloyRelationalStoreObjectReference($parsedObjectRef), - | fail('Not Supported Yet!!'); + | fail('Not Supported Yet!!'); ^meta::protocols::pure::v1_26_0::metamodel::objectReference::AlloyObjectReference ( type = meta::protocols::pure::v1_26_0::metamodel::objectReference::AlloyObjectReferenceType.Relational, 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/v1_26_0/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/v1_26_0/invocations/execution_relational_testConnection.pure index 4d7e9ecb609..ef63439fc3a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_26_0/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/v1_26_0/invocations/execution_relational_testConnection.pure @@ -13,6 +13,8 @@ // limitations under the License. import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::protocols::pure::v1_26_0::invocation::execution::testConnection::*; import meta::json::*; @@ -29,7 +31,7 @@ import meta::protocols::pure::v1_26_0::metamodel::store::relational::connection: import meta::protocols::pure::v1_26_0::metamodel::store::relational::element::*; import meta::protocols::pure::v1_26_0::transformation::toPureGraph::model::*; -function meta::protocols::pure::v1_26_0::invocation::execution::testConnection::getTestConnection(dbType:DatabaseType[1], host:String[1], port:Integer[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[0..1] +function meta::protocols::pure::v1_26_0::invocation::execution::testConnection::getTestConnection(dbType:DatabaseType[1], host:String[1], port:Integer[1], extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[0..1] { let resp= executeHTTPRaw(^URL(host=$host, port=$port , path='/api/pure/v1/utilities/tests/connections/'+ $dbType->toString()), HTTPMethod.GET , @@ -39,18 +41,18 @@ function meta::protocols::pure::v1_26_0::invocation::execution::testConnection:: if($resp.statusCode != 200, | println($resp.statusCode->toString()+' \''+$resp.entity->replace('\\n', '\n')->replace('\\t', '')+'\''), - | + | let res = $resp.entity->toOne()->toString(); $res -> meta::protocols::pure::v1_26_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection($extensions); ); } -function meta::protocols::pure::v1_26_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection(connectionJSON:String[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[0..1] +function meta::protocols::pure::v1_26_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection(connectionJSON:String[1], extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[0..1] { - let protocolConn = meta::json::fromJSON($connectionJSON, + let protocolConn = meta::json::fromJSON($connectionJSON, meta::protocols::pure::v1_26_0::metamodel::store::relational::connection::RelationalDatabaseConnection , - ^JSONDeserializationConfig( + ^JSONDeserializationConfig( typeKeyName='_type', failOnUnknownProperties=false , retainTypeField=true, @@ -71,11 +73,11 @@ function meta::protocols::pure::v1_26_0::transformation::toPureGraph::connection ) ); let pureConn = $protocolConn->meta::protocols::pure::v1_26_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection($extensions); - $pureConn->cast(@meta::pure::alloy::connections::RelationalDatabaseConnection); + $pureConn; } -function meta::protocols::pure::v1_26_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection(conn : meta::protocols::pure::v1_26_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1] , extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[1] +function meta::protocols::pure::v1_26_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection(conn : meta::protocols::pure::v1_26_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1] , extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[1] { let element = if($conn.element=='', // legend test server sends '' as element for testConnections , as store is not known before hand | ^Database(name='dummyDB'), @@ -83,20 +85,21 @@ function meta::protocols::pure::v1_26_0::transformation::toPureGraph::connection ); let type = extractEnumValue(meta::relational::runtime::DatabaseType, $conn.type); - - ^meta::pure::alloy::connections::RelationalDatabaseConnection( + + ^meta::core::runtime::ConnectionStore( + element=$element, + connection=^meta::external::store::relational::runtime::RelationalDatabaseConnection( timeZone = $conn.timeZone, quoteIdentifiers = $conn.quoteIdentifiers, - element = $element, type = $type, datasourceSpecification = $conn.datasourceSpecification->meta::protocols::pure::v1_26_0::transformation::toPureGraph::connection::transformDatasourceSpecification($extensions), authenticationStrategy = $conn.authenticationStrategy->meta::protocols::pure::v1_26_0::transformation::toPureGraph::connection::transformAuthenticationStrategy($extensions), postProcessors = $conn.postProcessors->meta::protocols::pure::v1_26_0::transformation::toPureGraph::connection::transformPostProcessors($extensions) - ); + )); } function meta::protocols::pure::v1_26_0::transformation::toPureGraph::connection::transformAuthenticationStrategy(a: meta::protocols::pure::v1_26_0::metamodel::store::relational::connection::alloy::authentication::AuthenticationStrategy[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy[1] -{ +{ $a->match($extensions.serializerExtension('v1_26_0')->cast(@meta::protocols::pure::v1_26_0::extension::SerializerExtension_v1_26_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_26_0::extension::RelationalModuleSerializerExtension).reverse_transfers_connection_transformAuthenticationStrategy->concatenate([ d:meta::protocols::pure::v1_26_0::metamodel::store::relational::connection::alloy::authentication::DelegatedKerberosAuthenticationStrategy[1] | ^meta::pure::alloy::connections::alloy::authentication::DelegatedKerberosAuthenticationStrategy( @@ -200,4 +203,4 @@ function meta::protocols::pure::v1_26_0::transformation::toPureGraph::connection ) ]) ) -} \ No newline at end of file +} 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/v1_26_0/invocations/execution_relational_testData.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_26_0/invocations/execution_relational_testData.pure index 0f9f271b4de..3fd6d4cbae0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_26_0/invocations/execution_relational_testData.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_26_0/invocations/execution_relational_testData.pure @@ -18,6 +18,7 @@ import meta::protocols::pure::v1_26_0::invocation::execution::execute::*; import meta::protocols::pure::v1_26_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_26_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::alloy::metadataServer::*; @@ -94,7 +95,7 @@ function meta::protocols::pure::v1_26_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_26_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_26_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -164,7 +165,7 @@ function meta::protocols::pure::v1_26_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_26_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_26_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -235,7 +236,7 @@ function meta::protocols::pure::v1_26_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->map(element | + |let stores = $pureRuntime.connectionStores.element->map(element | $element->match([ store:meta::pure::store::Store[1] | $store->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() 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/v1_26_0/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/v1_26_0/transfers/connection_relational.pure index 65dd603e37e..15d34820755 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_26_0/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/v1_26_0/transfers/connection_relational.pure @@ -26,18 +26,18 @@ import meta::protocols::pure::v1_26_0::metamodel::store::relational::connection: import meta::protocols::pure::v1_26_0::metamodel::store::relational::element::*; import meta::protocols::pure::v1_26_0::transformation::fromPureGraph::model::*; -function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_26_0::metamodel::store::relational::connection::DatabaseConnection[1] +function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::external::store::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_26_0::metamodel::store::relational::connection::DatabaseConnection[1] { let _type = $otherConnection->class()->toString(); - let element = $otherConnection.element->match([d:meta::pure::store::Store[1]|$d->elementToPath(),s:String[1]|$s]); + let element = ''; let type = $otherConnection.type->toString(); - let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::pure::alloy::connections::RelationalDatabaseConnection), + let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::external::store::relational::runtime::RelationalDatabaseConnection), | [], | $otherConnection.queryPostProcessorsWithParameter->transformPostProcessors($extensions)); let alloyConnection = $otherConnection->match($extensions.serializerExtension('v1_26_0')->cast(@meta::protocols::pure::v1_26_0::extension::SerializerExtension_v1_26_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_26_0::extension::RelationalModuleSerializerExtension).transfers_connection_transformDatabaseConnection->map(f | $f->eval($_type, $element, $type, $postProcessorsWithParams))->concatenate([ - test:meta::relational::runtime::TestDatabaseConnection[1]| + test:meta::external::store::relational::runtime::TestDatabaseConnection[1]| ^RelationalDatabaseConnection( _type = 'RelationalDatabaseConnection', type = $type, @@ -54,10 +54,10 @@ function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connecti ), postProcessorWithParameter = $postProcessorsWithParams ), - relational:meta::pure::alloy::connections::RelationalDatabaseConnection[1] | + relational:meta::external::store::relational::runtime::RelationalDatabaseConnection[1] | let processors = transformPostProcessors($relational.postProcessors, $extensions); relational($type, $element, $relational.timeZone, $relational.quoteIdentifiers, $processors, $relational.datasourceSpecification, $relational.authenticationStrategy, $extensions);, - dbCon:meta::relational::runtime::DatabaseConnection[1]| + dbCon:meta::external::store::relational::runtime::DatabaseConnection[1]| ^meta::protocols::pure::v1_26_0::metamodel::store::relational::connection::DatabaseConnection( _type = $_type, timeZone = $dbCon.timeZone, 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/v1_26_0/transfers/metamodel_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/v1_26_0/transfers/metamodel_relational.pure index b59a51707da..c03d037ac8c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_26_0/transfers/metamodel_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/v1_26_0/transfers/metamodel_relational.pure @@ -20,6 +20,7 @@ import meta::protocols::pure::v1_26_0::transformation::fromPureGraph::mapping::m import meta::protocols::pure::v1_26_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_26_0::transformation::fromPureGraph::modelToModel::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_26_0::transformation::fromPureGraph::domain::*; import meta::protocols::pure::v1_26_0::transformation::fromPureGraph::store::csv::*; import meta::pure::mapping::*; 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/v1_27_0/extension/extension_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/v1_27_0/extension/extension_relational.pure index 3d3a3b9eff6..9f7ae10bf11 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_27_0/extension/extension_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/v1_27_0/extension/extension_relational.pure @@ -18,6 +18,7 @@ import meta::protocols::pure::v1_27_0::transformation::fromPureGraph::store::csv import meta::protocols::pure::v1_27_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_27_0::transformation::fromPureGraph::store::relational::*; import meta::protocols::pure::v1_27_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::protocols::pure::v1_27_0::invocation::execution::execute::*; import meta::relational::mapping::*; @@ -32,7 +33,7 @@ function meta::protocols::pure::v1_27_0::extension::getRelationalExtension(type: ]->filter(f|$f.first == $type); assert($res->isNotEmpty(), |'Can\'t find the type '+$type); $res->at(0).second->eval(); - + } function meta::protocols::pure::v1_27_0::extension::getRelationalExtension():meta::protocols::pure::v1_27_0::extension::SerializerExtension_v1_27_0[1] @@ -50,7 +51,7 @@ function meta::protocols::pure::v1_27_0::extension::getRelationalExtension():met transfers_valueSpecification_transformAny = { inScope:String[*], open:Map>[1], m:Multiplicity[1], fe:FunctionExpression[0..1],useAppliedFunction:Boolean[1], extensions:meta::pure::extension::Extension[*] | [ - r:meta::pure::runtime::Runtime[1]| + r:meta::core::runtime::Runtime[1]| ^meta::protocols::pure::v1_27_0::metamodel::valueSpecification::raw::RuntimeInstance ( _type = 'runtimeInstance', @@ -236,7 +237,7 @@ function meta::protocols::pure::v1_27_0::extension::getRelationalExtension():met let rv = $resultJSON->fromJSON(meta::protocols::pure::v1_27_0::metamodel::invocation::execution::execute::RelationalTDSResult, $extendedJSONDeserializationConfig); $rv->cast(@meta::protocols::pure::v1_27_0::metamodel::invocation::execution::execute::RelationalTDSResult)->toOne()->processTDSResult($extensions);} ), - + pair (builderType:String[1]| $builderType->isNotEmpty() && $builderType->toOne()=='classBuilder', {resultJSON:String[1], result:JSONObject[1], m:Mapping[1], pureRuntime:Runtime[1],extendedJSONDeserializationConfig:ExtendedJSONDeserializationConfig[1], context:ExecutionContext[0..1]| let r = $resultJSON->fromJSON(meta::protocols::pure::v1_27_0::metamodel::invocation::execution::execute::RelationalClassResult, $extendedJSONDeserializationConfig); @@ -252,7 +253,7 @@ function meta::protocols::pure::v1_27_0::extension::getRelationalExtension():met ]} , - invocation_execution_transformContext = + invocation_execution_transformContext = [ r:meta::relational::runtime::RelationalExecutionContext[1]| let importDataFlowFkCols = if($r.importDataFlowFksByTable->isEmpty(), |[], @@ -282,10 +283,10 @@ function meta::protocols::pure::v1_27_0::extension::getRelationalExtension():met ]}, transfers_store_transformConnection2 = {extensions:meta::pure::extension::Extension[*] | [ - db:meta::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) + db:meta::external::store::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) ]}, scan_buildPureModelAsText_getAllElementsFromMapping = {stores : meta::pure::store::Store[*] | - $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) + $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) } ) } @@ -326,4 +327,4 @@ function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::executio identifierForGetter = $c.identifierForGetter, parametersForGetter = $c.parametersForGetter ) -} \ No newline at end of file +} 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/v1_27_0/invocations/execution_relation_executeInRelationalDb.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_27_0/invocations/execution_relation_executeInRelationalDb.pure index f7f01388e72..27001c93316 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_27_0/invocations/execution_relation_executeInRelationalDb.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_27_0/invocations/execution_relation_executeInRelationalDb.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::alloy::metadataServer::*; import meta::pure::functions::io::http::*; import meta::protocols::pure::v1_27_0::invocation::execution::executeInRelationalDb::*; @@ -21,9 +22,9 @@ function meta::protocols::pure::v1_27_0::invocation::execution::executeInRelatio { let conn1= $conn->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) ->cast(@meta::protocols::pure::v1_27_0::metamodel::store::relational::connection::RelationalDatabaseConnection); - + let input= ^ExecuteInRelationalDbInput(sqls=$sqls, connection = $conn1)->alloyToJSON(); - + let resp= executeHTTPRaw(^URL(host=$host, port=$port , path='/api/pure/v1/utilities/tests/executeInRelationalDb'), HTTPMethod.POST , 'application/json', @@ -41,4 +42,4 @@ Class meta::protocols::pure::v1_27_0::invocation::execution::executeInRelational { connection : meta::protocols::pure::v1_27_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1]; sqls : String[*]; -} \ No newline at end of file +} 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/v1_27_0/invocations/execution_relational_execute.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_27_0/invocations/execution_relational_execute.pure index 0aa543de454..9ebc688e89b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_27_0/invocations/execution_relational_execute.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_27_0/invocations/execution_relational_execute.pure @@ -19,12 +19,14 @@ import meta::pure::extension::*; import meta::relational::extension::*; import meta::protocols::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_27_0::transformation::fromPureGraph::context::*; import meta::pure::router::routing::*; import meta::protocols::pure::v1_27_0::invocation::execution::execute::*; import meta::protocols::pure::v1_27_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_27_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::pure::milestoning::*; @@ -172,7 +174,10 @@ function meta::protocols::pure::v1_27_0::invocation::execution::execute::generat function meta::protocols::pure::v1_27_0::invocation::execution::execute::generateAlloyRelationalStoreObjectReference(mapping:Mapping[1], set:RelationalInstanceSetImplementation[1], sets:SetImplementation[*], runtime:Runtime[1], pkMap:Map[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_27_0::metamodel::objectReference::AlloyRelationalStoreObjectReference[1] { let store = $set.stores->toOne(); - let databaseConnection = $runtime->connectionByElement($store->toOne())->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->cast(@meta::protocols::pure::v1_27_0::metamodel::store::relational::connection::DatabaseConnection); + let connection = $runtime->connectionByElement($store->toOne()); + let databaseConnection = $runtime.connectionStores->filter(c|$c.connection==$connection) + ->toOne()->map(conn|$conn.connection->meta::protocols::pure::v1_27_0::transformation::fromPureGraph::runtime::transformConnection($extensions) + ->cast(@meta::protocols::pure::v1_27_0::metamodel::store::relational::connection::DatabaseConnection)->map(c|^$c(element=$conn.element->match([d:meta::pure::store::Store[1]|$d->elementToPath(),s:String[1]|$s])))); let setIdx = if($sets->size() == 1, | '', | '_' + $sets->indexOf($set)->toString()); let transformedPkMap = meta::relational::mapping::resolvePrimaryKeysNames($set->cast(@RelationalInstanceSetImplementation), $pkMap, $setIdx, true, $extensions); @@ -190,10 +195,10 @@ function meta::protocols::pure::v1_27_0::invocation::execution::execute::decodeA { let parsedObjectRef = meta::alloy::objectReference::decodeAndParseAlloyObjectReference($ref); let type = $parsedObjectRef->get('type')->cast(@String)->toOne(); - + if($type->toLower() == 'relational', | meta::protocols::pure::v1_27_0::invocation::execution::execute::getAlloyRelationalStoreObjectReference($parsedObjectRef), - | fail('Not Supported Yet!!'); + | fail('Not Supported Yet!!'); ^meta::protocols::pure::v1_27_0::metamodel::objectReference::AlloyObjectReference ( type = meta::protocols::pure::v1_27_0::metamodel::objectReference::AlloyObjectReferenceType.Relational, 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/v1_27_0/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/v1_27_0/invocations/execution_relational_testConnection.pure index 5b6c7ed0fe8..8e892df653e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_27_0/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/v1_27_0/invocations/execution_relational_testConnection.pure @@ -13,6 +13,8 @@ // limitations under the License. import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::protocols::pure::v1_27_0::invocation::execution::testConnection::*; import meta::json::*; @@ -29,7 +31,7 @@ import meta::protocols::pure::v1_27_0::metamodel::store::relational::connection: import meta::protocols::pure::v1_27_0::metamodel::store::relational::element::*; import meta::protocols::pure::v1_27_0::transformation::toPureGraph::model::*; -function meta::protocols::pure::v1_27_0::invocation::execution::testConnection::getTestConnection(dbType:DatabaseType[1], host:String[1], port:Integer[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[0..1] +function meta::protocols::pure::v1_27_0::invocation::execution::testConnection::getTestConnection(dbType:DatabaseType[1], host:String[1], port:Integer[1], extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[0..1] { let resp= executeHTTPRaw(^URL(host=$host, port=$port , path='/api/pure/v1/utilities/tests/connections/'+ $dbType->toString()), HTTPMethod.GET , @@ -39,18 +41,18 @@ function meta::protocols::pure::v1_27_0::invocation::execution::testConnection:: if($resp.statusCode != 200, | println($resp.statusCode->toString()+' \''+$resp.entity->replace('\\n', '\n')->replace('\\t', '')+'\''), - | + | let res = $resp.entity->toOne()->toString(); $res -> meta::protocols::pure::v1_27_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection($extensions); ); } -function meta::protocols::pure::v1_27_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection(connectionJSON:String[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[0..1] +function meta::protocols::pure::v1_27_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection(connectionJSON:String[1], extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[0..1] { - let protocolConn = meta::json::fromJSON($connectionJSON, + let protocolConn = meta::json::fromJSON($connectionJSON, meta::protocols::pure::v1_27_0::metamodel::store::relational::connection::RelationalDatabaseConnection , - ^JSONDeserializationConfig( + ^JSONDeserializationConfig( typeKeyName='_type', failOnUnknownProperties=false , retainTypeField=true, @@ -71,11 +73,11 @@ function meta::protocols::pure::v1_27_0::transformation::toPureGraph::connection ) ); let pureConn = $protocolConn->meta::protocols::pure::v1_27_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection($extensions); - $pureConn->cast(@meta::pure::alloy::connections::RelationalDatabaseConnection); + $pureConn; } -function meta::protocols::pure::v1_27_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection(conn : meta::protocols::pure::v1_27_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1] , extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[1] +function meta::protocols::pure::v1_27_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection(conn : meta::protocols::pure::v1_27_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1] , extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[1] { let element = if($conn.element=='', // legend test server sends '' as element for testConnections , as store is not known before hand | ^Database(name='dummyDB'), @@ -83,20 +85,21 @@ function meta::protocols::pure::v1_27_0::transformation::toPureGraph::connection ); let type = extractEnumValue(meta::relational::runtime::DatabaseType, $conn.type); - - ^meta::pure::alloy::connections::RelationalDatabaseConnection( + + ^meta::core::runtime::ConnectionStore( + element=$element, + connection=^meta::external::store::relational::runtime::RelationalDatabaseConnection( timeZone = $conn.timeZone, quoteIdentifiers = $conn.quoteIdentifiers, - element = $element, type = $type, datasourceSpecification = $conn.datasourceSpecification->meta::protocols::pure::v1_27_0::transformation::toPureGraph::connection::transformDatasourceSpecification($extensions), authenticationStrategy = $conn.authenticationStrategy->meta::protocols::pure::v1_27_0::transformation::toPureGraph::connection::transformAuthenticationStrategy($extensions), postProcessors = $conn.postProcessors->meta::protocols::pure::v1_27_0::transformation::toPureGraph::connection::transformPostProcessors($extensions) - ); + )); } function meta::protocols::pure::v1_27_0::transformation::toPureGraph::connection::transformAuthenticationStrategy(a: meta::protocols::pure::v1_27_0::metamodel::store::relational::connection::alloy::authentication::AuthenticationStrategy[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy[1] -{ +{ $a->match($extensions.serializerExtension('v1_27_0')->cast(@meta::protocols::pure::v1_27_0::extension::SerializerExtension_v1_27_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_27_0::extension::RelationalModuleSerializerExtension).reverse_transfers_connection_transformAuthenticationStrategy->concatenate([ d:meta::protocols::pure::v1_27_0::metamodel::store::relational::connection::alloy::authentication::DelegatedKerberosAuthenticationStrategy[1] | ^meta::pure::alloy::connections::alloy::authentication::DelegatedKerberosAuthenticationStrategy( @@ -200,4 +203,4 @@ function meta::protocols::pure::v1_27_0::transformation::toPureGraph::connection ) ]) ) -} \ No newline at end of file +} 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/v1_27_0/invocations/execution_relational_testData.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_27_0/invocations/execution_relational_testData.pure index 7715d3d5a9a..9ebbe996a3c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_27_0/invocations/execution_relational_testData.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_27_0/invocations/execution_relational_testData.pure @@ -18,6 +18,7 @@ import meta::protocols::pure::v1_27_0::invocation::execution::execute::*; import meta::protocols::pure::v1_27_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_27_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::alloy::metadataServer::*; @@ -94,7 +95,7 @@ function meta::protocols::pure::v1_27_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_27_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_27_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -164,7 +165,7 @@ function meta::protocols::pure::v1_27_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_27_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_27_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -235,7 +236,7 @@ function meta::protocols::pure::v1_27_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->map(element | + |let stores = $pureRuntime.connectionStores.element->map(element | $element->match([ store:meta::pure::store::Store[1] | $store->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() 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/v1_27_0/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/v1_27_0/transfers/connection_relational.pure index 3528027aa91..754898abe29 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_27_0/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/v1_27_0/transfers/connection_relational.pure @@ -26,18 +26,18 @@ import meta::protocols::pure::v1_27_0::metamodel::store::relational::connection: import meta::protocols::pure::v1_27_0::metamodel::store::relational::element::*; import meta::protocols::pure::v1_27_0::transformation::fromPureGraph::model::*; -function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_27_0::metamodel::store::relational::connection::DatabaseConnection[1] +function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::external::store::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_27_0::metamodel::store::relational::connection::DatabaseConnection[1] { let _type = $otherConnection->class()->toString(); - let element = $otherConnection.element->match([d:meta::pure::store::Store[1]|$d->elementToPath(),s:String[1]|$s]); + let element = ''; let type = $otherConnection.type->toString(); - let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::pure::alloy::connections::RelationalDatabaseConnection), + let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::external::store::relational::runtime::RelationalDatabaseConnection), | [], | $otherConnection.queryPostProcessorsWithParameter->transformPostProcessors($extensions)); let alloyConnection = $otherConnection->match($extensions.serializerExtension('v1_27_0')->cast(@meta::protocols::pure::v1_27_0::extension::SerializerExtension_v1_27_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_27_0::extension::RelationalModuleSerializerExtension).transfers_connection_transformDatabaseConnection->map(f | $f->eval($_type, $element, $type, $postProcessorsWithParams))->concatenate([ - test:meta::relational::runtime::TestDatabaseConnection[1]| + test:meta::external::store::relational::runtime::TestDatabaseConnection[1]| ^RelationalDatabaseConnection( _type = 'RelationalDatabaseConnection', type = $type, @@ -54,10 +54,10 @@ function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connecti ), postProcessorWithParameter = $postProcessorsWithParams ), - relational:meta::pure::alloy::connections::RelationalDatabaseConnection[1] | + relational:meta::external::store::relational::runtime::RelationalDatabaseConnection[1] | let processors = transformPostProcessors($relational.postProcessors, $extensions); relational($type, $element, $relational.timeZone, $relational.quoteIdentifiers, $processors, $relational.datasourceSpecification, $relational.authenticationStrategy, $extensions);, - dbCon:meta::relational::runtime::DatabaseConnection[1]| + dbCon:meta::external::store::relational::runtime::DatabaseConnection[1]| ^meta::protocols::pure::v1_27_0::metamodel::store::relational::connection::DatabaseConnection( _type = $_type, timeZone = $dbCon.timeZone, 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/v1_27_0/transfers/metamodel_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/v1_27_0/transfers/metamodel_relational.pure index 1c253280349..7bc9720364e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_27_0/transfers/metamodel_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/v1_27_0/transfers/metamodel_relational.pure @@ -20,6 +20,7 @@ import meta::protocols::pure::v1_27_0::transformation::fromPureGraph::mapping::m import meta::protocols::pure::v1_27_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_27_0::transformation::fromPureGraph::modelToModel::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_27_0::transformation::fromPureGraph::domain::*; import meta::protocols::pure::v1_27_0::transformation::fromPureGraph::store::csv::*; import meta::pure::mapping::*; 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/v1_28_0/extension/extension_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/v1_28_0/extension/extension_relational.pure index a9a0953845e..2265dfa4106 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_28_0/extension/extension_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/v1_28_0/extension/extension_relational.pure @@ -18,6 +18,7 @@ import meta::protocols::pure::v1_28_0::transformation::fromPureGraph::store::csv import meta::protocols::pure::v1_28_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_28_0::transformation::fromPureGraph::store::relational::*; import meta::protocols::pure::v1_28_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::protocols::pure::v1_28_0::invocation::execution::execute::*; import meta::relational::mapping::*; @@ -32,7 +33,7 @@ function meta::protocols::pure::v1_28_0::extension::getRelationalExtension(type: ]->filter(f|$f.first == $type); assert($res->isNotEmpty(), |'Can\'t find the type '+$type); $res->at(0).second->eval(); - + } function meta::protocols::pure::v1_28_0::extension::getRelationalExtension():meta::protocols::pure::v1_28_0::extension::SerializerExtension_v1_28_0[1] @@ -50,7 +51,7 @@ function meta::protocols::pure::v1_28_0::extension::getRelationalExtension():met transfers_valueSpecification_transformAny = { inScope:String[*], open:Map>[1], m:Multiplicity[1], fe:FunctionExpression[0..1],useAppliedFunction:Boolean[1], extensions:meta::pure::extension::Extension[*] | [ - r:meta::pure::runtime::Runtime[1]| + r:meta::core::runtime::Runtime[1]| ^meta::protocols::pure::v1_28_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', @@ -244,7 +245,7 @@ function meta::protocols::pure::v1_28_0::extension::getRelationalExtension():met let rv = $resultJSON->fromJSON(meta::protocols::pure::v1_28_0::metamodel::invocation::execution::execute::RelationalTDSResult, $extendedJSONDeserializationConfig); $rv->cast(@meta::protocols::pure::v1_28_0::metamodel::invocation::execution::execute::RelationalTDSResult)->toOne()->processTDSResult($extensions);} ), - + pair (builderType:String[1]| $builderType->isNotEmpty() && $builderType->toOne()=='classBuilder', {resultJSON:String[1], result:JSONObject[1], m:Mapping[1], pureRuntime:Runtime[1],extendedJSONDeserializationConfig:ExtendedJSONDeserializationConfig[1], context:ExecutionContext[0..1]| let r = $resultJSON->fromJSON(meta::protocols::pure::v1_28_0::metamodel::invocation::execution::execute::RelationalClassResult, $extendedJSONDeserializationConfig); @@ -260,7 +261,7 @@ function meta::protocols::pure::v1_28_0::extension::getRelationalExtension():met ]} , - invocation_execution_transformContext = + invocation_execution_transformContext = [ r:meta::relational::runtime::RelationalExecutionContext[1]| let importDataFlowFkCols = if($r.importDataFlowFksByTable->isEmpty(), |[], @@ -290,10 +291,10 @@ function meta::protocols::pure::v1_28_0::extension::getRelationalExtension():met ]}, transfers_store_transformConnection2 = {extensions:meta::pure::extension::Extension[*] | [ - db:meta::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) + db:meta::external::store::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) ]}, scan_buildPureModelAsText_getAllElementsFromMapping = {stores : meta::pure::store::Store[*] | - $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) + $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) } ) } @@ -334,4 +335,4 @@ function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::executio identifierForGetter = $c.identifierForGetter, parametersForGetter = $c.parametersForGetter ) -} \ No newline at end of file +} 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/v1_28_0/invocations/execution_relation_executeInRelationalDb.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_28_0/invocations/execution_relation_executeInRelationalDb.pure index f2c5e179d0f..c4218852f30 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_28_0/invocations/execution_relation_executeInRelationalDb.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_28_0/invocations/execution_relation_executeInRelationalDb.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::alloy::metadataServer::*; import meta::pure::functions::io::http::*; import meta::protocols::pure::v1_28_0::invocation::execution::executeInRelationalDb::*; @@ -21,9 +22,9 @@ function meta::protocols::pure::v1_28_0::invocation::execution::executeInRelatio { let conn1= $conn->meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) ->cast(@meta::protocols::pure::v1_28_0::metamodel::store::relational::connection::RelationalDatabaseConnection); - + let input= ^ExecuteInRelationalDbInput(sqls=$sqls, connection = $conn1)->alloyToJSON(); - + let resp= executeHTTPRaw(^URL(host=$host, port=$port , path='/api/pure/v1/utilities/tests/executeInRelationalDb'), HTTPMethod.POST , 'application/json', @@ -41,4 +42,4 @@ Class meta::protocols::pure::v1_28_0::invocation::execution::executeInRelational { connection : meta::protocols::pure::v1_28_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1]; sqls : String[*]; -} \ No newline at end of file +} 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/v1_28_0/invocations/execution_relational_execute.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_28_0/invocations/execution_relational_execute.pure index b282accdc8a..e1bef646014 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_28_0/invocations/execution_relational_execute.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_28_0/invocations/execution_relational_execute.pure @@ -19,12 +19,14 @@ import meta::pure::extension::*; import meta::relational::extension::*; import meta::protocols::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_28_0::transformation::fromPureGraph::context::*; import meta::pure::router::routing::*; import meta::protocols::pure::v1_28_0::invocation::execution::execute::*; import meta::protocols::pure::v1_28_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_28_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::pure::milestoning::*; @@ -172,7 +174,8 @@ function meta::protocols::pure::v1_28_0::invocation::execution::execute::generat function meta::protocols::pure::v1_28_0::invocation::execution::execute::generateAlloyRelationalStoreObjectReference(mapping:Mapping[1], set:RelationalInstanceSetImplementation[1], sets:SetImplementation[*], runtime:Runtime[1], pkMap:Map[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_28_0::metamodel::objectReference::AlloyRelationalStoreObjectReference[1] { let store = $set.stores->toOne(); - let databaseConnection = $runtime->connectionByElement($store->toOne())->meta::protocols::pure::v1_28_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->cast(@meta::protocols::pure::v1_28_0::metamodel::store::relational::connection::DatabaseConnection); + let connection = $runtime->connectionByElement($store->toOne()); + let databaseConnection = $runtime.connectionStores->filter(c|$c.connection==$connection)->toOne()->map(conn|$conn.connection->meta::protocols::pure::v1_28_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->cast(@meta::protocols::pure::v1_28_0::metamodel::store::relational::connection::DatabaseConnection)->map(c|^$c(element=$conn.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))); let setIdx = if($sets->size() == 1, | '', | '_' + $sets->indexOf($set)->toString()); let transformedPkMap = meta::relational::mapping::resolvePrimaryKeysNames($set->cast(@RelationalInstanceSetImplementation), $pkMap, $setIdx, true, $extensions); @@ -190,10 +193,10 @@ function meta::protocols::pure::v1_28_0::invocation::execution::execute::decodeA { let parsedObjectRef = meta::alloy::objectReference::decodeAndParseAlloyObjectReference($ref); let type = $parsedObjectRef->get('type')->cast(@String)->toOne(); - + if($type->toLower() == 'relational', | meta::protocols::pure::v1_28_0::invocation::execution::execute::getAlloyRelationalStoreObjectReference($parsedObjectRef), - | fail('Not Supported Yet!!'); + | fail('Not Supported Yet!!'); ^meta::protocols::pure::v1_28_0::metamodel::objectReference::AlloyObjectReference ( type = meta::protocols::pure::v1_28_0::metamodel::objectReference::AlloyObjectReferenceType.Relational, 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/v1_28_0/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/v1_28_0/invocations/execution_relational_testConnection.pure index 6188af10aff..6f0f419521d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_28_0/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/v1_28_0/invocations/execution_relational_testConnection.pure @@ -13,6 +13,8 @@ // limitations under the License. import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::protocols::pure::v1_28_0::invocation::execution::testConnection::*; import meta::json::*; @@ -29,7 +31,7 @@ import meta::protocols::pure::v1_28_0::metamodel::store::relational::connection: import meta::protocols::pure::v1_28_0::metamodel::store::relational::element::*; import meta::protocols::pure::v1_28_0::transformation::toPureGraph::model::*; -function meta::protocols::pure::v1_28_0::invocation::execution::testConnection::getTestConnection(dbType:DatabaseType[1], host:String[1], port:Integer[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[0..1] +function meta::protocols::pure::v1_28_0::invocation::execution::testConnection::getTestConnection(dbType:DatabaseType[1], host:String[1], port:Integer[1], extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[0..1] { let resp= executeHTTPRaw(^URL(host=$host, port=$port , path='/api/pure/v1/utilities/tests/connections/'+ $dbType->toString()), HTTPMethod.GET , @@ -39,18 +41,18 @@ function meta::protocols::pure::v1_28_0::invocation::execution::testConnection:: if($resp.statusCode != 200, | println($resp.statusCode->toString()+' \''+$resp.entity->replace('\\n', '\n')->replace('\\t', '')+'\''), - | + | let res = $resp.entity->toOne()->toString(); $res -> meta::protocols::pure::v1_28_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection($extensions); ); } -function meta::protocols::pure::v1_28_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection(connectionJSON:String[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[0..1] +function meta::protocols::pure::v1_28_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection(connectionJSON:String[1], extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[0..1] { - let protocolConn = meta::json::fromJSON($connectionJSON, + let protocolConn = meta::json::fromJSON($connectionJSON, meta::protocols::pure::v1_28_0::metamodel::store::relational::connection::RelationalDatabaseConnection , - ^JSONDeserializationConfig( + ^JSONDeserializationConfig( typeKeyName='_type', failOnUnknownProperties=false , retainTypeField=true, @@ -71,11 +73,11 @@ function meta::protocols::pure::v1_28_0::transformation::toPureGraph::connection ) ); let pureConn = $protocolConn->meta::protocols::pure::v1_28_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection($extensions); - $pureConn->cast(@meta::pure::alloy::connections::RelationalDatabaseConnection); + $pureConn; } -function meta::protocols::pure::v1_28_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection(conn : meta::protocols::pure::v1_28_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1] , extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[1] +function meta::protocols::pure::v1_28_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection(conn : meta::protocols::pure::v1_28_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1] , extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[1] { let element = if($conn.element=='', // legend test server sends '' as element for testConnections , as store is not known before hand | ^Database(name='dummyDB'), @@ -83,20 +85,21 @@ function meta::protocols::pure::v1_28_0::transformation::toPureGraph::connection ); let type = extractEnumValue(meta::relational::runtime::DatabaseType, $conn.type); - - ^meta::pure::alloy::connections::RelationalDatabaseConnection( + + ^meta::core::runtime::ConnectionStore( + element=$element, + connection=^meta::external::store::relational::runtime::RelationalDatabaseConnection( timeZone = $conn.timeZone, quoteIdentifiers = $conn.quoteIdentifiers, - element = $element, type = $type, datasourceSpecification = $conn.datasourceSpecification->meta::protocols::pure::v1_28_0::transformation::toPureGraph::connection::transformDatasourceSpecification($extensions), authenticationStrategy = $conn.authenticationStrategy->meta::protocols::pure::v1_28_0::transformation::toPureGraph::connection::transformAuthenticationStrategy($extensions), postProcessors = $conn.postProcessors->meta::protocols::pure::v1_28_0::transformation::toPureGraph::connection::transformPostProcessors($extensions) - ); + )); } function meta::protocols::pure::v1_28_0::transformation::toPureGraph::connection::transformAuthenticationStrategy(a: meta::protocols::pure::v1_28_0::metamodel::store::relational::connection::alloy::authentication::AuthenticationStrategy[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy[1] -{ +{ $a->match($extensions.serializerExtension('v1_28_0')->cast(@meta::protocols::pure::v1_28_0::extension::SerializerExtension_v1_28_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_28_0::extension::RelationalModuleSerializerExtension).reverse_transfers_connection_transformAuthenticationStrategy->concatenate([ d:meta::protocols::pure::v1_28_0::metamodel::store::relational::connection::alloy::authentication::DelegatedKerberosAuthenticationStrategy[1] | ^meta::pure::alloy::connections::alloy::authentication::DelegatedKerberosAuthenticationStrategy( @@ -200,4 +203,4 @@ function meta::protocols::pure::v1_28_0::transformation::toPureGraph::connection ) ]) ) -} \ No newline at end of file +} 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/v1_28_0/invocations/execution_relational_testData.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_28_0/invocations/execution_relational_testData.pure index 4f8ec0ebd5b..8fd9f63fb32 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_28_0/invocations/execution_relational_testData.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_28_0/invocations/execution_relational_testData.pure @@ -18,6 +18,7 @@ import meta::protocols::pure::v1_28_0::invocation::execution::execute::*; import meta::protocols::pure::v1_28_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_28_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::alloy::metadataServer::*; @@ -94,7 +95,7 @@ function meta::protocols::pure::v1_28_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_28_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_28_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -164,7 +165,7 @@ function meta::protocols::pure::v1_28_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_28_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_28_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -235,7 +236,7 @@ function meta::protocols::pure::v1_28_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->map(element | + |let stores = $pureRuntime.connectionStores.element->map(element | $element->match([ store:meta::pure::store::Store[1] | $store->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() 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/v1_28_0/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/v1_28_0/transfers/connection_relational.pure index bb28753a2f8..2e956c55114 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_28_0/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/v1_28_0/transfers/connection_relational.pure @@ -26,18 +26,18 @@ import meta::protocols::pure::v1_28_0::metamodel::store::relational::connection: import meta::protocols::pure::v1_28_0::metamodel::store::relational::element::*; import meta::protocols::pure::v1_28_0::transformation::fromPureGraph::model::*; -function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_28_0::metamodel::store::relational::connection::DatabaseConnection[1] +function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::external::store::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_28_0::metamodel::store::relational::connection::DatabaseConnection[1] { let _type = $otherConnection->class()->toString(); - let element = $otherConnection.element->match([d:meta::pure::store::Store[1]|$d->elementToPath(),s:String[1]|$s]); + let element = ''; let type = $otherConnection.type->toString(); - let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::pure::alloy::connections::RelationalDatabaseConnection), + let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::external::store::relational::runtime::RelationalDatabaseConnection), | [], | $otherConnection.queryPostProcessorsWithParameter->transformPostProcessors($extensions)); let alloyConnection = $otherConnection->match($extensions.serializerExtension('v1_28_0')->cast(@meta::protocols::pure::v1_28_0::extension::SerializerExtension_v1_28_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_28_0::extension::RelationalModuleSerializerExtension).transfers_connection_transformDatabaseConnection->map(f | $f->eval($_type, $element, $type, $postProcessorsWithParams))->concatenate([ - test:meta::relational::runtime::TestDatabaseConnection[1]| + test:meta::external::store::relational::runtime::TestDatabaseConnection[1]| ^RelationalDatabaseConnection( _type = 'RelationalDatabaseConnection', type = $type, @@ -54,10 +54,10 @@ function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connecti ), postProcessorWithParameter = $postProcessorsWithParams ), - relational:meta::pure::alloy::connections::RelationalDatabaseConnection[1] | + relational:meta::external::store::relational::runtime::RelationalDatabaseConnection[1] | let processors = transformPostProcessors($relational.postProcessors, $extensions); relational($type, $element, $relational.timeZone, $relational.quoteIdentifiers, $processors, $relational.datasourceSpecification, $relational.authenticationStrategy, $extensions);, - dbCon:meta::relational::runtime::DatabaseConnection[1]| + dbCon:meta::external::store::relational::runtime::DatabaseConnection[1]| ^meta::protocols::pure::v1_28_0::metamodel::store::relational::connection::DatabaseConnection( _type = $_type, timeZone = $dbCon.timeZone, 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/v1_28_0/transfers/metamodel_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/v1_28_0/transfers/metamodel_relational.pure index 14640cc21e9..9c796e3fae8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_28_0/transfers/metamodel_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/v1_28_0/transfers/metamodel_relational.pure @@ -20,6 +20,7 @@ import meta::protocols::pure::v1_28_0::transformation::fromPureGraph::mapping::m import meta::protocols::pure::v1_28_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_28_0::transformation::fromPureGraph::modelToModel::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_28_0::transformation::fromPureGraph::domain::*; import meta::protocols::pure::v1_28_0::transformation::fromPureGraph::store::csv::*; import meta::pure::mapping::*; 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/v1_29_0/extension/extension_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/v1_29_0/extension/extension_relational.pure index 4597ee74794..b6bf7fb6721 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_29_0/extension/extension_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/v1_29_0/extension/extension_relational.pure @@ -18,6 +18,7 @@ import meta::protocols::pure::v1_29_0::transformation::fromPureGraph::store::csv import meta::protocols::pure::v1_29_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_29_0::transformation::fromPureGraph::store::relational::*; import meta::protocols::pure::v1_29_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::protocols::pure::v1_29_0::invocation::execution::execute::*; import meta::relational::mapping::*; @@ -32,7 +33,7 @@ function meta::protocols::pure::v1_29_0::extension::getRelationalExtension(type: ]->filter(f|$f.first == $type); assert($res->isNotEmpty(), |'Can\'t find the type '+$type); $res->at(0).second->eval(); - + } function meta::protocols::pure::v1_29_0::extension::getRelationalExtension():meta::protocols::pure::v1_29_0::extension::SerializerExtension_v1_29_0[1] @@ -50,7 +51,7 @@ function meta::protocols::pure::v1_29_0::extension::getRelationalExtension():met transfers_valueSpecification_transformAny = { inScope:String[*], open:Map>[1], m:Multiplicity[1], fe:FunctionExpression[0..1],useAppliedFunction:Boolean[1], extensions:meta::pure::extension::Extension[*] | [ - r:meta::pure::runtime::Runtime[1]| + r:meta::core::runtime::Runtime[1]| ^meta::protocols::pure::v1_29_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', @@ -244,7 +245,7 @@ function meta::protocols::pure::v1_29_0::extension::getRelationalExtension():met let rv = $resultJSON->fromJSON(meta::protocols::pure::v1_29_0::metamodel::invocation::execution::execute::RelationalTDSResult, $extendedJSONDeserializationConfig); $rv->cast(@meta::protocols::pure::v1_29_0::metamodel::invocation::execution::execute::RelationalTDSResult)->toOne()->processTDSResult($extensions);} ), - + pair (builderType:String[1]| $builderType->isNotEmpty() && $builderType->toOne()=='classBuilder', {resultJSON:String[1], result:JSONObject[1], m:Mapping[1], pureRuntime:Runtime[1],extendedJSONDeserializationConfig:ExtendedJSONDeserializationConfig[1], context:ExecutionContext[0..1]| let r = $resultJSON->fromJSON(meta::protocols::pure::v1_29_0::metamodel::invocation::execution::execute::RelationalClassResult, $extendedJSONDeserializationConfig); @@ -260,7 +261,7 @@ function meta::protocols::pure::v1_29_0::extension::getRelationalExtension():met ]} , - invocation_execution_transformContext = + invocation_execution_transformContext = [ r:meta::relational::runtime::RelationalExecutionContext[1]| let importDataFlowFkCols = if($r.importDataFlowFksByTable->isEmpty(), |[], @@ -290,10 +291,10 @@ function meta::protocols::pure::v1_29_0::extension::getRelationalExtension():met ]}, transfers_store_transformConnection2 = {extensions:meta::pure::extension::Extension[*] | [ - db:meta::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) + db:meta::external::store::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) ]}, scan_buildPureModelAsText_getAllElementsFromMapping = {stores : meta::pure::store::Store[*] | - $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) + $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) } ) } @@ -334,4 +335,4 @@ function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::executio identifierForGetter = $c.identifierForGetter, parametersForGetter = $c.parametersForGetter ) -} \ No newline at end of file +} 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/v1_29_0/invocations/execution_relation_executeInRelationalDb.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_29_0/invocations/execution_relation_executeInRelationalDb.pure index 12a37016085..72c5fc8fd3c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_29_0/invocations/execution_relation_executeInRelationalDb.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_29_0/invocations/execution_relation_executeInRelationalDb.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::alloy::metadataServer::*; import meta::pure::functions::io::http::*; import meta::protocols::pure::v1_29_0::invocation::execution::executeInRelationalDb::*; @@ -21,9 +22,9 @@ function meta::protocols::pure::v1_29_0::invocation::execution::executeInRelatio { let conn1= $conn->meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) ->cast(@meta::protocols::pure::v1_29_0::metamodel::store::relational::connection::RelationalDatabaseConnection); - + let input= ^ExecuteInRelationalDbInput(sqls=$sqls, connection = $conn1)->alloyToJSON(); - + let resp= executeHTTPRaw(^URL(host=$host, port=$port , path='/api/pure/v1/utilities/tests/executeInRelationalDb'), HTTPMethod.POST , 'application/json', @@ -41,4 +42,4 @@ Class meta::protocols::pure::v1_29_0::invocation::execution::executeInRelational { connection : meta::protocols::pure::v1_29_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1]; sqls : String[*]; -} \ No newline at end of file +} 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/v1_29_0/invocations/execution_relational_execute.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_29_0/invocations/execution_relational_execute.pure index ca8c3f16b13..1df2be19c36 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_29_0/invocations/execution_relational_execute.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_29_0/invocations/execution_relational_execute.pure @@ -19,12 +19,14 @@ import meta::pure::extension::*; import meta::relational::extension::*; import meta::protocols::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_29_0::transformation::fromPureGraph::context::*; import meta::pure::router::routing::*; import meta::protocols::pure::v1_29_0::invocation::execution::execute::*; import meta::protocols::pure::v1_29_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_29_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::pure::milestoning::*; @@ -172,7 +174,10 @@ function meta::protocols::pure::v1_29_0::invocation::execution::execute::generat function meta::protocols::pure::v1_29_0::invocation::execution::execute::generateAlloyRelationalStoreObjectReference(mapping:Mapping[1], set:RelationalInstanceSetImplementation[1], sets:SetImplementation[*], runtime:Runtime[1], pkMap:Map[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_29_0::metamodel::objectReference::AlloyRelationalStoreObjectReference[1] { let store = $set.stores->toOne(); - let databaseConnection = $runtime->connectionByElement($store->toOne())->meta::protocols::pure::v1_29_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->cast(@meta::protocols::pure::v1_29_0::metamodel::store::relational::connection::DatabaseConnection); + let conn = $runtime->connectionByElement($store->toOne()); + let connectionStore = $runtime.connectionStores->filter(c|$c.connection==$conn); + let databaseConnection = $connectionStore->map(ce|$ce.connection->meta::protocols::pure::v1_29_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$ce.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) + ->toOne()->cast(@meta::protocols::pure::v1_29_0::metamodel::store::relational::connection::DatabaseConnection); let setIdx = if($sets->size() == 1, | '', | '_' + $sets->indexOf($set)->toString()); let transformedPkMap = meta::relational::mapping::resolvePrimaryKeysNames($set->cast(@RelationalInstanceSetImplementation), $pkMap, $setIdx, true, $extensions); @@ -190,10 +195,10 @@ function meta::protocols::pure::v1_29_0::invocation::execution::execute::decodeA { let parsedObjectRef = meta::alloy::objectReference::decodeAndParseAlloyObjectReference($ref); let type = $parsedObjectRef->get('type')->cast(@String)->toOne(); - + if($type->toLower() == 'relational', | meta::protocols::pure::v1_29_0::invocation::execution::execute::getAlloyRelationalStoreObjectReference($parsedObjectRef), - | fail('Not Supported Yet!!'); + | fail('Not Supported Yet!!'); ^meta::protocols::pure::v1_29_0::metamodel::objectReference::AlloyObjectReference ( type = meta::protocols::pure::v1_29_0::metamodel::objectReference::AlloyObjectReferenceType.Relational, 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/v1_29_0/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/v1_29_0/invocations/execution_relational_testConnection.pure index 0e720f0b308..f20031b7e9d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_29_0/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/v1_29_0/invocations/execution_relational_testConnection.pure @@ -13,6 +13,8 @@ // limitations under the License. import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::protocols::pure::v1_29_0::invocation::execution::testConnection::*; import meta::json::*; @@ -29,7 +31,7 @@ import meta::protocols::pure::v1_29_0::metamodel::store::relational::connection: import meta::protocols::pure::v1_29_0::metamodel::store::relational::element::*; import meta::protocols::pure::v1_29_0::transformation::toPureGraph::model::*; -function meta::protocols::pure::v1_29_0::invocation::execution::testConnection::getTestConnection(dbType:DatabaseType[1], host:String[1], port:Integer[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[0..1] +function meta::protocols::pure::v1_29_0::invocation::execution::testConnection::getTestConnection(dbType:DatabaseType[1], host:String[1], port:Integer[1], extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[0..1] { let resp= executeHTTPRaw(^URL(host=$host, port=$port , path='/api/pure/v1/utilities/tests/connections/'+ $dbType->toString()), HTTPMethod.GET , @@ -39,18 +41,18 @@ function meta::protocols::pure::v1_29_0::invocation::execution::testConnection:: if($resp.statusCode != 200, | println($resp.statusCode->toString()+' \''+$resp.entity->replace('\\n', '\n')->replace('\\t', '')+'\''), - | + | let res = $resp.entity->toOne()->toString(); $res -> meta::protocols::pure::v1_29_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection($extensions); ); } -function meta::protocols::pure::v1_29_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection(connectionJSON:String[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[0..1] +function meta::protocols::pure::v1_29_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection(connectionJSON:String[1], extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[0..1] { - let protocolConn = meta::json::fromJSON($connectionJSON, + let protocolConn = meta::json::fromJSON($connectionJSON, meta::protocols::pure::v1_29_0::metamodel::store::relational::connection::RelationalDatabaseConnection , - ^JSONDeserializationConfig( + ^JSONDeserializationConfig( typeKeyName='_type', failOnUnknownProperties=false , retainTypeField=true, @@ -71,11 +73,11 @@ function meta::protocols::pure::v1_29_0::transformation::toPureGraph::connection ) ); let pureConn = $protocolConn->meta::protocols::pure::v1_29_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection($extensions); - $pureConn->cast(@meta::pure::alloy::connections::RelationalDatabaseConnection); + $pureConn; } -function meta::protocols::pure::v1_29_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection(conn : meta::protocols::pure::v1_29_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1] , extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[1] +function meta::protocols::pure::v1_29_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection(conn : meta::protocols::pure::v1_29_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1] , extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[1] { let element = if($conn.element=='', // legend test server sends '' as element for testConnections , as store is not known before hand | ^Database(name='dummyDB'), @@ -83,20 +85,21 @@ function meta::protocols::pure::v1_29_0::transformation::toPureGraph::connection ); let type = extractEnumValue(meta::relational::runtime::DatabaseType, $conn.type); - - ^meta::pure::alloy::connections::RelationalDatabaseConnection( + + ^meta::core::runtime::ConnectionStore( + element=$element, + connection=^meta::external::store::relational::runtime::RelationalDatabaseConnection( timeZone = $conn.timeZone, quoteIdentifiers = $conn.quoteIdentifiers, - element = $element, type = $type, datasourceSpecification = $conn.datasourceSpecification->meta::protocols::pure::v1_29_0::transformation::toPureGraph::connection::transformDatasourceSpecification($extensions), authenticationStrategy = $conn.authenticationStrategy->meta::protocols::pure::v1_29_0::transformation::toPureGraph::connection::transformAuthenticationStrategy($extensions), postProcessors = $conn.postProcessors->meta::protocols::pure::v1_29_0::transformation::toPureGraph::connection::transformPostProcessors($extensions) - ); + )); } function meta::protocols::pure::v1_29_0::transformation::toPureGraph::connection::transformAuthenticationStrategy(a: meta::protocols::pure::v1_29_0::metamodel::store::relational::connection::alloy::authentication::AuthenticationStrategy[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy[1] -{ +{ $a->match($extensions.serializerExtension('v1_29_0')->cast(@meta::protocols::pure::v1_29_0::extension::SerializerExtension_v1_29_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_29_0::extension::RelationalModuleSerializerExtension).reverse_transfers_connection_transformAuthenticationStrategy->concatenate([ d:meta::protocols::pure::v1_29_0::metamodel::store::relational::connection::alloy::authentication::DelegatedKerberosAuthenticationStrategy[1] | ^meta::pure::alloy::connections::alloy::authentication::DelegatedKerberosAuthenticationStrategy( @@ -200,4 +203,4 @@ function meta::protocols::pure::v1_29_0::transformation::toPureGraph::connection ) ]) ) -} \ No newline at end of file +} 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/v1_29_0/invocations/execution_relational_testData.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_29_0/invocations/execution_relational_testData.pure index b8decb76a01..4c85f16a201 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_29_0/invocations/execution_relational_testData.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_29_0/invocations/execution_relational_testData.pure @@ -18,6 +18,7 @@ import meta::protocols::pure::v1_29_0::invocation::execution::execute::*; import meta::protocols::pure::v1_29_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_29_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::alloy::metadataServer::*; @@ -94,7 +95,7 @@ function meta::protocols::pure::v1_29_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_29_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_29_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -164,7 +165,7 @@ function meta::protocols::pure::v1_29_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_29_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_29_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -235,7 +236,7 @@ function meta::protocols::pure::v1_29_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->map(element | + |let stores = $pureRuntime.connectionStores.element->map(element | $element->match([ store:meta::pure::store::Store[1] | $store->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() 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/v1_29_0/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/v1_29_0/transfers/connection_relational.pure index 396ff0b8184..d24fc715af5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_29_0/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/v1_29_0/transfers/connection_relational.pure @@ -26,18 +26,18 @@ import meta::protocols::pure::v1_29_0::metamodel::store::relational::connection: import meta::protocols::pure::v1_29_0::metamodel::store::relational::element::*; import meta::protocols::pure::v1_29_0::transformation::fromPureGraph::model::*; -function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_29_0::metamodel::store::relational::connection::DatabaseConnection[1] +function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::external::store::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_29_0::metamodel::store::relational::connection::DatabaseConnection[1] { let _type = $otherConnection->class()->toString(); - let element = $otherConnection.element->match([d:meta::pure::store::Store[1]|$d->elementToPath(),s:String[1]|$s]); + let element = ''; let type = $otherConnection.type->toString(); - let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::pure::alloy::connections::RelationalDatabaseConnection), + let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::external::store::relational::runtime::RelationalDatabaseConnection), | [], | $otherConnection.queryPostProcessorsWithParameter->transformPostProcessors($extensions)); let alloyConnection = $otherConnection->match($extensions.serializerExtension('v1_29_0')->cast(@meta::protocols::pure::v1_29_0::extension::SerializerExtension_v1_29_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_29_0::extension::RelationalModuleSerializerExtension).transfers_connection_transformDatabaseConnection->map(f | $f->eval($_type, $element, $type, $postProcessorsWithParams))->concatenate([ - test:meta::relational::runtime::TestDatabaseConnection[1]| + test:meta::external::store::relational::runtime::TestDatabaseConnection[1]| ^RelationalDatabaseConnection( _type = 'RelationalDatabaseConnection', type = $type, @@ -54,10 +54,10 @@ function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connecti ), postProcessorWithParameter = $postProcessorsWithParams ), - relational:meta::pure::alloy::connections::RelationalDatabaseConnection[1] | + relational:meta::external::store::relational::runtime::RelationalDatabaseConnection[1] | let processors = transformPostProcessors($relational.postProcessors, $extensions); relational($type, $element, $relational.timeZone, $relational.quoteIdentifiers, $processors, $relational.datasourceSpecification, $relational.authenticationStrategy, $extensions);, - dbCon:meta::relational::runtime::DatabaseConnection[1]| + dbCon:meta::external::store::relational::runtime::DatabaseConnection[1]| ^meta::protocols::pure::v1_29_0::metamodel::store::relational::connection::DatabaseConnection( _type = $_type, timeZone = $dbCon.timeZone, 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/v1_29_0/transfers/metamodel_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/v1_29_0/transfers/metamodel_relational.pure index 56326a9f9fc..684e6d5366d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_29_0/transfers/metamodel_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/v1_29_0/transfers/metamodel_relational.pure @@ -20,6 +20,7 @@ import meta::protocols::pure::v1_29_0::transformation::fromPureGraph::mapping::m import meta::protocols::pure::v1_29_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_29_0::transformation::fromPureGraph::modelToModel::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_29_0::transformation::fromPureGraph::domain::*; import meta::protocols::pure::v1_29_0::transformation::fromPureGraph::store::csv::*; import meta::pure::mapping::*; 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/v1_30_0/extension/extension_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/v1_30_0/extension/extension_relational.pure index 4bd72bab212..4d7e2740685 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_30_0/extension/extension_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/v1_30_0/extension/extension_relational.pure @@ -18,6 +18,7 @@ import meta::protocols::pure::v1_30_0::transformation::fromPureGraph::store::csv import meta::protocols::pure::v1_30_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_30_0::transformation::fromPureGraph::store::relational::*; import meta::protocols::pure::v1_30_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::protocols::pure::v1_30_0::invocation::execution::execute::*; import meta::relational::mapping::*; @@ -32,7 +33,7 @@ function meta::protocols::pure::v1_30_0::extension::getRelationalExtension(type: ]->filter(f|$f.first == $type); assert($res->isNotEmpty(), |'Can\'t find the type '+$type); $res->at(0).second->eval(); - + } function meta::protocols::pure::v1_30_0::extension::getRelationalExtension():meta::protocols::pure::v1_30_0::extension::SerializerExtension_v1_30_0[1] @@ -50,8 +51,8 @@ function meta::protocols::pure::v1_30_0::extension::getRelationalExtension():met transfers_valueSpecification_transformAny = { inScope:String[*], open:Map>[1], m:Multiplicity[1], fe:FunctionExpression[0..1],useAppliedFunction:Boolean[1], extensions:meta::pure::extension::Extension[*] | [ - r:meta::pure::runtime::Runtime[1]| - ^meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ClassInstance + r:meta::core::runtime::Runtime[1]| + ^meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'runtimeInstance', @@ -61,7 +62,7 @@ function meta::protocols::pure::v1_30_0::extension::getRelationalExtension():met ) ), e:meta::pure::runtime::ExecutionContext[1]| - ^meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::v1_30_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'executionContextInstance', @@ -246,7 +247,7 @@ function meta::protocols::pure::v1_30_0::extension::getRelationalExtension():met let rv = $resultJSON->fromJSON(meta::protocols::pure::v1_30_0::metamodel::invocation::execution::execute::RelationalTDSResult, $extendedJSONDeserializationConfig); $rv->cast(@meta::protocols::pure::v1_30_0::metamodel::invocation::execution::execute::RelationalTDSResult)->toOne()->processTDSResult($extensions);} ), - + pair (builderType:String[1]| $builderType->isNotEmpty() && $builderType->toOne()=='classBuilder', {resultJSON:String[1], result:JSONObject[1], m:Mapping[1], pureRuntime:Runtime[1],extendedJSONDeserializationConfig:ExtendedJSONDeserializationConfig[1], context:ExecutionContext[0..1]| let r = $resultJSON->fromJSON(meta::protocols::pure::v1_30_0::metamodel::invocation::execution::execute::RelationalClassResult, $extendedJSONDeserializationConfig); @@ -262,7 +263,7 @@ function meta::protocols::pure::v1_30_0::extension::getRelationalExtension():met ]} , - invocation_execution_transformContext = + invocation_execution_transformContext = [ r:meta::relational::runtime::RelationalExecutionContext[1]| let importDataFlowFkCols = if($r.importDataFlowFksByTable->isEmpty(), |[], @@ -292,10 +293,10 @@ function meta::protocols::pure::v1_30_0::extension::getRelationalExtension():met ]}, transfers_store_transformConnection2 = {extensions:meta::pure::extension::Extension[*] | [ - db:meta::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) + db:meta::external::store::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) ]}, scan_buildPureModelAsText_getAllElementsFromMapping = {stores : meta::pure::store::Store[*] | - $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) + $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) } ) } @@ -336,4 +337,4 @@ function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::executio identifierForGetter = $c.identifierForGetter, parametersForGetter = $c.parametersForGetter ) -} \ No newline at end of file +} 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/v1_30_0/invocations/execution_relation_executeInRelationalDb.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_30_0/invocations/execution_relation_executeInRelationalDb.pure index 93c576fa817..85f01216712 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_30_0/invocations/execution_relation_executeInRelationalDb.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_30_0/invocations/execution_relation_executeInRelationalDb.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::alloy::metadataServer::*; import meta::pure::functions::io::http::*; import meta::protocols::pure::v1_30_0::invocation::execution::executeInRelationalDb::*; @@ -21,9 +22,9 @@ function meta::protocols::pure::v1_30_0::invocation::execution::executeInRelatio { let conn1= $conn->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) ->cast(@meta::protocols::pure::v1_30_0::metamodel::store::relational::connection::RelationalDatabaseConnection); - + let input= ^ExecuteInRelationalDbInput(sqls=$sqls, connection = $conn1)->alloyToJSON(); - + let resp= executeHTTPRaw(^URL(host=$host, port=$port , path='/api/pure/v1/utilities/tests/executeInRelationalDb'), HTTPMethod.POST , 'application/json', @@ -41,4 +42,4 @@ Class meta::protocols::pure::v1_30_0::invocation::execution::executeInRelational { connection : meta::protocols::pure::v1_30_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1]; sqls : String[*]; -} \ No newline at end of file +} 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/v1_30_0/invocations/execution_relational_execute.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_30_0/invocations/execution_relational_execute.pure index fbdefea49e7..8386ad40bd5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_30_0/invocations/execution_relational_execute.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_30_0/invocations/execution_relational_execute.pure @@ -19,12 +19,14 @@ import meta::pure::extension::*; import meta::relational::extension::*; import meta::protocols::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_30_0::transformation::fromPureGraph::context::*; import meta::pure::router::routing::*; import meta::protocols::pure::v1_30_0::invocation::execution::execute::*; import meta::protocols::pure::v1_30_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_30_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::pure::milestoning::*; @@ -172,7 +174,10 @@ function meta::protocols::pure::v1_30_0::invocation::execution::execute::generat function meta::protocols::pure::v1_30_0::invocation::execution::execute::generateAlloyRelationalStoreObjectReference(mapping:Mapping[1], set:RelationalInstanceSetImplementation[1], sets:SetImplementation[*], runtime:Runtime[1], pkMap:Map[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_30_0::metamodel::objectReference::AlloyRelationalStoreObjectReference[1] { let store = $set.stores->toOne(); - let databaseConnection = $runtime->connectionByElement($store->toOne())->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->cast(@meta::protocols::pure::v1_30_0::metamodel::store::relational::connection::DatabaseConnection); + let conn = $runtime->connectionByElement($store->toOne()); + let connectionStore = $runtime.connectionStores->filter(c|$c.connection==$conn); + let databaseConnection = $connectionStore->map(ce|$ce.connection->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$ce.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) + ->toOne()->cast(@meta::protocols::pure::v1_30_0::metamodel::store::relational::connection::DatabaseConnection); let setIdx = if($sets->size() == 1, | '', | '_' + $sets->indexOf($set)->toString()); let transformedPkMap = meta::relational::mapping::resolvePrimaryKeysNames($set->cast(@RelationalInstanceSetImplementation), $pkMap, $setIdx, true, $extensions); @@ -190,10 +195,10 @@ function meta::protocols::pure::v1_30_0::invocation::execution::execute::decodeA { let parsedObjectRef = meta::alloy::objectReference::decodeAndParseAlloyObjectReference($ref); let type = $parsedObjectRef->get('type')->cast(@String)->toOne(); - + if($type->toLower() == 'relational', | meta::protocols::pure::v1_30_0::invocation::execution::execute::getAlloyRelationalStoreObjectReference($parsedObjectRef), - | fail('Not Supported Yet!!'); + | fail('Not Supported Yet!!'); ^meta::protocols::pure::v1_30_0::metamodel::objectReference::AlloyObjectReference ( type = meta::protocols::pure::v1_30_0::metamodel::objectReference::AlloyObjectReferenceType.Relational, 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/v1_30_0/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/v1_30_0/invocations/execution_relational_testConnection.pure index 91c90a9bca8..6eb3db4c374 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_30_0/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/v1_30_0/invocations/execution_relational_testConnection.pure @@ -13,6 +13,8 @@ // limitations under the License. import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::protocols::pure::v1_30_0::invocation::execution::testConnection::*; import meta::json::*; @@ -29,7 +31,7 @@ import meta::protocols::pure::v1_30_0::metamodel::store::relational::connection: import meta::protocols::pure::v1_30_0::metamodel::store::relational::element::*; import meta::protocols::pure::v1_30_0::transformation::toPureGraph::model::*; -function meta::protocols::pure::v1_30_0::invocation::execution::testConnection::getTestConnection(dbType:DatabaseType[1], host:String[1], port:Integer[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[0..1] +function meta::protocols::pure::v1_30_0::invocation::execution::testConnection::getTestConnection(dbType:DatabaseType[1], host:String[1], port:Integer[1], extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[0..1] { let resp= executeHTTPRaw(^URL(host=$host, port=$port , path='/api/pure/v1/utilities/tests/connections/'+ $dbType->toString()), HTTPMethod.GET , @@ -39,18 +41,18 @@ function meta::protocols::pure::v1_30_0::invocation::execution::testConnection:: if($resp.statusCode != 200, | println($resp.statusCode->toString()+' \''+$resp.entity->replace('\\n', '\n')->replace('\\t', '')+'\''), - | + | let res = $resp.entity->toOne()->toString(); $res -> meta::protocols::pure::v1_30_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection($extensions); ); } -function meta::protocols::pure::v1_30_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection(connectionJSON:String[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[0..1] +function meta::protocols::pure::v1_30_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection(connectionJSON:String[1], extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[0..1] { - let protocolConn = meta::json::fromJSON($connectionJSON, + let protocolConn = meta::json::fromJSON($connectionJSON, meta::protocols::pure::v1_30_0::metamodel::store::relational::connection::RelationalDatabaseConnection , - ^JSONDeserializationConfig( + ^JSONDeserializationConfig( typeKeyName='_type', failOnUnknownProperties=false , retainTypeField=true, @@ -71,11 +73,11 @@ function meta::protocols::pure::v1_30_0::transformation::toPureGraph::connection ) ); let pureConn = $protocolConn->meta::protocols::pure::v1_30_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection($extensions); - $pureConn->cast(@meta::pure::alloy::connections::RelationalDatabaseConnection); + $pureConn; } -function meta::protocols::pure::v1_30_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection(conn : meta::protocols::pure::v1_30_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1] , extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[1] +function meta::protocols::pure::v1_30_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection(conn : meta::protocols::pure::v1_30_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1] , extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[1] { let element = if($conn.element=='', // legend test server sends '' as element for testConnections , as store is not known before hand | ^Database(name='dummyDB'), @@ -83,20 +85,21 @@ function meta::protocols::pure::v1_30_0::transformation::toPureGraph::connection ); let type = extractEnumValue(meta::relational::runtime::DatabaseType, $conn.type); - - ^meta::pure::alloy::connections::RelationalDatabaseConnection( + + ^meta::core::runtime::ConnectionStore( + element=$element, + connection=^meta::external::store::relational::runtime::RelationalDatabaseConnection( timeZone = $conn.timeZone, quoteIdentifiers = $conn.quoteIdentifiers, - element = $element, type = $type, datasourceSpecification = $conn.datasourceSpecification->meta::protocols::pure::v1_30_0::transformation::toPureGraph::connection::transformDatasourceSpecification($extensions), authenticationStrategy = $conn.authenticationStrategy->meta::protocols::pure::v1_30_0::transformation::toPureGraph::connection::transformAuthenticationStrategy($extensions), postProcessors = $conn.postProcessors->meta::protocols::pure::v1_30_0::transformation::toPureGraph::connection::transformPostProcessors($extensions) - ); + )); } function meta::protocols::pure::v1_30_0::transformation::toPureGraph::connection::transformAuthenticationStrategy(a: meta::protocols::pure::v1_30_0::metamodel::store::relational::connection::alloy::authentication::AuthenticationStrategy[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy[1] -{ +{ $a->match($extensions.serializerExtension('v1_30_0')->cast(@meta::protocols::pure::v1_30_0::extension::SerializerExtension_v1_30_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_30_0::extension::RelationalModuleSerializerExtension).reverse_transfers_connection_transformAuthenticationStrategy->concatenate([ d:meta::protocols::pure::v1_30_0::metamodel::store::relational::connection::alloy::authentication::DelegatedKerberosAuthenticationStrategy[1] | ^meta::pure::alloy::connections::alloy::authentication::DelegatedKerberosAuthenticationStrategy( @@ -200,4 +203,4 @@ function meta::protocols::pure::v1_30_0::transformation::toPureGraph::connection ) ]) ) -} \ No newline at end of file +} 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/v1_30_0/invocations/execution_relational_testData.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_30_0/invocations/execution_relational_testData.pure index 449907e608a..f4a506cf287 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_30_0/invocations/execution_relational_testData.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_30_0/invocations/execution_relational_testData.pure @@ -18,6 +18,7 @@ import meta::protocols::pure::v1_30_0::invocation::execution::execute::*; import meta::protocols::pure::v1_30_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_30_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::alloy::metadataServer::*; @@ -94,7 +95,7 @@ function meta::protocols::pure::v1_30_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_30_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_30_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -164,7 +165,7 @@ function meta::protocols::pure::v1_30_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_30_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_30_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -235,7 +236,7 @@ function meta::protocols::pure::v1_30_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->map(element | + |let stores = $pureRuntime.connectionStores.element->map(element | $element->match([ store:meta::pure::store::Store[1] | $store->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() 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/v1_30_0/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/v1_30_0/transfers/connection_relational.pure index 6852d56788d..6beda5cf335 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_30_0/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/v1_30_0/transfers/connection_relational.pure @@ -26,18 +26,18 @@ import meta::protocols::pure::v1_30_0::metamodel::store::relational::connection: import meta::protocols::pure::v1_30_0::metamodel::store::relational::element::*; import meta::protocols::pure::v1_30_0::transformation::fromPureGraph::model::*; -function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_30_0::metamodel::store::relational::connection::DatabaseConnection[1] +function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::external::store::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_30_0::metamodel::store::relational::connection::DatabaseConnection[1] { let _type = $otherConnection->class()->toString(); - let element = $otherConnection.element->match([d:meta::pure::store::Store[1]|$d->elementToPath(),s:String[1]|$s]); + let element = ''; let type = $otherConnection.type->toString(); - let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::pure::alloy::connections::RelationalDatabaseConnection), + let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::external::store::relational::runtime::RelationalDatabaseConnection), | [], | $otherConnection.queryPostProcessorsWithParameter->transformPostProcessors($extensions)); let alloyConnection = $otherConnection->match($extensions.serializerExtension('v1_30_0')->cast(@meta::protocols::pure::v1_30_0::extension::SerializerExtension_v1_30_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_30_0::extension::RelationalModuleSerializerExtension).transfers_connection_transformDatabaseConnection->map(f | $f->eval($_type, $element, $type, $postProcessorsWithParams))->concatenate([ - test:meta::relational::runtime::TestDatabaseConnection[1]| + test:meta::external::store::relational::runtime::TestDatabaseConnection[1]| ^RelationalDatabaseConnection( _type = 'RelationalDatabaseConnection', type = $type, @@ -54,10 +54,10 @@ function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connecti ), postProcessorWithParameter = $postProcessorsWithParams ), - relational:meta::pure::alloy::connections::RelationalDatabaseConnection[1] | + relational:meta::external::store::relational::runtime::RelationalDatabaseConnection[1] | let processors = transformPostProcessors($relational.postProcessors, $extensions); relational($type, $element, $relational.timeZone, $relational.quoteIdentifiers, $processors, $relational.datasourceSpecification, $relational.authenticationStrategy, $extensions);, - dbCon:meta::relational::runtime::DatabaseConnection[1]| + dbCon:meta::external::store::relational::runtime::DatabaseConnection[1]| ^meta::protocols::pure::v1_30_0::metamodel::store::relational::connection::DatabaseConnection( _type = $_type, timeZone = $dbCon.timeZone, 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/v1_30_0/transfers/metamodel_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/v1_30_0/transfers/metamodel_relational.pure index 64184c3f03f..af61d9a08f5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_30_0/transfers/metamodel_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/v1_30_0/transfers/metamodel_relational.pure @@ -20,6 +20,7 @@ import meta::protocols::pure::v1_30_0::transformation::fromPureGraph::mapping::m import meta::protocols::pure::v1_30_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_30_0::transformation::fromPureGraph::modelToModel::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_30_0::transformation::fromPureGraph::domain::*; import meta::protocols::pure::v1_30_0::transformation::fromPureGraph::store::csv::*; import meta::pure::mapping::*; 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/v1_31_0/extension/extension_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/v1_31_0/extension/extension_relational.pure index 2fea45cf293..260b49eae70 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_31_0/extension/extension_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/v1_31_0/extension/extension_relational.pure @@ -18,6 +18,7 @@ import meta::protocols::pure::v1_31_0::transformation::fromPureGraph::store::csv import meta::protocols::pure::v1_31_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_31_0::transformation::fromPureGraph::store::relational::*; import meta::protocols::pure::v1_31_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::protocols::pure::v1_31_0::invocation::execution::execute::*; import meta::relational::mapping::*; @@ -32,7 +33,7 @@ function meta::protocols::pure::v1_31_0::extension::getRelationalExtension(type: ]->filter(f|$f.first == $type); assert($res->isNotEmpty(), |'Can\'t find the type '+$type); $res->at(0).second->eval(); - + } function meta::protocols::pure::v1_31_0::extension::getRelationalExtension():meta::protocols::pure::v1_31_0::extension::SerializerExtension_v1_31_0[1] @@ -50,8 +51,8 @@ function meta::protocols::pure::v1_31_0::extension::getRelationalExtension():met transfers_valueSpecification_transformAny = { inScope:String[*], open:Map>[1], m:Multiplicity[1], fe:FunctionExpression[0..1],useAppliedFunction:Boolean[1], extensions:meta::pure::extension::Extension[*] | [ - r:meta::pure::runtime::Runtime[1]| - ^meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ClassInstance + r:meta::core::runtime::Runtime[1]| + ^meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'runtimeInstance', @@ -61,7 +62,7 @@ function meta::protocols::pure::v1_31_0::extension::getRelationalExtension():met ) ), e:meta::pure::runtime::ExecutionContext[1]| - ^meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::v1_31_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'executionContextInstance', @@ -246,7 +247,7 @@ function meta::protocols::pure::v1_31_0::extension::getRelationalExtension():met let rv = $resultJSON->fromJSON(meta::protocols::pure::v1_31_0::metamodel::invocation::execution::execute::RelationalTDSResult, $extendedJSONDeserializationConfig); $rv->cast(@meta::protocols::pure::v1_31_0::metamodel::invocation::execution::execute::RelationalTDSResult)->toOne()->processTDSResult($extensions);} ), - + pair (builderType:String[1]| $builderType->isNotEmpty() && $builderType->toOne()=='classBuilder', {resultJSON:String[1], result:JSONObject[1], m:Mapping[1], pureRuntime:Runtime[1],extendedJSONDeserializationConfig:ExtendedJSONDeserializationConfig[1], context:ExecutionContext[0..1]| let r = $resultJSON->fromJSON(meta::protocols::pure::v1_31_0::metamodel::invocation::execution::execute::RelationalClassResult, $extendedJSONDeserializationConfig); @@ -262,7 +263,7 @@ function meta::protocols::pure::v1_31_0::extension::getRelationalExtension():met ]} , - invocation_execution_transformContext = + invocation_execution_transformContext = [ r:meta::relational::runtime::RelationalExecutionContext[1]| let importDataFlowFkCols = if($r.importDataFlowFksByTable->isEmpty(), |[], @@ -292,10 +293,10 @@ function meta::protocols::pure::v1_31_0::extension::getRelationalExtension():met ]}, transfers_store_transformConnection2 = {extensions:meta::pure::extension::Extension[*] | [ - db:meta::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) + db:meta::external::store::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) ]}, scan_buildPureModelAsText_getAllElementsFromMapping = {stores : meta::pure::store::Store[*] | - $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) + $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) } ) } @@ -336,4 +337,4 @@ function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::executio identifierForGetter = $c.identifierForGetter, parametersForGetter = $c.parametersForGetter ) -} \ No newline at end of file +} 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/v1_31_0/invocations/execution_relation_executeInRelationalDb.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_31_0/invocations/execution_relation_executeInRelationalDb.pure index bc2a5f82da1..c0ddb2d69e9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_31_0/invocations/execution_relation_executeInRelationalDb.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_31_0/invocations/execution_relation_executeInRelationalDb.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::alloy::metadataServer::*; import meta::pure::functions::io::http::*; import meta::protocols::pure::v1_31_0::invocation::execution::executeInRelationalDb::*; @@ -21,9 +22,9 @@ function meta::protocols::pure::v1_31_0::invocation::execution::executeInRelatio { let conn1= $conn->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) ->cast(@meta::protocols::pure::v1_31_0::metamodel::store::relational::connection::RelationalDatabaseConnection); - + let input= ^ExecuteInRelationalDbInput(sqls=$sqls, connection = $conn1)->alloyToJSON(); - + let resp= executeHTTPRaw(^URL(host=$host, port=$port , path='/api/pure/v1/utilities/tests/executeInRelationalDb'), HTTPMethod.POST , 'application/json', @@ -41,4 +42,4 @@ Class meta::protocols::pure::v1_31_0::invocation::execution::executeInRelational { connection : meta::protocols::pure::v1_31_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1]; sqls : String[*]; -} \ No newline at end of file +} 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/v1_31_0/invocations/execution_relational_execute.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_31_0/invocations/execution_relational_execute.pure index f75506b7ae3..2421da82ce7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_31_0/invocations/execution_relational_execute.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_31_0/invocations/execution_relational_execute.pure @@ -19,12 +19,14 @@ import meta::pure::extension::*; import meta::relational::extension::*; import meta::protocols::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_31_0::transformation::fromPureGraph::context::*; import meta::pure::router::routing::*; import meta::protocols::pure::v1_31_0::invocation::execution::execute::*; import meta::protocols::pure::v1_31_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_31_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::pure::milestoning::*; @@ -172,7 +174,10 @@ function meta::protocols::pure::v1_31_0::invocation::execution::execute::generat function meta::protocols::pure::v1_31_0::invocation::execution::execute::generateAlloyRelationalStoreObjectReference(mapping:Mapping[1], set:RelationalInstanceSetImplementation[1], sets:SetImplementation[*], runtime:Runtime[1], pkMap:Map[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_31_0::metamodel::objectReference::AlloyRelationalStoreObjectReference[1] { let store = $set.stores->toOne(); - let databaseConnection = $runtime->connectionByElement($store->toOne())->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->cast(@meta::protocols::pure::v1_31_0::metamodel::store::relational::connection::DatabaseConnection); + let conn = $runtime->connectionByElement($store->toOne()); + let connectionStore = $runtime.connectionStores->filter(c|$c.connection==$conn); + let databaseConnection = $connectionStore->map(ce|$ce.connection->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$ce.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) + ->toOne()->cast(@meta::protocols::pure::v1_31_0::metamodel::store::relational::connection::DatabaseConnection); let setIdx = if($sets->size() == 1, | '', | '_' + $sets->indexOf($set)->toString()); let transformedPkMap = meta::relational::mapping::resolvePrimaryKeysNames($set->cast(@RelationalInstanceSetImplementation), $pkMap, $setIdx, true, $extensions); @@ -190,10 +195,10 @@ function meta::protocols::pure::v1_31_0::invocation::execution::execute::decodeA { let parsedObjectRef = meta::alloy::objectReference::decodeAndParseAlloyObjectReference($ref); let type = $parsedObjectRef->get('type')->cast(@String)->toOne(); - + if($type->toLower() == 'relational', | meta::protocols::pure::v1_31_0::invocation::execution::execute::getAlloyRelationalStoreObjectReference($parsedObjectRef), - | fail('Not Supported Yet!!'); + | fail('Not Supported Yet!!'); ^meta::protocols::pure::v1_31_0::metamodel::objectReference::AlloyObjectReference ( type = meta::protocols::pure::v1_31_0::metamodel::objectReference::AlloyObjectReferenceType.Relational, 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/v1_31_0/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/v1_31_0/invocations/execution_relational_testConnection.pure index 270d485fc02..5fe9c43254c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_31_0/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/v1_31_0/invocations/execution_relational_testConnection.pure @@ -13,6 +13,8 @@ // limitations under the License. import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::protocols::pure::v1_31_0::invocation::execution::testConnection::*; import meta::json::*; @@ -29,7 +31,7 @@ import meta::protocols::pure::v1_31_0::metamodel::store::relational::connection: import meta::protocols::pure::v1_31_0::metamodel::store::relational::element::*; import meta::protocols::pure::v1_31_0::transformation::toPureGraph::model::*; -function meta::protocols::pure::v1_31_0::invocation::execution::testConnection::getTestConnection(dbType:DatabaseType[1], host:String[1], port:Integer[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[0..1] +function meta::protocols::pure::v1_31_0::invocation::execution::testConnection::getTestConnection(dbType:DatabaseType[1], host:String[1], port:Integer[1], extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[0..1] { let resp= executeHTTPRaw(^URL(host=$host, port=$port , path='/api/pure/v1/utilities/tests/connections/'+ $dbType->toString()), HTTPMethod.GET , @@ -39,18 +41,18 @@ function meta::protocols::pure::v1_31_0::invocation::execution::testConnection:: if($resp.statusCode != 200, | println($resp.statusCode->toString()+' \''+$resp.entity->replace('\\n', '\n')->replace('\\t', '')+'\''), - | + | let res = $resp.entity->toOne()->toString(); $res -> meta::protocols::pure::v1_31_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection($extensions); ); } -function meta::protocols::pure::v1_31_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection(connectionJSON:String[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[0..1] +function meta::protocols::pure::v1_31_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection(connectionJSON:String[1], extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[0..1] { - let protocolConn = meta::json::fromJSON($connectionJSON, + let protocolConn = meta::json::fromJSON($connectionJSON, meta::protocols::pure::v1_31_0::metamodel::store::relational::connection::RelationalDatabaseConnection , - ^JSONDeserializationConfig( + ^JSONDeserializationConfig( typeKeyName='_type', failOnUnknownProperties=false , retainTypeField=true, @@ -71,11 +73,11 @@ function meta::protocols::pure::v1_31_0::transformation::toPureGraph::connection ) ); let pureConn = $protocolConn->meta::protocols::pure::v1_31_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection($extensions); - $pureConn->cast(@meta::pure::alloy::connections::RelationalDatabaseConnection); + $pureConn; } -function meta::protocols::pure::v1_31_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection(conn : meta::protocols::pure::v1_31_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1] , extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[1] +function meta::protocols::pure::v1_31_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection(conn : meta::protocols::pure::v1_31_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1] , extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[1] { let element = if($conn.element=='', // legend test server sends '' as element for testConnections , as store is not known before hand | ^Database(name='dummyDB'), @@ -83,20 +85,21 @@ function meta::protocols::pure::v1_31_0::transformation::toPureGraph::connection ); let type = extractEnumValue(meta::relational::runtime::DatabaseType, $conn.type); - - ^meta::pure::alloy::connections::RelationalDatabaseConnection( + + ^meta::core::runtime::ConnectionStore( + element=$element, + connection=^meta::external::store::relational::runtime::RelationalDatabaseConnection( timeZone = $conn.timeZone, quoteIdentifiers = $conn.quoteIdentifiers, - element = $element, type = $type, datasourceSpecification = $conn.datasourceSpecification->meta::protocols::pure::v1_31_0::transformation::toPureGraph::connection::transformDatasourceSpecification($extensions), authenticationStrategy = $conn.authenticationStrategy->meta::protocols::pure::v1_31_0::transformation::toPureGraph::connection::transformAuthenticationStrategy($extensions), postProcessors = $conn.postProcessors->meta::protocols::pure::v1_31_0::transformation::toPureGraph::connection::transformPostProcessors($extensions) - ); + )); } function meta::protocols::pure::v1_31_0::transformation::toPureGraph::connection::transformAuthenticationStrategy(a: meta::protocols::pure::v1_31_0::metamodel::store::relational::connection::alloy::authentication::AuthenticationStrategy[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy[1] -{ +{ $a->match($extensions.serializerExtension('v1_31_0')->cast(@meta::protocols::pure::v1_31_0::extension::SerializerExtension_v1_31_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_31_0::extension::RelationalModuleSerializerExtension).reverse_transfers_connection_transformAuthenticationStrategy->concatenate([ d:meta::protocols::pure::v1_31_0::metamodel::store::relational::connection::alloy::authentication::DelegatedKerberosAuthenticationStrategy[1] | ^meta::pure::alloy::connections::alloy::authentication::DelegatedKerberosAuthenticationStrategy( @@ -200,4 +203,4 @@ function meta::protocols::pure::v1_31_0::transformation::toPureGraph::connection ) ]) ) -} \ No newline at end of file +} 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/v1_31_0/invocations/execution_relational_testData.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_31_0/invocations/execution_relational_testData.pure index a5f2d580aa9..322ec0f28dd 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_31_0/invocations/execution_relational_testData.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_31_0/invocations/execution_relational_testData.pure @@ -18,6 +18,7 @@ import meta::protocols::pure::v1_31_0::invocation::execution::execute::*; import meta::protocols::pure::v1_31_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_31_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::alloy::metadataServer::*; @@ -94,7 +95,7 @@ function meta::protocols::pure::v1_31_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_31_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_31_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -164,7 +165,7 @@ function meta::protocols::pure::v1_31_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_31_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_31_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -235,7 +236,7 @@ function meta::protocols::pure::v1_31_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->map(element | + |let stores = $pureRuntime.connectionStores.element->map(element | $element->match([ store:meta::pure::store::Store[1] | $store->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() 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/v1_31_0/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/v1_31_0/transfers/connection_relational.pure index c1d009db3ac..f4fb6e35b5c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_31_0/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/v1_31_0/transfers/connection_relational.pure @@ -26,18 +26,18 @@ import meta::protocols::pure::v1_31_0::metamodel::store::relational::connection: import meta::protocols::pure::v1_31_0::metamodel::store::relational::element::*; import meta::protocols::pure::v1_31_0::transformation::fromPureGraph::model::*; -function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_31_0::metamodel::store::relational::connection::DatabaseConnection[1] +function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::external::store::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_31_0::metamodel::store::relational::connection::DatabaseConnection[1] { let _type = $otherConnection->class()->toString(); - let element = $otherConnection.element->match([d:meta::pure::store::Store[1]|$d->elementToPath(),s:String[1]|$s]); + let element = ''; let type = $otherConnection.type->toString(); - let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::pure::alloy::connections::RelationalDatabaseConnection), + let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::external::store::relational::runtime::RelationalDatabaseConnection), | [], | $otherConnection.queryPostProcessorsWithParameter->transformPostProcessors($extensions)); let alloyConnection = $otherConnection->match($extensions.serializerExtension('v1_31_0')->cast(@meta::protocols::pure::v1_31_0::extension::SerializerExtension_v1_31_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_31_0::extension::RelationalModuleSerializerExtension).transfers_connection_transformDatabaseConnection->map(f | $f->eval($_type, $element, $type, $postProcessorsWithParams))->concatenate([ - test:meta::relational::runtime::TestDatabaseConnection[1]| + test:meta::external::store::relational::runtime::TestDatabaseConnection[1]| ^RelationalDatabaseConnection( _type = 'RelationalDatabaseConnection', type = $type, @@ -54,10 +54,10 @@ function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connecti ), postProcessorWithParameter = $postProcessorsWithParams ), - relational:meta::pure::alloy::connections::RelationalDatabaseConnection[1] | + relational:meta::external::store::relational::runtime::RelationalDatabaseConnection[1] | let processors = transformPostProcessors($relational.postProcessors, $extensions); relational($type, $element, $relational.timeZone, $relational.quoteIdentifiers, $processors, $relational.datasourceSpecification, $relational.authenticationStrategy, $extensions);, - dbCon:meta::relational::runtime::DatabaseConnection[1]| + dbCon:meta::external::store::relational::runtime::DatabaseConnection[1]| ^meta::protocols::pure::v1_31_0::metamodel::store::relational::connection::DatabaseConnection( _type = $_type, timeZone = $dbCon.timeZone, 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/v1_31_0/transfers/metamodel_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/v1_31_0/transfers/metamodel_relational.pure index 8868b467ff4..c7d25733810 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_31_0/transfers/metamodel_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/v1_31_0/transfers/metamodel_relational.pure @@ -20,6 +20,7 @@ import meta::protocols::pure::v1_31_0::transformation::fromPureGraph::mapping::m import meta::protocols::pure::v1_31_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_31_0::transformation::fromPureGraph::modelToModel::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_31_0::transformation::fromPureGraph::domain::*; import meta::protocols::pure::v1_31_0::transformation::fromPureGraph::store::csv::*; import meta::pure::mapping::*; 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/v1_32_0/extension/extension_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/v1_32_0/extension/extension_relational.pure index 39ac59f5030..b2f1b21b73c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_32_0/extension/extension_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/v1_32_0/extension/extension_relational.pure @@ -19,6 +19,7 @@ import meta::protocols::pure::v1_32_0::transformation::fromPureGraph::store::csv import meta::protocols::pure::v1_32_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_32_0::transformation::fromPureGraph::store::relational::*; import meta::protocols::pure::v1_32_0::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::protocols::pure::v1_32_0::invocation::execution::execute::*; import meta::relational::mapping::*; @@ -33,7 +34,7 @@ function meta::protocols::pure::v1_32_0::extension::getRelationalExtension(type: ]->filter(f|$f.first == $type); assert($res->isNotEmpty(), |'Can\'t find the type '+$type); $res->at(0).second->eval(); - + } function meta::protocols::pure::v1_32_0::extension::transformTempTableStrategy(tempTableStrategy:meta::relational::graphFetch::executionPlan::TempTableStrategy[1], mapping:Mapping[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_32_0::metamodel::executionPlan::TempTableStrategy[1] @@ -79,7 +80,7 @@ function meta::protocols::pure::v1_32_0::extension::getRelationalExtension():met transfers_valueSpecification_transformAny = { inScope:String[*], open:Map>[1], m:Multiplicity[1], fe:FunctionExpression[0..1],useAppliedFunction:Boolean[1], extensions:meta::pure::extension::Extension[*] | [ - r:meta::pure::runtime::Runtime[1]| + r:meta::core::runtime::Runtime[1]| ^meta::protocols::pure::v1_32_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', @@ -296,7 +297,7 @@ function meta::protocols::pure::v1_32_0::extension::getRelationalExtension():met let rv = $resultJSON->fromJSON(meta::protocols::pure::v1_32_0::metamodel::invocation::execution::execute::RelationalTDSResult, $extendedJSONDeserializationConfig); $rv->cast(@meta::protocols::pure::v1_32_0::metamodel::invocation::execution::execute::RelationalTDSResult)->toOne()->processTDSResult($extensions);} ), - + pair (builderType:String[1]| $builderType->isNotEmpty() && $builderType->toOne()=='classBuilder', {resultJSON:String[1], result:JSONObject[1], m:Mapping[1], pureRuntime:Runtime[1],extendedJSONDeserializationConfig:ExtendedJSONDeserializationConfig[1], context:ExecutionContext[0..1]| let r = $resultJSON->fromJSON(meta::protocols::pure::v1_32_0::metamodel::invocation::execution::execute::RelationalClassResult, $extendedJSONDeserializationConfig); @@ -312,7 +313,7 @@ function meta::protocols::pure::v1_32_0::extension::getRelationalExtension():met ]} , - invocation_execution_transformContext = + invocation_execution_transformContext = [ r:meta::relational::runtime::RelationalExecutionContext[1]| let importDataFlowFkCols = if($r.importDataFlowFksByTable->isEmpty(), |[], @@ -342,10 +343,10 @@ function meta::protocols::pure::v1_32_0::extension::getRelationalExtension():met ]}, transfers_store_transformConnection2 = {extensions:meta::pure::extension::Extension[*] | [ - db:meta::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) + db:meta::external::store::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) ]}, scan_buildPureModelAsText_getAllElementsFromMapping = {stores : meta::pure::store::Store[*] | - $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) + $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) } ) } @@ -386,4 +387,4 @@ function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::executio identifierForGetter = $c.identifierForGetter, parametersForGetter = $c.parametersForGetter ) -} \ No newline at end of file +} 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/v1_32_0/invocations/execution_relation_executeInRelationalDb.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_32_0/invocations/execution_relation_executeInRelationalDb.pure index 651425ab24a..01fd52d115c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_32_0/invocations/execution_relation_executeInRelationalDb.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_32_0/invocations/execution_relation_executeInRelationalDb.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::alloy::metadataServer::*; import meta::pure::functions::io::http::*; import meta::protocols::pure::v1_32_0::invocation::execution::executeInRelationalDb::*; @@ -21,9 +22,9 @@ function meta::protocols::pure::v1_32_0::invocation::execution::executeInRelatio { let conn1= $conn->meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) ->cast(@meta::protocols::pure::v1_32_0::metamodel::store::relational::connection::RelationalDatabaseConnection); - + let input= ^ExecuteInRelationalDbInput(sqls=$sqls, connection = $conn1)->alloyToJSON(); - + let resp= executeHTTPRaw(^URL(host=$host, port=$port , path='/api/pure/v1/utilities/tests/executeInRelationalDb'), HTTPMethod.POST , 'application/json', @@ -41,4 +42,4 @@ Class meta::protocols::pure::v1_32_0::invocation::execution::executeInRelational { connection : meta::protocols::pure::v1_32_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1]; sqls : String[*]; -} \ No newline at end of file +} 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/v1_32_0/invocations/execution_relational_execute.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_32_0/invocations/execution_relational_execute.pure index b9e71fc8edc..937110a3e51 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_32_0/invocations/execution_relational_execute.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_32_0/invocations/execution_relational_execute.pure @@ -19,12 +19,14 @@ import meta::pure::extension::*; import meta::relational::extension::*; import meta::protocols::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_32_0::transformation::fromPureGraph::context::*; import meta::pure::router::routing::*; import meta::protocols::pure::v1_32_0::invocation::execution::execute::*; import meta::protocols::pure::v1_32_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_32_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::pure::milestoning::*; @@ -172,7 +174,10 @@ function meta::protocols::pure::v1_32_0::invocation::execution::execute::generat function meta::protocols::pure::v1_32_0::invocation::execution::execute::generateAlloyRelationalStoreObjectReference(mapping:Mapping[1], set:RelationalInstanceSetImplementation[1], sets:SetImplementation[*], runtime:Runtime[1], pkMap:Map[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_32_0::metamodel::objectReference::AlloyRelationalStoreObjectReference[1] { let store = $set.stores->toOne(); - let databaseConnection = $runtime->connectionByElement($store->toOne())->meta::protocols::pure::v1_32_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->cast(@meta::protocols::pure::v1_32_0::metamodel::store::relational::connection::DatabaseConnection); + let conn = $runtime->connectionByElement($store->toOne()); + let connectionStore = $runtime.connectionStores->filter(c|$c.connection==$conn); + let databaseConnection = $connectionStore->map(ce|$ce.connection->meta::protocols::pure::v1_32_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$ce.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) + ->toOne()->cast(@meta::protocols::pure::v1_32_0::metamodel::store::relational::connection::DatabaseConnection); let setIdx = if($sets->size() == 1, | '', | '_' + $sets->indexOf($set)->toString()); let transformedPkMap = meta::relational::mapping::resolvePrimaryKeysNames($set->cast(@RelationalInstanceSetImplementation), $pkMap, $setIdx, true, $extensions); @@ -190,10 +195,10 @@ function meta::protocols::pure::v1_32_0::invocation::execution::execute::decodeA { let parsedObjectRef = meta::alloy::objectReference::decodeAndParseAlloyObjectReference($ref); let type = $parsedObjectRef->get('type')->cast(@String)->toOne(); - + if($type->toLower() == 'relational', | meta::protocols::pure::v1_32_0::invocation::execution::execute::getAlloyRelationalStoreObjectReference($parsedObjectRef), - | fail('Not Supported Yet!!'); + | fail('Not Supported Yet!!'); ^meta::protocols::pure::v1_32_0::metamodel::objectReference::AlloyObjectReference ( type = meta::protocols::pure::v1_32_0::metamodel::objectReference::AlloyObjectReferenceType.Relational, 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/v1_32_0/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/v1_32_0/invocations/execution_relational_testConnection.pure index 1f48cf93997..fe83be06cdc 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_32_0/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/v1_32_0/invocations/execution_relational_testConnection.pure @@ -13,6 +13,8 @@ // limitations under the License. import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::protocols::pure::v1_32_0::invocation::execution::testConnection::*; import meta::json::*; @@ -29,7 +31,7 @@ import meta::protocols::pure::v1_32_0::metamodel::store::relational::connection: import meta::protocols::pure::v1_32_0::metamodel::store::relational::element::*; import meta::protocols::pure::v1_32_0::transformation::toPureGraph::model::*; -function meta::protocols::pure::v1_32_0::invocation::execution::testConnection::getTestConnection(dbType:DatabaseType[1], host:String[1], port:Integer[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[0..1] +function meta::protocols::pure::v1_32_0::invocation::execution::testConnection::getTestConnection(dbType:DatabaseType[1], host:String[1], port:Integer[1], extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[0..1] { let resp= executeHTTPRaw(^URL(host=$host, port=$port , path='/api/pure/v1/utilities/tests/connections/'+ $dbType->toString()), HTTPMethod.GET , @@ -39,18 +41,18 @@ function meta::protocols::pure::v1_32_0::invocation::execution::testConnection:: if($resp.statusCode != 200, | println($resp.statusCode->toString()+' \''+$resp.entity->replace('\\n', '\n')->replace('\\t', '')+'\''), - | + | let res = $resp.entity->toOne()->toString(); $res -> meta::protocols::pure::v1_32_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection($extensions); ); } -function meta::protocols::pure::v1_32_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection(connectionJSON:String[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[0..1] +function meta::protocols::pure::v1_32_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection(connectionJSON:String[1], extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[0..1] { - let protocolConn = meta::json::fromJSON($connectionJSON, + let protocolConn = meta::json::fromJSON($connectionJSON, meta::protocols::pure::v1_32_0::metamodel::store::relational::connection::RelationalDatabaseConnection , - ^JSONDeserializationConfig( + ^JSONDeserializationConfig( typeKeyName='_type', failOnUnknownProperties=false , retainTypeField=true, @@ -71,11 +73,11 @@ function meta::protocols::pure::v1_32_0::transformation::toPureGraph::connection ) ); let pureConn = $protocolConn->meta::protocols::pure::v1_32_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection($extensions); - $pureConn->cast(@meta::pure::alloy::connections::RelationalDatabaseConnection); + $pureConn; } -function meta::protocols::pure::v1_32_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection(conn : meta::protocols::pure::v1_32_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1] , extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[1] +function meta::protocols::pure::v1_32_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection(conn : meta::protocols::pure::v1_32_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1] , extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[1] { let element = if($conn.element=='', // legend test server sends '' as element for testConnections , as store is not known before hand | ^Database(name='dummyDB'), @@ -83,20 +85,21 @@ function meta::protocols::pure::v1_32_0::transformation::toPureGraph::connection ); let type = extractEnumValue(meta::relational::runtime::DatabaseType, $conn.type); - - ^meta::pure::alloy::connections::RelationalDatabaseConnection( + + ^meta::core::runtime::ConnectionStore( + element=$element, + connection=^meta::external::store::relational::runtime::RelationalDatabaseConnection( timeZone = $conn.timeZone, quoteIdentifiers = $conn.quoteIdentifiers, - element = $element, type = $type, datasourceSpecification = $conn.datasourceSpecification->meta::protocols::pure::v1_32_0::transformation::toPureGraph::connection::transformDatasourceSpecification($extensions), authenticationStrategy = $conn.authenticationStrategy->meta::protocols::pure::v1_32_0::transformation::toPureGraph::connection::transformAuthenticationStrategy($extensions), postProcessors = $conn.postProcessors->meta::protocols::pure::v1_32_0::transformation::toPureGraph::connection::transformPostProcessors($extensions) - ); + )); } function meta::protocols::pure::v1_32_0::transformation::toPureGraph::connection::transformAuthenticationStrategy(a: meta::protocols::pure::v1_32_0::metamodel::store::relational::connection::alloy::authentication::AuthenticationStrategy[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy[1] -{ +{ $a->match($extensions.serializerExtension('v1_32_0')->cast(@meta::protocols::pure::v1_32_0::extension::SerializerExtension_v1_32_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_32_0::extension::RelationalModuleSerializerExtension).reverse_transfers_connection_transformAuthenticationStrategy->concatenate([ d:meta::protocols::pure::v1_32_0::metamodel::store::relational::connection::alloy::authentication::DelegatedKerberosAuthenticationStrategy[1] | ^meta::pure::alloy::connections::alloy::authentication::DelegatedKerberosAuthenticationStrategy( @@ -200,4 +203,4 @@ function meta::protocols::pure::v1_32_0::transformation::toPureGraph::connection ) ]) ) -} \ No newline at end of file +} 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/v1_32_0/invocations/execution_relational_testData.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_32_0/invocations/execution_relational_testData.pure index 602e4a9e27c..ab0d0f99135 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_32_0/invocations/execution_relational_testData.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_32_0/invocations/execution_relational_testData.pure @@ -18,6 +18,7 @@ import meta::protocols::pure::v1_32_0::invocation::execution::execute::*; import meta::protocols::pure::v1_32_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_32_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::alloy::metadataServer::*; @@ -94,7 +95,7 @@ function meta::protocols::pure::v1_32_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_32_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_32_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -164,7 +165,7 @@ function meta::protocols::pure::v1_32_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_32_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_32_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -235,7 +236,7 @@ function meta::protocols::pure::v1_32_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->map(element | + |let stores = $pureRuntime.connectionStores.element->map(element | $element->match([ store:meta::pure::store::Store[1] | $store->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() 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/v1_32_0/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/v1_32_0/transfers/connection_relational.pure index 8e3ca145c53..c1744661c89 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_32_0/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/v1_32_0/transfers/connection_relational.pure @@ -26,18 +26,18 @@ import meta::protocols::pure::v1_32_0::metamodel::store::relational::connection: import meta::protocols::pure::v1_32_0::metamodel::store::relational::element::*; import meta::protocols::pure::v1_32_0::transformation::fromPureGraph::model::*; -function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_32_0::metamodel::store::relational::connection::DatabaseConnection[1] +function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::external::store::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_32_0::metamodel::store::relational::connection::DatabaseConnection[1] { let _type = $otherConnection->class()->toString(); - let element = $otherConnection.element->match([d:meta::pure::store::Store[1]|$d->elementToPath(),s:String[1]|$s]); + let element = ''; let type = $otherConnection.type->toString(); - let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::pure::alloy::connections::RelationalDatabaseConnection), + let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::external::store::relational::runtime::RelationalDatabaseConnection), | [], | $otherConnection.queryPostProcessorsWithParameter->transformPostProcessors($extensions)); let alloyConnection = $otherConnection->match($extensions.serializerExtension('v1_32_0')->cast(@meta::protocols::pure::v1_32_0::extension::SerializerExtension_v1_32_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_32_0::extension::RelationalModuleSerializerExtension).transfers_connection_transformDatabaseConnection->map(f | $f->eval($_type, $element, $type, $postProcessorsWithParams))->concatenate([ - test:meta::relational::runtime::TestDatabaseConnection[1]| + test:meta::external::store::relational::runtime::TestDatabaseConnection[1]| ^RelationalDatabaseConnection( _type = 'RelationalDatabaseConnection', type = $type, @@ -54,10 +54,10 @@ function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connecti ), postProcessorWithParameter = $postProcessorsWithParams ), - relational:meta::pure::alloy::connections::RelationalDatabaseConnection[1] | + relational:meta::external::store::relational::runtime::RelationalDatabaseConnection[1] | let processors = transformPostProcessors($relational.postProcessors, $extensions); relational($type, $element, $relational.timeZone, $relational.quoteIdentifiers, $processors, $relational.datasourceSpecification, $relational.authenticationStrategy, $extensions);, - dbCon:meta::relational::runtime::DatabaseConnection[1]| + dbCon:meta::external::store::relational::runtime::DatabaseConnection[1]| ^meta::protocols::pure::v1_32_0::metamodel::store::relational::connection::DatabaseConnection( _type = $_type, timeZone = $dbCon.timeZone, 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/v1_32_0/transfers/metamodel_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/v1_32_0/transfers/metamodel_relational.pure index c0d2e2a93d7..5ff39ceb94f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_32_0/transfers/metamodel_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/v1_32_0/transfers/metamodel_relational.pure @@ -20,6 +20,7 @@ import meta::protocols::pure::v1_32_0::transformation::fromPureGraph::mapping::m import meta::protocols::pure::v1_32_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_32_0::transformation::fromPureGraph::modelToModel::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::v1_32_0::transformation::fromPureGraph::domain::*; import meta::protocols::pure::v1_32_0::transformation::fromPureGraph::store::csv::*; import meta::pure::mapping::*; 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/v1_33_0/extension/extension_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/v1_33_0/extension/extension_relational.pure index 453d71937bd..38d40617796 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/extension/extension_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/v1_33_0/extension/extension_relational.pure @@ -20,6 +20,7 @@ import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::*; import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::store::relational::*; import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::context::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::protocols::pure::v1_33_0::invocation::execution::execute::*; import meta::relational::mapping::*; import meta::pure::mapping::*; @@ -80,7 +81,7 @@ function meta::protocols::pure::v1_33_0::extension::getRelationalExtension():met transfers_valueSpecification_transformAny = { inScope:String[*], open:Map>[1], m:Multiplicity[1], fe:FunctionExpression[0..1],useAppliedFunction:Boolean[1], extensions:meta::pure::extension::Extension[*] | [ - r:meta::pure::runtime::Runtime[1]| + r:meta::core::runtime::Runtime[1]| ^meta::protocols::pure::v1_33_0::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', @@ -343,7 +344,7 @@ function meta::protocols::pure::v1_33_0::extension::getRelationalExtension():met ]}, transfers_store_transformConnection2 = {extensions:meta::pure::extension::Extension[*] | [ - db:meta::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) + db:meta::external::store::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) ]}, scan_buildPureModelAsText_getAllElementsFromMapping = {stores : meta::pure::store::Store[*] | $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[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/v1_33_0/invocations/execution_relation_executeInRelationalDb.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/invocations/execution_relation_executeInRelationalDb.pure index eeb2d110739..956450b6ef6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/invocations/execution_relation_executeInRelationalDb.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/invocations/execution_relation_executeInRelationalDb.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::alloy::metadataServer::*; import meta::pure::functions::io::http::*; import meta::protocols::pure::v1_33_0::invocation::execution::executeInRelationalDb::*; 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/v1_33_0/invocations/execution_relational_execute.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/invocations/execution_relational_execute.pure index eff5a17da6b..934024937c8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/invocations/execution_relational_execute.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/invocations/execution_relational_execute.pure @@ -26,6 +26,7 @@ import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::pure::mapping::*; import meta::pure::milestoning::*; import meta::alloy::metadataServer::*; @@ -172,7 +173,8 @@ function meta::protocols::pure::v1_33_0::invocation::execution::execute::generat function meta::protocols::pure::v1_33_0::invocation::execution::execute::generateAlloyRelationalStoreObjectReference(mapping:Mapping[1], set:RelationalInstanceSetImplementation[1], sets:SetImplementation[*], runtime:Runtime[1], pkMap:Map[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::objectReference::AlloyRelationalStoreObjectReference[1] { let store = $set.stores->toOne(); - let databaseConnection = $runtime->connectionByElement($store->toOne())->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->cast(@meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::DatabaseConnection); + let storeConnection = $runtime->connectionByElement($store->toOne()); + let databaseConnection = $runtime.connectionStores->filter(c|$c.connection==$storeConnection)->map(conn|$conn.connection->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::runtime::transformConnection($extensions)->cast(@meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::DatabaseConnection)->map(c|^$c(element=$conn.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s]))))->toOne(); let setIdx = if($sets->size() == 1, | '', | '_' + $sets->indexOf($set)->toString()); let transformedPkMap = meta::relational::mapping::resolvePrimaryKeysNames($set->cast(@RelationalInstanceSetImplementation), $pkMap, $setIdx, true, $extensions); 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/v1_33_0/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/v1_33_0/invocations/execution_relational_testConnection.pure index e7902265fa8..baec4cb25e3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/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/v1_33_0/invocations/execution_relational_testConnection.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::protocols::pure::v1_33_0::invocation::execution::testConnection::*; import meta::json::*; @@ -29,7 +30,7 @@ import meta::protocols::pure::v1_33_0::metamodel::store::relational::connection: import meta::protocols::pure::v1_33_0::metamodel::store::relational::element::*; import meta::protocols::pure::v1_33_0::transformation::toPureGraph::model::*; -function meta::protocols::pure::v1_33_0::invocation::execution::testConnection::getTestConnection(dbType:DatabaseType[1], host:String[1], port:Integer[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[0..1] +function meta::protocols::pure::v1_33_0::invocation::execution::testConnection::getTestConnection(dbType:DatabaseType[1], host:String[1], port:Integer[1], extensions:meta::pure::extension::Extension[*]):meta::external::store::relational::runtime::RelationalDatabaseConnection[0..1] { let resp= executeHTTPRaw(^URL(host=$host, port=$port , path='/api/pure/v1/utilities/tests/connections/'+ $dbType->toString()), HTTPMethod.GET , @@ -46,7 +47,7 @@ function meta::protocols::pure::v1_33_0::invocation::execution::testConnection:: } -function meta::protocols::pure::v1_33_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection(connectionJSON:String[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[0..1] +function meta::protocols::pure::v1_33_0::transformation::toPureGraph::connection::buildRelationalDatabaseConnection(connectionJSON:String[1], extensions:meta::pure::extension::Extension[*]):meta::external::store::relational::runtime::RelationalDatabaseConnection[0..1] { let protocolConn = meta::json::fromJSON($connectionJSON, meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::RelationalDatabaseConnection , @@ -71,11 +72,11 @@ function meta::protocols::pure::v1_33_0::transformation::toPureGraph::connection ) ); let pureConn = $protocolConn->meta::protocols::pure::v1_33_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection($extensions); - $pureConn->cast(@meta::pure::alloy::connections::RelationalDatabaseConnection); + $pureConn->cast(@meta::external::store::relational::runtime::RelationalDatabaseConnection); } -function meta::protocols::pure::v1_33_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection(conn : meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1] , extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[1] +function meta::protocols::pure::v1_33_0::transformation::toPureGraph::connection::transformRelationalDatabaseConnection(conn : meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::RelationalDatabaseConnection[1] , extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[1] { let element = if($conn.element=='', // legend test server sends '' as element for testConnections , as store is not known before hand | ^Database(name='dummyDB'), @@ -84,15 +85,17 @@ function meta::protocols::pure::v1_33_0::transformation::toPureGraph::connection let type = extractEnumValue(meta::relational::runtime::DatabaseType, $conn.type); - ^meta::pure::alloy::connections::RelationalDatabaseConnection( + ^meta::core::runtime::ConnectionStore( + element = $element, + connection = + ^meta::external::store::relational::runtime::RelationalDatabaseConnection( timeZone = $conn.timeZone, quoteIdentifiers = $conn.quoteIdentifiers, - element = $element, type = $type, datasourceSpecification = $conn.datasourceSpecification->meta::protocols::pure::v1_33_0::transformation::toPureGraph::connection::transformDatasourceSpecification($extensions), authenticationStrategy = $conn.authenticationStrategy->meta::protocols::pure::v1_33_0::transformation::toPureGraph::connection::transformAuthenticationStrategy($extensions), postProcessors = $conn.postProcessors->meta::protocols::pure::v1_33_0::transformation::toPureGraph::connection::transformPostProcessors($extensions) - ); + )); } function meta::protocols::pure::v1_33_0::transformation::toPureGraph::connection::transformAuthenticationStrategy(a: meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::alloy::authentication::AuthenticationStrategy[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy[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/v1_33_0/invocations/execution_relational_testData.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/invocations/execution_relational_testData.pure index dbeae333f2e..d2b5220fd10 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/invocations/execution_relational_testData.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/invocations/execution_relational_testData.pure @@ -19,6 +19,7 @@ import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::*; import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::pure::mapping::*; import meta::alloy::metadataServer::*; import meta::json::*; @@ -94,7 +95,7 @@ function meta::protocols::pure::v1_33_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_33_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_33_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -164,7 +165,7 @@ function meta::protocols::pure::v1_33_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::v1_33_0::metamodel::PackageableElementPointer(type=meta::protocols::pure::v1_33_0::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -235,7 +236,7 @@ function meta::protocols::pure::v1_33_0::invocation::execution::testDataGenerati runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->map(element | + |let stores = $pureRuntime.connectionStores.element->map(element | $element->match([ store:meta::pure::store::Store[1] | $store->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() 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/v1_33_0/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/v1_33_0/transfers/connection_relational.pure index 5d1edd142ac..b82380e84ab 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/protocols/pure/v1_33_0/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/v1_33_0/transfers/connection_relational.pure @@ -26,18 +26,18 @@ import meta::protocols::pure::v1_33_0::metamodel::store::relational::connection: import meta::protocols::pure::v1_33_0::metamodel::store::relational::element::*; import meta::protocols::pure::v1_33_0::transformation::fromPureGraph::model::*; -function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::DatabaseConnection[1] +function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::external::store::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::DatabaseConnection[1] { let _type = $otherConnection->class()->toString(); - let element = $otherConnection.element->match([d:meta::pure::store::Store[1]|$d->elementToPath(),s:String[1]|$s]); + let element = ''; let type = $otherConnection.type->toString(); - let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::pure::alloy::connections::RelationalDatabaseConnection), + let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::external::store::relational::runtime::RelationalDatabaseConnection), | [], | $otherConnection.queryPostProcessorsWithParameter->transformPostProcessors($extensions)); let alloyConnection = $otherConnection->match($extensions.serializerExtension('v1_33_0')->cast(@meta::protocols::pure::v1_33_0::extension::SerializerExtension_v1_33_0).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::v1_33_0::extension::RelationalModuleSerializerExtension).transfers_connection_transformDatabaseConnection->map(f | $f->eval($_type, $element, $type, $postProcessorsWithParams))->concatenate([ - test:meta::relational::runtime::TestDatabaseConnection[1]| + test:meta::external::store::relational::runtime::TestDatabaseConnection[1]| ^RelationalDatabaseConnection( _type = 'RelationalDatabaseConnection', type = $type, @@ -54,10 +54,10 @@ function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connecti ), postProcessorWithParameter = $postProcessorsWithParams ), - relational:meta::pure::alloy::connections::RelationalDatabaseConnection[1] | + relational:meta::external::store::relational::runtime::RelationalDatabaseConnection[1] | let processors = transformPostProcessors($relational.postProcessors, $extensions); relational($type, $element, $relational.timeZone, $relational.quoteIdentifiers, $processors, $relational.datasourceSpecification, $relational.authenticationStrategy, $extensions);, - dbCon:meta::relational::runtime::DatabaseConnection[1]| + dbCon:meta::external::store::relational::runtime::DatabaseConnection[1]| ^meta::protocols::pure::v1_33_0::metamodel::store::relational::connection::DatabaseConnection( _type = $_type, timeZone = $dbCon.timeZone, 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/extension/extension_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/extension/extension_relational.pure index 4c6b6b77565..187f6556996 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/extension/extension_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/extension/extension_relational.pure @@ -19,6 +19,7 @@ import meta::protocols::pure::vX_X_X::transformation::fromPureGraph::store::csv: import meta::protocols::pure::vX_X_X::transformation::fromPureGraph::store::*; import meta::protocols::pure::vX_X_X::transformation::fromPureGraph::store::relational::*; import meta::protocols::pure::vX_X_X::transformation::fromPureGraph::context::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::protocols::pure::vX_X_X::invocation::execution::execute::*; import meta::relational::mapping::*; @@ -33,7 +34,7 @@ function meta::protocols::pure::vX_X_X::extension::getRelationalExtension(type:S ]->filter(f|$f.first == $type); assert($res->isNotEmpty(), |'Can\'t find the type '+$type); $res->at(0).second->eval(); - + } function meta::protocols::pure::vX_X_X::extension::transformTempTableStrategy(tempTableStrategy:meta::relational::graphFetch::executionPlan::TempTableStrategy[1], mapping:Mapping[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::vX_X_X::metamodel::executionPlan::TempTableStrategy[1] @@ -80,8 +81,8 @@ function meta::protocols::pure::vX_X_X::extension::getRelationalExtension():meta transfers_valueSpecification_transformAny = { inScope:String[*], open:Map>[1], m:Multiplicity[1], fe:FunctionExpression[0..1],useAppliedFunction:Boolean[1], extensions:meta::pure::extension::Extension[*] | [ - r:meta::pure::runtime::Runtime[1]| - ^meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ClassInstance + r:meta::core::runtime::Runtime[1]| + ^meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'runtimeInstance', @@ -91,7 +92,7 @@ function meta::protocols::pure::vX_X_X::extension::getRelationalExtension():meta ) ), e:meta::pure::runtime::ExecutionContext[1]| - ^meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ClassInstance + ^meta::protocols::pure::vX_X_X::metamodel::valueSpecification::ClassInstance ( _type = 'classInstance', type = 'executionContextInstance', @@ -297,7 +298,7 @@ function meta::protocols::pure::vX_X_X::extension::getRelationalExtension():meta let rv = $resultJSON->fromJSON(meta::protocols::pure::vX_X_X::metamodel::invocation::execution::execute::RelationalTDSResult, $extendedJSONDeserializationConfig); $rv->cast(@meta::protocols::pure::vX_X_X::metamodel::invocation::execution::execute::RelationalTDSResult)->toOne()->processTDSResult($extensions);} ), - + pair (builderType:String[1]| $builderType->isNotEmpty() && $builderType->toOne()=='classBuilder', {resultJSON:String[1], result:JSONObject[1], m:Mapping[1], pureRuntime:Runtime[1],extendedJSONDeserializationConfig:ExtendedJSONDeserializationConfig[1], context:ExecutionContext[0..1]| let r = $resultJSON->fromJSON(meta::protocols::pure::vX_X_X::metamodel::invocation::execution::execute::RelationalClassResult, $extendedJSONDeserializationConfig); @@ -313,7 +314,7 @@ function meta::protocols::pure::vX_X_X::extension::getRelationalExtension():meta ]} , - invocation_execution_transformContext = + invocation_execution_transformContext = [ r:meta::relational::runtime::RelationalExecutionContext[1]| let importDataFlowFkCols = if($r.importDataFlowFksByTable->isEmpty(), |[], @@ -343,10 +344,10 @@ function meta::protocols::pure::vX_X_X::extension::getRelationalExtension():meta ]}, transfers_store_transformConnection2 = {extensions:meta::pure::extension::Extension[*] | [ - db:meta::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) + db:meta::external::store::relational::runtime::DatabaseConnection[1] | $db->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) ]}, scan_buildPureModelAsText_getAllElementsFromMapping = {stores : meta::pure::store::Store[*] | - $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) + $stores->map(s|$s->concatenate($s->match([d:meta::relational::metamodel::Database[1]|$d.joins->map(j|$j.operation->meta::relational::functions::pureToSqlQuery::extractStore()),a:Any[1]|[]]))) } ) } @@ -387,4 +388,4 @@ function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::execution identifierForGetter = $c.identifierForGetter, parametersForGetter = $c.parametersForGetter ) -} \ No newline at end of file +} 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_relation_executeInRelationalDb.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_relation_executeInRelationalDb.pure index 2ec03d755d9..b1221875da4 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_relation_executeInRelationalDb.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_relation_executeInRelationalDb.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::alloy::metadataServer::*; import meta::pure::functions::io::http::*; import meta::protocols::pure::vX_X_X::invocation::execution::executeInRelationalDb::*; @@ -21,9 +22,9 @@ function meta::protocols::pure::vX_X_X::invocation::execution::executeInRelation { let conn1= $conn->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connection::transformDatabaseConnection($extensions) ->cast(@meta::protocols::pure::vX_X_X::metamodel::store::relational::connection::RelationalDatabaseConnection); - + let input= ^ExecuteInRelationalDbInput(sqls=$sqls, connection = $conn1)->alloyToJSON(); - + let resp= executeHTTPRaw(^URL(host=$host, port=$port , path='/api/pure/v1/utilities/tests/executeInRelationalDb'), HTTPMethod.POST , 'application/json', @@ -41,4 +42,4 @@ Class meta::protocols::pure::vX_X_X::invocation::execution::executeInRelationalD { connection : meta::protocols::pure::vX_X_X::metamodel::store::relational::connection::RelationalDatabaseConnection[1]; sqls : String[*]; -} \ No newline at end of file +} 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_execute.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_execute.pure index a5f1161bc8d..b30c8192ce2 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_execute.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_execute.pure @@ -19,12 +19,14 @@ import meta::pure::extension::*; import meta::relational::extension::*; import meta::protocols::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::vX_X_X::transformation::fromPureGraph::context::*; import meta::pure::router::routing::*; import meta::protocols::pure::vX_X_X::invocation::execution::execute::*; import meta::protocols::pure::vX_X_X::transformation::fromPureGraph::*; import meta::protocols::pure::vX_X_X::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::pure::milestoning::*; @@ -172,7 +174,10 @@ function meta::protocols::pure::vX_X_X::invocation::execution::execute::generate function meta::protocols::pure::vX_X_X::invocation::execution::execute::generateAlloyRelationalStoreObjectReference(mapping:Mapping[1], set:RelationalInstanceSetImplementation[1], sets:SetImplementation[*], runtime:Runtime[1], pkMap:Map[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::vX_X_X::metamodel::objectReference::AlloyRelationalStoreObjectReference[1] { let store = $set.stores->toOne(); - let databaseConnection = $runtime->connectionByElement($store->toOne())->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::runtime::transformConnection($extensions)->cast(@meta::protocols::pure::vX_X_X::metamodel::store::relational::connection::DatabaseConnection); + let conn = $runtime->connectionByElement($store->toOne()); + let connectionStore = $runtime.connectionStores->filter(c|$c.connection==$conn); + let databaseConnection = $connectionStore->map(ce|$ce.connection->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::runtime::transformConnection($extensions)->map(c|^$c(element=$ce.element->match([d:meta::pure::store::Store[1]|if($d->instanceOf(meta::external::store::model::ModelStore),|'ModelStore',|$d->elementToPath()),s:String[1]|$s])))) + ->toOne()->cast(@meta::protocols::pure::vX_X_X::metamodel::store::relational::connection::DatabaseConnection); let setIdx = if($sets->size() == 1, | '', | '_' + $sets->indexOf($set)->toString()); let transformedPkMap = meta::relational::mapping::resolvePrimaryKeysNames($set->cast(@RelationalInstanceSetImplementation), $pkMap, $setIdx, true, $extensions); @@ -190,10 +195,10 @@ function meta::protocols::pure::vX_X_X::invocation::execution::execute::decodeAn { let parsedObjectRef = meta::alloy::objectReference::decodeAndParseAlloyObjectReference($ref); let type = $parsedObjectRef->get('type')->cast(@String)->toOne(); - + if($type->toLower() == 'relational', | meta::protocols::pure::vX_X_X::invocation::execution::execute::getAlloyRelationalStoreObjectReference($parsedObjectRef), - | fail('Not Supported Yet!!'); + | fail('Not Supported Yet!!'); ^meta::protocols::pure::vX_X_X::metamodel::objectReference::AlloyObjectReference ( type = meta::protocols::pure::vX_X_X::metamodel::objectReference::AlloyObjectReferenceType.Relational, 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 e2e5de93c7f..009607d477c 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 @@ -13,6 +13,8 @@ // limitations under the License. import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::protocols::pure::vX_X_X::invocation::execution::testConnection::*; import meta::json::*; @@ -29,7 +31,7 @@ import meta::protocols::pure::vX_X_X::metamodel::store::relational::connection:: import meta::protocols::pure::vX_X_X::metamodel::store::relational::element::*; import meta::protocols::pure::vX_X_X::transformation::toPureGraph::model::*; -function meta::protocols::pure::vX_X_X::invocation::execution::testConnection::getTestConnection(dbType:DatabaseType[1], host:String[1], port:Integer[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[0..1] +function meta::protocols::pure::vX_X_X::invocation::execution::testConnection::getTestConnection(dbType:DatabaseType[1], host:String[1], port:Integer[1], extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[0..1] { let resp= executeHTTPRaw(^URL(host=$host, port=$port , path='/api/pure/v1/utilities/tests/connections/'+ $dbType->toString()), HTTPMethod.GET , @@ -39,18 +41,18 @@ function meta::protocols::pure::vX_X_X::invocation::execution::testConnection::g if($resp.statusCode != 200, | println($resp.statusCode->toString()+' \''+$resp.entity->replace('\\n', '\n')->replace('\\t', '')+'\''), - | + | let res = $resp.entity->toOne()->toString(); $res -> meta::protocols::pure::vX_X_X::transformation::toPureGraph::connection::buildRelationalDatabaseConnection($extensions); ); } -function meta::protocols::pure::vX_X_X::transformation::toPureGraph::connection::buildRelationalDatabaseConnection(connectionJSON:String[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[0..1] +function meta::protocols::pure::vX_X_X::transformation::toPureGraph::connection::buildRelationalDatabaseConnection(connectionJSON:String[1], extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[0..1] { - let protocolConn = meta::json::fromJSON($connectionJSON, + let protocolConn = meta::json::fromJSON($connectionJSON, meta::protocols::pure::vX_X_X::metamodel::store::relational::connection::RelationalDatabaseConnection , - ^JSONDeserializationConfig( + ^JSONDeserializationConfig( typeKeyName='_type', failOnUnknownProperties=false , retainTypeField=true, @@ -71,11 +73,11 @@ function meta::protocols::pure::vX_X_X::transformation::toPureGraph::connection: ) ); let pureConn = $protocolConn->meta::protocols::pure::vX_X_X::transformation::toPureGraph::connection::transformRelationalDatabaseConnection($extensions); - $pureConn->cast(@meta::pure::alloy::connections::RelationalDatabaseConnection); + $pureConn; } -function meta::protocols::pure::vX_X_X::transformation::toPureGraph::connection::transformRelationalDatabaseConnection(conn : meta::protocols::pure::vX_X_X::metamodel::store::relational::connection::RelationalDatabaseConnection[1] , extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::RelationalDatabaseConnection[1] +function meta::protocols::pure::vX_X_X::transformation::toPureGraph::connection::transformRelationalDatabaseConnection(conn : meta::protocols::pure::vX_X_X::metamodel::store::relational::connection::RelationalDatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::core::runtime::ConnectionStore[0..1] { let element = if($conn.element=='', // legend test server sends '' as element for testConnections , as store is not known before hand | ^Database(name='dummyDB'), @@ -83,20 +85,21 @@ function meta::protocols::pure::vX_X_X::transformation::toPureGraph::connection: ); let type = extractEnumValue(meta::relational::runtime::DatabaseType, $conn.type); - - ^meta::pure::alloy::connections::RelationalDatabaseConnection( + + ^meta::core::runtime::ConnectionStore( + element=$element, + connection=^meta::external::store::relational::runtime::RelationalDatabaseConnection( timeZone = $conn.timeZone, quoteIdentifiers = $conn.quoteIdentifiers, - element = $element, type = $type, datasourceSpecification = $conn.datasourceSpecification->meta::protocols::pure::vX_X_X::transformation::toPureGraph::connection::transformDatasourceSpecification($extensions), authenticationStrategy = $conn.authenticationStrategy->meta::protocols::pure::vX_X_X::transformation::toPureGraph::connection::transformAuthenticationStrategy($extensions), postProcessors = $conn.postProcessors->meta::protocols::pure::vX_X_X::transformation::toPureGraph::connection::transformPostProcessors($extensions) - ); + )); } function meta::protocols::pure::vX_X_X::transformation::toPureGraph::connection::transformAuthenticationStrategy(a: meta::protocols::pure::vX_X_X::metamodel::store::relational::connection::alloy::authentication::AuthenticationStrategy[1], extensions:meta::pure::extension::Extension[*]):meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy[1] -{ +{ $a->match($extensions.serializerExtension('vX_X_X')->cast(@meta::protocols::pure::vX_X_X::extension::SerializerExtension_vX_X_X).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::vX_X_X::extension::RelationalModuleSerializerExtension).reverse_transfers_connection_transformAuthenticationStrategy->concatenate([ d:meta::protocols::pure::vX_X_X::metamodel::store::relational::connection::alloy::authentication::DelegatedKerberosAuthenticationStrategy[1] | ^meta::pure::alloy::connections::alloy::authentication::DelegatedKerberosAuthenticationStrategy( @@ -200,4 +203,4 @@ function meta::protocols::pure::vX_X_X::transformation::toPureGraph::connection: ) ]) ) -} \ No newline at end of file +} 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_testData.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_testData.pure index 06de03cb402..9e1aee110a7 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_testData.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_testData.pure @@ -18,6 +18,7 @@ import meta::protocols::pure::vX_X_X::invocation::execution::execute::*; import meta::protocols::pure::vX_X_X::transformation::fromPureGraph::*; import meta::protocols::pure::vX_X_X::transformation::fromPureGraph::runtime::*; import meta::pure::functions::io::http::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::alloy::metadataServer::*; @@ -94,7 +95,7 @@ function meta::protocols::pure::vX_X_X::invocation::execution::testDataGeneratio runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::vX_X_X::metamodel::PackageableElementPointer(type=meta::protocols::pure::vX_X_X::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -164,7 +165,7 @@ function meta::protocols::pure::vX_X_X::invocation::execution::testDataGeneratio runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->cast(@meta::pure::store::Store) + |let stores = $pureRuntime.connectionStores.element->cast(@meta::pure::store::Store) ->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() ->map(c|^meta::protocols::pure::vX_X_X::metamodel::PackageableElementPointer(type=meta::protocols::pure::vX_X_X::metamodel::PackageableElementType.STORE,path=$c->elementToPath())); @@ -235,7 +236,7 @@ function meta::protocols::pure::vX_X_X::invocation::execution::testDataGeneratio runtime = transformRuntime($pureRuntime, $extensions), context = $transformedContext, model = if($execMode == ExecutionMode.SEMI_INTERACTIVE, - |let stores = $pureRuntime.connections.element->map(element | + |let stores = $pureRuntime.connectionStores.element->map(element | $element->match([ store:meta::pure::store::Store[1] | $store->map(s|$s->findAllStoreIncludes()) ->removeDuplicates() 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 b6062f552aa..09931a80d70 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 @@ -26,18 +26,18 @@ import meta::protocols::pure::vX_X_X::metamodel::store::relational::connection:: import meta::protocols::pure::vX_X_X::metamodel::store::relational::element::*; import meta::protocols::pure::vX_X_X::transformation::fromPureGraph::model::*; -function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::vX_X_X::metamodel::store::relational::connection::DatabaseConnection[1] +function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connection::transformDatabaseConnection(otherConnection: meta::external::store::relational::runtime::DatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):meta::protocols::pure::vX_X_X::metamodel::store::relational::connection::DatabaseConnection[1] { let _type = $otherConnection->class()->toString(); - let element = $otherConnection.element->match([d:meta::pure::store::Store[1]|$d->elementToPath(),s:String[1]|$s]); + let element = ''; let type = $otherConnection.type->toString(); - let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::pure::alloy::connections::RelationalDatabaseConnection), + let postProcessorsWithParams = if ($otherConnection->instanceOf(meta::external::store::relational::runtime::RelationalDatabaseConnection), | [], | $otherConnection.queryPostProcessorsWithParameter->transformPostProcessors($extensions)); let alloyConnection = $otherConnection->match($extensions.serializerExtension('vX_X_X')->cast(@meta::protocols::pure::vX_X_X::extension::SerializerExtension_vX_X_X).moduleSerializerExtension('relational')->cast(@meta::protocols::pure::vX_X_X::extension::RelationalModuleSerializerExtension).transfers_connection_transformDatabaseConnection->map(f | $f->eval($_type, $element, $type, $postProcessorsWithParams))->concatenate([ - test:meta::relational::runtime::TestDatabaseConnection[1]| + test:meta::external::store::relational::runtime::TestDatabaseConnection[1]| ^RelationalDatabaseConnection( _type = 'RelationalDatabaseConnection', type = $type, @@ -54,10 +54,10 @@ function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connectio ), postProcessorWithParameter = $postProcessorsWithParams ), - relational:meta::pure::alloy::connections::RelationalDatabaseConnection[1] | + relational:meta::external::store::relational::runtime::RelationalDatabaseConnection[1] | let processors = transformPostProcessors($relational.postProcessors, $extensions); relational($type, $element, $relational.timeZone, $relational.quoteIdentifiers, $processors, $relational.datasourceSpecification, $relational.authenticationStrategy, $extensions);, - dbCon:meta::relational::runtime::DatabaseConnection[1]| + dbCon:meta::external::store::relational::runtime::DatabaseConnection[1]| ^meta::protocols::pure::vX_X_X::metamodel::store::relational::connection::DatabaseConnection( _type = $_type, timeZone = $dbCon.timeZone, 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/metamodel_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/metamodel_relational.pure index d86d08da228..ebb6f01cec4 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/metamodel_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/metamodel_relational.pure @@ -20,6 +20,7 @@ import meta::protocols::pure::vX_X_X::transformation::fromPureGraph::mapping::mo import meta::protocols::pure::vX_X_X::transformation::fromPureGraph::store::*; import meta::protocols::pure::vX_X_X::transformation::fromPureGraph::modelToModel::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::protocols::pure::vX_X_X::transformation::fromPureGraph::domain::*; import meta::protocols::pure::vX_X_X::transformation::fromPureGraph::store::csv::*; import meta::pure::mapping::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/pureToSQLQuery.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/pureToSQLQuery.pure index b4466f24885..97e867c21af 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/pureToSQLQuery.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/pureToSQLQuery.pure @@ -16,6 +16,7 @@ import meta::pure::executionPlan::*; import meta::pure::extension::*; import meta::relational::extension::*; import meta::alloy::objectReference::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::functions::pureToSqlQuery::union::*; import meta::relational::functions::pureToSqlQuery::metamodel::*; @@ -692,7 +693,7 @@ function meta::relational::functions::pureToSqlQuery::processObjectGroupBy(f:Fu groupBy = $merge.groupBy, paths = $ids->zip($paths) ) - ->isolateNonTerminalGroupByQueryWithEmptyGroupingColumns($state, $extensions) + ->isolateNonTerminalGroupByQueryWithEmptyGroupingColumns($state, $extensions) ); } @@ -1257,7 +1258,7 @@ function meta::relational::functions::pureToSqlQuery::processColumnsInRelational , l:Literal[1]| let select = $srcOperation.select; ^$srcOperation(select = $state.inFilter->if(|^$select(filteringOperation = $l),|^$select(columns = $l)));, - r:RelationalOperationElementWithJoin[1]| // join chain with 0 or more elements, and then ending in a column. + r:RelationalOperationElementWithJoin[1]| // join chain with 0 or more elements, and then ending in a column. let col = $r->extractElement(); let currentData = $srcOperation.select.data->toOne(); let isDynaFunction = $col->instanceOf(DynaFunction); @@ -1302,7 +1303,7 @@ function meta::relational::functions::pureToSqlQuery::processColumnsInRelational } function meta::relational::functions::pureToSqlQuery::extractColumnAliasesInRelationalTreeNodes(column:Column[1], relationalElement:RelationalOperationElement[1], nodes:RelationalTreeNode[*], context:DebugContext[1], extensions:Extension[*]): TableAliasColumn[*] -{ +{ let aliasesToUse = $nodes->filter(n| let relElements = $n.alias.relationalElement->match([ v:ViewSelectSQLQuery[1]| $v.view, s:SelectSQLQuery[1]| @@ -1322,7 +1323,7 @@ function meta::relational::functions::pureToSqlQuery::processProperty(property:A let strategy = $srcOperation.milestoningContext.currentMilestoningStrategy->toOne(); let col = $strategy->match([ b:BusinessTemporal[1] | $srcOperation.milestoningContext.businessDate, p:ProcessingTemporal[1] | $srcOperation.milestoningContext.processingDate]); - let res = if ($state.inFilter, + let res = if ($state.inFilter, |^$srcOperation(select = ^$query(filteringOperation+=$col)), |^$srcOperation(select = ^$query(columns+=$col))); ^OperationWithParentPropertyMapping(element = $res, currentPropertyMapping = []); @@ -1670,7 +1671,7 @@ function meta::relational::functions::pureToSqlQuery::processRelationalPropertyM relationalOperationElement = $nullJoin, sourceSetImplementationId = $currentSet.id, targetSetImplementationId = $rpm.targetSetImplementationId - ); + ); }) ); $newRpms @@ -1690,7 +1691,7 @@ function meta::relational::functions::pureToSqlQuery::processRelationalPropertyM | ^$srcOperation(milestoningContext = []), | if($property->isEdgePointProperty() || $srcOperation.milestoningContext.isAllVersions->orElse(false), - | $srcOperation->updateMilestoningContextProcessingStateForProperties(MilestoningProcessingState.ALL_VERSIONS), + | $srcOperation->updateMilestoningContextProcessingStateForProperties(MilestoningProcessingState.ALL_VERSIONS), | $srcOperation->updateMilestoningContextProcessingStateForProperties(MilestoningProcessingState.NON_MILESTONED_CLASS_PROPERTY))); let union = buildSQLQueryOutManySetImplementations($srcOperationWithMilestoneProcessingState, $updatedRelationalPropertyMappings, @@ -1986,7 +1987,7 @@ function meta::relational::functions::pureToSqlQuery::flattenConcatenate(f:Value { $f->match([ fe:FunctionExpression[1] | if ($fe.func->in([ - concatenate_T_MANY__T_MANY__T_MANY_, union_T_MANY__T_MANY__T_MANY_, + concatenate_T_MANY__T_MANY__T_MANY_, union_T_MANY__T_MANY__T_MANY_, concatenate_TabularDataSet_1__TabularDataSet_1__TabularDataSet_1_, concatenate_TabularDataSet_1__TabularDataSet_MANY__TabularDataSet_1_ ]), @@ -1994,7 +1995,7 @@ function meta::relational::functions::pureToSqlQuery::flattenConcatenate(f:Value | $fe );, iv:InstanceValue[1]| $iv.values->match([ - v:ValueSpecification[*]|$v, + v:ValueSpecification[*]|$v, a:Any[*]| $iv ]), v:ValueSpecification[1] | $v @@ -2334,11 +2335,11 @@ function meta::relational::functions::pureToSqlQuery::processPlus(f:FunctionExpr function meta::relational::functions::pureToSqlQuery::processParseDate(f:FunctionExpression[1], currentPropertyMapping:PropertyMapping[*], operation:SelectWithCursor[1], vars:Map[1], state:State[1], joinType:JoinType[1], nodeId:String[1], aggFromMap:List[1], context:DebugContext[1], extensions:Extension[*]):RelationalOperationElement[1] { - let formatInstance = ^InstanceValue(multiplicity = PureOne, genericType = ^GenericType(rawType=String), values = 'YYYY-MM-DD HH24:MI:SS'); + let formatInstance = ^InstanceValue(multiplicity = PureOne, genericType = ^GenericType(rawType=String), values = 'YYYY-MM-DD HH24:MI:SS'); let dynaFuncName = 'toTimestamp'; let oldFunc = $f.func; let newFunc = ^$oldFunc(functionName=$dynaFuncName); - let functionExpression = ^$f(func = $newFunc, parametersValues=$f.parametersValues->concatenate($formatInstance)); + let functionExpression = ^$f(func = $newFunc, parametersValues=$f.parametersValues->concatenate($formatInstance)); $functionExpression->processDynaFunction($currentPropertyMapping, $operation, $vars, $state, $joinType, $nodeId, $aggFromMap, $context, $extensions); } @@ -2452,7 +2453,7 @@ function meta::relational::functions::pureToSqlQuery::processSlice(f:FunctionExp let fromRow = $param1->cast(@Literal); let param2 = processValueSpecification($f.parametersValues->at(2), $currentPropertyMapping, $operation, $vars, $state, JoinType.LEFT_OUTER, $nodeId, $aggFromMap, $context, $extensions)->toOne()->cast(@SelectWithCursor).select.columns->at(0); assert($param2->instanceOf(Literal),'Invalid type for second parameter inside the slice function. Expected a value, found operation/function'); - let toRow = $param2->cast(@Literal); + let toRow = $param2->cast(@Literal); let processedSelect = ^$mainSelect ( fromRow = if ($fromRow.value->instanceOf(Integer) && $fromRow.value->cast(@Integer) == 0, |[], |$fromRow), toRow = $toRow @@ -2489,7 +2490,7 @@ function meta::relational::functions::pureToSqlQuery::processPaginated(f:Functio { let preceedingFunction = $f.parametersValues->evaluateAndDeactivate()->at(0)->byPassRouterInfo()->cast(@FunctionExpression).func; assert( $preceedingFunction == sortBy_T_m__Function_$0_1$__T_m_ || $preceedingFunction == sort_TabularDataSet_1__SortInformation_MANY__TabularDataSet_1_, 'Paginated should be called on a sort or sortBy function'); - + let mainQuery = processValueSpecification($f.parametersValues->at(0), $currentPropertyMapping, $operation, $vars, $state, $joinType, $nodeId, $aggFromMap, $context, $extensions)->toOne()->cast(@SelectWithCursor); let mainSelect = $mainQuery.select; let param1 = processValueSpecification($f.parametersValues->at(1), $currentPropertyMapping, $operation, $vars, $state, JoinType.LEFT_OUTER, $nodeId, $aggFromMap, $context, $extensions)->toOne()->cast(@SelectWithCursor).select.columns->at(0); @@ -2498,10 +2499,10 @@ function meta::relational::functions::pureToSqlQuery::processPaginated(f:Functio let param2 = processValueSpecification($f.parametersValues->at(2), $currentPropertyMapping, $operation, $vars, $state, JoinType.LEFT_OUTER, $nodeId, $aggFromMap, $context, $extensions)->toOne()->cast(@SelectWithCursor).select.columns->at(0); assert($param2->instanceOf(Literal),'Invalid type for second parameter inside the paginated function. Expected an integer/integer variable, found operation/function'); let pageSize = $param2->cast(@Literal); - + let parents = $state.functionExpressionStack->evaluateAndDeactivate(); assert($parents->size() == 1 || ($parents->size() == 2 && $parents->at(0)->byPassRouterInfo()->cast(@FunctionExpression)->evaluateAndDeactivate().func->in(meta::pure::graphFetch::execution::graphFetchFunctions())), 'Paginated should either be last function in TDS query or called right before graphFetch'); - + let processedSelect = ^$mainSelect ( fromRow = ^Literal(value = ^FreeMarkerOperationHolder(name='numberMultiply',parameters=[^FreeMarkerOperationHolder(name='numberSubtract', parameters=[$pageNumber, ^Literal(value='1')]),$pageSize])), toRow = ^Literal(value = ^FreeMarkerOperationHolder(name='numberVariable',parameters=[$pageSize])) @@ -3226,7 +3227,7 @@ function meta::relational::functions::pureToSqlQuery::processGetAllForEachDate(e let rightAlias = $query1.data.alias; let leftAlias = ^TableAlias(name='"joinleft_"'+$nodeId, relationalElement=$query2); let dateRange = $query2.columns->reprocessAliases(^OldAliasToNewAlias(first = $alias.name, second = $leftAlias)); - + // join operation condition let milestoningContext = getMilestoningContextForAll($expression,$setImplementation, $expression.parametersValues, $state, $vars, $context, $extensions); let strategy = $milestoningContext.currentMilestoningStrategy->at(0); @@ -3236,7 +3237,7 @@ function meta::relational::functions::pureToSqlQuery::processGetAllForEachDate(e let temporalFrom = if($inclusive,|^DynaFunction(name = 'lessThan', parameters=[$milestoneColumns->at(0), $dateRange->toOne()]),|^DynaFunction(name = 'lessThanEqual', parameters=[$milestoneColumns->at(0), $dateRange->toOne()])); let temporalThru = if($inclusive,|^DynaFunction(name = 'greaterThanEqual', parameters=[$milestoneColumns->at(1), $dateRange->toOne()]),|^DynaFunction(name = 'greaterThan', parameters=[$milestoneColumns->at(1), $dateRange->toOne()])); let joinOp = newAndOrDynaFunctionRelaxedBrackets('and', [$temporalFrom,$temporalThru]); - + //propogating and mapping business date in milestoningContext let mapColumn = $dateRange->cast(@TableAliasColumn); let thisMilestoning = $milestoningContext->toOne(); @@ -3846,7 +3847,7 @@ function meta::relational::functions::pureToSqlQuery::processExists(expression:F let opMapping = $leftSideOp.currentPropertyMapping; if (!$opMapping->isEmpty() && $opMapping->at(0)->instanceOf(EmbeddedRelationalInstanceSetImplementation) - ,{| + ,{| let existsAsFilter = processFilter($expression, $currentPropertyMapping, $nOperation, $vars, $existsState, JoinType.LEFT_OUTER, $nodeId, $aggFromMap, $context, $extensions); if($existsState.inFilter ,|$existsAsFilter @@ -3942,12 +3943,12 @@ function meta::relational::functions::pureToSqlQuery::buildExistsAsJoinWithNullC let allColumns = $joinAliases->concatenate($existsFilter.groupBy)->removeDuplicates({a,b| $a == $b }); assertFalse($joinAliases->isEmpty(),'Cant find any aliases right side of exists ->'); - + let existsSubSelectFilter = if ($expression.parametersValues->size() == 1, |$rootExtraFilteringOperations, |[]); let existsSubSelect = ^$existsFilter(distinct = true, - columns = $allColumns, - extraFilteringOperation = [], - filteringOperation = $existsFilter.filteringOperation->concatenate($existsSubSelectFilter)->andFilters($extensions), + columns = $allColumns, + extraFilteringOperation = [], + filteringOperation = $existsFilter.filteringOperation->concatenate($existsSubSelectFilter)->andFilters($extensions), groupBy=if($existsFilter.groupBy->isNotEmpty(),|$allColumns,|[])); print(if(!$context.debug, |'', @@ -4540,12 +4541,12 @@ function <> meta::relational::functions::pureToSqlQuery::process let restrictSet = $expression->instanceValuesAtParameter(1, $vars, $state.inScopeVars)->cast(@String); if ($nestedQuery.func == project_K_MANY__Function_MANY__String_MANY__TabularDataSet_1_, - - | // Project with functions + + | // Project with functions let functions = $nestedQuery->instanceValuesAtParameter(1, $vars, $state.inScopeVars)->cast(@meta::pure::metamodel::function::Function); let columnNames = $nestedQuery->instanceValuesAtParameter(2, $vars, $state.inScopeVars)->cast(@String); $restrictSet->map(c | assert($columnNames->contains($c), | 'Project column list ' + $columnNames->map(x | '\'' + $x + '\'')->joinStrings('[', ', ', ']') + ' does not contain restrict column \'' + $c + '\'')); - + let filteredFunctionAndNamePairs = $functions->zip($columnNames)->filter(p | $p.second->in($restrictSet)); let columnNameToFunctionAndNamePairMap = $filteredFunctionAndNamePairs->map(p | pair($p.second, $p))->newMap(); let orderedFunctionAndNamePairs = $restrictSet->map(c | $columnNameToFunctionAndNamePairMap->get($c)); @@ -4560,7 +4561,7 @@ function <> meta::relational::functions::pureToSqlQuery::process let filteredColumns = $columns->filter(c | $c.name->in($restrictSet)); let columnNameToColMap = $filteredColumns->map(c | pair($c.name, $c))->newMap(); let orderedColumns = $restrictSet->map(c | $columnNameToColMap->get($c)); - + processProject($orderedColumns.name, $orderedColumns.func, $orderedColumns->map(c|if($c.documentation->isEmpty(),|'', |$c.documentation)), $nestedQuery, $operation, $vars, $state, $nodeId, $aggFromMap, $context, [], $extensions); ); @@ -5024,60 +5025,60 @@ function meta::relational::functions::pureToSqlQuery::processTdsLambda(mapFn:Val ]; let func = $dispatch->filter(d|$d.first == $f.func.functionName); - + if($func->isNotEmpty(), |$func->toOne().second->cast(@meta::pure::metamodel::function::Function<{->RelationalOperationElement[*]}>)->eval(), | let supportedFunction = findSupportedFunction($f, $state.supportedFunctions, $state.contextBasedSupportedFunctions); - + if($supportedFunction->isNotEmpty(), - | + | let overrides = [ - ^PureFunctionTDSToRelationalFunctionPair(first = extractEnumValue_Enumeration_1__String_1__T_1_, second = {| + ^PureFunctionTDSToRelationalFunctionPair(first = extractEnumValue_Enumeration_1__String_1__T_1_, second = {| ^Literal(value=extractEnumValue($f, $currentPropertyMapping, $context)) }), - ^PureFunctionTDSToRelationalFunctionPair(first = plus_String_MANY__String_1_, second = {| + ^PureFunctionTDSToRelationalFunctionPair(first = plus_String_MANY__String_1_, second = {| ^JoinStrings(strings=$f.parametersValues->map(p|$p->processTdsLambda($a,$returnColumnName, $vars, $state, $currentPropertyMapping, $context))) }), - ^PureFunctionTDSToRelationalFunctionPair(first = in_Any_1__Any_MANY__Boolean_1_, second = {| + ^PureFunctionTDSToRelationalFunctionPair(first = in_Any_1__Any_MANY__Boolean_1_, second = {| let arg1 = $f.parametersValues->at(0)->processTdsLambda($a, $returnColumnName, $vars, $state, $currentPropertyMapping, $context); let arg2 = $f.parametersValues->at(1)->processTdsLambda($a, $returnColumnName, $vars, $state, $currentPropertyMapping, $context); let dynaParams = $arg1->concatenate($arg2->match([ll:Literal[*] | ^LiteralList(values = $ll), r:RelationalOperationElement[*] | $r])); - newDynaFunction($f.func.functionName->toOne(), $dynaParams); + newDynaFunction($f.func.functionName->toOne(), $dynaParams); }), - ^PureFunctionTDSToRelationalFunctionPair(first = meta::pure::tds::extensions::firstNotNull_T_MANY__T_$0_1$_, second = {| + ^PureFunctionTDSToRelationalFunctionPair(first = meta::pure::tds::extensions::firstNotNull_T_MANY__T_$0_1$_, second = {| newDynaFunction('coalesce', $f.parametersValues->at(0)->processTdsLambda($a, $returnColumnName, $vars, $state, $currentPropertyMapping, $context)) }), - ^PureFunctionTDSToRelationalFunctionPair(first = splitPart_String_$0_1$__String_1__Integer_1__String_$0_1$_, second = {| + ^PureFunctionTDSToRelationalFunctionPair(first = splitPart_String_$0_1$__String_1__Integer_1__String_$0_1$_, second = {| newDynaFunction('splitPart', [ $f.parametersValues->at(0)->processTdsLambda($a, $returnColumnName, $vars, $state, $currentPropertyMapping, $context)->toOne(), $f.parametersValues->at(1)->processTdsLambda($a, $returnColumnName, $vars, $state, $currentPropertyMapping, $context)->toOne(), - $f.parametersValues->at(2)->zeroToOneBasedIndex()->processTdsLambda($a, $returnColumnName, $vars, $state, $currentPropertyMapping, $context) ->toOne() + $f.parametersValues->at(2)->zeroToOneBasedIndex()->processTdsLambda($a, $returnColumnName, $vars, $state, $currentPropertyMapping, $context) ->toOne() ]) - }), + }), ^PureFunctionTDSToRelationalFunctionPair(first = parseDate_String_1__Date_1_, second = {| let format = ^InstanceValue(multiplicity = PureOne, genericType = ^GenericType(rawType=String), values = 'YYYY-MM-DD HH24:MI:SS'); newDynaFunction('toTimestamp', [ $f.parametersValues->at(0)->processTdsLambda($a, $returnColumnName, $vars, $state, $currentPropertyMapping, $context)->toOne(), ^Literal(value = 'YYYY-MM-DD HH24:MI:SS') - ]); - }), + ]); + }), ^PureFunctionTDSToRelationalFunctionPair(first = meta::pure::functions::hash::hash_String_1__HashType_1__String_1_, second = {| let type = $f.parametersValues->at(1)->reactivate()->cast(@meta::pure::functions::hash::HashType)->toOne(); let name = meta::relational::functions::pureToSqlQuery::hashTypeToHashDynaFuncName($type); let value = $f.parametersValues->at(0)->processTdsLambda($a, $returnColumnName, $vars, $state, $currentPropertyMapping, $context); - newDynaFunction($name, $value); - }) + newDynaFunction($name, $value); + }) ]->concatenate( [ - meta::pure::functions::string::joinStrings_String_MANY__String_1_, - meta::pure::functions::string::joinStrings_String_MANY__String_1__String_1_, + meta::pure::functions::string::joinStrings_String_MANY__String_1_, + meta::pure::functions::string::joinStrings_String_MANY__String_1__String_1_, meta::pure::functions::string::joinStrings_String_MANY__String_1__String_1__String_1__String_1_ - ]->map(func| - ^PureFunctionTDSToRelationalFunctionPair(first = $func, second = {| + ]->map(func| + ^PureFunctionTDSToRelationalFunctionPair(first = $func, second = {| ^DynaFunction( name = 'concat', parameters =$f.parametersValues->map(p|$p->processTdsLambda($a, $returnColumnName, $vars, $state, $currentPropertyMapping, $context)) @@ -5085,9 +5086,9 @@ function meta::relational::functions::pureToSqlQuery::processTdsLambda(mapFn:Val }) ) ); - + let override = $overrides->filter(o | $o.first == $f.func)->first(); - if ($override->isNotEmpty(), + if ($override->isNotEmpty(), | $override->toOne().second->eval(), | if ($supportedFunction == processNoOp_FunctionExpression_1__PropertyMapping_MANY__SelectWithCursor_1__Map_1__State_1__JoinType_1__String_1__List_1__DebugContext_1__Extension_MANY__RelationalOperationElement_1_, | $f.parametersValues->at(0)->processTdsLambda($a,$returnColumnName, $vars, $state, $currentPropertyMapping, $context), @@ -5095,7 +5096,7 @@ function meta::relational::functions::pureToSqlQuery::processTdsLambda(mapFn:Val | fail('function ' + $f.func.name->makeString() + ' is not yet supported'); ^DynaFunction(name='fail'); ); - ); + ); ,i:InstanceValue[1]| let transformedValues = $i.values->map(v | $v->match([ s:String[1] | ^Literal(value=$s), n:Number[1] | ^Literal(value=$n), @@ -5409,7 +5410,7 @@ function meta::relational::functions::pureToSqlQuery::processProject(ids:String[ let nonOlap = $newColumnsWithPossiblePKs->filter(c|!$c->instanceOf(WindowColumn)); let possiblePKs = $possiblePKsWithUpdatedData.first.values->cast(@Alias).relationalElement->cast(@TableAliasColumn).column->map(c| pair($c.name, ^PathInformation(type = $c.type->meta::relational::metamodel::datatype::dataTypeToCompatiblePureType(), relationalType = $c.type))); - + let importDataFlowCols = if($state.importDataFlow == true && $state.importDataFlowAddFks == true, |let rootTreeNode = $merge.data->toOne(); let joinTreeNodes = $rootTreeNode->children()->map(c| $c->getAllNodes())->cast(@JoinTreeNode)->sortBy(j| $j.join.name); @@ -5914,7 +5915,7 @@ function meta::relational::functions::pureToSqlQuery::buildUniqueName(elements:R v:VarPlaceHolder[1]| $v.name ])->toOneMany() ))->joinStrings('_'); - + let maxSize = 256; // TODO: make this configurable if($uniqueName->length() > $maxSize, |$uniqueName->substring(0, $maxSize - 35) + '___' + $uniqueName->substring($maxSize - 35)->meta::pure::functions::hash::hash(meta::pure::functions::hash::HashType.MD5), |$uniqueName); } @@ -6046,15 +6047,15 @@ function meta::relational::functions::pureToSqlQuery::processEquals( |let firstVal = ^EnumProcessingHolder(param = $leftParam, processedParam = $leftVal, currentPropertyMapping = $left); let secondVal = ^EnumProcessingHolder(param = $rightParam, processedParam = $rightVal, currentPropertyMapping = $right); processEqualsForEnum($firstVal, $secondVal, $context);, - |if($leftVal->hasOptionalVarPlaceHolderValue() && $rightVal->hasOptionalVarPlaceHolderValue(), + |if($leftVal->hasOptionalVarPlaceHolderValue() && $rightVal->hasOptionalVarPlaceHolderValue(), |^FreeMarkerOperationHolder(name = 'optionalVarPlaceHolderOpSelector', parameters = [$leftVal, - ^FreeMarkerOperationHolder(name = 'optionalVarPlaceHolderOpSelector', parameters = [$rightVal, ^DynaFunction(name = 'equal', parameters = [$leftVal,$rightVal]),^DynaFunction(name = 'equal', parameters = [^Literal(value = 1), ^Literal(value = 0)])]), + ^FreeMarkerOperationHolder(name = 'optionalVarPlaceHolderOpSelector', parameters = [$rightVal, ^DynaFunction(name = 'equal', parameters = [$leftVal,$rightVal]),^DynaFunction(name = 'equal', parameters = [^Literal(value = 1), ^Literal(value = 0)])]), ^FreeMarkerOperationHolder(name = 'optionalVarPlaceHolderOpSelector', parameters = [$rightVal, ^DynaFunction(name = 'equal', parameters = [^Literal(value = 1), ^Literal(value = 0)]),^DynaFunction(name = 'equal', parameters = [^Literal(value = 1), ^Literal(value = 1)])])]), - |if($rightVal->hasOptionalVarPlaceHolderValue(), - |^FreeMarkerOperationHolder(name = 'optionalVarPlaceHolderOpSelector', parameters = [$rightVal, ^DynaFunction(name = 'equal', parameters = [$leftVal, $rightVal]), ^DynaFunction(name = 'isNull', parameters = [$leftVal])]), + |if($rightVal->hasOptionalVarPlaceHolderValue(), + |^FreeMarkerOperationHolder(name = 'optionalVarPlaceHolderOpSelector', parameters = [$rightVal, ^DynaFunction(name = 'equal', parameters = [$leftVal, $rightVal]), ^DynaFunction(name = 'isNull', parameters = [$leftVal])]), |if($leftVal->hasOptionalVarPlaceHolderValue(), - |^FreeMarkerOperationHolder(name = 'optionalVarPlaceHolderOpSelector', parameters = [$leftVal, ^DynaFunction(name = 'equal', parameters = [$leftVal, $rightVal]), ^DynaFunction(name = 'isNull', parameters = [$rightVal])]), - |^DynaFunction(name = 'equal', parameters = [$leftVal, $rightVal])); + |^FreeMarkerOperationHolder(name = 'optionalVarPlaceHolderOpSelector', parameters = [$leftVal, ^DynaFunction(name = 'equal', parameters = [$leftVal, $rightVal]), ^DynaFunction(name = 'isNull', parameters = [$rightVal])]), + |^DynaFunction(name = 'equal', parameters = [$leftVal, $rightVal])); ); ); ); @@ -6116,12 +6117,12 @@ function <> meta::relational::functions::pureToSqlQuery::generat } function <> meta::relational::functions::pureToSqlQuery::generateFreeMarkerForEnumParam(propertyMapping:OperationWithParentPropertyMapping[1], enumParam:RelationalOperationElement[1]):FreeMarkerOperationHolder[1] -{ +{ ^FreeMarkerOperationHolder(name = 'enumMap_' + fetchEnumFullPath($propertyMapping.currentPropertyMapping->cast(@RelationalPropertyMapping).transformer->cast(@EnumerationMapping)), parameters = [$enumParam->cast(@Literal)]) } function <> meta::relational::functions::pureToSqlQuery::hasOptionalVarPlaceHolderValue(e:RelationalOperationElement[1]):Boolean[1] -{ +{ $e->instanceOf(Literal) && $e->cast(@Literal).value->instanceOf(VarPlaceHolder) && $e->cast(@Literal).value->cast(@VarPlaceHolder).multiplicity->isNotEmpty() && $e->cast(@Literal).value->cast(@VarPlaceHolder).multiplicity->toOne()->isZeroOne(); } @@ -6136,7 +6137,7 @@ function meta::relational::functions::pureToSqlQuery::validateParamHasDataTypeRe } function meta::relational::functions::pureToSqlQuery::processEqualsForEnum(firstVal : EnumProcessingHolder[1], secondVal : EnumProcessingHolder[1], context : DebugContext[1]) : RelationalOperationElement[1] -{ +{ let hasOnlyEnumValues = [$firstVal, $secondVal]->forAll(e|$e.processedParam->hasEnumValue()); if($hasOnlyEnumValues, @@ -6151,7 +6152,7 @@ function meta::relational::functions::pureToSqlQuery::processEqualsForEnum(first | let enumParamFreeMarker = generateFreeMarkerForEnumParam($enumVar.second.values.currentPropertyMapping->toOne(), $enumVar.first.values.processedParam->toOne()); generateFreeMarkerOpSelectorForEnumParam($enumParamFreeMarker, $enumVar.second.values.processedParam->toOne(), $enumVar.first.values.processedParam->toOne());, | if($hasEnumVarAndEnumVal, - | let literal = $enumVar.first.values.processedParam->cast(@Literal).value->cast(@VarPlaceHolder); + | let literal = $enumVar.first.values.processedParam->cast(@Literal).value->cast(@VarPlaceHolder); ^DynaFunction(name = 'equal', parameters = [^Literal(value=^VarPlaceHolder(name=$literal.name->toOne(),type = $literal.type->toOne(),multiplicity = $literal.multiplicity->toOne())), ^Literal(value = $enumVar.second.values.processedParam->cast(@Literal).value->toOne()->toString())]);, | // Case 3 - EnumVal & EnumClassProp let hasEnumProp = [$firstVal, $secondVal]->partition(e|$e.processedParam->hasEnumValue()); @@ -6788,10 +6789,10 @@ function <> meta::relational::functions::pureToSqlQuery::applyJo let sourceSelect=$inputState.select; let position=$inputState.position; let jt=if($joinTreeNode.joinType == [] || $joinTreeNode.joinType->isEmpty(),|$joinType, |$joinTreeNode.joinType->toOne()); - - let explodeInCurrentNode = explodeInCurrentJoinOperation($joinTreeNode.join.operation); + + let explodeInCurrentNode = explodeInCurrentJoinOperation($joinTreeNode.join.operation); let appliedJoinTreeNode = if($explodeInCurrentNode, | applyJoinWithExplodeInCondition($position, $joinTreeNode, $nodeId, $jt, $reprocess, $state, $milestoningContext, $context, $extensions), | applyOneJoin($position, $joinTreeNode, $nodeId, $jt, $reprocess, $state, $milestoningContext, $context, $extensions)); - + let positionAliasWithExtraJoinCols = $position.alias->addExtraJoinColumns($appliedJoinTreeNode.join); //subselect may not have all cols required for join (prev isolation if applied may take care of this) let uniqueAppliedJoinTreeNode = if($position.childrenData->filter(c|$c->cast(@JoinTreeNode).joinName==$appliedJoinTreeNode.joinName)->isEmpty() ,|^$appliedJoinTreeNode(join = reprocessJoin($appliedJoinTreeNode.join, [^OldAliasToNewAlias(first = $position.alias.name, second = $positionAliasWithExtraJoinCols)], [])) @@ -6855,8 +6856,8 @@ function meta::relational::functions::pureToSqlQuery::applyJoinInTree(root:RootJ } function meta::relational::functions::pureToSqlQuery::explodeInCurrentJoinOperation(op: RelationalOperationElement[1]):Boolean[1] -{ - $op->match([ +{ + $op->match([ d:DynaFunction[1] | $d.name == meta::relational::functions::sqlQueryToString::DynaFunctionRegistry.explodeSemiStructured.name || $d.parameters->map(p|$p->explodeInCurrentJoinOperation())->contains(true), a:Any[1]| false ]); @@ -6864,7 +6865,7 @@ function meta::relational::functions::pureToSqlQuery::explodeInCurrentJoinOperat function meta::relational::functions::pureToSqlQuery::extractExplodeSemiStructured(op: RelationalOperationElement[1]):RelationalOperationElement[*] { - $op->match([ + $op->match([ d:DynaFunction[1] | if($d.name == meta::relational::functions::sqlQueryToString::DynaFunctionRegistry.explodeSemiStructured.name, | $d, | [])->concatenate($d.parameters->map(p|$p->extractExplodeSemiStructured())), a:Any[1]| [] ]); @@ -6882,33 +6883,33 @@ function meta::relational::functions::pureToSqlQuery::explodeReturnType(typeName * if the operation of a JoinTreeNode contains reference to explode function, use a special handler: * 1. get flattened relation * 2. inner join flattened relation with the other alias in the operation -* 3. in the original join tree node, apply left join between the original source and the above result on primary keys +* 3. in the original join tree node, apply left join between the original source and the above result on primary keys */ function meta::relational::functions::pureToSqlQuery::applyJoinWithExplodeInCondition(currentNode:RelationalTreeNode[1], joinTree:JoinTreeNode[1], nodeId:String[1], joinType:JoinType[1], reprocess:Boolean[1], state:State[1], milestoningContext: TemporalMilestoningContext[0..1], context:DebugContext[1], extensions:Extension[*]):JoinTreeNode[1] -{ - let join = $joinTree.join; - +{ + let join = $joinTree.join; + let targetAliasInJoin = findTarget($join, $currentNode, $extensions); let sourceAliasInJoin = $join->otherTableFromAlias($targetAliasInJoin)->toOne(); - + let allExplodeCalls = $join.operation->extractExplodeSemiStructured()->removeDuplicates(); assert($allExplodeCalls->size() == 1, 'only one unique explode allowed in operation in join: ' + $join.name); // This condition needs to be relaxed to support many-to-many let explodeOp = $allExplodeCalls->at(0)->cast(@DynaFunction); assert($explodeOp.parameters->size() == 3, 'explodeSemiStructured takes exactly 3 arguments, passed: ', $explodeOp.parameters->size()); assert($explodeOp.parameters->at(0)->instanceOf(TableAliasColumn), 'Input to explodeSemiStructured must be defined as a column in table in join: ' + $join.name); // This condition needs to be relaxed to support nested explosion let columnToExplode = $explodeOp.parameters->at(0)->cast(@TableAliasColumn); - let pathToExplode = $explodeOp.parameters->at(1); + let pathToExplode = $explodeOp.parameters->at(1); let pureReturnType = $explodeOp.parameters->at(2)->cast(@Literal).value->cast(@String)->explodeReturnType(); - let tableToExplodeAlias = $columnToExplode.alias; + let tableToExplodeAlias = $columnToExplode.alias; assert($tableToExplodeAlias.relationalElement->instanceOf(Table), 'element to explode: ' + $tableToExplodeAlias.name + 'in join ' + $join.name + ' is not a table'); // this can later be relaxed to handle views as well. assert($sourceAliasInJoin.relationalElement->instanceOf(Table), 'source ' + $sourceAliasInJoin.name + 'in join ' + $join.name + ' is not a table'); - - let srcPrimaryKeys = $sourceAliasInJoin.relationalElement->cast(@Table).primaryKey; + + let srcPrimaryKeys = $sourceAliasInJoin.relationalElement->cast(@Table).primaryKey; assert($srcPrimaryKeys->size() >= 1, 'atleast one primary key should be defined on the relation: ' + $sourceAliasInJoin.name); - - let toExplodeRootTreeNode = ^RootJoinTreeNode(alias=^TableAlias(name='root',relationalElement=$tableToExplodeAlias.relationalElement)); - + + let toExplodeRootTreeNode = ^RootJoinTreeNode(alias=^TableAlias(name='root',relationalElement=$tableToExplodeAlias.relationalElement)); + // create a subquery for the flattened relation by doing a lateral join between tableToFlatten and the flattened array. let leftAlias = $toExplodeRootTreeNode.alias; let arrayFlattening = ^SemiStructuredArrayFlatten(navigation = ^SemiStructuredPropertyAccess(property = $pathToExplode, operand = ^$columnToExplode(alias = $toExplodeRootTreeNode.alias))); @@ -6919,31 +6920,31 @@ function meta::relational::functions::pureToSqlQuery::applyJoinWithExplodeInCond target = $rightAlias, aliases = [pair($leftAlias, $rightAlias), pair($rightAlias, $leftAlias)], operation = ^DynaFunction(name = 'equal', parameters = [^Literal(value = 1), ^Literal(value = 1)]) - ); + ); let lateralJoinNode = ^JoinTreeNode( database = $joinTree.database, joinName = $joinName, - alias = $rightAlias, + alias = $rightAlias, join = $lateralJoin, joinType = JoinType.INNER, lateral = true - ); - let explodedRootTreeNode = ^$toExplodeRootTreeNode(childrenData = $lateralJoinNode); - + ); + let explodedRootTreeNode = ^$toExplodeRootTreeNode(childrenData = $lateralJoinNode); + let flattenOutputAlias = ^Alias(name = 'flattened_prop', relationalElement = ^SemiStructuredArrayFlattenOutput(tableAliasColumn = ^TableAliasColumn(alias = $lateralJoinNode.alias->toOne(), column = ^Column(name = 'value', type = ^meta::relational::metamodel::datatype::SemiStructured())), returnType = $pureReturnType)); let columnsForInnerJoinWithTarget = $join.operation->extractTableAliasColumns()->filter(tac|$tac.alias == $tableToExplodeAlias && $tac != $columnToExplode)->map(c|^TableAliasColumn(column = $c.column, alias = $toExplodeRootTreeNode.alias)); - let additionalColumnsToFetch = if($tableToExplodeAlias == $sourceAliasInJoin, + let additionalColumnsToFetch = if($tableToExplodeAlias == $sourceAliasInJoin, | $srcPrimaryKeys->map(c|^Alias(name = 'leftJoinKey_' + $srcPrimaryKeys->indexOf($c)->toString(), relationalElement = ^TableAliasColumn(column=$c, alias=$leftAlias))), // fetch pks from source | $tableToExplodeAlias.relationalElement->cast(@Table).columns->map(c|^TableAliasColumn(alias = $toExplodeRootTreeNode.alias, column = $c->cast(@Column))) // fetch all columns from target ); - let columnsToFetchInExploded = [$flattenOutputAlias]->concatenate($columnsForInnerJoinWithTarget)->concatenate($additionalColumnsToFetch)->removeDuplicates(); + let columnsToFetchInExploded = [$flattenOutputAlias]->concatenate($columnsForInnerJoinWithTarget)->concatenate($additionalColumnsToFetch)->removeDuplicates(); let explodedSubQuery = ^TableAlias(name='exploded', relationalElement=^SelectSQLQuery(columns=$columnsToFetchInExploded, data=$explodedRootTreeNode, preIsolationCurrentTreeNode=$explodedRootTreeNode)); // mainTable should point to the root table, not flatten - + // create inner join b/w exploded subquery and the target. let toReplace = ^Alias(name = 'first', relationalElement = $explodeOp); - let flattendOutputDataType = if($pureReturnType->isEmpty() || meta::relational::transform::fromPure::pureTypeToDataTypeMap()->get($pureReturnType->toOne())->isEmpty(), - | ^meta::relational::metamodel::datatype::SemiStructured(), + let flattendOutputDataType = if($pureReturnType->isEmpty() || meta::relational::transform::fromPure::pureTypeToDataTypeMap()->get($pureReturnType->toOne())->isEmpty(), + | ^meta::relational::metamodel::datatype::SemiStructured(), | meta::relational::transform::fromPure::pureTypeToDataTypeMap()->get($pureReturnType->toOne())->toOne()); let replaceWith = ^Alias(name = 'second', relationalElement = ^TableAliasColumn(column = ^Column(name = $flattenOutputAlias.name, type = $flattendOutputDataType), alias = $explodedSubQuery)); let updatedOperation = replaceDynaFunctionWithTableAliasColumn($join.operation, ^Pair(first = $toReplace, second = $replaceWith))->cast(@Operation); @@ -6956,20 +6957,20 @@ function meta::relational::functions::pureToSqlQuery::applyJoinWithExplodeInCond join = $reprocessedJoin, joinType = JoinType.INNER ); - + let rootForSubSelect = if($sourceAliasInJoin == $tableToExplodeAlias, | $explodedSubQuery, | $sourceAliasInJoin); - let columnsToFetchFromUnexploded = if($tableToExplodeAlias == $sourceAliasInJoin, - | $targetAliasInJoin.relationalElement->cast(@Table).columns->map(c|^TableAliasColumn(alias = $targetAliasInJoin, column = $c->cast(@Column))), // target is unexploded, fetch all columns from target + let columnsToFetchFromUnexploded = if($tableToExplodeAlias == $sourceAliasInJoin, + | $targetAliasInJoin.relationalElement->cast(@Table).columns->map(c|^TableAliasColumn(alias = $targetAliasInJoin, column = $c->cast(@Column))), // target is unexploded, fetch all columns from target | $srcPrimaryKeys->map(c|^Alias(name = 'leftJoinKey_' + $srcPrimaryKeys->indexOf($c)->toString(),relationalElement = ^TableAliasColumn(column = $c, alias = $sourceAliasInJoin))) // source is unexploded, fetch pks from source ); let columnsToFetchFromExplodedProcessed = $additionalColumnsToFetch->map(c|$c->match([ tac:TableAliasColumn[1] | ^$tac(alias = $explodedSubQuery);, a:Alias[1] | ^Alias(name = $a.name, relationalElement = ^TableAliasColumn(alias = $explodedSubQuery, column = ^Column(type = $a.relationalElement->cast(@TableAliasColumn).column.type, name = $a.name))); - ])); + ])); let subSelectColumnsToFetch = $columnsToFetchFromUnexploded->concatenate($columnsToFetchFromExplodedProcessed); - let subSelect = ^SelectSQLQuery(data=^RootJoinTreeNode(alias=$rootForSubSelect, childrenData=$innerJoinTreeNode), columns=$subSelectColumnsToFetch); - let subSelectAlias = ^TableAlias(name=$join.name, relationalElement=$subSelect); + let subSelect = ^SelectSQLQuery(data=^RootJoinTreeNode(alias=$rootForSubSelect, childrenData=$innerJoinTreeNode), columns=$subSelectColumnsToFetch); + let subSelectAlias = ^TableAlias(name=$join.name, relationalElement=$subSelect); // left outer join between the original current Node(same as sourceAliasInJoin) and the the generated subSelect query on pk of current node and joinKey of subSelect. let targetJoinKeys = $srcPrimaryKeys->map(c|^TableAliasColumn(alias = $subSelectAlias, column = ^Column(type = $c.type, name = 'leftJoinKey_' + $srcPrimaryKeys->indexOf($c)->toString()))); @@ -6986,10 +6987,10 @@ function meta::relational::functions::pureToSqlQuery::applyJoinWithExplodeInCond alias = $subSelectAlias, join = $leftJoin, joinType = JoinType.LEFT_OUTER - ); + ); let finalExplodedJoinTreeNode = applyOneJoin($currentNode, $leftJoinNode, $nodeId, $joinType, $reprocess, $state, $milestoningContext, $context, $extensions); - $finalExplodedJoinTreeNode; + $finalExplodedJoinTreeNode; } function meta::relational::functions::pureToSqlQuery::findLastJoinTreeNode(node:RelationalTreeNode[1]):RelationalTreeNode[1] @@ -7725,4 +7726,4 @@ function meta::relational::functions::pureToSqlQuery::getSupportedFunctions():Ma ^PureFunctionToRelationalFunctionPair(first=meta::pure::mutation::save_T_MANY__RootGraphFetchTree_1__Mapping_1__Runtime_1__T_MANY_, second=meta::relational::functions::pureToSqlQuery::processNoOp_FunctionExpression_1__PropertyMapping_MANY__SelectWithCursor_1__Map_1__State_1__JoinType_1__String_1__List_1__DebugContext_1__Extension_MANY__RelationalOperationElement_1_), ^PureFunctionToRelationalFunctionPair(first=meta::pure::functions::hash::hash_String_1__HashType_1__String_1_, second=meta::relational::functions::pureToSqlQuery::processHash_FunctionExpression_1__PropertyMapping_MANY__SelectWithCursor_1__Map_1__State_1__JoinType_1__String_1__List_1__DebugContext_1__Extension_MANY__RelationalOperationElement_1_) ]) -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/tests/testMergeRules.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/tests/testMergeRules.pure index d0e95d6ea90..5f302607b55 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/tests/testMergeRules.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/tests/testMergeRules.pure @@ -17,6 +17,7 @@ import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::milestoning::*; function <> meta::relational::tests::mergerules::setUp():Any[0..1] @@ -25,7 +26,7 @@ function <> meta::relational::tests::mergerules::setUp():Any } //It is valid for ..1 properties' JoinTreeNodes to merge across filter and project e.g. if you filter all Synonyms where their product.name == 'Firm C' -//Then when it comes time to project from the Synonym then all Synonyms will meet this criteria. +//Then when it comes time to project from the Synonym then all Synonyms will meet this criteria. function <> meta::relational::tests::mergerules::testToOneJoinTreeNodesForFilterAndProjectMerge():Boolean[1] { let result = execute(|Synonym.all()->filter(s| $s.product.name == 'Firm C')->project([s|$s.name, s|$s.product.name],['synonymName','productName']), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/tests/testPureToSql.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/tests/testPureToSql.pure index 1cfe834cfd0..ff5ce331914 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/tests/testPureToSql.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/tests/testPureToSql.pure @@ -14,6 +14,7 @@ import meta::pure::router::printer::*; import meta::pure::router::clustering::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::operation::*; import meta::relational::metamodel::join::*; @@ -27,7 +28,7 @@ import meta::pure::router::utils::*; function <> meta::relational::tests::functions::pureToSqlQuery::testFindFunctionSequenceMultiplicity():Boolean[1] { - let firmLambda = {f:Firm[1]|$f.employees; + let firmLambda = {f:Firm[1]|$f.employees; $f.employees->toOne(); $f.address.name; $f.employees.address->toOne(); @@ -139,17 +140,17 @@ function <> meta::relational::tests::functions::pureToSqlQuery::tesIs let tradeLambda = {t:Trade[1]|$t.events->filter(e|true).eventType->cast(@String)->isNotEmpty(); $t.events->toOne().eventType->cast(@String)->isNotEmpty(); }->deactivate()->cast(@InstanceValue).values->at(0)->cast(@LambdaFunction<{Trade[1]->Boolean[1]}>); - + assertFalse(expressionSequenceReturnsAtLeastToOneDataType($tradeLambda.expressionSequence->at(0)->cast(@FunctionExpression).parametersValues->at(0))); - + } function <> meta::relational::tests::functions::pureToSqlQuery::testMergeOldAliasToNewAlias():Boolean[1] { let aliasList = [^OldAliasToNewAlias(first='1', second=buildTableAlias('1a')),^OldAliasToNewAlias(first='2', second=buildTableAlias('2')),^OldAliasToNewAlias(first='3', second=buildTableAlias('3a'))]; - let res = mergeOldAliasToNewAlias(false, ^OldAliasToNewAlias(first='1', second=buildTableAlias('1a')), $aliasList); - assertEquals(['1','3'], $res.first); + let res = mergeOldAliasToNewAlias(false, ^OldAliasToNewAlias(first='1', second=buildTableAlias('1a')), $aliasList); + assertEquals(['1','3'], $res.first); } function <> meta::relational::tests::functions::pureToSqlQuery::testReAliasMergedJoinOperations():Boolean[1] @@ -158,22 +159,22 @@ function <> meta::relational::tests::functions::pureToSqlQuery::testR let child1Temp = buildJoinTreeNode($rootTemp,'child1','root_to_child1', false); let child2 = buildJoinTreeNode($child1Temp,'child2','child1_to_child2', false); let child3 = buildJoinTreeNode($child2,'child3','child2_to_child3', true); - + let child1 = ^$child1Temp(childrenData=^$child2(childrenData=$child3)); - + let metaData = buildAndTransformJoinMetaData($child1,[],{j:Join[1], jtn:JoinTreeNode[*]|$j}); assertEquals(['child2', 'orphan_child3', 'child1'], $metaData.joinAliases); assertEquals(['child1', 'child2', 'child3'], $metaData.jtnAliases); assertEquals(['orphan_child3'],$metaData.missingJoinAliases); - + let oldToNewAlias = ^OldAliasToNewAlias(first='orphan_child3', second=buildTableAlias('orphan_child3_updated')); let rootWithRealiasedJoin = reAliasMergedJoinOperations(^MergeResultContainer(node=^$rootTemp(childrenData=$child1), oldToNewAliases=$oldToNewAlias)).node; let rootWithRealiasedJoinMetaData = buildAndTransformJoinMetaData($rootWithRealiasedJoin.childrenData->at(0)->cast(@JoinTreeNode),[],{j:Join[1], jtn:JoinTreeNode[*]|$j}); assertEquals(['child2', 'orphan_child3_updated', 'child1'], $rootWithRealiasedJoinMetaData.joinAliases); assertEquals(['child1', 'child2', 'child3'], $rootWithRealiasedJoinMetaData.jtnAliases); - assertEquals(['orphan_child3_updated'],$rootWithRealiasedJoinMetaData.missingJoinAliases); + assertEquals(['orphan_child3_updated'],$rootWithRealiasedJoinMetaData.missingJoinAliases); } function meta::relational::tests::functions::pureToSqlQuery::testOrderImmediateChildNodeByJoinAliasDependencies():Boolean[1] @@ -182,16 +183,16 @@ function meta::relational::tests::functions::pureToSqlQuery::testOrderImmediateC let rc1 = buildJoinTreeNode($rootTemp,'rc1','root_to_child1', false); let rc1c1WithOrphanJoinAlias = buildJoinTreeNode($rc1,'rc2','root_to_child1_to_child1', true); let rc2 = buildJoinTreeNode($rootTemp,'orphan_rc2','root_to_child2', false); - + let root = ^$rootTemp(childrenData=[^$rc1(childrenData=$rc1c1WithOrphanJoinAlias), $rc2]); let sql = ^SelectSQLQuery(data=$root); - + assertEquals('rc1',$sql->at(0).data->map(x|$x->children())->at(0)->toOne().alias.name); assertEquals('orphan_rc2',$sql->at(0).data->map(x|$x->children())->at(1)->toOne().alias.name); let sqlWithReorderedChildren = $sql->orderImmediateChildNodeByJoinAliasDependencies(); assertEquals('orphan_rc2',$sqlWithReorderedChildren->at(0).data->map(x|$x->children())->at(0)->toOne().alias.name); assertEquals('rc1',$sqlWithReorderedChildren->at(0).data->map(x|$x->children())->at(1)->toOne().alias.name); - + let rc1c1 = buildJoinTreeNode($rc1,'rc2','root_to_child1_to_child1', false); let root2 = ^$rootTemp(childrenData=[^$rc1(childrenData=$rc1c1), $rc2]); let sql2 = ^SelectSQLQuery(data=$root2); @@ -207,13 +208,13 @@ function <> meta::relational::tests::functions::pureToSqlQuery::testF let oldAliasToNewAliasMap1 = [^OldAliasToNewAlias(first='t1', second=$tableAliasToTable1), ^OldAliasToNewAlias(first='t2', second=$tableAliasToTable2)]; let found1 = findAliasMappingBySchemaName($tableAliasToTable1.relation(), $oldAliasToNewAliasMap1); assertEquals('s1', $found1->toOne().second.relation()->cast(@Table).schema.name); - + let tableAliasToView1 = ^TableAlias(name='v1', relationalElement=^View(name = '', schema=^Schema(name='s1', database=^Database()), mainTableAlias=$tableAliasToTable1, userDefinedPrimaryKey=false)); let tableAliasToView2 = ^TableAlias(name='v2', relationalElement=^View(name = '', schema=^Schema(name='s2', database=^Database()), mainTableAlias=$tableAliasToTable2, userDefinedPrimaryKey=false)); let oldAliasToNewAliasMap2 = [^OldAliasToNewAlias(first='v1', second=$tableAliasToView1), ^OldAliasToNewAlias(first='v2', second=$tableAliasToView2)]; let found2 = findAliasMappingBySchemaName($tableAliasToView2.relation(), $oldAliasToNewAliasMap2); assertEquals('s2', $found2->toOne().second.relation()->cast(@View).schema.name); - + let tableAliastoSQLquery = ^TableAlias(name='q1', relationalElement=^SelectSQLQuery()); let oldAliasToNewAliasMap3 = [^OldAliasToNewAlias(first='t1', second=$tableAliasToTable1)]; let found3 = findAliasMappingBySchemaName($tableAliastoSQLquery.relation(), $oldAliasToNewAliasMap3); @@ -223,7 +224,7 @@ function <> meta::relational::tests::functions::pureToSqlQuery::testF function <> meta::relational::tests::functions::pureToSqlQuery::buildJoinTreeNode(source: RelationalTreeNode[1], aliasName:String[1], joinName:String[1], useOrphanJoinAliasName:Boolean[1]):JoinTreeNode[1]{ let targetAlias = buildTableAlias($aliasName); let targetJoinOpAlias= if($useOrphanJoinAliasName,| buildTableAlias('orphan_'+$aliasName),|$targetAlias); - + let srcOpTac = ^TableAliasColumn(alias=$source.alias, column=^Column(name='sourceCol', type=^meta::relational::metamodel::datatype::DataType())); let targetOpTac = ^TableAliasColumn(alias=$targetJoinOpAlias, column=^Column(name='sourceCol', type=^meta::relational::metamodel::datatype::DataType())); let operation = ^DynaFunction(name = 'equal', parameters=[$srcOpTac, $targetOpTac]); @@ -242,7 +243,7 @@ meta::relational::tests::functions::pureToSqlQuery::simpleFunctionExpressionTran let x = {|now()}->evaluateAndDeactivate(); let fe = $x.expressionSequence->cast(@FunctionExpression)->toOne(); - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let mapping = meta::relational::tests::simpleRelationalMapping; let sql = meta::relational::functions::pureToSqlQuery::toSQLQuery($fe, $mapping, ^Map>() , [], noDebug(), meta::relational::extension::relationalExtensions()); @@ -258,7 +259,7 @@ function <> meta::relational::tests::functions::pureToSqlQuery::simpl let x = {|adjust(now(), 1, DurationUnit.MONTHS)}->evaluateAndDeactivate(); let fe = $x.expressionSequence->cast(@FunctionExpression)->toOne(); - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let mapping = meta::relational::tests::simpleRelationalMapping; let sql = meta::relational::functions::pureToSqlQuery::toSQLQuery($fe, $mapping, ^Map>() , [], noDebug(), meta::relational::extension::relationalExtensions()); @@ -269,7 +270,7 @@ function <> meta::relational::tests::functions::pureToSqlQuery::simpl function <> meta::relational::tests::functions::pureToSqlQuery::addDriverTablePkForProject() : Boolean[1] { - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let mapping = meta::relational::tests::simpleRelationalMapping; let debugContext = noDebug(); let extensions = meta::relational::extension::relationalExtensions(); @@ -294,11 +295,11 @@ function <> meta::relational::tests::functions::pureToSqlQuery::addDr function <> meta::relational::tests::functions::pureToSqlQuery::testImportDataFlow() : Boolean[1] { - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let mapping = meta::relational::tests::simpleRelationalMapping; let debugContext = noDebug(); let extensions = meta::relational::extension::relationalExtensions(); - + let schema = meta::relational::tests::dbInc->schema('default'); let personTable = $schema->map(x|$x->table('personTable'))->toOne(); let personAddressIdCol = $personTable->column('ADDRESSID')->toOne(); @@ -306,7 +307,7 @@ function <> meta::relational::tests::functions::pureToSqlQuery::testI let firmAddressIdCol = $firmTable->column('ADDRESSID')->toOne(); let addressTable = $schema->map(x|$x->table('addressTable'))->toOne(); let addressStreetCol = $addressTable->column('STREET')->toOne(); - + let context = ^RelationalExecutionContext( importDataFlow=true, importDataFlowAddFks=true, diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/relationalExtension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/relationalExtension.pure index dd2b88d125a..595ad0f131d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/relationalExtension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/relationalExtension.pure @@ -14,8 +14,10 @@ import meta::relational::metamodel::relation::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::execute::*; import meta::relational::functions::typeInference::*; @@ -32,20 +34,41 @@ function meta::relational::metamodel::execute::executeInDb(sql:String[1], databa meta::relational::metamodel::execute::executeInDb($sql, $databaseConnection, 0, 1000) } +function meta::relational::metamodel::execute::executeInDb(sql:String[1], connectionStore:ConnectionStore[1]):ResultSet[1] +{ + let databaseConnection = $connectionStore.connection->cast(@DatabaseConnection); + meta::relational::metamodel::execute::executeInDb($sql, $databaseConnection, 0, 1000); +} + + function meta::relational::functions::database::executeInDb(str: String[1] , connection:DatabaseConnection[1], debug:Boolean[1]):ResultSet[1] { print(if($debug,|$str+'\n',|'')); executeInDb($str, $connection); } +function meta::relational::functions::database::executeInDb(str: String[1] , connectionStore:ConnectionStore[1], debug:Boolean[1]):ResultSet[1] +{ + let connection = $connectionStore.connection->cast(@DatabaseConnection); + print(if($debug,|$str+'\n',|'')); + executeInDb($str, $connection); +} + + function meta::relational::metamodel::execute::loadCsvToDbTable(filePath:String[1], table:Table[1], databaseConnection:DatabaseConnection[1]):Nil[0] { loadCsvToDbTable($filePath, $table, $databaseConnection, []) } +function meta::relational::metamodel::execute::loadCsvToDbTable(filePath:String[1], table:Table[1], connectionStore:ConnectionStore[1]):Nil[0] +{ + let databaseConnection = $connectionStore.connection->cast(@DatabaseConnection); + loadCsvToDbTable($filePath, $table, $databaseConnection, []); +} + function meta::relational::metamodel::execute::createTestDatabaseConnection():DatabaseConnection[1] { - ^TestDatabaseConnection(element='TEST', type=DatabaseType.H2); + ^TestDatabaseConnection(type=DatabaseType.H2); } function meta::relational::metamodel::execute::resultSetToTDS(resultSet:ResultSet[1]):TabularDataSet[1] @@ -56,9 +79,9 @@ function meta::relational::metamodel::execute::resultSetToTDS(resultSet:ResultSe let rows = $resultSet.rows->map(r | ^TDSRow(values=$r.values->map(v | if($v == $sqlNull, | $tdsNull, | $v)))); let tds =^TabularDataSet(columns=$columns, rows=$rows); - + $tds.rows->map(r|mutateAdd($r, 'parent', $tds)); - + $tds; } @@ -71,17 +94,17 @@ function meta::relational::runtime::mergeRuntimes(runtimes:Runtime[1..*]):Runtim { if($runtimes->distinct()->size()==1, |$runtimes->at(0), - | ^Runtime(connections = $runtimes.connections->distinct()) + | ^Runtime(connectionStores= $runtimes.connectionStores->distinct()) ); } function meta::relational::runtime::dataSourceEquality(a:DataSource[1],b:DataSource[1]):Boolean[1] { $a.host == $b.host && - $a.port == $b.port && - $a.name == $b.name && - $a.type == $b.type && - $a.serverPrincipal == $b.serverPrincipal; + $a.port == $b.port && + $a.name == $b.name && + $a.type == $b.type && + $a.serverPrincipal == $b.serverPrincipal; } @@ -97,18 +120,18 @@ function meta::relational::functions::typeInference::inferDynaFunctionReturnType function meta::relational::functions::typeInference::inferRelationalType(rop: RelationalOperationElement[1]):meta::relational::metamodel::datatype::DataType[0..1] { - inferRelationalType($rop, true); + inferRelationalType($rop, true); } function meta::relational::functions::typeInference::inferRelationalType(rop: RelationalOperationElement[1], translationContext:TranslationContext[1]):meta::relational::metamodel::datatype::DataType[0..1] { - let relationalType = inferRelationalType($rop); + let relationalType = inferRelationalType($rop); $relationalType->translateCoreTypeToDbSpecificType($translationContext); } function meta::relational::functions::typeInference::inferRelationalType(rop: RelationalOperationElement[1], failOnMatchFailure:Boolean[1], translationContext:TranslationContext[1]):meta::relational::metamodel::datatype::DataType[0..1] { - let relationalType = inferRelationalType($rop, $failOnMatchFailure); + let relationalType = inferRelationalType($rop, $failOnMatchFailure); $relationalType->translateCoreTypeToDbSpecificType($translationContext); } @@ -126,7 +149,7 @@ function meta::relational::functions::typeInference::inferRelationalType(rop: Re d: Float[1] | ^meta::relational::metamodel::datatype::Float(), d: StrictDate[1] | ^meta::relational::metamodel::datatype::Date(), d: Date[1] | ^meta::relational::metamodel::datatype::Timestamp(), - d: meta::relational::functions::pureToSqlQuery::metamodel::VarPlaceHolder[1] | + d: meta::relational::functions::pureToSqlQuery::metamodel::VarPlaceHolder[1] | if($d.type == String, | ^meta::relational::metamodel::datatype::Varchar(size = 4000), | if($d.type == Integer, @@ -224,7 +247,7 @@ function <> meta::relational::functions::typeInference::getDynaF {params: RelationalOperationElement[*] | ^meta::relational::metamodel::datatype::Integer()} ) ]) - ), + ), pair( 'asin', @@ -326,7 +349,7 @@ function <> meta::relational::functions::typeInference::getDynaF {params: RelationalOperationElement[*] | ^meta::relational::metamodel::datatype::Varchar(size = 1)} ) ]) - ), + ), pair( 'coalesce', @@ -406,7 +429,7 @@ function <> meta::relational::functions::typeInference::getDynaF {params: RelationalOperationElement[*] | ^meta::relational::metamodel::datatype::Double()} ) ]) - ), + ), pair( 'count', @@ -616,7 +639,7 @@ function <> meta::relational::functions::typeInference::getDynaF {params: RelationalOperationElement[*] | ^meta::relational::metamodel::datatype::Timestamp()} ) ]) - ), + ), pair( 'firstMinuteOfHour', @@ -626,7 +649,7 @@ function <> meta::relational::functions::typeInference::getDynaF {params: RelationalOperationElement[*] | ^meta::relational::metamodel::datatype::Timestamp()} ) ]) - ), + ), pair( 'firstSecondOfMinute', @@ -636,7 +659,7 @@ function <> meta::relational::functions::typeInference::getDynaF {params: RelationalOperationElement[*] | ^meta::relational::metamodel::datatype::Timestamp()} ) ]) - ), + ), pair( 'firstMillisecondOfSecond', @@ -646,7 +669,7 @@ function <> meta::relational::functions::typeInference::getDynaF {params: RelationalOperationElement[*] | ^meta::relational::metamodel::datatype::Timestamp()} ) ]) - ), + ), pair( 'floor', @@ -854,7 +877,7 @@ function <> meta::relational::functions::typeInference::getDynaF {params: RelationalOperationElement[*] | ^meta::relational::metamodel::datatype::Double()} ) ]) - ), + ), pair( 'ltrim', @@ -888,7 +911,7 @@ function <> meta::relational::functions::typeInference::getDynaF {params: RelationalOperationElement[*] | ^meta::relational::metamodel::datatype::Varchar(size = 32)} ) ]) - ), + ), pair( 'min', @@ -983,7 +1006,7 @@ function <> meta::relational::functions::typeInference::getDynaF ) ]) ), - + pair( 'notEqual', list([ @@ -1142,7 +1165,7 @@ function <> meta::relational::functions::typeInference::getDynaF {params: RelationalOperationElement[*] | $params->at(0)->inferRelationalType()} ) ]) - ), + ), pair( 'right', @@ -1210,7 +1233,7 @@ function <> meta::relational::functions::typeInference::getDynaF {params: RelationalOperationElement[*] | ^meta::relational::metamodel::datatype::Varchar(size = 40)} ) ]) - ), + ), pair( 'sha256', @@ -1220,7 +1243,7 @@ function <> meta::relational::functions::typeInference::getDynaF {params: RelationalOperationElement[*] | ^meta::relational::metamodel::datatype::Varchar(size = 64)} ) ]) - ), + ), pair( 'sign', @@ -1230,7 +1253,7 @@ function <> meta::relational::functions::typeInference::getDynaF {params: RelationalOperationElement[*] | ^meta::relational::metamodel::datatype::Integer()} ) ]) - ), + ), pair( 'sin', @@ -1291,7 +1314,7 @@ function <> meta::relational::functions::typeInference::getDynaF ) ]) ), - + pair( 'sqlFalse', list([ @@ -1542,7 +1565,7 @@ function <> meta::relational::functions::typeInference::getSafeT if($safeType->instanceOf(meta::relational::metamodel::datatype::Char) || $safeType->instanceOf(meta::relational::metamodel::datatype::Varchar), | ^meta::relational::metamodel::datatype::Varchar(size = [if($type1->instanceOf(meta::relational::metamodel::datatype::Other), | 0, | $type1->getSize()), if($type2->instanceOf(meta::relational::metamodel::datatype::Other), | 0, | $type2->getSize())]->max()), | if($safeType->instanceOf(meta::relational::metamodel::datatype::Numeric) || $safeType->instanceOf(meta::relational::metamodel::datatype::Decimal), - {| + {| let scale = max([getDecimalScale($type1), getDecimalScale($type2)]); let precision = max([getDecimalIntegerPrecision($type1), getDecimalIntegerPrecision($type2)]) + $scale; ^meta::relational::metamodel::datatype::Decimal(precision = $precision, scale = $scale); @@ -1595,7 +1618,7 @@ function <> meta::relational::functions::typeInference::safeType pair(meta::relational::metamodel::datatype::Date, list([meta::relational::metamodel::datatype::Date])), pair(meta::relational::metamodel::datatype::Timestamp, list([meta::relational::metamodel::datatype::Timestamp])), pair(meta::relational::metamodel::datatype::Bit, list([meta::relational::metamodel::datatype::Bit])), - pair(meta::relational::metamodel::datatype::Other, list([meta::relational::metamodel::datatype::TinyInt, meta::relational::metamodel::datatype::SmallInt, meta::relational::metamodel::datatype::Integer, meta::relational::metamodel::datatype::Float, meta::relational::metamodel::datatype::BigInt, meta::relational::metamodel::datatype::Double, meta::relational::metamodel::datatype::Numeric, + pair(meta::relational::metamodel::datatype::Other, list([meta::relational::metamodel::datatype::TinyInt, meta::relational::metamodel::datatype::SmallInt, meta::relational::metamodel::datatype::Integer, meta::relational::metamodel::datatype::Float, meta::relational::metamodel::datatype::BigInt, meta::relational::metamodel::datatype::Double, meta::relational::metamodel::datatype::Numeric, meta::relational::metamodel::datatype::Decimal, meta::relational::metamodel::datatype::Char, meta::relational::metamodel::datatype::Varchar, meta::relational::metamodel::datatype::Date, meta::relational::metamodel::datatype::Timestamp, meta::relational::metamodel::datatype::Bit, meta::relational::metamodel::datatype::Other])) ]) -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/relationalMappingExecution.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/relationalMappingExecution.pure index 1918dee39ab..e43f4eca2c7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/relationalMappingExecution.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/relationalMappingExecution.pure @@ -34,7 +34,9 @@ import meta::relational::metamodel::execute::*; import meta::relational::metamodel::join::*; import meta::relational::metamodel::relation::*; import meta::pure::metamodel::path::*; +import meta::core::runtime::*; import meta::pure::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::milestoning::*; import meta::pure::router::routing::*; @@ -148,7 +150,7 @@ function meta::relational::mapping::generateSQLExecutionNode(query:SQLQuery[1], function meta::relational::mapping::updateConnection(conn:Connection[1], extensions:Extension[*]):Connection[1] { $conn->match($extensions->map(e|$e.moduleExtension('relational')->cast(@RelationalExtension).relational_plan_updateConnection)->concatenate([ - c:DatabaseConnection[1] | $c + c:DatabaseConnection[1] | $c ])->toOneMany()) } @@ -195,8 +197,8 @@ function meta::relational::mapping::relationalPlanSupportFunctions(c:DatabaseCon function meta::relational::mapping::varPlaceHolderToStringFunction():String[*] { '<#function varPlaceHolderToString optionalParameter prefix suffix replacementMap defaultValue>' + - '<#if optionalParameter?is_enumerable && !optionalParameter?has_content>'+ - '<#return defaultValue>'+ + '<#if optionalParameter?is_enumerable && !optionalParameter?has_content>'+ + '<#return defaultValue>'+ '<#else>' + '<#assign newParam = optionalParameter>' + '<#list replacementMap as oldValue, newValue>' + @@ -213,7 +215,7 @@ function meta::relational::mapping::optionalVarPlaceHolderOperationSelectorFunct '<#return trueClause>'+ '<#else>'+ '<#return falseClause>'+ - ''; + ''; } function meta::relational::mapping::equalEnumOperationSelectorFunction():String[1] @@ -224,7 +226,7 @@ function meta::relational::mapping::equalEnumOperationSelectorFunction():String[ '<#return equalDyna>'+ '<#else>'+ '<#return inDyna>'+ - ''; + ''; } function meta::relational::mapping::collectionSizeFunction():String[1] @@ -274,12 +276,13 @@ function meta::relational::mapping::execution(store: Database[1], f:FunctionExpr let originalQuery = $f->toSQLQuery($m, $inScopeVars, $relationalExecutionContext, $debug, $extensions); let toSqlQueryDurationMilliseconds = ($toSqlQueryStart->dateDiff(now(),DurationUnit.MILLISECONDS)); - let connections = $runtime.connections->filter(c | $c->instanceOf(DatabaseConnection)); + let connections = $runtime.connectionStores->filter(c | $c.connection->instanceOf(DatabaseConnection)); let storeRuntime = if($connections->size() <= 1, | $runtime->toOne(), | let oldRuntime = $runtime->toOne(); let dbConn = $oldRuntime->connectionByElement($store)->cast(@DatabaseConnection); - ^$oldRuntime(connections = $dbConn); + let dbConnectionStore = $oldRuntime.connectionStores->filter(c|$c.connection==$dbConn); + ^$oldRuntime(connectionStores = $dbConnectionStore); ); let postProcessorResult = postProcessQuery($exeCtx, $originalQuery, $storeRuntime, $store, $extensions); @@ -316,7 +319,7 @@ function meta::relational::mapping::execution(store: Database[1], f:FunctionExpr function meta::relational::mapping::sqlCommentPureExecution(): String[1] { - '-- "executionTraceID" : "' + meta::pure::runtime::generateGuid() + '"'; + '-- "executionTraceID" : "' + meta::core::runtime::generateGuid() + '"'; } function meta::relational::mapping::executeQuery(sql:String[1], query:SQLQuery[0..1], paths: Pair[*], connection : DatabaseConnection[1], runtime: Runtime[1], class:Type[0..1], ext:RoutedValueSpecification[0..1], m: Mapping[1], sqlGenerationTimeInNanoSecond:Integer[0..1], g_queryTimeOutInSeconds: Integer[0..1], exeCtx:ExecutionContext[1], extensions: Extension[*], debug:DebugContext[1]):Result[1] @@ -580,13 +583,13 @@ function meta::relational::mapping::processProperty(o:Any[1], property:Property< let keyInformation = $o->getHiddenPayload()->cast(@KeyInformation); let setImplementation = $keyInformation.static.setImplementation->toOne()->cast(@RelationalInstanceSetImplementation); let extensions = $keyInformation.static.extensions; - + let mapping = $keyInformation.static.mapping; let state = ^State(inScopeVars = ^Map>(), mapping=$mapping, supportedFunctions=getSupportedFunctions(), inProject=false, inFilter=false, filterChainDepth= 0, inProjectFunctions=false, processingProjectionThread = false, shouldIsolate=false, contextBasedSupportedFunctions=getContextBasedSupportedFunctions()); - let sourceDb = $keyInformation.sourceConnection->cast(@DatabaseConnection).element; - let db = if ($sourceDb->instanceOf(Database),|$sourceDb,|[])->cast(@Database); + let sourceDb = $keyInformation.static.runtime.connectionStores->filter(c|$c.connection==$keyInformation.sourceConnection).element; + let db = if($sourceDb->isEmpty() || !$sourceDb->toOne()->instanceOf(Database),|[],|$sourceDb->toOne())->cast(@Database); let sqlQueryToStringStart = now(); let targetImplSqlQueryPair = generatePropertySql($setImplementation, $property, JoinType.INNER, $keyInformation.pk, $mapping, $keyInformation.static.runtime, $db, $keyInformation.static.exeCtx, $extensions); @@ -625,7 +628,7 @@ function meta::relational::mapping::generatePropertySql(setImplementation: Relat | getRelationalElementWithInnerJoin($srcSetImplementation, $mainTable, [], '', $state, $context, $extensions), | $mainTable ); - + let currentNode = ^RootJoinTreeNode(alias=^TableAlias(name = 'root', relationalElement = $updatedMainTable)); let base = ^SelectWithCursor( diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/relationalTypeTranslations.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/relationalTypeTranslations.pure index 267fb9534e5..9d470a4a53a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/relationalTypeTranslations.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/relationalTypeTranslations.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::translation::*; import meta::relational::functions::sqlQueryToString::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/router/tests/testPreeval.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/router/tests/testPreeval.pure index 97c41e40d88..a0b69e91421 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/router/tests/testPreeval.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/router/tests/testPreeval.pure @@ -27,6 +27,7 @@ import meta::pure::mapping::*; import meta::pure::mapping::modelToModel::test::simple::*; import meta::pure::mapping::modelToModel::test::shared::dest::*; import meta::pure::mapping::modelToModel::test::shared::src::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function <> meta::pure::router::preeval::tests::testPrerouting41():Boolean[1] @@ -64,7 +65,7 @@ function <> meta::pure::router::preeval::tests::testPrerouting41():Bo function <> meta::pure::router::preeval::tests::testPrerouting42():Boolean[1] { let runtime = ^Runtime(); - + let input = {name:String[1]| let person = meta::pure::router::preeval::tests::Person.all()->toOne()->graphFetch( #{ @@ -73,7 +74,7 @@ function <> meta::pure::router::preeval::tests::testPrerouting42():Bo } }# ); - + let person2 = meta::pure::router::preeval::tests::Person.all()->toOne()->graphFetch( #{ meta::pure::router::preeval::tests::Person{ @@ -81,7 +82,7 @@ function <> meta::pure::router::preeval::tests::testPrerouting42():Bo } }# )->from(meta::relational::tests::simpleRelationalMapping, $runtime); - + meta::pure::router::preeval::tests::Person.all() ->filter(x | ($x.firstName == $person.firstName) || ($x.firstName == $name) || $x.firstName == $person2.firstName) ->project([ @@ -93,15 +94,15 @@ function <> meta::pure::router::preeval::tests::testPrerouting42():Bo }; let expected = {name:String[1]| - + let person = meta::pure::router::preeval::tests::Person.all()->toOne()->graphFetch( #{ meta::pure::router::preeval::tests::Person{ firstName } }# - ); - + ); + let person2 = meta::pure::router::preeval::tests::Person.all()->toOne()->graphFetch( #{ meta::pure::router::preeval::tests::Person{ @@ -129,4 +130,4 @@ function <> meta::pure::router::preeval::tests::testPrerouting_Store( let input = {| meta::relational::tests::db}; let expected = {| meta::relational::tests::db}; assertRoundTrip($input, $expected); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/router/tests/testRouting.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/router/tests/testRouting.pure index 15955187b20..4d2e99744c3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/router/tests/testRouting.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/router/tests/testRouting.pure @@ -14,6 +14,7 @@ import meta::relational::tests::routing::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; function meta::relational::tests::routing::testColumnSpecificationRouting():Boolean[1] { diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/router/tests/testRouting1.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/router/tests/testRouting1.pure index 4fbe1c4c883..5b5f235a7ce 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/router/tests/testRouting1.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/router/tests/testRouting1.pure @@ -15,6 +15,7 @@ import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::pure::profiles::*; import meta::relational::tests::query::routing::*; @@ -57,8 +58,8 @@ function <> meta::relational::tests::query::routing::testRoutingTwoEx { let fn = {| let personName = 'John'; Person.all()->filter(p|$p.firstName == $personName);}; - - + + let result = execute($fn, simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 2); assertEquals(['Johnson', 'Hill'], $result.values.lastName); @@ -72,8 +73,8 @@ function <> {test.excludePlatform = 'Java compiled let legalName = $firm.legalName; Person.all()->filter(p|$p.firm->exists(f | $f.legalName == $legalName->toOne())); }; - - + + let result = execute($fn, simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 1); assertEquals(['Roberts'], $result.values.lastName); @@ -88,8 +89,8 @@ function <> {test.excludePlatform = 'Java compiled let fn = {| let firm = Firm.all()->filter(f|$f.legalName->startsWith('Firm A') || $f.legalName->startsWith('Firm X')); let legalNames = $firm.legalName->makeString(','); }; - - + + let result = execute($fn, simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 1); assertEquals('Firm X,Firm A', $result.values); @@ -104,8 +105,8 @@ function <> meta::relational::tests::query::routing::testRoutingUs let people = Person.all()->filter(p|$p.lastName == $name1 || $p.lastName == $name2); $people->filter(p|$p.lastName == $name2); }; - - + + let result = execute($fn, simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 1); assertEquals('Firm X,Firm A', $result.values); @@ -119,7 +120,7 @@ function <> meta::relational::tests::query::routin let fn = {| let name2 = 'Smith'; ['Johnson', 'Smith']->filter(p|$p == $name2); }; - + let result = execute($fn, simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 1); assertEquals('Smith', $result.values); @@ -131,8 +132,8 @@ function <> meta::relational::tests::query::routin let fn = {| let firm = ^Firm(legalName='Firm A'); Person.all()->filter(p|$p.firm->exists(f | $f.legalName == $firm.legalName)); }; - - + + let result = execute($fn, simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 1); assertEquals(['Roberts'], $result.values.lastName); @@ -145,8 +146,8 @@ function <> meta::relational::tests::query::routing::testRoutingTwoF let fn = {| let firm = Firm.all()->filter(f | $f.legalName =='Firm A'); Person.all()->filter(p|$p.firm->exists(f | $f.legalName == $firm.legalName)); }; - - + + let result = execute($fn, simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 1); assertEquals(['Roberts'], $result.values.lastName); @@ -160,7 +161,7 @@ function <> meta::relational::tests::query::routin let fn = {| let firm = Firm.all()->filter(f | $f.legalName =='Firm A')->toOne(); Person.all()->project([p | $p.nameWithTitle($firm.legalName)], 'title'); }; - + let result = execute($fn, simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 1); assertEquals(['Firm A Peter Smith', 'Firm A John Johnson', 'Firm A John Hill', 'Firm A Anthony Allen', 'Firm A Fabrice Roberts', 'Firm A Oliver Hill', 'Firm A David Harris', 'Firm A No address Smith', 'Firm A No firm no Firm', 'Firm A New York', 'Firm A Elena Firm B', 'Firm A Don New York'], $result.values->toOne().rows.values); @@ -182,7 +183,7 @@ function <> meta::relational::tests::query::routing::testRoutingOfSim { let f = {|Firm.all()->project([f | $f.nameAndAddress()],'nameAndAddress')}; let routed = $f->routeFunction(simpleRelationalMapping, testRuntime(), ^meta::pure::runtime::ExecutionContext(), meta::relational::extension::relationalExtensions(), noDebug()); - + let wrappedFunc = $routed.expressionSequence->evaluateAndDeactivate()->cast(@meta::pure::router::metamodel::clustering::ClusteredValueSpecification).val->toOne()->byPassValueSpecificationWrapper()->cast(@SimpleFunctionExpression); let lambda = $wrappedFunc.parametersValues->at(1)->byPassRouterInfo()->cast(@InstanceValue).values->at(0)->cast(@LambdaFunction); let nameAndAddressQp = $lambda.expressionSequence->cast(@FunctionExpression).func->cast(@QualifiedProperty); @@ -190,7 +191,7 @@ function <> meta::relational::tests::query::routing::testRoutingOfSim let routedParams = $plusFunc.parametersValues->cast(@InstanceValue).values; let lhsRouted=$routedParams->at(0)->evaluateAndDeactivate(); let rhsRouted=$routedParams->at(2)->evaluateAndDeactivate(); - + assert($lhsRouted->instanceOf(StoreMappingRoutedValueSpecification)); assert($lhsRouted->cast(@StoreMappingRoutedValueSpecification).sets.class.name == 'Firm'); assert($lhsRouted->cast(@StoreMappingRoutedValueSpecification).value->instanceOf(SimpleFunctionExpression)); @@ -206,7 +207,7 @@ function <> meta::relational::tests::projection::simple::testRoutingW function <> meta::relational::tests::query::routing::testRoutingPureFunctionWithMultipleExpressions():Boolean[1] { let fn = {| doSomething(3)}; - + let result = execute($fn, simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('A chicken', $result.values); } @@ -214,11 +215,11 @@ function <> meta::relational::tests::query::routing::testRoutingPure function <> meta::relational::tests::query::routing::multipleexpressions::testPlatformExpressionDependencyOnAFromExpression():Boolean[1] { let f = {| let firstFirmLegalName = Firm.all()->meta::pure::mapping::from(simpleRelationalMapping, testRuntime())->at(0).legalName; - + let otherLegalName = $firstFirmLegalName + 'Test'; - + }; - + let routingResult = routeFunction($f, ^meta::pure::runtime::ExecutionContext(), meta::relational::extension::relationalExtensions(), noDebug()); assertEquals(1, $routingResult->size()); assertEquals(' | {Platform> [strategy_wrapper /let firstFirmLegalName = {Platform> {Platform> [1 meta_relational_tests_model_simple_Firm/{meta::relational::tests::db> [1 meta_relational_tests_model_simple_Firm/[1 meta_relational_tests_model_simple_Firm/Class Firm].all()]} -> at(0)]}.legalName}]};\n {Platform> [strategy_wrapper /let otherLegalName = [$firstFirmLegalName, \'Test\'] -> plus()]};', $routingResult->map(f|$f->meta::pure::router::printer::asString())->joinStrings('')); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/router/tests/testRoutingWithInclude.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/router/tests/testRoutingWithInclude.pure index 982edb25716..197018c3c3f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/router/tests/testRoutingWithInclude.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/router/tests/testRoutingWithInclude.pure @@ -29,7 +29,7 @@ Database meta::relational::tests::database::mainDb ( include meta::relational::tests::database::dbA include meta::relational::tests::database::dbB - + Join Firm_Person([meta::relational::tests::database::mainDb]personTable.FIRMID = [meta::relational::tests::database::mainDb]firmTable.ID) ) @@ -52,6 +52,7 @@ Mapping meta::relational::tests::database::mainMapping import meta::relational::metamodel::join::*; import meta::relational::tests::tds::tdsJoin::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::database::setUp(): Boolean[1] { 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/connection.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/runtime/connection/connection.pure index 9d69632bdd8..5b8b8ed086c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/runtime/connection/connection.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/runtime/connection/connection.pure @@ -13,6 +13,8 @@ // limitations under the License. import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::relational::metamodel::*; @@ -25,7 +27,7 @@ import meta::pure::alloy::connections::alloy::authentication::*; All connection types here are only supported in Legend Engine. */ -Class meta::pure::alloy::connections::RelationalDatabaseConnection extends meta::relational::runtime::DatabaseConnection +Class meta::external::store::relational::runtime::RelationalDatabaseConnection extends meta::external::store::relational::runtime::DatabaseConnection { datasourceSpecification: meta::pure::alloy::connections::alloy::specification::DatasourceSpecification[1]; authenticationStrategy: meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy[1]; 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/postprocessor.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/runtime/connection/postprocessor.pure index 49993e9c183..9185521bb0d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/runtime/connection/postprocessor.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/runtime/connection/postprocessor.pure @@ -13,6 +13,8 @@ // limitations under the License. import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::relational::metamodel::*; @@ -97,4 +99,4 @@ Class meta::relational::postProcessor::TableNameMapper extends meta::relational: out : String[1]; toString() {'{in: '+$this.in+', out:'+$this.out+'}'}:String[1]; -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/runtime/executionContext/executionContext.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/runtime/executionContext/executionContext.pure index f6592739555..e099842d291 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/runtime/executionContext/executionContext.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/runtime/executionContext/executionContext.pure @@ -14,8 +14,10 @@ import meta::relational::metamodel::relation::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::execute::*; import meta::relational::functions::typeInference::*; @@ -30,4 +32,4 @@ Class meta::relational::runtime::RelationalExecutionContext extends ExecutionCon importDataFlowAddFks : Boolean[0..1]; importDataFlowFksByTable : Map>[0..1]; importDataFlowImplementationCount : Integer[0..1]; -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/DDL/testDDL.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/DDL/testDDL.pure index 0612139eff4..a95e807b04b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/DDL/testDDL.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/DDL/testDDL.pure @@ -22,19 +22,20 @@ import meta::relational::metamodel::join::*; import meta::relational::metamodel::execute::*; import meta::relational::functions::toDDL::*; import meta::relational::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; function <> meta::relational::tests::ddl::testSetupDataSqlGeneration():Boolean[1] { - let parsedRecords =[ + let parsedRecords =[ list(['default']), list(['personTable']), list(['id', 'firstName', 'lastName', 'age', 'addressId', 'firmId', 'managerId']), list(['1', 'Peter', 'Smith', '23', '1' ,'1', '2']), list(['']) ]; - // this parsed data format should be documented and standardised - + // this parsed data format should be documented and standardised + let sqls = meta::alloy::service::execution::setUpDataSQLs($parsedRecords, meta::relational::tests::dbInc, meta::relational::functions::sqlQueryToString::createDbConfig(DatabaseType.H2)); let expectedSqls= [ @@ -67,7 +68,7 @@ function <> meta::relational::tests::ddl::testSetupDataSqlGeneration 'insert into personTable (ID,FIRSTNAME,LASTNAME,AGE,ADDRESSID,FIRMID,MANAGERID) values (1,\'Peter\',\'Smith\',23,1,1,2);' ]; assertSameElements($sqls,$expectedSqls); -} +} @@ -81,7 +82,7 @@ function <> meta::relational::tests::ddl::testSetupDataSqlGeneration '1,Peter,Smith,23,1,1,2'; let sqls = meta::alloy::service::execution::setUpDataSQLs($records, meta::relational::tests::dbInc, meta::relational::functions::sqlQueryToString::createDbConfig(DatabaseType.H2)); - + let expectedSqls= [ 'Drop schema if exists productSchema cascade;', 'Create Schema productSchema;', @@ -112,18 +113,18 @@ function <> meta::relational::tests::ddl::testSetupDataSqlGeneration 'insert into personTable (ID,FIRSTNAME,LASTNAME,AGE,ADDRESSID,FIRMID,MANAGERID) values (1,\'Peter\',\'Smith\',23,1,1,2);' ]; assertSameElements($sqls,$expectedSqls); -} +} function <> meta::relational::tests::ddl::testSetupDataSqlGenerationWithColumnValueHasDelimiterAndQuotes():Boolean[1] { let records ='default\n'+ 'personTable\n'+ 'id, firstName, lastName, age, addressId, firmId, managerId\n'+ - '1, Peter, "I\'m Smith, Jr",23,1,1,2\n' + + '1, Peter, "I\'m Smith, Jr",23,1,1,2\n' + '1, James,"I\'m Johnson, Jr",23,1,1,2'; let sqls = meta::alloy::service::execution::setUpDataSQLs($records, meta::relational::tests::dbInc, meta::relational::functions::sqlQueryToString::createDbConfig(DatabaseType.H2)); - + let expectedSqls= [ 'Drop schema if exists productSchema cascade;', 'Create Schema productSchema;', @@ -151,7 +152,7 @@ function <> meta::relational::tests::ddl::testSetupDataSqlGeneration 'Create Table placeOfInterestTable(ID INT NOT NULL,locationID INT NOT NULL,NAME VARCHAR(200) NULL, PRIMARY KEY(ID,locationID));', 'Drop table if exists validPersonTable;', 'Create Table validPersonTable(ID INT NOT NULL,FIRSTNAME VARCHAR(200) NULL,LASTNAME VARCHAR(200) NULL,AGE INT NULL,ADDRESSID INT NULL,FIRMID INT NULL,MANAGERID INT NULL, PRIMARY KEY(ID));', - 'insert into personTable (ID,FIRSTNAME,LASTNAME,AGE,ADDRESSID,FIRMID,MANAGERID) values (1,\' James\',\'I\'\'m Johnson, Jr\',23,1,1,2);', + 'insert into personTable (ID,FIRSTNAME,LASTNAME,AGE,ADDRESSID,FIRMID,MANAGERID) values (1,\' James\',\'I\'\'m Johnson, Jr\',23,1,1,2);', 'insert into personTable (ID,FIRSTNAME,LASTNAME,AGE,ADDRESSID,FIRMID,MANAGERID) values (1,\' Peter\',\' "I\'\'m Smith, Jr"\',23,1,1,2);' ]; assertSameElements($sqls,$expectedSqls); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/DDL/toDDL.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/DDL/toDDL.pure index 0428ffb246b..99f1833c9ff 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/DDL/toDDL.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/DDL/toDDL.pure @@ -15,6 +15,7 @@ import meta::relational::functions::sqlQueryToString::*; import meta::relational::metamodel::*; import meta::relational::metamodel::relation::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::functions::toDDL::*; import meta::relational::functions::database::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbExtension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbExtension.pure index ae23a8953bf..b41a4d9740f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbExtension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbExtension.pure @@ -1,6 +1,7 @@ import meta::relational::metamodel::join::*; import meta::relational::functions::sqlQueryToString::*; import meta::relational::functions::pureToSqlQuery::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::*; import meta::relational::metamodel::datatype::*; @@ -164,8 +165,8 @@ Class meta::relational::functions::sqlQueryToString::DbConfig assert($translator.loadTable->isNotEmpty(), '[unsupported-api] Load table translation not supported for Database Type: ' + $this.dbType->toString()); $translator.loadTable->toOne()->eval($l, $this); }: String[*]; - - preAndFinallyExecutionSQLQuery(dc: meta::relational::runtime::DatabaseConnection[1]) + + preAndFinallyExecutionSQLQuery(dc: meta::external::store::relational::runtime::DatabaseConnection[1]) { assert($this.dbExtension.preAndFinallyExecutionSQLQuery->isNotEmpty(), 'Pre & Finally Execution SQL Queries are not set for Database Type: ' + $this.dbType->toString()); $this.dbExtension.preAndFinallyExecutionSQLQuery->toOne()->eval($this, $dc); @@ -213,7 +214,7 @@ Class meta::relational::functions::sqlQueryToString::DbExtension identifierProcessor: meta::pure::metamodel::function::Function<{String[1], DbConfig[1] -> String[1]}>[1]; dynaFuncDispatch: meta::pure::metamodel::function::Function<{DynaFunction[1], SqlGenerationContext[1] -> DynaFunctionToSql[1]}>[1]; ddlCommandsTranslator : RelationalDDLCommandsTranslator[0..1]; - preAndFinallyExecutionSQLQuery: meta::pure::metamodel::function::Function<{DbConfig[1], meta::relational::runtime::DatabaseConnection[1] -> PreAndFinallyExecutionSQLQuery[*]}>[0..1]; + preAndFinallyExecutionSQLQuery: meta::pure::metamodel::function::Function<{DbConfig[1], meta::external::store::relational::runtime::DatabaseConnection[1] -> PreAndFinallyExecutionSQLQuery[*]}>[0..1]; processTempTableName: meta::pure::metamodel::function::Function<{String[1] -> String[1]}>[0..1]; } @@ -374,7 +375,7 @@ function meta::relational::functions::sqlQueryToString::processOperation(relatio ]); let identifier = $dbConfig.identifierProcessor($alias.name); - + let sqlOp = $alias.relationalElement->instanceOf(SelectSQLQuery) || $alias.relationalElement->instanceOf(VarCrossSetPlaceHolder); '%s%s%s as %s'->format([ @@ -582,7 +583,7 @@ function <> meta::relational::functions::sqlQueryToString::place } function meta::relational::functions::sqlQueryToString::convertStringToSQLString(s:String[1]):String[1] -{ +{ convertStringToSQLString(^LiteralReplacement(old='\'',new='\'\''))->eval($s); } @@ -630,7 +631,7 @@ function <> meta::relational::functions::sqlQueryToString::extra function <> meta::relational::functions::sqlQueryToString::extractSemiStructuredBracketPathAccess(jsonPath: String[1], startIndex: Integer[1]): String[1] { let quoted = $jsonPath->substring($startIndex+1, $startIndex+2) == '"'; - if($quoted, + if($quoted, | let quoteEnd = $jsonPath->indexOf('"', $startIndex+2); assert($quoteEnd != $jsonPath->length(), 'unmatched " at ' + toString($startIndex+1)); $jsonPath->substring($startIndex+1, $quoteEnd+1);, // include quotes too @@ -638,23 +639,23 @@ function <> meta::relational::functions::sqlQueryToString::extra assert($bracketEnd != $jsonPath->length(), 'unmatched [ at ' + $startIndex->toString()); let property = $jsonPath->substring($startIndex+1, $bracketEnd); assert($property->isDigit(), 'expected ' + $property + ' to be numeric'); - $property; + $property; ); } function <> meta::relational::functions::sqlQueryToString::parseSemiStructuredPathNavigationHelper(jsonPath: String[1], startIndex: Integer[1]): String[*] { - if($startIndex < $jsonPath->length(), + if($startIndex < $jsonPath->length(), | let char = $jsonPath->substring($startIndex, $startIndex+1); assert($char->in(['.', '[']), 'invalid token ' + $char); - if($char == '.', + if($char == '.', | let field = $jsonPath->extractSemiStructuredDotPathAccess($startIndex); - $field->concatenate($jsonPath->parseSemiStructuredPathNavigationHelper($startIndex+$field->length()-1));, + $field->concatenate($jsonPath->parseSemiStructuredPathNavigationHelper($startIndex+$field->length()-1));, | let field = $jsonPath->extractSemiStructuredBracketPathAccess($startIndex); - $field->concatenate($jsonPath->parseSemiStructuredPathNavigationHelper($startIndex+$field->length()+2)); + $field->concatenate($jsonPath->parseSemiStructuredPathNavigationHelper($startIndex+$field->length()+2)); );, - | [] + | [] ); } @@ -663,7 +664,7 @@ function meta::relational::functions::sqlQueryToString::parseSemiStructuredPathN let dotIndex = if($jsonPath->indexOf('.') == -1, | $jsonPath->length(), | $jsonPath->indexOf('.')); let bracketIndex = if($jsonPath->indexOf('[') == -1, | $jsonPath->length(), | $jsonPath->indexOf('[')); let prefix = $jsonPath->substring(0, min($dotIndex, $bracketIndex)); - if($prefix->length() > 0, + if($prefix->length() > 0, | concatenate('"' + $prefix + '"', $jsonPath->parseSemiStructuredPathNavigationHelper(min($dotIndex, $bracketIndex)));, | $jsonPath->parseSemiStructuredPathNavigationHelper(0); ); @@ -711,9 +712,9 @@ function <> meta::relational::functions::sqlQueryToString::proce assert($p1->matches(extractFromSemiStructuredPathRegex()), 'path specfication must follow regex: ' + extractFromSemiStructuredPathRegex()); let p2 = $params->at(2)->cast(@Literal).value->cast(@String); let supportedTypes = ['BOOLEAN', 'CHAR', 'VARCHAR', 'STRING', 'INTEGER', 'DECIMAL', 'FLOAT', 'DATE', 'DATETIME', 'TIMESTAMP']; - assertContains($supportedTypes, $p2, $p2 + ' must be one of ' + $supportedTypes->joinStrings(', ')); + assertContains($supportedTypes, $p2, $p2 + ' must be one of ' + $supportedTypes->joinStrings(', ')); let processedParams = $result.toSql.transform->toOne()->eval([$p0, $p1, $p2]); - format($result.toSql.format, $processedParams); + format($result.toSql.format, $processedParams); } function <> meta::relational::functions::sqlQueryToString::extractFromSemiStructuredPathRegex(): String[1] @@ -1024,7 +1025,7 @@ Enum meta::relational::functions::sqlQueryToString::DynaFunctionRegistry today, trim, variancePopulation, - varianceSample, + varianceSample, weekOfYear, year } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/composite/compositeExtension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/composite/compositeExtension.pure index 8a88a8dba3e..d0843260ece 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/composite/compositeExtension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/composite/compositeExtension.pure @@ -4,6 +4,7 @@ import meta::relational::functions::sqlQueryToString::*; import meta::relational::metamodel::operation::*; import meta::relational::metamodel::relation::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::extension::*; import meta::relational::extension::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/db2/db2Extension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/db2/db2Extension.pure index 06a32950aff..34468b81f17 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/db2/db2Extension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/db2/db2Extension.pure @@ -4,6 +4,7 @@ import meta::relational::functions::sqlQueryToString::*; import meta::relational::metamodel::*; import meta::relational::metamodel::operation::*; import meta::relational::metamodel::relation::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::extension::*; import meta::relational::extension::*; @@ -50,7 +51,7 @@ function meta::relational::functions::sqlQueryToString::db2::getDDLCommandsTrans function meta::relational::functions::sqlQueryToString::db2::processTempTableNameDB2(tempTableName:String[1]) : String[1] { 'SESSION.' + $tempTableName; -} +} function meta::relational::functions::sqlQueryToString::db2::translateCreateTableStatementForDB2(c:CreateTableSQL[1], dbConfig: DbConfig[1]): String[1] { diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2Extension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2Extension.pure index d3c5f215231..ca483164d8d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2Extension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2Extension.pure @@ -1,4 +1,5 @@ import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::functions::sqlQueryToString::*; import meta::relational::functions::sqlQueryToString::h2::*; @@ -13,8 +14,8 @@ function <> meta::relational::functions::sqlQueryToString::h2::c { let h2Versions = getH2Versions(); assertEquals(1, size($h2Versions), 'More than one H2 version found when loading extension'); - - if($h2Versions->toOne()->eq('1.4.200'), + + if($h2Versions->toOne()->eq('1.4.200'), | meta::relational::functions::sqlQueryToString::h2::v1_4_200::createDbExtensionForH2(), | meta::relational::functions::sqlQueryToString::h2::v2_1_214::createDbExtensionForH2() ); @@ -29,7 +30,7 @@ function meta::relational::functions::sqlQueryToString::h2::assertEqualsH2Compat let h2Versions = getH2Versions(); assertEquals(1, size($h2Versions), 'More than one H2 version found asserting test outputs'); - if($h2Versions->toOne()->eq('1.4.200'), + if($h2Versions->toOne()->eq('1.4.200'), | assertEquals($legacyExpected, $actual), | assertEquals($upgradedExpected, $actual) ); @@ -37,7 +38,7 @@ function meta::relational::functions::sqlQueryToString::h2::assertEqualsH2Compat function <> meta::relational::functions::sqlQueryToString::h2::getH2Versions(): Any[*] { - let conn = ^TestDatabaseConnection(element=emptyDb, type=DatabaseType.H2); + let conn = ^TestDatabaseConnection(type=DatabaseType.H2); let results = executeInDb('SELECT H2VERSION();', $conn); $results.rows.values; } @@ -45,4 +46,4 @@ function <> meta::relational::functions::sqlQueryToString::h2::g ###Relational // Database needed just to get the H2 connection version -Database meta::relational::functions::sqlQueryToString::h2::emptyDb() \ No newline at end of file +Database meta::relational::functions::sqlQueryToString::h2::emptyDb() diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2Extension1_4_200.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2Extension1_4_200.pure index 2a64e92ae84..14e0ce2d648 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2Extension1_4_200.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2Extension1_4_200.pure @@ -1,4 +1,5 @@ import meta::relational::functions::sqlQueryToString::default::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::operation::*; import meta::relational::metamodel::*; @@ -83,7 +84,7 @@ function <> meta::relational::functions::sqlQueryToString::h2::v dynaFnToSql('dayOfYear', $allStates, ^ToSql(format='DAY_OF_YEAR(%s)')), dynaFnToSql('decodeBase64', $allStates, ^ToSql(format='legend_h2_extension_base64_decode(%s)')), dynaFnToSql('encodeBase64', $allStates, ^ToSql(format='legend_h2_extension_base64_encode(%s)')), - dynaFnToSql('extractFromSemiStructured', $allStates, ^ToSql(format='%s', transform={p:String[3]|$p->processExtractFromSemiStructuredParamsForH2()})), + dynaFnToSql('extractFromSemiStructured', $allStates, ^ToSql(format='%s', transform={p:String[3]|$p->processExtractFromSemiStructuredParamsForH2()})), dynaFnToSql('firstDayOfMonth', $allStates, ^ToSql(format='dateadd(DAY, -(dayofmonth(%s) - 1), %s)', transform={p:String[1] | $p->repeat(2)})), dynaFnToSql('firstDayOfQuarter', $allStates, ^ToSql(format='dateadd(MONTH, 3 * quarter(%s) - 3, dateadd(DAY, -(dayofyear(%s) - 1), %s))', transform={p:String[1] | $p->repeat(3)})), dynaFnToSql('firstDayOfThisMonth', $allStates, ^ToSql(format='dateadd(DAY, -(dayofmonth(current_date()) - 1), current_date())')), @@ -158,11 +159,11 @@ function <> meta::relational::functions::sqlQueryToString::h2::v let castTo = if ($returnType->in(['CHAR', 'VARCHAR', 'STRING']), | 'varchar', | if ($returnType->in(['DATETIME', 'TIMESTAMP']), | 'timestamp', | - if ($returnType == 'DATE', | 'date', | + if ($returnType == 'DATE', | 'date', | if ($returnType == 'BOOLEAN', | 'boolean', | if ($returnType == 'FLOAT', | 'float', | - if ($returnType == 'INTEGER', | 'integer', | - $returnType)))))); + if ($returnType == 'INTEGER', | 'integer', | + $returnType)))))); format('cast(%s as %s)', [$relationalPropertyAccess, $castTo]); } @@ -186,7 +187,7 @@ function <> meta::relational::functions::sqlQueryToString::h2::v { $s->match([ o:SemiStructuredObjectNavigation[1] | $o->processSemiStructuredObjectNavigationForH2($sgc) - ]) + ]) } function <> meta::relational::functions::sqlQueryToString::h2::v1_4_200::processSemiStructuredObjectNavigationForH2(s:SemiStructuredObjectNavigation[1], sgc:SqlGenerationContext[1]): String[1] @@ -255,9 +256,9 @@ function <> meta::relational::functions::sqlQueryToString::h2::v function <> meta::relational::functions::sqlQueryToString::h2::v1_4_200::transformToTimestampH2(params:String[2]):String[1] { //Standardizing the format as per Postgres specification, will include mappings for the formats in future. - assert($params->at(1)->replace('\'', '') == 'YYYY-MM-DD HH24:MI:SS', | $params->at(1) +' not supported '); - let timestampFormat = '\'yyyy-MM-dd hh:mm:ss\''; - 'parsedatetime('+$params->at(0)+','+ $timestampFormat+')'; + assert($params->at(1)->replace('\'', '') == 'YYYY-MM-DD HH24:MI:SS', | $params->at(1) +' not supported '); + let timestampFormat = '\'yyyy-MM-dd hh:mm:ss\''; + 'parsedatetime('+$params->at(0)+','+ $timestampFormat+')'; } function <> meta::relational::functions::sqlQueryToString::h2::v1_4_200::processDateDiffDurationUnitForH2(durationUnit:String[1]):String[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2Extension2_1_214.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2Extension2_1_214.pure index 77d572eaee2..599e8306737 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2Extension2_1_214.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2Extension2_1_214.pure @@ -1,5 +1,6 @@ import meta::relational::functions::pureToSqlQuery::metamodel::*; import meta::relational::functions::sqlQueryToString::default::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::join::*; import meta::pure::extension::*; @@ -194,7 +195,7 @@ function <> meta::relational::functions::sqlQueryToString::h2::v dynaFnToSql('dayOfYear', $allStates, ^ToSql(format='DAY_OF_YEAR(%s)')), dynaFnToSql('decodeBase64', $allStates, ^ToSql(format='legend_h2_extension_base64_decode(%s)')), dynaFnToSql('encodeBase64', $allStates, ^ToSql(format='legend_h2_extension_base64_encode(%s)')), - dynaFnToSql('extractFromSemiStructured', $allStates, ^ToSql(format='%s', transform={p:String[3]|$p->processExtractFromSemiStructuredParamsForH2()})), + dynaFnToSql('extractFromSemiStructured', $allStates, ^ToSql(format='%s', transform={p:String[3]|$p->processExtractFromSemiStructuredParamsForH2()})), dynaFnToSql('firstDayOfMonth', $allStates, ^ToSql(format='dateadd(DAY, -(dayofmonth(%s) - 1), %s)', transform={p:String[1] | $p->repeat(2)})), dynaFnToSql('firstDayOfQuarter', $allStates, ^ToSql(format='dateadd(MONTH, 3 * quarter(%s) - 3, dateadd(DAY, -(dayofyear(%s) - 1), %s))', transform={p:String[1] | $p->repeat(3)})), dynaFnToSql('firstDayOfThisMonth', $allStates, ^ToSql(format='dateadd(DAY, -(dayofmonth(current_date()) - 1), current_date())')), @@ -236,7 +237,7 @@ function <> meta::relational::functions::sqlQueryToString::h2::v dynaFnToSql('round', $allStates, ^ToSql(format='round(%s, %s)', transform=transformRound_String_MANY__String_MANY_)), dynaFnToSql('second', $allStates, ^ToSql(format='second(%s)')), dynaFnToSql('sha1', $allStates, ^ToSql(format='rawtohex(hash(\'SHA-1\', %s))')), - dynaFnToSql('sha256', $allStates, ^ToSql(format='rawtohex(hash(\'SHA-256\', %s))')), + dynaFnToSql('sha256', $allStates, ^ToSql(format='rawtohex(hash(\'SHA-256\', %s))')), dynaFnToSql('splitPart', $allStates, ^ToSql(format='legend_h2_extension_split_part(%s, %s, %s)')), dynaFnToSql('substring', $allStates, ^ToSql(format='substring%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), dynaFnToSql('stdDevPopulation', $allStates, ^ToSql(format='stddev_pop(%s)')), @@ -273,11 +274,11 @@ function <> meta::relational::functions::sqlQueryToString::h2::v let castTo = if ($returnType->in(['CHAR', 'VARCHAR', 'STRING']), | 'varchar', | if ($returnType->in(['DATETIME', 'TIMESTAMP']), | 'timestamp', | - if ($returnType == 'DATE', | 'date', | + if ($returnType == 'DATE', | 'date', | if ($returnType == 'BOOLEAN', | 'boolean', | if ($returnType == 'FLOAT', | 'float', | - if ($returnType == 'INTEGER', | 'integer', | - $returnType)))))); + if ($returnType == 'INTEGER', | 'integer', | + $returnType)))))); format('cast(%s as %s)', [$relationalPropertyAccess, $castTo]); } @@ -301,7 +302,7 @@ function <> meta::relational::functions::sqlQueryToString::h2::v { $s->match([ o:SemiStructuredObjectNavigation[1] | $o->processSemiStructuredObjectNavigationForH2($sgc) - ]) + ]) } function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::processSemiStructuredObjectNavigationForH2(s:SemiStructuredObjectNavigation[1], sgc:SqlGenerationContext[1]): String[1] @@ -350,18 +351,18 @@ function <> meta::relational::functions::sqlQueryToString::h2::v // FIXME: we currently allow MMMyyyy as a dateformat which requires the following hack similar to IQ if($dateFormat == '\'MMMyyyy\'', | 'cast( parseDateTime(concat(\'01\', %s), \'%s\') as date)'->format([ - $params->at(0), + $params->at(0), joinStrings(['dd', $dateFormat->replace('\'', '')]) ]), | 'cast( parseDateTime('+$params->at(0)+','+$dateFormat +') as date)' ); - + } function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::normalizeH2DateFormat(params:String[1]):String[1] { [ - pair('YYYY', 'yyyy'), + pair('YYYY', 'yyyy'), pair('DD', 'dd') ]->fold({e, a| $a->replace($e.first,$e.second)}, $params); } @@ -386,9 +387,9 @@ function <> meta::relational::functions::sqlQueryToString::h2::v function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::convertDateTimeFunctionHasCorrectParamsH2(params:String[*]):Boolean[1] { assert( 2 - $params->size() >= 0,'Incorrect number of parameters for convertDateTime: convertDateTime(column,[dateTimeformat])'); - - let supportedDateTimeFormat = if($params->size() == 2, - | let userFormat = $params->at(1); + + let supportedDateTimeFormat = if($params->size() == 2, + | let userFormat = $params->at(1); dateTimeFormatsH2()->get($userFormat->normalizeH2DateTimeFormat()->replace('\'', ''));, | [] ); @@ -413,14 +414,14 @@ function <> meta::relational::functions::sqlQueryToString::h2::v ]); } -// FIXME: Are datetime and timestamp not treated the same in the backend (because parsedatetime always returns TIMESTAMP_WITH_TIMEZONE)? +// FIXME: Are datetime and timestamp not treated the same in the backend (because parsedatetime always returns TIMESTAMP_WITH_TIMEZONE)? // If so, this and the above logic (convertToDateTimeH2) should be identical function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::transformToTimestampH2(params:String[2]):String[1] { // Standardizing the format as per Postgres specification, will include mappings for the formats in future. - assert($params->at(1)->replace('\'', '') == 'YYYY-MM-DD HH24:MI:SS', | $params->at(1) +' not supported '); - let timestampFormat = '\'yyyy-MM-dd HH:mm:ss[.SSSSSSSSS][.SSSSSSSS][.SSSSSSS][.SSSSSS][.SSSSS][.SSSS][.SSS][.SS][.S]\''; - 'cast(parsedatetime('+$params->at(0)+','+ $timestampFormat+') as timestamp)'; + assert($params->at(1)->replace('\'', '') == 'YYYY-MM-DD HH24:MI:SS', | $params->at(1) +' not supported '); + let timestampFormat = '\'yyyy-MM-dd HH:mm:ss[.SSSSSSSSS][.SSSSSSSS][.SSSSSSS][.SSSSSS][.SSSSS][.SSSS][.SSS][.SS][.S]\''; + 'cast(parsedatetime('+$params->at(0)+','+ $timestampFormat+') as timestamp)'; } function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::processDateDiffDurationUnitForH2(durationUnit:String[1]):String[1] @@ -450,22 +451,22 @@ function <> meta::relational::functions::sqlQueryToString::h2::v } function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::processSelectSQLQueryForH2( - s:SelectSQLQuery[1], - dbConfig : DbConfig[1], - format:Format[1], - config:Config[1], - isSubSelect : Boolean[1], + s:SelectSQLQuery[1], + dbConfig : DbConfig[1], + format:Format[1], + config:Config[1], + isSubSelect : Boolean[1], extensions:Extension[*] ): String[1] { - let opStr = - if($s.filteringOperation->isEmpty(), - | '', + let opStr = + if($s.filteringOperation->isEmpty(), + | '', | $s.filteringOperation->map(s | $s->wrapH2Boolean($extensions)->processOperation($dbConfig, $format->indent(), ^$config(callingFromFilter = true), $extensions))->filter(s|$s != '')->joinStrings(' <||> ') ); - let havingStr = - if($s.havingOperation->isEmpty(), - | '', + let havingStr = + if($s.havingOperation->isEmpty(), + | '', | $s.havingOperation->map(s|$s->wrapH2Boolean($extensions)->processOperation($dbConfig, $format->indent(), $config, $extensions))->filter(s|$s != '')->joinStrings(' <||> ') ); @@ -508,7 +509,7 @@ function <> meta::relational::functions::sqlQueryToString::h2::v } /* -TODO: +TODO: - what to do with freemarker placeholder operations? They are also RelationalOpElements */ // To be used to wrap filter conditions and their arguments to compare boolean to boolean @@ -584,11 +585,11 @@ function <> meta::relational::functions::sqlQueryToString::h2::v // Required so that any join conditions also have correct wrapping function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::processJoinTreeNodeH2( - joinTreeNode:RelationalTreeNode[1], - parent:TableAlias[0..1], - dbConfig : DbConfig[1], - format:Format[1], - joinOrder:JoinType[*], + joinTreeNode:RelationalTreeNode[1], + parent:TableAlias[0..1], + dbConfig : DbConfig[1], + format:Format[1], + joinOrder:JoinType[*], extensions:Extension[*] ):String[1] { @@ -722,22 +723,22 @@ function <> meta::relational::functions::sqlQueryToString::h2::v2_1_2 function <> meta::relational::functions::sqlQueryToString::h2::v2_1_214::testWhenJustCase_thenIsWrapped(): Boolean[1] { let op = ^DynaFunction( - name='case', + name='case', parameters=[ - ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), - ^Literal(value='true'), + ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), + ^Literal(value='true'), ^Literal(value='false') ] ); let expected = ^DynaFunction( - name= 'castBoolean', + name= 'castBoolean', parameters=[ ^DynaFunction( - name='case', + name='case', parameters=[ - ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), - ^Literal(value='true'), + ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), + ^Literal(value='true'), ^Literal(value='false') ] ) @@ -751,10 +752,10 @@ function <> meta::relational::functions::sqlQueryToString::h2::v2_1_2 { let op = ^DynaFunction(name='and', parameters=[ ^DynaFunction( - name='case', + name='case', parameters=[ - ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), - ^Literal(value='true'), + ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), + ^Literal(value='true'), ^Literal(value='false') ] ), @@ -766,13 +767,13 @@ function <> meta::relational::functions::sqlQueryToString::h2::v2_1_2 let expected = ^DynaFunction(name='and', parameters=[ ^DynaFunction( - name= 'castBoolean', + name= 'castBoolean', parameters=[ ^DynaFunction( - name='case', + name='case', parameters=[ - ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), - ^Literal(value='true'), + ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), + ^Literal(value='true'), ^Literal(value='false') ] ) @@ -795,13 +796,13 @@ function <> meta::relational::functions::sqlQueryToString::h2::v2_1_2 name='equal', parameters=[ ^DynaFunction( - name='case', + name='case', parameters=[ - ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), - ^Literal(value='true'), + ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), + ^Literal(value='true'), ^Literal(value='false') ] - ), + ), ^Literal(value=true) ] ), @@ -816,13 +817,13 @@ function <> meta::relational::functions::sqlQueryToString::h2::v2_1_2 name='equal', parameters=[ ^DynaFunction( - name= 'castBoolean', + name= 'castBoolean', parameters=[ ^DynaFunction( - name='case', + name='case', parameters=[ - ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), - ^Literal(value='true'), + ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), + ^Literal(value='true'), ^Literal(value='false') ] ) @@ -845,13 +846,13 @@ function <> meta::relational::functions::sqlQueryToString::h2::v2_1_2 name='equal', parameters=[ ^DynaFunction( - name='case', + name='case', parameters=[ - ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), - ^Literal(value='true'), + ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), + ^Literal(value='true'), ^Literal(value='false') ] - ), + ), ^Literal(value='true') ] ), @@ -866,10 +867,10 @@ function <> meta::relational::functions::sqlQueryToString::h2::v2_1_2 name='equal', parameters=[ ^DynaFunction( - name='case', + name='case', parameters=[ - ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), - ^Literal(value='true'), + ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), + ^Literal(value='true'), ^Literal(value='false') ] ), @@ -893,13 +894,13 @@ function <> meta::relational::functions::sqlQueryToString::h2::v2_1_2 name='equal', parameters=[ ^DynaFunction( - name='case', + name='case', parameters=[ - ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), - ^Literal(value='true'), + ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), + ^Literal(value='true'), ^Literal(value='false') ] - ), + ), ^Literal(value='Y') ] ), @@ -914,10 +915,10 @@ function <> meta::relational::functions::sqlQueryToString::h2::v2_1_2 name='equal', parameters=[ ^DynaFunction( - name='case', + name='case', parameters=[ - ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), - ^Literal(value='true'), + ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), + ^Literal(value='true'), ^Literal(value='false') ] ), @@ -941,13 +942,13 @@ function <> meta::relational::functions::sqlQueryToString::h2::v2_1_2 name='equal', parameters=[ ^DynaFunction( - name='case', + name='case', parameters=[ - ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), - ^Literal(value='true'), + ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), + ^Literal(value='true'), ^Literal(value='false') ] - ), + ), ^Literal(value=true) ] ) @@ -961,15 +962,15 @@ function <> meta::relational::functions::sqlQueryToString::h2::v2_1_2 name='castBoolean', parameters=[ ^DynaFunction( - name='case', + name='case', parameters=[ - ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), - ^Literal(value='true'), + ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), + ^Literal(value='true'), ^Literal(value='false') ] ) ] - ), + ), ^DynaFunction(name= 'castBoolean', parameters=[^Literal(value=true)]) ] ) @@ -983,10 +984,10 @@ function <> meta::relational::functions::sqlQueryToString::h2::v2_1_2 { let op = ^DynaFunction(name='or', parameters=[ ^DynaFunction( - name='case', + name='case', parameters=[ - ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), - ^Literal(value='true'), + ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), + ^Literal(value='true'), ^Literal(value='false') ] ), @@ -998,13 +999,13 @@ function <> meta::relational::functions::sqlQueryToString::h2::v2_1_2 let expected = ^DynaFunction(name='or', parameters=[ ^DynaFunction( - name= 'castBoolean', + name= 'castBoolean', parameters=[ ^DynaFunction( - name='case', + name='case', parameters=[ - ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), - ^Literal(value='true'), + ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), + ^Literal(value='true'), ^Literal(value='false') ] ) @@ -1027,10 +1028,10 @@ function <> meta::relational::functions::sqlQueryToString::h2::v2_1_2 name='equal', parameters=[ ^DynaFunction( - name='case', + name='case', parameters=[ - ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), - ^Literal(value='true'), + ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), + ^Literal(value='true'), ^Literal(value='false') ] ), @@ -1047,10 +1048,10 @@ function <> meta::relational::functions::sqlQueryToString::h2::v2_1_2 name='castBoolean', parameters=[ ^DynaFunction( - name='case', + name='case', parameters=[ - ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), - ^Literal(value='true'), + ^DynaFunction(name='equal', parameters=[^Literal(value='Y'), ^Literal(value='Y')]), + ^Literal(value='true'), ^Literal(value='false') ] ) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2TestSuiteInvoker.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2TestSuiteInvoker.pure index c4fbf07f7ae..c1b36476143 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2TestSuiteInvoker.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2TestSuiteInvoker.pure @@ -13,19 +13,20 @@ // limitations under the License. import meta::pure::test::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::dbTestRunner::*; function <> meta::relational::tests::sqlQueryToString::H2::testSuiteInvoker(): PureTestCollection[1] { let connection = getTestConnection(DatabaseType.H2, meta::relational::extension::relationalExtensions()); - + // If a feature described in extension APIs / test suite is not supported, // then throw an exception with message that starts with '[unsupported-api]' // Tests which raise such exception will be reported as ignored by the runner - + meta::relational::tests::dbSpecificTests->collectParameterizedTests('H2', - ^DbTestConfig(dbType=DatabaseType.H2, connection=$connection), + ^DbTestConfig(dbType=DatabaseType.H2, connection=$connection), meta::relational::tests::sqlQueryToString::H2::testParamCustomizations_FunctionDefinition_1__DbTestConfig_1__DbTestConfig_1_, [] ); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbTestRunner/dynaFunctionTestRunner.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbTestRunner/dynaFunctionTestRunner.pure index 1ed9136b80d..53a4c4779bf 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbTestRunner/dynaFunctionTestRunner.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbTestRunner/dynaFunctionTestRunner.pure @@ -16,9 +16,11 @@ import meta::pure::executionPlan::*; import meta::pure::extension::*; import meta::relational::extension::*; import meta::pure::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::relation::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::functions::sqlQueryToString::*; import meta::relational::functions::typeInference::*; @@ -28,21 +30,21 @@ import meta::relational::dbTestRunner::*; function meta::relational::dbTestRunner::runDynaFunctionDatabaseTest(dynaFunc:DynaFunction[1], expectedResult:Literal[1..*], testConfig:DbTestConfig[1]): Boolean[1] { runDynaFunctionDatabaseTest($dynaFunc, $expectedResult, [] , $testConfig); -} +} function meta::relational::dbTestRunner::runDynaFunctionDatabaseTest(dynaFunc:DynaFunction[1], expectedResult:Literal[1..*], equalityComparator: Function<{Any[1..*],Any[1..*]->Boolean[1]}>[0..1] , testConfig:DbTestConfig[1]): Boolean[1] -{ +{ //sqlQueryGenerator let sqlQuery = defaultDynaFunctionSqlQueryGenerator($dynaFunc,$expectedResult, $testConfig); $sqlQuery->runSqlQueryTest(overwriteDynaFunctionExpectedResult($expectedResult, $testConfig), $equalityComparator, $testConfig); } function meta::relational::dbTestRunner::defaultDynaFunctionSqlQueryGenerator(dynaFunc:DynaFunction[1] , expectedResult:Literal[1..*], testConfig:DbTestConfig[1]): SQLQuery[1] -{ +{ $expectedResult->match([ l:Literal[1] | $l.value->match([ b: Boolean[1] | ^SelectSQLQuery(columns = [^DynaFunction(name = 'case', parameters= [$dynaFunc, ^Literal(value=1), ^Literal(value=0)])] - ); , // if return type is boolean, wrap as : select case when 'dynaFunc' then 1 else 0 + ); , // if return type is boolean, wrap as : select case when 'dynaFunc' then 1 else 0 a: Any[1] | ^SelectSQLQuery(columns=[$dynaFunc]); ]);, a:Any[*] | ^SelectSQLQuery(columns=[$dynaFunc]); @@ -50,9 +52,9 @@ function meta::relational::dbTestRunner::defaultDynaFunctionSqlQueryGenerator(dy } function meta::relational::dbTestRunner::overwriteDynaFunctionExpectedResult(expectedResult:Literal[1..*], testConfig:DbTestConfig[1]): Literal[1..*] -{ +{ $expectedResult.value->match([ b: Boolean[1] | if($b==true, |^Literal(value=1), |^Literal(value=0)), // if dynaFunc returns true , returns 1 , else 0 a: Any[1] | $expectedResult ]); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbTestRunner/executionPlanTestRunner.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbTestRunner/executionPlanTestRunner.pure index 73c2e3de155..49542f33d2e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbTestRunner/executionPlanTestRunner.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbTestRunner/executionPlanTestRunner.pure @@ -12,11 +12,14 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::mapping::*; import meta::relational::dbTestRunner::*; import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::pure::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; Class meta::relational::dbTestRunner::DbTestConfig @@ -32,11 +35,11 @@ function meta::relational::dbTestRunner::getTestConnection(dbType:DatabaseType[1 meta::legend::test::mayExecuteLegendTest ( {clientVersion, serverVersion, serializationKind, host, port | - let fStr = 'meta::protocols::pure::'+$clientVersion+'::invocation::execution::testConnection::getTestConnection_DatabaseType_1__String_1__Integer_1__Extension_MANY__RelationalDatabaseConnection_$0_1$_'; - let xf = $fStr->pathToElement()->cast(@Function<{DatabaseType[1], String[1], Integer[1], meta::pure::extension::Extension[*]->RelationalDatabaseConnection[0..1]}>); + let fStr = 'meta::protocols::pure::'+$clientVersion+'::invocation::execution::testConnection::getTestConnection_DatabaseType_1__String_1__Integer_1__Extension_MANY__ConnectionStore_$0_1$_'; + let xf = $fStr->pathToElement()->cast(@Function<{DatabaseType[1], String[1], Integer[1], meta::pure::extension::Extension[*]->ConnectionStore[0..1]}>); let res= $xf->evaluate([$dbType, $host, $port]->map(v|list($v))->concatenate(list($extensions))); - if($res->isNotEmpty(), - |$res->toOne()->cast(@RelationalDatabaseConnection), + if($res->isNotEmpty(), + |$res->cast(@ConnectionStore).connection->toOne()->cast(@RelationalDatabaseConnection), | fail('**** Error **** : Test Connection for dbType: '+ $dbType->toString() + ' not available on Legend Engine Server'); []->cast(@RelationalDatabaseConnection); ); @@ -60,29 +63,29 @@ function meta::relational::dbTestRunner::findParameterizedTests(packOrFn: Any[*] function meta::relational::dbTestRunner::doSetupOnConnection(records:String[1], db:meta::relational::metamodel::Database[1], config:DbTestConfig[1], extensions:meta::pure::extension::Extension[*]):Boolean[1] { if($config.connection->isEmpty(), - | + | println('**** Warning **** : No connection available for given dbtype, Skipping execution of setup sqls'); false;, - | + | let setupSqls = meta::alloy::service::execution::setUpDataSQLs($records, $db, meta::relational::functions::sqlQueryToString::createDbConfig($config.dbType)); let con = $config.connection->cast(@RelationalDatabaseConnection)->toOne(); - let connWithDb= ^$con(element= $db); + let connWithDb= ^ConnectionStore(connection=^$con(),element= $db); $setupSqls->executeInRelationalDb($connWithDb,meta::relational::extension::relationalExtensions()); println('setup done'); true; - ) + ) } -function meta::relational::dbTestRunner::executeInRelationalDb(sqls:String[*], conn:RelationalDatabaseConnection[1], extensions:meta::pure::extension::Extension[*]):Boolean[1] +function meta::relational::dbTestRunner::executeInRelationalDb(sqls:String[*], conn:ConnectionStore[1], extensions:meta::pure::extension::Extension[*]):Boolean[1] { meta::legend::test::mayExecuteLegendTest ( {clientVersion, serverVersion, serializationKind, host, port | let fStr = 'meta::protocols::pure::'+$clientVersion+'::invocation::execution::executeInRelationalDb::executeInRelationalDb_String_MANY__RelationalDatabaseConnection_1__String_1__Integer_1__Extension_MANY__Boolean_1_'; - let xf = $fStr->pathToElement()->cast(@Function<{String[*], RelationalDatabaseConnection[1], String[1], Integer[1], meta::pure::extension::Extension[*]->Boolean[1]}>); - let res= $xf->evaluate(list($sqls)->concatenate([$conn->toOne(), $host, $port]->map(v|list($v)))->concatenate(list($extensions))); + let xf = $fStr->pathToElement()->cast(@Function<{String[*], ConnectionStore[1], String[1], Integer[1], meta::pure::extension::Extension[*]->Boolean[1]}>); + let res= $xf->evaluate(list($sqls)->concatenate([$conn.connection->toOne(), $host, $port]->map(v|list($v)))->concatenate(list($extensions))); $res->cast(@Boolean)->toOne(); }, { | @@ -95,13 +98,12 @@ function meta::relational::dbTestRunner::executeInRelationalDb(sqls:String[*], c function meta::relational::dbTestRunner::executeViaPlan(f:FunctionDefinition<{->T[m]}>[1], m:Mapping[1], db:meta::relational::metamodel::Database[1], config:DbTestConfig[1], extensions:meta::pure::extension::Extension[*]):meta::pure::mapping::Result[0..1] { let pureRuntime = if($config.connection->isEmpty(), - | + | println('**** Warning **** : No connection available for given dbtype, Skipping execution of plan'); - ^Runtime(connections= ^TestDatabaseConnection(element = $db, type= $config.dbType));, + ^Runtime(connectionStores= ^ConnectionStore(element = $db, connection=^TestDatabaseConnection(type= $config.dbType)));, | let conn = $config.connection->cast(@RelationalDatabaseConnection)->toOne(); - let connWithDb= ^$conn(element=$db); - ^Runtime(connections=$connWithDb); + ^Runtime(connectionStores=^ConnectionStore(element=$db, connection=$conn)); ); let basicPlan = meta::pure::executionPlan::executionPlan($f, $m, $pureRuntime,^ExecutionContext(), $extensions, noDebug()); @@ -109,12 +111,12 @@ function meta::relational::dbTestRunner::executeViaPlan(f:FunctionDefinitio if($config.expectedSql->isEmpty(), |true, |assertEquals($config.expectedSql->toOne(), $basicPlan.rootExecutionNode.childNodes()->filter(n|$n->instanceOf(SQLExecutionNode))->at(0)->cast(@SQLExecutionNode).sqlQuery)); - if($config.connection->isEmpty(), |[], + if($config.connection->isEmpty(), |[], | let boundPlan = meta::pure::executionPlan::platformBinding::localBinding::bindTestPlanToPlatformLocallyWithClasspathExtensions($basicPlan); let res=meta::pure::router::executePlan($boundPlan,$extensions); let values = $res.values->cast(@T); ^Result(values = $values, activities= $res.activities); - ); + ); } function meta::relational::dbTestRunner::runDataAssertion(result:Any[0..1], config:DbTestConfig[1], assertion:Function<{->Boolean[1]}>[1]): Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbTestRunner/literalTestRunner.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbTestRunner/literalTestRunner.pure index 5774eb44f46..0a5d4000f19 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbTestRunner/literalTestRunner.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbTestRunner/literalTestRunner.pure @@ -16,9 +16,11 @@ import meta::pure::executionPlan::*; import meta::pure::extension::*; import meta::relational::extension::*; import meta::pure::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::relation::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::functions::pureToSqlQuery::metamodel::*; import meta::relational::functions::sqlQueryToString::*; @@ -37,13 +39,13 @@ function meta::relational::dbTestRunner::runLiteralDatabaseTest(literal:Literal[ } function meta::relational::dbTestRunner::runLiteralDatabaseTest(literal:Literal[1], expectedResult:Literal[1], inputs:Pair[*], equalityComparator: Function<{Any[1..*],Any[1..*]->Boolean[1]}>[0..1] , testConfig:DbTestConfig[1]): Boolean[1] -{ +{ //sqlQueryGenerator let sqlQuery = defaultLiteralSqlQueryGenerator($literal); $sqlQuery->runSqlQueryTest($expectedResult, $inputs, $equalityComparator, $testConfig); } function meta::relational::dbTestRunner::defaultLiteralSqlQueryGenerator(literal:Literal[1]): SQLQuery[1] -{ +{ ^SelectSQLQuery(columns=[$literal]) -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbTestRunner/testRunner.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbTestRunner/testRunner.pure index 62344bcc72d..cbc1619318a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbTestRunner/testRunner.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbTestRunner/testRunner.pure @@ -17,9 +17,11 @@ import meta::pure::executionPlan::*; import meta::pure::extension::*; import meta::relational::extension::*; import meta::pure::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::relation::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::functions::sqlQueryToString::*; import meta::relational::functions::typeInference::*; @@ -39,18 +41,18 @@ function meta::relational::dbTestRunner::runSqlQueryTest(sqlQuery:SQLQuery[1], e | assertEquals($testConfig.expectedSql->toOne(), $sqlString), | true ); - + if($testConfig.connection->isEmpty(), | true , // test Connection not available ,do nothing further, | let conn1= $testConfig.connection->toOne(); - let conn = ^$conn1(element= ^Database(name='dummyDB')); // overwite given connection db - + let connectionStore = ^ConnectionStore(element= ^Database(name='dummyDB'),connection=$conn1); // overwite given connection db + let expectedResultTypes = $expectedResult->map(e|$e->inferRelationalType())->toOneMany(); - let plan = wrapSQLStringInExecutionPlan($sqlString, $expectedResultTypes, $testConfig.dbType,$conn, $inputs); - + let plan = wrapSQLStringInExecutionPlan($sqlString, $expectedResultTypes, $testConfig.dbType,$connectionStore, $inputs); + let res = executePlan($plan,relationalExtensions()); - runDataAssertion($res, $testConfig, + runDataAssertion($res, $testConfig, | let areEqual = if($equalityComparator->isNotEmpty(), | $equalityComparator->toOne()->eval($res.values->toOneMany(), $expectedResult.value->toOneMany());, // expected values are wrapped in Literals currently | defaultEqualityComparator($res.values->toOneMany(), $expectedResult.value->toOneMany()); @@ -59,7 +61,7 @@ function meta::relational::dbTestRunner::runSqlQueryTest(sqlQuery:SQLQuery[1], e let expectedStr = $expectedResult.value->map(v|$v->toString())->makeString('[',', ',']'); let resStr = $res.values->map(v|$v->toString())->makeString('[',', ',']'); let errMsg = 'Result assert failed, expected Values : '+ $expectedStr +', actual Values : ' + $resStr; - + assert($areEqual , $errMsg); assert($res.activities->cast(@RelationalActivity).comment->toOne()->meta::pure::functions::string::matches('-- \"executionTraceID\" : \"[0-9a-f]{8}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{4}-[0-9a-f]{12}\"')); ); @@ -71,14 +73,14 @@ function meta::relational::dbTestRunner::defaultEqualityComparator(actual:Any[1. { zip($actual ,$expected)->map(x| $x.first->match([ - n1:Number[1] | $x.second->match([ + n1:Number[1] | $x.second->match([ n2:Number[1] | (abs($n1 - $n2) == 0) || (abs($n1 - $n2) == 0.0) ; ]);, // use number diff to avoid following : 1.0 == 1 (float vs int) OR 1.000 == 1.0 ( difference in precision digits ) - sd1:StrictDate[1] | $x.second->match([ - sd2:StrictDate[1] | abs(dateDiff($sd1, $sd2, DurationUnit.DAYS)) == 0 ; + sd1:StrictDate[1] | $x.second->match([ + sd2:StrictDate[1] | abs(dateDiff($sd1, $sd2, DurationUnit.DAYS)) == 0 ; ]);, // use date diff to compare as dates might have varying precision but same values : %2022-10-01 == %2022-10-01T00:00:00+0000 - dt1:DateTime[1] | $x.second->match([ - dt2:DateTime[1] | abs(dateDiff($dt1, $dt2, DurationUnit.SECONDS)) == 0 ; + dt1:DateTime[1] | $x.second->match([ + dt2:DateTime[1] | abs(dateDiff($dt1, $dt2, DurationUnit.SECONDS)) == 0 ; ]);, // use date diff to compare as dates might have varying precision but same values : %2022-10-01T00:00:00+0000 == %2022-10-01T00:00:00.0000+0000 a:Any[1] | equal($x.first , $x.second); ]); @@ -88,10 +90,10 @@ function meta::relational::dbTestRunner::defaultEqualityComparator(actual:Any[1. function meta::relational::dbTestRunner::floatEqualityComparatorGenerator(tolerance:Any[1..*]) : Function<{Any[1..*], Any[1..*] -> Boolean[1]}>[1] { - {actual:Any[1..*], expected:Any[1..*] | + {actual:Any[1..*], expected:Any[1..*] | assert($expected->size() == $actual->size()); assert($expected->size() == $tolerance->size()); - + zip(zip($actual ,$expected ), $tolerance )->map(x| $x->match([ a:Pair,Number>[1] | @@ -103,10 +105,10 @@ function meta::relational::dbTestRunner::floatEqualityComparatorGenerator(tolera function meta::relational::dbTestRunner::timestampEqualityComparatorGenerator(tolerance:Any[1..*], du:DurationUnit[1]) : Function<{Any[1..*], Any[1..*] -> Boolean[1]}>[1] { - {actual:Any[1..*], expected:Any[1..*] | + {actual:Any[1..*], expected:Any[1..*] | assert($expected->size() == $actual->size()); assert($expected->size() == $tolerance->size()); - + zip(zip($actual ,$expected ), $tolerance )->map(x| $x->match([ a:Pair,Number>[1] | @@ -116,12 +118,12 @@ function meta::relational::dbTestRunner::timestampEqualityComparatorGenerator(to } } -function meta::relational::dbTestRunner::wrapSQLStringInExecutionPlan(sqlString:String[1], resultTypes:meta::relational::metamodel::datatype::DataType[1..*], dbType:DatabaseType[1], connection:DatabaseConnection[1], inputs:Pair[*]):ExecutionPlan[1] +function meta::relational::dbTestRunner::wrapSQLStringInExecutionPlan(sqlString:String[1], resultTypes:meta::relational::metamodel::datatype::DataType[1..*], dbType:DatabaseType[1], connectionStore:ConnectionStore[1], inputs:Pair[*]):ExecutionPlan[1] { let allocationNodes = $inputs->map(v | ^AllocationExecutionNode ( - varName = $v.first.name, - resultType = ^DataTypeResultType(type=$v.first.type), + varName = $v.first.name, + resultType = ^DataTypeResultType(type=$v.first.type), executionNodes = ^ConstantExecutionNode ( resultType=^DataTypeResultType(type=$v.first.type), @@ -129,22 +131,22 @@ function meta::relational::dbTestRunner::wrapSQLStringInExecutionPlan(sqlString: ) )); - let runtime = ^Runtime(connections=$connection); - + let runtime = ^Runtime(connectionStores=$connectionStore); + let resultType = ^DataTypeResultType(type= $resultTypes->at(0)->meta::relational::metamodel::datatype::dataTypeToCompatiblePureType()); - let resultColumns = $resultTypes->toIndexed()->map(e| + let resultColumns = $resultTypes->toIndexed()->map(e| ^SQLResultColumn(label='result' + $e.first->toString(), dataType=$e.second)); - + let sqlExecutionNode = ^RelationalDataTypeInstantiationExecutionNode( resultType=$resultType, executionNodes=^SQLExecutionNode( sqlComment= '-- "executionTraceID" : "${execID}"', sqlQuery=$sqlString , - connection=$connection , + connection=$connectionStore.connection->cast(@DatabaseConnection), resultType=$resultType, resultColumns=$resultColumns)); - + let rootExecutionNode = if($allocationNodes->isEmpty(), |$sqlExecutionNode, |^SequenceExecutionNode(resultType=$resultType, executionNodes=$allocationNodes->concatenate($sqlExecutionNode)) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/extensionDefaults.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/extensionDefaults.pure index a338f8194e2..df3fb18604e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/extensionDefaults.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/extensionDefaults.pure @@ -5,6 +5,7 @@ import meta::relational::metamodel::relation::*; import meta::relational::metamodel::operation::*; import meta::relational::metamodel::join::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::extension::*; import meta::relational::extension::*; @@ -220,7 +221,7 @@ function meta::relational::functions::sqlQueryToString::default::getDynaFunction dynaFnToSql('sha256', $allStates, ^ToSql(format='sha256(%s)')), dynaFnToSql('sign', $allStates, ^ToSql(format='sign(%s)')), dynaFnToSql('sin', $allStates, ^ToSql(format='sin(%s)')), - dynaFnToSql('splitPart', $allStates, ^ToSql(format='split_part(%s, %s, %s)')), + dynaFnToSql('splitPart', $allStates, ^ToSql(format='split_part(%s, %s, %s)')), dynaFnToSql('size', $allStates, ^ToSql(format='count(%s)', transform={p:String[*]|if($p->isEmpty(),|'*',|$p)})), dynaFnToSql('sqlFalse', $allStates, ^ToSql(format='%s', transform={p:String[*]|processLiteralValue(false, [], $literalProcessor)})), dynaFnToSql('sqlNull', $allStates, ^ToSql(format='null')), diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/naming/naming.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/naming/naming.pure index 3a965a81c58..cf90b8d6c57 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/naming/naming.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/naming/naming.pure @@ -14,12 +14,15 @@ import meta::pure::profiles::*; import meta::relational::tests::mapping::database::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::execute::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::mapping::*; import meta::relational::dbTestRunner::*; import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::pure::test::*; import meta::relational::tests::dbSpecificTests::sqlQueryTests::namingTests::*; @@ -28,18 +31,18 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe { let result = executeViaPlan(| MyClass.all(), testMapping, meta::relational::tests::dbSpecificTests::sqlQueryTests::namingTests::myDB, $config, meta::relational::extension::relationalExtensions()); runDataAssertion($result, $config, - | + | assertSize($result->toOne(), 1); assertEquals(2, $result.values->first()->cast(@MyClass).a); assertEquals(MyEnum.NO, $result.values->first()->cast(@MyClass).d); ); - + let result2 = executeViaPlan(| MyClassB.all(), testMapping, meta::relational::tests::dbSpecificTests::sqlQueryTests::namingTests::myDB, $config, meta::relational::extension::relationalExtensions()); runDataAssertion($result2, $config, | assertSize($result2, 1); assertEquals('\'Description A\'', $result2.values->first()->cast(@MyClassB).c); ); - + let filteredResult = executeViaPlan(| MyClass.all()->filter(m | $m.a == 2), testMapping, meta::relational::tests::dbSpecificTests::sqlQueryTests::namingTests::myDB, $config, meta::relational::extension::relationalExtensions()); runDataAssertion($filteredResult, $config, | assertSize($filteredResult, 1); @@ -49,8 +52,6 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::namingTests::testTableNameInJoinAlias(config:DbTestConfig[1]):Boolean[1] { - let runtime = ^Runtime(connections=$config.connection); - let result = executeViaPlan(| MyClass.all()->project([c | $c.b.c], ['c']), testMapping, meta::relational::tests::dbSpecificTests::sqlQueryTests::namingTests::myDB, $config, meta::relational::extension::relationalExtensions()); runDataAssertion($result, $config, | assertSize($result, 1); @@ -61,7 +62,7 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe { let result = executeViaPlan(| MyClassC.all(), testMapping, meta::relational::tests::dbSpecificTests::sqlQueryTests::namingTests::myDB, $config, meta::relational::extension::relationalExtensions()); runDataAssertion($result, $config, - | + | assertSize($result->toOne(), 1); assertEquals(0, $result.values->first()->cast(@MyClassC).capitalAlphabets); assertEquals(1, $result.values->first()->cast(@MyClassC).numbers); @@ -78,14 +79,13 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe let smallAlphabets = 'abcdefghijklmnopqrstuvwxzy'; let capitalAlphabets = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'; - let runtime = ^Runtime(connections=$config.connection); let result = executeViaPlan(| MyClassD.all()->project([x | $x.a, x | $x.b, x | $x.c, x | $x.d] ,[$specialCharacters, $numbers, $smallAlphabets, $capitalAlphabets]), testMapping, meta::relational::tests::dbSpecificTests::sqlQueryTests::namingTests::myDB, $config, meta::relational::extension::relationalExtensions()); - + runDataAssertion($result, $config, - | + | assertEquals($result.values.columns->map(x | $x.name), [$specialCharacters, $numbers, $smallAlphabets, $capitalAlphabets]); ); - + true; } @@ -99,7 +99,7 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe let result = executeViaPlan(| MyClassC.all()->project([x | $x.specialCharacters, x | $x.numbers, x | $x.smallAlphabets, x | $x.capitalAlphabets] ,[$specialCharacters, $numbers, $smallAlphabets, $capitalAlphabets]),testMapping, meta::relational::tests::dbSpecificTests::sqlQueryTests::namingTests::myDB, $config, meta::relational::extension::relationalExtensions()); runDataAssertion($result, $config, - | + | assertEquals($result.values.rows->map(x | $x.values), ['testData', 1, 2, 0]); assertEquals($result.values.columns->map(x | $x.name), [$specialCharacters, $numbers, $smallAlphabets, $capitalAlphabets]); ); @@ -110,12 +110,12 @@ function <> meta::relational::tests::dbSpecificTests::s // let setupSqls = ['Drop table if exists testTable;', // 'Create Table testTable(ID INT, "Column Name with Space" INT, "Column&A" INT, "Column.ID" INT);', // 'insert into testTable(ID, "Column Name with Space", "Column&A", "Column.ID") values (1,2,0,3);', - + // 'Drop table if exists "test Table2";', // 'Create Table "test Table2"("Column&ID" INT, "My#Data" VARCHAR(20));', // 'insert into "test Table2"("Column&ID", "My#Data") values (3,\'Description A\');' // ]; - + let records = 'default\n'+ 'testTable\n'+ @@ -171,7 +171,7 @@ Class meta::relational::tests::dbSpecificTests::sqlQueryTests::namingTests::MyCl b : Integer[1]; c : String[1]; d : Integer[1]; -} +} Enum meta::relational::tests::dbSpecificTests::sqlQueryTests::namingTests::MyEnum { @@ -192,13 +192,13 @@ Database meta::relational::tests::dbSpecificTests::sqlQueryTests::namingTests::m "Column&A" INT, "Column.ID" INT ) - + Table "test Table2" ( "Column&ID" INT PRIMARY KEY, "My#Data" VARCHAR(20) ) - + Table testTable3 ( ABCDEFGHIJKLMNOPQRSTUVWXYZ INT PRIMARY KEY, @@ -232,19 +232,19 @@ Mapping meta::relational::tests::dbSpecificTests::sqlQueryTests::namingTests::te YES: 1, NO: 0 } - + MyClass: Relational { a: [myDB] testTable."Column Name with Space", b: [myDB] @testJoin, d: EnumerationMapping Active : [myDB] testTable."Column&A" } - + MyClassB: Relational { c: [myDB] "test Table2"."My#Data" } - + MyClassC: Relational { capitalAlphabets: [myDB] testTable3.ABCDEFGHIJKLMNOPQRSTUVWXYZ, diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/filters.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/filters.pure index 2337d24900a..67b3f83a780 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/filters.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/filters.pure @@ -14,32 +14,34 @@ import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::relational::dbTestRunner::*; import meta::pure::test::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::router::*; function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::filters::testSelectEqual(config:DbTestConfig[1]):Boolean[1] { let result = executeViaPlan(|Person.all()->filter(p|$p.firstName == 'John'), simpleRelationalMapping, meta::relational::tests::db, $config,meta::relational::extension::relationalExtensions()); - + runDataAssertion($result, $config, | assertSameElements(['Johnson', 'Hill'], $result.values->map(p|$p.lastName)); - ); + ); } function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::filters::testLessThanEqualString(config:DbTestConfig[1]):Boolean[1] -{ +{ let result = executeViaPlan(|Person.all()->filter(p|$p.firstName <= 'John'), simpleRelationalMapping, meta::relational::tests::db, $config, meta::relational::extension::relationalExtensions()); - + runDataAssertion($result, $config, | assertSameElements(['Johnson', 'Hill', 'Allen', 'Roberts', 'Harris'], $result.values->map(p|$p.lastName)); ); } function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::filters::testGreaterThanEqualString(config:DbTestConfig[1]):Boolean[1] -{ +{ let result = executeViaPlan(|Person.all()->filter(p|$p.firstName >= 'John'), simpleRelationalMapping, meta::relational::tests::db, $config, meta::relational::extension::relationalExtensions()); runDataAssertion($result, $config, @@ -57,7 +59,7 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe } function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::filters::testFilterOnAssociatedClassAggValueAfterGroupBy(config:DbTestConfig[1]):Boolean[1] -{ +{ let result = executeViaPlan(|Person.all()->groupBy([p|$p.age], agg(x|$x.address.name,y|$y->joinStrings(',')),['age', 'addresses'])->filter({r|$r.getString('addresses')->contains('Hoboken')}), simpleRelationalMapping, meta::relational::tests::db, $config, meta::relational::extension::relationalExtensions()); runDataAssertion($result, $config, @@ -66,11 +68,11 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe } function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::filters::testFilterMultipleExpressions(config:DbTestConfig[1]):Boolean[1] -{ - let result = executeViaPlan(|Person.all()->project([p | $p.firstName, p | $p.lastName], ['first', 'last'])->filter({r | +{ + let result = executeViaPlan(|Person.all()->project([p | $p.firstName, p | $p.lastName], ['first', 'last'])->filter({r | and([ - $r.isNotNull('first'), - eq($r.getString('first'), 'John'), + $r.isNotNull('first'), + eq($r.getString('first'), 'John'), eq($r.getString('last'), 'Johnson') ]) }), simpleRelationalMapping, meta::relational::tests::db, $config, meta::relational::extension::relationalExtensions()); @@ -81,12 +83,12 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe } function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::filters::testFilterAfterFilter(config:DbTestConfig[1]):Boolean[1] -{ +{ let result = executeViaPlan(|Person.all()->filter(p | $p.firstName->startsWith('Peter'))->filter(p | if($p.firstName->length() < 10, - | $p.firm.address->filter(a | $a.name == 'New York').name->isNotEmpty(), + | $p.firm.address->filter(a | $a.name == 'New York').name->isNotEmpty(), | $p.firm.address->filter(a | $a.name == 'New York').name->isEmpty())) , simpleRelationalMappingWithFilter, meta::relational::tests::db, $config, meta::relational::extension::relationalExtensions()); - + runDataAssertion($result, $config,| assertEquals(['Peter Smith'], $result.values->map(p|$p.name)->makeString());); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/groupBy.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/groupBy.pure index c7b55effce4..5f9d67f2cc5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/groupBy.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/groupBy.pure @@ -18,12 +18,16 @@ import meta::pure::test::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::dbTestRunner::*; import meta::pure::test::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::relational::metamodel::relation::*; //Tests on groups @@ -33,7 +37,7 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe ->project([#/Trade/quantity!quantity#, #/Trade/product/name!prodName#]) ->groupBy('prodName', agg('cnt', x|$x, y| $y->count())), simpleRelationalMapping, meta::relational::tests::db, $config, meta::relational::extension::relationalExtensions()); - + runDataAssertion($result, $config, |let tds = $result.values->at(0); assertEquals([String, Integer], $result.values.columns.type); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/join.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/join.pure index cbfd31fd52a..212a73e189d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/join.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/join.pure @@ -14,15 +14,17 @@ import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::tds::tdsJoin::*; import meta::relational::metamodel::join::*; import meta::relational::dbTestRunner::*; import meta::pure::test::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::join::testJoinByMultiColumnName(config:DbTestConfig[1]):Boolean[1] -{ +{ let result = executeViaPlan( |testJoinTDS_Person.all()->project([#/testJoinTDS_Person/personID!personID#, #/testJoinTDS_Person/lastName!personName#, #/testJoinTDS_Person/employerID!eID#]) ->join( @@ -39,7 +41,7 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe } function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::join::testJoinBySingleColumnName(config:DbTestConfig[1]):Boolean[1] -{ +{ let result = executeViaPlan( |testJoinTDS_Person.all()->project([#/testJoinTDS_Person/personID!personID#, #/testJoinTDS_Person/lastName!personName#, #/testJoinTDS_Person/employerID!eID#]) ->join( @@ -56,10 +58,10 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe } function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::join::testInnerJoinSimple(config:DbTestConfig[1]):Boolean[1] -{ +{ let result = executeViaPlan(|testJoinTDS_Person.all()->project([#/testJoinTDS_Person/personID!personID#, #/testJoinTDS_Person/lastName!personName#, #/testJoinTDS_Person/employerID!eID#]) ->join(testJoinTDS_Firm.all()->project([#/testJoinTDS_Firm/legalName!firmName#, #/testJoinTDS_Firm/firmID!fID#]), JoinType.INNER, {a,b|$a.getInteger('eID') == $b.getInteger('fID');}), testJoinTDSMapping, meta::relational::tests::db, $config, meta::relational::extension::relationalExtensions()); - + runDataAssertion($result, $config, | assertSameElements(['1,Smith,1,Firm X,1', '2,Johnson,1,Firm X,1', '3,Hill,1,Firm X,1', '4,Allen,1,Firm X,1', '5,Roberts,2,Firm A,2', '6,Hill,3,Firm B,3', '7,Harris,4,Firm C,4'], $result.values.rows->map(r|$r.values->makeString(','))); @@ -67,10 +69,10 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe } function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::join::testLeftOuterJoinSimple(config:DbTestConfig[1]):Boolean[1] -{ +{ let result = executeViaPlan(|testJoinTDS_Person.all()->project([#/testJoinTDS_Person/personID!personID#, #/testJoinTDS_Person/lastName!personName#, #/testJoinTDS_Person/employerID!eID#]) ->join(testJoinTDS_Firm.all()->project([#/testJoinTDS_Firm/legalName!firmName#, #/testJoinTDS_Firm/firmID!fID#]), JoinType.LEFT_OUTER, {a,b|($a.getInteger('eID') + 2) == $b.getInteger('fID')}), testJoinTDSMapping, meta::relational::tests::db, $config, meta::relational::extension::relationalExtensions()); - + runDataAssertion($result, $config, | assertSameElements(['1,Smith,1,Firm B,3', '2,Johnson,1,Firm B,3', '3,Hill,1,Firm B,3', '4,Allen,1,Firm B,3', '5,Roberts,2,Firm C,4', '6,Hill,3,TDSNull,TDSNull', '7,Harris,4,TDSNull,TDSNull'], $result.values.rows->map(r|$r.values->makeString(','))); @@ -81,7 +83,7 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe { let result = executeViaPlan(|testJoinTDS_Person.all()->project([#/testJoinTDS_Person/personID!personID#, #/testJoinTDS_Person/lastName!personName#, #/testJoinTDS_Person/employerID!eID#]) ->join(testJoinTDS_Firm.all()->project([#/testJoinTDS_Firm/legalName!firmName#, #/testJoinTDS_Firm/firmID!fID#]), JoinType.RIGHT_OUTER, {a,b|($a.getInteger('eID') + 2) == $b.getInteger('fID');}), testJoinTDSMapping, meta::relational::tests::db, $config, meta::relational::extension::relationalExtensions()); - + runDataAssertion($result, $config, | assertEquals([Integer , String, Integer, String, Integer], $result.values.columns.type); assertSameElements(['1,Smith,1,Firm B,3', '2,Johnson,1,Firm B,3', '3,Hill,1,Firm B,3', '4,Allen,1,Firm B,3', @@ -90,7 +92,7 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe } function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::join::testSelfJoinInner(config:DbTestConfig[1]):Boolean[1] -{ +{ let type = JoinType.INNER; let result = executeViaPlan(|testJoinTDS_Person.all()->project([#/testJoinTDS_Person/personID!personID#, #/testJoinTDS_Person/lastName!personName#, #/testJoinTDS_Person/managerID!mID#]) ->join(testJoinTDS_Person.all()->project([#/testJoinTDS_Person/personID!pID#, #/testJoinTDS_Person/lastName!managerName#]), $type, {a,b |$a.getInteger('mID') == $b.getInteger('pID');}) @@ -102,7 +104,7 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe } function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::join::testSelfJoinOuter(config:DbTestConfig[1]):Boolean[1] -{ +{ let type = JoinType.LEFT_OUTER; let result = executeViaPlan(|testJoinTDS_Person.all()->project([#/testJoinTDS_Person/personID!personID#, #/testJoinTDS_Person/lastName!personName#, #/testJoinTDS_Person/managerID!mID#]) ->join(testJoinTDS_Person.all()->project([#/testJoinTDS_Person/personID!pID#, #/testJoinTDS_Person/lastName!managerName#]), $type, {a,b |$a.getInteger('mID') == $b.getInteger('pID');}) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/mixtureOfClauses.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/mixtureOfClauses.pure index dd603464233..2fb6cd6014a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/mixtureOfClauses.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/mixtureOfClauses.pure @@ -14,12 +14,14 @@ import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::tds::tdsJoin::*; import meta::relational::metamodel::join::*; import meta::relational::dbTestRunner::*; import meta::pure::test::*; import meta::relational::tests::dbSpecificTests::shared::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::mixtureOfCluases::testFilterAfterJoinInner(config:DbTestConfig[1]):Boolean[1] @@ -29,7 +31,7 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe ->join(testJoinTDS_Firm.all()->project([#/testJoinTDS_Firm/legalName!firmName#, #/testJoinTDS_Firm/firmID!fID#, #/testJoinTDS_Firm/firmAddrID!faID#]), $type, {a,b |$a.getInteger('eID') == $b.getInteger('fID');}) ->restrict(['personName', 'personAge', 'faID']) ->filter(p | $p.getInteger('personAge') > 30), testJoinTDSMapping, meta::relational::tests::db, $config, meta::relational::extension::relationalExtensions()); - + runDataAssertion($result, $config, | assertSameElements(['Roberts,34,9', 'Hill,32,10', 'Harris,35,11'], $result.values.rows->map(r|$r.values->makeString(','))); ); @@ -84,7 +86,7 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe ) ->distinct() ->groupBy('legalName', agg('lastNamesCount', x|$x.getString('lastName'), y|$y->distinct()->count())), simpleRelationalMapping, meta::relational::tests::db, $config, meta::relational::extension::relationalExtensions()); - + runDataAssertion($result, $config, | let tds = $result.values->at(0); assertEquals(4, $tds.rows->size()); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/orderBy.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/orderBy.pure index 96fe9d8456f..ab097bcb2f4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/orderBy.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/orderBy.pure @@ -14,23 +14,25 @@ import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::dbTestRunner::*; import meta::pure::test::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::orderBy::testSimpleSortAsc(config:DbTestConfig[1]):Boolean[1] -{ +{ let result = executeViaPlan(|Person.all()->project([#/Person/firstName!name#])->sort('name'), simpleRelationalMapping, meta::relational::tests::db, $config, meta::relational::extension::relationalExtensions()); runDataAssertion($result, $config, - | assertEquals('Anthony,David,Fabrice,John,John,Oliver,Peter', $result.values.rows->map(r|$r.values)->makeString(',')); + | assertEquals('Anthony,David,Fabrice,John,John,Oliver,Peter', $result.values.rows->map(r|$r.values)->makeString(',')); ); } function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::orderBy::testSimpleSortDesc(config:DbTestConfig[1]):Boolean[1] -{ +{ let result = executeViaPlan(|Person.all()->project([#/Person/firstName!name#])->sort('name', SortDirection.DESC), simpleRelationalMapping, meta::relational::tests::db, $config, meta::relational::extension::relationalExtensions()); - + runDataAssertion($result, $config, | assertEquals('Peter,Oliver,John,John,Fabrice,David,Anthony', $result.values.rows->map(r|$r.values)->makeString(',')); ); @@ -40,7 +42,7 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::orderBy::testDoubleSortAsc(config:DbTestConfig[1]):Boolean[1] { let result = executeViaPlan(|Person.all()->project([#/Person/firstName!name#, #/Person/address/name!address#])->sort(['address', 'name']), simpleRelationalMapping, meta::relational::tests::db, $config, meta::relational::extension::relationalExtensions()); - + runDataAssertion($result, $config, | assertEquals('Peter,Hoboken,Oliver,Hong Kong,Anthony,New York,David,New York,John,New York,John,New York,Fabrice,San Fransisco', $result.values.rows->map(r|$r.values)->makeString(',')); ); @@ -49,7 +51,7 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::orderBy::testDoubleSortAscChain(config:DbTestConfig[1]):Boolean[1] { let result = executeViaPlan(|Person.all()->project([#/Person/firstName!name#, #/Person/address/name!address#])->sort('address')->sort(asc('name')), simpleRelationalMapping, meta::relational::tests::db, $config, meta::relational::extension::relationalExtensions()); - + runDataAssertion($result, $config, | assertEquals('Anthony,New York,David,New York,Fabrice,San Fransisco,John,New York,John,New York,Oliver,Hong Kong,Peter,Hoboken', $result.values.rows->map(r|$r.values)->makeString(',')); ); @@ -67,7 +69,7 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::orderBy::testDoubleSortDescChain(config:DbTestConfig[1]):Boolean[1] { let result = executeViaPlan(|Person.all()->project([#/Person/firstName!name#, #/Person/address/name!address#])->sort(desc('name'))->sort('address', SortDirection.DESC), simpleRelationalMapping, meta::relational::tests::db, $config, meta::relational::extension::relationalExtensions()); - + runDataAssertion($result, $config, | assertEquals('Fabrice,San Fransisco,John,New York,John,New York,David,New York,Anthony,New York,Oliver,Hong Kong,Peter,Hoboken', $result.values.rows->map(r|$r.values)->makeString(',')); ); @@ -78,14 +80,14 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::orderBy::testDoubleSortMixed(config:DbTestConfig[1]):Boolean[1] { let result = executeViaPlan(|Person.all()->project([#/Person/firstName!name#, #/Person/address/name!address#])->sort([desc('address'), asc('name')]), simpleRelationalMapping, meta::relational::tests::db, $config, meta::relational::extension::relationalExtensions()); - + runDataAssertion($result, $config, - | assertEquals('Fabrice,San Fransisco,Anthony,New York,David,New York,John,New York,John,New York,Oliver,Hong Kong,Peter,Hoboken', $result.values.rows->map(r|$r.values)->makeString(',')); + | assertEquals('Fabrice,San Fransisco,Anthony,New York,David,New York,John,New York,John,New York,Oliver,Hong Kong,Peter,Hoboken', $result.values.rows->map(r|$r.values)->makeString(',')); ); } function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::orderBy::testDoubleSortMixedChain(config:DbTestConfig[1]):Boolean[1] -{ +{ let result = executeViaPlan(|Person.all()->project([#/Person/firstName!name#, #/Person/address/name!address#])->sort(desc('address'))->sort('name'), simpleRelationalMapping, meta::relational::tests::db, $config, meta::relational::extension::relationalExtensions()); runDataAssertion($result, $config, | assertEquals('Anthony,New York,David,New York,Fabrice,San Fransisco,John,New York,John,New York,Oliver,Hong Kong,Peter,Hoboken', $result.values.rows->map(r|$r.values)->makeString(',')); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/range.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/range.pure index 22a7da757e9..72951e5242d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/range.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/range.pure @@ -15,17 +15,17 @@ import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::relational::functions::sqlstring::*; import meta::relational::dbTestRunner::*; import meta::pure::test::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::executionPlan::*; function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::slice::testSlice(config:DbTestConfig[1]):Boolean[1] { - let runtime = ^Runtime(connections=$config.connection); - let result = executeViaPlan(|Person.all()->slice(1,4), simpleRelationalMapping, meta::relational::tests::dbInc, $config, meta::relational::extension::relationalExtensions()); runDataAssertion($result, $config, | assertSize($result.values, 3);); @@ -34,9 +34,7 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe } function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::slice::testSliceWithRestrict(config:DbTestConfig[1]):Boolean[1] -{ - let runtime = ^Runtime(connections=$config.connection); - +{ let f1 = {|Person.all()->project([col(p|$p.firstName, 'firstName'), col(p|$p.lastName, 'lastName')])->slice(0,50)->restrict('firstName')->sort(asc('firstName'))->slice(3, 5);}; let result = executeViaPlan($f1, simpleRelationalMapping, meta::relational::tests::dbInc, $config, meta::relational::extension::relationalExtensions()); runDataAssertion($result, $config, | assertSize($result.values.rows, 2);); @@ -48,8 +46,6 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::limit::testSimpleLimit(config:DbTestConfig[1]):Boolean[1] { - let runtime = ^Runtime(connections=$config.connection); - let result = executeViaPlan(|Person.all()->limit(0), simpleRelationalMapping, meta::relational::tests::dbInc, $config, meta::relational::extension::relationalExtensions()); runDataAssertion($result, $config, | assertSize($result.values, 0 );); @@ -59,8 +55,6 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryT function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::take::testSimpleTake(config:DbTestConfig[1]):Boolean[1] { - let runtime = ^Runtime(connections=$config.connection); - let result = executeViaPlan(|Person.all()->take(0), simpleRelationalMapping, meta::relational::tests::dbInc, $config, meta::relational::extension::relationalExtensions()); runDataAssertion($result, $config, | assertSize($result.values, 0 );); @@ -70,8 +64,6 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryT function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::drop::testSimpleDrop(config:DbTestConfig[1]):Boolean[1] { - let runtime = ^Runtime(connections=$config.connection); - let result = executeViaPlan(|Person.all()->drop(0), simpleRelationalMapping, meta::relational::tests::dbInc, $config, meta::relational::extension::relationalExtensions()); runDataAssertion($result, $config, | assertSize($result.values, 7 );); @@ -81,7 +73,6 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryT function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::drop::testDropLimitByVendor(config:DbTestConfig[1]):Boolean[1] { - let runtime = ^Runtime(connections=$config.connection); let result = executeViaPlan(|Person.all()->project([col(p|$p.firstName, 'firstName'), col(p|$p.lastName, 'lastName')])->drop(10)->limit(100);, meta::relational::tests::simpleRelationalMapping, meta::relational::tests::dbInc, $config, meta::relational::extension::relationalExtensions()); runDataAssertion($result, $config, | assertSize($result.values, 1 );); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/setup.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/setup.pure index 8bb98b61938..eccbc7dd375 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/setup.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/setup.pure @@ -15,9 +15,11 @@ import meta::pure::executionPlan::*; import meta::pure::mapping::*; import meta::relational::dbTestRunner::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::test::*; import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::setUp(config:DbTestConfig[1]):Boolean[1] { diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/union.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/union.pure index ebd7e038314..18f404df91a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/union.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/union.pure @@ -16,8 +16,10 @@ import meta::relational::tests::projection::view::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::dbTestRunner::*; import meta::pure::test::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::union::testSimpleConcatenate(config:DbTestConfig[1]):Boolean[1] @@ -27,12 +29,12 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe ->project([col(p|$p.lastName, 'lastName')]) ->concatenate(Person.all()->project([col(p|$p.lastName, 'lastName')])) , - simpleRelationalMapping, + simpleRelationalMapping, meta::relational::tests::db, $config, meta::relational::extension::relationalExtensions()); - + runDataAssertion($result, $config, | let tds = $result.values->toOne()->sort([asc('lastName')]); - assertSize($tds.columns, 1); + assertSize($tds.columns, 1); assertEquals('Allen,Allen,Harris,Harris,Hill,Hill,Hill,Hill,Johnson,Johnson,Roberts,Roberts,Smith,Smith', $tds.rows->map(r|$r.values->makeString('|'))->makeString(',')); ); @@ -46,15 +48,15 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe ->filter(row:TDSRow[1]| $row.getString('lastName') != 'hello') ->concatenate(Person.all()->project([col(p|$p.lastName, 'lastName')])) , - simpleRelationalMapping, + simpleRelationalMapping, meta::relational::tests::db, $config, meta::relational::extension::relationalExtensions()); - + runDataAssertion($result, $config, | let tds = $result.values->toOne()->sort([asc('lastName')]); - assertSize($tds.columns, 1); + assertSize($tds.columns, 1); assertEquals('Allen,Allen,Harris,Harris,Hill,Hill,Hill,Hill,Johnson,Johnson,Roberts,Roberts,Smith,Smith', - $tds.rows->map(r|$r.values->makeString('|'))->makeString(',')); - ); + $tds.rows->map(r|$r.values->makeString('|'))->makeString(',')); + ); } function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::union::testConcatenateWithPostOperation(config:DbTestConfig[1]):Boolean[1] @@ -65,12 +67,12 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe ->concatenate(Person.all()->project([col(p|$p.lastName, 'lastName')])) ->filter(row:TDSRow[1]| $row.getString('lastName') != 'hello') , - simpleRelationalMapping, + simpleRelationalMapping, meta::relational::tests::db, $config, meta::relational::extension::relationalExtensions()); - + runDataAssertion($result, $config, - | let tds = $result.values->toOne()->sort([asc('lastName')]); - assertSize($tds.columns, 1); + | let tds = $result.values->toOne()->sort([asc('lastName')]); + assertSize($tds.columns, 1); assertEquals('Allen,Allen,Harris,Harris,Hill,Hill,Hill,Hill,Johnson,Johnson,Roberts,Roberts,Smith,Smith', $tds.rows->map(r|$r.values->makeString('|'))->makeString(',')); ); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/view.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/view.pure index 928c2cc8c2b..244dafddb98 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/view.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/view.pure @@ -16,6 +16,8 @@ import meta::relational::tests::projection::view::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::dbTestRunner::*; import meta::pure::test::*; @@ -23,7 +25,7 @@ import meta::pure::test::*; function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::view::testViewAllOneSimpleProperty(config:DbTestConfig[1]):Boolean[1] { let result = executeViaPlan(|OrderPnl.all()->project(#/OrderPnl/pnl#), simpleRelationalMapping, meta::relational::tests::db, $config, meta::relational::extension::relationalExtensions()); - + runDataAssertion($result, $config, | assertSameElements(['100.0', '200.0', '150.0'], $result.values.rows->map(r|$r.values->makeString(''))); ); @@ -41,4 +43,4 @@ function <> meta::relational::tests::dbSpecificTests::sqlQueryTe let result = executeViaPlan(|OrderPnl.all()->project([o|$o.order.id, o|$o.pnl],['orderId','pnl']), unionOnViewOnViewMapping, meta::relational::tests::db, $config, meta::relational::extension::relationalExtensions()); runDataAssertion($result, $config,| assertSameElements(['1,100.0', '2,200.0', '4,150.0', '3,0.0'], $result.values.rows->map(r|$r.values->makeString(',')));); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/windowColumn.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/windowColumn.pure index 245dce3a0e5..a10bdef9c06 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/windowColumn.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/selectSubClauses/windowColumn.pure @@ -15,16 +15,20 @@ import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::dbTestRunner::*; import meta::pure::test::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::relational::metamodel::relation::*; function <> meta::relational::tests::dbSpecificTests::sqlQueryTests::selectSubClauses::windowColumn::windowAvg(config:DbTestConfig[1]):Boolean[1] -{ +{ let func ={|meta::relational::tests::model::simple::PersonSortable.all() ->project([ col(p |$p.id, 'id'), diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/testTempTableSqlStatements.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/testTempTableSqlStatements.pure index ee3153fed4d..47b93b250ea 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/testTempTableSqlStatements.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/testSuite/testTempTableSqlStatements.pure @@ -16,6 +16,7 @@ import meta::relational::functions::sqlQueryToString::tests::*; import meta::relational::functions::pureToSqlQuery::metamodel::*; import meta::relational::functions::sqlQueryToString::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::relation::*; @@ -94,7 +95,7 @@ function meta::relational::functions::sqlQueryToString::tests::getTempTableSqlSt let temporaryTable = meta::relational::functions::sqlQueryToString::tests::createTable([],$dbType); let createSql = ^CreateTableSQL(table = $temporaryTable, isTempTable=true); let loadSql = ^LoadTableSQL(table = $temporaryTable, absolutePathToFile=^VarPlaceHolder(name= $VarPlaceHolder, type = $VarPlaceHolder->type()), columnsToLoad=$temporaryTable.columns->cast(@Column)); - + $createSql->meta::relational::functions::sqlQueryToString::ddlSqlQueryToString($dbConfig)->concatenate( $loadSql->meta::relational::functions::sqlQueryToString::ddlSqlQueryToString($dbConfig))->concatenate( ^DropTableSQL(table = $temporaryTable)->meta::relational::functions::sqlQueryToString::ddlSqlQueryToString($dbConfig)); @@ -119,5 +120,5 @@ function <> meta::relational::functions::sqlQueryToString::tests::tes 'INSERT INTO temp_table_test SELECT * FROM CSVREAD(\'${csv_file_location}\');', 'Drop table if exists temp_table_test;' ]; - meta::relational::functions::sqlQueryToString::tests::compareSqls($actualSqls, $expectedSqls); -} \ No newline at end of file + meta::relational::functions::sqlQueryToString::tests::compareSqls($actualSqls, $expectedSqls); +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testCanRouteWrappedFunctions.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testCanRouteWrappedFunctions.pure index b302f5c1bc9..2c9e7debd0a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testCanRouteWrappedFunctions.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testCanRouteWrappedFunctions.pure @@ -28,8 +28,8 @@ Class meta::relational::tests::tds::window::routing::ACCOUNT function <> meta::relational::tests::tds::window::routing::testExecutionPlanGeneration():Boolean[1] { let plan = {limit:Integer[1]|$limit->function1()->function2()->function3()} - ->meta::pure::executionPlan::executionPlan(meta::relational::tests::tds::window::routing::AccountMapping, - meta::relational::tests::testRuntime(), relationalExtensions()); + ->meta::pure::executionPlan::executionPlan(meta::relational::tests::tds::window::routing::AccountMapping, + meta::external::store::relational::tests::testRuntime(), relationalExtensions()); let expectedPlan ='Sequence\n'+ '(\n'+ ' type = TDS[(firstName, String, VARCHAR(200), ""), (lastName, String, VARCHAR(200), ""), (id, Integer, "", ""), (ageSum, Integer, INT, ""), (olapcolumn, Integer, INT, "")]\n'+ diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testDistinct.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testDistinct.pure index 01e6156fc2c..4d46b7d234d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testDistinct.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testDistinct.pure @@ -14,6 +14,7 @@ import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::pure::profiles::*; import meta::pure::metamodel::tds::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testGroupBy.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testGroupBy.pure index 6d27c153a1b..97df136e370 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testGroupBy.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testGroupBy.pure @@ -14,10 +14,12 @@ import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::validation::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::pure::metamodel::tds::*; @@ -25,9 +27,9 @@ import meta::pure::metamodel::tds::*; function <> meta::relational::tests::tds::groupBy::testValidateTdsGroupByWithIsNotEmpty():Boolean[1] { let runtime = testRuntime(); - let connection = $runtime.connections->at(0)->cast(@DatabaseConnection); + let connection = $runtime.connectionStores.connection->at(0)->cast(@DatabaseConnection); meta::relational::metamodel::execute::executeInDb('insert into tradeTable (id, prodid, accountId, quantity, tradeDate, settlementDateTime) values (9, 3, 2, 45, \'2014-12-04\', \'2014-12-05 22:00:00\');', $connection); - + let result = validate(|AccountWithConstraints.all(), simpleRelationalMappingWithConstraints, testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(1, $tds.rows->size()); @@ -170,7 +172,7 @@ function <> meta::relational::tests::tds::groupBy: function <> meta::relational::tests::tds::groupBy::simpleGroupByAggFuncAsLambdaWithTake():Boolean[1] { - let fn = {| + let fn = {| Trade.all()->project([#/Trade/quantity!quantity#, #/Trade/product/name!prodName#]) ->groupBy('prodName', agg('sum', x|$x.getFloat('quantity'), y| $y->sum())) ->sort(desc('prodName')) @@ -398,15 +400,15 @@ function <> meta::relational::tests::tds::groupBy::testTableToTDSWith ->restrict(['FIRST NAME']) ->groupBy(['FIRST NAME'], agg('cnt', x|$x.getString('FIRST NAME'), y|$y->count())) }; - + let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let resWithoutQuotes = execute($queryWithoutQuotes, $mapping, $runtime, meta::relational::extension::relationalExtensions()); - + let expectedSql = 'select "root"."FIRST NAME" as "FIRST NAME", count("root"."FIRST NAME") as "cnt" from tableWithQuotedColumns as "root" group by "FIRST NAME"'; - + assertEquals($expectedSql, $resWithoutQuotes->sqlRemoveFormatting()); - + let queryWithQuotes = {|tableToTDS(meta::relational::functions::database::tableReference(meta::relational::tests::db, 'default', 'tableWithQuotedColumns')) ->project([ col({r:TDSRow[1]|$r.getString('FIRST NAME')}, 'FIRST NAME'), @@ -418,10 +420,10 @@ function <> meta::relational::tests::tds::groupBy::testTableToTDSWith ->restrict(['"FIRST NAME"']) ->groupBy(['"FIRST NAME"'], agg('cnt', x|$x.getString('"FIRST NAME"'), y|$y->count())) }; - + let resWithQuotes = execute($queryWithoutQuotes, $mapping, $runtime, meta::relational::extension::relationalExtensions()); - - assertEquals($expectedSql, $resWithQuotes->sqlRemoveFormatting()); + + assertEquals($expectedSql, $resWithQuotes->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::groupBy::testTDSGroupByPercentile():Boolean[1] @@ -451,9 +453,9 @@ function <> meta::relational::tests::tds::groupBy::testTDSGroupByEmpt ->project([col(x | $x.legalName, 'Legal Name')]) ->groupBy([], [agg('Firm Count', x|$x, y|$y->count())]), simpleRelationalMapping, - meta::relational::tests::testRuntime(), + meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals(['4'], $result.values.rows->map(r|$r.values->makeString('|'))); meta::relational::functions::asserts::assertSameSQL('select count(*) as "Firm Count" from firmTable as "root"', $result); } @@ -466,9 +468,9 @@ function <> meta::relational::tests::tds::groupBy::testTDSGroupByEmpt ->groupBy([], [agg('Firm Count', x|$x, y|$y->count())]) ->filter(r | $r.getInteger('Firm Count') > 10), simpleRelationalMapping, - meta::relational::tests::testRuntime(), + meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals([], $result.values.rows->map(r|$r.values->makeString('|'))); meta::relational::functions::asserts::assertSameSQL('select "Firm Count" as "Firm Count" from (select count(*) as "Firm Count" from firmTable as "root") as "subselect" where "Firm Count" > 10', $result); } @@ -480,8 +482,8 @@ function <> meta::relational::tests::tds::groupBy: ->project([col(x | $x.date, 'Date')]) ->groupBy([], [agg('Date Adjust', x|$x.getStrictDate('Date'), y|$y->max()->toOne()->adjust(1, DurationUnit.WEEKS))]), meta::relational::extension::relationalExtensions()), simpleRelationalMapping, - meta::relational::tests::testRuntime(), + meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); - + meta::relational::functions::asserts::assertSameSQL('select dateadd(WEEK, 1, max("root".tradeDate)) as "Date Adjust" from tradeTable as "root"', $result); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testSliceTakeLimitDrop.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testSliceTakeLimitDrop.pure index 3cf8436c5ad..455e0304560 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testSliceTakeLimitDrop.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testSliceTakeLimitDrop.pure @@ -15,6 +15,7 @@ import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::pure::metamodel::tds::*; @@ -37,7 +38,7 @@ function <> meta::relational::tests::tds::slice::testSimpleSliceZeroS { let resultA = execute(|Person.all()->project([#/Person/firstName!name#])->slice(0,2), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); let resultB = execute(|Person.all()->project([#/Person/firstName!name#])->take(2), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals($resultA->sqlRemoveFormatting(), $resultB->sqlRemoveFormatting()); } @@ -114,4 +115,4 @@ function <> meta::relational::tests::projection::drop::testSimpleNest let result = execute(|Person.all()->project([#/Person/firstName!name#])->concatenate(Person.all()->project([#/Person/firstName!name#]))->slice(1,5)->sort(asc('name')), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('select "name" as "name" from (select "unionalias_1"."name" as "name" from (select "root".FIRSTNAME as "name" from personTable as "root" UNION ALL select "root".FIRSTNAME as "name" from personTable as "root") as "unionalias_1" offset 1 rows fetch next 4 rows only) as "subselect" order by "name"', $result->sqlRemoveFormatting()); assertSize($result.values.rows, 4 ); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testSort.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testSort.pure index 0332f0517f1..eb86d8eecff 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testSort.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testSort.pure @@ -12,10 +12,12 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::pure::metamodel::tds::*; import meta::relational::functions::sqlstring::*; @@ -36,7 +38,7 @@ function <> meta::relational::tests::tds::sort::testSimpleSortAscWith assertSize($result.values.rows, 7 ); assertEquals('Anthony,David,Fabrice,John,John,Oliver,Peter', $result.values.rows->map(r|$r.values)->makeString(',')); assertEquals('select "root".FIRSTNAME as "name" from personTable as "root" order by "name"', $result->sqlRemoveFormatting()); -} +} function <> meta::relational::tests::tds::sort::testSimpleSortAscInputToProject():Boolean[1] { @@ -188,16 +190,16 @@ function <> meta::relational::tests::tds::sort::testTableToTDSWithQuo ]) ->sort([desc(['FIRST NAME'])]) }; - + let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); - + let runtime = meta::external::store::relational::tests::testRuntime(); + let resWithoutQuotes = execute($queryWithoutQuotes, $mapping, $runtime, meta::relational::extension::relationalExtensions()); - + let expectedSql = 'select "root"."FIRST NAME" as "FIRST NAME", "root"."LAST NAME" as "LAST NAME", "root"."1columnStartsWithNumber" as "1columnStartsWithNumber" from tableWithQuotedColumns as "root" order by "FIRST NAME" desc'; - + assertEquals($expectedSql, $resWithoutQuotes->sqlRemoveFormatting()); - + let queryWithQuotes = {|tableToTDS(meta::relational::functions::database::tableReference(meta::relational::tests::db, 'default', 'tableWithQuotedColumns')) ->project([ col({r:TDSRow[1]|$r.getString('FIRST NAME')}, 'FIRST NAME'), @@ -208,9 +210,9 @@ function <> meta::relational::tests::tds::sort::testTableToTDSWithQuo ]) ->sort([desc(['"FIRST NAME"'])]) }; - + let resWithQuotes = execute($queryWithoutQuotes, $mapping, $runtime, meta::relational::extension::relationalExtensions()); - - assertEquals($expectedSql, $resWithQuotes->sqlRemoveFormatting()); + + assertEquals($expectedSql, $resWithQuotes->sqlRemoveFormatting()); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSConcatenate.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSConcatenate.pure index 915c2e28559..6c039b77e9a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSConcatenate.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSConcatenate.pure @@ -17,8 +17,10 @@ import meta::relational::functions::sqlstring::*; import meta::relational::tests::csv::*; import meta::relational::tests::model::simple::*; import meta::relational::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::tds::tdsConcatenate::testSimpleConcatenate():Boolean[1] { @@ -27,18 +29,18 @@ function <> meta::relational::tests::tds::tdsConcatenate::testSimpleC ->project([col(p|$p.lastName, 'lastName')]) ->concatenate(Person.all()->project([col(p|$p.lastName, 'lastName')])) , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + let tds = $result.values->toOne()->sort([asc('lastName')]); - - assertSize($tds.columns, 1); - + + assertSize($tds.columns, 1); + assertEquals('Allen,Allen,Harris,Harris,Hill,Hill,Hill,Hill,Johnson,Johnson,Roberts,Roberts,Smith,Smith', $tds.rows->map(r|$r.values->makeString('|'))->makeString(',')); - - assertEquals('select "unionalias_0"."lastName" as "lastName" from (select "root".LASTNAME as "lastName" from personTable as "root" UNION ALL select "root".LASTNAME as "lastName" from personTable as "root") as "unionalias_0"', - $result->sqlRemoveFormatting()); + + assertEquals('select "unionalias_0"."lastName" as "lastName" from (select "root".LASTNAME as "lastName" from personTable as "root" UNION ALL select "root".LASTNAME as "lastName" from personTable as "root") as "unionalias_0"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsConcatenate::testMultiConcatenate():Boolean[1] @@ -52,18 +54,18 @@ function <> meta::relational::tests::tds::tdsConcatenate::testMultiCo Person.all()->project([col(p|$p.lastName + '_3', 'lastName')]) ]) , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + let tds = $result.values->toOne()->sort([asc('lastName')]); - - assertSize($tds.columns, 1); - + + assertSize($tds.columns, 1); + assertEquals('Allen_0,Allen_1,Allen_2,Allen_3,Harris_0,Harris_1,Harris_2,Harris_3,Hill_0,Hill_0,Hill_1,Hill_1,Hill_2,Hill_2,Hill_3,Hill_3,Johnson_0,Johnson_1,Johnson_2,Johnson_3,Roberts_0,Roberts_1,Roberts_2,Roberts_3,Smith_0,Smith_1,Smith_2,Smith_3', $tds.rows->map(r|$r.values->makeString('|'))->makeString(',')); - - assertEquals('select "unionalias_0"."lastName" as "lastName" from (select concat("root".LASTNAME, \'_0\') as "lastName" from personTable as "root" UNION ALL select concat("root".LASTNAME, \'_1\') as "lastName" from personTable as "root" UNION ALL select concat("root".LASTNAME, \'_2\') as "lastName" from personTable as "root" UNION ALL select concat("root".LASTNAME, \'_3\') as "lastName" from personTable as "root") as "unionalias_0"', - $result->sqlRemoveFormatting()); + + assertEquals('select "unionalias_0"."lastName" as "lastName" from (select concat("root".LASTNAME, \'_0\') as "lastName" from personTable as "root" UNION ALL select concat("root".LASTNAME, \'_1\') as "lastName" from personTable as "root" UNION ALL select concat("root".LASTNAME, \'_2\') as "lastName" from personTable as "root" UNION ALL select concat("root".LASTNAME, \'_3\') as "lastName" from personTable as "root") as "unionalias_0"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsConcatenate::testConcatenateWithPreOperation1():Boolean[1] @@ -74,18 +76,18 @@ function <> meta::relational::tests::tds::tdsConcatenate::testConcate ->filter(row:TDSRow[1]| $row.getString('lastName') != 'hello') ->concatenate(Person.all()->project([col(p|$p.lastName, 'lastName')])) , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + let tds = $result.values->toOne()->sort([asc('lastName')]); - - assertSize($tds.columns, 1); - + + assertSize($tds.columns, 1); + assertEquals('Allen,Allen,Harris,Harris,Hill,Hill,Hill,Hill,Johnson,Johnson,Roberts,Roberts,Smith,Smith', $tds.rows->map(r|$r.values->makeString('|'))->makeString(',')); - - assertEquals('select "unionalias_0"."lastName" as "lastName" from (select "root".LASTNAME as "lastName" from personTable as "root" where ("root".LASTNAME <> \'hello\' OR "root".LASTNAME is null) UNION ALL select "root".LASTNAME as "lastName" from personTable as "root") as "unionalias_0"', - $result->sqlRemoveFormatting()); + + assertEquals('select "unionalias_0"."lastName" as "lastName" from (select "root".LASTNAME as "lastName" from personTable as "root" where ("root".LASTNAME <> \'hello\' OR "root".LASTNAME is null) UNION ALL select "root".LASTNAME as "lastName" from personTable as "root") as "unionalias_0"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsConcatenate::testConcatenateWithPreOperation2():Boolean[1] @@ -95,18 +97,18 @@ function <> meta::relational::tests::tds::tdsConcatenate::testConcate ->project([col(p|$p.lastName, 'lastName')]) ->concatenate(Person.all()->project([col(p|$p.lastName, 'lastName')])->filter(row:TDSRow[1]| $row.getString('lastName') != 'hello')) , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + let tds = $result.values->toOne()->sort([asc('lastName')]); - - assertSize($tds.columns, 1); - + + assertSize($tds.columns, 1); + assertEquals('Allen,Allen,Harris,Harris,Hill,Hill,Hill,Hill,Johnson,Johnson,Roberts,Roberts,Smith,Smith', $tds.rows->map(r|$r.values->makeString('|'))->makeString(',')); - - assertEquals('select "unionalias_0"."lastName" as "lastName" from (select "root".LASTNAME as "lastName" from personTable as "root" UNION ALL select "root".LASTNAME as "lastName" from personTable as "root" where ("root".LASTNAME <> \'hello\' OR "root".LASTNAME is null)) as "unionalias_0"', - $result->sqlRemoveFormatting()); + + assertEquals('select "unionalias_0"."lastName" as "lastName" from (select "root".LASTNAME as "lastName" from personTable as "root" UNION ALL select "root".LASTNAME as "lastName" from personTable as "root" where ("root".LASTNAME <> \'hello\' OR "root".LASTNAME is null)) as "unionalias_0"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsConcatenate::testConcatenateWithPreOperation3():Boolean[1] @@ -117,18 +119,18 @@ function <> meta::relational::tests::tds::tdsConcatenate::testConcate ->filter(row:TDSRow[1]| $row.getString('lastName') == 'hello') ->concatenate(Person.all()->project([col(p|$p.lastName, 'lastName')])) , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + let tds = $result.values->toOne()->sort([asc('lastName')]); - - assertSize($tds.columns, 1); - + + assertSize($tds.columns, 1); + assertEquals('Allen,Harris,Hill,Hill,Johnson,Roberts,Smith', $tds.rows->map(r|$r.values->makeString('|'))->makeString(',')); - - assertEquals('select "unionalias_0"."lastName" as "lastName" from (select "root".LASTNAME as "lastName" from personTable as "root" where "root".LASTNAME = \'hello\' UNION ALL select "root".LASTNAME as "lastName" from personTable as "root") as "unionalias_0"', - $result->sqlRemoveFormatting()); + + assertEquals('select "unionalias_0"."lastName" as "lastName" from (select "root".LASTNAME as "lastName" from personTable as "root" where "root".LASTNAME = \'hello\' UNION ALL select "root".LASTNAME as "lastName" from personTable as "root") as "unionalias_0"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsConcatenate::testConcatenateWithPreOperation4():Boolean[1] @@ -138,18 +140,18 @@ function <> meta::relational::tests::tds::tdsConcatenate::testConcate ->project([col(p|$p.lastName, 'lastName')]) ->concatenate(Person.all()->project([col(p|$p.lastName, 'lastName')])->filter(row:TDSRow[1]| $row.getString('lastName') == 'hello')) , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + let tds = $result.values->toOne()->sort([asc('lastName')]); - - assertSize($tds.columns, 1); - + + assertSize($tds.columns, 1); + assertEquals('Allen,Harris,Hill,Hill,Johnson,Roberts,Smith', $tds.rows->map(r|$r.values->makeString('|'))->makeString(',')); - - assertEquals('select "unionalias_0"."lastName" as "lastName" from (select "root".LASTNAME as "lastName" from personTable as "root" UNION ALL select "root".LASTNAME as "lastName" from personTable as "root" where "root".LASTNAME = \'hello\') as "unionalias_0"', - $result->sqlRemoveFormatting()); + + assertEquals('select "unionalias_0"."lastName" as "lastName" from (select "root".LASTNAME as "lastName" from personTable as "root" UNION ALL select "root".LASTNAME as "lastName" from personTable as "root" where "root".LASTNAME = \'hello\') as "unionalias_0"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsConcatenate::testConcatenateWithPostOperation1():Boolean[1] @@ -160,18 +162,18 @@ function <> meta::relational::tests::tds::tdsConcatenate::testConcate ->concatenate(Person.all()->project([col(p|$p.lastName, 'lastName')])) ->filter(row:TDSRow[1]| $row.getString('lastName') != 'hello') , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + let tds = $result.values->toOne()->sort([asc('lastName')]); - - assertSize($tds.columns, 1); - + + assertSize($tds.columns, 1); + assertEquals('Allen,Allen,Harris,Harris,Hill,Hill,Hill,Hill,Johnson,Johnson,Roberts,Roberts,Smith,Smith', $tds.rows->map(r|$r.values->makeString('|'))->makeString(',')); - - assertEquals('select "unionalias_0"."lastName" as "lastName" from (select "root".LASTNAME as "lastName" from personTable as "root" UNION ALL select "root".LASTNAME as "lastName" from personTable as "root") as "unionalias_0" where ("unionalias_0"."lastName" <> \'hello\' OR "unionalias_0"."lastName" is null)', - $result->sqlRemoveFormatting()); + + assertEquals('select "unionalias_0"."lastName" as "lastName" from (select "root".LASTNAME as "lastName" from personTable as "root" UNION ALL select "root".LASTNAME as "lastName" from personTable as "root") as "unionalias_0" where ("unionalias_0"."lastName" <> \'hello\' OR "unionalias_0"."lastName" is null)', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsConcatenate::testConcatenateWithPostOperation2():Boolean[1] @@ -182,18 +184,18 @@ function <> meta::relational::tests::tds::tdsConcatenate::testConcate ->concatenate(Person.all()->project([col(p|$p.lastName, 'lastName')])) ->filter(row:TDSRow[1]| $row.getString('lastName') == 'hello') , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + let tds = $result.values->toOne()->sort([asc('lastName')]); - - assertSize($tds.columns, 1); - + + assertSize($tds.columns, 1); + assertEquals('', $tds.rows->map(r|$r.values->makeString('|'))->makeString(',')); - - assertEquals('select "unionalias_0"."lastName" as "lastName" from (select "root".LASTNAME as "lastName" from personTable as "root" UNION ALL select "root".LASTNAME as "lastName" from personTable as "root") as "unionalias_0" where "unionalias_0"."lastName" = \'hello\'', - $result->sqlRemoveFormatting()); + + assertEquals('select "unionalias_0"."lastName" as "lastName" from (select "root".LASTNAME as "lastName" from personTable as "root" UNION ALL select "root".LASTNAME as "lastName" from personTable as "root") as "unionalias_0" where "unionalias_0"."lastName" = \'hello\'', + $result->sqlRemoveFormatting()); } @@ -206,18 +208,18 @@ function <> meta::relational::tests::tds::tdsConcatenate: ->join(Person.all()->project([col(p|$p.lastName, 'rhs_lastName'),col(p|$p.lastName, 'rhs_firstName')]), JoinType.INNER, 'lhs_lastName', 'rhs_lastName') ->restrict(['lhs_lastName', 'rhs_firstName']) , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + let tds = $result.values->toOne()->sort([asc('lastName')]); - - assertSize($tds.columns, 2); - + + assertSize($tds.columns, 2); + //assertEquals('', // $tds.rows->map(r|$r.values->makeString('|'))->makeString(',')); - - //assertEquals('select "union"."lastName" as "lastName" from (select "root".LASTNAME as "lastName" from personTable as "root" UNION ALL select "root".LASTNAME as "lastName" from personTable as "root") as "union" where "union"."lastName" = \'hello\'', - // $result->sqlRemoveFormatting()); - + + //assertEquals('select "union"."lastName" as "lastName" from (select "root".LASTNAME as "lastName" from personTable as "root" UNION ALL select "root".LASTNAME as "lastName" from personTable as "root") as "union" where "union"."lastName" = \'hello\'', + // $result->sqlRemoveFormatting()); + fail('Expectations need updating once it works'); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSContains.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSContains.pure index c86a49d0ed3..12ba5cddf23 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSContains.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSContains.pure @@ -14,8 +14,10 @@ import meta::relational::functions::sqlstring::*; import meta::relational::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::metamodel::tds::*; import meta::pure::profiles::*; import meta::relational::tests::model::simple::*; @@ -65,4 +67,4 @@ function <> meta::relational::tests::tds::tdsContains::testTDSContain let result = execute(|Person.all()->filter(p | $p->tdsContains([p|$p.firm.legalName], ['L_NAME'], Firm.all()->project(f|$f.legalName + '_Append', 'Name')->limit(1), {a,b|$a.getString('L_NAME')->toOne()->length() == $b.getString('Name')->length()-7}))->filter(s|$s.address.name == 'New York')->groupBy([a|$a.firm.legalName], [agg(a|$a.firstName, y|$y->count())], ['FN', 'Count']), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('select "firmtable_0".LEGALNAME as "FN", count("root".FIRSTNAME) as "Count" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "root".ADDRESSID) where exists(select 1 from (select top 1 concat("root".LEGALNAME, \'_Append\') as "Name" from firmTable as "root") as "firmtable_1" where char_length("firmtable_0".LEGALNAME) = (char_length("firmtable_1"."Name") - 7)) and "addresstable_0".NAME = \'New York\' group by "FN"', $result->sqlRemoveFormatting()); assertSameElements([1, 3, 'Firm C', 'Firm X'], $result.values.rows.values); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSExtend.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSExtend.pure index f64adfa0864..34b21fc8d56 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSExtend.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSExtend.pure @@ -17,8 +17,10 @@ import meta::relational::tests::model::simple::*; import meta::pure::executionPlan::toString::*; import meta::pure::executionPlan::*; import meta::relational::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::tds::tdsExtend::testStringLiteral():Boolean[1] { @@ -26,16 +28,16 @@ function <> meta::relational::tests::tds::tdsExtend::testStringLitera |Person.all() ->project(p|$p.firstName,'firstName') ->extend([col({r:TDSRow[1]|'Hello'}, 'hello')]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSize($result.values.columns, 2); - + assertSize($result.values.columns, 2); + assertEquals('Peter|Hello,John|Hello,John|Hello,Anthony|Hello,Fabrice|Hello,Oliver|Hello,David|Hello', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - - assertEquals('select "root".FIRSTNAME as "firstName", \'Hello\' as "hello" from personTable as "root"', - $result->sqlRemoveFormatting()); + + assertEquals('select "root".FIRSTNAME as "firstName", \'Hello\' as "hello" from personTable as "root"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsExtend::testFunctionOnVariable():Boolean[1] @@ -52,14 +54,14 @@ function <> meta::relational::tests::tds::tdsExtend::testFunctionOnSt |Person.all() ->project(p|$p.firstName,'first_name') ->extend([col({r:TDSRow[1]|'Hello'->length()}, 'hello_length')]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertSize($result.values.columns, 2); - + assertEquals('Peter|5,John|5,John|5,Anthony|5,Fabrice|5,Oliver|5,David|5', - $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); + assertEquals('select "root".FIRSTNAME as "first_name", char_length(\'Hello\') as "hello_length" from personTable as "root"', $result->sqlRemoveFormatting()); } @@ -70,16 +72,16 @@ function <> meta::relational::tests::tds::tdsExtend::testStringColumn |Person.all() ->project(p|$p.firstName,'first_name') ->extend([col({r:TDSRow[1]|$r.getString('first_name')}, 'name_again')]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 2); - + + assertSize($result.values.columns, 2); + assertEquals('Peter|Peter,John|John,John|John,Anthony|Anthony,Fabrice|Fabrice,Oliver|Oliver,David|David', - $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); + assertEquals('select "root".FIRSTNAME as "first_name", "root".FIRSTNAME as "name_again" from personTable as "root"', - $result->sqlRemoveFormatting()); + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsExtend::testFunctionOnStringColumn():Boolean[1] @@ -88,16 +90,16 @@ function <> meta::relational::tests::tds::tdsExtend::testFunctionOnSt |Person.all() ->project(p|$p.firstName,'first_name') ->extend([col({r:TDSRow[1]| $r.getString('first_name')->length()}, 'name_length')]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals([String, Integer], $result.values.columns.type); - assertSize($result.values.columns, 2); - + assertSize($result.values.columns, 2); + assertEquals('Peter|5,John|4,John|4,Anthony|7,Fabrice|7,Oliver|6,David|5', - $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); + assertEquals('select "root".FIRSTNAME as "first_name", char_length("root".FIRSTNAME) as "name_length" from personTable as "root"', - $result->sqlRemoveFormatting()); + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsExtend::testFunctionOnEnumColumn():Boolean[1] @@ -108,12 +110,12 @@ function <> meta::relational::tests::tds::tdsExtend::testFunctionOnE ->extend([col({r:TDSRow[1]|$r.getEnum('type') == GeographicEntityType.CITY}, 'type_enum')]), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 3); - + + assertSize($result.values.columns, 3); + assertEquals('Hoboken|CITY|1,New York|CITY|1,New York|CITY|1,New York|CITY|1,San Fransisco|CITY|1,Hong Kong|CITY|1,New York|CITY|1,New York|CITY|1,Cupertino|CITY|1,Tokyo|CITY|1,Mountain View|CITY|1', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + assertEquals('select "root".NAME as "name", "root".TYPE as "type" from addressTable as "root" where "root".TYPE = 1', $result->sqlRemoveFormatting()); } @@ -125,16 +127,16 @@ function <> meta::relational::tests::tds::tdsExtend::testMultipleFunc ->project(p|$p.firstName,'first_name') ->extend([col({r:TDSRow[1]|'Hello'}, 'const'), col({r:TDSRow[1]|$r.getString('first_name')->length()}, 'name_length')]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertSize($result.values.columns, 3); - + assertEquals('Peter|Hello|5,John|Hello|4,John|Hello|4,Anthony|Hello|7,Fabrice|Hello|7,Oliver|Hello|6,David|Hello|5', - $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); + assertEquals('select "root".FIRSTNAME as "first_name", \'Hello\' as "const", char_length("root".FIRSTNAME) as "name_length" from personTable as "root"', - $result->sqlRemoveFormatting()); + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsExtend::testExtendAndExtendAgain():Boolean[1] @@ -144,16 +146,16 @@ function <> meta::relational::tests::tds::tdsExtend::testExtendAndExt ->project(p|$p.firstName,'first_name') ->extend([col({r:TDSRow[1]|$r.getString('first_name')->length()}, 'name_length')]) ->extend([col({r:TDSRow[1]|$r.getInteger('name_length') * 2}, 'double_name_length')]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 3); - + + assertSize($result.values.columns, 3); + assertEquals('Peter|5|10,John|4|8,John|4|8,Anthony|7|14,Fabrice|7|14,Oliver|6|12,David|5|10', - $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); + assertEquals('select "root".FIRSTNAME as "first_name", char_length("root".FIRSTNAME) as "name_length", (char_length("root".FIRSTNAME) * 2) as "double_name_length" from personTable as "root"', - $result->sqlRemoveFormatting()); + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsExtend::testExtendOnDynaFunctionColumn():Boolean[1] @@ -162,14 +164,14 @@ function <> meta::relational::tests::tds::tdsExtend::testExtendOnDyna |Person.all() ->project([p|$p.firstName, p|$p.lastName->toUpper()], ['first', 'LAST']) ->extend([col({r:TDSRow[1]|$r.getString('LAST')->length()}, 'name_length')]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertSize($result.values.rows, 7); - + assertEquals('Peter|SMITH|5,John|JOHNSON|7,John|HILL|4,Anthony|ALLEN|5,Fabrice|ROBERTS|7,Oliver|HILL|4,David|HARRIS|6', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + assertEquals('select "root".FIRSTNAME as "first", upper("root".LASTNAME) as "LAST", char_length(upper("root".LASTNAME)) as "name_length" from personTable as "root"', $result->sqlRemoveFormatting()); } @@ -180,16 +182,16 @@ function <> meta::relational::tests::tds::tdsExtend::testExtendOnMult |Person.all() ->project([#/Person/firstName!first_name#, #/Person/lastName!last_name#]) ->extend([col({r:TDSRow[1]| $r.getString('first_name')->length() + $r.getString('last_name')->length()}, 'combined_length')]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 3); - + + assertSize($result.values.columns, 3); + assertEquals('Peter|Smith|10,John|Johnson|11,John|Hill|8,Anthony|Allen|12,Fabrice|Roberts|14,Oliver|Hill|10,David|Harris|11', - $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); + assertEquals('select "root".FIRSTNAME as "first_name", "root".LASTNAME as "last_name", (char_length("root".FIRSTNAME) + char_length("root".LASTNAME)) as "combined_length" from personTable as "root"', - $result->sqlRemoveFormatting()); + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsExtend::testDateLiteral():Boolean[1] @@ -198,19 +200,19 @@ function <> meta::relational::tests::tds::tdsExtend::testDateLiteral( |Person.all() ->project(p|$p.firstName,'firstName') ->extend([col({r:TDSRow[1]|%2016-08-10}, 'dateLiteral')]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + let tds = $result.values->at(0); - - assertSize($tds.columns, 2); - + + assertSize($tds.columns, 2); + assertEquals('Peter|2016-08-10,John|2016-08-10,John|2016-08-10,Anthony|2016-08-10,Fabrice|2016-08-10,Oliver|2016-08-10,David|2016-08-10', $tds.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + assertEqualsH2Compatible( - 'select "root".FIRSTNAME as "firstName", \'2016-08-10\' as "dateLiteral" from personTable as "root"', - 'select "root".FIRSTNAME as "firstName", DATE\'2016-08-10\' as "dateLiteral" from personTable as "root"', + 'select "root".FIRSTNAME as "firstName", \'2016-08-10\' as "dateLiteral" from personTable as "root"', + 'select "root".FIRSTNAME as "firstName", DATE\'2016-08-10\' as "dateLiteral" from personTable as "root"', $result->sqlRemoveFormatting() ); } @@ -226,16 +228,16 @@ function <> meta::relational::tests::tds::tdsExtend::testNoopFunction col({r:TDSRow[1]|[]->cast(@String)}, 'castNull'), col({r:TDSRow[1]|$r.getString('firstName')->cast(@String)}, 'cast') ]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSize($result.values.columns, 5); - + assertSize($result.values.columns, 5); + assertEquals('Peter|Peter|Peter|TDSNull|Peter,John|John|John|TDSNull|John,John|John|John|TDSNull|John,Anthony|Anthony|Anthony|TDSNull|Anthony,Fabrice|Fabrice|Fabrice|TDSNull|Fabrice,Oliver|Oliver|Oliver|TDSNull|Oliver,David|David|David|TDSNull|David', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - - assertEquals('select "root".FIRSTNAME as "firstName", "root".FIRSTNAME as "toOne", "root".FIRSTNAME as "first", null as "castNull", "root".FIRSTNAME as "cast" from personTable as "root"', - $result->sqlRemoveFormatting()); + + assertEquals('select "root".FIRSTNAME as "firstName", "root".FIRSTNAME as "toOne", "root".FIRSTNAME as "first", null as "castNull", "root".FIRSTNAME as "cast" from personTable as "root"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsExtend::testFirstNotNullFunction():Boolean[1] @@ -246,16 +248,16 @@ function <> meta::relational::tests::tds::tdsExtend::testFirstNotNull ->extend([ col({row:TDSRow[1]|meta::pure::tds::extensions::firstNotNull([$row.getString('firstName'), 'N/A'])}, 'first') ]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSize($result.values.columns, 2); - + assertSize($result.values.columns, 2); + assertEquals('Peter|Peter,John|John,John|John,Anthony|Anthony,Fabrice|Fabrice,Oliver|Oliver,David|David', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - - assertEquals('select "root".FIRSTNAME as "firstName", coalesce("root".FIRSTNAME, \'N/A\') as "first" from personTable as "root"', - $result->sqlRemoveFormatting()); + + assertEquals('select "root".FIRSTNAME as "firstName", coalesce("root".FIRSTNAME, \'N/A\') as "first" from personTable as "root"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsExtend::testParseDate():Boolean[1] @@ -266,7 +268,7 @@ function <> meta::relational::tests::tds::tdsExtend::testParseDate(): ->extend([ col({row:TDSRow[1]| parseDate('2023-01-01')}, 'date') ]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assert($sql->contains('parsedatetime')); @@ -280,9 +282,9 @@ function <> meta::relational::tests::tds::tdsExtend::testDecimal():Bo ->extend([ col({row:TDSRow[1]| $row.getDecimal('decimal') + 1}, 'plus') ]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals('select 1 as "decimal", (1 + 1) as "plus" from personTable as "root"', $result->sqlRemoveFormatting()); } @@ -293,21 +295,21 @@ function <> {test.excludePlatform = 'Java compiled let result = execute( | let firstNameColName = 'first_name'; - + Person.all() ->project([#/Person/firstName!first_name#, #/Person/lastName!last_name#]) ->extend([col({r:TDSRow[1]| $r.getString($firstNameColName)->length()}, 'first_name_length')]); , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 3); - + + assertSize($result.values.columns, 3); + assertEquals('Peter|Smith|5,John|Johnson|4,John|Hill|4,Anthony|Allen|7,Fabrice|Roberts|7,Oliver|Hill|6,David|Harris|5', - $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); + assertEquals('select "root".FIRSTNAME as "first_name", "root".LASTNAME as "last_name", char_length("root".FIRSTNAME) as "first_name_length" from personTable as "root"', - $result->sqlRemoveFormatting()); + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsExtend::testExtendWithVariables2():Boolean[1] @@ -315,21 +317,21 @@ function <> meta::relational::tests::tds::tdsExtend::testExtendWithV let result = execute( | let outColName = 'first_name_length'; - + Person.all() ->project([#/Person/firstName!first_name#, #/Person/lastName!last_name#]) ->extend([col({r:TDSRow[1]| $r.getString('first_name')->length()}, $outColName)]); , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 3); - + + assertSize($result.values.columns, 3); + assertEquals('Peter|Smith|6,John|Johnson|4,John|Hill|4,Anthony|Allen|7,Fabrice|Roberts|7,Oliver|Hill|7,David|Harris|5', - $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); + assertEquals('select "root".FIRSTNAME as "first_name", "root".LASTNAME as "last_name", char_length("root".FIRSTNAME) as "first_name_length" from personTable as "root"', - $result->sqlRemoveFormatting()); + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsExtend::testNull():Boolean[1] @@ -341,16 +343,16 @@ function <> meta::relational::tests::tds::tdsExtend::testNull():Boole col({r:TDSRow[1]|$r.isNull('firstName')}, 'isNull'), col({r:TDSRow[1]|$r.isNotNull('firstName')}, 'isNotNull') ]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 3); - + + assertSize($result.values.columns, 3); + assertEquals('Peter|false|true,John|false|true,John|false|true,Anthony|false|true,Fabrice|false|true,Oliver|false|true,David|false|true', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - - assertEquals('select "root".FIRSTNAME as "firstName", "root".FIRSTNAME is null as "isNull", "root".FIRSTNAME is not null as "isNotNull" from personTable as "root"', - $result->sqlRemoveFormatting()); + + assertEquals('select "root".FIRSTNAME as "firstName", "root".FIRSTNAME is null as "isNull", "root".FIRSTNAME is not null as "isNotNull" from personTable as "root"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsExtend::testStringConcatSQLGeneration():Boolean[1] @@ -360,9 +362,9 @@ function <> meta::relational::tests::tds::tdsExtend::testStringConcat col({p:meta::relational::tests::model::simple::Person[1]|$p.lastName}, 'lastName'), col({p:meta::relational::tests::model::simple::Person[1]|$p.age}, 'age')]) ->extend(col({row:TDSRow[1]|$row.getString('firstName') + $row.getString('lastName')}, 'exprString3'))}; - + let mapping = meta::relational::tests::simpleRelationalMapping; - + let sqlResultH2 = meta::relational::functions::sqlstring::toSQLString($func, $mapping, meta::relational::runtime::DatabaseType.H2, meta::relational::extension::relationalExtensions()); assertEquals($sqlResultH2, 'select "root".FIRSTNAME as "firstName", "root".LASTNAME as "lastName", "root".AGE as "age", concat("root".FIRSTNAME, "root".LASTNAME) as "exprString3" from personTable as "root"'); @@ -380,10 +382,10 @@ function <> meta::relational::tests::tds::tdsExtend::testIfWithEmptyE ->extend([ col({r:TDSRow[1]|if($r.isNotNull('firstName'), | $r.getString('firstName'), | [])}, 'extended') ]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertEquals('select "root".FIRSTNAME as "firstName", case when "root".FIRSTNAME is not null then "root".FIRSTNAME else null end as "extended" from personTable as "root"', + + assertEquals('select "root".FIRSTNAME as "firstName", case when "root".FIRSTNAME is not null then "root".FIRSTNAME else null end as "extended" from personTable as "root"', $result->sqlRemoveFormatting()); } @@ -399,12 +401,12 @@ function <> meta::relational::tests::tds::tdsExtend::testExtendWithQu col({r:TDSRow[1]|$r.getString('FIRST NAME')+'_hello'}, 'name_again'), col({r:TDSRow[1]|$r.getString('1columnStartsWithNumber')+'_hello'}, 'numbercol_again') ])}; - + let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); - + let runtime = meta::external::store::relational::tests::testRuntime(); + let resultWithoutQuotes = execute($queryWithoutQuotes, $mapping, $runtime, meta::relational::extension::relationalExtensions()); - + let queryWithQuotes = {|tableToTDS(meta::relational::functions::database::tableReference(meta::relational::tests::db,'default','tableWithQuotedColumns')) ->project([ col({r:TDSRow[1]|$r.getString('FIRST NAME')}, 'FIRST NAME'), @@ -416,15 +418,15 @@ function <> meta::relational::tests::tds::tdsExtend::testExtendWithQu ->extend([ col({r:TDSRow[1]|$r.getString('"FIRST NAME"')+'_hello'}, 'name_again'), col({r:TDSRow[1]|$r.getString('"1columnStartsWithNumber"')+'_hello'}, 'numbercol_again') - + ])}; - + let resultWithQuotes = execute($queryWithQuotes, $mapping, $runtime, meta::relational::extension::relationalExtensions()); - + let expectedSql = 'select "root"."FIRST NAME" as "FIRST NAME", "root"."LAST NAME" as "LAST NAME", "root"."1columnStartsWithNumber" as "1columnStartsWithNumber", concat("root"."FIRST NAME", \'_hello\') as "name_again", concat("root"."1columnStartsWithNumber", \'_hello\') as "numbercol_again" from tableWithQuotedColumns as "root"'; assertEquals($expectedSql, $resultWithoutQuotes->sqlRemoveFormatting()); - + assertEquals($expectedSql, $resultWithQuotes->sqlRemoveFormatting()); } @@ -445,8 +447,8 @@ function <> meta::relational::tests::tds::tdsExtend::testExtendsWithI col(r:TDSRow[1] | $r.getDate('dt')->in([%2021-01-01, %2021-01-02]), 'dateExtends'), col(r:TDSRow[1] | $r.getBoolean('ageGreaterThan50')->in([true, false]), 'booleanExtends') ]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions(), noDebug()); - + assertEquals('select "root".FIRSTNAME as "firstName", "root".AGE as "age", DATE\'2021-01-01\' as "dt", ("root".AGE is not null and "root".AGE > 50) as "ageGreaterThan50", "root".FIRSTNAME in (\'Peter\') as "stringExtends1", "root".FIRSTNAME in (\'Peter\', \'John\') as "stringExtends2", "root".AGE in (22, 23) as "numberExtends", DATE\'2021-01-01\' in (DATE\'2021-01-01\', DATE\'2021-01-02\') as "dateExtends", ("root".AGE is not null and "root".AGE > 50) in (true, false) as "booleanExtends" from personTable as "root"', $result->sqlRemoveFormatting()); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSFilter.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSFilter.pure index d911d7a3b11..6931d67c444 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSFilter.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSFilter.pure @@ -14,8 +14,10 @@ import meta::relational::functions::sqlstring::*; import meta::relational::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::metamodel::tds::*; import meta::pure::profiles::*; import meta::relational::tests::model::simple::*; @@ -26,7 +28,7 @@ function <> meta::relational::tests::tds::tdsFilter::testSimpleFilter let result = execute(|Person.all()->project([#/Person/firstName!name#])->filter({r | $r.getString('name') == 'John'}), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('select "root".FIRSTNAME as "name" from personTable as "root" where "root".FIRSTNAME = \'John\'', $result->sqlRemoveFormatting()); assertSize($result.values.rows, 2 ); - assertEquals(['John','John'], $result.values.rows->map(r|$r.values)); + assertEquals(['John','John'], $result.values.rows->map(r|$r.values)); } function <> meta::relational::tests::tds::tdsFilter::testFilterWithStringConcat():Boolean[1] @@ -63,10 +65,10 @@ function <> meta::relational::tests::tds::tdsFilter::testFilterTwoExp function <> meta::relational::tests::tds::tdsFilter::testFilterMultipleExpressions1():Boolean[1] { - let result = execute(|Person.all()->project([p | $p.firstName, p | $p.lastName], ['first', 'last'])->filter({r | + let result = execute(|Person.all()->project([p | $p.firstName, p | $p.lastName], ['first', 'last'])->filter({r | and([ - $r.isNotNull('first'), - eq($r.getString('first'), 'John'), + $r.isNotNull('first'), + eq($r.getString('first'), 'John'), eq($r.getString('last'), 'Johnson') ]) }), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); @@ -78,7 +80,7 @@ function <> meta::relational::tests::tds::tdsFilter::testFilterMultip function <> meta::relational::tests::tds::tdsFilter::testFilterMultipleExpressions1_chain():Boolean[1] { let result = execute(|Person.all()->project([p | $p.firstName, p | $p.lastName], ['first', 'last']) - ->filter(r |$r.isNotNull('first')) + ->filter(r |$r.isNotNull('first')) ->filter(r|eq($r.getString('first'), 'John')) ->filter(r|eq($r.getString('last'), 'Johnson')) , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); @@ -89,7 +91,7 @@ function <> meta::relational::tests::tds::tdsFilter::testFilterMultip function <> meta::relational::tests::tds::tdsFilter::testFilterMultipleExpressions2():Boolean[1] { - let result = execute(|Person.all()->project([p | $p.firstName, p | $p.lastName], ['first', 'last'])->filter({r | + let result = execute(|Person.all()->project([p | $p.firstName, p | $p.lastName], ['first', 'last'])->filter({r | or([ (eq($r.getString('first'), 'John') && eq($r.getString('last'), 'Johnson')), (eq($r.getString('first'), 'NotJohn1') && eq($r.getString('last'), 'NotJohnson1')), @@ -138,11 +140,11 @@ function <> meta::relational::tests::tds::tdsFilter::testFilterOnDyna function <> meta::relational::tests::tds::tdsFilter::testFilterOnRootClassAggValueAfterGroupBy():Boolean[1] -{ +{ let result = execute(|Person.all()->groupBy([p|$p.age],agg(x|$x.firstName,y|$y->joinStrings(',')),['age', 'firstNamesWithSameAge'])->filter({l|$l.getString('firstNamesWithSameAge')->contains('John')}), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values.rows, 2); assertEquals(['12,John', '22,John,Anthony'],$result.values.rows->map(r|$r.values->makeString(','))); - assertEquals('select "root".AGE as "age", group_concat("root".FIRSTNAME separator \',\') as "firstNamesWithSameAge" from personTable as "root" group by "age" having group_concat("root".FIRSTNAME separator \',\') like \'%John%\'', $result->sqlRemoveFormatting()); + assertEquals('select "root".AGE as "age", group_concat("root".FIRSTNAME separator \',\') as "firstNamesWithSameAge" from personTable as "root" group by "age" having group_concat("root".FIRSTNAME separator \',\') like \'%John%\'', $result->sqlRemoveFormatting()); } @@ -184,7 +186,7 @@ function <> meta::relational::tests::tds::tdsFilter::testFilterFollow function <> meta::relational::tests::tds::tdsFilter::testFilterOnRootClassAggValueAfterGroupByWithHavingMultipleFilters():Boolean[1] { - + let result = execute(|Person.all()->groupBy([p|$p.age],agg(x|$x.firstName,y|$y->joinStrings(',')),['age', 'firstNamesWithSameAge'])->filter(l| $l.getInteger('age') >20 )->filter({l|$l.getString('firstNamesWithSameAge')->contains('John')}), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values.rows, 1); assertEquals(['22,John,Anthony'],$result.values.rows->map(r|$r.values->makeString(','))); @@ -212,14 +214,14 @@ function <> meta::relational::tests::tds::tdsFilter::testFilterOnQuot ->filter({r | $r.getString('FIRST NAME') == 'Peter'})}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); - + let runtime = meta::external::store::relational::tests::testRuntime(); + let resWithoutQuotes = execute($queryWithoutQuotes, $mapping, $runtime, meta::relational::extension::relationalExtensions()); - + let expectedSql = 'select "root"."FIRST NAME" as "FIRST NAME", "root"."LAST NAME" as "LAST NAME", "root"."1columnStartsWithNumber" as "1columnStartsWithNumber" from tableWithQuotedColumns as "root" where "root"."FIRST NAME" = \'Peter\''; assertEquals($expectedSql, $resWithoutQuotes->sqlRemoveFormatting()); - - + + let queryWithQuotes = {|tableToTDS(meta::relational::functions::database::tableReference(meta::relational::tests::db,'default','tableWithQuotedColumns')) ->project([ col({r:TDSRow[1]|$r.getString('FIRST NAME')}, 'FIRST NAME'), @@ -228,7 +230,7 @@ function <> meta::relational::tests::tds::tdsFilter::testFilterOnQuot ]) ->restrict(['"FIRST NAME"', '"LAST NAME"', '"1columnStartsWithNumber"']) ->filter({r | $r.getString('"FIRST NAME"') == 'Peter'})}; - + let resWithQuotes = execute($queryWithQuotes, $mapping, $runtime, meta::relational::extension::relationalExtensions()); assertEquals($expectedSql, $resWithQuotes->sqlRemoveFormatting()); } @@ -239,14 +241,14 @@ function <> meta::relational::tests::tds::tdsFilter::testFirstNotNull |Person.all() ->project(p|$p.firstName,'firstName') ->filter(p | meta::pure::tds::extensions::firstNotNull([$p.getString('firstName'), 'N/A']) != 'N/A'), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSize($result.values.columns, 1); - + assertSize($result.values.columns, 1); + assertEquals('Peter,John,John,Anthony,Fabrice,Oliver,David', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - - assertEquals('select "root".FIRSTNAME as "firstName" from personTable as "root" where (coalesce("root".FIRSTNAME, \'N/A\') <> \'N/A\' OR coalesce("root".FIRSTNAME, \'N/A\') is null)', - $result->sqlRemoveFormatting()); -} \ No newline at end of file + + assertEquals('select "root".FIRSTNAME as "firstName" from personTable as "root" where (coalesce("root".FIRSTNAME, \'N/A\') <> \'N/A\' OR coalesce("root".FIRSTNAME, \'N/A\') is null)', + $result->sqlRemoveFormatting()); +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSJoin.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSJoin.pure index 2e70710716e..e2ee749a5bb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSJoin.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSJoin.pure @@ -20,7 +20,7 @@ Class meta::relational::tests::tds::tdsJoin::testJoinTDS_Person age: Integer[0..1]; employerID: Integer[0..1]; managerID: Integer[0..1]; - + fullName() { $this.firstName + ' ' + $this.lastName; }:String[1]; @@ -42,6 +42,7 @@ Class meta::relational::tests::tds::tdsJoin::testJoinTDS_Address ###Mapping import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::tds::tdsJoin::*; Mapping meta::relational::tests::tds::tdsJoin::testJoinTDSMapping @@ -68,7 +69,7 @@ Mapping meta::relational::tests::tds::tdsJoin::testJoinTDSMapping firmAddrID: firmTable.ADDRESSID ) } - + testJoinTDS_Address : Relational { scope([dbInc]) @@ -102,13 +103,13 @@ Mapping meta::relational::tests::tds::tdsJoin::testJoinTDSMappingWithFilter legalName : firmTable.LEGALNAME, firmID : firmTable.ID, firmAddrID: firmTable.ADDRESSID - ) + ) } ) Mapping meta::relational::tests::tds::tdsJoin::testJoinTDSMappingTwoDatabase ( - + testJoinTDS_Person : Relational { scope([dbInc]) @@ -215,8 +216,10 @@ Mapping meta::relational::tests::tds::tdsJoin::testJoinTDSMappingThreeDatabase import meta::relational::metamodel::execute::*; import meta::relational::functions::sqlstring::*; import meta::relational::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::metamodel::tds::*; import meta::pure::profiles::*; import meta::relational::tests::model::simple::*; @@ -919,7 +922,7 @@ function <> meta::relational::tests::tds::tdsJoin::testTableToTDSWith )}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let resWithoutQuotes = execute($queryWithoutQuotes, $mapping, $runtime, meta::relational::extension::relationalExtensions()); let expected = 'select "tablewithquotedcolumns_0"."FIRST NAME" as "FIRST NAME", "tablewithquotedcolumns_0"."LAST NAME" as "LAST NAME", "tablewithquotedcolumns_0"."FIRST NAME_2" as "FIRST NAME_2", "tablewithquotedcolumns_0"."LAST NAME_2" as "LAST NAME_2" from (select "tablewithquotedcolumns_1"."FIRST NAME" as "FIRST NAME", "tablewithquotedcolumns_1"."LAST NAME" as "LAST NAME", "tablewithquotedcolumns_3"."FIRST NAME_2" as "FIRST NAME_2", "tablewithquotedcolumns_3"."LAST NAME_2" as "LAST NAME_2" from (select "root"."FIRST NAME" as "FIRST NAME", "root"."LAST NAME" as "LAST NAME" from tableWithQuotedColumns as "root") as "tablewithquotedcolumns_1" left outer join (select "root"."FIRST NAME" as "FIRST NAME_2", "root"."LAST NAME" as "LAST NAME_2" from tableWithQuotedColumns as "root") as "tablewithquotedcolumns_3" on ("tablewithquotedcolumns_1"."FIRST NAME" = "tablewithquotedcolumns_3"."FIRST NAME_2")) as "tablewithquotedcolumns_0"'; @@ -1003,17 +1006,17 @@ function <> meta::relational::tests::tds::tdsJoin::testJoinByColAfter } -function meta::relational::tests::tds::tdsJoin::twoDBRunTime(): meta::pure::runtime::Runtime[1] +function meta::relational::tests::tds::tdsJoin::twoDBRunTime(): meta::core::runtime::Runtime[1] { - ^meta::pure::runtime::Runtime + ^meta::core::runtime::Runtime ( - connections = [^TestDatabaseConnection( - element = dbInc, + connectionStores = [ + ^meta::core::runtime::ConnectionStore(element=dbInc,connection=^TestDatabaseConnection( type=DatabaseType.H2 - ),^TestDatabaseConnection( - element = database2, + )), + ^meta::core::runtime::ConnectionStore(element=database2, connection=^TestDatabaseConnection( type=DatabaseType.H2 - )] + ))] ); } @@ -1093,7 +1096,7 @@ function <> meta::relational::tests::tds::tdsJoin::al ->join(testJoinTDS_Firm.all()->project([p|$p.legalName, p|$p.firmID], ['firmName','fID']), JoinType.RIGHT_OUTER, {a,b|$a.getInteger('eID') == $b.getInteger('fID')}) ->restrict('personName')) }, testJoinTDSMappingTwoDatabase, twoDBRunTime(), meta::relational::extension::relationalExtensions()); - + assertSize($result.values.rows, 14 ); assertSameElements(['Smith','Johnson','Hill','Allen','Roberts','Hill','Harris','Peter','John','John','Anthony','Fabrice','Oliver','David'], $result.values.rows->map(r|$r.values->makeString(','))); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSProject.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSProject.pure index e6b4c32e21a..72ed0ef10e7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSProject.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSProject.pure @@ -16,8 +16,10 @@ import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::tests::csv::*; import meta::relational::tests::model::simple::*; import meta::relational::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::tds::tdsProject::testProjectStringLiteral():Boolean[1] { @@ -25,16 +27,16 @@ function <> meta::relational::tests::tds::tdsProject::testProjectStri |Person.all() ->project(p|$p.firstName,'firstName') ->project([col(r:TDSRow[1]|$r.getString('firstName'), 'firstName'), col({r:TDSRow[1]|'Hello'}, 'hello')]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 2); - + + assertSize($result.values.columns, 2); + assertEquals('Peter|Hello,John|Hello,John|Hello,Anthony|Hello,Fabrice|Hello,Oliver|Hello,David|Hello', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - - assertEquals('select "root".FIRSTNAME as "firstName", \'Hello\' as "hello" from personTable as "root"', - $result->sqlRemoveFormatting()); + + assertEquals('select "root".FIRSTNAME as "firstName", \'Hello\' as "hello" from personTable as "root"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsProject::testProjectFunctionOnStringLiteral():Boolean[1] @@ -43,14 +45,14 @@ function <> meta::relational::tests::tds::tdsProject::testProjectFunc |Person.all() ->project(p|$p.firstName,'first_name') ->project([col(r:TDSRow[1]|$r.getString('first_name'), 'first_name'), col({r:TDSRow[1]|'Hello'->length()}, 'hello_length')]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertSize($result.values.columns, 2); - + assertEquals('Peter|5,John|5,John|5,Anthony|5,Fabrice|5,Oliver|5,David|5', - $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); + assertEquals('select "root".FIRSTNAME as "first_name", char_length(\'Hello\') as "hello_length" from personTable as "root"', $result->sqlRemoveFormatting()); } @@ -61,16 +63,16 @@ function <> meta::relational::tests::tds::tdsProject::testProjectStri |Person.all() ->project(p|$p.firstName,'first_name') ->project([col(r:TDSRow[1]|$r.getString('first_name'), 'first_name'), col(r:TDSRow[1]|$r.getString('first_name'), 'name_again')]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 2); - + + assertSize($result.values.columns, 2); + assertEquals('Peter|Peter,John|John,John|John,Anthony|Anthony,Fabrice|Fabrice,Oliver|Oliver,David|David', - $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); + assertEquals('select "root".FIRSTNAME as "first_name", "root".FIRSTNAME as "name_again" from personTable as "root"', - $result->sqlRemoveFormatting()); + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsProject::testProjectFunctionOnStringColumn():Boolean[1] @@ -79,16 +81,16 @@ function <> meta::relational::tests::tds::tdsProject::testProjectFunc |Person.all() ->project(p|$p.firstName,'first_name') ->project([col(r:TDSRow[1]|$r.getString('first_name'), 'first_name'), col({r:TDSRow[1]| $r.getString('first_name')->length()}, 'name_length')]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals([String, Integer], $result.values.columns.type); - assertSize($result.values.columns, 2); - + assertSize($result.values.columns, 2); + assertEquals('Peter|5,John|4,John|4,Anthony|7,Fabrice|7,Oliver|6,David|5', - $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); + assertEquals('select "root".FIRSTNAME as "first_name", char_length("root".FIRSTNAME) as "name_length" from personTable as "root"', - $result->sqlRemoveFormatting()); + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsProject::testProjectFunctionOnEnumColumn():Boolean[1] @@ -99,12 +101,12 @@ function <> meta::relational::tests::tds::tdsProject::testProjectFun ->project([col(r:TDSRow[1]|$r.getString('name'), 'name'), col(r:TDSRow[1]|$r.getString('type'), 'type'), col({r:TDSRow[1]|$r.getEnum('type') == GeographicEntityType.CITY}, 'type_enum')]), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 3); - + + assertSize($result.values.columns, 3); + assertEquals('Hoboken|CITY|1,New York|CITY|1,New York|CITY|1,New York|CITY|1,San Fransisco|CITY|1,Hong Kong|CITY|1,New York|CITY|1,New York|CITY|1,Cupertino|CITY|1,Tokyo|CITY|1,Mountain View|CITY|1', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + assertEquals('select "root".NAME as "name", "root".TYPE as "type" from addressTable as "root" where "root".TYPE = 1', $result->sqlRemoveFormatting()); } @@ -114,19 +116,19 @@ function <> meta::relational::tests::tds::tdsProject::testProjectMult let result = execute( |Person.all() ->project(p|$p.firstName,'first_name') - ->project([col(r:TDSRow[1]|$r.getString('first_name'), 'first_name'), + ->project([col(r:TDSRow[1]|$r.getString('first_name'), 'first_name'), col({r:TDSRow[1]|'Hello'}, 'const'), col({r:TDSRow[1]|$r.getString('first_name')->length()}, 'name_length')]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertSize($result.values.columns, 3); - + assertEquals('Peter|Hello|5,John|Hello|4,John|Hello|4,Anthony|Hello|7,Fabrice|Hello|7,Oliver|Hello|6,David|Hello|5', - $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); + assertEquals('select "root".FIRSTNAME as "first_name", \'Hello\' as "const", char_length("root".FIRSTNAME) as "name_length" from personTable as "root"', - $result->sqlRemoveFormatting()); + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsProject::testProjectAndProjectAgain():Boolean[1] @@ -135,19 +137,19 @@ function <> meta::relational::tests::tds::tdsProject::testProjectAndP |Person.all() ->project(p|$p.firstName,'first_name') ->project([col(r:TDSRow[1]|$r.getString('first_name'), 'first_name'), col({r:TDSRow[1]|$r.getString('first_name')->length()}, 'name_length')]) - ->project([col(r:TDSRow[1]|$r.getString('first_name'), 'first_name'), - col(r:TDSRow[1]|$r.getInteger('name_length'), 'name_length'), + ->project([col(r:TDSRow[1]|$r.getString('first_name'), 'first_name'), + col(r:TDSRow[1]|$r.getInteger('name_length'), 'name_length'), col({r:TDSRow[1]|$r.getInteger('name_length') * 2}, 'double_name_length')]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 3); - + + assertSize($result.values.columns, 3); + assertEquals('Peter|5|10,John|4|8,John|4|8,Anthony|7|14,Fabrice|7|14,Oliver|6|12,David|5|10', - $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); + assertEquals('select "root".FIRSTNAME as "first_name", char_length("root".FIRSTNAME) as "name_length", (char_length("root".FIRSTNAME) * 2) as "double_name_length" from personTable as "root"', - $result->sqlRemoveFormatting()); + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsProject::testProjectOnDynaFunctionColumn():Boolean[1] @@ -155,17 +157,17 @@ function <> meta::relational::tests::tds::tdsProject::testProjectOnDy let result = execute( |Person.all() ->project([p|$p.firstName, p|$p.lastName->toUpper()], ['first', 'LAST']) - ->project([col(r:TDSRow[1]|$r.getString('first'), 'first'), - col(r:TDSRow[1]|$r.getString('LAST'), 'LAST'), + ->project([col(r:TDSRow[1]|$r.getString('first'), 'first'), + col(r:TDSRow[1]|$r.getString('LAST'), 'LAST'), col({r:TDSRow[1]|$r.getString('LAST')->length()}, 'name_length')]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertSize($result.values.rows, 7); - + assertEquals('Peter|SMITH|5,John|JOHNSON|7,John|HILL|4,Anthony|ALLEN|5,Fabrice|ROBERTS|7,Oliver|HILL|4,David|HARRIS|6', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + assertEquals('select "root".FIRSTNAME as "first", upper("root".LASTNAME) as "LAST", char_length(upper("root".LASTNAME)) as "name_length" from personTable as "root"', $result->sqlRemoveFormatting()); } @@ -175,19 +177,19 @@ function <> meta::relational::tests::tds::tdsProject::testProjectOnMu let result = execute( |Person.all() ->project([#/Person/firstName!first_name#, #/Person/lastName!last_name#]) - ->project([col(r:TDSRow[1]|$r.getString('first_name'), 'first_name'), - col(r:TDSRow[1]|$r.getString('last_name'), 'last_name'), + ->project([col(r:TDSRow[1]|$r.getString('first_name'), 'first_name'), + col(r:TDSRow[1]|$r.getString('last_name'), 'last_name'), col({r:TDSRow[1]| $r.getString('first_name')->length() + $r.getString('last_name')->length()}, 'combined_length')]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 3); - + + assertSize($result.values.columns, 3); + assertEquals('Peter|Smith|10,John|Johnson|11,John|Hill|8,Anthony|Allen|12,Fabrice|Roberts|14,Oliver|Hill|10,David|Harris|11', - $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); + assertEquals('select "root".FIRSTNAME as "first_name", "root".LASTNAME as "last_name", (char_length("root".FIRSTNAME) + char_length("root".LASTNAME)) as "combined_length" from personTable as "root"', - $result->sqlRemoveFormatting()); + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsProject::testDateLiteral():Boolean[1] @@ -196,21 +198,21 @@ function <> meta::relational::tests::tds::tdsProject::testDateLiteral |Person.all() ->project(p|$p.firstName,'firstName') ->project([col(r:TDSRow[1]|$r.getString('firstName'), 'firstName'), col({r:TDSRow[1]|%2016-08-10}, 'dateLiteral')]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + let tds = $result.values->at(0); - - assertSize($tds.columns, 2); - + + assertSize($tds.columns, 2); + println($tds); - + assertEquals('Peter|2016-08-10,John|2016-08-10,John|2016-08-10,Anthony|2016-08-10,Fabrice|2016-08-10,Oliver|2016-08-10,David|2016-08-10', $tds.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + assertEqualsH2Compatible( - 'select "root".FIRSTNAME as "firstName", \'2016-08-10\' as "dateLiteral" from personTable as "root"', - 'select "root".FIRSTNAME as "firstName", DATE\'2016-08-10\' as "dateLiteral" from personTable as "root"', + 'select "root".FIRSTNAME as "firstName", \'2016-08-10\' as "dateLiteral" from personTable as "root"', + 'select "root".FIRSTNAME as "firstName", DATE\'2016-08-10\' as "dateLiteral" from personTable as "root"', $result->sqlRemoveFormatting() ); } @@ -221,23 +223,23 @@ function <> {test.excludePlatform = 'Java compiled let result = execute( | let firstNameColName = 'first_name'; - + Person.all() ->project([#/Person/firstName!first_name#, #/Person/lastName!last_name#]) - ->project([col(r:TDSRow[1]|$r.getString('first_name'), 'first_name'), - col(r:TDSRow[1]|$r.getString('last_name'), 'last_name'), + ->project([col(r:TDSRow[1]|$r.getString('first_name'), 'first_name'), + col(r:TDSRow[1]|$r.getString('last_name'), 'last_name'), col({r:TDSRow[1]| $r.getString($firstNameColName)->length()}, 'first_name_length')]); , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 3); - + + assertSize($result.values.columns, 3); + assertEquals('Peter|Smith|5,John|Johnson|4,John|Hill|4,Anthony|Allen|7,Fabrice|Roberts|7,Oliver|Hill|6,David|Harris|5', - $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); + assertEquals('select "root".FIRSTNAME as "first_name", "root".LASTNAME as "last_name", char_length("root".FIRSTNAME) as "first_name_length" from personTable as "root"', - $result->sqlRemoveFormatting()); + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsProject::testProjectWithVariables2():Boolean[1] @@ -245,23 +247,23 @@ function <> meta::relational::tests::tds::tdsProject::testProjectWit let result = execute( | let outColName = 'first_name_length'; - + Person.all() ->project([#/Person/firstName!first_name#, #/Person/lastName!last_name#]) - ->project([col(r:TDSRow[1]|$r.getString('first_name'), 'first_name'), - col(r:TDSRow[1]|$r.getString('last_name'), 'last_name'), + ->project([col(r:TDSRow[1]|$r.getString('first_name'), 'first_name'), + col(r:TDSRow[1]|$r.getString('last_name'), 'last_name'), col({r:TDSRow[1]| $r.getString('first_name')->length()}, $outColName)]); , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 3); - + + assertSize($result.values.columns, 3); + assertEquals('Peter|Smith|6,John|Johnson|4,John|Hill|4,Anthony|Allen|7,Fabrice|Roberts|7,Oliver|Hill|7,David|Harris|5', - $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); + assertEquals('select "root".FIRSTNAME as "first_name", "root".LASTNAME as "last_name", char_length("root".FIRSTNAME) as "first_name_length" from personTable as "root"', - $result->sqlRemoveFormatting()); + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsProject::testProjectReduceColumns():Boolean[1] @@ -270,14 +272,14 @@ function <> meta::relational::tests::tds::tdsProject::testProjectRedu |Person.all() ->project([p|$p.firstName, p|$p.lastName->toUpper()], ['first', 'LAST']) ->project([col(r:TDSRow[1]|$r.getString('first'), 'first')]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertSize($result.values.rows, 7); - + assertEquals('Peter,John,John,Anthony,Fabrice,Oliver,David', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + assertEquals('select "root".FIRSTNAME as "first" from personTable as "root"', $result->sqlRemoveFormatting()); } @@ -288,19 +290,19 @@ function <> meta::relational::tests::tds::tdsProject::testHourFunctio |Person.all() ->project(p|$p.firstName,'firstName') ->project([col(r:TDSRow[1]|$r.getString('firstName'), 'firstName'),col({r:TDSRow[1]|%2016-08-10T08:55:00.0->hour()}, 'hour')]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + let tds = $result.values->at(0); - - assertSize($tds.columns, 2); - + + assertSize($tds.columns, 2); + assertEquals('Peter|8,John|8,John|8,Anthony|8,Fabrice|8,Oliver|8,David|8', $tds.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + assertEqualsH2Compatible( - 'select "root".FIRSTNAME as "firstName", hour(\'2016-08-10 08:55:00.0\') as "hour" from personTable as "root"', - 'select "root".FIRSTNAME as "firstName", hour(TIMESTAMP\'2016-08-10 08:55:00.0\') as "hour" from personTable as "root"', + 'select "root".FIRSTNAME as "firstName", hour(\'2016-08-10 08:55:00.0\') as "hour" from personTable as "root"', + 'select "root".FIRSTNAME as "firstName", hour(TIMESTAMP\'2016-08-10 08:55:00.0\') as "hour" from personTable as "root"', $result->sqlRemoveFormatting() ); } @@ -308,26 +310,26 @@ function <> meta::relational::tests::tds::tdsProject::testHourFunctio function <> meta::relational::tests::tds::tdsProject::testProjectEnumFromOpenVariable():Boolean[1] { let units = extractEnumValue(DurationUnit, 'DAYS'); - + let result = execute( |Person.all() ->project(p|$p.firstName,'firstName') ->project([col(r:TDSRow[1]|$r.getString('firstName'), 'firstName'), col({r:TDSRow[1]|now()->adjust(1, $units) > now()}, 'tomorrowGreaterThanToday')]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + let tds = $result.values->at(0); - - assertSize($tds.columns, 2); - + + assertSize($tds.columns, 2); + println($tds); - + assertEquals('Peter|true,John|true,John|true,Anthony|true,Fabrice|true,Oliver|true,David|true', $tds.rows->map(r|$r.values->makeString('|'))->makeString(',')); - - assertEquals('select "root".FIRSTNAME as "firstName", dateadd(DAY, 1, current_timestamp()) > current_timestamp() as "tomorrowGreaterThanToday" from personTable as "root"', - $result->sqlRemoveFormatting()); + + assertEquals('select "root".FIRSTNAME as "firstName", dateadd(DAY, 1, current_timestamp()) > current_timestamp() as "tomorrowGreaterThanToday" from personTable as "root"', + $result->sqlRemoveFormatting()); } @@ -340,20 +342,20 @@ function <> meta::relational::tests::tds::tdsProject::testProjectWith ->project(p|$p.firstName,'firstName') ->project([col(r:TDSRow[1]|$r.getString('firstName'), 'firstName'), col({r:TDSRow[1]|now()->adjust(1, DurationUnit.DAYS) > now()}, 'tomorrowGreaterThanToday')]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + let tds = $result.values->at(0); - - assertSize($tds.columns, 2); - + + assertSize($tds.columns, 2); + println($tds); - + assertEquals('Peter|true,John|true,John|true,Anthony|true,Fabrice|true,Oliver|true,David|true', $tds.rows->map(r|$r.values->makeString('|'))->makeString(',')); - - assertEquals('select "root".FIRSTNAME as "firstName", dateadd(DAY, 1, current_timestamp()) > current_timestamp() as "tomorrowGreaterThanToday" from personTable as "root"', - $result->sqlRemoveFormatting()); + + assertEquals('select "root".FIRSTNAME as "firstName", dateadd(DAY, 1, current_timestamp()) > current_timestamp() as "tomorrowGreaterThanToday" from personTable as "root"', + $result->sqlRemoveFormatting()); } @@ -366,16 +368,16 @@ function <> meta::relational::tests::tds::tdsProject::testFilterAfter ->limit(3) ->filter(r|$r.getInteger('age') > 25) , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions(),debug()); - - assertSize($result.values.columns, 1); - + + assertSize($result.values.columns, 1); + assertEquals('', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - assertEquals('select "age" as "age" from (select top 3 "root".AGE as "age" from personTable as "root" order by "age") as "subselect" where "age" > 25', - $result->sqlRemoveFormatting()); + assertEquals('select "age" as "age" from (select top 3 "root".AGE as "age" from personTable as "root" order by "age") as "subselect" where "age" > 25', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsProject::testFilterAfterLimit2():Boolean[1] @@ -387,15 +389,15 @@ function <> meta::relational::tests::tds::tdsProject::testFilterAfter ->filter(r|$r.getInteger('age') > 25) ->sort(asc('age')) , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 1); + + assertSize($result.values.columns, 1); //We can't assert the expected result values because they are undefined (because there is no sort before the limit) - assertEquals('select "age" as "age" from (select top 3 "root".AGE as "age" from personTable as "root") as "subselect" where "age" > 25 order by "age"', - $result->sqlRemoveFormatting()); + assertEquals('select "age" as "age" from (select top 3 "root".AGE as "age" from personTable as "root") as "subselect" where "age" > 25 order by "age"', + $result->sqlRemoveFormatting()); } @@ -410,16 +412,16 @@ function <> meta::relational::tests::tds::tdsProject::testSortAfterLi ->limit(3) ->sort(desc('age')) , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 1); - + + assertSize($result.values.columns, 1); + assertEquals('22,22,12', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - assertEquals('select "age" as "age" from (select top 3 "age" as "age" from (select top 3 "root".AGE as "age" from personTable as "root" order by "age") as "subselect" order by "age" desc) as "subselect" order by "age" desc', - $result->sqlRemoveFormatting()); + assertEquals('select "age" as "age" from (select top 3 "age" as "age" from (select top 3 "root".AGE as "age" from personTable as "root" order by "age") as "subselect" order by "age" desc) as "subselect" order by "age" desc', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsProject::testLimitAfterLimit():Boolean[1] @@ -430,15 +432,15 @@ function <> meta::relational::tests::tds::tdsProject::testLimitAfterL ->limit(2) ->limit(5) , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 1); - + + assertSize($result.values.columns, 1); + assertEquals(2,$result.values.rows->size()); - assertEquals('select top 5 "age" as "age" from (select top 2 "root".AGE as "age" from personTable as "root") as "subselect"', - $result->sqlRemoveFormatting()); + assertEquals('select top 5 "age" as "age" from (select top 2 "root".AGE as "age" from personTable as "root") as "subselect"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsProject::testSliceAfterLimit():Boolean[1] @@ -450,16 +452,16 @@ function <> meta::relational::tests::tds::tdsProject::testSliceAfterL ->limit(2) ->slice(2,100) , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 1); - + + assertSize($result.values.columns, 1); + assertEquals('', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - assertEquals('select "age" as "age" from (select top 2 "root".AGE as "age" from personTable as "root" order by "age") as "subselect" offset 2 rows fetch next 98 rows only', - $result->sqlRemoveFormatting()); + assertEquals('select "age" as "age" from (select top 2 "root".AGE as "age" from personTable as "root" order by "age") as "subselect" offset 2 rows fetch next 98 rows only', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsProject::testLimitAfterSlice():Boolean[1] @@ -471,16 +473,16 @@ function <> meta::relational::tests::tds::tdsProject::testLimitAfterS ->slice(1,3) ->limit(100) , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 1); - + + assertSize($result.values.columns, 1); + assertEquals('22,22', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - assertEquals('select top 100 "age" as "age" from (select "root".AGE as "age" from personTable as "root" order by "age" offset 1 rows fetch next 2 rows only) as "subselect"', - $result->sqlRemoveFormatting()); + assertEquals('select top 100 "age" as "age" from (select "root".AGE as "age" from personTable as "root" order by "age" offset 1 rows fetch next 2 rows only) as "subselect"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsProject::testDropAfterLimit():Boolean[1] @@ -492,16 +494,16 @@ function <> meta::relational::tests::tds::tdsProject::testDropAfterLi ->limit(5) ->drop(2) , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 1); - + + assertSize($result.values.columns, 1); + assertEquals('22,23,32', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - assertEquals('select "age" as "age" from (select top 5 "root".AGE as "age" from personTable as "root" order by "age") as "subselect" offset 2 rows', - $result->sqlRemoveFormatting()); + assertEquals('select "age" as "age" from (select top 5 "root".AGE as "age" from personTable as "root" order by "age") as "subselect" offset 2 rows', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsProject::testLimitAfterDrop():Boolean[1] @@ -513,16 +515,16 @@ function <> meta::relational::tests::tds::tdsProject::testLimitAfterD ->drop(2) ->limit(5) , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 1); - + + assertSize($result.values.columns, 1); + assertEquals('22,23,32,34,35', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - assertEquals('select top 5 "age" as "age" from (select "root".AGE as "age" from personTable as "root" order by "age" offset 2 rows) as "subselect"', - $result->sqlRemoveFormatting()); + assertEquals('select top 5 "age" as "age" from (select "root".AGE as "age" from personTable as "root" order by "age" offset 2 rows) as "subselect"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsProject::testTakeAfterLimit():Boolean[1] @@ -534,16 +536,16 @@ function <> meta::relational::tests::tds::tdsProject::testTakeAfterLi ->limit(2) ->take(5) , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 1); - + + assertSize($result.values.columns, 1); + assertEquals('12,22', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - assertEquals('select top 5 "age" as "age" from (select top 2 "root".AGE as "age" from personTable as "root" order by "age") as "subselect"', - $result->sqlRemoveFormatting()); + assertEquals('select top 5 "age" as "age" from (select top 2 "root".AGE as "age" from personTable as "root" order by "age") as "subselect"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsProject::testLimitAfterTake():Boolean[1] @@ -555,16 +557,16 @@ function <> meta::relational::tests::tds::tdsProject::testLimitAfterT ->take(2) ->limit(5) , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 1); - + + assertSize($result.values.columns, 1); + assertEquals('12,22', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - assertEquals('select top 5 "age" as "age" from (select top 2 "root".AGE as "age" from personTable as "root" order by "age") as "subselect"', - $result->sqlRemoveFormatting()); + assertEquals('select top 5 "age" as "age" from (select top 2 "root".AGE as "age" from personTable as "root" order by "age") as "subselect"', + $result->sqlRemoveFormatting()); } @@ -576,16 +578,16 @@ function <> meta::relational::tests::tds::tdsProject::testOptionalLim ->sort(asc('age')) ->limit([]) , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 1); - + + assertSize($result.values.columns, 1); + assertEquals('12,22,22,23,32,34,35', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - assertEquals('select "root".AGE as "age" from personTable as "root" order by "age"', - $result->sqlRemoveFormatting()); + assertEquals('select "root".AGE as "age" from personTable as "root" order by "age"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsProject::testOptionalLimit_WithValue():Boolean[1] @@ -596,55 +598,55 @@ function <> meta::relational::tests::tds::tdsProject::testOptionalLim ->sort(asc('age')) ->limit(1->first()) , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 1); - + + assertSize($result.values.columns, 1); + assertEquals('12', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - assertEquals('select top 1 "root".AGE as "age" from personTable as "root" order by "age"', - $result->sqlRemoveFormatting()); + assertEquals('select top 1 "root".AGE as "age" from personTable as "root" order by "age"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsProject::testProjectWithColumnSubSet ():Boolean[1] { let result = execute( - | Person.all()->projectWithColumnSubset( [ + | Person.all()->projectWithColumnSubset( [ col(p| $p.firstName , 'first_name' ), - col(p| $p.lastName , 'last_name' ), + col(p| $p.lastName , 'last_name' ), col(p|$p.age, 'age') - ], [ - 'first_name' , + ], [ + 'first_name' , 'age' ]) - ->filter( x| $x.getString('first_name' ) == 'David' ) - , simpleRelationalMapping + ->filter( x| $x.getString('first_name' ) == 'David' ) + , simpleRelationalMapping , testRuntime() , meta::relational::extension::relationalExtensions()); - assertEquals( 'David|35' , $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',') ); + assertEquals( 'David|35' , $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',') ); assertEquals ( 'select "root".FIRSTNAME as "first_name", "root".AGE as "age" from personTable as "root" where "root".FIRSTNAME = \'David\'' , $result->sqlRemoveFormatting()); - assertEquals( 'first_name,age' , $result.values.columns->map(r|$r.name->makeString('|'))->makeString(',') ); + assertEquals( 'first_name,age' , $result.values.columns->map(r|$r.name->makeString('|'))->makeString(',') ); } function <> meta::relational::tests::tds::tdsProject::testProjectWithColumnSubSetFunctions():Boolean[1] { let result = execute( - | Person.all()->projectWithColumnSubset( [ + | Person.all()->projectWithColumnSubset( [ p| $p.firstName , - p| $p.lastName , + p| $p.lastName , p|$p.age ],['first_name','last_name','age'], ['first_name','age' ]) - ->filter( x| $x.getString('first_name' ) == 'David' ) - , simpleRelationalMapping + ->filter( x| $x.getString('first_name' ) == 'David' ) + , simpleRelationalMapping , testRuntime() , meta::relational::extension::relationalExtensions()); - assertEquals( 'David|35' , $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',') ); + assertEquals( 'David|35' , $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',') ); assertEquals ( 'select "root".FIRSTNAME as "first_name", "root".AGE as "age" from personTable as "root" where "root".FIRSTNAME = \'David\'' , $result->sqlRemoveFormatting()); - assertEquals( 'first_name,age' , $result.values.columns->map(r|$r.name->makeString('|'))->makeString(',') ); + assertEquals( 'first_name,age' , $result.values.columns->map(r|$r.name->makeString('|'))->makeString(',') ); } @@ -652,103 +654,103 @@ function <> meta::relational::tests::tds::tdsProject::testProjectWith { let result1 = execute( | Person.all()->projectWithColumnSubset( [ col(x| $x.firstName , 'first_name' ), - col(x| $x.lastName , 'last_name' ), - col(p|$p.age , 'age'), + col(x| $x.lastName , 'last_name' ), + col(p|$p.age , 'age'), col(p|$p.address.name , 'Employee Address.Name'), col(p|$p.address.street , 'Employee Address.Street'), col(p|$p.address.type , 'Employee Address.type'), - col(p|$p.firm.address.name , 'Firm Address Name'), + col(p|$p.firm.address.name , 'Firm Address Name'), col(p|$p.firm.address.street , 'Firm Address.Street'), col(p|$p.firm.address.type , 'Firm Address.type'), - col(p|$p.firm.legalName , 'Firm Legal Name'), - col(p|$p.locations.place , 'Location Place') - ], + col(p|$p.firm.legalName , 'Firm Legal Name'), + col(p|$p.locations.place , 'Location Place') + ], [ 'first_name' , 'age' ] ) - ->filter( x| $x.getString('first_name' ) == 'David' ) - , simpleRelationalMapping + ->filter( x| $x.getString('first_name' ) == 'David' ) + , simpleRelationalMapping , testRuntime() , meta::relational::extension::relationalExtensions()); // Base test Case -> Only one table in the SQL since we asked for First Name & Age assertEquals ( 'select "root".FIRSTNAME as "first_name", "root".AGE as "age" from personTable as "root" where "root".FIRSTNAME = \'David\'' , $result1->sqlRemoveFormatting()); - assertEquals( 'first_name,age' , $result1.values.columns->map(r|$r.name->makeString('|'))->makeString(',') ); + assertEquals( 'first_name,age' , $result1.values.columns->map(r|$r.name->makeString('|'))->makeString(',') ); + - let result2 = execute( | Person.all()->projectWithColumnSubset( [ col(x| $x.firstName , 'first_name' ), - col(x| $x.lastName , 'last_name' ), - col(p|$p.age , 'age'), + col(x| $x.lastName , 'last_name' ), + col(p|$p.age , 'age'), col(p|$p.address.name , 'Employee Address.Name'), col(p|$p.address.street , 'Employee Address.Street'), col(p|$p.address.type , 'Employee Address.type'), - col(p|$p.firm.address.name , 'Firm Address Name'), + col(p|$p.firm.address.name , 'Firm Address Name'), col(p|$p.firm.address.street , 'Firm Address.Street'), col(p|$p.firm.address.type , 'Firm Address.type'), - col(p|$p.firm.legalName , 'Firm Legal Name'), + col(p|$p.firm.legalName , 'Firm Legal Name'), col(p|$p.locations.place , 'Location Place') - ], + ], [ 'first_name' , 'age' , 'Firm Legal Name' ] ) - ->filter( x| $x.getString('first_name' ) == 'David' ) - , simpleRelationalMapping + ->filter( x| $x.getString('first_name' ) == 'David' ) + , simpleRelationalMapping , testRuntime() , meta::relational::extension::relationalExtensions()); - - // Test Case -> Two tables in the SQL since we asked for Firm Legal Name with First Name & Age from Test Case 1 + + // Test Case -> Two tables in the SQL since we asked for Firm Legal Name with First Name & Age from Test Case 1 // Assert a Firm got added into the union as we added 'Firm Legal Name' in the attributes to be selected assertEquals ( 'select "root".FIRSTNAME as "first_name", "root".AGE as "age", "firmtable_0".LEGALNAME as "Firm Legal Name" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) where "root".FIRSTNAME = \'David\'' , $result2->sqlRemoveFormatting()); - - + + let result3 = execute( | Person.all()->projectWithColumnSubset( [ col(x| $x.firstName , 'first_name' ), - col(x| $x.lastName , 'last_name' ), - col(p|$p.age , 'age'), + col(x| $x.lastName , 'last_name' ), + col(p|$p.age , 'age'), col(p|$p.address.name , 'Employee Address.Name'), col(p|$p.address.street , 'Employee Address.Street'), col(p|$p.address.type , 'Employee Address.type'), - col(p|$p.firm.address.name , 'Firm Address Name'), + col(p|$p.firm.address.name , 'Firm Address Name'), col(p|$p.firm.address.street , 'Firm Address.Street'), col(p|$p.firm.address.type , 'Firm Address.type'), - col(p|$p.firm.legalName , 'Firm Legal Name'), + col(p|$p.firm.legalName , 'Firm Legal Name'), col(p|$p.locations.place , 'Location Place') - ], + ], [ 'first_name' , 'age' , 'Firm Legal Name' , 'Location Place'] ) - ->filter( x| $x.getString('first_name' ) == 'David' ) - , simpleRelationalMapping + ->filter( x| $x.getString('first_name' ) == 'David' ) + , simpleRelationalMapping , testRuntime() , meta::relational::extension::relationalExtensions()); - - // Test Case -> Three tables in the SQL since we asked for Location + + // Test Case -> Three tables in the SQL since we asked for Location // Assert a Location Table got added into the union as we added 'Location Place' in the attributes to be selected assertEquals ( 'select "root".FIRSTNAME as "first_name", "root".AGE as "age", "firmtable_0".LEGALNAME as "Firm Legal Name", "locationtable_0".PLACE as "Location Place" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) left outer join locationTable as "locationtable_0" on ("root".ID = "locationtable_0".PERSONID) where "root".FIRSTNAME = \'David\'', $result3->sqlRemoveFormatting()); - - // Asserting a basic project SQL for a complete TDS + + // Asserting a basic project SQL for a complete TDS let result4 = execute( | Person.all()->project( [ col(x| $x.firstName , 'first_name' ), - col(x| $x.lastName , 'last_name' ), - col(p|$p.age , 'age'), + col(x| $x.lastName , 'last_name' ), + col(p|$p.age , 'age'), col(p|$p.address.name , 'Employee Address.Name'), col(p|$p.address.street , 'Employee Address.Street'), col(p|$p.address.type , 'Employee Address.type'), - col(p|$p.firm.address.name , 'Firm Address Name'), + col(p|$p.firm.address.name , 'Firm Address Name'), col(p|$p.firm.address.street , 'Firm Address.Street'), col(p|$p.firm.address.type , 'Firm Address.type'), - col(p|$p.firm.legalName , 'Firm Legal Name'), + col(p|$p.firm.legalName , 'Firm Legal Name'), col(p|$p.locations.place , 'Location Place') - - ] + + ] ) - ->filter( x| $x.getString('first_name' ) == 'David' ) - , simpleRelationalMapping + ->filter( x| $x.getString('first_name' ) == 'David' ) + , simpleRelationalMapping , testRuntime() , meta::relational::extension::relationalExtensions()); - - - + + + assertEquals ('select "root".FIRSTNAME as "first_name", "root".LASTNAME as "last_name", "root".AGE as "age", "addresstable_0".NAME as "Employee Address.Name", "addresstable_0".STREET as "Employee Address.Street", "addresstable_0".TYPE as "Employee Address.type", "addresstable_1".NAME as "Firm Address Name", "addresstable_1".STREET as "Firm Address.Street", "addresstable_1".TYPE as "Firm Address.type", "firmtable_0".LEGALNAME as "Firm Legal Name", "locationtable_0".PLACE as "Location Place" from personTable as "root" left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "root".ADDRESSID) left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) left outer join addressTable as "addresstable_1" on ("addresstable_1".ID = "firmtable_0".ADDRESSID) left outer join locationTable as "locationtable_0" on ("root".ID = "locationtable_0".PERSONID) where "root".FIRSTNAME = \'David\'', $result4->sqlRemoveFormatting() ) ; // Test case to demostrate the different between project SQL & projectWithColumnSubset SQL are different assertFalse ( $result3->sqlRemoveFormatting() == $result4->sqlRemoveFormatting() ) ; - + } @@ -760,44 +762,44 @@ function <> meta::relational::tests::tds::tdsProject::testGetNumber() ->sort(asc('age')) ->filter(r|$r.getNumber('age') > 25) , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 1); - + + assertSize($result.values.columns, 1); + assertEquals('32,34,35', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - assertEquals('select "root".AGE as "age" from personTable as "root" where "root".AGE > 25 order by "age"', - $result->sqlRemoveFormatting()); + assertEquals('select "root".AGE as "age" from personTable as "root" where "root".AGE > 25 order by "age"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsProject::testProjectWithQuotedColumnFromTableToTDS():Boolean[1] { let queryWithoutQuotes = {|tableToTDS(meta::relational::functions::database::tableReference(meta::relational::tests::db,'default','tableWithQuotedColumns')) ->project([ - col(r:TDSRow[1]|$r.getString('FIRST NAME'), 'firstName'), + col(r:TDSRow[1]|$r.getString('FIRST NAME'), 'firstName'), col(r:TDSRow[1]|$r.getString('1columnStartsWithNumber'), 'somecol') ] )}; - + let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); - + let runtime = meta::external::store::relational::tests::testRuntime(); + let resultWithoutQuotes = execute($queryWithoutQuotes, $mapping, $runtime, meta::relational::extension::relationalExtensions()); - + let expectedSql = 'select "root"."FIRST NAME" as "firstName", "root"."1columnStartsWithNumber" as "somecol" from tableWithQuotedColumns as "root"'; - + assertEquals($expectedSql, $resultWithoutQuotes->sqlRemoveFormatting()); - + let queryWithQuotes = {|tableToTDS(meta::relational::functions::database::tableReference(meta::relational::tests::db,'default','tableWithQuotedColumns')) ->project([ - col(r:TDSRow[1]|$r.getString('"FIRST NAME"'), 'firstName'), + col(r:TDSRow[1]|$r.getString('"FIRST NAME"'), 'firstName'), col(r:TDSRow[1]|$r.getString('"1columnStartsWithNumber"'), 'somecol') ] )}; - - + + let resultWithQuotes = execute($queryWithQuotes, $mapping, $runtime, meta::relational::extension::relationalExtensions()); assertEquals($expectedSql, $resultWithQuotes->sqlRemoveFormatting()); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSRestrict.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSRestrict.pure index 735671119ce..764e29e9c17 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSRestrict.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSRestrict.pure @@ -15,8 +15,10 @@ import meta::relational::metamodel::join::*; import meta::relational::tests::model::simple::*; import meta::relational::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::tds::tdsRestrict::testProjectAllColumns_Single():Boolean[1] { @@ -24,16 +26,16 @@ function <> meta::relational::tests::tds::tdsRestrict::testProjectAll |Person.all() ->project(p|$p.firstName,'firstName') ->restrict(['firstName']), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 1); - + + assertSize($result.values.columns, 1); + assertEquals('Peter,John,John,Anthony,Fabrice,Oliver,David', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - - assertEquals('select "root".FIRSTNAME as "firstName" from personTable as "root"', - $result->sqlRemoveFormatting()); + + assertEquals('select "root".FIRSTNAME as "firstName" from personTable as "root"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsRestrict::testProjectAllColumns_Mulitple():Boolean[1] @@ -42,17 +44,17 @@ function <> meta::relational::tests::tds::tdsRestrict::testProjectAll |Person.all() ->project([col(p|$p.firstName,'firstName'), col(p|'Hello', 'Hello')]) ->restrict(['firstName', 'Hello']), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 2); - + + assertSize($result.values.columns, 2); + assertEquals('Peter|Hello,John|Hello,John|Hello,Anthony|Hello,Fabrice|Hello,Oliver|Hello,David|Hello', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + // Expect that the sql includes all columns - assertEquals('select "root".FIRSTNAME as "firstName", \'Hello\' as "Hello" from personTable as "root"', - $result->sqlRemoveFormatting()); + assertEquals('select "root".FIRSTNAME as "firstName", \'Hello\' as "Hello" from personTable as "root"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsRestrict::testLowerProjectColsEliminated():Boolean[1] @@ -61,19 +63,19 @@ function <> meta::relational::tests::tds::tdsRestrict::testLowerProje |Person.all() ->project([col(p|$p.firstName,'firstName'), col(p|'Hello','Hello')]) ->restrict(['firstName']), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 1); - + + assertSize($result.values.columns, 1); + assertEquals('Peter,John,John,Anthony,Fabrice,Oliver,David', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + //Expect that the const column has been dropped from the sql assertFalse($result->sqlRemoveFormatting()->toLower()->contains('hello')); - - assertEquals('select "root".FIRSTNAME as "firstName" from personTable as "root"', - $result->sqlRemoveFormatting()); + + assertEquals('select "root".FIRSTNAME as "firstName" from personTable as "root"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsRestrict::testLowerProjectColsNotEliminatedWithDistinct():Boolean[1] @@ -84,19 +86,19 @@ function <> meta::relational::tests::tds::tdsRestrict::testLowerProje ->sort(asc('firstName')) ->distinct() ->restrict(['firstName']), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 1); - + + assertSize($result.values.columns, 1); + assertEquals('Anthony,David,Fabrice,John,Oliver,Peter', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + //Expect that the const column has been dropped from the sql assert($result->sqlRemoveFormatting()->toLower()->contains('hello')); - - assertEquals('select "persontable_0"."firstName" as "firstName" from (select distinct "root".FIRSTNAME as "firstName", \'Hello\' as "Hello" from personTable as "root" order by "firstName") as "persontable_0"', - $result->sqlRemoveFormatting()); + + assertEquals('select "persontable_0"."firstName" as "firstName" from (select distinct "root".FIRSTNAME as "firstName", \'Hello\' as "Hello" from personTable as "root" order by "firstName") as "persontable_0"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsRestrict::testLowerProjectColsNotEliminatedWithSort():Boolean[1] @@ -106,19 +108,19 @@ function <> meta::relational::tests::tds::tdsRestrict::testLowerProje ->project([col(p|$p.firstName,'firstName'), col(p|'Hello','Hello')]) ->sort([asc('Hello'), asc('firstName')]) ->restrict(['firstName']), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 1); - + + assertSize($result.values.columns, 1); + assertEquals('Anthony,David,Fabrice,John,John,Oliver,Peter', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + //Expect that the const column has been dropped from the sql assert($result->sqlRemoveFormatting()->toLower()->contains('hello')); - - assertEquals('select "persontable_0"."firstName" as "firstName" from (select "root".FIRSTNAME as "firstName", \'Hello\' as "Hello" from personTable as "root" order by "Hello","firstName") as "persontable_0"', - $result->sqlRemoveFormatting()); + + assertEquals('select "persontable_0"."firstName" as "firstName" from (select "root".FIRSTNAME as "firstName", \'Hello\' as "Hello" from personTable as "root" order by "Hello","firstName") as "persontable_0"', + $result->sqlRemoveFormatting()); } @@ -126,48 +128,48 @@ function <> meta::relational::tests::tds::tdsRestrict::testRestrictOn { let result = execute( |Person.all() - ->groupBy([p|$p.firm.legalName], + ->groupBy([p|$p.firm.legalName], [ - agg(x | $x.firstName, y | $y->count()), + agg(x | $x.firstName, y | $y->count()), agg(x | $x.age, y | $y->max()) ] , ['Firm', 'People count', 'Max Age']) ->sort(asc('Firm')) ->restrict(['Firm', 'People count']), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 2); - + + assertSize($result.values.columns, 2); + assertEquals('Firm A|1,Firm B|1,Firm C|1,Firm X|4', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + //Expect that the calculation of Max(age) has been dropped from the SQL - assertEquals('select "firmtable_0".LEGALNAME as "Firm", count("root".FIRSTNAME) as "People count" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) group by "Firm" order by "Firm"', - $result->sqlRemoveFormatting()); + assertEquals('select "firmtable_0".LEGALNAME as "Firm", count("root".FIRSTNAME) as "People count" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) group by "Firm" order by "Firm"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsRestrict::testRestrictOnGroupByEleminatesUnnecessaryAggsWithDistinct():Boolean[1] { let result = execute( |Person.all() - ->groupBy([p|$p.firm.legalName], + ->groupBy([p|$p.firm.legalName], [ - agg(x | $x.firstName, y | $y->count()), + agg(x | $x.firstName, y | $y->count()), agg(x | $x.age, y | $y->max()) ] , ['Firm', 'People count', 'Max Age']) ->sort(asc('Firm')) ->distinct() ->restrict(['Firm', 'People count']), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 2); - + + assertSize($result.values.columns, 2); + assertEquals('Firm A|1,Firm B|1,Firm C|1,Firm X|4', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + //Expect that the calculation of Count(people) has been retained in the SQL assert($result->sqlRemoveFormatting()->toLower()->contains('count')); @@ -175,39 +177,39 @@ function <> meta::relational::tests::tds::tdsRestrict::testRestrictOn assertFalse($result->sqlRemoveFormatting()->toLower()->contains('max')); //Expect that the calculation of Max(age) has been dropped from the SQL - assertEquals('select "persontable_0"."Firm" as "Firm", "persontable_0"."People count" as "People count" from (select distinct "firmtable_0".LEGALNAME as "Firm", count("root".FIRSTNAME) as "People count" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) group by "Firm" order by "Firm") as "persontable_0"', - $result->sqlRemoveFormatting()); + assertEquals('select "persontable_0"."Firm" as "Firm", "persontable_0"."People count" as "People count" from (select distinct "firmtable_0".LEGALNAME as "Firm", count("root".FIRSTNAME) as "People count" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) group by "Firm" order by "Firm") as "persontable_0"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsRestrict::testRestrictOnGroupByColumn_SubSetOfGroupByColumns():Boolean[1] { let result = execute( |Person.all() - ->groupBy([p|$p.firm.legalName, p|$p.locations.place], + ->groupBy([p|$p.firm.legalName, p|$p.locations.place], [ - agg(x | $x.firstName, y | $y->count()), + agg(x | $x.firstName, y | $y->count()), agg(x | $x.age, y | $y->max()) ] - , ['Firm', 'Place', 'People count', 'Max Age']) + , ['Firm', 'Place', 'People count', 'Max Age']) ->restrict(['Firm', 'People count']) ->sort([asc('Firm'), asc('People count')]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals([String, Integer], $result.values.columns.type); - assertSize($result.values.columns, 2); - + assertSize($result.values.columns, 2); + assertEquals('Firm A|1,Firm A|1,Firm B|1,Firm B|1,Firm C|1,Firm X|1,Firm X|1,Firm X|2,Firm X|4', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + //Expect that the calculation of Max(age) has been dropped from the SQL, including place in the group by assertFalse($result->sqlRemoveFormatting()->toLower()->contains('max')); //Expect that it still groups by the place assert($result->sqlRemoveFormatting()->toLower()->contains('place')); - assertEquals('select "persontable_0"."Firm" as "Firm", "persontable_0"."People count" as "People count" from (select "firmtable_0".LEGALNAME as "Firm", "locationtable_0".PLACE as "Place", count("root".FIRSTNAME) as "People count" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) left outer join locationTable as "locationtable_0" on ("root".ID = "locationtable_0".PERSONID) group by "Firm","Place") as "persontable_0" order by "Firm","People count"', - $result->sqlRemoveFormatting()); + assertEquals('select "persontable_0"."Firm" as "Firm", "persontable_0"."People count" as "People count" from (select "firmtable_0".LEGALNAME as "Firm", "locationtable_0".PLACE as "Place", count("root".FIRSTNAME) as "People count" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) left outer join locationTable as "locationtable_0" on ("root".ID = "locationtable_0".PERSONID) group by "Firm","Place") as "persontable_0" order by "Firm","People count"', + $result->sqlRemoveFormatting()); } @@ -215,32 +217,32 @@ function <> meta::relational::tests::tds::tdsRestrict::testRestrictOn { let result = execute( |Person.all() - ->groupBy([p|$p.firm.legalName, p|$p.locations.place], + ->groupBy([p|$p.firm.legalName, p|$p.locations.place], [ - agg(x | $x.firstName, y | $y->count()), + agg(x | $x.firstName, y | $y->count()), agg(x | $x.age, y | $y->max()) ] , ['Firm', 'Place', 'People count', 'Max Age']) ->restrict(['Firm']) ->sort(asc('Firm')), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 1); - + + assertSize($result.values.columns, 1); + assertEquals('Firm A,Firm A,Firm B,Firm B,Firm C,Firm X,Firm X,Firm X,Firm X', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + //Expect that the calculation of Max(age) and Count(People) has been dropped from the SQL, including place in the group by assertFalse($result->sqlRemoveFormatting()->toLower()->contains('max')); assertFalse($result->sqlRemoveFormatting()->toLower()->contains('count')); - + //Expect that it still groups by the place assert($result->sqlRemoveFormatting()->toLower()->contains('place')); - - - assertEquals('select "persontable_0"."Firm" as "Firm" from (select "firmtable_0".LEGALNAME as "Firm", "locationtable_0".PLACE as "Place" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) left outer join locationTable as "locationtable_0" on ("root".ID = "locationtable_0".PERSONID) group by "Firm","Place") as "persontable_0" order by "Firm"', - $result->sqlRemoveFormatting()); + + + assertEquals('select "persontable_0"."Firm" as "Firm" from (select "firmtable_0".LEGALNAME as "Firm", "locationtable_0".PLACE as "Place" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) left outer join locationTable as "locationtable_0" on ("root".ID = "locationtable_0".PERSONID) group by "Firm","Place") as "persontable_0" order by "Firm"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsRestrict::testRestrictHandlesQueryPathsCorrectlyOnRename():Boolean[1] @@ -254,11 +256,11 @@ function <> meta::relational::tests::tds::tdsRestrict::testRestrictHa ->restrict(['age']) ->sort(asc('age')) , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 1); - + + assertSize($result.values.columns, 1); + assertEquals('20,30,30,31,40,42,43', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); } @@ -266,10 +268,11 @@ function <> meta::relational::tests::tds::tdsRestrict::testRestrictHa function <> meta::relational::tests::tds::tdsRestrict::testRestrictWithPostProcessor():Boolean[1] { let runtime = testRuntime(); - let conn = $runtime.connections->at(0)->cast(@TestDatabaseConnection); - let runtimeWithPostProcessor = ^$runtime(connections = ^$conn(sqlQueryPostProcessors= [{query:meta::relational::metamodel::relation::SelectSQLQuery[1] | $query->meta::relational::postProcessor::postprocess({rel | $rel}) }])); + let connectionStore = $runtime.connectionStores->at(0); + let conn = $connectionStore.connection->cast(@TestDatabaseConnection); + let runtimeWithPostProcessor = ^$runtime(connectionStores = ^$connectionStore(connection=^$conn(sqlQueryPostProcessors= [{query:meta::relational::metamodel::relation::SelectSQLQuery[1] | $query->meta::relational::postProcessor::postprocess({rel | $rel}) }]))); let result = execute(|Person.all()->project([col(p|$p.firstName,'firstName'), col(p|'Hello','Hello')])->sort([asc('Hello'), asc('firstName')])->restrict(['firstName']), simpleRelationalMapping, $runtimeWithPostProcessor, meta::relational::extension::relationalExtensions()); - + assertEquals('select "persontable_0"."firstName" as "firstName" from (select "root".FIRSTNAME as "firstName", \'Hello\' as "Hello" from personTable as "root" order by "Hello","firstName") as "persontable_0"', $result->sqlRemoveFormatting()); } @@ -283,7 +286,7 @@ function <> meta::relational::tests::tds::tdsRestrict::testRestrictAf ->renameColumns(^Pair(first = 'lastName', second = 'name')) ->sort([asc('name'), asc('averageAge')]) , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values.columns, 2); @@ -299,16 +302,16 @@ function <> meta::relational::tests::tds::tdsRestrict::testRestrictAf ->project([col(p|$p.firstName, 'firstName'), col(p|$p.lastName, 'lastName')]) ->concatenate( Person.all() - ->project([col(p|$p.firstName, 'firstName'), col(p|$p.lastName, 'lastName')]) + ->project([col(p|$p.firstName, 'firstName'), col(p|$p.lastName, 'lastName')]) ) ->distinct() ->restrict(['firstName']) , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 1); - + + assertSize($result.values.columns, 1); + assertEquals('Anthony,David,Fabrice,John,John,Oliver,Peter', $result.values.rows->map(r|$r.values->makeString('|'))->sort()->makeString(',')); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSRestrictDistinct.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSRestrictDistinct.pure index e1cf58e8bf7..e2326ee567c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSRestrictDistinct.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSRestrictDistinct.pure @@ -15,8 +15,10 @@ import meta::relational::metamodel::join::*; import meta::relational::tests::model::simple::*; import meta::relational::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::tds::tdsRestrictDistinct::testRestrictDistinct_JoinCutDown_ProjectFunctions():Boolean[1] { @@ -24,9 +26,9 @@ function <> meta::relational::tests::tds::tdsRestrictDistinct::testRe |Person.all() ->project([p|$p.firstName, p|$p.firm.legalName], ['firstName', 'firmName']) ->restrictDistinct(['firstName']), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertSize($res1.values.columns, 1); assertEquals('Anthony,David,Fabrice,John,Oliver,Peter', $res1.values.rows.values->sort()->makeString(',')); assertEquals('select distinct "root".FIRSTNAME as "firstName" from personTable as "root"', $res1->sqlRemoveFormatting()); @@ -36,7 +38,7 @@ function <> meta::relational::tests::tds::tdsRestrictDistinct::testRe ->project([p|$p.firstName, p|$p.firm.legalName], ['firstName', 'firmName']) ->restrict(['firstName']) ->distinct(), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($res2.values.columns, 1); @@ -50,9 +52,9 @@ function <> meta::relational::tests::tds::tdsRestrictDistinct::testRe |Person.all() ->project([col(p|$p.firstName, 'firstName'), col(p|$p.firm.legalName, 'firmName')]) ->restrictDistinct(['firstName']), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertSize($res1.values.columns, 1); assertEquals('Anthony,David,Fabrice,John,Oliver,Peter', $res1.values.rows.values->sort()->makeString(',')); assertEquals('select distinct "root".FIRSTNAME as "firstName" from personTable as "root"', $res1->sqlRemoveFormatting()); @@ -62,8 +64,8 @@ function <> meta::relational::tests::tds::tdsRestrictDistinct::testRe ->project([col(p|$p.firstName, 'firstName'), col(p|$p.firm.legalName, 'firmName')]) ->restrict(['firstName']) ->distinct(), - simpleRelationalMapping, - testRuntime(), meta::relational::extension::relationalExtensions()); + simpleRelationalMapping, + testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($res2.values.columns, 1); assertEquals('Anthony,David,Fabrice,John,Oliver,Peter', $res2.values.rows.values->sort()->makeString(',')); @@ -77,9 +79,9 @@ function <> meta::relational::tests::tds::tdsRestrictDistinct::testRe ->project([col(p|$p.firstName, 'firstName'), col(p|$p.firm.legalName, 'firmName')]) ->take(1000) ->restrictDistinct(['firstName']), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertSize($res1.values.columns, 1); assertEquals('Anthony,David,Fabrice,John,Oliver,Peter', $res1.values.rows.values->sort()->makeString(',')); assertEquals('select distinct "firstName" as "firstName" from (select top 1000 "root".FIRSTNAME as "firstName", "firmtable_0".LEGALNAME as "firmName" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID)) as "subselect"', $res1->sqlRemoveFormatting()); @@ -90,7 +92,7 @@ function <> meta::relational::tests::tds::tdsRestrictDistinct::testRe ->sort(asc('firstName')) ->restrict(['firstName']) ->distinct(), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($res2.values.columns, 1); @@ -106,9 +108,9 @@ function <> meta::relational::tests::tds::tdsRestrictDistinct::testRe ->restrict(['firstName']) ->sort(asc('firstName')) ->distinct(), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertSize($res1.values.columns, 1); assertEquals('Anthony,David,Fabrice,John,Oliver,Peter', $res1.values.rows.values->sort()->makeString(',')); assertEquals('select distinct "root".FIRSTNAME as "firstName" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) order by "firstName"', $res1->sqlRemoveFormatting()); @@ -123,9 +125,9 @@ function <> meta::relational::tests::tds::tdsRestrictDistinct::testRe ->take(1000) ->sort(asc('firstName')) ->groupBy([], [agg('cnt', x|$x, y|$y->count())]), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertSize($res1.values.columns, 1); assertEquals('6', $res1.values.rows.values->sort()->makeString(',')); assertEquals('select count(*) as "cnt" from (select "firstName" as "firstName" from (select top 1000 distinct "root".FIRSTNAME as "firstName" from personTable as "root") as "subselect" order by "firstName") as "persontable_0"', $res1->sqlRemoveFormatting()); @@ -137,9 +139,9 @@ function <> meta::relational::tests::tds::tdsRestrictDistinct::testRe |Person.all() ->project([col(p|$p.firstName, 'firstName'), col(p|$p.lastName, 'lastName'), col(p|$p.firm.legalName, 'firmName')]) ->restrictDistinct(['firmName', 'lastName']), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertSize($res1.values.columns, 2); assertEquals('Firm A|Roberts,Firm B|Hill,Firm C|Harris,Firm X|Allen,Firm X|Hill,Firm X|Johnson,Firm X|Smith', $res1.values.rows->map(x|$x.values->makeString('|'))->sort()->makeString(',')); assertEquals('select distinct "firmtable_0".LEGALNAME as "firmName", "root".LASTNAME as "lastName" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID)', $res1->sqlRemoveFormatting()); @@ -149,7 +151,7 @@ function <> meta::relational::tests::tds::tdsRestrictDistinct::testRe ->project([p|$p.firstName, p|$p.lastName, p|$p.firm.legalName], ['firstName', 'lastName', 'firmName']) ->restrict(['firmName', 'lastName']) ->distinct(), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($res2.values.columns, 2); @@ -163,9 +165,9 @@ function <> meta::relational::tests::tds::tdsRestrictDistinct::testRe |Person.all() ->project([col(p|$p.firstName, 'firstName'), col(p|$p.lastName, 'lastName'), col(p|$p.firm.legalName, 'firmName')]) ->restrictDistinct(['lastName', 'firstName']), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertSize($res1.values.columns, 2); assertEquals('Allen|Anthony,Harris|David,Hill|John,Hill|Oliver,Johnson|John,Roberts|Fabrice,Smith|Peter', $res1.values.rows->map(x|$x.values->makeString('|'))->sort()->makeString(',')); assertEquals('select distinct "root".LASTNAME as "lastName", "root".FIRSTNAME as "firstName" from personTable as "root"', $res1->sqlRemoveFormatting()); @@ -175,7 +177,7 @@ function <> meta::relational::tests::tds::tdsRestrictDistinct::testRe ->project([p|$p.firstName, p|$p.lastName, p|$p.firm.legalName], ['firstName', 'lastName', 'firmName']) ->restrict(['lastName', 'firstName']) ->distinct(), - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($res2.values.columns, 2); @@ -196,9 +198,9 @@ function <> meta::relational::tests::tds::tdsRestrictDistinct::testRe col(window(p|$p.firstName), func(p|$p.age->toOne(), y|$y->average()), 'avgAge') ]) ->restrictDistinct(['lastName', 'firstName', 'sumAge', 'maxAge']), - simpleRelationalMapping, + simpleRelationalMapping, DatabaseType.H2, meta::relational::extension::relationalExtensions()); - + assertEquals('select distinct "root".LASTNAME as "lastName", "root".FIRSTNAME as "firstName", sum("root".AGE) OVER (Partition By "root".FIRSTNAME ) as "sumAge", max("root".AGE) OVER (Partition By "root".FIRSTNAME ) as "maxAge" from personTable as "root" left outer join firmTable as "firmTable_d#6_d#3_m3" on ("firmTable_d#6_d#3_m3".ID = "root".FIRMID)', $res1); let res2 = meta::relational::functions::sqlstring::toSQLString( @@ -212,9 +214,9 @@ function <> meta::relational::tests::tds::tdsRestrictDistinct::testRe col(window(p|$p.firm.legalName->toOne()), func(p|$p.age->toOne(), y|$y->average()), 'avgAge') ]) ->restrictDistinct(['lastName', 'firstName', 'sumAge', 'maxAge']), - simpleRelationalMapping, + simpleRelationalMapping, DatabaseType.H2, meta::relational::extension::relationalExtensions()); - + assertEquals('select distinct "root".LASTNAME as "lastName", "root".FIRSTNAME as "firstName", sum("root".AGE) OVER (Partition By "root".FIRSTNAME ) as "sumAge", max("root".AGE) OVER (Partition By "root".FIRSTNAME ) as "maxAge" from personTable as "root" left outer join firmTable as "firmTable_d#6_d#3_m3" on ("firmTable_d#6_d#3_m3".ID = "root".FIRMID)', $res2); let res3 = meta::relational::functions::sqlstring::toSQLString( @@ -228,8 +230,8 @@ function <> meta::relational::tests::tds::tdsRestrictDistinct::testRe col(window(p|$p.firm.legalName->toOne()), func(p|$p.age->toOne(), y|$y->average()), 'avgAge') ]) ->restrictDistinct(['lastName', 'firstName', 'sumAge', 'maxAge']), - simpleRelationalMapping, + simpleRelationalMapping, DatabaseType.H2, meta::relational::extension::relationalExtensions()); assertEquals('select distinct "root".LASTNAME as "lastName", "root".FIRSTNAME as "firstName", sum("root".AGE) OVER (Partition By "firmTable_d#6_d#3_m3".LEGALNAME ) as "sumAge", max("root".AGE) OVER (Partition By "root".FIRSTNAME ) as "maxAge" from personTable as "root" left outer join firmTable as "firmTable_d#6_d#3_m3" on ("firmTable_d#6_d#3_m3".ID = "root".FIRMID)', $res3); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSWindowColumn.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSWindowColumn.pure index 8bee604814c..382d5578e42 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSWindowColumn.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSWindowColumn.pure @@ -13,8 +13,10 @@ // limitations under the License. import meta::relational::functions::sqlstring::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::functions::math::olap::*; import meta::relational::tests::model::simple::*; @@ -57,4 +59,4 @@ meta::relational::tests::tds::tdsWindow::testPercentileWindowFunction():Boolean[ assertSize($result3.values.rows, 7); meta::relational::functions::asserts::assertSameSQL('select "root".FIRSTNAME as "firstName", "root".LASTNAME as "lastName", "root".AGE as "age", percentile_disc(CAST(0.9 AS FLOAT)) within group (order by "root".AGE desc) OVER (Partition By "root".FIRSTNAME ) as "testCol1" from personTable as "root"', $result3); assertSameElements(['Anthony|Allen|22|22.0', 'David|Harris|35|35.0', 'Fabrice|Roberts|34|34.0', 'John|Hill|12|12.0', 'John|Johnson|22|12.0', 'Oliver|Hill|32|32.0', 'Peter|Smith|23|23.0'], $result3.values.rows->map(r|$r.values->makeString('|'))); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTableToTDS.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTableToTDS.pure index 61e6473e52f..a8f353fd051 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTableToTDS.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTableToTDS.pure @@ -20,8 +20,10 @@ import meta::relational::metamodel::join::*; import meta::relational::tests::csv::*; import meta::relational::tests::model::simple::*; import meta::relational::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::protocols::pure::vX_X_X::transformation::fromPureGraph::*; @@ -30,16 +32,16 @@ function <> meta::relational::tests::tds::tabletds::testProjectString let result = execute( | tableToTDS(tableReference(meta::relational::tests::db,'default','personTable')) ->project([col(r:TDSRow[1]|$r.getString('FIRSTNAME'), 'first_name'), col(r:TDSRow[1]|$r.getString('FIRSTNAME'), 'name_again')]), - meta::relational::tests::tds::tabletds::EmptyMapping, + meta::relational::tests::tds::tabletds::EmptyMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 2); - + + assertSize($result.values.columns, 2); + assertEquals('Peter|Peter,John|John,John|John,Anthony|Anthony,Fabrice|Fabrice,Oliver|Oliver,David|David', - $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - + $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); + assertEquals('select "root".FIRSTNAME as "first_name", "root".FIRSTNAME as "name_again" from personTable as "root"', - $result->sqlRemoveFormatting()); + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tabletds::testView():Boolean[1] @@ -47,16 +49,16 @@ function <> meta::relational::tests::tds::tabletds: let result = execute( | viewToTDS(viewReference(meta::relational::tests::db,'default','FirstNameAddress')) ->project([col(r:TDSRow[1]|$r.getString('firstName'), 'first_name'), col(r:TDSRow[1]|$r.getString('firstName'), 'name_again')]), - meta::relational::tests::tds::tabletds::EmptyMapping, + meta::relational::tests::tds::tabletds::EmptyMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 2); - + + assertSize($result.values.columns, 2); + assertEquals('Anthony|Anthony,David|David,Fabrice|Fabrice,John|John,Oliver|Oliver,Peter|Peter', - $result.values.rows->map(r|$r.values->makeString('|'))->sort()->makeString(',')); - + $result.values.rows->map(r|$r.values->makeString('|'))->sort()->makeString(',')); + assertEquals('select "root".firstName as "first_name", "root".firstName as "name_again" from (select distinct "root".FIRSTNAME as firstName, "addresstable_0".NAME as address from personTable as "root" left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "root".ADDRESSID)) as "root"', - $result->sqlRemoveFormatting()); + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tabletds::testProjectAllColumns_Single():Boolean[1] @@ -65,16 +67,16 @@ function <> meta::relational::tests::tds::tabletds: let result = execute( | tableToTDS(tableReference(meta::relational::tests::db,'default','personTable')) ->restrict(['FIRSTNAME']), - EmptyMapping, + EmptyMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 1); - + + assertSize($result.values.columns, 1); + assertEquals('Peter,John,John,Anthony,Fabrice,Oliver,David', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - - assertEquals('select "root".FIRSTNAME as "FIRSTNAME" from personTable as "root"', - $result->sqlRemoveFormatting()); + + assertEquals('select "root".FIRSTNAME as "FIRSTNAME" from personTable as "root"', + $result->sqlRemoveFormatting()); } @@ -86,16 +88,16 @@ function <> meta::relational::tests::tds::tabletds: ->restrict(['FIRST NAME']) ->limit(2) ->sort(asc('FIRST NAME')), - EmptyMapping, + EmptyMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 1); - + + assertSize($result.values.columns, 1); + assertEquals('John,Peter', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - - assertEquals('select "FIRST NAME" as "FIRST NAME" from (select top 2 "root"."FIRST NAME" as "FIRST NAME" from tableWithQuotedColumns as "root") as "subselect" order by "FIRST NAME"', - $result->sqlRemoveFormatting()); + + assertEquals('select "FIRST NAME" as "FIRST NAME" from (select top 2 "root"."FIRST NAME" as "FIRST NAME" from tableWithQuotedColumns as "root") as "subselect" order by "FIRST NAME"', + $result->sqlRemoveFormatting()); } @@ -115,7 +117,7 @@ function <> meta::relational::tests::tds::tabletds::testInnerJoinTabl { let result = execute(|tableToTDS(tableReference(meta::relational::tests::dbInc,'default','personTable'))->project([col(r:TDSRow[1]|$r.getInteger('ID'), 'eID')]) ->join(testJoinTDS_Firm.all()->project([#/testJoinTDS_Firm/legalName!firmName#, #/testJoinTDS_Firm/firmID!fID#]) , JoinType.INNER, {a,b|$a.getInteger('eID') == $b.getInteger('fID');}), testJoinTDSMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSize($result.values.rows, 4 ); + assertSize($result.values.rows, 4 ); assertSameElements( ['1,Firm X,1', '2,Firm A,2', '3,Firm B,3', '4,Firm C,4'], $result.values.rows->map(r|$r.values->makeString(','))); } @@ -126,7 +128,7 @@ function <> meta::relational::tests::tds::tabletds::testSimpleFilter( assertEquals('select "root".FIRSTNAME as "name" from personTable as "root" where "root".FIRSTNAME = \'John\'', $result->sqlRemoveFormatting()); assertSize($result.values.rows, 2 ); assertEquals(['John','John'], $result.values.rows->map(r|$r.values)); - + } @@ -136,14 +138,14 @@ function <> meta::relational::tests::tds::tabletds::testExtendStringL |tableToTDS(tableReference(meta::relational::tests::db,'default','personTable')) ->project([col(r:TDSRow[1]|$r.getString('FIRSTNAME'), 'firstName')]) ->extend([col({r:TDSRow[1]|'Hello'}, 'hello')]), EmptyMapping,testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 2); - + + assertSize($result.values.columns, 2); + assertEquals('Peter|Hello,John|Hello,John|Hello,Anthony|Hello,Fabrice|Hello,Oliver|Hello,David|Hello', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - - assertEquals('select "root".FIRSTNAME as "firstName", \'Hello\' as "hello" from personTable as "root"', - $result->sqlRemoveFormatting()); + + assertEquals('select "root".FIRSTNAME as "firstName", \'Hello\' as "hello" from personTable as "root"', + $result->sqlRemoveFormatting()); } @@ -157,16 +159,16 @@ function <> meta::relational::tests::tds::tabletds::testSimpleConcat , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions(),debug()); - + let tds = $result.values->toOne()->sort([asc('lastName')]); - - assertSize($tds.columns, 1); - + + assertSize($tds.columns, 1); + assertEquals('Allen,Allen,Hill,Hill,Smith,Smith,Johnson,Johnson,Harris,Harris,Roberts,Roberts,Hill,Hill', $tds.rows->map(r|$r.values->makeString('|'))->makeString(',')); - - assertEquals('select "unionalias_0"."lastName" as "lastName" from (select "root".LASTNAME as "lastName" from personTable as "root" UNION ALL select "root".LASTNAME as "lastName" from personTable as "root") as "unionalias_0"', - $result->sqlRemoveFormatting()); + + assertEquals('select "unionalias_0"."lastName" as "lastName" from (select "root".LASTNAME as "lastName" from personTable as "root" UNION ALL select "root".LASTNAME as "lastName" from personTable as "root") as "unionalias_0"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tabletds::testSimpleConcatenate():Boolean[1] @@ -178,16 +180,16 @@ function <> meta::relational::tests::tds::tabletds::testSimpleConcate , simpleRelationalMappingInc, testRuntime(), meta::relational::extension::relationalExtensions()); - + let tds = $result.values->toOne()->sort([asc('lastName')]); - - assertSize($tds.columns, 1); - + + assertSize($tds.columns, 1); + assertEquals('Allen,Allen,Harris,Harris,Hill,Hill,Hill,Hill,Johnson,Johnson,Roberts,Roberts,Smith,Smith', $tds.rows->map(r|$r.values->makeString('|'))->makeString(',')); - - assertEquals('select "unionalias_0"."lastName" as "lastName" from (select "root".LASTNAME as "lastName" from personTable as "root" UNION ALL select "root".LASTNAME as "lastName" from personTable as "root") as "unionalias_0"', - $result->sqlRemoveFormatting()); + + assertEquals('select "unionalias_0"."lastName" as "lastName" from (select "root".LASTNAME as "lastName" from personTable as "root" UNION ALL select "root".LASTNAME as "lastName" from personTable as "root") as "unionalias_0"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tabletds::testSimpleSortAsc():Boolean[1] @@ -216,7 +218,7 @@ function <> meta::relational::tests::tds::tabletds::testSimpleDistinc assertSize($result.values.rows, 2); } -function <> +function <> { doc.doc='Make sure that buildPureModelContextTextFromMapping includes dummyDb in model code for current protocol version' } @@ -234,7 +236,7 @@ meta::relational::tests::tds::tabletds::testExtractingDbFromTableReference():Boo let actual = $result.code->replace('\r\n', '\n'); assertEquals($expected, $actual); } - + ###Mapping Mapping meta::relational::tests::tds::tabletds::EmptyMapping() diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTdsExtension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTdsExtension.pure index 9068a1d7d01..4cd4c4454f2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTdsExtension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTdsExtension.pure @@ -25,9 +25,9 @@ function <> { let scores = [-100, 3, 4, 5, 5, 6, 7, 11, 13, 1, 4, 100, 101]; let data = range($scores->size())->map(i|'student_' +toString($i))->zip($scores); - + let tds = $data->project([col(p|$p.first, 'name'), col(p|$p.second, 'score')]); - + let result = $tds->iqrClassify([], 'score', 'irq_classification'); println($result->toCSV()); @@ -43,9 +43,9 @@ function <> { let scores = [-1000,-100, 3, 4, 5, 5, 6, 7, 11, 13, 1, 4,6,7,8,3,54,6,2,3,4,5,6,7,8, 100, 1001]; let data = range($scores->size())->map(i|'student_' +toString($i))->zip($scores); - + let tds = $data->project([col(p|$p.first, 'name'), col(p|$p.second, 'score')]); - + let result = $tds->zScore([], 'score', 'zscore'); println($result->toCSV()); @@ -65,33 +65,33 @@ function <> meta::pure::tds::tests::extensions::columnValueDifferenceTest() : Boolean[1] { let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); - + let runtime = meta::external::store::relational::tests::testRuntime(); + let rawTradeDate = execute({| Trade.all() - ->groupBy([x|$x.date->adjust(0, DurationUnit.DAYS)], + ->groupBy([x|$x.date->adjust(0, DurationUnit.DAYS)], [ - agg(x | $x.quantity, y | $y->sum()), + agg(x | $x.quantity, y | $y->sum()), agg(x | $x.id, y | $y->count()) - ], + ], ['tradeDate', 'quantity', 'count'] ) ->extend(col(x:TDSRow[1]|$x.isNotNull('tradeDate'), 'isNullTradeDate')) ->sort(asc('tradeDate')) }, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; - + let rawPrevTradeDateR = execute({| Trade.all() - ->groupBy([x|$x.date->adjust(1, DurationUnit.DAYS)], + ->groupBy([x|$x.date->adjust(1, DurationUnit.DAYS)], [ - agg(x | $x.quantity, y | $y->sum()), + agg(x | $x.quantity, y | $y->sum()), agg(x | $x.id, y | $y->count()) - ], + ], ['tradeDate', 'quantity', 'count'] ) ->sort(asc('tradeDate'))}, $mapping, $runtime, meta::relational::extension::relationalExtensions() ); let rawPrevTradeDate = $rawPrevTradeDateR.values; - + println('raw data, trade date:'); println($rawTradeDate.columns->map(c|$c.name + ':' + $c.type->toOne()->elementToPath())->joinStrings(',')); println($rawTradeDate->toCSV()); @@ -101,28 +101,28 @@ function <> println($rawPrevTradeDate.columns->map(c|$c.name + ':' + $c.type->toOne()->elementToPath())->joinStrings(',')); println($rawPrevTradeDate->toCSV()); - + let q = {| Trade.all() - ->groupBy([x|$x.date->adjust(0, DurationUnit.DAYS)], + ->groupBy([x|$x.date->adjust(0, DurationUnit.DAYS)], [ - agg(x | $x.quantity, y | $y->sum()), + agg(x | $x.quantity, y | $y->sum()), agg(x | $x.id, y | $y->count()) - ], + ], ['tradeDate', 'quantity', 'count'] - ) + ) ->extend(col(x:TDSRow[1]|$x.isNotNull('tradeDate'), 'isNullTradeDate')) - ->sort(asc('tradeDate')) + ->sort(asc('tradeDate')) ->columnValueDifference( Trade.all() - ->groupBy([x|$x.date->adjust(1, DurationUnit.DAYS)], + ->groupBy([x|$x.date->adjust(1, DurationUnit.DAYS)], [ - agg(x | $x.quantity, y | $y->sum()), + agg(x | $x.quantity, y | $y->sum()), agg(x | $x.id, y | $y->count()) - ], + ], ['tradeDate', 'quantity', 'count'] - ) - , + ) + , ['tradeDate'], ['quantity', 'count']) ->sort(asc('tradeDate')) }; @@ -133,7 +133,7 @@ function <> println($r.activities); let relationalResult = $r.values; - + println($relationalResult.columns->map(c|$c.name + ':' + $c.type->toOne()->elementToPath())->joinStrings(',')); println($relationalResult->toCSV()); @@ -150,14 +150,14 @@ function <> assertEquals($relationalResult->toCSV(), $inMemoryResult->toCSV()); assertEquals('2014-12-01|true|356.0|TDSNull|356.0|3|TDSNull|3;2014-12-02|true|55.0|356.0|-301.0|2|3|-1;2014-12-03|true|71.0|55.0|16.0|2|2|0;2014-12-04|true|105.0|71.0|34.0|3|2|1;2014-12-05|true|5.0|105.0|-100.0|1|3|-2;2014-12-06|TDSNull|TDSNull|5.0|-5.0|TDSNull|1|-1', - $relationalResult.rows->map(r|$r.values->makeString('|'))->joinStrings(';')); + $relationalResult.rows->map(r|$r.values->makeString('|'))->joinStrings(';')); } function <> meta::pure::tds::tests::extensions::columnValueDifferenceWithoutPrevalTest() : Boolean[1] { let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let rawTradeDate = execute({| Trade.all() @@ -230,27 +230,27 @@ function <> meta::pure::tds::tests::extensions::columnValueDifference_DupeJoinKeys_Test() : Boolean[1] { let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); - + let runtime = meta::external::store::relational::tests::testRuntime(); + let q = {| Trade.all() - ->groupBy([x|$x.date->adjust(0, DurationUnit.DAYS)], + ->groupBy([x|$x.date->adjust(0, DurationUnit.DAYS)], [ - agg(x | $x.quantity, y | $y->sum()), + agg(x | $x.quantity, y | $y->sum()), agg(x | $x.id, y | $y->count()) - ], + ], ['tradeDate', 'quantity', 'count'] - ) + ) ->columnValueDifference( Trade.all() - ->groupBy([x|$x.date->adjust(1, DurationUnit.DAYS)], + ->groupBy([x|$x.date->adjust(1, DurationUnit.DAYS)], [ - agg(x | $x.quantity, y | $y->sum()), + agg(x | $x.quantity, y | $y->sum()), agg(x | $x.id, y | $y->count()) - ], + ], ['tradeDate', 'quantity', 'count'] - ) - , + ) + , ['tradeDate', 'tradeDate'], ['quantity', 'count']) ->sort(asc('tradeDate')) }; @@ -264,7 +264,7 @@ function <> meta::pure::tds::tests::extensions::columnValueDifferenceWithoutPreval_DupeJoinKeys_Test() : Boolean[1] { let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let q = {| Trade.all() @@ -298,27 +298,27 @@ function <> meta::pure::tds::tests::extensions::columnValueDifference_ExtraCols_Test() : Boolean[1] { let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); - + let runtime = meta::external::store::relational::tests::testRuntime(); + let q = {| Trade.all() - ->groupBy([x|$x.date->adjust(0, DurationUnit.DAYS)], + ->groupBy([x|$x.date->adjust(0, DurationUnit.DAYS)], [ - agg(x | $x.quantity, y | $y->sum()), + agg(x | $x.quantity, y | $y->sum()), agg(x | $x.id, y | $y->count()) - ], + ], ['tradeDate', 'leftQty', 'count'] - ) + ) ->columnValueDifference( Trade.all() - ->groupBy([x|$x.date->adjust(1, DurationUnit.DAYS)], + ->groupBy([x|$x.date->adjust(1, DurationUnit.DAYS)], [ - agg(x | $x.quantity, y | $y->sum()), + agg(x | $x.quantity, y | $y->sum()), agg(x | $x.id, y | $y->count()) - ], + ], ['tradeDate', 'rightQuantity', 'count'] - ) - , + ) + , ['tradeDate', 'tradeDate'], ['count']) ->sort(asc('tradeDate')) }; @@ -332,7 +332,7 @@ function <> meta::pure::tds::tests::extensions::columnValueDifferenceWithoutPreval_ExtraCols_Test() : Boolean[1] { let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let q = {| Trade.all() @@ -366,27 +366,27 @@ function /* This should fail, so can't be enabled as a test */ meta::pure::tds::tests::extensions::columnValueDifference_DuplicateNonKeyCols_Test() : Boolean[1] { let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); - + let runtime = meta::external::store::relational::tests::testRuntime(); + let q = {| Trade.all() - ->groupBy([x|$x.date->adjust(0, DurationUnit.DAYS)], + ->groupBy([x|$x.date->adjust(0, DurationUnit.DAYS)], [ - agg(x | $x.quantity, y | $y->sum()), + agg(x | $x.quantity, y | $y->sum()), agg(x | $x.id, y | $y->count()) - ], + ], ['tradeDate', 'quantity', 'count'] - ) + ) ->columnValueDifference( Trade.all() - ->groupBy([x|$x.date->adjust(1, DurationUnit.DAYS)], + ->groupBy([x|$x.date->adjust(1, DurationUnit.DAYS)], [ - agg(x | $x.quantity, y | $y->sum()), + agg(x | $x.quantity, y | $y->sum()), agg(x | $x.id, y | $y->count()) - ], + ], ['tradeDate', 'quantity', 'count'] - ) - , + ) + , ['tradeDate', 'tradeDate'], ['count']) ->sort(asc('tradeDate')) }; @@ -400,33 +400,33 @@ function <> meta::pure::tds::tests::extensions::rowValueDifferenceTest() : Boolean[1] { let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); - + let runtime = meta::external::store::relational::tests::testRuntime(); + let rawTradeDate = execute({| Trade.all() - ->groupBy([x|$x.date->adjust(0, DurationUnit.DAYS)], + ->groupBy([x|$x.date->adjust(0, DurationUnit.DAYS)], [ - agg(x | $x.quantity, y | $y->sum()), + agg(x | $x.quantity, y | $y->sum()), agg(x | $x.id, y | $y->count()) - ], + ], ['tradeDate', 'quantity', 'count'] ) ->extend(col(x:TDSRow[1]|$x.isNotNull('tradeDate'), 'isNullTradeDate')) ->sort(asc('tradeDate')) }, $mapping, $runtime, meta::relational::extension::relationalExtensions()).values; - + let rawPrevTradeDateR = execute({| Trade.all() - ->groupBy([x|$x.date->adjust(1, DurationUnit.DAYS)], + ->groupBy([x|$x.date->adjust(1, DurationUnit.DAYS)], [ - agg(x | $x.quantity, y | $y->sum()), + agg(x | $x.quantity, y | $y->sum()), agg(x | $x.id, y | $y->count()) - ], + ], ['tradeDate', 'quantity', 'count'] ) ->sort(asc('tradeDate'))}, $mapping, $runtime, meta::relational::extension::relationalExtensions()); let rawPrevTradeDate = $rawPrevTradeDateR.values; - + println('raw data, trade date:'); println($rawTradeDate.columns->map(c|$c.name + ':' + $c.type->toOne()->elementToPath())->joinStrings(',')); println($rawTradeDate->toCSV()); @@ -436,26 +436,26 @@ function <> println($rawPrevTradeDate.columns->map(c|$c.name + ':' + $c.type->toOne()->elementToPath())->joinStrings(',')); println($rawPrevTradeDate->toCSV()); - + let q = {| Trade.all() - ->groupBy([x|$x.date->adjust(0, DurationUnit.DAYS)], + ->groupBy([x|$x.date->adjust(0, DurationUnit.DAYS)], [ - agg(x | $x.quantity, y | $y->sum()), + agg(x | $x.quantity, y | $y->sum()), agg(x | $x.id, y | $y->count()) - ], + ], ['tradeDate', 'quantity', 'count'] - ) + ) ->rowValueDifference( Trade.all() - ->groupBy([x|$x.date->adjust(1, DurationUnit.DAYS)], + ->groupBy([x|$x.date->adjust(1, DurationUnit.DAYS)], [ - agg(x | $x.quantity, y | $y->sum()), + agg(x | $x.quantity, y | $y->sum()), agg(x | $x.id, y | $y->count()) - ], + ], ['tradeDate', 'quantity', 'count'] - ) - , + ) + , ['tradeDate'], ['quantity', 'count']) ->sort(asc('tradeDate')) }; @@ -466,7 +466,7 @@ function <> println($r.activities); let relationalResult = $r.values; - + println($relationalResult.columns->map(c|$c.name + ':' + $c.type->toOne()->elementToPath())->joinStrings(',')); println($relationalResult->toCSV()); @@ -483,7 +483,7 @@ function <> assertEquals($relationalResult->toCSV(), $inMemoryResult->toCSV()); assertEquals('2014-12-01|356.0|3|TDSNull|TDSNull|false|false|false,2014-12-02|55.0|2|356.0|3|false|false|false,2014-12-03|71.0|2|55.0|2|false|true|false,2014-12-04|105.0|3|71.0|2|false|false|false,2014-12-05|5.0|1|105.0|3|false|false|false,2014-12-06|TDSNull|TDSNull|5.0|1|false|false|false', - $relationalResult.rows->map(r|$r.values->makeString('|'))->makeString(',')); + $relationalResult.rows->map(r|$r.values->makeString('|'))->makeString(',')); } function <> meta::pure::tds::tests::extensions::testFirstNotNull():Boolean[1] @@ -492,14 +492,15 @@ function <> meta::pure::tds::tests::extensions::testFirstNotNull():Bo assertEquals([], [TDSNull, TDSNull]->meta::pure::tds::extensions::firstNotNull()); } + function <> meta::pure::tds::tests::extensions::testExtendDigest_InMemory() : Boolean[1] { let scores = [1,2,3,4,5]; let data = range($scores->size())->map(i|'student_' +toString($i))->zip($scores); - + let tds = $data->project([col(p|$p.first, 'name'), col(p|$p.second, 'score')]); - + let result = $tds->extendWithDigestOnColumns('_digest'); println($result->toCSV()); @@ -511,7 +512,7 @@ function <> meta::pure::tds::tests::extensions::testExtendDigest_Relational() : Boolean[1] { let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let query = {| Trade.all() @@ -521,10 +522,10 @@ function <> ]) ->extendWithDigestOnColumns('_digest') ->sort('Trade ID') - ->limit(2); + ->limit(2); }; - + let result = execute($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()); assertEquals(['b7bbee4d9b6a2736c25b00dded9344c7', '9e103ea06a6999b4c5a86cf25d68b083'], $result.values->columnValues('_digest')); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTdsRenameColumns.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTdsRenameColumns.pure index 9a7534bcc81..287424a84d0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTdsRenameColumns.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTdsRenameColumns.pure @@ -15,8 +15,10 @@ import meta::relational::tests::csv::*; import meta::relational::tests::model::simple::*; import meta::relational::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::tds::tdsProject::testRenameColumns():Boolean[1] { @@ -26,16 +28,16 @@ function <> meta::relational::tests::tds::tdsProject::testRenameColum ->project([col(r:TDSRow[1]|$r.getString('firstName'), 'firstName'), col({r:TDSRow[1]|'Hello'}, 'hello')]) ->renameColumns([^Pair(first = 'firstName', second = 'First Name'), ^Pair(first = 'hello', second = 'Other')]) , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 2); - + + assertSize($result.values.columns, 2); + assertEquals('Peter|Hello,John|Hello,John|Hello,Anthony|Hello,Fabrice|Hello,Oliver|Hello,David|Hello', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - - assertEquals('select "persontable_0"."firstName" as "First Name", "persontable_0"."hello" as "Other" from (select "root".FIRSTNAME as "firstName", \'Hello\' as "hello" from personTable as "root") as "persontable_0"', - $result->sqlRemoveFormatting()); + + assertEquals('select "persontable_0"."firstName" as "First Name", "persontable_0"."hello" as "Other" from (select "root".FIRSTNAME as "firstName", \'Hello\' as "hello" from personTable as "root") as "persontable_0"', + $result->sqlRemoveFormatting()); } @@ -44,23 +46,23 @@ function <> meta::relational::tests::tds::tdsProject::testRenameColum let result = execute( |Person.all() ->project([ - col(p|$p.firstName,'firstName'), + col(p|$p.firstName,'firstName'), col(p|$p.age, 'age') ]) ->groupBy('firstName', meta::pure::tds::agg('count', x|$x, y| $y->count())) ->sort(asc('firstName')) ->renameColumns([^Pair(first = 'firstName', second = 'First Name'), ^Pair(first = 'count', second = 'People Count')]) , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 2); - + + assertSize($result.values.columns, 2); + assertEquals('Anthony|1,David|1,Fabrice|1,John|2,Oliver|1,Peter|1', $result.values.rows->map(r|$r.values->makeString('|'))->makeString(',')); - - assertEquals('select "persontable_0"."firstName" as "First Name", "persontable_0"."count" as "People Count" from (select "root".FIRSTNAME as "firstName", count(*) as "count" from personTable as "root" group by "firstName" order by "firstName") as "persontable_0"', - $result->sqlRemoveFormatting()); + + assertEquals('select "persontable_0"."firstName" as "First Name", "persontable_0"."count" as "People Count" from (select "root".FIRSTNAME as "firstName", count(*) as "count" from personTable as "root" group by "firstName" order by "firstName") as "persontable_0"', + $result->sqlRemoveFormatting()); } @@ -73,16 +75,16 @@ function <> meta::relational::tests::tds::tdsProject::testRenameColum ) ->renameColumns([^Pair(first = 'firstName', second = 'First Name')]) , - simpleRelationalMapping, + simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - - assertSize($result.values.columns, 1); - + + assertSize($result.values.columns, 1); + assertEquals('Anthony,Anthony,David,David,Fabrice,Fabrice,John,John,John,John,Oliver,Oliver,Peter,Peter', $result.values->sort(asc('First Name')).rows->map(r|$r.values->makeString('|'))->makeString(',')); - - assertEquals('select "unionalias_0"."firstName" as "First Name" from (select "unionalias_1"."firstName" as "firstName" from (select "root".FIRSTNAME as "firstName" from personTable as "root" UNION ALL select "root".FIRSTNAME as "firstName" from personTable as "root") as "unionalias_1") as "unionalias_0"', - $result->sqlRemoveFormatting()); + + assertEquals('select "unionalias_0"."firstName" as "First Name" from (select "unionalias_1"."firstName" as "firstName" from (select "root".FIRSTNAME as "firstName" from personTable as "root" UNION ALL select "root".FIRSTNAME as "firstName" from personTable as "root") as "unionalias_1") as "unionalias_0"', + $result->sqlRemoveFormatting()); } function <> meta::relational::tests::tds::tdsProject::testRenameColumnsWithQuotes():Boolean[1] @@ -98,14 +100,14 @@ function <> meta::relational::tests::tds::tdsProject::testRenameColum }; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let resWithoutQuotes = execute($queryWithoutQuotes, $mapping, $runtime, meta::relational::extension::relationalExtensions()); - + let expected = 'select "tablewithquotedcolumns_0"."FIRST NAME" as "firstName", "tablewithquotedcolumns_0"."LAST NAME" as "LAST NAME", "tablewithquotedcolumns_0"."1columnStartsWithNumber" as "1columnStartsWithNumber" from (select "root"."FIRST NAME" as "FIRST NAME", "root"."LAST NAME" as "LAST NAME", "root"."1columnStartsWithNumber" as "1columnStartsWithNumber" from tableWithQuotedColumns as "root") as "tablewithquotedcolumns_0"'; - + assertEquals($expected, $resWithoutQuotes->sqlRemoveFormatting()); - + let queryWithQuotes = {|tableToTDS(meta::relational::functions::database::tableReference(meta::relational::tests::db,'default','tableWithQuotedColumns')) ->project([ col({r:TDSRow[1]|$r.getString('FIRST NAME')}, 'FIRST NAME'), @@ -115,9 +117,9 @@ function <> meta::relational::tests::tds::tdsProject::testRenameColum ->restrict(['"FIRST NAME"', '"LAST NAME"', '1columnStartsWithNumber']) ->renameColumns([^Pair(first = '"FIRST NAME"', second = 'firstName')]) }; - + let resWithQuotes = execute($queryWithQuotes, $mapping, $runtime, meta::relational::extension::relationalExtensions()); - assertEquals($expected, $resWithQuotes->sqlRemoveFormatting()); + assertEquals($expected, $resWithQuotes->sqlRemoveFormatting()); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/testDataGeneration/testDataGeneration.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/testDataGeneration/testDataGeneration.pure index 11b3c151c18..ad421934c59 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/testDataGeneration/testDataGeneration.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/testDataGeneration/testDataGeneration.pure @@ -20,12 +20,14 @@ import meta::pure::executionPlan::engine::java::*; import meta::pure::graphFetch::execution::*; import meta::pure::milestoning::*; import meta::alloy::service::metamodel::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::relational::mapping::*; import meta::relational::testDataGeneration::*; import meta::relational::metamodel::relation::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::join::*; import meta::relational::metamodel::execute::*; @@ -75,12 +77,12 @@ function meta::relational::testDataGeneration::createTableRowIdentifiers(databas function meta::relational::testDataGeneration::createTableRowIdentifiers(table: Table[1], identifiers: RowIdentifier[*]):TableRowIdentifiers[1] { - $identifiers->map({i | - $i.columnValuePairs->map({cv | + $identifiers->map({i | + $i.columnValuePairs->map({cv | assert($table.columns->cast(@Column).name->contains($cv.first), 'Table : ' + $table->getQualifiedTableName() + ' has no column with name : ' + $cv.first); }) }); - + ^TableRowIdentifiers(table = $table, rowIdentifiers = $identifiers); } @@ -179,12 +181,12 @@ function meta::relational::testDataGeneration::generateTestDataWithDefaultPKs(fu { generateTestData($func, $mapping, $runtime, $parameters, $exeCtx, ^TestDataGenerationConfig(rowIdentifiers=[], generateWithDefaultPKs=true, hashStrings=$hashStrings, temporalMilestoningDates=$temporalMilestoningDates), $extensions); } - + function meta::relational::testDataGeneration::generateTestData(func:FunctionDefinition[1], mapping:Mapping[1], runtime: Runtime[1], parameters:Any[*], exeCtx: ExecutionContext[1], config: TestDataGenerationConfig[1], extensions:Extension[*]):TestDataGenResult[1] { let newVars = $func->generateParametersNameValuePair($parameters, []); let relationTree = if($func->functionReturnType().rawType->toOne()->_subTypeOf(TabularDataSet), | scanRelations($func, $mapping, $runtime, $newVars, $extensions),| scanRelations($func, $mapping, $extensions)); - let dbConnection = $runtime.connections->filter(c|$c->instanceOf(DatabaseConnection))->toOne()->cast(@DatabaseConnection); + let dbConnection = $runtime.connectionStores.connection->filter(c|$c->instanceOf(DatabaseConnection))->toOne()->cast(@DatabaseConnection); let relationColumnMap = $relationTree->generateRelationColumnMap(^Map>()); let generationResult = meta::relational::testDataGeneration::generateTestDataStartingFromRoot($relationTree, $runtime, $exeCtx, $dbConnection, $relationColumnMap, $config, $extensions); @@ -213,7 +215,7 @@ function meta::relational::testDataGeneration::generateTestData(func:FunctionDef } function meta::relational::testDataGeneration::generateSeedDataString(func:FunctionDefinition[1], mapping:Mapping[1], runtime: Runtime[1], exeCtx: ExecutionContext[1], parameters: Any[*], extensions:Extension[*]):String[1] -{ +{ let newVars = $func->generateParametersNameValuePair($parameters, []); let relationTree = if($func->functionReturnType().rawType->toOne()->_subTypeOf(TabularDataSet), | scanRelations($func, $mapping, $runtime, $newVars, $extensions),| scanRelations($func, $mapping, $extensions)); assert($relationTree.root == true, | 'Should start with a relation tree starting from a \'root\''); @@ -223,7 +225,7 @@ function meta::relational::testDataGeneration::generateSeedDataString(func:Funct let seedGenerationFunction = $func->generateSeedDataGenerationFunction($mainTable, $newVars); let result = execute($seedGenerationFunction, $mapping, $runtime, $extensions); - + '\nmeta::relational::testDataGeneration::createTableRowIdentifiers('+$mainTable.schema.database->elementToPath()+', \''+$mainTable.schema.name->toOne()+'\', \''+$mainTable.name+'\', '+ '[\n'+$result.values->at(0).rows->map(r|' meta::relational::testDataGeneration::createRowIdentifier(['+$mainTable.primaryKey->map(c|$c.name)->map(c|'\''+$c+'\'')->joinStrings(',')+'], ['+$r.values->map(c|$c->toRepresentation())->makeString(',')+'])')->sort()->joinStrings(',\n')+'\n ])\n'; } @@ -234,12 +236,12 @@ function meta::relational::testDataGeneration::generateParametersNameValuePair(f if($parameters->isNotEmpty(), | assertEquals($params->size(), $parameters->size(), | 'Missing some values/Extra values provided for parameters ['+$params.name->joinStrings(', ')+']'), | assertEquals($params->size(), $parameterNameValuePairs->size(), | 'Missing some values/Extra values provided for parameters ['+$params.name->joinStrings(', ')+']');); - + let newVars = $params->size()->range()->map(i | let paramType = $params->at($i).genericType.rawType->toOne(); let isDate = if($parameterNameValuePairs->isNotEmpty(), - |$paramType->_subTypeOf(Date) + |$paramType->_subTypeOf(Date) && $parameterNameValuePairs->at($i).second.values->size() == 1 - && $parameterNameValuePairs->at($i).second.values->at(0)->instanceOf(String), + && $parameterNameValuePairs->at($i).second.values->at(0)->instanceOf(String), | $paramType->_subTypeOf(Date) && $parameters->at($i)->instanceOf(String)); if($isDate, | if($parameterNameValuePairs->isNotEmpty(), @@ -249,13 +251,13 @@ function meta::relational::testDataGeneration::generateParametersNameValuePair(f | $parameterNameValuePairs->at($i), | pair($params->at($i).name, list($parameters->at($i))) ) - );); + );); } function <> meta::relational::testDataGeneration::generateSeedDataGenerationFunction(func: FunctionDefinition[1], mainRelation: NamedRelation[1], newVars: Pair>[*]):LambdaFunction<{->RelationData[1]}>[1] { let expressionSequence = $func.expressionSequence->evaluateAndDeactivate()->map(x | $x->meta::relational::validation::functions::resolveVars($func->openVariableValues()->putAll($newVars))); - + let exprSize = $expressionSequence->size(); let lastExpression = $expressionSequence->last()->toOne(); let lastExpressionWithSerializeRemoved = if($lastExpression->cast(@FunctionExpression)->isSerialize(), @@ -263,11 +265,11 @@ function <> meta::relational::testDataGeneration::generateSeed | $lastExpression); let mainTable = $mainRelation->match([t: Table[1]|$t, v:View[1]|$v->mainTable()])->cast(@Table); - let updatedMainTable = if($mainTable.primaryKey->isEmpty(), + let updatedMainTable = if($mainTable.primaryKey->isEmpty(), | let validNonNullableCols = $mainTable.columns->cast(@Column)->filter(y|$y.nullable == false && !($y.type->instanceOf(Varchar) && ($y.type->cast(@Varchar).size > 1000)) && !($y.type->instanceOf(Varbinary) && ($y.type->cast(@Varchar).size > 1000))); - ^$mainTable(primaryKey = $validNonNullableCols);, + ^$mainTable(primaryKey = $validNonNullableCols);, | $mainTable); - + assert($updatedMainTable.primaryKey->isNotEmpty(), | 'Table : ' + $mainTable.name + ' must have atleast 1 primary key or non-null column to utilise this feature'); let wrappedLast = ^SimpleFunctionExpression @@ -283,7 +285,7 @@ function <> meta::relational::testDataGeneration::generateSeed ^InstanceValue(genericType=^GenericType(rawType=Integer), multiplicity=PureOne, values=10) ], importGroup = system::imports::coreImport - + )->evaluateAndDeactivate(); ^LambdaFunction<{->RelationData[1]}>(expressionSequence=$expressionSequence->take($exprSize - 1)->concatenate($wrappedLast)->toOneMany()); } @@ -445,7 +447,7 @@ function meta::relational::testDataGeneration::generateTestDataStartingFromNode( let mainAlias = ^TableAlias(name = 'main', relationalElement=^Table(name=$tempName, columns=$root.columns, temporaryTable=true, schema=^Schema(name='default', database=^Database(name='default')))); let relatedAlias = ^TableAlias(name = if($childTable == $root, | 't_', | '') + $childTable.name, relationalElement=$childTable); - let columns = $relationColumnMap->get($childTable)->toOne().values->sortBy(x | $x.name); + let columns = $relationColumnMap->get($childTable)->toOne().values->sortBy(x | $x.name); let childSQL_PreMilestoning = ^SelectSQLQuery( distinct = false, toRow = ^Literal(value=20), @@ -466,7 +468,7 @@ function meta::relational::testDataGeneration::generateTestDataStartingFromNode( | $childSQL_PreMilestoning, | ^$childSQL_PreMilestoning(filteringOperation = $childSQL_PreMilestoning.filteringOperation->concatenate($milestoningFilter)->meta::relational::functions::pureToSqlQuery::andFilters($extensions)) ); - + let childSQLQueryProcessed = postProcessQuery($exeCtx, $childSQL, $runtime, ^Database(name='default'), $extensions).query->sqlQueryToStringPretty($dbConnection.type, $dbConnection.timeZone, $dbConnection.quoteIdentifiers, $extensions); let childResult = executeInDb($childSQLQueryProcessed, $dbConnection); dropTempTable($tempName, $dbConnection); @@ -754,14 +756,14 @@ function meta::relational::testDataGeneration::getRelationalCSVDataFromQuery(que .result->meta::pure::lineage::scanProperties::propertyTree::buildPropertyTree(); let columns = $propertyTree->meta::pure::lineage::scanColumns::scanColumns($mapping).column->removeDuplicates(); - let finalTableToColumnsMap = $columns->filter(c | $c.owner->isNotEmpty() && $c.owner->toOne()->instanceOf(Table))->fold({column, tableToColumnsMap | + let finalTableToColumnsMap = $columns->filter(c | $c.owner->isNotEmpty() && $c.owner->toOne()->instanceOf(Table))->fold({column, tableToColumnsMap | let table = $column.owner->toOne()->cast(@Table); let existingColumnList = $tableToColumnsMap->get($table); let list = if($existingColumnList->isEmpty(),| ^List(values = [$column]) ,| ^List(values = $existingColumnList.values->add($column)))->cast(@List)->toOne(); $tableToColumnsMap->put($table, $list); }, ^Map>()); - - let relationalCSVTables = $finalTableToColumnsMap->keyValues()->map(tableColumnsPair | let table = $tableColumnsPair.first; + + let relationalCSVTables = $finalTableToColumnsMap->keyValues()->map(tableColumnsPair | let table = $tableColumnsPair.first; let primaryKeys = $table.primaryKey->sortBy(pk | $pk.name); let milestoningColumns = $table->meta::relational::milestoning::getMilestoningDateColumns()->sortBy(c | $c.name); let columns = $primaryKeys->concatenate($tableColumnsPair.second.values->sortBy(c | $c->cast(@Column).name))->concatenate($milestoningColumns)->removeDuplicates(); @@ -778,6 +780,7 @@ import meta::pure::extension::*; import meta::relational::extension::*; import meta::pure::graphFetch::execution::*; import meta::alloy::service::metamodel::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; import meta::pure::store::*; @@ -786,6 +789,7 @@ import meta::relational::testDataGeneration::*; import meta::relational::testDataGeneration::executionPlan::*; import meta::relational::metamodel::relation::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::translation::*; import meta::relational::metamodel::join::*; @@ -826,17 +830,19 @@ function meta::relational::testDataGeneration::executionPlan::planTestDataGenera { let newParameterNameValuePairs = meta::relational::testDataGeneration::generateParametersNameValuePair($func, [], $parameterNameValuePairs); let relationTree = if($func->functionReturnType().rawType->toOne()->_subTypeOf(TabularDataSet), | scanRelations($func, $mapping, $runtime, $newParameterNameValuePairs, $extensions),| scanRelations($func, $mapping, $extensions)); - let dbConnection = $runtime.connections->filter(c|$c->instanceOf(DatabaseConnection))->toOne(); + let dbConnection = $runtime.connectionStores->filter(c|$c.connection->instanceOf(DatabaseConnection))->toOne(); let updatedDbConnection = $extensions.executionPlanExtensions().reprocessConnection->toOne()->eval($dbConnection)->cast(@DatabaseConnection); + let dbConnectionStore = ^$dbConnection(connection=$updatedDbConnection); + let newRuntime = ^$runtime(connectionStores=$dbConnectionStore); let relationColumnMap = $relationTree->generateRelationColumnMap(^Map>()); - let node = meta::relational::testDataGeneration::executionPlan::planTestDataGeneration($relationTree, $runtime, $exeCtx, $updatedDbConnection, $relationColumnMap, [], ^TestDataGenerationConfig(rowIdentifiers=$rowIdentifiers, generateWithDefaultPKs=false, hashStrings=$hashStrings, temporalMilestoningDates=$temporalMilestoningDates), $extensions); + let node = meta::relational::testDataGeneration::executionPlan::planTestDataGeneration($relationTree, $newRuntime, $exeCtx, $updatedDbConnection, $relationColumnMap, [], ^TestDataGenerationConfig(rowIdentifiers=$rowIdentifiers, generateWithDefaultPKs=false, hashStrings=$hashStrings, temporalMilestoningDates=$temporalMilestoningDates), $extensions); ^ExecutionPlan ( func = $func, mapping = $mapping, - runtime = $runtime, + runtime = $newRuntime, rootExecutionNode = $node, authDependent = false || $node.childNodes().authDependent->contains(true), kerberos = $node.childNodes().kerberos->first(), @@ -893,9 +899,9 @@ function meta::relational::testDataGeneration::executionPlan::planTestDataGenera | ^$rootSelect_PreMilestoning(filteringOperation = $rootSelect_PreMilestoning.filteringOperation->concatenate($milestoningFilter)->meta::relational::functions::pureToSqlQuery::andFilters($extensions)) ); - let runtime = ^Runtime(connections=$dbConnection); + let newRuntime = ^Runtime(connectionStores=$runtime.connectionStores->filter(c|$c.connection==$dbConnection)); - let postProcessResult = postProcessSQLQuery($rootSelect, $dbConnection.element->cast(@Database), [], [], $runtime, $exeCtx, $extensions); + let postProcessResult = postProcessSQLQuery($rootSelect, $newRuntime.connectionStores.element->toOne()->cast(@Database), [], [], $newRuntime, $exeCtx, $extensions); let relationDataQuery = $postProcessResult.query->cast(@RelationDataSelectSqlQuery); @@ -923,7 +929,7 @@ function meta::relational::testDataGeneration::executionPlan::planTestDataGenera resultSizeRange = $finalNode.resultSizeRange, executionNodes = $finalNode ); - let childNodes = $tree->planTestDataGenerationStartingFromNode($varName, $runtime, $exeCtx, $dbConnection, $relationColumnMap, $currentIndices, $config, $extensions); + let childNodes = $tree->planTestDataGenerationStartingFromNode($varName, $newRuntime, $exeCtx, $dbConnection, $relationColumnMap, $currentIndices, $config, $extensions); $thisNode->concatenate($childNodes);, | $errorNodes ); @@ -982,8 +988,8 @@ function meta::relational::testDataGeneration::executionPlan::planTestDataGenera | ^$childSQL_PreMilestoning(filteringOperation = $childSQL_PreMilestoning.filteringOperation->concatenate($milestoningFilter)->meta::relational::functions::pureToSqlQuery::andFilters($extensions)) ); - let runtime = ^Runtime(connections=$dbConnection); - let postProcessResult = postProcessSQLQuery($childSQL, $dbConnection.element->cast(@Database), [], [], $runtime, $exeCtx, $extensions); + let newRuntime = ^Runtime(connectionStores=$runtime.connectionStores->filter(c|$c.connection==$dbConnection)); + let postProcessResult = postProcessSQLQuery($childSQL, $newRuntime.connectionStores.element->toOne()->cast(@Database), [], [], $newRuntime, $exeCtx, $extensions); let relationDataQuery = $postProcessResult.query->cast(@RelationDataSelectSqlQuery); let resultType = ^RelationResultType @@ -1010,7 +1016,7 @@ function meta::relational::testDataGeneration::executionPlan::planTestDataGenera resultSizeRange = $finalNode.resultSizeRange, executionNodes = $finalNode ); - let subChildNodes = $child->planTestDataGenerationStartingFromNode($varName, $runtime, $exeCtx, $dbConnection, $relationColumnMap, $currentIndices, $config, $extensions); + let subChildNodes = $child->planTestDataGenerationStartingFromNode($varName, $newRuntime, $exeCtx, $dbConnection, $relationColumnMap, $currentIndices, $config, $extensions); $childNode->concatenate($subChildNodes); ); }); @@ -1021,7 +1027,7 @@ function meta::relational::testDataGeneration::executionPlan::planTestDataGenera let view = $relationTree.view; let currentIndices = $indices->add('v'); let translationContext = ^TranslationContext(dbType=$dbConnection->cast(@DatabaseConnection).type); - let table = meta::relational::metamodel::mainTable($view); + let table = meta::relational::metamodel::mainTable($view); let pksAndErrorNodes = if($root, | planRowIdentifierExtractionForTable($config.rowIdentifiers, $table, $runtime, $exeCtx, $dbConnection, true, $view, $config, $extensions), @@ -1032,9 +1038,9 @@ function meta::relational::testDataGeneration::executionPlan::planTestDataGenera let errorNodes = $pksAndErrorNodes.second.values; let initialNodes = if($errorNodes->isEmpty(), - | + | let rootAlias = ^TableAlias(name = 'root', relationalElement = $table); - let rootSelect_PreMilestoning = + let rootSelect_PreMilestoning = if ($root, | let columns = $relationColumnMap->get($table)->toOne().values->sortBy(x | $x.name); ^RelationDataSelectSqlQuery( @@ -1056,7 +1062,7 @@ function meta::relational::testDataGeneration::executionPlan::planTestDataGenera let viewQuery = meta::relational::functions::pureToSqlQuery::processRelationalMappingSpecification($view, [], '', true, -1, true, [], $pure2SqlState, noDebug(), $extensions).select; let viewQueryWithPKs = $viewQuery->recursiveAddPksWithMilestoning($table, $config, $extensions); let relatedAlias = ^TableAlias(name = $view.name, relationalElement=$viewQueryWithPKs); - + let driverSelect = ^RelationDataSelectSqlQuery( relation = $table, columnSubset = $table.primaryKey, @@ -1090,7 +1096,7 @@ function meta::relational::testDataGeneration::executionPlan::planTestDataGenera joinType = JoinType.INNER, database = ^Database(name='default'), join = ^Join( - name = 'gen_join', + name = 'gen_join', operation = $table.primaryKey->map(pk | ^DynaFunction(name = 'equal', parameters=[^TableAliasColumn(alias=$driverAlias, column=$pk), ^TableAliasColumn(alias=$rootAlias, column=$pk)]))->meta::relational::functions::pureToSqlQuery::andFilters($extensions)->toOne()->quoteVarPlaceHolderTableAliasColumnsIfNotQuouted()->cast(@Operation) ) )) @@ -1103,11 +1109,11 @@ function meta::relational::testDataGeneration::executionPlan::planTestDataGenera | ^$rootSelect_PreMilestoning(filteringOperation = $rootSelect_PreMilestoning.filteringOperation->concatenate($milestoningFilter)->meta::relational::functions::pureToSqlQuery::andFilters($extensions)) ); - let runtime = ^Runtime(connections=$dbConnection); - let postProcessResult = postProcessSQLQuery($rootSelect, $dbConnection.element->cast(@Database), [], [], $runtime, $exeCtx, $extensions); + let newRuntime = ^Runtime(connectionStores=$runtime.connectionStores->filter(c|$c.connection==$dbConnection)); + let postProcessResult = postProcessSQLQuery($rootSelect, $newRuntime.connectionStores->toOne().element->cast(@Database), [], [], $newRuntime, $exeCtx, $extensions); let relationDataQuery = $postProcessResult.query->cast(@RelationDataSelectSqlQuery); - + let resultType = ^RelationResultType ( relationName = $relationDataQuery.relation.name, @@ -1132,17 +1138,17 @@ function meta::relational::testDataGeneration::executionPlan::planTestDataGenera resultSizeRange = $finalNode.resultSizeRange, executionNodes = $finalNode ); - let childNodes = $relationTree.nestedViewTree.children->at(0)->planTestDataGenerationStartingFromNode($varName, $runtime, $exeCtx, $dbConnection, $relationColumnMap, $currentIndices, $config, $extensions); + let childNodes = $relationTree.nestedViewTree.children->at(0)->planTestDataGenerationStartingFromNode($varName, $newRuntime, $exeCtx, $dbConnection, $relationColumnMap, $currentIndices, $config, $extensions); $thisNode->concatenate($childNodes);, | $errorNodes ); if($initialNodes->exists(x | $x->instanceOf(ErrorExecutionNode)), | $initialNodes, - | let tableOldToNew = $initialNodes->filter(x | $x->instanceOf(AllocationExecutionNode) + | let tableOldToNew = $initialNodes->filter(x | $x->instanceOf(AllocationExecutionNode) && $x.resultType->instanceOf(RelationResultType) && $x.resultType->cast(@RelationResultType).relationType == RelationType.TABLE)->cast(@AllocationExecutionNode) - ->map(x | pair(^RelationPointer(name=$x.resultType->cast(@RelationResultType).relationName, schemaName=$x.resultType->cast(@RelationResultType).schemaName, database=$x.resultType->cast(@RelationResultType).database), + ->map(x | pair(^RelationPointer(name=$x.resultType->cast(@RelationResultType).relationName, schemaName=$x.resultType->cast(@RelationResultType).schemaName, database=$x.resultType->cast(@RelationResultType).database), ^SelectSQLQuery(data=^RootJoinTreeNode(alias=^TableAlias(name='root', relationalElement=^meta::relational::functions::pureToSqlQuery::metamodel::VarSetPlaceHolder(varName=$x.varName)))))); let pure2SqlState = meta::relational::functions::pureToSqlQuery::defaultState(^Mapping(), ^Map>()); let viewQuery = meta::relational::functions::pureToSqlQuery::processRelationalMappingSpecification($relationTree.view, [], '', true, -1, true, [], $pure2SqlState, noDebug(), $extensions); @@ -1161,8 +1167,8 @@ function meta::relational::testDataGeneration::executionPlan::planTestDataGenera toRow = ^Literal(value=20) ); - let runtime = ^Runtime(connections=$dbConnection); - let postProcessResult = postProcessSQLQuery($viewRelationDataQuery, $dbConnection.element->cast(@Database), [], [], $runtime, $exeCtx, $extensions); + let newRuntime = ^Runtime(connectionStores=$runtime.connectionStores->filter(c|$c.connection==$dbConnection)); + let postProcessResult = postProcessSQLQuery($viewRelationDataQuery, $newRuntime.connectionStores->toOne().element->cast(@Database), [], [], $newRuntime, $exeCtx, $extensions); let relationDataQuery = $postProcessResult.query->cast(@RelationDataSelectSqlQuery); let resultType = ^RelationResultType @@ -1182,7 +1188,7 @@ function meta::relational::testDataGeneration::executionPlan::planTestDataGenera | ^SequenceExecutionNode(resultType = $relationalNode.resultType, executionNodes = $nodes, supportFunctions = $postProcessResult.templateFunctions), | $relationalNode ); - + let varName = 'res_' + $indices->map(x | $x->toString())->joinStrings('_'); let thisNode = ^meta::pure::executionPlan::AllocationExecutionNode ( @@ -1218,9 +1224,9 @@ function <> meta::relational::testDataGeneration::executionPla | $childSQL_PreMilestoning, | ^$childSQL_PreMilestoning(filteringOperation = $childSQL_PreMilestoning.filteringOperation->concatenate($milestoningFilter)->meta::relational::functions::pureToSqlQuery::andFilters($extensions)) ); - - let runtime = ^Runtime(connections=$dbConnection); - let postProcessResult = postProcessSQLQuery($childSQL, $dbConnection.element->cast(@Database), [], [], $runtime, $exeCtx, $extensions); + + let newRuntime = ^Runtime(connectionStores=$runtime.connectionStores->filter(c|$c.connection==$dbConnection)); + let postProcessResult = postProcessSQLQuery($childSQL, $newRuntime.connectionStores->toOne().element->cast(@Database), [], [], $newRuntime, $exeCtx, $extensions); let relationDataQuery = $postProcessResult.query->cast(@RelationDataSelectSqlQuery); let resultType = ^RelationResultType diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/testDataGeneration/tests/model.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/testDataGeneration/tests/model.pure index 88eb3f8ae63..b09c9b1cc0a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/testDataGeneration/tests/model.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/testDataGeneration/tests/model.pure @@ -21,7 +21,9 @@ import meta::relational::functions::toDDL::*; import meta::relational::metamodel::*; import meta::relational::runtime::*; +import meta::external::store::relational::runtime::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::pure::lineage::scanTables::*; import meta::relational::tests::model::simple::*; import meta::relational::testDataGeneration::*; @@ -44,7 +46,7 @@ Association meta::relational::testDataGeneration::tests::model::Student_School function meta::relational::testDataGeneration::tests::model::setUp():Runtime[1] { - let connection = meta::relational::tests::testRuntime(meta::relational::tests::milestoning::db).connections->toOne()->cast(@TestDatabaseConnection); + let connection = meta::external::store::relational::tests::testRuntime(meta::relational::testDataGeneration::tests::model::db).connectionStores.connection->toOne()->cast(@TestDatabaseConnection); executeInDb('Drop table if exists StudentTable;', $connection); executeInDb('Create Table StudentTable(id VARCHAR(60), name VARCHAR(60), school_id VARCHAR(60));', $connection); executeInDb('insert into StudentTable(id, name, school_id) values (\'1\', \'SURAJ\', \'sc1\');', $connection); @@ -57,7 +59,7 @@ function meta::relational::testDataGeneration::tests::model::setUp():Runtime[1] executeInDb('insert into SchoolTable(id, name) values (\'sc3\', \'school3\');', $connection); executeInDb('insert into SchoolTable(id, name) values (\'sc4\', \'school4\');', $connection); - ^Runtime(connections=$connection); + meta::external::store::relational::tests::testRuntime(meta::relational::testDataGeneration::tests::model::db); } ###Relational @@ -102,7 +104,7 @@ Database meta::relational::testDataGeneration::tests::model::db ###Mapping import meta::relational::testDataGeneration::tests::model::*; Mapping meta::relational::testDataGeneration::tests::model::VeiwOnViewMapping -( +( meta::relational::testDataGeneration::tests::model::Student_School: Relational { AssociationMapping @@ -128,7 +130,7 @@ Mapping meta::relational::testDataGeneration::tests::model::VeiwOnViewMapping ) Mapping meta::relational::testDataGeneration::tests::model::VeiwOnViewonViewMapping -( +( meta::relational::testDataGeneration::tests::model::Student_School: Relational { AssociationMapping diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/testDataGeneration/tests/testDataGeneration.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/testDataGeneration/tests/testDataGeneration.pure index 78d228977b0..1b2cfa2a076 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/testDataGeneration/tests/testDataGeneration.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/testDataGeneration/tests/testDataGeneration.pure @@ -22,7 +22,9 @@ import meta::relational::testDataGeneration::tests::*; import meta::relational::mapping::*; import meta::relational::functions::toDDL::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::lineage::scanTables::*; import meta::relational::tests::model::simple::*; @@ -35,7 +37,7 @@ function <> meta::relational::testDataGeneratio let query = {|meta::relational::tests::model::inheritance::Person.all()->project([f|'constant'], ['col'])}; let mapping = meta::relational::tests::mapping::inheritance::relational::inheritanceMappingDB; let db = meta::relational::tests::mapping::inheritance::myDB; - let runtime = meta::relational::tests::testRuntime($db); + let runtime = meta::external::store::relational::tests::testRuntime($db); meta::relational::tests::mapping::inheritance::createTablesAndFillDb(); let tableRowIdentifiers = createTableRowIdentifiers($db, 'default', 'Person', createRowIdentifier(['name'], ['Atul Anand'])); @@ -61,7 +63,7 @@ function <> meta::relational::testDataGeneratio let query = {|meta::relational::tests::model::inheritance::Person.all()->project([f|$f.name], ['col'])}; let mapping = meta::relational::tests::mapping::inheritance::relational::inheritanceMappingDB; let db = meta::relational::tests::mapping::inheritance::myDB; - let runtime = meta::relational::tests::testRuntime($db); + let runtime = meta::external::store::relational::tests::testRuntime($db); meta::relational::tests::mapping::inheritance::createTablesAndFillDb(); let tableRowIdentifiers = createTableRowIdentifiers($db, 'default', 'Person', createRowIdentifier(['name'], ['Atul Anand'])); @@ -88,7 +90,7 @@ function <> meta::relational::testDataGeneratio let query = {|meta::relational::tests::model::inheritance::Person.all()->project([f|$f.name, f|$f.bicycles.id], ['col1', 'col2'])}; let mapping = meta::relational::tests::mapping::inheritance::relational::inheritanceMappingDB; let db = meta::relational::tests::mapping::inheritance::myDB; - let runtime = meta::relational::tests::testRuntime($db); + let runtime = meta::external::store::relational::tests::testRuntime($db); meta::relational::tests::mapping::inheritance::createTablesAndFillDb(); let tableRowIdentifiers = createTableRowIdentifiers($db, 'default', 'Person', createRowIdentifier(['name'], ['Atul Anand'])); @@ -127,7 +129,7 @@ function <> meta::relational::testDataGeneratio let query = {|meta::relational::tests::model::inheritance::Person.all()->project([f|$f.name, f|$f.bicycles.id], ['col1', 'col2'])}; let mapping = meta::relational::tests::mapping::inheritance::relational::inheritanceMappingDB; let db = meta::relational::tests::mapping::inheritance::myDB; - let runtime = meta::relational::tests::testRuntime($db); + let runtime = meta::external::store::relational::tests::testRuntime($db); meta::relational::tests::mapping::inheritance::createTablesAndFillDb(); let tableRowIdentifiers = createTableRowIdentifiers($db, 'default', 'Person', [createRowIdentifier(['name'], ['Atul Anand']), createRowIdentifier(['ID'], ['1']) ]); @@ -167,7 +169,7 @@ function <> meta::relational::testDataGeneratio let query = {|meta::relational::tests::model::inheritance::Person.all()->project([f|$f.name], ['col'])}; let mapping = meta::relational::tests::mapping::inheritance::relational::inheritanceMappingDB; let db = meta::relational::tests::mapping::inheritance::myDB; - let runtime = meta::relational::tests::testRuntime($db); + let runtime = meta::external::store::relational::tests::testRuntime($db); meta::relational::tests::mapping::inheritance::createTablesAndFillDb(); let tableRowIdentifiers = createTableRowIdentifiers($db, 'default', 'Person', createRowIdentifier(['name'], ['No Name'])); @@ -192,7 +194,7 @@ function <> meta::relational::testDataGeneratio let query = {|meta::relational::tests::model::inheritance::Person.all()->project([f|$f.name, f|$f.vehicles.description], ['col1', 'col2'])}; let mapping = meta::relational::tests::mapping::inheritance::relational::inheritanceMappingDB; let db = meta::relational::tests::mapping::inheritance::myDB; - let runtime = meta::relational::tests::testRuntime($db); + let runtime = meta::external::store::relational::tests::testRuntime($db); meta::relational::tests::mapping::inheritance::createTablesAndFillDb(); let tableRowIdentifiers = createTableRowIdentifiers($db, 'default', 'Person', [createRowIdentifier(['name'], ['Atul Anand']), createRowIdentifier(['ID'], ['1']) ]); @@ -251,7 +253,7 @@ function <> meta::relational::testDataGeneratio ['Person','Engine Type','Bicycle Person'])}; let mapping = meta::relational::tests::mapping::inheritance::relational::inheritanceMappingDB; let db = meta::relational::tests::mapping::inheritance::myDB; - let runtime = meta::relational::tests::testRuntime($db); + let runtime = meta::external::store::relational::tests::testRuntime($db); meta::relational::tests::mapping::inheritance::createTablesAndFillDb(); let tableRowIdentifiers = createTableRowIdentifiers($db, 'default', 'Person', [createRowIdentifier(['name'], ['Atul Anand']), createRowIdentifier(['ID'], ['1']) ]); @@ -313,7 +315,7 @@ function <> meta::relational::testDataGeneratio let query = {|Trade.all()->project([t|$t.product.name, t|$t.product->toOne().synonymByType(ProductSynonymType.CUSIP).name],['prodName', 'synName'])}; let mapping = meta::relational::tests::simpleRelationalMapping; let db = meta::relational::tests::db; - let runtime = meta::relational::tests::testRuntime($db); + let runtime = meta::external::store::relational::tests::testRuntime($db); meta::relational::tests::createTablesAndFillDb(); let tableRowIdentifiers = createTableRowIdentifiers($db, 'default', 'tradeTable', [createRowIdentifier(['prodId'], [2]), createRowIdentifier(['tradeDate'], [%2014-12-04]) ]); @@ -381,7 +383,7 @@ function <> meta::relational::testDataGeneratio let query = {|Person.all()->project([t|$t.name, t|$t.manager.name, t|$t.manager.manager.name],['1', '2', '3'])}; let mapping = meta::relational::tests::simpleRelationalMapping; let db = meta::relational::tests::db; - let runtime = meta::relational::tests::testRuntime($db); + let runtime = meta::external::store::relational::tests::testRuntime($db); meta::relational::tests::createTablesAndFillDb(); let tableRowIdentifiers = createTableRowIdentifiers($db, 'default', 'personTable', [createRowIdentifier(['ID'], [1]), createRowIdentifier(['ID'], 5)]); @@ -425,7 +427,7 @@ function <> meta::relational::testDataGeneratio let query = {|Firm.all()->project([p|$p.legalName, p|$p.employees.lastName], ['Firm','Employee'])}; let mapping = meta::relational::tests::mapping::union::unionMappingWithSameJoinInPropertyInBothUnions; let db = meta::relational::tests::mapping::union::myDB; - let runtime = meta::relational::tests::testRuntime($db); + let runtime = meta::external::store::relational::tests::testRuntime($db); meta::relational::tests::mapping::union::createTablesAndFillDb(); let tableRowIdentifiers = [ @@ -499,7 +501,7 @@ function <> meta::relational::testDataGeneratio let query = {|Firm.all()->project([p|$p.legalName, p|$p.bridge.employees.lastName], ['Firm','Employee'])}; let mapping = meta::relational::tests::mapping::union::unionMappingWithEmbeddedProperty2; let db = meta::relational::tests::mapping::union::myDB; - let runtime = meta::relational::tests::testRuntime($db); + let runtime = meta::external::store::relational::tests::testRuntime($db); meta::relational::tests::mapping::union::createTablesAndFillDb(); let tableRowIdentifiers = [ @@ -580,7 +582,7 @@ function <> meta::relational::testDataGeneratio let query = {|Person.all()->project([p|$p.lastName, p|$p.firm.legalName, p|$p.firm.employees.lastName, p|$p.address.name], ['Person','Firm','Colleague','Employee'])}; let mapping = meta::relational::tests::mapping::union::unionToUnionMapping; let db = meta::relational::tests::mapping::union::myDB; - let runtime = meta::relational::tests::testRuntime($db); + let runtime = meta::external::store::relational::tests::testRuntime($db); meta::relational::tests::mapping::union::createTablesAndFillDb(); let tableRowIdentifiers = [ @@ -633,7 +635,7 @@ function <> meta::relational::testDataGeneratio let query = {|OrderPnl.all()->project(#/OrderPnl/pnl#)}; let mapping = meta::relational::tests::simpleRelationalMapping; let db = meta::relational::tests::db; - let runtime = meta::relational::tests::testRuntime($db); + let runtime = meta::external::store::relational::tests::testRuntime($db); meta::relational::tests::createTablesAndFillDb(); let tableRowIdentifiers = [ @@ -679,7 +681,7 @@ function <> meta::relational::testDataGeneratio let query = {|OrderPnl.all()->project([#/OrderPnl/pnl#, #/OrderPnl/order/settlementDateTime#])}; let mapping = meta::relational::tests::simpleRelationalMapping; let db = meta::relational::tests::db; - let runtime = meta::relational::tests::testRuntime($db); + let runtime = meta::external::store::relational::tests::testRuntime($db); meta::relational::tests::createTablesAndFillDb(); let tableRowIdentifiers = [ @@ -726,7 +728,7 @@ function <> meta::relational::testDataGeneratio let query = {|Order.all()->project([o|$o.id, o|$o.pnl], ['ID', 'PNL'])}; let mapping = meta::relational::tests::simpleRelationalMapping; let db = meta::relational::tests::db; - let runtime = meta::relational::tests::testRuntime($db); + let runtime = meta::external::store::relational::tests::testRuntime($db); meta::relational::tests::createTablesAndFillDb(); let tableRowIdentifiers = [ @@ -776,7 +778,7 @@ function <> meta::relational::testDataGeneratio let query = {|OrderPnl.all()->project([#/OrderPnl/pnl#, #/OrderPnl/order/settlementDateTime#])}; let mapping = meta::relational::tests::projection::view::unionOnViewOnViewMapping; let db = meta::relational::tests::db; - let runtime = meta::relational::tests::testRuntime($db); + let runtime = meta::external::store::relational::tests::testRuntime($db); meta::relational::tests::createTablesAndFillDb(); let tableRowIdentifiers = [ @@ -822,7 +824,7 @@ function <> meta::relational::testDataGeneratio let query = {|Order.all()->project([o|$o.id, o|$o.pnlContact.firm.legalName], ['ID', 'PNL'])}; let mapping = meta::relational::tests::MappingWithInnerJoinAndEmbeddedMapping; let db = meta::relational::tests::db; - let runtime = meta::relational::tests::testRuntime($db); + let runtime = meta::external::store::relational::tests::testRuntime($db); meta::relational::tests::createTablesAndFillDb(); let tableRowIdentifiers = [ @@ -875,7 +877,7 @@ function <> meta::relational::testDataGeneratio let query = {|Person.all()->project([p|$p.lastName, p|$p.firm.legalName, p|$p.firm.employees.lastName, p|$p.address.name], ['Person','Firm','Colleague','Employee'])}; let mapping = meta::relational::tests::mapping::union::unionToUnionMapping; let db = meta::relational::tests::mapping::union::myDB; - let runtime = ^Runtime(connections = ^TestDatabaseConnection(element=$db, type=DatabaseType.H2)); + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element=$db, connection=^TestDatabaseConnection(type=DatabaseType.H2))); meta::relational::tests::mapping::union::createTablesAndFillDb(); let tableRowIdentifiers = [ @@ -928,7 +930,7 @@ function <> meta::relational::testDataGeneratio let query = {|meta::relational::tests::milestoning::Product.all(%2015-10-16)->project([p|$p.name, p|$p.classificationTypeStr],['name','classificationType'])}; let mapping = meta::relational::tests::milestoning::milestoningmap; let db = meta::relational::tests::milestoning::db; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); meta::relational::testDataGeneration::tests::initDatabase(); let tableRowIdentifiers = [ @@ -960,7 +962,7 @@ function <> meta::relational::testDataGeneratio let query = {|meta::relational::tests::milestoning::Trader.all(%2015-10-16)->project([t|$t.kerberos, t|$t.location(%9999-12-28).place], ['A', 'B'])}; let mapping = meta::relational::tests::milestoning::milestoningmap; let db = meta::relational::tests::milestoning::db; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); meta::relational::testDataGeneration::tests::initDatabase(); let tableRowIdentifiers = [ @@ -989,7 +991,7 @@ function <> meta::relational::testDataGeneratio let query = {|meta::relational::tests::milestoning::Product.all(%2015-10-16)->project([p|$p.name, p|$p.classificationTypeStr],['name','classificationType'])}; let mapping = meta::relational::tests::milestoning::businessSnapshotMilestoningMap; let db = meta::relational::tests::milestoning::db; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); meta::relational::testDataGeneration::tests::initDatabase(); let tableRowIdentifiers = [ @@ -1023,7 +1025,7 @@ function <> meta::relational::testDataGeneratio let query = {|meta::relational::tests::milestoning::Product.all(%2015-10-16)->project([p|$p.name, p|$p.classificationTypeStr],['name','classificationType'])}; let mapping = meta::relational::tests::milestoning::milestoningmap; let db = meta::relational::tests::milestoning::db; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); meta::relational::testDataGeneration::tests::initDatabase(); let tableRowIdentifiers = [ @@ -1071,7 +1073,7 @@ function <> meta::relational::testDataGeneratio let query = {|meta::relational::tests::milestoning::Trader.all(%2015-10-16)->project([t|$t.kerberos, t|$t.location(%9999-12-28).place], ['A', 'B'])}; let mapping = meta::relational::tests::milestoning::milestoningmap; let db = meta::relational::tests::milestoning::db; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); meta::relational::testDataGeneration::tests::initDatabase(); let tableRowIdentifiers = [ @@ -1100,7 +1102,7 @@ function <> meta::relational::testDataGeneratio let query = {|meta::relational::tests::milestoning::Product.all(%2015-10-16)->project([p|$p.name, p|$p.classificationTypeStr],['name','classificationType'])}; let mapping = meta::relational::tests::milestoning::businessSnapshotMilestoningMap; let db = meta::relational::tests::milestoning::db; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); meta::relational::testDataGeneration::tests::initDatabase(); let tableRowIdentifiers = [ @@ -1131,7 +1133,7 @@ function <> meta::relational::testDataGeneratio { let query = {|tableToTDS(tableReference(meta::relational::tests::db,'default','personTable'))}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let db = meta::relational::tests::db; meta::relational::tests::createTablesAndFillDb(); @@ -1163,7 +1165,7 @@ function <> meta::relational::testDataGeneratio ->project([col(r:TDSRow[1]|$r.getString('LASTNAME'), 'firstName')]) ->extend([col({r:TDSRow[1]|'Hello'}, 'hello')])}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let db = meta::relational::tests::db; meta::relational::tests::createTablesAndFillDb(); @@ -1193,7 +1195,7 @@ function <> meta::relational::testDataGeneratio let query = {|tableToTDS(tableReference(meta::relational::tests::db,'default','personTable')) ->groupBy(['FIRSTNAME'], agg('cnt', x|$x.getString('LASTNAME'), y| $y->count()))}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let db = meta::relational::tests::db; meta::relational::tests::createTablesAndFillDb(); @@ -1225,7 +1227,7 @@ function <> meta::relational::testDataGeneratio ->concatenate(tableToTDS(tableReference(meta::relational::tests::dbInc,'default','firmTable'))->project([col(r:TDSRow[1]|$r.getString('LEGALNAME'), 'name')]))}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let db = meta::relational::tests::dbInc; meta::relational::tests::createTablesAndFillDb(); @@ -1272,7 +1274,7 @@ function <> meta::relational::testDataGeneratio ->join(tableToTDS(tableReference(meta::relational::tests::db,'default','personTable')), JoinType.INNER, {a,b|$a.getInteger('personID') == $b.getInteger('ID');})}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let db = meta::relational::tests::db; meta::relational::tests::createTablesAndFillDb(); @@ -1308,7 +1310,7 @@ function <> meta::relational::testDataGeneratio ->join(tableToTDS(tableReference(meta::relational::tests::db,'default','addressTable')), JoinType.LEFT_OUTER, {a,b|$a.getInteger('ceoID') == $b.getInteger('ID');}) ->join(tableToTDS(tableReference(meta::relational::tests::db,'default','locationTable'))->project([col(r:TDSRow[1]|$r.getInteger('PERSONID'), 'locationPersonID')]), JoinType.LEFT_OUTER, {a,b|$a.getInteger('personID') == $b.getInteger('locationPersonID');})}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let db = meta::relational::tests::db; meta::relational::tests::createTablesAndFillDb(); @@ -1360,7 +1362,7 @@ function <> meta::relational::testDataGeneratio ->join(tableToTDS(tableReference(meta::relational::tests::db,'default','addressTable')), JoinType.INNER, {a,b|$a.getInteger('eID') == $b.getInteger('ID');})}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let db = meta::relational::tests::dbInc; meta::relational::tests::createTablesAndFillDb(); @@ -1419,7 +1421,7 @@ function <> meta::relational::testDataGeneratio ->olapGroupBy('FIRSTNAME',asc('LASTNAME'),func('cnt',y|$y->sum()),'testCol1')}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let db = meta::relational::tests::dbInc; meta::relational::tests::createTablesAndFillDb(); @@ -1460,7 +1462,7 @@ function <> meta::relational::testDataGeneratio ->restrict(['FIRST NAME', 'LAST NAME'])}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let db = meta::relational::tests::dbInc; meta::relational::tests::createTablesAndFillDb(); @@ -1528,7 +1530,8 @@ function <> meta::relational::testDataGeneratio function <> meta::relational::testDataGeneration::tests::initDatabase():Runtime[1] { - let connection = meta::relational::tests::testRuntime(meta::relational::tests::milestoning::db).connections->toOne()->cast(@TestDatabaseConnection); + let connectionStore = meta::external::store::relational::tests::testRuntime(meta::relational::tests::milestoning::db).connectionStores->toOne(); + let connection = $connectionStore.connection->cast(@TestDatabaseConnection); executeInDb('drop table if exists OrderTable;',$connection); executeInDb('create table OrderTable (orderDate DATE, id Integer, prodFk Integer)',$connection); @@ -1794,7 +1797,7 @@ function <> meta::relational::testDataGeneration::tests::initD executeInDb('insert into BiTemporalProductTable_Out_Thru_Inclusive values(2, \'def3\', \'2018-05-07\', \'9999-12-31\', \'2018-05-06\', \'9999-12-31\');', $connection); executeInDb('insert into BiTemporalProductTable_Out_Thru_Inclusive values(3, \'ghi1\', \'2018-05-09\', \'9999-12-31\', \'2018-05-08\', \'9999-12-31\');', $connection); - ^Runtime(connections=$connection); + ^Runtime(connectionStores=$connectionStore); } function <> meta::relational::testDataGeneration::tests::assertSqlEquals(s1 : String[1], s2 : String[1]):Boolean[1] @@ -1811,7 +1814,7 @@ function meta::relational::testDataGeneration::tests::assertTestData(s1 : String function <> meta::relational::testDataGeneration::tests::loadAndTestExecution(query: FunctionDefinition[1], parametersValues:Any[*], mapping: meta::pure::mapping::Mapping[1], runtime: Runtime[1], data:String[1], db: Database[1]):Boolean[1] { - let testConnection = $runtime.connections->toOne()->cast(@TestDatabaseConnection); + let testConnection = $runtime.connectionStores.connection->toOne()->cast(@TestDatabaseConnection); let setUpSQLs = meta::alloy::service::execution::setUpDataSQLs($data, $db); $setUpSQLs->map(sql | executeInDb($sql, $testConnection)); let plan = executionPlan($query, $mapping, $runtime, meta::relational::extension::relationalExtensions()); @@ -1832,7 +1835,9 @@ import meta::relational::testDataGeneration::tests::*; import meta::relational::mapping::*; import meta::relational::functions::toDDL::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::lineage::scanTables::*; import meta::relational::tests::model::simple::*; @@ -1844,7 +1849,7 @@ function <> {serverVersion.start='V1_5_0'} meta let query = {|meta::relational::tests::model::inheritance::Person.all()->project([f|'constant'], ['col'])}; let mapping = meta::relational::tests::mapping::inheritance::relational::inheritanceMappingDB; let db = meta::relational::tests::mapping::inheritance::myDB; - let runtime = ^Runtime(connections = ^TestDatabaseConnection(element=$db, type=DatabaseType.H2)); + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element=$db, connection=^TestDatabaseConnection(type=DatabaseType.H2))); meta::relational::tests::mapping::inheritance::createTablesAndFillDb(); let tableRowIdentifiers = createTableRowIdentifiers($db, 'default', 'Person', createRowIdentifier(['name'], ['Atul Anand'])); @@ -1891,7 +1896,7 @@ function <> {serverVersion.start='V1_5_0'} meta let query = {|meta::relational::tests::model::inheritance::Person.all()->project([f|$f.name], ['col'])}; let mapping = meta::relational::tests::mapping::inheritance::relational::inheritanceMappingDB; let db = meta::relational::tests::mapping::inheritance::myDB; - let runtime = ^Runtime(connections = ^TestDatabaseConnection(element=$db, type=DatabaseType.H2)); + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element=$db, connection=^TestDatabaseConnection(type=DatabaseType.H2))); meta::relational::tests::mapping::inheritance::createTablesAndFillDb(); let tableRowIdentifiers = createTableRowIdentifiers($db, 'default', 'Person', createRowIdentifier(['name'], ['Atul Anand'])); @@ -1912,7 +1917,7 @@ function <> {serverVersion.start='V1_5_0'} meta let query = {|meta::relational::tests::model::inheritance::Person.all()->project([f|$f.name, f|$f.bicycles.id], ['col1', 'col2'])}; let mapping = meta::relational::tests::mapping::inheritance::relational::inheritanceMappingDB; let db = meta::relational::tests::mapping::inheritance::myDB; - let runtime = ^Runtime(connections = ^TestDatabaseConnection(element=$db, type=DatabaseType.H2)); + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element=$db, connection=^TestDatabaseConnection(type=DatabaseType.H2))); meta::relational::tests::mapping::inheritance::createTablesAndFillDb(); let tableRowIdentifiers = createTableRowIdentifiers($db, 'default', 'Person', createRowIdentifier(['name'], ['Atul Anand'])); @@ -1938,7 +1943,7 @@ function <> {serverVersion.start='V1_5_0'} meta let query = {|meta::relational::tests::model::inheritance::Person.all()->project([f|$f.name, f|$f.bicycles.id], ['col1', 'col2'])}; let mapping = meta::relational::tests::mapping::inheritance::relational::inheritanceMappingDB; let db = meta::relational::tests::mapping::inheritance::myDB; - let runtime = ^Runtime(connections = ^TestDatabaseConnection(element=$db, type=DatabaseType.H2)); + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element=$db, connection=^TestDatabaseConnection(type=DatabaseType.H2))); meta::relational::tests::mapping::inheritance::createTablesAndFillDb(); let tableRowIdentifiers = createTableRowIdentifiers($db, 'default', 'Person', [createRowIdentifier(['name'], ['Atul Anand']), createRowIdentifier(['ID'], ['1']) ]); @@ -1966,7 +1971,7 @@ function <> {serverVersion.start='V1_5_0'} meta let query = {|meta::relational::tests::model::inheritance::Person.all()->project([f|$f.name], ['col'])}; let mapping = meta::relational::tests::mapping::inheritance::relational::inheritanceMappingDB; let db = meta::relational::tests::mapping::inheritance::myDB; - let runtime = ^Runtime(connections = ^TestDatabaseConnection(element=$db, type=DatabaseType.H2)); + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element=$db, connection=^TestDatabaseConnection(type=DatabaseType.H2))); meta::relational::tests::mapping::inheritance::createTablesAndFillDb(); let tableRowIdentifiers = createTableRowIdentifiers($db, 'default', 'Person', createRowIdentifier(['name'], ['No Name'])); @@ -1987,7 +1992,7 @@ function <> {serverVersion.start='V1_5_0'} meta let query = {|meta::relational::tests::model::inheritance::Person.all()->project([f|$f.name, f|$f.vehicles.description], ['col1', 'col2'])}; let mapping = meta::relational::tests::mapping::inheritance::relational::inheritanceMappingDB; let db = meta::relational::tests::mapping::inheritance::myDB; - let runtime = ^Runtime(connections = ^TestDatabaseConnection(element=$db, type=DatabaseType.H2)); + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element=$db, connection=^TestDatabaseConnection(type=DatabaseType.H2))); meta::relational::tests::mapping::inheritance::createTablesAndFillDb(); let tableRowIdentifiers = createTableRowIdentifiers($db, 'default', 'Person', [createRowIdentifier(['name'], ['Atul Anand']), createRowIdentifier(['ID'], ['1']) ]); @@ -2025,7 +2030,7 @@ function <> {serverVersion.start='V1_5_0'} meta ['Person','Engine Type','Bicycle Person'])}; let mapping = meta::relational::tests::mapping::inheritance::relational::inheritanceMappingDB; let db = meta::relational::tests::mapping::inheritance::myDB; - let runtime = ^Runtime(connections = ^TestDatabaseConnection(element=$db, type=DatabaseType.H2)); + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element=$db, connection=^TestDatabaseConnection(type=DatabaseType.H2))); meta::relational::tests::mapping::inheritance::createTablesAndFillDb(); let tableRowIdentifiers = createTableRowIdentifiers($db, 'default', 'Person', [createRowIdentifier(['name'], ['Atul Anand']), createRowIdentifier(['ID'], ['1']) ]); @@ -2060,7 +2065,7 @@ function <> {serverVersion.start='V1_5_0'} meta let query = {|Trade.all()->project([t|$t.product.name, t|$t.product->toOne().synonymByType(ProductSynonymType.CUSIP).name],['prodName', 'synName'])}; let mapping = meta::relational::tests::simpleRelationalMapping; let db = meta::relational::tests::db; - let runtime = ^Runtime(connections = ^TestDatabaseConnection(element=$db, type=DatabaseType.H2)); + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element=$db, connection=^TestDatabaseConnection(type=DatabaseType.H2))); meta::relational::tests::createTablesAndFillDb(); let tableRowIdentifiers = createTableRowIdentifiers($db, 'default', 'tradeTable', [createRowIdentifier(['prodId'], [2]), createRowIdentifier(['tradeDate'], [%2014-12-04]) ]); @@ -2100,7 +2105,7 @@ function <> {serverVersion.start='V1_5_0'} meta let query = {|Person.all()->project([t|$t.name, t|$t.manager.name, t|$t.manager.manager.name],['1', '2', '3'])}; let mapping = meta::relational::tests::simpleRelationalMapping; let db = meta::relational::tests::db; - let runtime = ^Runtime(connections = ^TestDatabaseConnection(element=$db, type=DatabaseType.H2)); + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element=$db, connection=^TestDatabaseConnection(type=DatabaseType.H2))); meta::relational::tests::createTablesAndFillDb(); let tableRowIdentifiers = createTableRowIdentifiers($db, 'default', 'personTable', [createRowIdentifier(['ID'], [1]), createRowIdentifier(['ID'], 5)]); @@ -2124,7 +2129,7 @@ function <> {serverVersion.start='V1_5_0'} meta let query = {|Person.all()->project([p|$p.lastName, p|$p.firm.legalName, p|$p.firm.employees.lastName, p|$p.address.name], ['Person','Firm','Colleague','Employee'])}; let mapping = meta::relational::tests::mapping::union::unionToUnionMapping; let db = meta::relational::tests::mapping::union::myDB; - let runtime = ^Runtime(connections = ^TestDatabaseConnection(element=$db, type=DatabaseType.H2)); + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element=$db, connection=^TestDatabaseConnection(type=DatabaseType.H2))); meta::relational::tests::mapping::union::createTablesAndFillDb(); let tableRowIdentifiers = [ @@ -2176,7 +2181,7 @@ function <> {serverVersion.start='V1_5_0'} meta let query = {|Order.all()->project([o|$o.id, o|$o.pnlContact.firm.legalName], ['ID', 'PNL'])}; let mapping = meta::relational::tests::MappingWithInnerJoinAndEmbeddedMapping; let db = meta::relational::tests::db; - let runtime = ^Runtime(connections = ^TestDatabaseConnection(element=$db, type=DatabaseType.H2)); + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element=$db, connection=^TestDatabaseConnection(type=DatabaseType.H2))); meta::relational::tests::createTablesAndFillDb(); let tableRowIdentifiers = [ @@ -2226,7 +2231,7 @@ function <> {serverVersion.start='V1_5_0'} meta let query = {|OrderPnl.all()->project([#/OrderPnl/pnl#, #/OrderPnl/order/settlementDateTime#])}; let mapping = meta::relational::tests::simpleRelationalMapping; let db = meta::relational::tests::db; - let runtime = ^Runtime(connections = ^TestDatabaseConnection(element=$db, type=DatabaseType.H2)); + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element=$db, connection=^TestDatabaseConnection(type=DatabaseType.H2))); meta::relational::tests::createTablesAndFillDb(); let tableRowIdentifiers = [ @@ -2271,7 +2276,7 @@ function <> {serverVersion.start='V1_5_0'} meta let query = {|Order.all()->project([o|$o.id, o|$o.pnl], ['ID', 'PNL'])}; let mapping = meta::relational::tests::simpleRelationalMapping; let db = meta::relational::tests::db; - let runtime = ^Runtime(connections = ^TestDatabaseConnection(element=$db, type=DatabaseType.H2)); + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element=$db, connection=^TestDatabaseConnection(type=DatabaseType.H2))); meta::relational::tests::createTablesAndFillDb(); let tableRowIdentifiers = [ @@ -2315,7 +2320,7 @@ function <> {serverVersion.start='V1_5_0'} meta let query = {|Person.all()->project([p|$p.lastName, p|$p.firm.legalName, p|$p.firm.employees.lastName, p|$p.address.name], ['Person','Firm','Colleague','Employee'])}; let mapping = meta::relational::tests::mapping::union::unionToUnionMapping; let db = meta::relational::tests::mapping::union::myDB; - let runtime = ^Runtime(connections = ^TestDatabaseConnection(element=$db, type=DatabaseType.H2)); + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element=$db, connection=^TestDatabaseConnection(type=DatabaseType.H2))); meta::relational::tests::mapping::union::createTablesAndFillDb(); let tableRowIdentifiers = [ @@ -2367,7 +2372,7 @@ function <> {serverVersion.start='V1_5_0'} meta let query = {|meta::relational::tests::model::inheritance::Person.all()->project([f|$f.name], ['col'])}; let mapping = meta::relational::tests::mapping::inheritance::relational::inheritanceMappingDB; let db = meta::relational::tests::mapping::inheritance::myDB; - let runtime = ^Runtime(connections = ^TestDatabaseConnection(element=$db, type=DatabaseType.H2)); + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element=$db, connection=^TestDatabaseConnection(type=DatabaseType.H2))); meta::relational::tests::mapping::inheritance::createTablesAndFillDb(); let tableRowIdentifiers = []; @@ -2403,7 +2408,7 @@ function <> {serverVersion.start='V1_5_0'} meta let query = {|OrderPnl.all()->project([#/OrderPnl/pnl#, #/OrderPnl/order/settlementDateTime#])}; let mapping = meta::relational::tests::simpleRelationalMapping; let db = meta::relational::tests::db; - let runtime = ^Runtime(connections = ^TestDatabaseConnection(element=$db, type=DatabaseType.H2)); + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element=$db, connection=^TestDatabaseConnection(type=DatabaseType.H2))); meta::relational::tests::createTablesAndFillDb(); meta::alloy::test::mayExecuteAlloyTest({clientVersion, serverVersion, host, port | @@ -2442,7 +2447,7 @@ function <> {serverVersion.start='V1_5_0'} meta let query = {|Order.all()->project([o|$o.id, o|$o.pnlContact.firm.legalName], ['ID', 'PNL'])}; let mapping = meta::relational::tests::MappingWithInnerJoinAndEmbeddedMapping; let db = meta::relational::tests::db; - let runtime = ^Runtime(connections = ^TestDatabaseConnection(element=$db, type=DatabaseType.H2)); + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element=$db, connection=^TestDatabaseConnection(type=DatabaseType.H2))); meta::relational::tests::createTablesAndFillDb(); let tableRowIdentifiers = [ @@ -2484,11 +2489,11 @@ function <> {serverVersion.start='V1_5_0'} meta function <> {serverVersion.start='V1_5_0'} meta::relational::testDataGeneration::tests::alloy::testViewWithGroupByRoot_Alloy():Boolean[1] { - let query = {|AccountPnl.all()->project([o|$o.pnl, o|$o.account.name], ['Pnl', 'Acct'])}; - let mapping = meta::relational::tests::simpleRelationalMapping; - let db = meta::relational::tests::db; - let runtime = ^Runtime(connections = ^TestDatabaseConnection(element=$db, type=DatabaseType.H2)); - meta::relational::tests::createTablesAndFillDb(); + let query = {|AccountPnl.all()->project([o|$o.pnl, o|$o.account.name], ['Pnl', 'Acct'])}; + let mapping = meta::relational::tests::simpleRelationalMapping; + let db = meta::relational::tests::db; + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element=$db, connection=^TestDatabaseConnection(type=DatabaseType.H2))); + meta::relational::tests::createTablesAndFillDb(); meta::alloy::test::mayExecuteAlloyTest({clientVersion, serverVersion, host, port | let result = pathToElement('meta::protocols::pure::' + $clientVersion + '::invocation::execution::testDataGeneration::alloyGenerateTestDataWithDefaultSeedInteractive_FunctionDefinition_1__Mapping_1__Runtime_1__ExecutionContext_$0_1$__Boolean_$0_1$__Any_MANY__String_1__Integer_1__String_1__String_1_')->cast(@Function<{FunctionDefinition[1],meta::pure::mapping::Mapping[1],Runtime[1],ExecutionContext[0..1],Boolean[0..1],Any[*],String[1],Integer[1],String[1]->String[1]}>)->evaluate([list($query), list($mapping), list($runtime), list(^ExecutionContext()), list(false), list([]), list($host), list($port), list($serverVersion)]); @@ -2522,7 +2527,7 @@ function <> {serverVersion.start='V1_5_0'} meta let query = {|Account.all()->project([o|$o.accountPnl.pnl, o|$o.name], ['Pnl', 'Acct'])}; let mapping = meta::relational::tests::simpleRelationalMapping; let db = meta::relational::tests::db; - let runtime = ^Runtime(connections = ^TestDatabaseConnection(element=$db, type=DatabaseType.H2)); + let runtime = ^Runtime(connectionStores= ^ConnectionStore(element=$db, connection=^TestDatabaseConnection(type=DatabaseType.H2))); meta::relational::tests::createTablesAndFillDb(); meta::alloy::test::mayExecuteAlloyTest({clientVersion, serverVersion, host, port | @@ -2557,7 +2562,7 @@ function <> meta::relational::testDataGeneratio let query = {|meta::relational::tests::milestoning::Product.all(%2015-10-16)->project([p|$p.name, p|$p.classificationTypeStr],['name','classificationType'])}; let mapping = meta::relational::tests::milestoning::milestoningmap; let db = meta::relational::tests::milestoning::db; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); meta::relational::testDataGeneration::tests::initDatabase(); let tableRowIdentifiers = [ @@ -2658,7 +2663,7 @@ function <> meta::relational::testDataGeneratio let query = {|meta::relational::tests::milestoning::Trader.all(%2015-10-16)->project([t|$t.kerberos, t|$t.location(%9999-12-28).place], ['A', 'B'])}; let mapping = meta::relational::tests::milestoning::milestoningmap; let db = meta::relational::tests::milestoning::db; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); meta::relational::testDataGeneration::tests::initDatabase(); let tableRowIdentifiers = [ @@ -2758,7 +2763,7 @@ function <> meta::relational::testDataGeneratio let query = {|meta::relational::tests::milestoning::Product.all(%2015-10-16)->project([p|$p.name, p|$p.classificationTypeStr],['name','classificationType'])}; let mapping = meta::relational::tests::milestoning::businessSnapshotMilestoningMap; let db = meta::relational::tests::milestoning::db; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); meta::relational::testDataGeneration::tests::initDatabase(); let tableRowIdentifiers = [ @@ -2858,7 +2863,7 @@ function <> {serverVersion.start='V1_5_0'} meta { let query = {|tableToTDS(tableReference(meta::relational::tests::db,'default','personTable'))}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let db = meta::relational::tests::db; meta::relational::tests::createTablesAndFillDb(); @@ -2885,7 +2890,7 @@ function <> {serverVersion.start='V1_5_0'} meta ->meta::pure::tds::filter({r:TDSRow[1] | $r.getString('firstName') == 'John'}) ->meta::pure::tds::extend([col({r:TDSRow[1]|'Hello'}, 'hello')])}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let db = meta::relational::tests::db; meta::relational::tests::createTablesAndFillDb(); @@ -2907,7 +2912,7 @@ function <> {serverVersion.start='V1_5_0'} meta ->concatenate(tableToTDS(tableReference(meta::relational::tests::dbInc,'default','firmTable'))->project([col(r:TDSRow[1]|$r.getString('LEGALNAME'), 'name')]))}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let db = meta::relational::tests::dbInc; meta::relational::tests::createTablesAndFillDb(); @@ -2950,7 +2955,7 @@ function <> {serverVersion.start='V1_5_0'} meta ->join(tableToTDS(tableReference(meta::relational::tests::db,'default','addressTable')), JoinType.LEFT_OUTER, {a,b|$a.getInteger('ceoID') == $b.getInteger('ID');}) ->join(tableToTDS(tableReference(meta::relational::tests::db,'default','locationTable'))->project([col(r:TDSRow[1]|$r.getInteger('PERSONID'), 'locationPersonID')]), JoinType.LEFT_OUTER, {a,b|$a.getInteger('personID') == $b.getInteger('locationPersonID');})}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let db = meta::relational::tests::db; meta::relational::tests::createTablesAndFillDb(); @@ -2995,7 +3000,7 @@ function <> {serverVersion.start='V1_5_0'} meta ->join(tableToTDS(tableReference(meta::relational::tests::db,'default','addressTable')), JoinType.INNER, {a,b|$a.getInteger('eID') == $b.getInteger('ID');})}; let mapping = meta::relational::tests::simpleRelationalMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let db = meta::relational::tests::dbInc; meta::relational::tests::createTablesAndFillDb(); @@ -3045,7 +3050,7 @@ function <> {serverVersion.start='V1_5_0'} meta ->restrict(['FIRST NAME', 'LAST NAME'])}; let mapping = meta::relational::tests::tds::tabletds::EmptyMapping; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let db = meta::relational::tests::db; meta::relational::tests::createTablesAndFillDb(); @@ -3102,7 +3107,7 @@ function <> {serverVersion.start='V1_5_0'} meta let query = {|OrderPnl.all()->project([o | $o.pnl, o | $o.order.settlementDateTime], ['pnl', 'settlementDateTime'])}; let mapping = meta::relational::tests::simpleRelationalMapping; let db = meta::relational::tests::db; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); meta::relational::tests::createTablesAndFillDb(); meta::alloy::test::mayExecuteAlloyTest({clientVersion, serverVersion, host, port | @@ -3143,7 +3148,7 @@ function <> {serverVersion.start='V1_5_0'} meta let query = {|meta::pure::lineage::scanRelations::test::Party.all()->project([r | $r.identifier.identifier],['id'])->distinct()}; let mapping = meta::pure::lineage::scanRelations::test::MappingWithJoinToSchemaInAnotherView; let db = meta::pure::lineage::scanRelations::test::DB2; - let runtime = meta::relational::tests::testRuntime(); + let runtime = meta::external::store::relational::tests::testRuntime(); let tableRowIdentifiers = [ meta::relational::testDataGeneration::createTableRowIdentifiers($db, 'E', 'Entity', [ diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testContractMoneyScenario.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testContractMoneyScenario.pure index 18a2fe0f01c..0919bc98857 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testContractMoneyScenario.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testContractMoneyScenario.pure @@ -15,7 +15,9 @@ import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::advanced::contractmoneyscenario::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::execute::*; import meta::relational::mapping::*; @@ -86,7 +88,7 @@ function meta::relational::tests::advanced::contractmoneyscenario::createDatabas function meta::relational::tests::advanced::contractmoneyscenario::testRuntime():Runtime[1] { - meta::relational::tests::testRuntime(db); + meta::external::store::relational::tests::testRuntime(db); } function meta::relational::tests::advanced::contractmoneyscenario::createTablesAndFillDb():Boolean[1] @@ -107,7 +109,7 @@ function meta::relational::tests::advanced::contractmoneyscenario::createTablesA executeInDb('insert into Fx (id, Rate, Currency) values (1, 1.1, \'EUR\');', $connection); executeInDb('insert into Fx (id, Rate, Currency) values (2, 1.5, \'EUR\');', $connection); executeInDb('insert into Fx (id, Rate, Currency) values (3, 1.5, \'EUR\');', $connection); - + executeInDb('insert into Currency (contractId, Value) values (1, \'EUR\');', $connection); executeInDb('insert into Currency (contractId, Value) values (2, \'EUR\');', $connection); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testFailures.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testFailures.pure index ac80d91d615..c83c7a3d314 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testFailures.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testFailures.pure @@ -87,7 +87,7 @@ Mapping meta::relational::tests::advanced::failures::moveFilterInOnClause::mappi name : [db]productTable.NAME, synonyms : [db]@Product_Synonym } - + ProductSynonymType: EnumerationMapping SynonymEnum { CUSIP: 'CUSIP', @@ -105,18 +105,18 @@ Mapping meta::relational::tests::advanced::failures::moveFilterInOnClause::mappi { name : [db]productTable.NAME, synonyms : [db]@Product_Synonym - } + } FSynonym : Relational { name : [db]synonymTable.NAME, type : [db]@Synonym_SynonymType - } - + } + FSynonymType : Relational { value : EnumerationMapping SynonymEnum: [db]synonymType.TYPE - } + } ) @@ -125,13 +125,15 @@ import meta::relational::tests::advanced::failures::moveFilterInOnClause::*; import meta::relational::metamodel::*; import meta::pure::profiles::*; import meta::relational::metamodel::execute::*; +import meta::core::runtime::*; import meta::pure::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::functions::toDDL::*; function meta::relational::tests::advanced::failures::moveFilterInOnClause::testRuntime():Runtime[1] { - meta::relational::tests::testRuntime(db); + meta::external::store::relational::tests::testRuntime(db); } function meta::relational::tests::advanced::failures::moveFilterInOnClause::createTablesAndFillDb():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testFilterWithQualifiedProperties.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testFilterWithQualifiedProperties.pure index fdcc1a4bb1c..931873902c1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testFilterWithQualifiedProperties.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testFilterWithQualifiedProperties.pure @@ -16,9 +16,12 @@ import meta::relational::tests::milestoning::*; import meta::relational::functions::asserts::*; import meta::relational::metamodel::execute::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::query::qualifier::advanced::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::model::simple::*; +import meta::core::runtime::*; import meta::pure::runtime::*; @@ -27,7 +30,7 @@ import meta::pure::runtime::*; function meta::relational::tests::query::qualifier::advanced::conditionRightTable(f:Firm[1],s:String[1]):Person[0..1] { $f.employees->filter(e|$e.lastName == $s)->toOne(); - + } function meta::relational::tests::query::qualifier::advanced::conditionRightTableNested(f:Firm[1], s:String[1]):Person[0..1] @@ -38,7 +41,7 @@ function meta::relational::tests::query::qualifier::advanced::conditionRightTabl function meta::relational::tests::query::qualifier::advanced::conditionLeftAndRightTables(f:Firm[1]):Person[1] { $f.employees->filter(e|$e.lastName == $f.legalName)->first()->toOne(); -} +} function meta::relational::tests::query::qualifier::advanced::conditionLeftAndRightTablesNestedDynaFunction(f:Firm[1]):Person[0..1] { @@ -54,14 +57,14 @@ function <> meta::relational::tests::query::qualifier::advanced::proj { let result1 = execute(|Firm.all()->project([p| $p->conditionRightTable('lala').lastName],['c1']) , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result1.values->at(0).rows,5); - assertSameSQL('select "persontable_0".LASTNAME as "c1" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID and "persontable_0".LASTNAME = \'lala\')', $result1); + assertSameSQL('select "persontable_0".LASTNAME as "c1" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID and "persontable_0".LASTNAME = \'lala\')', $result1); } - + function <> meta::relational::tests::query::qualifier::advanced::projectAbstractPropertyWithConditionOnRightTable():Boolean[1] -{ +{ let result2 = execute(|Firm.all()->project([p| $p.employeeByLastName('lala').lastName],['c1']) , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result2.values->at(0).rows,5); - assertSameSQL('select "persontable_0".LASTNAME as "c1" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID and "persontable_0".LASTNAME = \'lala\')', $result2); + assertSameSQL('select "persontable_0".LASTNAME as "c1" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID and "persontable_0".LASTNAME = \'lala\')', $result2); } @@ -69,7 +72,7 @@ function <> meta::relational::tests::query::qualifier::advanced::proj { let result1 = execute(|Firm.all()->project([p| $p.employeeWithAddressName('lala').lastName],['c1']) , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result1.values->at(0).rows,5); - assertSameSQL('select "persontable_0".LASTNAME as "c1" from firmTable as "root" left outer join (select "persontable_1".FIRMID as FIRMID, "persontable_1".LASTNAME as LASTNAME from personTable as "persontable_1" left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "persontable_1".ADDRESSID) where "addresstable_0".NAME = \'lala\') as "persontable_0" on ("root".ID = "persontable_0".FIRMID)', $result1); + assertSameSQL('select "persontable_0".LASTNAME as "c1" from firmTable as "root" left outer join (select "persontable_1".FIRMID as FIRMID, "persontable_1".LASTNAME as LASTNAME from personTable as "persontable_1" left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "persontable_1".ADDRESSID) where "addresstable_0".NAME = \'lala\') as "persontable_0" on ("root".ID = "persontable_0".FIRMID)', $result1); } @@ -77,29 +80,29 @@ function <> meta::relational::tests::query::qualifier::advanced::proj { let result3 = execute(|Firm.all()->project([p| $p->conditionRightTableNested('lala').lastName],['c1']) , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result3.values->at(0).rows,5); - assertSameSQL('select "persontable_0".LASTNAME as "c1" from firmTable as "root" left outer join (select "persontable_1".FIRMID as FIRMID, "persontable_1".LASTNAME as LASTNAME from personTable as "persontable_1" left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "persontable_1".ADDRESSID) where "addresstable_0".NAME = \'lala\') as "persontable_0" on ("root".ID = "persontable_0".FIRMID)', $result3); + assertSameSQL('select "persontable_0".LASTNAME as "c1" from firmTable as "root" left outer join (select "persontable_1".FIRMID as FIRMID, "persontable_1".LASTNAME as LASTNAME from personTable as "persontable_1" left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "persontable_1".ADDRESSID) where "addresstable_0".NAME = \'lala\') as "persontable_0" on ("root".ID = "persontable_0".FIRMID)', $result3); } - + function <> meta::relational::tests::query::qualifier::advanced::projectAbstractPropertyWithConditionOnLeftAndRightTable():Boolean[1] -{ +{ let result1 = execute(|Firm.all()->project([p| $p.employeeWithFirmAddressName().lastName],['c1']) , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result1.values->at(0).rows,5); - assertSameSQL('select "firmtable_1".LASTNAME as "c1" from firmTable as "root" left outer join (select "firmtable_2".ID as ID, "persontable_0".LASTNAME as LASTNAME from firmTable as "firmtable_2" left outer join personTable as "persontable_0" on ("firmtable_2".ID = "persontable_0".FIRMID) left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "firmtable_2".ADDRESSID) where concat("persontable_0".FIRSTNAME, \' \', "persontable_0".LASTNAME) = "addresstable_0".NAME) as "firmtable_1" on ("root".ID = "firmtable_1".ID)', $result1); + assertSameSQL('select "firmtable_1".LASTNAME as "c1" from firmTable as "root" left outer join (select "firmtable_2".ID as ID, "persontable_0".LASTNAME as LASTNAME from firmTable as "firmtable_2" left outer join personTable as "persontable_0" on ("firmtable_2".ID = "persontable_0".FIRMID) left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "firmtable_2".ADDRESSID) where concat("persontable_0".FIRSTNAME, \' \', "persontable_0".LASTNAME) = "addresstable_0".NAME) as "firmtable_1" on ("root".ID = "firmtable_1".ID)', $result1); } function <> meta::relational::tests::query::qualifier::advanced::projectFunctionExpressionWithConditionOnLeftAndRightTableNestedDynaFunction():Boolean[1] -{ +{ let result2 = execute(|Firm.all()->project([p| $p->conditionLeftAndRightTablesNestedDynaFunction().firstName],['c1']) , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result2.values->at(0).rows,5); - assertSameSQL('select "firmtable_1".FIRSTNAME as "c1" from firmTable as "root" left outer join (select "firmtable_2".ID as ID, "persontable_0".FIRSTNAME as FIRSTNAME from firmTable as "firmtable_2" left outer join personTable as "persontable_0" on ("firmtable_2".ID = "persontable_0".FIRMID) left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "firmtable_2".ADDRESSID) where concat("persontable_0".FIRSTNAME, \' \', "persontable_0".LASTNAME) = "addresstable_0".NAME) as "firmtable_1" on ("root".ID = "firmtable_1".ID)', $result2); + assertSameSQL('select "firmtable_1".FIRSTNAME as "c1" from firmTable as "root" left outer join (select "firmtable_2".ID as ID, "persontable_0".FIRSTNAME as FIRSTNAME from firmTable as "firmtable_2" left outer join personTable as "persontable_0" on ("firmtable_2".ID = "persontable_0".FIRMID) left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "firmtable_2".ADDRESSID) where concat("persontable_0".FIRSTNAME, \' \', "persontable_0".LASTNAME) = "addresstable_0".NAME) as "firmtable_1" on ("root".ID = "firmtable_1".ID)', $result2); } function <> meta::relational::tests::query::qualifier::advanced::projectFunctionExpressionWithConditionOnLeftAndRightTableNested():Boolean[1] -{ +{ let result2 = execute(|Firm.all()->project([p| $p->conditionLeftAndRightTablesNested().lastName],['c1']) , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result2.values->at(0).rows,5); @@ -107,15 +110,15 @@ function <> meta::relational::tests::query::qualifier::advanced::proj } function <> meta::relational::tests::query::qualifier::advanced::projectFunctionExpressionWithConditionOnLeftAndRightTable():Boolean[1] -{ +{ let result3 = execute(|Firm.all()->project([p| $p->conditionLeftAndRightTables().lastName],['c1']) , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result3.values->at(0).rows,5); - assertSameSQL('select "persontable_0".LASTNAME as "c1" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID and "persontable_0".LASTNAME = "root".LEGALNAME)', $result3); + assertSameSQL('select "persontable_0".LASTNAME as "c1" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID and "persontable_0".LASTNAME = "root".LEGALNAME)', $result3); } function <> meta::relational::tests::query::qualifier::advanced::filterFunctionExpressionWithConditionRightTable():Boolean[1] -{ - +{ + let result1 = execute(|Firm.all()->filter(f| $f->conditionRightTable('Smith').firstName == 'Peter') , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result1.values,1); assertSameSQL('select "root".ID as "pk_0", "root".LEGALNAME as "legalName" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID and "persontable_0".LASTNAME = \'Smith\') where "persontable_0".FIRSTNAME = \'Peter\'', $result1); @@ -124,8 +127,8 @@ function <> meta::relational::tests::query::qualifier::advanced::filt function <> meta::relational::tests::query::qualifier::advanced::filterAsbtractPropertyWithConditionRightTable():Boolean[1] -{ - +{ + let result2 = execute(|Firm.all()->filter(f |$f.employeeByLastName('Smith').firstName == 'Peter') , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result2.values,1); assertSameSQL('select "root".ID as "pk_0", "root".LEGALNAME as "legalName" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID and "persontable_0".LASTNAME = \'Smith\') where "persontable_0".FIRSTNAME = \'Peter\'', $result2); @@ -134,33 +137,33 @@ function <> meta::relational::tests::query::qualifier::advanced::filt function <> meta::relational::tests::query::qualifier::advanced::filterAbstractPropertyWithConditionOnLeftAndRightTable():Boolean[1] -{ +{ let result1 = execute(|Firm.all()->filter(p| $p.employeeWithFirmAddressName().lastName == 'York') , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result1.values,1); - assertSameSQL('select "root".ID as "pk_0", "root".LEGALNAME as "legalName" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID) left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "root".ADDRESSID) where concat("persontable_0".FIRSTNAME, \' \', "persontable_0".LASTNAME) = "addresstable_0".NAME and "persontable_0".LASTNAME = \'York\'', $result1); + assertSameSQL('select "root".ID as "pk_0", "root".LEGALNAME as "legalName" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID) left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "root".ADDRESSID) where concat("persontable_0".FIRSTNAME, \' \', "persontable_0".LASTNAME) = "addresstable_0".NAME and "persontable_0".LASTNAME = \'York\'', $result1); } - + function <> meta::relational::tests::query::qualifier::advanced::filterFunctionExpressionWithConditionOnLeftAndRightTableNested():Boolean[1] -{ +{ let result2 = execute(|Firm.all()->filter(p| $p->conditionLeftAndRightTablesNested().firstName == 'Don') , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result2.values,1); - assertSameSQL('select "root".ID as "pk_0", "root".LEGALNAME as "legalName" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID) left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "root".ADDRESSID) where ("persontable_0".LASTNAME = "addresstable_0".NAME OR ("persontable_0".LASTNAME is null AND "addresstable_0".NAME is null)) and "persontable_0".FIRSTNAME = \'Don\'', $result2); + assertSameSQL('select "root".ID as "pk_0", "root".LEGALNAME as "legalName" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID) left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "root".ADDRESSID) where ("persontable_0".LASTNAME = "addresstable_0".NAME OR ("persontable_0".LASTNAME is null AND "addresstable_0".NAME is null)) and "persontable_0".FIRSTNAME = \'Don\'', $result2); } function <> meta::relational::tests::query::qualifier::advanced::filterFunctionExpressionWithConditionOnLeftAndRightTableNestedDynaFunction():Boolean[1] -{ +{ let result2 = execute(|Firm.all()->filter(p| $p->conditionLeftAndRightTablesNestedDynaFunction().lastName == 'York') , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result2.values,1); - assertSameSQL('select "root".ID as "pk_0", "root".LEGALNAME as "legalName" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID) left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "root".ADDRESSID) where concat("persontable_0".FIRSTNAME, \' \', "persontable_0".LASTNAME) = "addresstable_0".NAME and "persontable_0".LASTNAME = \'York\'', $result2); + assertSameSQL('select "root".ID as "pk_0", "root".LEGALNAME as "legalName" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID) left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "root".ADDRESSID) where concat("persontable_0".FIRSTNAME, \' \', "persontable_0".LASTNAME) = "addresstable_0".NAME and "persontable_0".LASTNAME = \'York\'', $result2); } function <> meta::relational::tests::query::qualifier::advanced::filterFunctionExpressionWithConditionOnLeftAndRightTable():Boolean[1] -{ +{ let result3 = execute(|Firm.all()->filter(p| $p->conditionLeftAndRightTables().lastName == 'Firm B') , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result3.values,1); @@ -178,7 +181,7 @@ function <> meta::relational::tests::query::qualifier::advanced::filt assertSameSQL('select "persontable_0".FIRSTNAME as "c1" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID and "persontable_0".LASTNAME = \'Smith\') where "persontable_0".FIRSTNAME = \'Peter\'', $result1); } - + //and use cases @@ -205,7 +208,7 @@ function <> meta::relational::tests::query::qualifier::advanced::filt let result1 = execute(|Firm.all() ->filter(f| $f.employees->filter(e|$e.lastName == $f.legalName && ($e.age > 20) )->toOne().firstName == 'Fabrice' ) , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result1.values,0); - assertSameSQL( 'select "root".ID as "pk_0", "root".LEGALNAME as "legalName" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID and ("persontable_0".LASTNAME = "root".LEGALNAME and ("persontable_0".AGE is not null and "persontable_0".AGE > 20))) where "persontable_0".FIRSTNAME = \'Fabrice\'', $result1); + assertSameSQL( 'select "root".ID as "pk_0", "root".LEGALNAME as "legalName" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID and ("persontable_0".LASTNAME = "root".LEGALNAME and ("persontable_0".AGE is not null and "persontable_0".AGE > 20))) where "persontable_0".FIRSTNAME = \'Fabrice\'', $result1); } @@ -213,7 +216,7 @@ function <> meta::relational::tests::query::qualifier::advanced::filt { let result1 = execute(|Firm.all() ->filter(f| $f->conditionRightTable('Firm B').firstName == 'Elena' || $f.employees.firstName == 'David') , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertSize($result1.values,3); assertSameElements(['Firm C','Firm B','Firm B'],$result1.values.legalName->sort()); assertSameSQL('select "root".ID as "pk_0", "root".LEGALNAME as "legalName" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID and "persontable_0".LASTNAME = \'Firm B\') left outer join personTable as "persontable_1" on ("root".ID = "persontable_1".FIRMID) where ("persontable_0".FIRSTNAME = \'Elena\' or "persontable_1".FIRSTNAME = \'David\')', $result1); @@ -252,7 +255,7 @@ function <> meta::relational::tests::query::qualifier::advanced::filt let result1 = execute(|Firm.all() ->filter(f| $f.employees->filter(e|$e.lastName == 'Lopez')->isEmpty() ) , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result1.values,5); - assertSameSQL('select "root".ID as "pk_0", "root".LEGALNAME as "legalName" from firmTable as "root" left outer join (select distinct "persontable_0".FIRMID from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID) where "persontable_0".LASTNAME = \'Lopez\') as "firmtable_1" on ("root".ID = "firmtable_1".FIRMID) where "firmtable_1".FIRMID is null', $result1); + assertSameSQL('select "root".ID as "pk_0", "root".LEGALNAME as "legalName" from firmTable as "root" left outer join (select distinct "persontable_0".FIRMID from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID) where "persontable_0".LASTNAME = \'Lopez\') as "firmtable_1" on ("root".ID = "firmtable_1".FIRMID) where "firmtable_1".FIRMID is null', $result1); } function <> meta::relational::tests::query::qualifier::advanced::nestedFilterFunctionExpressionWithOrCondition():Boolean[1] @@ -266,7 +269,7 @@ function <> meta::relational::tests::query::qualifier::advanced::nest assertSameElements(['Firm X','Firm C', 'Firm B'],$result1.values.rows->map(r | $r.getString('Firm Name'))->sort()); assertSameSQL('select "root".LEGALNAME as "Firm Name" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID and "persontable_0".LASTNAME = \'Smith\') left outer join personTable as "persontable_1" on ("root".ID = "persontable_1".FIRMID and "persontable_1".LASTNAME = \'Smith\') where (("persontable_0".AGE is not null and "persontable_1".AGE > 20) or "root".LEGALNAME = \'Firm B\')', $result1); -} +} function <> meta::relational::tests::query::qualifier::advanced::nestedFilterInQualifierWithOrCondition():Boolean[1] @@ -275,20 +278,20 @@ function <> meta::relational::tests::query::qualifier::advanced::nest ->filter(f| ($f.employeeByLastName('Smith')->toOne().age > 20) || $f.legalName=='Firm B' ) ->project([f|$f.legalName],['Firm Name']) , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertSize($result1.values.rows,3); assertSameElements(['Firm X', 'Firm C', 'Firm B'],$result1.values.rows->map(r | $r.getString('Firm Name'))->sort()); assertSameSQL('select "root".LEGALNAME as "Firm Name" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID and "persontable_0".LASTNAME = \'Smith\') left outer join personTable as "persontable_1" on ("root".ID = "persontable_1".FIRMID and "persontable_1".LASTNAME = \'Smith\') where (("persontable_0".AGE is not null and "persontable_1".AGE > 20) or "root".LEGALNAME = \'Firm B\')', $result1); -} +} function <> meta::relational::tests::query::qualifier::advanced::projectionInvolvingOneNestedAtributeOnTriangularJoinAndOtherJoin():Boolean[1] { let result1 = execute(|Firm.all()->project([f| $f.legalName,f| ($f.employees->filter(e| $e.locations.place == $f.legalName)->toOne().lastName) , f| ($f.employees->filter(e| $e.locations.place == $f.legalName)->toOne().lastName) + $f.address->toOne().name],['c1','c2','c3']) , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertSize($result1.values.rows,5); assertSameElements(['Firm A:TDSNull:Cupertino', 'Firm X:TDSNull:New York', 'Firm C:TDSNull:Mountain View', 'No Employees:TDSNull:Mountain View', 'Firm B:TDSNull:Tokyo'],$result1.values.rows->map(r | $r.getString('c1')+':'+$r.get('c2')->toString() +':'+$r.getString('c3'))->sort()); - assertSameSQL('select "root".LEGALNAME as "c1", "persontable_0".LASTNAME as "c2", concat("persontable_0".LASTNAME, "addresstable_0".NAME) as "c3" from firmTable as "root" left outer join (select "persontable_1".FIRMID as FIRMID, "locationtable_0".PLACE as PLACE, "persontable_1".LASTNAME as LASTNAME from personTable as "persontable_1" left outer join locationTable as "locationtable_0" on ("persontable_1".ID = "locationtable_0".PERSONID)) as "persontable_0" on ("persontable_0".PLACE = "root".LEGALNAME and "root".ID = "persontable_0".FIRMID) left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "root".ADDRESSID)', $result1); -} + assertSameSQL('select "root".LEGALNAME as "c1", "persontable_0".LASTNAME as "c2", concat("persontable_0".LASTNAME, "addresstable_0".NAME) as "c3" from firmTable as "root" left outer join (select "persontable_1".FIRMID as FIRMID, "locationtable_0".PLACE as PLACE, "persontable_1".LASTNAME as LASTNAME from personTable as "persontable_1" left outer join locationTable as "locationtable_0" on ("persontable_1".ID = "locationtable_0".PERSONID)) as "persontable_0" on ("persontable_0".PLACE = "root".LEGALNAME and "root".ID = "persontable_0".FIRMID) left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "root".ADDRESSID)', $result1); +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForced.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForced.pure index 0ce27a51c25..42db62bbada 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForced.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForced.pure @@ -16,9 +16,11 @@ import meta::relational::functions::asserts::*; import meta::relational::tests::mapping::filter::model::domain::*; import meta::relational::tests::mapping::filter::model::store::*; import meta::relational::tests::mapping::filter::model::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; -import meta::relational::runtime::authentication::*; +import meta::external::store::relational::runtime::authentication::*; import meta::pure::profiles::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::execute::*; import meta::relational::mapping::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForcedInjection.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForcedInjection.pure index 276d8ba53d7..b761b082517 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForcedInjection.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForcedInjection.pure @@ -15,6 +15,7 @@ import meta::relational::tests::injection::model::*; import meta::relational::tests::injection::store::*; import meta::relational::tests::injection::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::execute::*; import meta::relational::functions::toDDL::*; @@ -36,4 +37,4 @@ function <> meta::relational::tests::advanced::forced::injection::te ^RelationalDebugContext(debug=false, space='', forcedIsolation = IsolationStrategy.BuildCorrelatedSubQuery)).values->toOne(); assertEquals(4, $tds.rows->size()); assertSameElements(['Trade 1 prod 1 V2','Trade 2 prod 2 V1','Trade 3 prod 3 V1','Trade 4 prod 4 V2'], $tds.rows->map(r|$r.get('a')->toString()+' '+$r.get('b')->toString())); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForcedMilestoning.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForcedMilestoning.pure index b4e158e9b74..facec5f59cb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForcedMilestoning.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForcedMilestoning.pure @@ -14,9 +14,11 @@ import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::functions::asserts::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::mapping::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::milestoning::*; import meta::relational::functions::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForcedQualifier.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForcedQualifier.pure index 4771612ff30..21a95d6c7fc 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForcedQualifier.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForcedQualifier.pure @@ -14,6 +14,7 @@ import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::pure::profiles::*; import meta::pure::metamodel::tds::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForcedSelfJoin.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForcedSelfJoin.pure index f0b51ea270c..51e7237b17b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForcedSelfJoin.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForcedSelfJoin.pure @@ -66,13 +66,15 @@ Association meta::relational::tests::advanced::forcedselfjoin::OrgPerson import meta::relational::mapping::*; import meta::relational::tests::csv::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::tests::advanced::forcedselfjoin::*; function meta::relational::tests::advanced::forcedselfjoin::testRuntime():Runtime[1] { - meta::relational::tests::testRuntime(meta::relational::tests::advanced::forcedselfjoin::IsolationTestDb); + meta::external::store::relational::tests::testRuntime(meta::relational::tests::advanced::forcedselfjoin::IsolationTestDb); } function <> meta::relational::tests::advanced::forcedselfjoin::setUp(): Any[*] @@ -83,14 +85,14 @@ function <> meta::relational::tests::advanced::forcedselfjoi executeInDb('insert into PersonTable (id, firstName, lastName, orgId, addressId, firmId, managerId) values (1, \'Peter\', \'Smith\',17, 1,1,2);', $connection); executeInDb('insert into PersonTable (id, firstName, lastName, orgId, addressId, firmId, managerId) values (2, \'David\', \'Scott\',18, 2,1,4);', $connection); executeInDb('insert into PersonTable (id, firstName, lastName, orgId, addressId, firmId, managerId) values (3, \'John\', \'Hill\',18, 3,2,2);', $connection); - + executeInDb('Drop table if exists FirmTable;', $connection); executeInDb('Create Table FirmTable(id INT, legalName VARCHAR(200), addressId INT, ceoId INT);', $connection); executeInDb('insert into FirmTable (id, legalName, addressId, ceoId) values (1, \'Firm X\', 8, 1);', $connection); executeInDb('insert into FirmTable (id, legalName, addressId, ceoId) values (2, \'Firm A\', 9, 5);', $connection); executeInDb('insert into FirmTable (id, legalName, addressId, ceoId) values (3, \'Firm B\', 10, 3);', $connection); executeInDb('insert into FirmTable (id, legalName, addressId, ceoId) values (4, \'Firm C\', 11, 7);', $connection); - + executeInDb('Drop table if exists organizationTable;',$connection); executeInDb('Create Table organizationTable(orgId INT, name VARCHAR(200), parentId INT);', $connection); executeInDb('insert into organizationtable(orgId, name, parentId) values (17, \'NIC\',0 )',$connection); @@ -102,7 +104,7 @@ function <> meta::relational::tests::advanced::forcedselfjoi executeInDb('insert into productTable(id, ownerId, name, orgId) values (30,1,\'prod1\',17);',$connection); executeInDb('insert into productTable(id, ownerId, name, orgId) values (31,1,\'prod2\',18);',$connection); - executeInDb('insert into productTable(id, ownerId, name, orgId) values (32,3,\'prod3\',17);',$connection); + executeInDb('insert into productTable(id, ownerId, name, orgId) values (32,3,\'prod3\',17);',$connection); true; } @@ -126,7 +128,7 @@ function <> meta::relational::tests::advanced::forcedselfjoin::isolat col(x|$x.employees.group.children->filter(c|$c.coveredProduct.name == $x.employees.product.name).name->toOne() , 'testCol') ]) ,IsolationTestMapping,testRuntime(), meta::relational::extension::relationalExtensions()); - + let expectedCSV = 'firmname,employeeProductName,testCol\n'+ 'Firm X,Peter Smith,NICDev\n'+ 'Firm X,David Scott,\n'+ @@ -141,7 +143,7 @@ function <> meta::relational::tests::advanced::forcedselfjoin::isolat import meta::relational::tests::advanced::forcedselfjoin::*; Mapping meta::relational::tests::advanced::forcedselfjoin::IsolationTestMapping ( - + Person: Relational { scope([IsolationTestDb]default.personTable) @@ -152,7 +154,7 @@ Mapping meta::relational::tests::advanced::forcedselfjoin::IsolationTestMapping group: @Org_Person ) } - + Firm: Relational { scope([IsolationTestDb]default.firmTable) @@ -161,7 +163,7 @@ Mapping meta::relational::tests::advanced::forcedselfjoin::IsolationTestMapping employees: @Firm_Person ) } - + Organization: Relational { scope([IsolationTestDb]default.organizationTable) @@ -171,7 +173,7 @@ Mapping meta::relational::tests::advanced::forcedselfjoin::IsolationTestMapping coveredProduct: @Org_product ) } - + CoveredProduct: Relational { scope([IsolationTestDb]default.productTable) @@ -181,7 +183,7 @@ Mapping meta::relational::tests::advanced::forcedselfjoin::IsolationTestMapping owner: @Person_product ) } - + ) ###Relational @@ -191,11 +193,11 @@ Database meta::relational::tests::advanced::forcedselfjoin::IsolationTestDb Table firmTable(ID INT PRIMARY KEY, legalName VARCHAR(200), ADDRESSID INT, CEOID INT) Table organizationTable(name VARCHAR(200) , orgId INT PRIMARY KEY, parentId Int) Table productTable (Id INT PRIMARY KEY , ownerId INT, name VARCHAR(200), orgId INT) - + Join Firm_Person(firmTable.ID = personTable.FIRMID) Join Org_Person(organizationTable.orgId = personTable.orgId) Join Person_product( personTable.ID = productTable.ownerId) Join Org_product (productTable.orgId = organizationTable.orgId) - Join Org_org (organizationTable.orgId = {target}.parentId) -) + Join Org_org (organizationTable.orgId = {target}.parentId) +) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForcedStructure.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForcedStructure.pure index b9ae48b775c..7a003a94abb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForcedStructure.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testForcedStructure.pure @@ -15,6 +15,7 @@ import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::functions::*; import meta::relational::functions::pureToSqlQuery::*; import meta::pure::mapping::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testQueryStructure.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testQueryStructure.pure index 3b207894e9b..36797987c27 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testQueryStructure.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testQueryStructure.pure @@ -16,6 +16,7 @@ import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::functions::*; import meta::relational::functions::pureToSqlQuery::*; @@ -155,8 +156,8 @@ function <> meta::relational::tests::advanced::structure::testQualifi assertEquals(['Allen,Firm X,Peter,Smith,Smith'] ,$resultGrid->at(0)); assertEquals(['Hill,Firm X,Peter,Smith,Smith'],$resultGrid->at(1)); assertEquals(['Johnson,Firm X,Peter,Smith,Smith'] ,$resultGrid->at(2)); - assertEquals(['Smith,Firm X,Peter,Smith,Smith'] ,$resultGrid->at(3)); - + assertEquals(['Smith,Firm X,Peter,Smith,Smith'] ,$resultGrid->at(3)); + assertSameSQL('select "root".LASTNAME as "name1", "firmtable_0".LEGALNAME as "name2", "persontable_3".FIRSTNAME as "name3", "persontable_3".LASTNAME as "name4", "persontable_3".LASTNAME as "name5" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) left outer join (select distinct "persontable_2".FIRMID from personTable as "persontable_2" where "persontable_2".LASTNAME like \'Sm%\') as "persontable_1" on ("firmtable_0".ID = "persontable_1".FIRMID) left outer join (select "persontable_4".FIRMID as FIRMID, "persontable_4".FIRSTNAME as FIRSTNAME, "persontable_4".LASTNAME as LASTNAME from personTable as "persontable_4" left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "persontable_4".ADDRESSID) left outer join personTable as "persontable_5" on ("persontable_4".MANAGERID = "persontable_5".ID) where ("addresstable_0".NAME = \'Hoboken\' or concat("persontable_5".FIRSTNAME, \' \', "persontable_5".LASTNAME) = \'Bla\')) as "persontable_3" on ("firmtable_0".ID = "persontable_3".FIRMID) where "persontable_1".FIRMID is not null', $result); } @@ -185,7 +186,7 @@ function <> meta::relational::tests::advanced::structure::testQualifi testRuntime() , meta::relational::extension::relationalExtensions()); assertSize($result.values.rows, 8); - + let resultGrid = $result.values.rows->map(a | $a.getString('name1')+','+$a.getString('name2')+','+$a.getString('name3')+','+$a.getString('name4') +','+$a.getString('name5'))->sort(); @@ -232,7 +233,7 @@ function <> meta::relational::tests::advanced::structure::testQualifi [ 'name1' ]), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions(), ^RelationalDebugContext(debug=false, space='', forcedIsolation = IsolationStrategy.BuildCorrelatedSubQuery)); - + assertEquals('select case when "persontable_0".LASTNAME = \'ok\' then null else ("persontable_0".AGE * "persontable_4".AGE) end as "name1" from firmTable as "root" left outer join (select "persontable_1".FIRMID as FIRMID, "persontable_1".LASTNAME as LASTNAME, "persontable_1".AGE as AGE from personTable as "persontable_1" where "persontable_1".LASTNAME = \'Smith\') as "persontable_0" on ("root".ID = "persontable_0".FIRMID) left outer join (select "persontable_3".FIRMID as FIRMID from personTable as "persontable_3" where "persontable_3".LASTNAME = \'Smith2\') as "persontable_2" on ("root".ID = "persontable_2".FIRMID) left outer join firmTable as "firmtable_1" on ("firmtable_1".ID = "persontable_2".FIRMID) left outer join (select "persontable_5".FIRMID as FIRMID, "persontable_5".AGE as AGE from personTable as "persontable_5" where "persontable_5".LASTNAME = \'Smith3\') as "persontable_4" on ("firmtable_1".ID = "persontable_4".FIRMID)', $result->sqlRemoveFormatting()); } @@ -310,7 +311,7 @@ function <> meta::relational::tests::advanced::structure::testQualifi ]) , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); let values = $result.values->toOne(); - assertEquals(4,$values.rows->size()); + assertEquals(4,$values.rows->size()); assertEquals(['Allen', 'Hill', 'Johnson', 'Smith'],$values.rows.values->sort()); assertSameSQL('select "persontable_2".LASTNAME as "name1" from firmTable as "root" left outer join (select distinct "persontable_1".FIRMID from personTable as "persontable_1" where "persontable_1".AGE < 30 and "persontable_1".LASTNAME = \'Smith\') as "persontable_0" on ("root".ID = "persontable_0".FIRMID) left outer join personTable as "persontable_2" on ("root".ID = "persontable_2".FIRMID and "persontable_2".AGE < 30) where "persontable_0".FIRMID is not null', $result); @@ -325,9 +326,9 @@ function <> meta::relational::tests::advanced::structure::testIfInclu f|if(true,|$f.employeesByAge(30).lastName, |$f.employeesByAge(130).lastName) ],['name1']) , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + let values = $result.values->toOne(); - assertEquals(4,$values.rows.values->removeDuplicates()->size()); + assertEquals(4,$values.rows.values->removeDuplicates()->size()); assertEquals(['Allen', 'Hill', 'Johnson', 'Smith'],$values.rows.values->removeDuplicates()->sort()); assertSameSQL('select case when true then "persontable_2".LASTNAME else "persontable_3".LASTNAME end as "name1" from firmTable as "root" left outer join (select distinct "persontable_1".FIRMID from personTable as "persontable_1" where "persontable_1".AGE < 30 and "persontable_1".LASTNAME = \'Smith\') as "persontable_0" on ("root".ID = "persontable_0".FIRMID) left outer join personTable as "persontable_2" on ("root".ID = "persontable_2".FIRMID and "persontable_2".AGE < 30) left outer join personTable as "persontable_3" on ("root".ID = "persontable_3".FIRMID and "persontable_3".AGE < 130) where "persontable_0".FIRMID is not null', $result); } @@ -339,9 +340,9 @@ function <> meta::relational::tests::advanced::structure::testQualifi let result = execute(|Person.all()->filter(p| $p.firm->toOne().employeesByAge(30)->exists(e|$e.lastName == 'Smith')) , simpleRelationalMapping, testRuntime() , meta::relational::extension::relationalExtensions()); - + let values = $result.values; - assertEquals(4,$values->size()); + assertEquals(4,$values->size()); assertEquals(['Allen', 'Hill', 'Johnson', 'Smith'],$values.lastName->sort()); assertSameSQL('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) left outer join (select distinct "persontable_2".FIRMID from personTable as "persontable_2" where "persontable_2".AGE < 30 and "persontable_2".LASTNAME = \'Smith\') as "persontable_1" on ("firmtable_0".ID = "persontable_1".FIRMID) where "persontable_1".FIRMID is not null', $result); @@ -375,7 +376,7 @@ function <> meta::relational::tests::advanced::structure::testQualif function <> meta::relational::tests::advanced::structure::testMultipleIsolationWithSameProp():Boolean[1] { - let result = execute(|Person.all()->project([p | $p.firstName, + let result = execute(|Person.all()->project([p | $p.firstName, p |$p.firm->filter(p | $p.address.name == 'New York')->filter(p | $p.address.street == 'Hoboken').address.name], ['1', '2']), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSameSQL('select "root".FIRSTNAME as "1", "addresstable_2".NAME as "2" from personTable as "root" left outer join (select "firmtable_1".ID as ID, "firmtable_1".ADDRESSID as ADDRESSID, "firmtable_1".ID as ID_1 from firmTable as "firmtable_1" left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "firmtable_1".ADDRESSID) left outer join addressTable as "addresstable_1" on ("addresstable_1".ID = "firmtable_1".ADDRESSID) where "addresstable_1".STREET = \'Hoboken\' and "addresstable_0".NAME = \'New York\') as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) left outer join addressTable as "addresstable_2" on ("addresstable_2".ID = "firmtable_0".ADDRESSID)', $result); } @@ -383,7 +384,7 @@ function <> meta::relational::tests::advanced::structure::testMultip function <> meta::relational::tests::advanced::structure::testMultipleIsolationWithDifferentProp():Boolean[1] { - let result = execute(|Person.all()->project([p | $p.firstName, + let result = execute(|Person.all()->project([p | $p.firstName, p |$p.firm->filter(p | $p.address.name == 'New York')->filter(p | $p.address.street == 'Hoboken').employees.name], ['1', '2']), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); true; } @@ -405,4 +406,4 @@ function <> meta::relational::tests::advanced::structure::testForced ,simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions(), ^RelationalDebugContext(debug=false, space='', forcedIsolation = IsolationStrategy.MoveFilterOnTop)); assertSameSQL('select "root".ID as "pk_0", "root".LEGALNAME as "legalName" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID) left outer join locationTable as "locationtable_0" on ("persontable_0".ID = "locationtable_0".PERSONID) where "locationtable_0".PLACE = \'lala\'', $result); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testRelationalResultSourcing.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testRelationalResultSourcing.pure index e516bcbc0b2..07d0a250714 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testRelationalResultSourcing.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/advanced/testRelationalResultSourcing.pure @@ -12,16 +12,19 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::tests::csv::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::executionPlan::profiles::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::executionPlan::toString::*; -function meta::relational::tests::advanced::resultSourcing::getConnection():Connection[1] +function meta::relational::tests::advanced::resultSourcing::getConnection():ConnectionStore[1] { - let connection = meta::relational::tests::testRuntime().connectionByElement(meta::relational::tests::db)->cast(@TestDatabaseConnection); + let connection = meta::external::store::relational::tests::testRuntime().connectionStores->filter(c|$c.element==meta::relational::tests::db)->toOne(); meta::relational::tests::createTablesAndFillDb(); $connection; } @@ -31,12 +34,12 @@ function <> meta::relational::tests::advanced:: let result = meta::pure::router::execute({| let nameList = meta::relational::tests::model::simple::Firm.all()->filter(x|$x.isFirmXGroup()).legalName->distinct(); meta::relational::tests::model::simple::Person.all()->filter(y|$y.firm.legalName->in($nameList))->project([col(y|$y.firstName,'firstName')])->sort(['firstName']); - }, meta::relational::tests::simpleRelationalMapping, ^Runtime(connections = [meta::relational::tests::advanced::resultSourcing::getConnection()]),meta::relational::extension::relationalExtensions()); + }, meta::relational::tests::simpleRelationalMapping, ^Runtime(connectionStores= [meta::relational::tests::advanced::resultSourcing::getConnection()]),meta::relational::extension::relationalExtensions()); let expectedValue = 'firstName\n'+ 'Anthony\n'+ 'John\n'+ 'John\n'+ - 'Peter\n'; + 'Peter\n'; assertSameElements($expectedValue, $result.values->toCSV()); } @@ -45,7 +48,7 @@ function <> meta::relational::tests::advanced:: let result = meta::pure::router::execute({| let dateList = meta::relational::tests::model::simple::Trade.all()->filter(x|$x.latestEventDate->isNotEmpty()).latestEventDate->distinct()->take(2); meta::relational::tests::model::simple::Trade.all()->filter(y|$y.latestEventDate->in($dateList))->project([col(y|$y.id,'id')])->sort(['id']); - }, meta::relational::tests::simpleRelationalMapping, ^Runtime(connections = [meta::relational::tests::advanced::resultSourcing::getConnection()]), meta::relational::extension::relationalExtensions()); + }, meta::relational::tests::simpleRelationalMapping, ^Runtime(connectionStores= [meta::relational::tests::advanced::resultSourcing::getConnection()]), meta::relational::extension::relationalExtensions()); let expectedValue = 'id\n'+ '1\n'+ '6\n'; @@ -57,7 +60,7 @@ function <> meta::relational::tests::advanced:: let result = meta::pure::executionPlan::executionPlan({| let nameList = meta::relational::tests::model::simple::Firm.all()->filter(x|$x.isFirmXGroup()).legalName->distinct(); meta::relational::tests::model::simple::Person.all()->filter(y|$y.firm.legalName->in($nameList))->project([col(y|$y.firstName,'firstName')])->sort(['firstName']); - }, meta::relational::tests::simpleRelationalMapping, ^Runtime(connections = [meta::relational::tests::advanced::resultSourcing::getConnection()]),meta::relational::extension::relationalExtensions()); - let expectedPlan = 'Sequence(type=TDS[(firstName,String,VARCHAR(200),"")](Allocation(type=StringresultSizeRange=*name=nameListvalue=(Relational(type=StringresultSizeRange=*resultColumns=[("root".LEGALNAME,VARCHAR(200))]sql=selectdistinct"root".LEGALNAMEfromfirmTableas"root"where"root".LEGALNAMEin(\'FirmX\',\'FirmX&Co.\',\'FirmXandGroup\')connection=TestDatabaseConnection(type="H2"))))RelationalBlockExecutionNode(type=TDS[(firstName,String,VARCHAR(200),"")](Allocation(type=Stringname=inFilterClause_nameListvalue=(FreeMarkerConditionalExecutionNode(type=Stringcondition=${(instanceOf(nameList,"Stream")||instanceOf(nameList,"StreamingResult")||((collectionSize(nameList![])?number)>50))?c}trueBlock=(Sequence(type=String(CreateAndPopulateTempTable(type=VoidinputVarNames=[nameList]tempTableName=tempTableForIn_nameListtempTableColumns=[(ColumnForStoringInCollection,VARCHAR(200))]connection=TestDatabaseConnection(type="H2"))Constant(type=Stringvalues=[select"temptableforin_namelist_0".ColumnForStoringInCollectionasColumnForStoringInCollectionfromtempTableForIn_nameListas"temptableforin_namelist_0"]))))falseBlock=(Constant(type=Stringvalues=[${renderCollection(nameList![]",""\'""\'"{"\'":"\'\'"}"null")}])))))Relational(type=TDS[(firstName,String,VARCHAR(200),"")]resultColumns=[("firstName",VARCHAR(200))]sql=select"root".FIRSTNAMEas"firstName"frompersonTableas"root"leftouterjoinfirmTableas"firmtable_0"on("firmtable_0".ID="root".FIRMID)where"firmtable_0".LEGALNAMEin(${inFilterClause_nameList})orderby"firstName"connection=TestDatabaseConnection(type="H2"))))))'; + }, meta::relational::tests::simpleRelationalMapping, ^Runtime(connectionStores= [meta::relational::tests::advanced::resultSourcing::getConnection()]),meta::relational::extension::relationalExtensions()); + let expectedPlan = 'Sequence(type=TDS[(firstName,String,VARCHAR(200),"")](Allocation(type=StringresultSizeRange=*name=nameListvalue=(Relational(type=StringresultSizeRange=*resultColumns=[("root".LEGALNAME,VARCHAR(200))]sql=selectdistinct"root".LEGALNAMEfromfirmTableas"root"where"root".LEGALNAMEin(\'FirmX\',\'FirmX&Co.\',\'FirmXandGroup\')connection=TestDatabaseConnection(type="H2"))))RelationalBlockExecutionNode(type=TDS[(firstName,String,VARCHAR(200),"")](Allocation(type=Stringname=inFilterClause_nameListvalue=(FreeMarkerConditionalExecutionNode(type=Stringcondition=${(instanceOf(nameList,"Stream")||instanceOf(nameList,"StreamingResult")||((collectionSize(nameList![])?number)>50))?c}trueBlock=(Sequence(type=String(CreateAndPopulateTempTable(type=VoidinputVarNames=[nameList]tempTableName=tempTableForIn_nameListtempTableColumns=[(ColumnForStoringInCollection,VARCHAR(200))]connection=TestDatabaseConnection(type="H2"))Constant(type=Stringvalues=[select"temptableforin_namelist_0".ColumnForStoringInCollectionasColumnForStoringInCollectionfromtempTableForIn_nameListas"temptableforin_namelist_0"]))))falseBlock=(Constant(type=Stringvalues=[${renderCollection(nameList![]",""\'""\'"{"\'":"\'\'"}"null")}])))))Relational(type=TDS[(firstName,String,VARCHAR(200),"")]resultColumns=[("firstName",VARCHAR(200))]sql=select"root".FIRSTNAMEas"firstName"frompersonTableas"root"leftouterjoinfirmTableas"firmtable_0"on("firmtable_0".ID="root".FIRMID)where"firmtable_0".LEGALNAMEin(${inFilterClause_nameList})orderby"firstName"connection=TestDatabaseConnection(type="H2"))))))'; assertEquals($result->planToStringWithoutFormatting(meta::relational::extension::relationalExtensions()), $expectedPlan); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/datatype/testDataTypeMapping.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/datatype/testDataTypeMapping.pure index 1c5cc3d01c0..077200398f3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/datatype/testDataTypeMapping.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/datatype/testDataTypeMapping.pure @@ -26,10 +26,13 @@ import meta::relational::functions::toDDL::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; +import meta::core::runtime::*; import meta::pure::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; -import meta::relational::runtime::authentication::*; +import meta::external::store::relational::runtime::authentication::*; import meta::json::*; @@ -181,7 +184,7 @@ Class meta::relational::tests::mapping::dataType::model::domain::DataDBTypes function meta::relational::tests::mapping::dataType::model::store::testDataTypeMappingRuntime():Runtime[1] { - meta::relational::tests::testRuntime(myDB); + meta::external::store::relational::tests::testRuntime(myDB); } ###Relational @@ -239,4 +242,4 @@ Mapping meta::relational::tests::mapping::dataType::model::mapping::testMapping ) } -) \ No newline at end of file +) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/injection/testInjection.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/injection/testInjection.pure index c2672a5b262..67a30a91f99 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/injection/testInjection.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/injection/testInjection.pure @@ -15,6 +15,7 @@ import meta::relational::tests::injection::model::*; import meta::relational::tests::injection::store::*; import meta::relational::tests::injection::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::execute::*; @@ -37,7 +38,7 @@ Class meta::relational::tests::injection::model::Trade d :Date[1]; products : meta::relational::tests::injection::model::Product[*]; productAtTimeOfTrade(){$this.products->filter(p|$p.date == $this.d)->toOne()}:Product[1]; - + } Class meta::relational::tests::injection::model::Product @@ -95,14 +96,14 @@ function meta::relational::tests::injection::createTablesAndInsert():Boolean[1] executeInDb('insert into Book (id, name) values (1, \'Book 1\');', $connection); executeInDb('insert into Book (id, name) values (2, \'Book 2\');', $connection); - + true; - + } -function meta::relational::tests::injection::testRuntime():meta::pure::runtime::Runtime[1] +function meta::relational::tests::injection::testRuntime():meta::core::runtime::Runtime[1] { - meta::relational::tests::testRuntime(myDB); + meta::external::store::relational::tests::testRuntime(myDB); } ###Relational @@ -127,7 +128,7 @@ Mapping meta::relational::tests::injection::mapping::myMapping d : [myDB]Trade.tradeDate, products : [myDB]@TradeProduct } - + Product : Relational { name : [myDB]Product.name, @@ -139,4 +140,4 @@ Mapping meta::relational::tests::injection::mapping::myMapping name : [myDB]Book.name, trades : [myDB]@BookTrade } -) \ No newline at end of file +) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/association/testAssociationEmbedded.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/association/testAssociationEmbedded.pure index bd559e1f562..e52ac511eb8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/association/testAssociationEmbedded.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/association/testAssociationEmbedded.pure @@ -13,9 +13,11 @@ // limitations under the License. import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::pure::mapping::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::model::simple::*; @@ -71,6 +73,7 @@ function <> meta::relational::tests::mapping::association::embedded:: import meta::relational::tests::mapping::embedded::model::store::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; Mapping meta::relational::tests::mapping::association::embedded::associationMapping @@ -81,9 +84,9 @@ Mapping meta::relational::tests::mapping::association::embedded::associationMapp { name:[myDB]ORGANIZATIONS.NAME - - } - + + } + FirmOrganizations: Relational { AssociationMapping @@ -95,7 +98,7 @@ Mapping meta::relational::tests::mapping::association::embedded::associationMapp Mapping meta::relational::tests::mapping::association::embedded::associationMappingInlinedEmbedded ( - + GeographicEntityType: EnumerationMapping GE { CITY: 1, @@ -115,9 +118,9 @@ Mapping meta::relational::tests::mapping::association::embedded::associationMapp type : EnumerationMapping GE : PERSON_ADDRESS_TYPE ) ) - + } - + Firm[f1]: Relational { scope([myDB]PERSON_FIRM_DENORM) @@ -130,33 +133,33 @@ Mapping meta::relational::tests::mapping::association::embedded::associationMapp ) ), employees: [myDB]@firmEmployees - } - + } + Organization[org1]: Relational { name:[myDB]ORGANIZATIONS.NAME - - } - + + } + Location[loc]: Relational { place:[myDB]LOCATIONS.PLACE - + } - + FirmOrganizations: Relational { AssociationMapping ( organizations[p_firm, org1] : [myDB]@Firm_Organizations, - + organizations[f1, org1] : [myDB]@Firm_Organizations ) } - + AddressLocation : Relational { AssociationMapping @@ -164,6 +167,6 @@ Mapping meta::relational::tests::mapping::association::embedded::associationMapp location[f1_address,loc]: [myDB]@Firm_Address_location > @Address_location ) } - + ) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/association/testAssociationMapping.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/association/testAssociationMapping.pure index 5430cb41c3f..49a115ad9de 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/association/testAssociationMapping.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/association/testAssociationMapping.pure @@ -13,9 +13,11 @@ // limitations under the License. import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::pure::mapping::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::model::simple::*; @@ -81,6 +83,7 @@ function <> meta::relational::tests::mapping::association::testPerson import meta::relational::tests::model::simple::*; import meta::relational::tests::mapping::association::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; Mapping meta::relational::tests::mapping::association::associationMappingWithIds @@ -101,9 +104,9 @@ Mapping meta::relational::tests::mapping::association::associationMappingWithIds Firm[fir1] : Relational { - legalName : [dbInc]firmTable.LEGALNAME + legalName : [dbInc]firmTable.LEGALNAME } - + Employment : Relational { AssociationMapping @@ -134,7 +137,7 @@ Mapping meta::relational::tests::mapping::association::associationMapping2 ( Firm[fir1] : Relational { - legalName : [dbInc]firmTable.LEGALNAME + legalName : [dbInc]firmTable.LEGALNAME } ) @@ -142,7 +145,7 @@ Mapping meta::relational::tests::mapping::association::associationMapping3 ( include meta::relational::tests::mapping::association::associationMapping1 include meta::relational::tests::mapping::association::associationMapping2 - + Employment : Relational { @@ -179,9 +182,9 @@ Mapping meta::relational::tests::mapping::association::associationMappingWithDef Firm : Relational { - legalName : [dbInc]firmTable.LEGALNAME + legalName : [dbInc]firmTable.LEGALNAME } - + Employment : Relational { AssociationMapping @@ -195,17 +198,17 @@ Mapping meta::relational::tests::mapping::association::associationMappingWithDef Mapping meta::relational::tests::mapping::association::associationMappingWithDifferentRoot ( - + *Person[rp] : Relational { - firstName : [dbInc]personTable.FIRSTNAME + firstName : [dbInc]personTable.FIRSTNAME } - + Firm[rf] : Relational { legalName : [dbInc]firmTable.LEGALNAME } - + Employment : Relational { AssociationMapping @@ -214,7 +217,7 @@ Mapping meta::relational::tests::mapping::association::associationMappingWithDif firm[rp, rf] : [dbInc]@Firm_Person ) } - + FirmCEO : Relational { AssociationMapping @@ -222,7 +225,7 @@ Mapping meta::relational::tests::mapping::association::associationMappingWithDif ceo[rf, o] : [dbInc]@Firm_Ceo ) } - + Person[o] : Relational { firstName : [dbInc]personTable.FIRSTNAME diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/association/testAssociationMappingInheritance.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/association/testAssociationMappingInheritance.pure index ef55e5ecca9..1708a3576b9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/association/testAssociationMappingInheritance.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/association/testAssociationMappingInheritance.pure @@ -17,9 +17,11 @@ import meta::relational::mapping::*; import meta::relational::tests::mapping::association::inheritence::*; import meta::relational::tests::model::inheritance::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::pure::mapping::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; function <> meta::relational::tests::mapping::association::inheritence::setUp():Boolean[1] @@ -134,7 +136,7 @@ Mapping meta::relational::tests::mapping::association::inheritence::childMapping vehicles[map1] : [myDB]@PersonCar, vehicles[map2] : [myDB]@PersonBicycle } - + Car[map1]: Relational { id : [myDB] Car.ID, @@ -148,9 +150,9 @@ Mapping meta::relational::tests::mapping::association::inheritence::childMapping id : [myDB] Bicycle.ID, wheelCount : [myDB] Bicycle.db_bic_wheelCount, description : [myDB] Bicycle.b_Description - + } - + EngineType: EnumerationMapping engineTypeMapping @@ -181,7 +183,7 @@ Mapping meta::relational::tests::mapping::association::inheritence::assocMapping { meta::pure::router::operations::inheritance_OperationSetImplementation_1__SetImplementation_MANY_() } - + Driver : Relational { AssociationMapping @@ -191,7 +193,7 @@ Mapping meta::relational::tests::mapping::association::inheritence::assocMapping roadVehicles[per1, map2] : [myDB]@PersonBicycle, person[map2, per1] : [myDB]@PersonBicycle ) - } + } ) Mapping meta::relational::tests::mapping::association::inheritence::assocMapping2 @@ -201,8 +203,8 @@ Mapping meta::relational::tests::mapping::association::inheritence::assocMapping Airline[airline] : Relational { name : [myDB] Airline.name - } - + } + Vehicle : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(map1, map2) @@ -212,7 +214,7 @@ Mapping meta::relational::tests::mapping::association::inheritence::assocMapping { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(airline, per1) } - + VehicleOwnerVehicle : Relational { AssociationMapping @@ -222,7 +224,7 @@ Mapping meta::relational::tests::mapping::association::inheritence::assocMapping ownedVehicles[per1, map1] : [myDB]@PersonCar, ownedVehicles[per1, map2] : [myDB]@PersonBicycle ) - } + } ) Mapping meta::relational::tests::mapping::association::inheritence::ineritanceMappingWithInlineEmbeddedSets @@ -242,7 +244,7 @@ Mapping meta::relational::tests::mapping::association::inheritence::ineritanceMa { id : [myDB] Bicycle.ID, vehicleOwner() Inline[person] - } + } Car[car]: Relational { @@ -262,5 +264,5 @@ Mapping meta::relational::tests::mapping::association::inheritence::ineritanceMa planes ( description: [myDB] @AirlineCar | Airline.name ) - } + } ) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/boolean.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/boolean.pure index 8a826c594e8..95a28e2d57e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/boolean.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/boolean.pure @@ -15,6 +15,7 @@ import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; function <> meta::relational::tests::mapping::boolean::setUp():Boolean[1] @@ -42,4 +43,4 @@ function <> meta::relational::tests::mapping::boolean::testProject(): let result = execute(|Interaction.all()->project([#/Interaction/time#, #/Interaction/active#]), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values.rows, 14); assertEquals([4, true, 6, false, 12, false, 14, true, 3, false, 23, true, 11, false, 33, true, 44, true, 55, false, 22, true, 33, true, 14, false, 11, true], $result.values.rows.values); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/classMappingByClass/testClassMappingByClass.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/classMappingByClass/testClassMappingByClass.pure index aab8858eb4c..7a20b518be8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/classMappingByClass/testClassMappingByClass.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/classMappingByClass/testClassMappingByClass.pure @@ -14,6 +14,7 @@ ###Mapping import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::mapping::classMappingByClass::*; @@ -38,12 +39,12 @@ Mapping meta::relational::tests::mapping::classMappingByClass::TestMapping3 Mapping meta::relational::tests::mapping::classMappingByClass::TradeMapping1 ( include AccountMapping1 - + Trade[t1] : Relational { id : [db]tradeTable.ID } - + Trade_Accounts : Relational { AssociationMapping @@ -51,7 +52,7 @@ Mapping meta::relational::tests::mapping::classMappingByClass::TradeMapping1 account[t1, a1] : [db]@Trade_Account, trades[a1, t1] : [db]@Trade_Account ) - } + } ) Mapping meta::relational::tests::mapping::classMappingByClass::AccountMapping1 @@ -93,4 +94,4 @@ function <> meta::relational::tests::mapping::classMappin let root1 = TestMapping3->classMappings()->filter(cm|$cm.class == Account && $cm.root == true)->cast(@InstanceSetImplementation); let root2 = TestMapping3->rootClassMappingByClass(Account)->cast(@InstanceSetImplementation); assertEquals($root1->map(x|$x->allPropertyMappings()).property.name, $root2->toOne()->allPropertyMappings().property.name, 'root2 has only "name" as property mappings - should have both "name" and "trades"'); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/classMappingFilterWithInnerJoin/testClassMappingFilterWithInnerJoin.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/classMappingFilterWithInnerJoin/testClassMappingFilterWithInnerJoin.pure index 50c63b8c3d4..69c22240839 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/classMappingFilterWithInnerJoin/testClassMappingFilterWithInnerJoin.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/classMappingFilterWithInnerJoin/testClassMappingFilterWithInnerJoin.pure @@ -17,6 +17,7 @@ import meta::relational::tests::model::simple::*; import meta::relational::mapping::*; import meta::relational::tests::mapping::classMappingFilterWithInnerJoin::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::mapping::embedded::model::mapping::*; import meta::relational::tests::csv::*; import meta::relational::functions::asserts::*; @@ -116,8 +117,8 @@ function <> meta::relational::tests::mapping::classMappingFilterWithI let result = execute(|meta::relational::tests::milestoning::Product.all(%2015-10-26), milestoningmapWithInnerJoin, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals(['ProductName2'], $result.values.name); assertEqualsH2Compatible( - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", \'2015-10-26\' as "k_businessDate" from (select "root".id as id, "root".name as name, "root".type as type, "root".exchange as exchange, "root".classificationSystemId as classificationSystemId, "root".referenceSystemName as referenceSystemName, "root".externalReferenceSystemName as externalReferenceSystemName, "root".from_z as from_z, "root".thru_z as thru_z from ProductTable as "root" inner join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk = \'2\' and "root".from_z <= \'2015-10-26\' and "root".thru_z > \'2015-10-26\') as "root"', - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", \'2015-10-26\' as "k_businessDate" from (select "root".id as id, "root".name as name, "root".type as type, "root".exchange as exchange, "root".classificationSystemId as classificationSystemId, "root".referenceSystemName as referenceSystemName, "root".externalReferenceSystemName as externalReferenceSystemName, "root".from_z as from_z, "root".thru_z as thru_z from ProductTable as "root" inner join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk = \'2\' and "root".from_z <= DATE\'2015-10-26\' and "root".thru_z > DATE\'2015-10-26\') as "root"', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", \'2015-10-26\' as "k_businessDate" from (select "root".id as id, "root".name as name, "root".type as type, "root".exchange as exchange, "root".classificationSystemId as classificationSystemId, "root".referenceSystemName as referenceSystemName, "root".externalReferenceSystemName as externalReferenceSystemName, "root".from_z as from_z, "root".thru_z as thru_z from ProductTable as "root" inner join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk = \'2\' and "root".from_z <= \'2015-10-26\' and "root".thru_z > \'2015-10-26\') as "root"', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", \'2015-10-26\' as "k_businessDate" from (select "root".id as id, "root".name as name, "root".type as type, "root".exchange as exchange, "root".classificationSystemId as classificationSystemId, "root".referenceSystemName as referenceSystemName, "root".externalReferenceSystemName as externalReferenceSystemName, "root".from_z as from_z, "root".thru_z as thru_z from ProductTable as "root" inner join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk = \'2\' and "root".from_z <= DATE\'2015-10-26\' and "root".thru_z > DATE\'2015-10-26\') as "root"', $result->sqlRemoveFormatting() ); } @@ -128,7 +129,7 @@ function <> meta::relational::tests::mapping::classMappingFilterWithI assertEquals(['ProductName2'], $result.values.rows.values); assertEqualsH2Compatible( 'select "root".name as "name" from (select "root".id as id, "root".name as name, "root".type as type, "root".exchange as exchange, "root".classificationSystemId as classificationSystemId, "root".referenceSystemName as referenceSystemName, "root".externalReferenceSystemName as externalReferenceSystemName, "root".from_z as from_z, "root".thru_z as thru_z from ProductTable as "root" inner join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk = \'2\' and "root".from_z <= \'2015-10-26\' and "root".thru_z > \'2015-10-26\') as "root"', - 'select "root".name as "name" from (select "root".id as id, "root".name as name, "root".type as type, "root".exchange as exchange, "root".classificationSystemId as classificationSystemId, "root".referenceSystemName as referenceSystemName, "root".externalReferenceSystemName as externalReferenceSystemName, "root".from_z as from_z, "root".thru_z as thru_z from ProductTable as "root" inner join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk = \'2\' and "root".from_z <= DATE\'2015-10-26\' and "root".thru_z > DATE\'2015-10-26\') as "root"', + 'select "root".name as "name" from (select "root".id as id, "root".name as name, "root".type as type, "root".exchange as exchange, "root".classificationSystemId as classificationSystemId, "root".referenceSystemName as referenceSystemName, "root".externalReferenceSystemName as externalReferenceSystemName, "root".from_z as from_z, "root".thru_z as thru_z from ProductTable as "root" inner join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk = \'2\' and "root".from_z <= DATE\'2015-10-26\' and "root".thru_z > DATE\'2015-10-26\') as "root"', $result->sqlRemoveFormatting() ); } @@ -143,8 +144,8 @@ function <> meta::relational::tests::mapping::classMappingFilterWithI assertEquals(1, $products->size()); assertEquals('ProductName2', $products->at(0).name); assertEqualsH2Compatible( - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", \'2015-10-16\' as "k_businessDate" from (select "root".id as id, "root".name as name, "root".type as type, "root".exchange as exchange, "root".classificationSystemId as classificationSystemId, "root".referenceSystemName as referenceSystemName, "root".externalReferenceSystemName as externalReferenceSystemName, "root".from_z as from_z, "root".thru_z as thru_z from ProductTable as "root" inner join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk = \'2\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\') as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\')', - 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", \'2015-10-16\' as "k_businessDate" from (select "root".id as id, "root".name as name, "root".type as type, "root".exchange as exchange, "root".classificationSystemId as classificationSystemId, "root".referenceSystemName as referenceSystemName, "root".externalReferenceSystemName as externalReferenceSystemName, "root".from_z as from_z, "root".thru_z as thru_z from ProductTable as "root" inner join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk = \'2\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\') as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-16\' and "productexchangetable_0".thru_z > DATE\'2015-10-16\') where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\')', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", \'2015-10-16\' as "k_businessDate" from (select "root".id as id, "root".name as name, "root".type as type, "root".exchange as exchange, "root".classificationSystemId as classificationSystemId, "root".referenceSystemName as referenceSystemName, "root".externalReferenceSystemName as externalReferenceSystemName, "root".from_z as from_z, "root".thru_z as thru_z from ProductTable as "root" inner join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk = \'2\' and "root".from_z <= \'2015-10-16\' and "root".thru_z > \'2015-10-16\') as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= \'2015-10-16\' and "productclassificationtable_0".thru_z > \'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= \'2015-10-16\' and "productexchangetable_0".thru_z > \'2015-10-16\') where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\')', + 'select "root".id as "pk_0", "root".name as "pk_1", "root".id as "id", "root".name as "name", "root".type as "type", \'2015-10-16\' as "k_businessDate" from (select "root".id as id, "root".name as name, "root".type as type, "root".exchange as exchange, "root".classificationSystemId as classificationSystemId, "root".referenceSystemName as referenceSystemName, "root".externalReferenceSystemName as externalReferenceSystemName, "root".from_z as from_z, "root".thru_z as thru_z from ProductTable as "root" inner join OrderTable as "ordertable_0" on ("ordertable_0".prodFk = "root".id) where "ordertable_0".prodFk = \'2\' and "root".from_z <= DATE\'2015-10-16\' and "root".thru_z > DATE\'2015-10-16\') as "root" left outer join ProductClassificationTable as "productclassificationtable_0" on ("root".type = "productclassificationtable_0".type and "productclassificationtable_0".from_z <= DATE\'2015-10-16\' and "productclassificationtable_0".thru_z > DATE\'2015-10-16\') left outer join ProductExchangeTable as "productexchangetable_0" on ("root".exchange = "productexchangetable_0".name and "productexchangetable_0".from_z <= DATE\'2015-10-16\' and "productexchangetable_0".thru_z > DATE\'2015-10-16\') where ("productclassificationtable_0".type = \'STOCK\' and "productexchangetable_0".name = \'LNSE\')', $result->sqlRemoveFormatting() ); } @@ -224,7 +225,7 @@ function <> meta::relational::tests::mapping::classMappingFilterWithI '23,Hill,Firm X\n'+ '23,Johnson,Firm X\n'+ '23,Smith,Firm X\n'; - + assertEquals($expected, $result.values->at(0)->cast(@TabularDataSet)->sort(['age', 'lastName'])->toCSV()); assertEquals('select distinct "root".AGE as "age", "firmtable_1".LASTNAME as "lastName", "persontable_2".LEGALNAME as "extraInfo" from (select "root".ID as ID, "root".FIRSTNAME as FIRSTNAME, "root".LASTNAME as LASTNAME, "root".AGE as AGE, "root".ADDRESSID as ADDRESSID, "root".FIRMID as FIRMID, "root".MANAGERID as MANAGERID from personTable as "root" inner join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) where "firmtable_0".LEGALNAME = \'Firm X\') as "root" left outer join (select "firmtable_0".ID as ID, "persontable_1".LASTNAME as LASTNAME from firmTable as "firmtable_0" inner join personTable as "persontable_1" on ("firmtable_0".ID = "persontable_1".FIRMID)) as "firmtable_1" on ("firmtable_1".ID = "root".FIRMID) left outer join firmTable as "firmtable_2" on ("firmtable_2".ID = "root".FIRMID) left outer join (select "persontable_1".FIRMID as FIRMID, "firmtable_3".LEGALNAME as LEGALNAME from personTable as "persontable_1" inner join firmTable as "firmtable_3" on ("firmtable_3".ID = "persontable_1".FIRMID)) as "persontable_2" on ("firmtable_2".ID = "persontable_2".FIRMID)', $result->sqlRemoveFormatting()); @@ -303,7 +304,7 @@ function <> meta::relational::tests::mapping::classMappingFilterWithI function <> meta::relational::tests::mapping::classMappingFilterWithInnerJoin::testCorrelatedSubSqlQueryGeneration():Boolean[1] { - let results = execute(|meta::relational::tests::milestoning::Product.all(%2015-10-26)->project([p | $p.name, p | $p.classification.type, p | $p.classification.description], ['productName', 'productClassificationTypes', 'productClassificationDescriptions']), + let results = execute(|meta::relational::tests::milestoning::Product.all(%2015-10-26)->project([p | $p.name, p | $p.classification.type, p | $p.classification.description], ['productName', 'productClassificationTypes', 'productClassificationDescriptions']), TestClassMappingsWithInnerFilterJoinedByChainOfJoins, testRuntime(meta::relational::tests::mapping::classMappingFilterWithInnerJoin::mapping::store::TestClassMappingsWithInnerFilterJoinedByChainOfJoinsStore), meta::relational::extension::relationalExtensions()); @@ -311,8 +312,8 @@ function <> meta::relational::tests::mapping::classMappingFilterWithI 'ProductName2,STOCK,STOCK DESC-V4\n'+ 'ProductName3,,\n', $results.values->toCSV()); assertEqualsH2Compatible( - 'select "root".name as "productName", "producttableview_0".type as "productClassificationTypes", "producttableview_0".type_description as "productClassificationDescriptions" from ProductTable as "root" left outer join (select "producttableview_1".id as id, "producttableview_1".name as name, "productclassificationtable_0".type as type, "productclassificationtable_0".type_description as type_description from (select "root".id as id, "root".name as name, "root".type as type, \'2015-10-26\' as "k_businessDate" from ProductTable as "root" where "root".from_z <= \'2015-10-26\' and "root".thru_z > \'2015-10-26\') as "producttableview_1" inner join (select "root".type as type, "root".type_description as type_description, "root".system as system, "root".exchange as exchange, "root".from_z as from_z, "root".thru_z as thru_z from ProductClassificationTable as "root" inner join ProductClassificationFilterTable as "productclassificationfiltertable_0" on ("root".type = "productclassificationfiltertable_0".type) where "productclassificationfiltertable_0".exchange is not null and "root".from_z <= \'2015-10-26\' and "root".thru_z > \'2015-10-26\') as "productclassificationtable_0" on ("producttableview_1".type = "productclassificationtable_0".type)) as "producttableview_0" on ("root".from_z <= \'2015-10-26\' and "root".thru_z > \'2015-10-26\' and "root".id = "producttableview_0".id and "root".name = "producttableview_0".name) where "root".from_z <= \'2015-10-26\' and "root".thru_z > \'2015-10-26\'', - 'select "root".name as "productName", "producttableview_0".type as "productClassificationTypes", "producttableview_0".type_description as "productClassificationDescriptions" from ProductTable as "root" left outer join (select "producttableview_1".id as id, "producttableview_1".name as name, "productclassificationtable_0".type as type, "productclassificationtable_0".type_description as type_description from (select "root".id as id, "root".name as name, "root".type as type, \'2015-10-26\' as "k_businessDate" from ProductTable as "root" where "root".from_z <= DATE\'2015-10-26\' and "root".thru_z > DATE\'2015-10-26\') as "producttableview_1" inner join (select "root".type as type, "root".type_description as type_description, "root".system as system, "root".exchange as exchange, "root".from_z as from_z, "root".thru_z as thru_z from ProductClassificationTable as "root" inner join ProductClassificationFilterTable as "productclassificationfiltertable_0" on ("root".type = "productclassificationfiltertable_0".type) where "productclassificationfiltertable_0".exchange is not null and "root".from_z <= DATE\'2015-10-26\' and "root".thru_z > DATE\'2015-10-26\') as "productclassificationtable_0" on ("producttableview_1".type = "productclassificationtable_0".type)) as "producttableview_0" on ("root".from_z <= DATE\'2015-10-26\' and "root".thru_z > DATE\'2015-10-26\' and "root".id = "producttableview_0".id and "root".name = "producttableview_0".name) where "root".from_z <= DATE\'2015-10-26\' and "root".thru_z > DATE\'2015-10-26\'', + 'select "root".name as "productName", "producttableview_0".type as "productClassificationTypes", "producttableview_0".type_description as "productClassificationDescriptions" from ProductTable as "root" left outer join (select "producttableview_1".id as id, "producttableview_1".name as name, "productclassificationtable_0".type as type, "productclassificationtable_0".type_description as type_description from (select "root".id as id, "root".name as name, "root".type as type, \'2015-10-26\' as "k_businessDate" from ProductTable as "root" where "root".from_z <= \'2015-10-26\' and "root".thru_z > \'2015-10-26\') as "producttableview_1" inner join (select "root".type as type, "root".type_description as type_description, "root".system as system, "root".exchange as exchange, "root".from_z as from_z, "root".thru_z as thru_z from ProductClassificationTable as "root" inner join ProductClassificationFilterTable as "productclassificationfiltertable_0" on ("root".type = "productclassificationfiltertable_0".type) where "productclassificationfiltertable_0".exchange is not null and "root".from_z <= \'2015-10-26\' and "root".thru_z > \'2015-10-26\') as "productclassificationtable_0" on ("producttableview_1".type = "productclassificationtable_0".type)) as "producttableview_0" on ("root".from_z <= \'2015-10-26\' and "root".thru_z > \'2015-10-26\' and "root".id = "producttableview_0".id and "root".name = "producttableview_0".name) where "root".from_z <= \'2015-10-26\' and "root".thru_z > \'2015-10-26\'', + 'select "root".name as "productName", "producttableview_0".type as "productClassificationTypes", "producttableview_0".type_description as "productClassificationDescriptions" from ProductTable as "root" left outer join (select "producttableview_1".id as id, "producttableview_1".name as name, "productclassificationtable_0".type as type, "productclassificationtable_0".type_description as type_description from (select "root".id as id, "root".name as name, "root".type as type, \'2015-10-26\' as "k_businessDate" from ProductTable as "root" where "root".from_z <= DATE\'2015-10-26\' and "root".thru_z > DATE\'2015-10-26\') as "producttableview_1" inner join (select "root".type as type, "root".type_description as type_description, "root".system as system, "root".exchange as exchange, "root".from_z as from_z, "root".thru_z as thru_z from ProductClassificationTable as "root" inner join ProductClassificationFilterTable as "productclassificationfiltertable_0" on ("root".type = "productclassificationfiltertable_0".type) where "productclassificationfiltertable_0".exchange is not null and "root".from_z <= DATE\'2015-10-26\' and "root".thru_z > DATE\'2015-10-26\') as "productclassificationtable_0" on ("producttableview_1".type = "productclassificationtable_0".type)) as "producttableview_0" on ("root".from_z <= DATE\'2015-10-26\' and "root".thru_z > DATE\'2015-10-26\' and "root".id = "producttableview_0".id and "root".name = "producttableview_0".name) where "root".from_z <= DATE\'2015-10-26\' and "root".thru_z > DATE\'2015-10-26\'', $results->sqlRemoveFormatting() ); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/classMappingFilterWithInnerJoin/testRelationalSetUp.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/classMappingFilterWithInnerJoin/testRelationalSetUp.pure index de4d63c36c3..822c67455bf 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/classMappingFilterWithInnerJoin/testRelationalSetUp.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/classMappingFilterWithInnerJoin/testRelationalSetUp.pure @@ -15,6 +15,7 @@ ###Mapping import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::mapping::classMappingFilterWithInnerJoin::mapping::store::*; Mapping meta::relational::tests::mapping::classMappingFilterWithInnerJoin::mapping::baseMappingWithInnerJoinInFilter @@ -84,7 +85,7 @@ Mapping meta::relational::tests::mapping::classMappingFilterWithInnerJoin::mappi ) } - + meta::relational::tests::mapping::classMappingFilterWithInnerJoin::model::Person[p2] : Relational { ~filter [dbInc] (INNER) @Firm_Person2 | [dbInc] FirmXFilter @@ -95,7 +96,7 @@ Mapping meta::relational::tests::mapping::classMappingFilterWithInnerJoin::mappi ) } - + meta::relational::tests::mapping::classMappingFilterWithInnerJoin::model::Person[p3] : Relational { ~filter [dbInc] (INNER) @Firm_Person | [dbInc] FirmBFilter @@ -549,7 +550,7 @@ Class meta::relational::tests::mapping::classMappingFilterWithInnerJoin::model:: function meta::relational::tests::mapping::classMappingFilterWithInnerJoin::mapping::createTablesAndFillDb():Boolean[1] { - let connection = meta::relational::tests::testRuntime().connectionByElement(meta::relational::tests::db)->cast(@meta::relational::runtime::TestDatabaseConnection); + let connection = meta::external::store::relational::tests::testRuntime().connectionByElement(meta::relational::tests::db)->cast(@meta::external::store::relational::runtime::TestDatabaseConnection); meta::relational::tests::mapping::union::createTablesAndFillDb(); executeInDb2('Drop table if exists PersonSet1;', $connection); @@ -636,7 +637,7 @@ Database meta::relational::tests::mapping::classMappingFilterWithInnerJoin::mapp milestoning( business(BUS_FROM=from_z, BUS_THRU=thru_z, INFINITY_DATE=%9999-12-31T00:00:00.0000) ) - id Integer PRIMARY KEY, + id Integer PRIMARY KEY, name VARCHAR(200) PRIMARY KEY, type VARCHAR(200), exchange VARCHAR(200), @@ -661,9 +662,9 @@ Database meta::relational::tests::mapping::classMappingFilterWithInnerJoin::mapp type_description VARCHAR(400), system VARCHAR(200), exchange VARCHAR(200), - from_z DATE, + from_z DATE, thru_z DATE - ) + ) Table ProductClassificationFilterTable( type VARCHAR(200) PRIMARY KEY, @@ -681,15 +682,16 @@ Database meta::relational::tests::mapping::classMappingFilterWithInnerJoin::mapp ###Pure import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; function meta::relational::tests::mapping::classMappingFilterWithInnerJoin::mapping::store::initDatabase():Boolean[1] { - let connection = meta::relational::tests::testRuntime(meta::relational::tests::mapping::classMappingFilterWithInnerJoin::mapping::store::TestClassMappingsWithInnerFilterJoinedByChainOfJoinsStore).connections->toOne()->cast(@TestDatabaseConnection); - + let connection = meta::external::store::relational::tests::testRuntime(meta::relational::tests::mapping::classMappingFilterWithInnerJoin::mapping::store::TestClassMappingsWithInnerFilterJoinedByChainOfJoinsStore).connectionStores.connection->toOne()->cast(@TestDatabaseConnection); + executeInDb('drop table if exists ProductClassificationFilterTable;',$connection); executeInDb('create table ProductClassificationFilterTable (type VARCHAR(200),type_description VARCHAR(400),system VARCHAR(200), exchange VARCHAR(200), from_z TIMESTAMP, thru_z TIMESTAMP);',$connection); executeInDb('insert into ProductClassificationFilterTable values(\'STOCK\',\'STOCK DESC-V1\',\'SYS1\', \'LNSE\', \'2015-8-15 00:00:00\', \'2015-8-17 00:00:00\');',$connection); true; -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/dates.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/dates.pure index 1280d8e9e12..67a4eeea7b0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/dates.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/dates.pure @@ -13,10 +13,12 @@ // limitations under the License. import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; function <> meta::relational::tests::mapping::dates::setUp():Boolean[1] @@ -27,9 +29,9 @@ function <> meta::relational::tests::mapping::dates::setUp() executeInDb('insert into tradeTable (id, prodid, accountId, quantity, tradeDate, settlementDateTime) values (13, 3, 2, 45, \'2016-03-28\', \'2016-03-29T21:00:00.123456789\');', $connection);//summer datetime in UTC format executeInDb('insert into tradeTable (id, prodid, accountId, quantity, tradeDate, settlementDateTime) values (14, 3, 2, 45, \'2016-03-28\', \'2016-03-29 21:00:00.123456789\');', $connection);//summer datetime in EST fomrat executeInDb('insert into tradeTable (id, prodid, accountId, quantity, tradeDate, settlementDateTime) values (15, 3, 2, 45, \'2016-02-14\', \'2016-02-15T21:00:00.123456789\');', $connection);//summer datetime in EST format - + println(executeInDb('select settlementDateTime from tradeTable;', $connection).rows.values); - + true; } @@ -39,17 +41,17 @@ function <> meta::relational::tests::mapping::dates::strictdate::test assertSize($result.values, 15); assertSize($result.values.date->filter(a|$a == %2014-12-01),3); assertSize($result.values.date->filter(a|$a == today()),0); - + } function <> meta::relational::tests::mapping::dates::strictdate::testQuery():Boolean[1] { let result = execute(|Trade.all()->filter(i|$i.date == %2014-12-01), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 3); - + let result2 = execute(|Trade.all()->filter(i|$i.date == today()), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result2.values, 0); - + } function <> meta::relational::tests::mapping::dates::strictdate::testProject():Boolean[1] @@ -68,31 +70,31 @@ function <> meta::relational::tests::mapping::dates::datetime::testGe assertSize($result.values.settlementDateTime->filter(a|$a == %2014-12-04T15:22:23.123456789),1); assertSize($result.values.settlementDateTime->filter(a|$a <= now()),13); assertSize($result.values->filter(a|$a.settlementDateTime->isEmpty()),2); - + } function <> meta::relational::tests::mapping::dates::datetime::testQuery():Boolean[1] { - + let result = execute(|Trade.all()->filter(i|(%2014-12-04T15:22:23.123456789 < $i.settlementDateTime ) && ($i.settlementDateTime < %2014-12-04T23:59:59.999999999)) , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 1); assertEquals( [%2014-12-04T21:00:00.000000000], $result.values.settlementDateTime->sort()); - + let result2 = execute(|Trade.all()->filter(i|$i.settlementDateTime <= now()), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result2.values, 13); - + } function <> meta::relational::tests::mapping::dates::datetime::testQueryExactEquals():Boolean[1] { - + let result = execute(|Trade.all()->filter(i| (%2014-12-04T15:22:23.123456789 <= $i.settlementDateTime) && ($i.settlementDateTime < %2014-12-04T23:59:59.999999999)), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 2); assertEquals( [%2014-12-04T15:22:23.123456789, %2014-12-04T21:00:00.000000000], $result.values.settlementDateTime->sort()); - + let result2 = execute(|Trade.all()->filter(i|$i.settlementDateTime == %2014-12-04T15:22:23.123456789), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result2.values, 1); - + } function <> meta::relational::tests::mapping::dates::datetime::testProject():Boolean[1] @@ -106,17 +108,17 @@ function <> meta::relational::tests::mapping::dates::datetime::testPr function <> meta::relational::tests::mapping::dates::datetime::retrieveDateWithTimeZone():Boolean[1] { //for testing timezone for databse is in ETS - + let winterDateSpecifiedInUTC = execute(|Trade.all()->filter(i|$i.id == 12), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals( [%2016-02-05T21:00:00.123456789], $winterDateSpecifiedInUTC.values->at(0).settlementDateTime); - + let summerDateSpecifiedInUTC = execute(|Trade.all()->filter(i|$i.id == 13), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals( [%2016-03-29T21:00:00.123456789], $summerDateSpecifiedInUTC.values->at(0).settlementDateTime); - + let winterDateSpecifiedInEST = execute(|Trade.all()->filter(i|$i.id == 14), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals( [%2016-03-29T21:00:00.123456789], $winterDateSpecifiedInEST.values->at(0).settlementDateTime); - + let summerDateSpecifiedInEST = execute(|Trade.all()->filter(i|$i.id == 15), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals( [%2016-02-15T21:00:00.123456789], $summerDateSpecifiedInEST.values->at(0).settlementDateTime); - -} \ No newline at end of file + +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/distinct/testDistinct.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/distinct/testDistinct.pure index 2915ef383d7..f75a37fa99a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/distinct/testDistinct.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/distinct/testDistinct.pure @@ -13,9 +13,11 @@ // limitations under the License. import meta::relational::functions::asserts::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; -import meta::relational::runtime::authentication::*; +import meta::external::store::relational::runtime::authentication::*; import meta::pure::profiles::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::execute::*; import meta::relational::mapping::*; @@ -49,7 +51,7 @@ function <> meta::relational::tests::mapping::distinct::testDistinctM { let result = execute(|IncomeFunction.all()->project([#/IncomeFunction/name#,#/IncomeFunction/code#])->sort('code'), testMapping, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('name,code\n' + 'IF 1,1001\n' + 'IF 2,1002\n' + 'IF 2,1022\n', $result.values->toOne()->toCSV()); - + //todo: could optimize to collapse the sub select back assertEquals('select "root".IF_NAME as "name", "root".IF_CODE as "code" from (select distinct "account_info_1".IF_CODE as IF_CODE, "account_info_1".IF_NAME as IF_NAME from ACCOUNT_INFO as "account_info_1") as "root" order by "code"', $result->sqlRemoveFormatting()); } @@ -101,7 +103,7 @@ function <> meta::relational::tests::mapping::distinct::testProjectDi { let result = execute(|Classification.all()->project([#/Classification/name#,#/Classification/incomeFunctions/name!incomeFunction#]), testMappingWithJoin, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('name,incomeFunction\n' + 'IfName1,IF 1\n' + 'IfName2,IF 2\n', $result.values->toOne()->toCSV()); - + //TODO: replace 'root' in distinct? assertEquals('select "root".IF_OTHER_NAME as "name", "account_info_0".IF_NAME as "incomeFunction" from IF_OTHER_INFO as "root" left outer join (select distinct "root".IF_CODE, "root".IF_NAME, "if_other_info_1".IF_OTHER_NAME from ACCOUNT_INFO as "root" left outer join IF_OTHER_INFO as "if_other_info_1" on ("root".IF_CODE = "if_other_info_1".IF_CODE)) as "account_info_0" on ("account_info_0".IF_CODE = "root".IF_CODE)', $result->sqlRemoveFormatting()); } @@ -110,7 +112,7 @@ function <> meta::relational::tests::mapping::distinct::testProjectDi { let result = execute(|Classification.all()->project([#/Classification/name#,#/Classification/incomeFunctions/name!incomeFunction#]), testMappingWithJoinWithDup, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('name,incomeFunction\n' + 'IfName1,IF 1\n' + 'IfName2,IF 2\n', $result.values->toOne()->toCSV()); - + //TODO: replace 'root' in distinct? assertEquals('select "root".IF_OTHER_NAME as "name", "account_info_0".IF_NAME as "incomeFunction" from IF_OTHER_INFO as "root" left outer join (select distinct "root".IF_NAME, "if_other_info_1".IF_OTHER_NAME, "root".IF_CODE from ACCOUNT_INFO as "root" left outer join IF_OTHER_INFO as "if_other_info_1" on ("root".IF_CODE = "if_other_info_1".IF_CODE and "root".IF_CODE is not null)) as "account_info_0" on ("account_info_0".IF_CODE = "root".IF_CODE and "account_info_0".IF_CODE is not null)', $result->sqlRemoveFormatting()); } @@ -133,21 +135,21 @@ function <> meta::relational::tests::mapping::distinct::testDistinctM { let incomeFunctions = execute(|IncomeFunction.all(), testMappingFullDenorm, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); assertSameElements(['IF 1', 'IF 2', 'IF 2'], $incomeFunctions.values.name); - + let accounts = execute(|FirmAccount.all(), testMappingFullDenorm, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); assertSameElements(['Acct 1', 'Acct 2', 'Acct 3', 'Acct 4', 'Acct 5'], $accounts.values.name); - + let deskHeads = execute(|DeskHead.all(), testMappingFullDenorm, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); assertSameElements(['Jack'], $deskHeads.values.name); - + let result = execute(|FirmAccount.all()->project([#/FirmAccount/name!accountName#,#/FirmAccount/incomeFunction/name!IncomeFunction#,#/FirmAccount/incomeFunction/deskHead/name!DeskHead#]), testMappingFullDenorm, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals('accountName,IncomeFunction,DeskHead\n' + 'Acct 1,IF 1,Jack\n' + 'Acct 2,IF 2,Jack\n' + 'Acct 3,IF 2,Jack\n' + 'Acct 4,IF 2,Jack\n' + 'Acct 5,IF 2,Jack\n',$result.values->toOne()->toCSV()); assertEquals('select "root".ACCT_NAME as "accountName", "account_info_1".IF_NAME as "IncomeFunction", "account_info_2".DESKHEAD_NAME as "DeskHead" from ACCOUNT_INFO as "root" left outer join (select distinct "root".IF_CODE, "root".IF_NAME, "root".DESKHEAD_ID from ACCOUNT_INFO as "root" where "root".IF_TYPE = \'Type 1\') as "account_info_1" on ("root".IF_CODE = "account_info_1".IF_CODE) left outer join (select distinct "root".DESKHEAD_NAME, "root".DESKHEAD_ID from ACCOUNT_INFO as "root") as "account_info_2" on ("account_info_1".DESKHEAD_ID = "account_info_2".DESKHEAD_ID)', $result->sqlRemoveFormatting()); } function <> meta::relational::tests::mapping::distinct::testDistinctMappingWithFullDenormSelfJoinsWithFilterOnJoin():Boolean[1] -{ +{ let result = execute(|FirmAccount.all()->filter(a | $a.incomeFunction.name == 'IF 2'), testMappingFullDenorm, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); assertSameElements(['Acct 2', 'Acct 3', 'Acct 4', 'Acct 5'], $result.values.name); //todo - should the filter move inside the distinct ? @@ -155,10 +157,10 @@ function <> meta::relational::tests::mapping::distinct::testDistinctM } function <> meta::relational::tests::mapping::distinct::testDistinctMappingWithFullDenormSelfJoinsWithTwoFiltersOnJoin():Boolean[1] -{ +{ let result = execute(|FirmAccount.all()->filter(a | $a.incomeFunction.name == 'IF 2' && $a.incomeFunction.code == 1002), testMappingFullDenorm, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); assertSameElements(['Acct 2', 'Acct 3', 'Acct 5'], $result.values.name); - + //todo - should the filter move inside the distinct ? assertEquals('select "root".id as "pk_0", "root".ACC_NUM as "number", "root".ACCT_NAME as "name" from ACCOUNT_INFO as "root" left outer join (select distinct "root".IF_CODE, "root".IF_NAME, "root".DESKHEAD_ID from ACCOUNT_INFO as "root" where "root".IF_TYPE = \'Type 1\') as "account_info_1" on ("root".IF_CODE = "account_info_1".IF_CODE) where ("account_info_1".IF_NAME = \'IF 2\' and "account_info_1".IF_CODE = 1002)', $result->sqlRemoveFormatting()); } @@ -168,7 +170,7 @@ function <> meta::relational::tests::mapping::distinct::testDistinctM { let result = execute(|IncomeFunction.all()->project([#/IncomeFunction/name#,#/IncomeFunction/Classification/name!IfName#])->sort(['name', 'IfName']), testMappingWithCase, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('name,IfName\n' + 'IF 1,IfName1\n' + 'IF 2,IfName2\n' + 'IF 2,Unknown\n', $result.values->toOne()->toCSV()); - + assertEquals('select "root"."name" as "name", case when "if_other_info_0".IF_OTHER_NAME is null then \'Unknown\' else "if_other_info_0".IF_OTHER_NAME end as "IfName" from (select distinct "account_info_1".IF_CODE as IF_CODE, case when "account_info_1".IF_NAME is null then \'C\' else "account_info_1".IF_NAME end as "name" from ACCOUNT_INFO as "account_info_1") as "root" left outer join IF_OTHER_INFO as "if_other_info_0" on ("root".IF_CODE = "if_other_info_0".IF_CODE) order by "name","IfName"', $result->sqlRemoveFormatting()); } @@ -182,14 +184,14 @@ function <> meta::relational::tests::mapping::distinct::setU function meta::relational::tests::mapping::distinct::model::store::testDataTypeMappingRuntime():Runtime[1] { - meta::relational::tests::testRuntime(myDB); + meta::external::store::relational::tests::testRuntime(myDB); } function meta::relational::tests::mapping::distinct::model::store::createTablesAndFillDb():Boolean[1] { let connection = testDataTypeMappingRuntime().connectionByElement(myDB)->cast(@TestDatabaseConnection); - + meta::relational::functions::toDDL::dropAndCreateTableInDb(myDB, 'ACCOUNT_INFO', $connection); executeInDb('insert into ACCOUNT_INFO (id, ACC_NUM, ACCT_NAME, IF_CODE, IF_NAME, IF_TYPE, DESKHEAD_ID, DESKHEAD_NAME) values (1, 7900001, \'Acct 1\', 1001, \'IF 1\', \'Type 1\', 11, \'Jack\');', $connection); @@ -197,9 +199,9 @@ function meta::relational::tests::mapping::distinct::model::store::createTablesA executeInDb('insert into ACCOUNT_INFO (id, ACC_NUM, ACCT_NAME, IF_CODE, IF_NAME, IF_TYPE, DESKHEAD_ID, DESKHEAD_NAME) values (3, 7900003, \'Acct 3\',1002, \'IF 2\', \'Type 1\', 11, \'Jack\');', $connection); executeInDb('insert into ACCOUNT_INFO (id, ACC_NUM, ACCT_NAME, IF_CODE, IF_NAME, IF_TYPE, DESKHEAD_ID, DESKHEAD_NAME) values (4, 7900004, \'Acct 4\',1022, \'IF 2\', \'Type 1\', 11, \'Jack\');', $connection); executeInDb('insert into ACCOUNT_INFO (id, ACC_NUM, ACCT_NAME, IF_CODE, IF_NAME, IF_TYPE, DESKHEAD_ID, DESKHEAD_NAME) values (5, 7900005, \'Acct 5\',1002, \'IF 2\', \'Type 2\', 11, \'Jack\');', $connection); - + meta::relational::functions::toDDL::dropAndCreateTableInDb(myDB, 'ACCOUNT_INFO_NORM', $connection); - + executeInDb('Drop table if exists IF_OTHER_INFO;', $connection); executeInDb('Create Table IF_OTHER_INFO(IF_CODE INT, IF_OTHER_NAME VARCHAR(20));', $connection); executeInDb('insert into IF_OTHER_INFO (IF_CODE, IF_OTHER_NAME) values (1001, \'IfName1\');', $connection); @@ -258,7 +260,7 @@ Database meta::relational::tests::mapping::distinct::model::store::myDB DESKHEAD_ID INT, DESKHEAD_NAME VARCHAR(20) ) - + Table ACCOUNT_INFO_NORM ( id INT PRIMARY KEY, @@ -266,25 +268,25 @@ Database meta::relational::tests::mapping::distinct::model::store::myDB ACCT_NAME VARCHAR(20), IF_CODE INT ) - + Table IF_OTHER_INFO ( IF_CODE INT PRIMARY KEY, IF_OTHER_NAME VARCHAR(20) ) - + Filter typeFilter(ACCOUNT_INFO.IF_TYPE = 'Type 1') - + Join otherInfo(ACCOUNT_INFO.IF_CODE = IF_OTHER_INFO.IF_CODE) - + Join otherInfo2(ACCOUNT_INFO.IF_CODE = IF_OTHER_INFO.IF_CODE and ACCOUNT_INFO.IF_CODE is not null) - + Join acctIncomeFunction(ACCOUNT_INFO.IF_CODE = {target}.IF_CODE) Join acctIncomeFunctionNorm(ACCOUNT_INFO_NORM.IF_CODE = ACCOUNT_INFO.IF_CODE) Join incomeFunctionDeskHead(ACCOUNT_INFO.DESKHEAD_ID = {target}.DESKHEAD_ID) - - - + + + ) ###Mapping @@ -301,7 +303,7 @@ Mapping meta::relational::tests::mapping::distinct::model::mapping::testMapping code: IF_CODE, name : IF_NAME ) - + } ) @@ -316,7 +318,7 @@ Mapping meta::relational::tests::mapping::distinct::model::mapping::testMappingW code: IF_CODE, name : IF_NAME ) - + } ) @@ -332,15 +334,15 @@ Mapping meta::relational::tests::mapping::distinct::model::mapping::testMappingW ), IfName : [myDB]@otherInfo | IF_OTHER_INFO.IF_OTHER_NAME, Classification : [myDB]@otherInfo - + } - + Classification: Relational { name: [myDB]IF_OTHER_INFO.IF_OTHER_NAME, incomeFunctions: [myDB]@otherInfo } - + ) Mapping meta::relational::tests::mapping::distinct::model::mapping::testMappingWithJoinWithDup @@ -354,15 +356,15 @@ Mapping meta::relational::tests::mapping::distinct::model::mapping::testMappingW ), IfName : [myDB]@otherInfo2 | IF_OTHER_INFO.IF_OTHER_NAME, Classification : [myDB]@otherInfo2 - + } - + Classification: Relational { name: [myDB]IF_OTHER_INFO.IF_OTHER_NAME, incomeFunctions: [myDB]@otherInfo2 } - + ) @@ -377,22 +379,22 @@ Mapping meta::relational::tests::mapping::distinct::model::mapping::testMappingF ), incomeFunction: [myDB]@acctIncomeFunction } - + IncomeFunction: Relational { ~filter[myDB]typeFilter ~distinct scope([myDB]ACCOUNT_INFO) ( - + code: IF_CODE, name : IF_NAME ), Classification : [myDB]@otherInfo, deskHead: [myDB]@incomeFunctionDeskHead - + } - + DeskHead: Relational { ~distinct @@ -402,12 +404,12 @@ Mapping meta::relational::tests::mapping::distinct::model::mapping::testMappingF code: DESKHEAD_ID ) } - + Classification: Relational { name: [myDB]IF_OTHER_INFO.IF_OTHER_NAME } - + ) Mapping meta::relational::tests::mapping::distinct::model::mapping::testMappingWithCase @@ -417,14 +419,14 @@ Mapping meta::relational::tests::mapping::distinct::model::mapping::testMappingW ~distinct scope([myDB]ACCOUNT_INFO) ( - + code: IF_CODE, name : case(isNull(IF_NAME), 'C', IF_NAME) ), Classification : [myDB]@otherInfo - + } - + Classification: Relational { scope([myDB]IF_OTHER_INFO) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/dynaJoin/testDynaJoin.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/dynaJoin/testDynaJoin.pure index 50d5fe69f34..43479ca00ab 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/dynaJoin/testDynaJoin.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/dynaJoin/testDynaJoin.pure @@ -24,7 +24,7 @@ function <> meta::relational::tests::mapping::dynajoin::setU // Alloy exclusion reason: 4. Use getter relational protocol function <> meta::relational::tests::mapping::dynajoin::testGet():Boolean[1] { - let result = execute(|Account.all()->filter(a|$a.name=='Account 1'), meta::relational::tests::simpleRelationalMapping,meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let result = execute(|Account.all()->filter(a|$a.name=='Account 1'), meta::relational::tests::simpleRelationalMapping,meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertSameElements([%2014-12-03,%2014-12-04],$result.values->at(0).trades.latestEventDate); } @@ -32,7 +32,7 @@ function <> meta::relational::tests::mapping::dynajoin::testFilterOnM { let result = execute(|TradeEvent.all()->project([e|$e.eventType, e|$e.traderAddress],['eventType','traderAddress']), meta::relational::tests::simpleRelationalMapping, - meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->toOne(); assertEquals(['New,Hoboken', 'Correct,New York', 'Settle,New York', 'New,New York', 'Cancel,San Fransisco'], $tds.rows->map(r|$r.values->makeString(','))); assertEquals('select "root".eventType as "eventType", concat("addresstable_0".NAME, "addresstable_0".STREET) as "traderAddress" from tradeEventTable as "root" left outer join personTable as "persontable_0" on ("root".person_id = "persontable_0".ID) left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "persontable_0".ADDRESSID)', $result->sqlRemoveFormatting()); @@ -40,7 +40,7 @@ function <> meta::relational::tests::mapping::dynajoin::testFilterOnM function <> meta::relational::tests::mapping::dynajoin::testJoinWithAggregateFunction():Boolean[1] { - let result = execute(|Trade.all()->filter(t|$t.id->in([1,6])), meta::relational::tests::simpleRelationalMapping,meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let result = execute(|Trade.all()->filter(t|$t.id->in([1,6])), meta::relational::tests::simpleRelationalMapping,meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 2); assertSameElements(['1','6'],$result.values->map(r |$r.id->toString())); assertSameElements([%2014-12-03,%2014-12-04],$result.values->map(r |$r.latestEventDate)); @@ -49,13 +49,13 @@ function <> meta::relational::tests::mapping::dynajoin::testJoinWithA function <> meta::relational::tests::mapping::dynajoin::testFilterOnJoinWithAggregateFunction():Boolean[1] { - let result = execute(|Trade.all()->filter(t|$t.id->in([1,6]) && ($t.latestEventDate == '2014-12-03')), meta::relational::tests::simpleRelationalMapping,meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let result = execute(|Trade.all()->filter(t|$t.id->in([1,6]) && ($t.latestEventDate == '2014-12-03')), meta::relational::tests::simpleRelationalMapping,meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 1); assertSameElements(['1'],$result.values->map(r |$r.id->toString() )); assertSameElements([%2014-12-03],$result.values->map(r |$r.latestEventDate)); assertEquals('select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id and "tradeeventviewmaxtradeeventdate_0".trade_id in (1, 6)) where ("root".ID in (1, 6) and "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate = \'2014-12-03\')', $result->sqlRemoveFormatting() ); } - + function <> meta::relational::tests::mapping::dynajoin::testFilterOnJoinWithAggregateFunctionWithProject():Boolean[1] { let result = execute(|Trade.all()->filter(t|$t.id->in([1,6]))->project([ @@ -65,7 +65,7 @@ function <> meta::relational::tests::mapping::dynajoin::testFilterOnJ [ 'id', 'latestEventDate' - ]), meta::relational::tests::simpleRelationalMapping,meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + ]), meta::relational::tests::simpleRelationalMapping,meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->toOne(); assertSize($tds.rows, 2); assertEquals([1, %2014-12-03], $tds.rows->at(0).values); @@ -75,12 +75,12 @@ function <> meta::relational::tests::mapping::dynajoin::testFilterOnJ function <> meta::relational::tests::mapping::dynajoin::testSelfJoinWithAggregateFunction():Boolean[1] { - let toManyResult = execute(|Interaction.all()->filter(i|$i.source.firstName == 'Peter' && $i.target.lastName=='Johnson' ), meta::relational::tests::simpleRelationalMapping,meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let toManyResult = execute(|Interaction.all()->filter(i|$i.source.firstName == 'Peter' && $i.target.lastName=='Johnson' ), meta::relational::tests::simpleRelationalMapping,meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($toManyResult.values, 2); assertSameElements(['1','2'], $toManyResult.values->map(r |$r.id)); assertSameElements([6,6], $toManyResult.values->map(r |$r.longestInteractionBetweenSourceAndTarget)); - - let toOneResult = execute(|Interaction.all()->filter(i|$i.source.firstName == 'Peter' && $i.target.lastName=='Hill' ), meta::relational::tests::simpleRelationalMapping,meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + + let toOneResult = execute(|Interaction.all()->filter(i|$i.source.firstName == 'Peter' && $i.target.lastName=='Hill' ), meta::relational::tests::simpleRelationalMapping,meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($toOneResult.values, 1); assertSameElements(['2'], $toOneResult.values->map(r |$r.id)); assertSameElements([12], $toOneResult.values->map(r |$r.longestInteractionBetweenSourceAndTarget)); @@ -88,20 +88,20 @@ function <> meta::relational::tests::mapping::dynajoin::testSelfJoinW function <> meta::relational::tests::mapping::dynajoin::testJoinWithAggregateFunctionQualifier():Boolean[1] { - let result = execute(|Trade.all()->filter(t|$t.id->in([1,6]))->project([t | $t.id, t | $t.latestEvent.date, t | $t.daysToLastEvent], ['id', 'latestDate', 'daysToLastEvent']), - meta::relational::tests::simpleRelationalMapping,meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let result = execute(|Trade.all()->filter(t|$t.id->in([1,6]))->project([t | $t.id, t | $t.latestEvent.date, t | $t.daysToLastEvent], ['id', 'latestDate', 'daysToLastEvent']), + meta::relational::tests::simpleRelationalMapping,meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 2); assertSameElements(['1','6'],$result.values->toOne().rows.values); - + assertEquals('select root.ID as "pk_0", root.ID as "id", root.quantity as "quantity", root.tradeDate as "date", root.settlementDateTime as "settlementDateTime", tradeEventTable_d_d_d_d_m5.max_eventDate as "latestEventDate" from tradeTable as root left outer join (select tradeEventTable.trade_id, max(tradeEventTable.eventDate) as max_eventDate from tradeEventTable as tradeEventTable group by tradeEventTable.trade_id) as tradeEventTable_d_d_d_d_m5 on (root.ID = tradeEventTable_d_d_d_d_m5.trade_id) where root.ID in (1, 6)', $result->sqlRemoveFormatting()); } function <> meta::relational::tests::mapping::dynajoin::testJoinWithAggregateFunctionQualifierWithAssociation():Boolean[1] { - let result = execute(|Trade.all()->filter(t|$t.id->in([1,6]))->project([t | $t.id, t | $t.latestEvent.date, t | $t.latestEvent.eventType], ['id', 'date', 'type']), - meta::relational::tests::simpleRelationalMapping,meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let result = execute(|Trade.all()->filter(t|$t.id->in([1,6]))->project([t | $t.id, t | $t.latestEvent.date, t | $t.latestEvent.eventType], ['id', 'date', 'type']), + meta::relational::tests::simpleRelationalMapping,meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 2); assertSameElements(['1','6'],$result.values->toOne().rows.values); - + assertEquals('select root.ID as "pk_0", root.ID as "id", root.quantity as "quantity", root.tradeDate as "date", root.settlementDateTime as "settlementDateTime", tradeEventTable_d_d_d_d_m5.max_eventDate as "latestEventDate" from tradeTable as root left outer join (select tradeEventTable.trade_id, max(tradeEventTable.eventDate) as max_eventDate from tradeEventTable as tradeEventTable group by tradeEventTable.trade_id) as tradeEventTable_d_d_d_d_m5 on (root.ID = tradeEventTable_d_d_d_d_m5.trade_id) where root.ID in (1, 6)', $result->sqlRemoveFormatting()); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testEmbeddedMapping.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testEmbeddedMapping.pure index 6aaa94c27d5..778e2e2ae97 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testEmbeddedMapping.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testEmbeddedMapping.pure @@ -15,9 +15,11 @@ import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::tests::mapping::embedded::*; import meta::relational::functions::asserts::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; -import meta::relational::runtime::authentication::*; +import meta::external::store::relational::runtime::authentication::*; import meta::pure::profiles::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::execute::*; import meta::relational::mapping::*; @@ -29,11 +31,11 @@ import meta::relational::tests::mapping::embedded::model::domain::*; import meta::relational::tests::mapping::embedded::model::store::*; import meta::relational::tests::mapping::embedded::model::mapping::*; - + function <> meta::relational::tests::mapping::embedded::testDenormMappingOneToManyProjectUsingPaths():Boolean[1] { let result = execute(|Person.all()->project([#/Person/firstName#, #/Person/address/name!address#, #/Person/firm/legalName#, #/Person/firm/address/name!firmAddress#]), testMappingEmbedded, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals('firstName,address,legalName,firmAddress\n' + 'Peter,1 the street,Firm X,200 west\n' + 'John,5 Park Ave,Firm X,200 west\n' + 'Fabrice,7 Palo Alto,Firm A,3 somewhere\n', $result.values->toOne()->toCSV()); assertEquals('select "root".PERSON_FIRSTNAME as "firstName", "root".PERSON_ADDRESS_NAME as "address", "root".FIRM_LEGALNAME as "legalName", "root".FIRM_ADDRESS_NAME as "firmAddress" from PERSON_FIRM_DENORM as "root"', $result->sqlRemoveFormatting()); } @@ -61,7 +63,7 @@ function <> meta::relational::tests::mapping::embedded::testDenormMap f:Firm[1] | $f.employees.address.name] , ['address'] )->sort('address'), testMappingEmbeddedWithFirmDistinct, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals('address\n' + '1 the street\n' + '5 Park Ave\n' + '7 Palo Alto\n', $result.values->toOne()->toCSV()); assertEquals('select "person_firm_denorm_2".PERSON_ADDRESS_NAME as "address" from (select distinct "person_firm_denorm_1".FIRM_LEGALNAME as FIRM_LEGALNAME, "person_firm_denorm_1".FIRM_ID as FIRM_ID from PERSON_FIRM_DENORM as "person_firm_denorm_1") as "root" left outer join PERSON_FIRM_DENORM as "person_firm_denorm_2" on ("root".FIRM_ID = "person_firm_denorm_2".FIRM_ID) order by "address"', $result->sqlRemoveFormatting()); } @@ -72,7 +74,7 @@ function <> meta::relational::tests::mapping::embedded::testDenormMap let result = execute(|Person.all()->filter(p | $p.firm.legalName == 'Firm A') ->project([#/Person/firstName#, #/Person/address/name!address#, #/Person/firm/legalName#, #/Person/firm/address/name!firmAddress#]) , testMappingEmbedded, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals('firstName,address,legalName,firmAddress\n' + 'Fabrice,7 Palo Alto,Firm A,3 somewhere\n', $result.values->toOne()->toCSV()); assertEquals('select "root".PERSON_FIRSTNAME as "firstName", "root".PERSON_ADDRESS_NAME as "address", "root".FIRM_LEGALNAME as "legalName", "root".FIRM_ADDRESS_NAME as "firmAddress" from PERSON_FIRM_DENORM as "root" where "root".FIRM_LEGALNAME = \'Firm A\'', $result->sqlRemoveFormatting()); } @@ -83,7 +85,7 @@ function <> meta::relational::tests::mapping::embedded::testDenormMap let result = execute(|Person.all()->filter(p | $p.firm.legalName == 'Firm A' && $p.address.name->endsWith('Palo Alto')) ->project([#/Person/firstName#, #/Person/address/name!address#, #/Person/firm/legalName#, #/Person/firm/address/name!firmAddress#]) , testMappingEmbedded, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals('firstName,address,legalName,firmAddress\n' + 'Fabrice,7 Palo Alto,Firm A,3 somewhere\n', $result.values->toOne()->toCSV()); assertEquals('select "root".PERSON_FIRSTNAME as "firstName", "root".PERSON_ADDRESS_NAME as "address", "root".FIRM_LEGALNAME as "legalName", "root".FIRM_ADDRESS_NAME as "firmAddress" from PERSON_FIRM_DENORM as "root" where ("root".FIRM_LEGALNAME = \'Firm A\' and ("root".PERSON_ADDRESS_NAME is not null and "root".PERSON_ADDRESS_NAME like \'%Palo Alto\'))', $result->sqlRemoveFormatting()); } @@ -91,7 +93,7 @@ function <> meta::relational::tests::mapping::embedded::testDenormMap function <> meta::relational::tests::mapping::embedded::testDenormMappingOneToManyProjectWithEnum():Boolean[1] { let result = execute(|Person.all()->project([#/Person/firstName#, #/Person/address/type!address#]), testMappingEmbedded, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals('firstName,address\n' + 'Peter,CITY\n' + 'John,CITY\n' + 'Fabrice,REGION\n', $result.values->toOne()->toCSV()); assertEquals('select "root".PERSON_FIRSTNAME as "firstName", "root".PERSON_ADDRESS_TYPE as "address" from PERSON_FIRM_DENORM as "root"', $result->sqlRemoveFormatting()); } @@ -101,7 +103,7 @@ function <> meta::relational::tests::mapping::embedded::testDenormMap { let result = execute(|Person.all()->filter(p | $p.address.type == GeographicEntityType.CITY) ->project([#/Person/firstName#, #/Person/address/type!address#]), testMappingEmbedded, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals('firstName,address\n' + 'Peter,CITY\n' + 'John,CITY\n', $result.values->toOne()->toCSV()); assertEquals('select "root".PERSON_FIRSTNAME as "firstName", "root".PERSON_ADDRESS_TYPE as "address" from PERSON_FIRM_DENORM as "root" where "root".PERSON_ADDRESS_TYPE = 1', $result->sqlRemoveFormatting()); } @@ -110,7 +112,7 @@ function <> meta::relational::tests::mapping::embedded::testDenormMap { let result = execute(|Person.all()->filter(p | GeographicEntityType.CITY == $p.address.type) ->project([#/Person/firstName#, #/Person/address/type!address#]), testMappingEmbedded, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals('firstName,address\n' + 'Peter,CITY\n' + 'John,CITY\n', $result.values->toOne()->toCSV()); assertEquals('select "root".PERSON_FIRSTNAME as "firstName", "root".PERSON_ADDRESS_TYPE as "address" from PERSON_FIRM_DENORM as "root" where "root".PERSON_ADDRESS_TYPE = 1', $result->sqlRemoveFormatting()); } @@ -128,9 +130,9 @@ function <> meta::relational::tests::mapping::embedded::testGroupByEm ) ] , - ['Firm Name', 'Count'] + ['Firm Name', 'Count'] )->sort('Firm Name'), testMappingEmbedded, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals('Firm Name,Count\n' + 'Firm A,0.0\n' + 'Firm X,1.0\n', $result.values->toOne()->toCSV()); assertEqualsH2Compatible( 'select "root".FIRM_LEGALNAME as "Firm Name", sum(case when ("root".PERSON_ADDRESS_NAME is not null and "root".PERSON_ADDRESS_NAME like \'1%\') then 1.0 else 0.0 end) as "Count" from PERSON_FIRM_DENORM as "root" group by "Firm Name" order by "Firm Name"', @@ -142,9 +144,9 @@ function <> meta::relational::tests::mapping::embedded::testGroupByEm function <> meta::relational::tests::mapping::embedded::testProjectToEmbedded():Boolean[1] { let result = execute(|Firm.all()->project([#/Firm/legalName#, #/Firm/employees/address/name!address#])->sort(['legalName', 'address']), testMappingEmbeddedWithFirmDistinct, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals('legalName,address\n' + 'Firm A,7 Palo Alto\n' + 'Firm X,1 the street\n' + 'Firm X,5 Park Ave\n', $result.values->toOne()->toCSV()); - + //TODO - can optimize further to remove some self joins assertEquals('select "root".FIRM_LEGALNAME as "legalName", "person_firm_denorm_2".PERSON_ADDRESS_NAME as "address" from (select distinct "person_firm_denorm_1".FIRM_LEGALNAME as FIRM_LEGALNAME, "person_firm_denorm_1".FIRM_ID as FIRM_ID from PERSON_FIRM_DENORM as "person_firm_denorm_1") as "root" left outer join PERSON_FIRM_DENORM as "person_firm_denorm_2" on ("root".FIRM_ID = "person_firm_denorm_2".FIRM_ID) order by "legalName","address"', $result->sqlRemoveFormatting()); } @@ -153,17 +155,17 @@ function <> meta::relational::tests::mapping::embedded::testDenormMap { let result = execute(|Person.all()->project([#/Person/firstName#, #/Person/firm/nameAndAddress#]) , testMappingEmbedded, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals('firstName,nameAndAddress\n' + 'Peter,"Firm X,200 west"\n' + 'John,"Firm X,200 west"\n' + 'Fabrice,"Firm A,3 somewhere"\n', $result.values->toOne()->toCSV()); assertEquals('select "root".PERSON_FIRSTNAME as "firstName", concat("root".FIRM_LEGALNAME, \',\', "root".FIRM_ADDRESS_NAME) as "nameAndAddress" from PERSON_FIRM_DENORM as "root"', $result->sqlRemoveFormatting()); } function <> meta::relational::tests::mapping::embedded::testDenormMappingWithQualifierWithIfAndEquals():Boolean[1] { - let result = execute(|Person.all()->project([p | $p.firstName, + let result = execute(|Person.all()->project([p | $p.firstName, p | $p.firm.isFirmX], ['name', 'FirmX']) , testMappingEmbedded, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals('name,FirmX\n' + 'Peter,Yes\n' + 'John,Yes\n' + 'Fabrice,No\n', $result.values->toOne()->toCSV()); assertEquals('select "root".PERSON_FIRSTNAME as "name", case when "root".FIRM_LEGALNAME = \'Firm X\' then \'Yes\' else \'No\' end as "FirmX" from PERSON_FIRM_DENORM as "root"', $result->sqlRemoveFormatting()); } @@ -173,7 +175,7 @@ function <> meta::relational::tests::mapping::embedded::testFilterWit let result = execute(|Person.all()->filter(p | $p.firm.nameAndAddress->startsWith('Firm X')) ->project([#/Person/firstName#, #/Person/firm/nameAndAddress#]) , testMappingEmbedded, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals('firstName,nameAndAddress\n' + 'Peter,"Firm X,200 west"\n' + 'John,"Firm X,200 west"\n', $result.values->toOne()->toCSV()); assertEquals('select "root".PERSON_FIRSTNAME as "firstName", concat("root".FIRM_LEGALNAME, \',\', "root".FIRM_ADDRESS_NAME) as "nameAndAddress" from PERSON_FIRM_DENORM as "root" where (concat("root".FIRM_LEGALNAME, \',\', "root".FIRM_ADDRESS_NAME) is not null and concat("root".FIRM_LEGALNAME, \',\', "root".FIRM_ADDRESS_NAME) like \'Firm X%\')', $result->sqlRemoveFormatting()); } @@ -182,7 +184,7 @@ function <> meta::relational::tests::mapping::embedded::testFilterWit function <> meta::relational::tests::mapping::embedded::testExists():Boolean[1] { let result = execute(|Person.all()->filter(p | $p.firm->exists(a | $a.address.name == '200 west')) - ->project([p | $p.firstName, + ->project([p | $p.firstName, p | $p.firm.address.name], ['name', 'address']) , testMappingEmbedded, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->toOne(); @@ -194,10 +196,10 @@ function <> meta::relational::tests::mapping::embedded::testExists(): function <> meta::relational::tests::mapping::embedded::testIsEmpty():Boolean[1] { let result = execute(|Person.all()->filter(p | $p.firm.legalName->isEmpty()) - ->project([p | $p.firstName, + ->project([p | $p.firstName, p | $p.firm.legalName], ['name', 'firm']) , testMappingEmbedded, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals('name,firm\n\n', $result.values->toOne()->toCSV()); assertEquals('select "root".PERSON_FIRSTNAME as "name", "root".FIRM_LEGALNAME as "firm" from PERSON_FIRM_DENORM as "root" where "root".FIRM_LEGALNAME is null', $result->sqlRemoveFormatting()); } @@ -205,10 +207,10 @@ function <> meta::relational::tests::mapping::embedded::testIsEmpty() function <> meta::relational::tests::mapping::embedded::testIsEmptyType():Boolean[1] { let result = execute(|Person.all()->filter(p | $p.firm.address->isEmpty()) - ->project([p | $p.firstName, + ->project([p | $p.firstName, p | $p.firm.legalName], ['name', 'firm']) , testMappingEmbedded, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals('name,firm\n', $result.values->toOne()->toCSV()); assertEquals('select root.PERSON_FIRSTNAME as "name", root.FIRM_LEGALNAME as "firm" from PERSON_FIRM_DENORM as root where root.FIRM_ID is null', $result->sqlRemoveFormatting()); } @@ -220,7 +222,7 @@ function <> meta::relational::tests::mapping::embedded::testMapEmbedd ->project([p | $p.firm->map(f | $f.nameAndMaskedAddress) ], ['nameAndMaskedAddress']) , testMappingEmbedded, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals('nameAndMaskedAddress\n' + '"Firm X , Top Secret"\n' + '"Firm X , Top Secret"\n', $result.values->toOne()->toCSV()); assertEquals('select case when "root".FIRM_LEGALNAME = \'Firm X\' then concat("root".FIRM_LEGALNAME, \' , Top Secret\') else concat("root".FIRM_LEGALNAME, \',\', "root".FIRM_ADDRESS_NAME) end as "nameAndMaskedAddress" from PERSON_FIRM_DENORM as "root" where (concat("root".FIRM_LEGALNAME, \',\', "root".FIRM_ADDRESS_NAME) is not null and concat("root".FIRM_LEGALNAME, \',\', "root".FIRM_ADDRESS_NAME) like \'Firm X%\')', $result->sqlRemoveFormatting()); } @@ -236,16 +238,16 @@ function <> meta::relational::tests::mapping::embe function <> meta::relational::tests::mapping::embedded::testGetterTwoJoinTraversal():Boolean[1] { let result = execute(|Person.all()->filter(p | $p.firstName == 'Fabrice'), testMappingEmbedded, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + assertSize($result.values, 1); - + let person = $result.values->at(0); let firm = $person.firm; assertEquals('Firm A', $firm.legalName); let employees = $firm.employees; assertSize($result.values, 1); - + let employee = $employees->at(0); assertEquals($employee.firm.legalName, $firm.legalName); @@ -289,24 +291,24 @@ function <> meta::relational::tests::mapping::embedded::t } function meta::relational::tests::mapping::embedded::functionWithSameParamsNames(p:Firm[1]):Address[*] -{ +{ nestedFunctionWithSameParamsNames($p.employees->map(e | ^$e(lastName='changed'+$e.lastName))) ; } function meta::relational::tests::mapping::embedded::nestedFunctionWithSameParamsNames(x:Person[*]):Address[*] -{ +{ $x.address->filter(p| $p.type!= GeographicEntityType.CITY) ; } function <> meta::relational::tests::mapping::embedded::testRoutingQualifiedPropertySameVariableNamesAsFunctionParam():Boolean[1] { - + execute({|meta::relational::tests::model::simple::Person.all() ->project([pe| $pe.firm->toOne()->functionWithSameParamsNames().type ] ,['out'])}, meta::relational::tests::mapping::embedded::model::mapping::advancedEmbeddedWithChainedJoins, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + true; } @@ -314,79 +316,79 @@ function <> meta::relational::tests::mapping::embedded::t { let result = execute(|Person.all()->project([p | if($p.address->isNotEmpty(),|$p.address.name,|'')], ['street']) , testMappingEmbedded, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals('???', $result.values->toOne()->toCSV()); assertEquals('???', $result->sqlRemoveFormatting()); -} +} function <> meta::relational::tests::mapping::embedded::setUp():Boolean[1] { createTablesAndFillDb(); createTimeStamKeysTableAndFill(); - + } function meta::relational::tests::mapping::embedded::model::store::testDataTypeMappingRuntime():Runtime[1] { - meta::relational::tests::testRuntime(myDB); + meta::external::store::relational::tests::testRuntime(myDB); } function meta::relational::tests::mapping::embedded::model::store::createTablesAndFillDb():Boolean[1] { let connection = testDataTypeMappingRuntime().connectionByElement(myDB)->cast(@TestDatabaseConnection); - + meta::relational::functions::toDDL::dropAndCreateTableInDb(myDB, 'PERSON_FIRM_DENORM', $connection); - + let s = 'insert into PERSON_FIRM_DENORM (PERSON_ID, PERSON_FIRSTNAME, PERSON_LASTNAME, FIRM_ID, FIRM_LEGALNAME, PERSON_ADDRESS_NAME, PERSON_ADDRESS_TYPE, FIRM_ADDRESS_NAME, FIRM_ADDRESS_TYPE) values '; - + executeInDb($s + '(1, \'Peter\', \'Smith\', 1, \'Firm X\', \'1 the street\' , 1, \'200 west\',1);', $connection); executeInDb($s + '(2, \'John\', \'Johnson\', 1, \'Firm X\', \'5 Park Ave\', 1, \'200 west\',1);', $connection); executeInDb($s + '(5, \'Fabrice\', \'Roberts\', 2, \'Firm A\', \'7 Palo Alto\', 2, \'3 somewhere\',1);', $connection); meta::relational::functions::toDDL::dropAndCreateTableInDb(myDB, 'ORGANIZATIONS', $connection); - + let s1 = 'insert into ORGANIZATIONS (ORG_ID, NAME,FIRM_ID) values '; - + executeInDb($s1 + '(1, \'Team 1\',1);', $connection); executeInDb($s1 + '(2, \'Team 2\',1);', $connection); executeInDb($s1 + '(3, \'Team 3\',2);', $connection); meta::relational::functions::toDDL::dropAndCreateTableInDb(myDB, 'LOCATIONS', $connection); - + let s2 = 'insert into LOCATIONS (ID, PLACE) values '; - + executeInDb($s2 + '(1, \'Loc 1\');', $connection); executeInDb($s2 + '(2, \'Loc 2\');', $connection); meta::relational::functions::toDDL::dropAndCreateTableInDb(myDB, 'ADDRESS_LOCATION', $connection); - + let s3 = 'insert into ADDRESS_LOCATION (ADDRESS_ID, LOCATION_ID) values '; - + executeInDb($s3 + '(\'200 west\', 1);', $connection); executeInDb($s3 + '(\'3 somewhere\', 2);', $connection); - + true; } function meta::relational::tests::mapping::embedded::model::store::createTimeStamKeysTableAndFill():Boolean[1] { let connection = testDataTypeMappingRuntime().connectionByElement(myDB)->cast(@TestDatabaseConnection); - - + + meta::relational::functions::toDDL::dropAndCreateTableInDb(myDB, 'DATA_WITH_TIMESTAMPS_KEYS', $connection); - + let s = 'insert into DATA_WITH_TIMESTAMPS_KEYS (ID1, ID2, ID3, PROP_STRING, PROP_INT) values '; - + executeInDb($s + '(1, \'2016-01-25 10:00:00.000000000\', 11, \'foo\', 1);', $connection); executeInDb($s + '(2, CURRENT_TIMESTAMP(), 21, \'bar\', 2);', $connection); executeInDb($s + '(3, CURRENT_TIMESTAMP(), 31, \'\', 3);', $connection); executeInDb($s + '(4, \'2016-01-25 15:00:00.000000000\', 41, \'\', 1);', $connection); //will translate string to date with GMT (who thas that PURE or driver?) - - - let dataInTable= executeInDb('select * from DATA_WITH_TIMESTAMPS_KEYS ;', $connection); + + + let dataInTable= executeInDb('select * from DATA_WITH_TIMESTAMPS_KEYS ;', $connection); true; @@ -399,65 +401,65 @@ Database meta::relational::tests::mapping::embedded::model::store::myDB ( Table PERSON_FIRM_DENORM ( - PERSON_ID INT PRIMARY KEY, - PERSON_FIRSTNAME VARCHAR(200), + PERSON_ID INT PRIMARY KEY, + PERSON_FIRSTNAME VARCHAR(200), PERSON_LASTNAME VARCHAR(200), PERSON_ADDRESS_NAME VARCHAR(200), PERSON_ADDRESS_TYPE INT, PERSON_AGE INT, - FIRM_ID INT PRIMARY KEY, + FIRM_ID INT PRIMARY KEY, FIRM_LEGALNAME VARCHAR(200), FIRM_ADDRESS_NAME VARCHAR(200), FIRM_ADDRESS_TYPE INT ) - + Table FIRM_OTHER ( ID INT PRIMARY KEY, BETTER_LEGALNAME VARCHAR(200) ) - + Table DATA_WITH_TIMESTAMPS_KEYS - ( + ( ID1 INT PRIMARY KEY, - ID2 timestamp PRIMARY KEY, + ID2 timestamp PRIMARY KEY, ID3 INT , PROP_STRING VARCHAR(200), PROP_INT INT - ) + ) Join firmEmployees(PERSON_FIRM_DENORM.FIRM_ID = {target}.FIRM_ID) Join personFirmOther(PERSON_FIRM_DENORM.FIRM_ID = FIRM_OTHER.ID) - + Table FIRM_MIDDLETABLE ( - FIRM_ID INT PRIMARY KEY, + FIRM_ID INT PRIMARY KEY, ADDRESS_ID INT ) - + Table ADDRESSES ( ADDRESS_ID INT PRIMARY KEY, - TYPE VARCHAR(200), + TYPE VARCHAR(200), NAME VARCHAR(200) ) - + Table ORGANIZATIONS ( - ORG_ID INT PRIMARY KEY, - FIRM_ID INT, + ORG_ID INT PRIMARY KEY, + FIRM_ID INT, NAME VARCHAR(200) ) - + Table LOCATIONS(ID INT PRIMARY KEY, PLACE VARCHAR(200)) Table ADDRESS_LOCATION(ADDRESS_ID VARCHAR(200), LOCATION_ID INT ) - + Join personFirmMiddle(PERSON_FIRM_DENORM.FIRM_ID = FIRM_MIDDLETABLE.FIRM_ID) Join middleAddress(FIRM_MIDDLETABLE.ADDRESS_ID = ADDRESSES.ADDRESS_ID) - Join Firm_Organizations(PERSON_FIRM_DENORM.FIRM_ID = ORGANIZATIONS.FIRM_ID) - Join Firm_Address_location(PERSON_FIRM_DENORM.FIRM_ADDRESS_NAME = ADDRESS_LOCATION.ADDRESS_ID) + Join Firm_Organizations(PERSON_FIRM_DENORM.FIRM_ID = ORGANIZATIONS.FIRM_ID) + Join Firm_Address_location(PERSON_FIRM_DENORM.FIRM_ADDRESS_NAME = ADDRESS_LOCATION.ADDRESS_ID) Join Address_location(ADDRESS_LOCATION.LOCATION_ID = LOCATIONS.ID) - + ) ###Mapping @@ -485,13 +487,13 @@ Mapping meta::relational::tests::mapping::embedded::model::mapping::testMappingE firm ( legalName: FIRM_LEGALNAME, - + address ( name: FIRM_ADDRESS_NAME, type : EnumerationMapping GE : FIRM_ADDRESS_TYPE ), - + employees: [myDB]@firmEmployees ), address @@ -500,9 +502,9 @@ Mapping meta::relational::tests::mapping::embedded::model::mapping::testMappingE type : EnumerationMapping GE : PERSON_ADDRESS_TYPE ) ) - + } - + ) Mapping meta::relational::tests::mapping::embedded::model::mapping::testMappingEmbeddedWithFirmDistinct @@ -523,13 +525,13 @@ Mapping meta::relational::tests::mapping::embedded::model::mapping::testMappingE firm ( legalName: FIRM_LEGALNAME, - + address ( name: FIRM_ADDRESS_NAME, type : EnumerationMapping GE : FIRM_ADDRESS_TYPE ), - + employees: [myDB]@firmEmployees ), address @@ -538,9 +540,9 @@ Mapping meta::relational::tests::mapping::embedded::model::mapping::testMappingE type : EnumerationMapping GE : PERSON_ADDRESS_TYPE ) ) - + } - + Firm: Relational { ~distinct @@ -550,20 +552,20 @@ Mapping meta::relational::tests::mapping::embedded::model::mapping::testMappingE ), employees: [myDB]@firmEmployees } - + ) Mapping meta::relational::tests::mapping::embedded::model::mapping::advancedEmbeddedWithChainedJoins -( +( GeographicEntityType: EnumerationMapping GE { CITY: 1, REGION: 2 } - + Person : Relational { scope([myDB]PERSON_FIRM_DENORM) @@ -574,11 +576,11 @@ Mapping meta::relational::tests::mapping::embedded::model::mapping::advancedEmbe firm ( legalName : FIRM_LEGALNAME, - address: @personFirmMiddle > @middleAddress + address: @personFirmMiddle > @middleAddress ) ) } - + Address: Relational { scope([myDB]ADDRESSES) @@ -589,4 +591,4 @@ Mapping meta::relational::tests::mapping::embedded::model::mapping::advancedEmbe } -) \ No newline at end of file +) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testEmbeddedTimeStampkey.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testEmbeddedTimeStampkey.pure index 1223a7f91ad..2f43d2aac26 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testEmbeddedTimeStampkey.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testEmbeddedTimeStampkey.pure @@ -14,11 +14,11 @@ Class meta::relational::tests::mapping::embedded::model::ClassWithTimeStampKey { - <> - id1 : Integer[1]; + <> + id1 : Integer[1]; <> id2 : Date[1]; - id3 : String[1]; + id3 : String[1]; embeddedElement: meta::relational::tests::mapping::embedded::model::EmbeddedElement[0..1]; } @@ -26,7 +26,7 @@ Class meta::relational::tests::mapping::embedded::model::EmbeddedElement { propFloat: Float[0..1]; propString : String[0..1]; - propInt : Integer[0..1]; + propInt : Integer[0..1]; } @@ -47,7 +47,7 @@ Mapping meta::relational::tests::mapping::embedded::model::mapping::EmbeddedWith embeddedElement( propString: PROP_STRING, propInt: PROP_INT - ) + ) ) } ) @@ -55,9 +55,11 @@ Mapping meta::relational::tests::mapping::embedded::model::mapping::EmbeddedWith ###Pure +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; -import meta::relational::runtime::authentication::*; +import meta::external::store::relational::runtime::authentication::*; import meta::pure::profiles::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::execute::*; import meta::relational::tests::mapping::embedded::model::*; @@ -69,53 +71,53 @@ import meta::pure::functions::string::*; function meta::relational::tests::mapping::embedded::model::store::testDataTypeMappingRuntimeWithTz():Runtime[1] { - meta::relational::tests::testRuntime(myDB); + meta::external::store::relational::tests::testRuntime(myDB); } function <> meta::relational::tests::mapping::embedded::testTimeStampPrimaryKeyStringAsDate():Boolean[1] -{ - +{ + let stringDate = '2016-01-25 10:00:00.000000000'; //EST 2016-01-25 10:00:00......GMT : 2016-01-25 15:00:00 - + // translates string to date assumes string is time in EST, resulting date is traslated to GMT - let res = execute(| ClassWithTimeStampKey.all() + let res = execute(| ClassWithTimeStampKey.all() -> filter(x|$x.id2 == $stringDate ) ,EmbeddedWithTimstampKeys ,testDataTypeMappingRuntimeWithTz() , meta::relational::extension::relationalExtensions()); - - assertNotEmpty($res.values); + + assertNotEmpty($res.values); let first = $res.values->at(0); - assertEquals(1, $first.id1); + assertEquals(1, $first.id1); println('Filter with Date from String :' + $first.id2->toString()); - assertEquals($first.embeddedElement.propString, 'foo', 'Embedded Element is not supposed to be null'); - + assertEquals($first.embeddedElement.propString, 'foo', 'Embedded Element is not supposed to be null'); + true; } function <> meta::relational::tests::mapping::embedded::testTimeStampPrimaryKeyDateInFilter():Boolean[1] -{ - +{ + //date in UTC let date = meta::pure::functions::date::date(2016,1,25,15,0,00.000000000); //EST 20016-01-25 15:00:00...... print('date:'); println($date); - - let res2 = execute(| ClassWithTimeStampKey.all() + + let res2 = execute(| ClassWithTimeStampKey.all() -> filter(x|$x.id2 == $date ) ,EmbeddedWithTimstampKeys ,testDataTypeMappingRuntimeWithTz(), meta::relational::extension::relationalExtensions()); assertNotEmpty($res2.values); - + let first2 = $res2.values->at(0); println('Filter with date from date : ' + $first2.id2->toString()); assertEquals(4, $first2.id1); - assertEquals($first2.embeddedElement.propString, 'foo', 'Embedded Element is not supposed to be null'); - + assertEquals($first2.embeddedElement.propString, 'foo', 'Embedded Element is not supposed to be null'); + true; } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testInlineEmbeddedMapping.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testInlineEmbeddedMapping.pure index dcd303368f5..04f75d5073f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testInlineEmbeddedMapping.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/embedded/testInlineEmbeddedMapping.pure @@ -14,8 +14,11 @@ ###Pure +import meta::core::runtime::*; import meta::relational::functions::sqlQueryToString::h2::*; import meta::pure::runtime::*; +import meta::core::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::execute::*; import meta::relational::tests::csv::*; @@ -29,7 +32,7 @@ import meta::relational::tests::mapping::embedded::advanced::*; function meta::relational::tests::mapping::embedded::advanced::testRuntime():Runtime[1] { - meta::relational::tests::testRuntime(eDB); + meta::external::store::relational::tests::testRuntime(eDB); } function <> meta::relational::tests::mapping::embedded::advanced::testProjection():Boolean[1] @@ -80,8 +83,8 @@ function meta::relational::tests::mapping::embedded::advanced::testRuntime():Ru assertEquals('Bond Type,Profit\n' + '5 years,10.0\n' + '7 weeks,1.0\n', $result.values->toOne()->toCSV()); assertEqualsH2Compatible( - 'select "root".BOND_TYPE as "Bond Type", sum(case when "root".MARKET_NAME = \'LSE\' then 5.0 else 1.0 end) as "Profit" from PRODUCT_DENORM as "root" group by "Bond Type"', - 'select "root".BOND_TYPE as "Bond Type", sum(case when "root".MARKET_NAME = \'LSE\' then CAST(5.0 AS FLOAT) else CAST(1.0 AS FLOAT) end) as "Profit" from PRODUCT_DENORM as "root" group by "Bond Type"', + 'select "root".BOND_TYPE as "Bond Type", sum(case when "root".MARKET_NAME = \'LSE\' then 5.0 else 1.0 end) as "Profit" from PRODUCT_DENORM as "root" group by "Bond Type"', + 'select "root".BOND_TYPE as "Bond Type", sum(case when "root".MARKET_NAME = \'LSE\' then CAST(5.0 AS FLOAT) else CAST(1.0 AS FLOAT) end) as "Profit" from PRODUCT_DENORM as "root" group by "Bond Type"', $result->sqlRemoveFormatting() ); } @@ -97,8 +100,8 @@ function meta::relational::tests::mapping::embedded::advanced::testRuntime():Ru assertEquals('Bond Type,sum\n' + '5 years,10.0\n' + '7 weeks,1.0\n', $result.values->toOne()->toCSV()); assertEqualsH2Compatible( - 'select "root".BOND_TYPE as "Bond Type", sum(case when "root".BOND_TYPE like \'5%\' then 5.0 else 1.0 end) as "sum" from PRODUCT_DENORM as "root" group by "Bond Type"', - 'select "root".BOND_TYPE as "Bond Type", sum(case when "root".BOND_TYPE like \'5%\' then CAST(5.0 AS FLOAT) else CAST(1.0 AS FLOAT) end) as "sum" from PRODUCT_DENORM as "root" group by "Bond Type"', + 'select "root".BOND_TYPE as "Bond Type", sum(case when "root".BOND_TYPE like \'5%\' then 5.0 else 1.0 end) as "sum" from PRODUCT_DENORM as "root" group by "Bond Type"', + 'select "root".BOND_TYPE as "Bond Type", sum(case when "root".BOND_TYPE like \'5%\' then CAST(5.0 AS FLOAT) else CAST(1.0 AS FLOAT) end) as "sum" from PRODUCT_DENORM as "root" group by "Bond Type"', $result->sqlRemoveFormatting() ); } @@ -167,7 +170,7 @@ function meta::relational::tests::mapping::embedded::advanced::store::createTabl executeInDb($c + '(5, \'Party 3\');', $connection); let d = 'insert into BondClassificationTable(PRODUCT_ID, TYPE) values '; - + executeInDb($d + '(1, \'Corporate\');', $connection); let e = 'insert into Person (id, state, unitNumber, in_z, out_z ) values '; @@ -197,12 +200,12 @@ Enum meta::relational::tests::mapping::embedded::advanced::model::PartyType Class meta::relational::tests::mapping::embedded::advanced::model::Party { name : String[1]; - type: PartyType[1]; + type: PartyType[1]; address: Address[1]; description(){ $this.name+$this.type->toString(); - }:String[1]; - + }:String[1]; + } @@ -212,8 +215,8 @@ Class meta::relational::tests::mapping::embedded::advanced::model::BondDetail type : String[1]; status: Status[1]; issuer:Party[1]; - holder:Party[1]; - + holder:Party[1]; + isBond(){true}:Boolean[1]; duration(){if($this.type->startsWith('5'),|5,|0)}:Integer[1]; durationStartsWith(start:String[1]){ $this.type->startsWith($start)}:Boolean[1]; @@ -232,7 +235,7 @@ Class meta::relational::tests::mapping::embedded::advanced::model::Product Class meta::relational::tests::mapping::embedded::advanced::model::BondClassification { - type : String[1]; + type : String[1]; } Association meta::relational::tests::mapping::embedded::advanced::model::BondDetailBondClassification @@ -321,13 +324,13 @@ Database meta::relational::tests::mapping::embedded::advanced::store::eDB STATUS VARCHAR(10), HOLDERID INT ) - + Table Party ( id INT PRIMARY KEY, name VARCHAR(200) ) - + Table BondClassificationTable ( PRODUCT_ID INT PRIMARY KEY, @@ -386,18 +389,18 @@ Mapping meta::relational::tests::mapping::embedded::advanced::mapping::testMappi type: BOND_TYPE ) } - + meta::relational::tests::mapping::embedded::advanced::model::BondClassification[BondClassification] : Relational { type : [eDB]BondClassificationTable.type } - + ) Mapping meta::relational::tests::mapping::embedded::advanced::mapping::testMappingEmbeddedParent ( include meta::relational::tests::mapping::embedded::advanced::mapping::testMappingEmbedded - + meta::relational::tests::mapping::embedded::advanced::model::BondDetailBondClassification : Relational { AssociationMapping diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/enumeration/testEnumerationMapping.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/enumeration/testEnumerationMapping.pure index 433200c46ad..14372f28981 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/enumeration/testEnumerationMapping.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/enumeration/testEnumerationMapping.pure @@ -36,9 +36,11 @@ import meta::relational::tests::query::enumeration::*; import meta::relational::tests::mapping::enumeration::*; import meta::relational::tests::projection::enumeration::*; +import meta::core::runtime::*; import meta::pure::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; -import meta::relational::runtime::authentication::*; +import meta::external::store::relational::runtime::authentication::*; function meta::relational::tests::mapping::enumeration::createTablesAndFillDb():Boolean[1] { @@ -56,7 +58,7 @@ function meta::relational::tests::mapping::enumeration::createTablesAndFillDb(): executeInDb('insert into eqTradeTable (id, product, type, qty) values (3, \'MSFT\', \'SELL\', 5)', $connection); executeInDb('insert into eqTradeTable (id, product, type, qty) values (4, \'AAPL\', \'BUY\', 12)', $connection); - + dropAndCreateTableInDb(productDB, 'Product_Synonym', $connection); dropAndCreateTableInDb(productDB, 'Product', $connection); @@ -66,7 +68,7 @@ function meta::relational::tests::mapping::enumeration::createTablesAndFillDb(): executeInDb('insert into Product_Synonym (id, product_id, type, value) values (12, 2, \'CUS\', \'9UPZX235F\')', $connection); executeInDb('insert into Product_Synonym (id, product_id, type, value) values (13, 1, \'GSN\', \'987123\')', $connection); - + true; } @@ -87,7 +89,7 @@ function <> meta::relational::tests::query::enumeration::set function meta::relational::tests::mapping::enumeration::enumTestRuntime():Runtime[1] { - meta::relational::tests::testRuntime(myDB); + meta::external::store::relational::tests::testRuntime(myDB); } function <> meta::relational::tests::mapping::enumeration::testEnumTheSame():Boolean[1] @@ -103,7 +105,7 @@ function <> meta::relational::tests::mapping::enumeration::testEnumTh function <> meta::relational::tests::mapping::enumeration::testMapping():Boolean[1] { - + let result = execute(|Employee.all(), employeeTestMapping, enumTestRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 3); assertSameElements(['Alice', 'Bob', 'Curtis'], $result.values->map(e | $e.name)); @@ -122,7 +124,7 @@ function <> meta::relational::tests::mapping::enumeration::testMappin assertEquals(%2012-08-25, $curtis.dateOfHire); assertEquals(EmployeeType.CONTRACT, $curtis.type); assertEquals([], $curtis.active); - + //Test null mappings let newResult = execute(|Employee.all(), employeeTestMappingWithFunction, enumTestRuntime(), meta::relational::extension::relationalExtensions()); let newBob = $newResult.values->filter(e | $e.name == 'Bob')->toOne(); @@ -131,7 +133,7 @@ function <> meta::relational::tests::mapping::enumeration::testMappin function <> meta::relational::tests::query::enumeration::testQueryWithEnum():Boolean[1] { - + let fteResult = execute(|Employee.all()->filter(e | $e.type == EmployeeType.FULL_TIME), employeeTestMapping, enumTestRuntime(), meta::relational::extension::relationalExtensions()); assertSize($fteResult.values, 1); assertSameElements(['Bob'], $fteResult.values->map(e | $e.name)); @@ -179,7 +181,7 @@ function <> meta::relational::tests::mapping::enumeration::testEnumMa function <> meta::relational::tests::projection::enumeration::testProjectionWithEnum():Boolean[1] { - + let result = execute(|Employee.all()->project([#/Employee/name#, #/Employee/dateOfHire#, #/Employee/type#]), employeeTestMapping, enumTestRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); @@ -189,7 +191,7 @@ function <> meta::relational::tests::projection::enumeration::testPro function <> meta::relational::tests::projection::enumeration::testProjectionWithEnumUsingLambda():Boolean[1] { - + let result = execute(|Employee.all()->project([#/Employee/name#, #/Employee/dateOfHire#, e|$e.type], ['name', 'doh', 'type']), employeeTestMapping, enumTestRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); @@ -199,7 +201,7 @@ function <> meta::relational::tests::projection::enumeration::testPro function <> meta::relational::tests::projection::enumeration::testProjectionWithEnumAndFunctionsUsingLambda():Boolean[1] { - + let result = execute(|Employee.all()->project([f|$f.name+'_test', e|$e.type], ['name', 'type']), employeeTestMapping, enumTestRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); @@ -209,17 +211,17 @@ function <> meta::relational::tests::projection::enumeration::testPro function <> meta::relational::tests::query::enumeration::testInQueryWithEnum():Boolean[1] { - + let result = execute(|Employee.all()->filter(e|$e.type->toOne()->in([EmployeeType.CONTRACT])), employeeTestMapping, enumTestRuntime(), meta::relational::extension::relationalExtensions()); assertEquals(EmployeeType.CONTRACT, $result.values->at(0).type); - + let result2 = execute(|Employee.all()->filter(e|$e.type->toOne()->in([EmployeeType.CONTRACT, EmployeeType.FULL_TIME])), employeeTestMapping, enumTestRuntime(), meta::relational::extension::relationalExtensions()); assertSameElements([EmployeeType.CONTRACT,EmployeeType.FULL_TIME], $result2.values.type->removeDuplicates()); } function <> meta::relational::tests::query::enumeration::testAggregationFunctionWithEnum():Boolean[1] { - + let result = execute(|Employee.all()->groupBy( [e|$e.type], agg( @@ -230,16 +232,16 @@ function <> meta::relational::tests::query::enumeration::testAggregat ), employeeTestMapping, enumTestRuntime(), meta::relational::extension::relationalExtensions()); let sorted = $result.values->at(0)->sort(['Type']); - + //TODO - should merge the two contract lines into a single count assertEquals([EmployeeType.CONTRACT, 1, EmployeeType.CONTRACT, 1, EmployeeType.FULL_TIME, 1], $sorted.rows.values); - + } function <> meta::relational::tests::projection::enumeration::testProjectionWithInheritedEnum():Boolean[1] { - + let result = execute(|EquityTrade.all()->project([#/EquityTrade/product#, #/EquityTrade/type#, #/EquityTrade/quantity#]), tradeMapping, enumTestRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); @@ -250,7 +252,7 @@ function <> meta::relational::tests::projection::enumeration::testPro function <> meta::relational::tests::projection::enumeration::testProjectionWithEnumThroughAssociation():Boolean[1] { - + let result = execute(|Product.all()->project([#/Product/synonyms/type#, p|$p.synonyms.type, p|$p.synonyms->map(s|$s.type == ProductSynonymType.CUSIP)], ['a','b','c']), productMapping, enumTestRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); @@ -263,10 +265,10 @@ function <> meta::relational::tests::projection::enumeration::testPro function <> meta::relational::tests::projection::enumeration::testProjectionWithEnumQualifierParameter():Boolean[1] { - - let result = execute(|Product.all()->project([#/Product/description#, - #/Product/synonymsByType(ProductSynonymType.CUSIP)/value!cusip#, - #/Product/gsn/value!gsn#]), + + let result = execute(|Product.all()->project([#/Product/description#, + #/Product/synonymsByType(ProductSynonymType.CUSIP)/value!cusip#, + #/Product/gsn/value!gsn#]), productMapping, enumTestRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); @@ -278,9 +280,9 @@ function <> meta::relational::tests::projection::enumeration::testPro function <> meta::relational::tests::projection::enumeration::testFilterWithEnumQualifierParameter():Boolean[1] { - + let result = execute(|Product.all()->filter(p | $p.synonymsByType(ProductSynonymType.CUSIP)->toOne().value == '9UF81235F')->project( - [#/Product/description#]), + [#/Product/description#]), productMapping, enumTestRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); @@ -290,9 +292,9 @@ function <> meta::relational::tests::projection::enumeration::testFil function <> meta::relational::tests::projection::enumeration::testProjectWithIfWhereOneSideIsEnumLiteral():Boolean[1] { - + let result = execute(|Product.all()->project([p|$p.description, p|if($p.description == 'My Product 2',|ProductSynonymType.GS_NUMBER,|$p.synonyms.type)], ['description','type']), productMapping, enumTestRuntime(), meta::relational::extension::relationalExtensions()); - + let tds = $result.values->at(0); assertSize($tds.rows, 3); assertEquals(['My Product', ProductSynonymType.CUSIP], $tds.rows->at(0).values); @@ -303,9 +305,9 @@ function <> meta::relational::tests::projection::enumeration::testPro function <> meta::relational::tests::projection::enumeration::testProjectWithIfWhereOneSideIsEnumLiteral2():Boolean[1] { let value = ProductSynonymType.GS_NUMBER; - + let result = execute(|Product.all()->project([p|$p.description, p|if($p.description == 'My Product 2',|$value,|$p.synonyms.type)], ['description','type']), productMapping, enumTestRuntime(), meta::relational::extension::relationalExtensions()); - + let tds = $result.values->at(0); assertSize($tds.rows, 3); assertEquals(['My Product', ProductSynonymType.CUSIP], $tds.rows->at(0).values); @@ -315,9 +317,9 @@ function <> meta::relational::tests::projection::e function <> meta::relational::tests::projection::enumeration::testProjectWithIfWhereBothSidesUseTheSameEnumMapping():Boolean[1] { - + let result = execute(|Product.all()->project([p|$p.description, p|if($p.description == 'My Product 2',|$p.synonyms.type,|$p.synonyms.type)], ['description','type']), productMapping, enumTestRuntime(), meta::relational::extension::relationalExtensions()); - + let tds = $result.values->at(0); assertSize($tds.rows, 3); assertEquals(['My Product', ProductSynonymType.CUSIP], $tds.rows->at(0).values); @@ -328,9 +330,9 @@ function <> meta::relational::tests::projection::enumeration::testPro function <> meta::relational::tests::projection::enumeration::testProjectWithIfWhereEnumEqualsClassProp():Boolean[1] { - let result = execute(|meta::relational::tests::model::simple::Synonym.all()->project([p|if($p.type == meta::relational::tests::model::simple::ProductSynonymType.CUSIP,|$p.name,|$p.typeAsString)], ['ress']), meta::relational::tests::simpleRelationalMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let result = execute(|meta::relational::tests::model::simple::Synonym.all()->project([p|if($p.type == meta::relational::tests::model::simple::ProductSynonymType.CUSIP,|$p.name,|$p.typeAsString)], ['ress']), meta::relational::tests::simpleRelationalMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertSameElements(['CUSIP1', 'ISIN', 'CUSIP2', 'ISIN', 'CUSIP3', 'ISIN'], $result.values.rows.values); let tds = $result.values->at(0); assertSize($tds.rows, 6); assertSameSQL('select case when "root".TYPE = \'CUSIP\' then "root".NAME else "root".TYPE end as "ress" from productSchema.synonymTable as "root"', $result); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/extends/setUp.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/extends/setUp.pure index 054f0304daf..c5665d483f2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/extends/setUp.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/extends/setUp.pure @@ -147,20 +147,20 @@ Database meta::relational::tests::mapping::extend::store::testDatabase Table DEF(id INT PRIMARY KEY, dName VARCHAR(20), eName VARCHAR(20), fName VARCHAR(20)) Table GHI(id INT PRIMARY KEY, gName VARCHAR(20), hName VARCHAR(20), iName VARCHAR(20)) Table JKL(id INT PRIMARY KEY, jName VARCHAR(20), kName VARCHAR(20), lName VARCHAR(20)) - + Table ABC2(id INT PRIMARY KEY, aName VARCHAR(20), bName VARCHAR(20), cName VARCHAR(20), m1Id INT, m2Id INT,m3Id INT, m4Id INT, n1Id INT, n2Id INT, n3Id INT, o1Id INT, o2Id INT) Table DEF2(id INT PRIMARY KEY, dName VARCHAR(20), eName VARCHAR(20), fName VARCHAR(20)) Table GHI2(id INT PRIMARY KEY, gName VARCHAR(20), hName VARCHAR(20), iName VARCHAR(20)) Table JKL2(id INT PRIMARY KEY, jName VARCHAR(20), kName VARCHAR(20), lName VARCHAR(20)) - + Join AE(ABC.id = DEF.id) Join BH(ABC.id = GHI.id) Join CK(ABC.id = JKL.id) - + Join A2E2(ABC2.id = DEF2.id) Join B2H2(ABC2.id = GHI2.id) Join C2K2(ABC2.id = JKL2.id) - + Filter AFilter(ABC.aName = 'aName1') Filter CFilter(ABC.cName = 'cName1') ) @@ -183,12 +183,14 @@ import meta::relational::metamodel::execute::*; import meta::relational::functions::toDDL::*; import meta::relational::tests::mapping::extend::model::*; import meta::relational::tests::mapping::extend::store::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function meta::relational::tests::mapping::extend::testRuntime():Runtime[1] { - meta::relational::tests::testRuntime(testDatabase); + meta::external::store::relational::tests::testRuntime(testDatabase); } function <> meta::relational::tests::mapping::extend::setUp():Boolean[1] @@ -199,7 +201,7 @@ function <> meta::relational::tests::mapping::extend::setUp( dropAndCreateTableInDb(testDatabase, 'DEF', $connection); dropAndCreateTableInDb(testDatabase, 'GHI', $connection); dropAndCreateTableInDb(testDatabase, 'JKL', $connection); - + dropAndCreateTableInDb(testDatabase, 'ABC2', $connection); dropAndCreateTableInDb(testDatabase, 'DEF2', $connection); dropAndCreateTableInDb(testDatabase, 'GHI2', $connection); @@ -214,17 +216,17 @@ function <> meta::relational::tests::mapping::extend::setUp( executeInDb('insert into DEF (id, dName, eName, fName) values (2, \'dName2\', \'eName2\', \'fName2\');', $connection); executeInDb('insert into DEF (id, dName, eName, fName) values (3, \'dName1\', \'eName1\', \'fName1\');', $connection); executeInDb('insert into DEF (id, dName, eName, fName) values (4, \'dName2\', \'eName2\', \'fName2\');', $connection); - + executeInDb('insert into GHI (id, gName, hName, iName) values (1, \'gName1\', \'hName1\', \'iName1\');', $connection); executeInDb('insert into GHI (id, gName, hName, iName) values (2, \'gName2\', \'hName2\', \'iName2\');', $connection); executeInDb('insert into GHI (id, gName, hName, iName) values (3, \'gName1\', \'hName1\', \'iName1\');', $connection); executeInDb('insert into GHI (id, gName, hName, iName) values (4, \'gName2\', \'hName2\', \'iName2\');', $connection); - + executeInDb('insert into JKL (id, jName, kName, lName) values (1, \'jName1\', \'kName1\', \'lName1\');', $connection); executeInDb('insert into JKL (id, jName, kName, lName) values (2, \'jName2\', \'kName2\', \'lName2\');', $connection); executeInDb('insert into JKL (id, jName, kName, lName) values (3, \'jName1\', \'kName1\', \'lName1\');', $connection); executeInDb('insert into JKL (id, jName, kName, lName) values (4, \'jName2\', \'kName2\', \'lName2\');', $connection); - + executeInDb('insert into ABC2 (id, aName, bName, cName, m1Id, m2Id, m3Id, m4Id, n1Id, n2Id, n3Id, o1Id, o2Id) values (1, \'aName1\', \'bName1\', \'cName1\', 1, 2, 3, 4, 1, 2, 3, 1 ,2);', $connection); executeInDb('insert into ABC2 (id, aName, bName, cName, m1Id, m2Id, m3Id, m4Id, n1Id, n2Id, n3Id, o1Id, o2Id) values (2, \'aName2\', \'bName2\', \'cName2\', 2, 3, 4, 5, 2, 3, 4, 2 ,3);', $connection); executeInDb('insert into ABC2 (id, aName, bName, cName, m1Id, m2Id, m3Id, m4Id, n1Id, n2Id, n3Id, o1Id, o2Id) values (3, \'aName1\', \'bName1\', \'cName1\', 3, 4, 5, 6, 3, 4, 5, 3 ,4);', $connection); @@ -234,12 +236,12 @@ function <> meta::relational::tests::mapping::extend::setUp( executeInDb('insert into DEF2 (id, dName, eName, fName) values (2, \'dName2\', \'eName2\', \'fName2\');', $connection); executeInDb('insert into DEF2 (id, dName, eName, fName) values (3, \'dName1\', \'eName1\', \'fName1\');', $connection); executeInDb('insert into DEF2 (id, dName, eName, fName) values (4, \'dName2\', \'eName2\', \'fName2\');', $connection); - + executeInDb('insert into GHI2 (id, gName, hName, iName) values (1, \'gName1\', \'hName1\', \'iName1\');', $connection); executeInDb('insert into GHI2 (id, gName, hName, iName) values (2, \'gName2\', \'hName2\', \'iName2\');', $connection); executeInDb('insert into GHI2 (id, gName, hName, iName) values (3, \'gName1\', \'hName1\', \'iName1\');', $connection); executeInDb('insert into GHI2 (id, gName, hName, iName) values (4, \'gName2\', \'hName2\', \'iName2\');', $connection); - + executeInDb('insert into JKL2 (id, jName, kName, lName) values (1, \'jName1\', \'kName1\', \'lName1\');', $connection); executeInDb('insert into JKL2 (id, jName, kName, lName) values (2, \'jName2\', \'kName2\', \'lName2\');', $connection); executeInDb('insert into JKL2 (id, jName, kName, lName) values (3, \'jName1\', \'kName1\', \'lName1\');', $connection); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/filter/testFilterMapping.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/filter/testFilterMapping.pure index 706a203b702..e662ad7fa18 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/filter/testFilterMapping.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/filter/testFilterMapping.pure @@ -14,6 +14,7 @@ import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::mapping::filter::*; import meta::relational::tests::model::simple::*; @@ -29,6 +30,7 @@ function <> meta::relational::tests::mapping::filter::filterMappingWi ###Mapping import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::mapping::filter::*; import meta::relational::tests::model::simple::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/filter/testFilterMappingTree.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/filter/testFilterMappingTree.pure index ce4d2558351..1149319d20f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/filter/testFilterMappingTree.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/filter/testFilterMappingTree.pure @@ -15,9 +15,11 @@ import meta::relational::tests::mapping::filter::model::domain::*; import meta::relational::tests::mapping::filter::model::store::*; import meta::relational::tests::mapping::filter::model::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; -import meta::relational::runtime::authentication::*; +import meta::external::store::relational::runtime::authentication::*; import meta::pure::profiles::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::execute::*; import meta::relational::mapping::*; @@ -112,13 +114,13 @@ Class meta::relational::tests::mapping::filter::model::domain::Org name : String[1]; parent: Org[0..1]; children: Org[*]; - + parentName: String[0..1]; } function meta::relational::tests::mapping::filter::model::store::testDataTypeMappingRuntime():Runtime[1] { - meta::relational::tests::testRuntime(myDB); + meta::external::store::relational::tests::testRuntime(myDB); } function meta::relational::tests::mapping::filter::model::store::createTablesAndFillDb():Boolean[1] @@ -158,28 +160,28 @@ Database meta::relational::tests::mapping::filter::model::store::myDB parentId INT, name VARCHAR(200) ) - + Table otherTable ( orgTableId INT PRIMARY KEY, filterVal INT ) - + Join OrgOrgParent ( orgTable.parentId = {target}.id ) - + Join OrgParentOrg ( orgTable.id = {target}.parentId ) - + Join OrgTableOtherTable ( orgTable.id = otherTable.orgTableId ) - + Filter myFilter(orgTable.filterVal <= 4) Filter myFilter2(otherTable.filterVal <= 4) ) @@ -193,14 +195,14 @@ Mapping meta::relational::tests::mapping::filter::model::mapping::orgTestMapping Org: Relational { ~filter [myDB]myFilter - + scope([myDB]orgTable) ( name: [myDB]name, parent : @OrgOrgParent, children : @OrgParentOrg ) - + } ) @@ -221,9 +223,9 @@ Mapping meta::relational::tests::mapping::filter::model::mapping::orgTestMapping Org: Relational { ~filter [myDB]myFilter - + name: [myDB]orgTable.name, parentName: [myDB]@OrgOrgParent > @OrgOrgParent | orgTable.name - + } ) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/groupBy/testGroupBy.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/groupBy/testGroupBy.pure index 878896bf073..2f7e629d665 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/groupBy/testGroupBy.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/groupBy/testGroupBy.pure @@ -12,9 +12,11 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; -import meta::relational::runtime::authentication::*; +import meta::external::store::relational::runtime::authentication::*; import meta::pure::profiles::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::execute::*; import meta::relational::mapping::*; @@ -134,7 +136,7 @@ function <> meta::relational::tests::mapping::groupBy::setUp function meta::relational::tests::mapping::groupBy::model::store::testDataTypeMappingRuntime():Runtime[1] { - meta::relational::tests::testRuntime(myDB); + meta::external::store::relational::tests::testRuntime(myDB); } @@ -307,4 +309,4 @@ Mapping meta::relational::tests::mapping::groupBy::model::mapping::testMappingWi description: [myDB]PRODUCT_EXPLODED.DESCRIPTION } -) \ No newline at end of file +) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inClause/testInClauseForJoinsAndFilters.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inClause/testInClauseForJoinsAndFilters.pure index 4197f63eded..5d46ad12c08 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inClause/testInClauseForJoinsAndFilters.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inClause/testInClauseForJoinsAndFilters.pure @@ -17,6 +17,7 @@ import meta::relational::tests::model::simple::*; import meta::relational::tests::csv::*; import meta::relational::functions::asserts::*; import meta::relational::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::tests::mapping::in::*; @@ -62,7 +63,7 @@ meta::relational::tests::mapping::in::setUp():Boolean[1] function meta::relational::tests::mapping::in::testRuntime():Runtime[1] { - meta::relational::tests::testRuntime(db); + meta::external::store::relational::tests::testRuntime(db); } ###Relational diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/include/testStoreSubstitution.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/include/testStoreSubstitution.pure index c75def8a737..0cd7cf82098 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/include/testStoreSubstitution.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/include/testStoreSubstitution.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::mapping::*; function <> meta::relational::tests::mapping::include::testStoreSubstitution():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inheritance/testInheritanceMultipleQueries.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inheritance/testInheritanceMultipleQueries.pure index 0dee814aebc..6265d0b1a07 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inheritance/testInheritanceMultipleQueries.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inheritance/testInheritanceMultipleQueries.pure @@ -17,9 +17,11 @@ import meta::relational::tests::mapping::inheritance::cross::*; import meta::relational::tests::mapping::inheritance::relational::*; import meta::relational::tests::model::inheritance::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::pure::mapping::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; function <> meta::relational::tests::mapping::inheritance::cross::testAssociation():Boolean[1] @@ -88,10 +90,10 @@ import meta::relational::tests::model::inheritance::*; Mapping meta::relational::tests::mapping::inheritance::cross::inheritanceMappingCross ( include meta::relational::tests::mapping::inheritance::inheritanceMain - + RoadVehicle : Operation { meta::pure::router::operations::special_union_OperationSetImplementation_1__SetImplementation_MANY_(map1, map2) } -) \ No newline at end of file +) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inheritance/testInheritanceRelational.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inheritance/testInheritanceRelational.pure index 53df85db077..2d69ae2392e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inheritance/testInheritanceRelational.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inheritance/testInheritanceRelational.pure @@ -17,9 +17,11 @@ import meta::relational::tests::mapping::inheritance::cross::*; import meta::relational::tests::mapping::inheritance::relational::*; import meta::relational::tests::model::inheritance::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::pure::mapping::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; function <> meta::relational::tests::mapping::inheritance::setUp():Boolean[1] @@ -67,7 +69,7 @@ function <> meta::relational::tests::mapping::inheritance::relational let result1 = execute(|RoadVehicle.all(), inheritanceMappingDB, testRuntime(), meta::relational::extension::relationalExtensions()).values; assertEquals(5, $result1->size()); assertSameElements([4,4,4,3,2], $result1.wheelCount); - assertSameElements([Car,Car,Car,Bicycle, Bicycle], $result1->map(r|$r->genericType().rawType)); + assertSameElements([Car,Car,Car,Bicycle, Bicycle], $result1->map(r|$r->genericType().rawType)); if ($result1->at(0).elementOverride->isNotEmpty(), |assertSameElements([1,1,2,2,3], $result1->map(r|$r->getHiddenPayload()->cast(@meta::relational::mapping::KeyInformation).pk)), |true @@ -189,13 +191,13 @@ function meta::relational::tests::mapping::inheritance::createTablesAndFillDb(): executeInDb('insert into Vehicle (id, PersonID, carMechanicName, vehicleType) values (1, 1, \'Mohammed\',\'C\');', $connection); executeInDb('insert into Vehicle (id, PersonID, bicycleMechanicName, vehicleType) values (2, 1, \'David\',\'B\');', $connection); executeInDb('insert into Vehicle (id, PersonID, carMechanicName, vehicleType) values (3, 2, \'Mohammed\',\'C\');', $connection); - + executeInDb('Drop table if exists Car;', $connection); executeInDb('Create Table Car (id INT, c_PersonID VARCHAR(200), db_car_wheelCount INTEGER, c_description VARCHAR(200), engineType INT);', $connection); executeInDb('insert into Car (id, c_PersonID, db_car_wheelCount, c_description, engineType) values (1, 1, 4, \'Peugeot\', 1);', $connection); executeInDb('insert into Car (id, c_PersonID, db_car_wheelCount, c_description, engineType) values (2, 1, 4, \'Renault\', 2);', $connection); executeInDb('insert into Car (id, c_PersonID, db_car_wheelCount, c_description, engineType) values (3, 2, 4, \'Nissan\', 3);', $connection); - + executeInDb('Drop table if exists Bicycle;', $connection); executeInDb('Create Table Bicycle(id INT, b_PersonID VARCHAR(200), db_bic_wheelCount INTEGER, b_description VARCHAR(200));', $connection); executeInDb('insert into Bicycle (id, b_PersonID, db_bic_wheelCount, b_description) values (1, 1, 2, \'MBK\');', $connection); @@ -229,7 +231,7 @@ Database meta::relational::tests::mapping::inheritance::myDB ( ID INT PRIMARY KEY, db_car_wheelCount INT, - engineType INT, + engineType INT, c_Description VARCHAR(200), c_PersonID INT ) @@ -239,7 +241,7 @@ Database meta::relational::tests::mapping::inheritance::myDB ID INT PRIMARY KEY, name VARCHAR(200) ) - + Table Bicycle ( ID INT PRIMARY KEY, @@ -247,7 +249,7 @@ Database meta::relational::tests::mapping::inheritance::myDB b_Description VARCHAR(200), b_PersonID INT ) - + Table Unleaded ( ID INT PRIMARY KEY, @@ -255,19 +257,19 @@ Database meta::relational::tests::mapping::inheritance::myDB octaneLevel INT, description VARCHAR(200) ) - + Table CombustionCharacteristics ( ID INT PRIMARY KEY, idealCompression INT ) - + Table Owner ( VEHICLE_ID INT PRIMARY KEY, name VARCHAR(200) ) - + Join CarOwner(Car.ID = Owner.VEHICLE_ID) Join BicycleOwner(Bicycle.ID = Owner.VEHICLE_ID) Join PersonCar(Person.ID = Car.c_PersonID) @@ -285,7 +287,7 @@ Database meta::relational::tests::mapping::inheritance::oneTableForInheritanceHi ID INT PRIMARY KEY, name VARCHAR(200) ) - + Table Vehicle ( ID INT PRIMARY KEY, @@ -293,7 +295,7 @@ Database meta::relational::tests::mapping::inheritance::oneTableForInheritanceHi carMechanicName VARCHAR(200), bicycleMechanicName VARCHAR(200) ) - + Join PersonVehicle(Person.ID = Vehicle.PersonID) ) @@ -312,12 +314,12 @@ Mapping meta::relational::tests::mapping::inheritance::inheritanceWithEmbedded vehicles[map2] : @PersonVehicle ) } - + Vehicle : Operation { meta::pure::router::operations::inheritance_OperationSetImplementation_1__SetImplementation_MANY_() } - + Car[map1]: Relational { mechanic(name : [oneTableForInheritanceHierarchyDB]Vehicle.carMechanicName) @@ -345,7 +347,7 @@ Mapping meta::relational::tests::mapping::inheritance::inheritanceMain cars[map1] : [myDB]@PersonCar, bicycles[map2] : [myDB]@PersonBicycle } - + Car[map1]: Relational { id : [myDB] Car.ID, @@ -364,7 +366,7 @@ Mapping meta::relational::tests::mapping::inheritance::inheritanceMain person : [myDB]@PersonBicycle, owner(name : 'Unknown') } - + Unleaded : Relational { octaneLevel : [myDB] Unleaded.octaneLevel, @@ -376,7 +378,7 @@ Mapping meta::relational::tests::mapping::inheritance::inheritanceMain { idealCompression : [myDB] CombustionCharacteristics.idealCompression } - + VehicleOwner : Relational { name : [myDB] Owner.name @@ -404,7 +406,7 @@ Mapping meta::relational::tests::mapping::inheritance::relational::inheritanceMa { meta::pure::router::operations::inheritance_OperationSetImplementation_1__SetImplementation_MANY_() } - + Vehicle : Operation { meta::pure::router::operations::inheritance_OperationSetImplementation_1__SetImplementation_MANY_() @@ -414,4 +416,4 @@ Mapping meta::relational::tests::mapping::inheritance::relational::inheritanceMa { meta::pure::router::operations::inheritance_OperationSetImplementation_1__SetImplementation_MANY_() } -) \ No newline at end of file +) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inheritance/testInheritanceRelationalMultiJoins.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inheritance/testInheritanceRelationalMultiJoins.pure index d330af2598e..67b35990a21 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inheritance/testInheritanceRelationalMultiJoins.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inheritance/testInheritanceRelationalMultiJoins.pure @@ -17,9 +17,11 @@ import meta::relational::functions::asserts::*; import meta::relational::tests::mapping::inheritance::relational::multiJoins::*; import meta::relational::tests::model::inheritance::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::pure::mapping::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; function <> meta::relational::tests::mapping::inheritance::relational::multiJoins::setUp():Boolean[1] @@ -67,7 +69,7 @@ function meta::relational::tests::mapping::inheritance::relational::multiJoins:: executeInDb('insert into Car (id, c_PersonID, db_car_wheelCount, c_description, engineType) values (1, 1, 4, \'Peugeot\', 1);', $connection); executeInDb('insert into Car (id, c_PersonID, db_car_wheelCount, c_description, engineType) values (2, 1, 4, \'Renault\', 2);', $connection); executeInDb('insert into Car (id, c_PersonID, db_car_wheelCount, c_description, engineType) values (3, 2, 4, \'Nissan\', 3);', $connection); - + executeInDb('Drop table if exists Bicycle;', $connection); executeInDb('Create Table Bicycle(id INT, b_PersonID VARCHAR(200), db_bic_wheelCount INTEGER, b_description VARCHAR(200));', $connection); executeInDb('insert into Bicycle (id, b_PersonID, db_bic_wheelCount, b_description) values (1, 1, 2, \'MBK\');', $connection); @@ -86,18 +88,18 @@ Database meta::relational::tests::mapping::inheritance::relational::multiJoins:: ID INT PRIMARY KEY, name VARCHAR(200) ) - + Table PersonMidTable ( ID1 INT PRIMARY KEY, - ID2 INT PRIMARY KEY + ID2 INT PRIMARY KEY ) Table Car ( ID INT PRIMARY KEY, db_car_wheelCount INT, - engineType INT, + engineType INT, c_Description VARCHAR(200), c_PersonID INT ) @@ -109,7 +111,7 @@ Database meta::relational::tests::mapping::inheritance::relational::multiJoins:: b_Description VARCHAR(200), b_PersonID INT ) - + Join PersonPersonMid(Person.ID = PersonMidTable.ID1) Join PersonCar(PersonMidTable.ID2 = Car.c_PersonID) Join PersonBicycle(PersonMidTable.ID2 = Bicycle.b_PersonID) @@ -129,14 +131,14 @@ Mapping meta::relational::tests::mapping::inheritance::relational::multiJoins::i roadVehicles[map1] : [myDB]@PersonPersonMid > @PersonCar, roadVehicles[map2] : [myDB]@PersonPersonMid > @PersonBicycle } - + Car[map1]: Relational { id : [myDB] Car.ID, engineType : EnumerationMapping engineTypeMapping : [myDB] Car.engineType, wheelCount : [myDB] Car.db_car_wheelCount, description : [myDB] Car.c_Description, - person : [myDB] @PersonCar > @PersonPersonMid + person : [myDB] @PersonCar > @PersonPersonMid } Bicycle[map2] : Relational @@ -144,7 +146,7 @@ Mapping meta::relational::tests::mapping::inheritance::relational::multiJoins::i id : [myDB] Bicycle.ID, wheelCount : [myDB] Bicycle.db_bic_wheelCount, description : [myDB] Bicycle.b_Description, - person : [myDB] @PersonBicycle > @PersonPersonMid + person : [myDB] @PersonBicycle > @PersonPersonMid } EngineType: EnumerationMapping engineTypeMapping @@ -155,7 +157,7 @@ Mapping meta::relational::tests::mapping::inheritance::relational::multiJoins::i W: [4], X: [5] } - + Vehicle : Operation { meta::pure::router::operations::inheritance_OperationSetImplementation_1__SetImplementation_MANY_() @@ -166,4 +168,4 @@ Mapping meta::relational::tests::mapping::inheritance::relational::multiJoins::i meta::pure::router::operations::inheritance_OperationSetImplementation_1__SetImplementation_MANY_() } -) \ No newline at end of file +) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inheritance/testInheritanceRelationalSelfJoin.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inheritance/testInheritanceRelationalSelfJoin.pure index d7e1597e10f..f980db67d37 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inheritance/testInheritanceRelationalSelfJoin.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inheritance/testInheritanceRelationalSelfJoin.pure @@ -17,9 +17,11 @@ import meta::relational::tests::mapping::inheritance::cross::*; import meta::relational::tests::mapping::inheritance::relational::*; import meta::relational::tests::model::inheritance::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::pure::mapping::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; function <> meta::relational::tests::mapping::inheritance::relational::selfJoin::setUp():Boolean[1] @@ -61,11 +63,11 @@ Database meta::relational::tests::mapping::inheritance::relational::selfJoin::my vid INT, name VARCHAR(200), wheelCount INT, - engineType INT, + engineType INT, description VARCHAR(200), personId INT ) - + Join PersonCar(OneTable.ID = {target}.personId) Join PersonBicycle(OneTable.ID = {target}.personId) Filter PersonFilter(OneTable.type = 1) @@ -89,7 +91,7 @@ Mapping meta::relational::tests::mapping::inheritance::relational::selfJoin::inh roadVehicles[map1] : [myDB]@PersonCar, roadVehicles[map2] : [myDB]@PersonBicycle } - + Car[map1]: Relational { ~filter [myDB]CarFilter @@ -127,4 +129,4 @@ Mapping meta::relational::tests::mapping::inheritance::relational::selfJoin::inh { meta::pure::router::operations::inheritance_OperationSetImplementation_1__SetImplementation_MANY_() } -) \ No newline at end of file +) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inheritance/testInheritanceRelationalUnion.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inheritance/testInheritanceRelationalUnion.pure index fab302e466b..9c5f4ecec4d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inheritance/testInheritanceRelationalUnion.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inheritance/testInheritanceRelationalUnion.pure @@ -18,9 +18,11 @@ import meta::relational::tests::mapping::inheritance::relational::*; import meta::relational::tests::mapping::inheritance::relational::union::*; import meta::relational::tests::model::inheritance::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::pure::mapping::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; function <> meta::relational::tests::mapping::inheritance::relational::union::setUp():Boolean[1] @@ -172,7 +174,7 @@ Database meta::relational::tests::mapping::inheritance::relational::union::myDB ( ID INT PRIMARY KEY, db_car_wheelCount INT, - engineType INT, + engineType INT, c_Description VARCHAR(200), c_PersonID INT ) @@ -181,7 +183,7 @@ Database meta::relational::tests::mapping::inheritance::relational::union::myDB ( ID INT PRIMARY KEY, db_car_wheelCount INT, - engineType INT, + engineType INT, c_Description VARCHAR(200), c_PersonID INT ) @@ -193,7 +195,7 @@ Database meta::relational::tests::mapping::inheritance::relational::union::myDB b_Description VARCHAR(200), b_PersonID INT ) - + Join PersonCar1(Person.ID = Car1.c_PersonID) Join PersonCar2(Person.ID = Car2.c_PersonID) Join PersonBicycle(Person.ID = Bicycle.b_PersonID) @@ -215,7 +217,7 @@ Mapping meta::relational::tests::mapping::inheritance::relational::union::inheri roadVehicles[car2] : [myDB]@PersonCar2, roadVehicles[map2] : [myDB]@PersonBicycle } - + Vehicle : Operation { meta::pure::router::operations::inheritance_OperationSetImplementation_1__SetImplementation_MANY_() @@ -228,10 +230,10 @@ Mapping meta::relational::tests::mapping::inheritance::relational::union::inheri *Car:Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(car1, car2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(car1, car2) } - - + + Car[car1]: Relational { id : [myDB] Car1.ID, @@ -266,4 +268,4 @@ Mapping meta::relational::tests::mapping::inheritance::relational::union::inheri W: [4], X: [5] } -) \ No newline at end of file +) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inheritance/testSubtypeMapping.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inheritance/testSubtypeMapping.pure index 636ebbe9779..4a4410c9cf4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inheritance/testSubtypeMapping.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/inheritance/testSubtypeMapping.pure @@ -16,8 +16,10 @@ import meta::relational::functions::asserts::*; import meta::relational::metamodel::execute::*; import meta::relational::tests::mapping::subType::*; import meta::pure::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; @@ -90,6 +92,7 @@ Association meta::relational::tests::mapping::subType::ProductRating import meta::relational::tests::model::simple::*; import meta::relational::tests::mapping::subType::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; Mapping meta::relational::tests::mapping::subType::SubTypeMappingValidWhenMappedExplicitly ( @@ -99,25 +102,26 @@ Mapping meta::relational::tests::mapping::subType::SubTypeMappingValidWhenMapped { description:[MyDb]PRODUCT_RATING.RATING } - + MyProduct extends [meta_relational_tests_model_simple_Product] : Relational { - + } - + ProductRating: Relational { AssociationMapping ( product[rating,meta_relational_tests_mapping_subType_MyProduct]:[MyDb]@Product_Rating, - rating[meta_relational_tests_mapping_subType_MyProduct, rating]:[MyDb]@Product_Rating - ) + rating[meta_relational_tests_mapping_subType_MyProduct, rating]:[MyDb]@Product_Rating + ) } ) ###Mapping import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::mapping::subType::*; Mapping meta::relational::tests::mapping::subType::MyMapping @@ -143,6 +147,7 @@ Mapping meta::relational::tests::mapping::subType::MyMapping ###Mapping import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::mapping::subType::*; Mapping meta::relational::tests::mapping::subType::MyMappingWithIds @@ -165,8 +170,8 @@ Mapping meta::relational::tests::mapping::subType::MyMappingWithIds Database meta::relational::tests::mapping::subType::MyDb ( include meta::relational::tests::db - + Table PRODUCT_RATING(PRODUCT_ID INTEGER PRIMARY KEY, RATING VARCHAR(24)) - - Join Product_Rating(productSchema.productTable.ID = PRODUCT_RATING.PRODUCT_ID) -) \ No newline at end of file + + Join Product_Rating(productSchema.productTable.ID = PRODUCT_RATING.PRODUCT_ID) +) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/innerJoin/testIsolationSetUp.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/innerJoin/testIsolationSetUp.pure index 61bb624082a..cb1c8d6ba7e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/innerJoin/testIsolationSetUp.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/innerJoin/testIsolationSetUp.pure @@ -14,14 +14,16 @@ import meta::relational::tests::mapping::innerjoin::isolation::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; +import meta::core::runtime::*; import meta::pure::runtime::*; Class meta::relational::tests::mapping::innerjoin::isolation::Car { type: String[1]; id: Integer[1]; org: AutomobileUnion[0..1]; - + } Class meta::relational::tests::mapping::innerjoin::isolation::Motorcycle @@ -29,7 +31,7 @@ Class meta::relational::tests::mapping::innerjoin::isolation::Motorcycle type: String[1]; id: Integer[1]; org: AutomobileUnion[0..1]; - + } Class meta::relational::tests::mapping::innerjoin::isolation::AutomobileUnion @@ -40,7 +42,7 @@ Class meta::relational::tests::mapping::innerjoin::isolation::AutomobileUnion children: AutomobileUnion[0..*]; publicAncestor() { - $this.ancestors->filter(a|$a.isPrivate =='Y')->toOne() + $this.ancestors->filter(a|$a.isPrivate =='Y')->toOne() }:AutomobileUnion[1]; publicAncestor2() @@ -51,7 +53,7 @@ Class meta::relational::tests::mapping::innerjoin::isolation::AutomobileUnion function meta::relational::tests::mapping::innerjoin::isolation::autoMobileRuntime():Runtime[1] { - meta::relational::tests::testRuntime(AutomobileDb); + meta::external::store::relational::tests::testRuntime(AutomobileDb); } function meta::relational::tests::mapping::innerjoin::isolation::initAutomobileDb(): Boolean[1] @@ -63,7 +65,7 @@ function meta::relational::tests::mapping::innerjoin::isolation::initAutomobileD executeInDb('insert into AutomobileTable (vehicleId, type, orgId,orgName,orgType) values (2, \'Mercedes2\',18,\'GSorgtoReturn2\' ,\'private\');', $connection); executeInDb('insert into AutomobileTable (vehicleId, type, orgId,orgName,orgType) values (3, \'Mercedes3\',19,\'GSorg3\' ,\'public3\');', $connection); executeInDb('insert into AutomobileTable (vehicleId, type, orgId,orgName,orgType) values (4, \'Mercedes4\',20,\'GSorg4\' ,\'public4\');', $connection); - + executeInDb('Drop table if exists AutoAncestor;', $connection); executeInDb('Create Table AutoAncestor (childId INT ,parentId INT);',$connection); executeInDb('insert into AutoAncestor (childId,parentId) values (17,20);',$connection); @@ -91,7 +93,7 @@ Mapping meta::relational::tests::mapping::innerjoin::isolation::AutoMapping ) ) } - + Motorcycle :Relational { scope([AutomobileDb]) @@ -105,7 +107,7 @@ Mapping meta::relational::tests::mapping::innerjoin::isolation::AutoMapping ) ) } - + AutomobileUnion:Relational { scope([AutomobileDb]) @@ -115,7 +117,7 @@ Mapping meta::relational::tests::mapping::innerjoin::isolation::AutoMapping ancestors: @Auto_Ancestor > (INNER)@AncestorAuto ) } - + ) ###Relational Database meta::relational::tests::mapping::innerjoin::isolation::AutomobileDb @@ -128,14 +130,14 @@ Database meta::relational::tests::mapping::innerjoin::isolation::AutomobileDb orgName VARCHAR(40), orgtype VARCHAR(40) ) - + Table AutoAncestor ( childId INT , parentId INT PRIMARY KEY ) - + Join Auto_Auto(AutomobileTable.vehicleId = {target}.vehicleId and AutomobileTable.orgId<100) Join Auto_Ancestor(AutomobileTable.orgId = AutoAncestor.childId) Join AncestorAuto( AutoAncestor.parentId = AutomobileTable.orgId) -) \ No newline at end of file +) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/join/advancedRelationalSetUp.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/join/advancedRelationalSetUp.pure index a47941c7e31..11dd534456a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/join/advancedRelationalSetUp.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/join/advancedRelationalSetUp.pure @@ -19,7 +19,7 @@ Database meta::relational::tests::mapping::join::model::store::db Table personExtensionTable (ID INT PRIMARY KEY, PERSON_ID INT, EXTRAINFO VARCHAR(200), NUMBER INT,AGE INT) Table firmTable(ID INT PRIMARY KEY, LEGALNAME VARCHAR(200), ADDRESSID INT, FLAG INT) Table addressTable(ID INT PRIMARY KEY, TYPE INT, NAME VARCHAR(200), STREET VARCHAR(100), COMMENTS VARCHAR(100)) - + Table firmPersonBridgeTable(FIRM_ID INT PRIMARY KEY, PERSON_ID INT PRIMARY KEY) Table TypeTable (ID INT PRIMARY KEY, TypeProperty VARCHAR(200)) @@ -30,7 +30,7 @@ Database meta::relational::tests::mapping::join::model::store::db Table tradeTable(ID INT PRIMARY KEY, accountID INT, quantity INT, tradeDate DATE) Table accountTable(ID VARCHAR(200) PRIMARY KEY, name VARCHAR(200), createDate DATE) - + Table organizationTable(name VARCHAR(200) PRIMARY KEY, firmID INT PRIMARY KEY) Table membershipTable(name VARCHAR(200) PRIMARY KEY, memberID INT PRIMARY KEY) @@ -42,15 +42,15 @@ Database meta::relational::tests::mapping::join::model::store::db Join MiddleTable_PersonExtension(MiddleTable.LINKID = personExtensionTable.ID and MiddleTable.LINKID <> 999999999 and personExtensionTable.ID != -99999999) Join Person_PersonExtension(personTable.ID = personExtensionTable.PERSON_ID) Join Address_Firm(addressTable.ID = firmTable.ADDRESSID) - + Join Firm_FirmPersonBridge(firmTable.ID = firmPersonBridgeTable.FIRM_ID) Join Person_FirmPersonBridge(personTable.ID = firmPersonBridgeTable.PERSON_ID) - + Join TypeTableTableA (TypeTable.ID = TypeTableA.ID) Join TypeTableTableB (TypeTable.ID = TypeTableB.ID) Join TypeTableTableBNow (TypeTable.ID = TypeTableB.ID and TypeTableB.IN_Z <= now() and now() < TypeTableB.OUT_Z) Join TypeTableTableBThen (TypeTable.ID = TypeTableB.ID and TypeTableB.IN_Z <= '2013-07-15 13:52:22.370' and '2013-07-15 13:52:22.370' < TypeTableB.OUT_Z) - + Join Trade_Account(convertVarchar128(tradeTable.accountID) = accountTable.ID) Join Org_Membership(membershipTable.name = organizationTable.name) @@ -58,12 +58,12 @@ Database meta::relational::tests::mapping::join::model::store::db Join Firm_Org(organizationTable.firmID = firmTable.ID) Join Person_schemaBPerson(schemaB.personTable.ID = personTable.ID) - + Schema schemaB ( - Table personTable(ID INT PRIMARY KEY,FIRSTNAME VARCHAR(200), LASTNAME VARCHAR(200)) + Table personTable(ID INT PRIMARY KEY,FIRSTNAME VARCHAR(200), LASTNAME VARCHAR(200)) ) - + ) @@ -90,7 +90,7 @@ Mapping meta::relational::tests::mapping::join::model::mapping::advancedRelation legalName : [db]firmTable.LEGALNAME, employees : [db]@Firm_Person } - + TypeBuiltOutOfMultipleJoins : Relational { tableProperty : [db]default.TypeTable.TypeProperty, @@ -126,14 +126,14 @@ Mapping meta::relational::tests::mapping::join::model::mapping::advancedRelation legalName : [db]firmTable.LEGALNAME, employees : [db]@Firm_Person } - + ) Mapping meta::relational::tests::mapping::join::model::mapping::advancedRelationalMappingIncludePersonAndFirm ( include advancedRelationalMappingForPerson include meta::relational::tests::mapping::join::model::mapping::advancedRelationalMappingForFirm - + TypeBuiltOutOfMultipleJoins : Relational { tableProperty : [db]default.TypeTable.TypeProperty, @@ -276,7 +276,7 @@ Mapping meta::relational::tests::mapping::join::model::mapping::chainedJoins age: AGE ), firm : [db]@Person_FirmPersonBridge > @Firm_FirmPersonBridge - + } Firm : Relational @@ -284,8 +284,8 @@ Mapping meta::relational::tests::mapping::join::model::mapping::chainedJoins legalName : [db]firmTable.LEGALNAME, employees : [db]@Firm_FirmPersonBridge > @Person_FirmPersonBridge } - - + + ) Mapping meta::relational::tests::mapping::join::model::mapping::chainedJoinsInner @@ -306,10 +306,10 @@ Mapping meta::relational::tests::mapping::join::model::mapping::chainedJoinsInne legalName : [db]firmTable.LEGALNAME, employees : [db]@Firm_FirmPersonBridge > (INNER) @Person_FirmPersonBridge, address( - name : [db] case(or(equal(@Firm_FirmPersonBridge > (INNER) @Person_FirmPersonBridge |firmTable.ADDRESSID, 1), equal(@Address_Firm |addressTable.ID, 1)), 'UK', 'Europe') + name : [db] case(or(equal(@Firm_FirmPersonBridge > (INNER) @Person_FirmPersonBridge |firmTable.ADDRESSID, 1), equal(@Address_Firm |addressTable.ID, 1)), 'UK', 'Europe') ) } - + ) Mapping meta::relational::tests::mapping::join::model::mapping::chainedInnerJoinsForPrimitive @@ -323,7 +323,7 @@ Mapping meta::relational::tests::mapping::join::model::mapping::chainedInnerJoin extraInformation : [db]@Person_FirmPersonBridge > (INNER) @Firm_FirmPersonBridge | trim(firmTable.LEGALNAME) ) } - + ) ###Mapping @@ -332,18 +332,18 @@ import meta::relational::tests::mapping::join::model::store::*; import meta::relational::tests::mapping::join::model::domain::*; Mapping meta::relational::tests::mapping::join::model::mapping::MappingForAccountAndTrade -( +( Trade : Relational - { + { id : [db]tradeTable.ID, quantity :[db] tradeTable.quantity, - account : [db] @Trade_Account, - date : [db] tradeTable.tradeDate + account : [db] @Trade_Account, + date : [db] tradeTable.tradeDate } Account : Relational - { + { name : [db] accountTable.name, createDate :[db] accountTable.createDate } @@ -388,14 +388,16 @@ Mapping meta::relational::tests::mapping::join::model::mapping::JoinSchemaBWithS ###Pure import meta::relational::tests::mapping::join::model::store::*; import meta::pure::profiles::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; function meta::relational::tests::mapping::join::model::store::testRuntime():Runtime[1] { - meta::relational::tests::testRuntime(db); + meta::external::store::relational::tests::testRuntime(db); } function <> meta::relational::tests::mapping::join::setUp():Boolean[1] @@ -428,7 +430,7 @@ function meta::relational::tests::mapping::join::model::store::createTablesAndFi executeInDb('insert into PersonExtensionTable (id, person_id, extraInfo,age) values (5, 5, \'extra 5\',21);', $connection); executeInDb('insert into PersonExtensionTable (id, person_id, extraInfo,age) values (6, 6, \'extra 6\',22);', $connection); executeInDb('insert into PersonExtensionTable (id, person_id, extraInfo,age) values (7, 7, \'extra 7\',23);', $connection); - + meta::relational::functions::toDDL::dropAndCreateTableInDb(db, 'firmPersonBridgeTable', $connection); executeInDb('insert into firmPersonBridgeTable (FIRM_ID, PERSON_ID) values (1, 1);', $connection); executeInDb('insert into firmPersonBridgeTable (FIRM_ID, PERSON_ID) values (1, 2);', $connection); @@ -437,7 +439,7 @@ function meta::relational::tests::mapping::join::model::store::createTablesAndFi executeInDb('insert into firmPersonBridgeTable (FIRM_ID, PERSON_ID) values (2, 5);', $connection); executeInDb('insert into firmPersonBridgeTable (FIRM_ID, PERSON_ID) values (3, 6);', $connection); //deliberate choice that firm 4 has no employees - + executeInDb('Drop table if exists MiddleTable;', $connection); executeInDb('Create Table MiddleTable(id INT, LINKID INT);', $connection); executeInDb('insert into MiddleTable (id, LINKID) values (1, 1);', $connection); @@ -475,11 +477,11 @@ function meta::relational::tests::mapping::join::model::store::createTablesAndFi executeInDb('insert into TypeTableB (id, TypePropertyB, IN_Z, OUT_Z) values (1, \'Row1B\', \'2014-09-24 00:00:00\', \'9999-12-31 23:59:59.999\');', $connection); executeInDb('insert into TypeTableB (id, TypePropertyB, IN_Z, OUT_Z) values (2, \'Row2B\', \'2014-09-24 00:00:00\', \'9999-12-31 23:59:59.999\');', $connection); executeInDb('insert into TypeTableB (id, TypePropertyB, IN_Z, OUT_Z) values (3, \'Row3B\', \'2014-09-24 00:00:00\', \'9999-12-31 23:59:59.999\');', $connection); - + executeInDb('Drop table if exists accountTable;', $connection); executeInDb('Create Table accountTable(ID VARCHAR(200), name VARCHAR(200), createDate DATE);', $connection); executeInDb('insert into accountTable (ID, name, createDate) values (\'1\', \'Account 1\', \'2013-12-01\');', $connection); - + executeInDb('Drop table if exists tradeTable;', $connection); executeInDb('Create Table tradeTable(id INT, accountId INT, quantity FLOAT, tradeDate DATE);', $connection); executeInDb('insert into tradeTable (id, accountId, quantity, tradeDate) values (1, 1, 25, \'2013-12-01\');', $connection); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/merge/testMerge.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/merge/testMerge.pure index 4b8b40e5c75..ccc52345781 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/merge/testMerge.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/merge/testMerge.pure @@ -15,15 +15,19 @@ import meta::relational::tests::mapping::merge::*; import meta::relational::tests::csv::*; import meta::relational::metamodel::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::mapping::union::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::mapping::union::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::model::simple::*; @@ -72,7 +76,7 @@ function meta::relational::tests::mapping::merge::createTables():Boolean[1] function meta::relational::tests::mapping::merge::createRuntime(db:Database[1]):Runtime[1] { - meta::relational::tests::testRuntime($db); + meta::external::store::relational::tests::testRuntime($db); } function <> meta::relational::tests::mapping::merge::testDynafunctionMerge():Boolean[1] @@ -198,4 +202,4 @@ Database meta::relational::tests::mapping::merge::MergeAliasDb Join firmSet2_addressJoin( FirmSet2.LegalName = addressSet.ownerName) -) \ No newline at end of file +) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/multigrain/testMultiGrainTableMappings.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/multigrain/testMultiGrainTableMappings.pure index a3ca29cd533..b4887c8353c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/multigrain/testMultiGrainTableMappings.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/multigrain/testMultiGrainTableMappings.pure @@ -13,9 +13,11 @@ // limitations under the License. import meta::relational::functions::asserts::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; -import meta::relational::runtime::authentication::*; +import meta::external::store::relational::runtime::authentication::*; import meta::pure::profiles::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::execute::*; import meta::relational::mapping::*; @@ -31,7 +33,7 @@ import meta::relational::tests::mapping::multigrain::model::mapping::*; function <> meta::relational::tests::mapping::multigrain::testProjectPerson():Boolean[1] { let result = execute(|Person.all()->project([#/Person/firstName#,#/Person/address/name!address#,#/Person/firm/legalName#,#/Person/firm/address/name!firmAddress#]), testMapping, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals('firstName,address,legalName,firmAddress\n' + 'Peter,1 the street,Firm X,200 west\n' + 'John,5 Park Ave,Firm X,200 west\n' + 'Fabrice,7 Palo Alto,Firm A,3 somewhere\n', $result.values->toOne()->toCSV()); assertSameSQL('select "root".PERSON_FIRSTNAME as "firstName", "root".PERSON_ADDRESS_LINE_1 as "address", "root".FIRM_LEGALNAME as "legalName", "root".FIRM_ADDRESS_LINE_1 as "firmAddress" from PERSON_FIRM_ADDRESS_MULTIGRAIN as "root" where "root".DLEVEL = \'P\'', $result); } @@ -40,7 +42,7 @@ function <> meta::relational::tests::mapping::multigrain::testProject function <> meta::relational::tests::mapping::multigrain::testProjectFirm():Boolean[1] { let result = execute(|Firm.all()->project([#/Firm/legalName#, #/Firm/address/name!address#]), testMapping, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals('legalName,address\n' + 'Firm X,200 west\n' + 'Firm A,3 somewhere\n', $result.values->toOne()->toCSV()); assertSameSQL('select "root".FIRM_LEGALNAME as "legalName", "root".FIRM_ADDRESS_LINE_1 as "address" from PERSON_FIRM_ADDRESS_MULTIGRAIN as "root" where "root".DLEVEL = \'F\'', $result); } @@ -49,7 +51,7 @@ function <> meta::relational::tests::mapping::multigrain::testProject function <> meta::relational::tests::mapping::multigrain::testProjectPersonWithJoinToAddress():Boolean[1] { let result = execute(|Person.all()->project([#/Person/firstName#,#/Person/address/name!address#,#/Person/address/type!addressType#]), testMapping, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals('firstName,address,addressType\n' + 'Peter,1 the street,CITY\n' + 'John,5 Park Ave,CITY\n' + 'Fabrice,7 Palo Alto,REGION\n', $result.values->toOne()->toCSV()); assertSameSQL('select "root".PERSON_FIRSTNAME as "firstName", "root".PERSON_ADDRESS_LINE_1 as "address", "person_firm_address_multigrain_1".ADDRESS_TYPE as "addressType" from PERSON_FIRM_ADDRESS_MULTIGRAIN as "root" left outer join PERSON_FIRM_ADDRESS_MULTIGRAIN as "person_firm_address_multigrain_1" on ("root".PERSON_ADDRESS_OID = "person_firm_address_multigrain_1".OID) where "root".DLEVEL = \'P\'', $result); } @@ -92,18 +94,18 @@ function <> meta::relational::tests::mapping::multigrain::se function meta::relational::tests::mapping::multigrain::model::store::testDataTypeMappingRuntime():Runtime[1] { - meta::relational::tests::testRuntime(myDB); + meta::external::store::relational::tests::testRuntime(myDB); } function meta::relational::tests::mapping::multigrain::model::store::createTablesAndFillDb():Boolean[1] { let connection = testDataTypeMappingRuntime().connectionByElement(myDB)->cast(@TestDatabaseConnection); - + meta::relational::functions::toDDL::dropAndCreateTableInDb(myDB, 'PERSON_FIRM_ADDRESS_MULTIGRAIN', $connection); - + let s = 'insert into PERSON_FIRM_ADDRESS_MULTIGRAIN (DLEVEL, OID, PERSON_FIRSTNAME, PERSON_LASTNAME, PERSON_FIRM_OID, PERSON_ADDRESS_OID, PERSON_ADDRESS_LINE_1, FIRM_LEGALNAME, FIRM_ADDRESS_OID, FIRM_ADDRESS_LINE_1, ADDRESS_LINE_1, ADDRESS_TYPE) values '; - + executeInDb($s + '(\'P\', 1, \'Peter\', \'Smith\', 4, 6, \'1 the street\',\'Firm X\', 9, \'200 west\', null, null);', $connection); executeInDb($s + '(\'P\', 2, \'John\', \'Johnson\', 4, 7, \'5 Park Ave\', \'Firm X\', 9, \'200 west\', null, null);', $connection); @@ -115,20 +117,20 @@ function meta::relational::tests::mapping::multigrain::model::store::createTable executeInDb($s + '(\'A\', 8, null, null, null,null, null, null, null, null, \'7 Palo Alto\', 2);', $connection); executeInDb($s + '(\'A\', 9, null, null, null,null, null, null, null, null, \'200 west\', 1);', $connection); executeInDb($s + '(\'A\', 10, null, null, null,null, null, null, null, null, \'3 somewhere\', 1);', $connection); - - + + meta::relational::functions::toDDL::dropAndCreateTableInDb(myDBAccount, 'POSITION', $connection); - + let b = 'insert into POSITION(OID, ACCT_I, QTY) values'; executeInDb($b + '(1, 1, 500);', $connection); //executeInDb($b + '(1, 2, 1000);', $connection); - - - + + + meta::relational::functions::toDDL::dropAndCreateTableInDb(myDBAccount, 'FIRM_ACCT_IF_MULTIGRAIN', $connection); - + let c = 'insert into FIRM_ACCT_IF_MULTIGRAIN(OID, DLEVEL, ACCOUNT_NUM, IF_NUM, IF_TYPE, IF_PERCENT, IF_DESCRIPTION) values'; - + executeInDb($c + '(1, \'A\', \'7204566\', null, null, null, null);', $connection); executeInDb($c + '(2, \'A\', \'7204567\', null, null, null, null);', $connection); executeInDb($c + '(3, \'S\', \'7204566\', 1022, \'P\', 40.0, null);', $connection); @@ -136,12 +138,12 @@ function meta::relational::tests::mapping::multigrain::model::store::createTable executeInDb($c + '(5, \'S\', \'7204567\', 1022, \'P\', 100.0, null);', $connection); executeInDb($c + '(6, \'I\', null, 1022, null, null, \'IF 1\');', $connection); executeInDb($c + '(7, \'I\', null, 1023, null, null, \'IF 2\');', $connection); - + meta::relational::functions::toDDL::dropAndCreateTableInDb(myDBAccount, 'IF_OTHER_INFO', $connection); - + executeInDb('insert into IF_OTHER_INFO (IF_CODE, IF_NAME) values (1022, \'IfName1\');', $connection); executeInDb('insert into IF_OTHER_INFO (IF_CODE, IF_NAME) values (1023, \'IfName2\');', $connection); - + true; } @@ -155,7 +157,7 @@ Class meta::relational::tests::mapping::multigrain::model::domain::IncomeFunctio { code:Integer[1]; name:String[1]; - + } Class meta::relational::tests::mapping::multigrain::model::domain::AccountIncomeFunctionSplit @@ -172,7 +174,7 @@ Class meta::relational::tests::mapping::multigrain::model::domain::FirmAccount number:Integer[1]; name: String[1]; incomeFunctionSplits: AccountIncomeFunctionSplit[*]; - + primaryIncomeFunction() { $this.incomeFunctionSplits->filter(i | $i.type == 'P')->toOne().incomeFunction @@ -197,13 +199,13 @@ Association meta::relational::tests::mapping::multigrain::model::domain::SDI_IF Database meta::relational::tests::mapping::multigrain::model::store::myDB ( - + Table PERSON_FIRM_ADDRESS_MULTIGRAIN ( OID INT PRIMARY KEY, DLEVEL VARCHAR(2), - //Person Grain - PERSON_FIRSTNAME VARCHAR(200), + //Person Grain + PERSON_FIRSTNAME VARCHAR(200), PERSON_LASTNAME VARCHAR(200), PERSON_FIRM_OID INT, PERSON_ADDRESS_OID INT, @@ -213,17 +215,17 @@ Database meta::relational::tests::mapping::multigrain::model::store::myDB FIRM_LEGALNAME VARCHAR(200), FIRM_ADDRESS_OID INT, FIRM_ADDRESS_LINE_1 VARCHAR(200), - + //Address Grain ADDRESS_LINE_1 VARCHAR(200), - ADDRESS_TYPE INT + ADDRESS_TYPE INT ) - - + + MultiGrainFilter personGrain(PERSON_FIRM_ADDRESS_MULTIGRAIN.DLEVEL = 'P') MultiGrainFilter firmGrain(PERSON_FIRM_ADDRESS_MULTIGRAIN.DLEVEL = 'F') MultiGrainFilter addressGrain(PERSON_FIRM_ADDRESS_MULTIGRAIN.DLEVEL = 'A') - + Join firmEmployees(PERSON_FIRM_ADDRESS_MULTIGRAIN.PERSON_FIRM_OID = {target}.OID) Join personAddress(PERSON_FIRM_ADDRESS_MULTIGRAIN.PERSON_ADDRESS_OID = {target}.OID) @@ -236,38 +238,38 @@ Database meta::relational::tests::mapping::multigrain::model::store::myDBAccount ( OID INT PRIMARY KEY, ACCT_I INT, - QTY INT + QTY INT ) Table FIRM_ACCT_IF_MULTIGRAIN ( OID INT PRIMARY KEY, DLEVEL VARCHAR(2), - + //Account grain ACCOUNT_NUM VARCHAR(40), - + //IF split grain IF_NUM INT, IF_TYPE VARCHAR(5), IF_PERCENT INT, - + //IF grain IF_DESCRIPTION VARCHAR(40) ) - + Table IF_OTHER_INFO ( IF_CODE INT PRIMARY KEY, IF_NAME VARCHAR(20) ) - - + + MultiGrainFilter accountGrain(FIRM_ACCT_IF_MULTIGRAIN.DLEVEL = 'A') MultiGrainFilter accountIFGrain(FIRM_ACCT_IF_MULTIGRAIN.DLEVEL = 'S') MultiGrainFilter ifGrain(FIRM_ACCT_IF_MULTIGRAIN.DLEVEL = 'I') - - + + Join posAccount(POSITION.ACCT_I = FIRM_ACCT_IF_MULTIGRAIN.OID) Join account_accountIFSplit(FIRM_ACCT_IF_MULTIGRAIN.ACCOUNT_NUM = {target}.ACCOUNT_NUM) Join ifSplit_if(FIRM_ACCT_IF_MULTIGRAIN.IF_NUM = {target}.IF_NUM) @@ -306,7 +308,7 @@ Mapping meta::relational::tests::mapping::multigrain::model::mapping::testMappin ) ) } - + Firm: Relational { ~filter [myDB] firmGrain @@ -317,29 +319,29 @@ Mapping meta::relational::tests::mapping::multigrain::model::mapping::testMappin ( name: FIRM_ADDRESS_LINE_1 ) - + ), employees: [myDB]@firmEmployees - + } - + Address: Relational { ~filter [myDB] addressGrain scope([myDB]PERSON_FIRM_ADDRESS_MULTIGRAIN) ( name: ADDRESS_LINE_1, - type: EnumerationMapping GE : ADDRESS_TYPE + type: EnumerationMapping GE : ADDRESS_TYPE ) } - - + + GeographicEntityType: EnumerationMapping GE { CITY: 1, REGION: 2 } - + ) @@ -357,23 +359,23 @@ Mapping meta::relational::tests::mapping::multigrain::model::mapping::testMappin ~filter [myDBAccount]accountGrain number: [myDBAccount]FIRM_ACCT_IF_MULTIGRAIN.ACCOUNT_NUM, incomeFunctionSplits: [myDBAccount]@account_accountIFSplit - + } - + AccountIncomeFunctionSplit:Relational { ~filter [myDBAccount]accountIFGrain type: [myDBAccount]FIRM_ACCT_IF_MULTIGRAIN.IF_TYPE, - + //incomeFunction: [myDBAccount]@ifSplit_if//, - + incomeFunction ( code: [myDBAccount]FIRM_ACCT_IF_MULTIGRAIN.IF_NUM, Classification: [myDBAccount]@ifClass ) } - + IncomeFunction:Relational { ~filter [myDBAccount]ifGrain diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/propertyfunc/simplePropertyFunc.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/propertyfunc/simplePropertyFunc.pure index b5c7d7ef897..afb06c6c98c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/propertyfunc/simplePropertyFunc.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/propertyfunc/simplePropertyFunc.pure @@ -16,9 +16,11 @@ import meta::relational::mapping::*; import meta::relational::tests::mapping::propertyfunc::model::domain::*; import meta::relational::tests::mapping::propertyfunc::model::store::*; import meta::relational::tests::mapping::propertyfunc::model::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; -import meta::relational::runtime::authentication::*; +import meta::external::store::relational::runtime::authentication::*; import meta::pure::profiles::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::execute::*; import meta::relational::tests::mapping::propertyfunc::model::store::*; @@ -81,7 +83,7 @@ function <> meta::relational::tests::mapping::propertyfunc::withjoin: let res = $result.values; assertEquals(['Fabrice', 'Roberts_p4', 'Roberts_p4, Fabrice'], [$res->at(0).firstName, $res->at(0).lastName, $res->at(0).fullName]); assertEquals('select "root".ID as "pk_0", substring("root".FULLNAME, 0, position(\',\', concat("root".FULLNAME, "persontableextension_0".FULLNAME_PART2))-1) as "firstName", "root".FULLNAME as "displayName", substring(concat("root".FULLNAME, "persontableextension_0".FULLNAME_PART2), (position(\',\', concat("root".FULLNAME, "persontableextension_0".FULLNAME_PART2)) + 2)) as "lastName" from personTable as "root" left outer join personTableExtension as "persontableextension_0" on ("root".ID = "persontableextension_0".ID) where substring(concat("root".FULLNAME, "persontableextension_0".FULLNAME_PART2), (position(\',\', concat("root".FULLNAME, "persontableextension_0".FULLNAME_PART2)) + 2)) = \'Roberts_p4\'', $result->sqlRemoveFormatting()); -} +} function <> meta::relational::tests::mapping::propertyfunc::withjoin::testSimplePropertyFuncGetAllWithJoin():Boolean[1] { @@ -105,7 +107,7 @@ function <> meta::relational::tests::mapping::propertyfunc:: function meta::relational::tests::mapping::propertyfunc::model::store::testDataTypeMappingRuntime():Runtime[1] { - meta::relational::tests::testRuntime(myDB); + meta::external::store::relational::tests::testRuntime(myDB); } @@ -166,7 +168,7 @@ Mapping meta::relational::tests::mapping::propertyfunc::model::mapping::Property scope([myDB]default.personTable) ( firstName : substring(FULLNAME, 0, sub(position(',', FULLNAME), 1)), - displayName : FULLNAME + displayName : FULLNAME ) , lastName : substring([myDB]default.personTable.FULLNAME, add(position(',', [myDB]default.personTable.FULLNAME),2)) @@ -185,7 +187,7 @@ Mapping meta::relational::tests::mapping::propertyfunc::model::mapping::Property scope([myDB]default.personTable) ( firstName : substring(FULLNAME, 0, sub(position(',', concat(FULLNAME, @personExtension|personTableExtension.FULLNAME_PART2)),1)), - displayName : FULLNAME + displayName : FULLNAME ) , lastName : substring( diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/selfJoin/selfJoin.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/selfJoin/selfJoin.pure index 3f22ff8a01a..34a44635ae4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/selfJoin/selfJoin.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/selfJoin/selfJoin.pure @@ -15,9 +15,11 @@ import meta::relational::tests::mapping::selfJoin::model::domain::*; import meta::relational::tests::mapping::selfJoin::model::store::*; import meta::relational::tests::mapping::selfJoin::model::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; -import meta::relational::runtime::authentication::*; +import meta::external::store::relational::runtime::authentication::*; import meta::pure::profiles::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::execute::*; import meta::relational::mapping::*; @@ -65,13 +67,13 @@ function <> meta::relational::tests::mapping::selfJoin::testSelfJoinP let result = execute(|Org.all()->project([o | $o.name, o | $o.parent.parent.parent.name, o | $o.parent.parent.parent.parent.name, - o | $o.parent.parent.parent.parent.name->isEmpty() && $o.parent.parent.parent.name->isEmpty()], + o | $o.parent.parent.parent.parent.name->isEmpty() && $o.parent.parent.parent.name->isEmpty()], ['orgName', '3rd parent', '4th parent', 'dyna operation']), meta::relational::tests::mapping::selfJoin::model::mapping::orgTestMapping, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions(), debug()); let tds = $result.values->at(0); - + assertEquals('select "root".name as "orgName", "orgtable_3".name as "3rd parent", "orgtable_4".name as "4th parent", ("orgtable_4".name is null and "orgtable_3".name is null) as "dyna operation" from orgTable as "root" left outer join orgTable as "orgtable_1" on ("root".parentId = "orgtable_1".id) left outer join orgTable as "orgtable_2" on ("orgtable_1".parentId = "orgtable_2".id) left outer join orgTable as "orgtable_3" on ("orgtable_2".parentId = "orgtable_3".id) left outer join orgTable as "orgtable_4" on ("orgtable_3".parentId = "orgtable_4".id)', $result->sqlRemoveFormatting()); assertSameElements(['orgName', '3rd parent', '4th parent', 'dyna operation'], $tds.columns.name); assertEquals(9, $tds.rows->size()); @@ -100,7 +102,7 @@ Class meta::relational::tests::mapping::selfJoin::model::domain::Org function meta::relational::tests::mapping::selfJoin::model::store::testDataTypeMappingRuntime():Runtime[1] { - meta::relational::tests::testRuntime(myDB); + meta::external::store::relational::tests::testRuntime(myDB); } @@ -133,12 +135,12 @@ Database meta::relational::tests::mapping::selfJoin::model::store::myDB parentId INT, name VARCHAR(200) ) - + Join OrgOrgParent ( orgTable.parentId = {target}.id ) - + Join OrgParentOrg ( orgTable.id = {target}.parentId diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/sqlFunction/testSqlFunctionsInMapping.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/sqlFunction/testSqlFunctionsInMapping.pure index 513074d76fa..0f49f32144f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/sqlFunction/testSqlFunctionsInMapping.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/sqlFunction/testSqlFunctionsInMapping.pure @@ -30,10 +30,13 @@ import meta::relational::functions::toDDL::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; +import meta::core::runtime::*; import meta::pure::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; -import meta::relational::runtime::authentication::*; +import meta::external::store::relational::runtime::authentication::*; function <> meta::relational::tests::mapping::sqlFunction::setUp():Boolean[1] @@ -48,7 +51,7 @@ function <> meta::relational::tests::mapping::sqlFunction::s } function <> meta::relational::tests::mapping::sqlFunction::parseDate::testToSQLStringWithParseDateInQueryForH2():Boolean[1] -{ +{ let result = execute(|SqlFunctionDemo.all()->project([s | $s.string2TimestampStr->parseDate()], ['timestamp']), testMapping, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); assertEquals([%2016-06-23T00:00:00.123000000+0000, %2016-06-23T00:00:00.345000000+0000], $result.values->at(0).rows.values); assertEquals('select cast(parsedatetime("root".string2date,\'yyyy-MM-dd HH:mm:ss[.SSSSSSSSS][.SSSSSSSS][.SSSSSSS][.SSSSSS][.SSSSS][.SSSS][.SSS][.SS][.S]\') as timestamp) as "timestamp" from dataTable as "root"',$result->sqlRemoveFormatting()); @@ -638,7 +641,7 @@ function <> meta::relational::tests::mapping::sqlFunction::testAdjust |SqlFunctionDemo.all()->project([s | $s.adjustDate], ['Dt']), testMapping, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals([%2003-07-12T00:00:00.000000000+0000, %2003-07-13T00:00:00.000000000+0000], $result.values->at(0).rows.values); meta::relational::functions::asserts::assertSameSQL('select dateadd(DAY, -7, "root".dateTime) as "Dt" from dataTable as "root"', $result); } @@ -670,7 +673,7 @@ Class meta::relational::tests::mapping::sqlFunction::model::domain::SqlFunctionD floatATan2Result : Float[1]; floatSqrtResult : Float[1]; float1VarianceSample: Float[1]; - float1VariancePopulation: Float[1]; + float1VariancePopulation: Float[1]; string2Float : Float[1]; string2decimal: String[1]; string2Decimal: Decimal[1]; @@ -679,7 +682,7 @@ Class meta::relational::tests::mapping::sqlFunction::model::domain::SqlFunctionD floatRemResult : Integer[1]; string2Date: Date[1]; - string2TimestampStr: String[1]; + string2TimestampStr: String[1]; string2TimestampFormat : Date[1]; string2DateTime: DateTime[1]; convertToDate1: Date[1]; @@ -722,7 +725,7 @@ Class meta::relational::tests::mapping::sqlFunction::model::domain::SqlFunctionD function meta::relational::tests::mapping::sqlFunction::model::store::testDataTypeMappingRuntime():Runtime[1] { - meta::relational::tests::testRuntime(myDB); + meta::external::store::relational::tests::testRuntime(myDB); } ###Relational @@ -784,13 +787,13 @@ Mapping meta::relational::tests::mapping::sqlFunction::model::mapping::testMappi floatATan2Result : atan2(float1, int1), floatSqrtResult : sqrt(int1), float1VarianceSample: varianceSample(int1), - float1VariancePopulation: variancePopulation(int1), + float1VariancePopulation: variancePopulation(int1), string2Float : parseFloat(string2float), string2Decimal : parseDecimal(string2Decimal), string2decimal: trim(string2Decimal), string2Date : parseDate(string2date), - string2TimestampStr : string2date, - string2TimestampFormat : toTimestamp(stringDateTimeFormat,'YYYY-MM-DD HH24:MI:SS'), + string2TimestampStr : string2date, + string2TimestampFormat : toTimestamp(stringDateTimeFormat,'YYYY-MM-DD HH24:MI:SS'), string2Integer : parseInteger(string2Integer), convertToDate1: convertDate(stringDateFormat), convertToDate: convertDate(stringDateFormat,'yyyy-MM-dd'), diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/tree/tree.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/tree/tree.pure index 1bee939af56..03d1c7e7165 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/tree/tree.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/tree/tree.pure @@ -16,9 +16,11 @@ import meta::pure::executionPlan::*; import meta::relational::tests::mapping::tree::model::domain::*; import meta::relational::tests::mapping::tree::model::store::*; import meta::relational::tests::mapping::tree::model::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; -import meta::relational::runtime::authentication::*; +import meta::external::store::relational::runtime::authentication::*; import meta::pure::profiles::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::execute::*; import meta::relational::mapping::*; @@ -86,7 +88,7 @@ function <> meta::relational::tests::mapping::tree::testProjectMerge( function <> meta::relational::tests::mapping::tree::testProjection():Boolean[1] { let result = execute(|Person.all()->project( - [ + [ #/Person/firstName#, #/Person/lastName#, #/Person/orgByName('TEAM')/name!team#, @@ -155,7 +157,7 @@ function <> meta::relational::tests::mapping::tree::testProjectionDe { // Need to fix the mixup with the type column! let result = execute(|Person.all()->project( - [ + [ #/Person/firstName#, #/Person/lastName#, #/Person/orgByName('TEAM')/parent/name!teamParentName#, @@ -181,7 +183,7 @@ function <> meta::relational::tests::mapping::tree::testProjectWithFi ->project([#/Person/firstName#, #/Person/orgByName('BUSINESS UNIT')/name!buName#]), meta::relational::tests::mapping::tree::model::mapping::orgTestMapping, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(1, $tds.rows->size()); - + assertEquals(['firstName', 'buName'], $tds.columns.name); assertEquals(['Julie',^TDSNull()],$tds.rows->at(0).values); assertEquals('select "root".firstName as "firstName", "orgtreeoptimizationtable_0".name as "buName" from personTable as "root" left outer join (select "orgtreeoptimizationtable_1".node as node, "orgtable_0".name as name from orgTreeOptimizationTable as "orgtreeoptimizationtable_1" inner join orgTable as "orgtable_0" on ("orgtreeoptimizationtable_1".ancestor = "orgtable_0".id) where "orgtable_0".type = \'BUSINESS UNIT\') as "orgtreeoptimizationtable_0" on ("root".id = "orgtreeoptimizationtable_0".node) where "root".firstName = \'Julie\'', $result->sqlRemoveFormatting()); @@ -195,10 +197,10 @@ function <> meta::relational::tests::mapping::tree::testJoinIsolation ['number', 'team']), meta::relational::tests::mapping::tree::model::mapping::orgTestMapping, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(4, $tds.rows->size()); - + assertEquals(['number', 'team'], $tds.columns.name); - - + + assertEquals([11, 'OrgName3'],$tds.rows->at(0).values); assertEquals([11, 'OrgName6'],$tds.rows->at(1).values); assertEquals([11, ^TDSNull()],$tds.rows->at(2).values); @@ -215,7 +217,7 @@ function <> meta::relational::tests::mapping::tree::testJoinIsolation ['number', 'firstName', 'team', 'bu']), meta::relational::tests::mapping::tree::model::mapping::orgTestMapping, testDataTypeMappingRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values->at(0); assertEquals(4, $tds.rows->size()); - + assertEquals(['number', 'firstName', 'team', 'bu'], $tds.columns.name); assertEquals([11, 'Alex', 'OrgName3', 'OrgName2'],$tds.rows->at(0).values); assertEquals([11, 'David', 'OrgName6', 'OrgName5'],$tds.rows->at(1).values); @@ -229,14 +231,13 @@ function <> meta::relational::tests::mapping::tre { let oldTable = myDB->schema('default')->toOne()->table('orgTable')->toOne(); let newTable = myDB->schema('default')->toOne()->table('otherOrgTable')->toOne(); - - let runtime = ^Runtime - ( - connections = ^TestDatabaseConnection( - element = myDB, + + let runtime = ^Runtime(connectionStores= ^ConnectionStore( + element = myDB, + connection=^TestDatabaseConnection( type=DatabaseType.H2, sqlQueryPostProcessors = [{query:SelectSQLQuery[1] | meta::relational::postProcessor::replaceTables($query, pair($oldTable, $newTable)) }] - ) + )) ); let result = execute(|Account.all()->project([ a | $a.number, @@ -265,7 +266,7 @@ Class meta::relational::tests::mapping::tree::model::domain::Trade { ref: String[1]; trader: Person[1]; - + } Association meta::relational::tests::mapping::tree::model::domain::Account_Trade @@ -295,12 +296,11 @@ Class meta::relational::tests::mapping::tree::model::domain::Org function meta::relational::tests::mapping::tree::model::store::testDataTypeMappingRuntime():Runtime[1] { - ^Runtime - ( - connections = ^TestDatabaseConnection( - element = myDB, + ^Runtime(connectionStores= ^ConnectionStore( + element = myDB, + connection=^TestDatabaseConnection( type=DatabaseType.H2 - ) + )) ); } @@ -336,16 +336,16 @@ function meta::relational::tests::mapping::tree::model::store::createTablesAndFi executeInDb('insert into personTable (id, firstName, lastName) values (1, \'Alex\', \'Radu\');', $connection); executeInDb('insert into personTable (id, firstName, lastName) values (2, \'David\', \'Ma\');', $connection); executeInDb('insert into personTable (id, firstName, lastName) values (3, \'Julie\', \'Andrews\');', $connection); - + meta::relational::functions::toDDL::dropAndCreateTableInDb(myDB, 'tradeTable', $connection); executeInDb('insert into tradeTable (id, traderId, accountId) values (1, 1, 11);', $connection); executeInDb('insert into tradeTable (id, traderId, accountId) values (2, 2, 11);', $connection); executeInDb('insert into tradeTable (id, traderId, accountId) values (3, 3, 11);', $connection); - + meta::relational::functions::toDDL::dropAndCreateTableInDb(myDB, 'accountTable', $connection); executeInDb('insert into accountTable (id) values (11)', $connection); executeInDb('insert into accountTable (id) values (22)', $connection); - + true; } @@ -362,7 +362,7 @@ Database meta::relational::tests::mapping::tree::model::store::myDB name2 VARCHAR(200), type VARCHAR(200) ) - + Table otherOrgTable ( id INT PRIMARY KEY, @@ -377,31 +377,31 @@ Database meta::relational::tests::mapping::tree::model::store::myDB node INT PRIMARY KEY, ancestor INT PRIMARY KEY ) - + Table personTable ( id INT PRIMARY KEY, firstName VARCHAR(200), lastName VARCHAR(200) ) - + Table tradeTable ( id VARCHAR(20) PRIMARY KEY, traderId INT, accountId INT ) - + Table accountTable ( id INT PRIMARY KEY ) - + Join tradeToTrader ( tradeTable.traderId = personTable.id ) - + Join accountToTrade ( accountTable.id = tradeTable.accountId @@ -411,7 +411,7 @@ Database meta::relational::tests::mapping::tree::model::store::myDB ( personTable.id = orgTreeOptimizationTable.node ) - + Join orgTreeOptimizationTableToOrgTable ( orgTreeOptimizationTable.ancestor= orgTable.id @@ -443,19 +443,19 @@ Mapping meta::relational::tests::mapping::tree::model::mapping::orgTestMapping type : [myDB] orgTable.type, parent : [myDB] @parent } - + Trade: Relational { ref : [myDB] tradeTable.id, trader : [myDB] @tradeToTrader, - + account : [myDB] @accountToTrade } - + Account: Relational { number : [myDB] accountTable.id, - + trades: [myDB] @accountToTrade } -) \ No newline at end of file +) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnion.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnion.pure index 466ba6a8dac..710dcd66c50 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnion.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnion.pure @@ -17,7 +17,9 @@ import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::mapping::union::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::model::simple::*; @@ -253,7 +255,7 @@ function <> meta::relational::tests::mapping::union::testIdentificati { let query={|Person.all()->project([p|$p.lastName,p|$p.manager.lastName], ['Name','manager'])}; let res = execute($query, unionMappingWithSelfJoin, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertSameSQL('select "unionBase"."PersonSet1lastName_s1_PersonSet2lastName_s2" as "Name", "unionalias_1"."PersonSet1lastName_s1_PersonSet2lastName_s2" as "manager" from (select "root".ID as "pk_0_0", null as "pk_0_1", "root".lastName_s1 as "PersonSet1lastName_s1_PersonSet2lastName_s2", "root".lastName_s1 as lastName from PersonSet1 as "root" UNION ALL select null as "pk_0_0", "root".ID as "pk_0_1", "root".lastName_s2 as "PersonSet1lastName_s1_PersonSet2lastName_s2", "root".lastName_s2 as lastName from PersonSet2 as "root") as "unionBase" left outer join (select "root".lastName_s1 as lastName, "root".lastName_s1 as "PersonSet1lastName_s1_PersonSet2lastName_s2" from PersonSet1 as "root" UNION ALL select "root".lastName_s2 as lastName, "root".lastName_s2 as "PersonSet1lastName_s1_PersonSet2lastName_s2" from PersonSet2 as "root") as "unionalias_1" on ("unionBase".lastName = "unionalias_1".lastName)', $res); } @@ -362,7 +364,7 @@ function <> meta::relational::tests::mapping::union::testUnionWithSin function meta::relational::tests::mapping::union::executeInDb2(sql:String[1], databaseConnection:DatabaseConnection[1]):ResultSet[1] { - meta::relational::metamodel::execute::executeInDb($sql, $databaseConnection, 0, 1000); + meta::relational::metamodel::execute::executeInDb($sql, $databaseConnection); } function meta::relational::tests::mapping::union::createTablesAndFillDb():Boolean[1] @@ -376,15 +378,15 @@ function meta::relational::tests::mapping::union::createTablesAndFillDb():Boolea executeInDb2('Drop table if exists AddressSet2;', $connection); executeInDb2('Create Table AddressSet2 (name VARCHAR(200), street VARCHAR(200));', $connection); executeInDb2('insert into AddressSet2 (name, street) values (\'Firm A\', \'Somwhere In CA\');', $connection); - + executeInDb2('Drop table if exists PlaceOfInterestSet1;', $connection); executeInDb2('Create Table PlaceOfInterestSet1 (name VARCHAR(200), popularity INTEGER);', $connection); executeInDb2('insert into PlaceOfInterestSet1 (name, popularity) values (\'Firm X\', 7);', $connection); - + executeInDb2('Drop table if exists PlaceOfInterestSet2;', $connection); executeInDb2('Create Table PlaceOfInterestSet2 (name VARCHAR(200), popularity INTEGER);', $connection); executeInDb2('insert into PlaceOfInterestSet2 (name, popularity) values (\'200 west\', 3);', $connection); - + executeInDb2('Drop table if exists PersonSet1;', $connection); executeInDb2('Create Table PersonSet1 (ID INT, lastName_s1 VARCHAR(200), FirmID INT, ADDRESSID INT, NICKNAME VARCHAR(200));', $connection); executeInDb2('insert into PersonSet1 (ID, lastName_s1, FirmID, ADDRESSID) values (1, \'Scott\', 1, 1);', $connection); @@ -400,7 +402,7 @@ function meta::relational::tests::mapping::union::createTablesAndFillDb():Boolea executeInDb('Create Table PersonSet3 (Set3ID INT, lastName_s3 VARCHAR(200), FirmID INT, ADDRESSID INT);', $connection); executeInDb('insert into PersonSet3 (Set3ID, lastName_s3, FirmID, ADDRESSID) values (1, \'Taylor\', 1, 1);', $connection); executeInDb('insert into PersonSet3 (Set3ID, lastName_s3, FirmID, ADDRESSID) values (2, \'Wright\', 1, 2);', $connection); - + executeInDb2('Drop table if exists FirmSet1;', $connection); executeInDb2('Create Table FirmSet1(id INT, name VARCHAR(200),NICKNAME VARCHAR(200));', $connection); executeInDb2('insert into FirmSet1 (id, name) values (1, \'Firm X\');', $connection); @@ -412,11 +414,11 @@ function meta::relational::tests::mapping::union::createTablesAndFillDb():Boolea executeInDb2('Drop table if exists AddressSet1;', $connection); executeInDb2('Create Table AddressSet1(id INT, name VARCHAR(200));', $connection); executeInDb2('insert into AddressSet1 (id, name) values (1, \'New York\');', $connection); - + executeInDb2('Drop table if exists AddressSet2;', $connection); executeInDb2('Create Table AddressSet2(id INT, name VARCHAR(200));', $connection); executeInDb2('insert into AddressSet2 (id, name) values (2, \'Hoboken\');', $connection); - + executeInDb2('Drop table if exists Middle;', $connection); executeInDb2('Create Table Middle (ID INT, FirmId INT);', $connection); executeInDb2('insert into Middle (ID, FirmId) values (1, 1);', $connection); @@ -468,7 +470,7 @@ function meta::relational::tests::mapping::union::createTablesAndFillDb():Boolea executeInDb2('insert into firmExtension(firmId, legalName, establishedDate) values(3,\'FirmC\',\'2013-12-02\')', $connection); executeInDb2('insert into firmExtension(firmId, legalName, establishedDate) values(4,\'FirmD\',\'2013-12-02\')', $connection); executeInDb2('insert into firmExtension(firmId, legalName, establishedDate) values(5,\'FirmE\',\'2013-12-02\')', $connection); - + executeInDb2('Drop table if exists midTable;', $connection); executeInDb2('create Table midTable (personId INT, firmId INT, extra VARCHAR(200))', $connection); executeInDb2('insert into midTable(personId, firmId, extra) values(1,1,\'extraA\' )' , $connection); @@ -478,7 +480,7 @@ function meta::relational::tests::mapping::union::createTablesAndFillDb():Boolea executeInDb2('insert into midTable(personId, firmId, extra) values(5,5,\'extraE\' )' , $connection); executeInDb2('insert into midTable(personId, firmId, extra) values(11,1,\'extraF\' )' , $connection); executeInDb2('insert into midTable(personId, firmId, extra) values(14,2,\'extraG\' )' , $connection); - + executeInDb2('Drop table if exists PersonExtensionT1;', $connection); executeInDb2('create Table PersonExtensionT1 (ID INT, FIRSTNAME VARCHAR(200), LASTNAME VARCHAR(200), birthdate DATE)', $connection); executeInDb2('insert into PersonExtensionT1(ID, FIRSTNAME, LASTNAME, birthdate) values(1,\'A\', \'LastName Ext1A\',\'2013-12-01\')', $connection); @@ -486,7 +488,7 @@ function meta::relational::tests::mapping::union::createTablesAndFillDb():Boolea executeInDb2('insert into PersonExtensionT1(ID, FIRSTNAME, LASTNAME, birthdate) values(3,\'C\', \'LastName Ext1C\',\'2013-12-02\')', $connection); executeInDb2('insert into PersonExtensionT1(ID, FIRSTNAME, LASTNAME, birthdate) values(11,\'D\', \'LastName Ext1D\',\'2013-12-02\')', $connection); executeInDb2('insert into PersonExtensionT1(ID, FIRSTNAME, LASTNAME, birthdate) values(12,\'E\', \'LastName Ext1E\',\'2013-12-02\')', $connection); - + executeInDb2('Drop table if exists PersonExtensionT2;', $connection); executeInDb2('create Table PersonExtensionT2 (ID INT, FIRSTNAME VARCHAR(200), LASTNAME VARCHAR(200), birthdate DATE)', $connection); executeInDb2('insert into PersonExtensionT2(ID, FIRSTNAME, LASTNAME, birthdate) values(4,\'A2\', \'LastName Ext2A\',\'2013-12-01\')', $connection); @@ -494,7 +496,7 @@ function meta::relational::tests::mapping::union::createTablesAndFillDb():Boolea executeInDb2('insert into PersonExtensionT2(ID, FIRSTNAME, LASTNAME, birthdate) values(13,\'C2\', \'LastName Ext2C\',\'2013-12-02\')', $connection); executeInDb2('insert into PersonExtensionT2(ID, FIRSTNAME, LASTNAME, birthdate) values(14,\'D2\', \'LastName Ext2D\',\'2013-12-02\')', $connection); executeInDb2('insert into PersonExtensionT2(ID, FIRSTNAME, LASTNAME, birthdate) values(15,\'E2\', \'LastName Ext2E\',\'2013-12-02\')', $connection); - + executeInDb2('Drop table if exists TEMPORALENTITYSET1;', $connection); executeInDb2('Create Table TEMPORALENTITYSET1 (ID INT, name_s1 VARCHAR(200), FirmID INT, ADDRESSID INT, SNAPSHOT_DATE DATE);', $connection); executeInDb2('insert into TEMPORALENTITYSET1 (ID, name_s1, FirmID, ADDRESSID, SNAPSHOT_DATE) values (1, \'Scott\', 1, 1,\'2019-01-01\');', $connection); @@ -505,13 +507,13 @@ function meta::relational::tests::mapping::union::createTablesAndFillDb():Boolea executeInDb2('Create Table TEMPORALENTITYSET2 (ID INT, name_s2 VARCHAR(200), FirmID INT, ADDRESSID INT, SNAPSHOT_DATE DATE);', $connection); executeInDb2('insert into TEMPORALENTITYSET2 (ID, name_s2, FirmID, ADDRESSID, SNAPSHOT_DATE) values (1, \'Taylor\', 2, 2,\'2019-01-01\');', $connection); executeInDb2('insert into TEMPORALENTITYSET2 (ID, name_s2, FirmID, ADDRESSID, SNAPSHOT_DATE) values (2, \'Wright\', 2, 2,\'2019-01-01\');', $connection); - + meta::relational::functions::toDDL::dropAndCreateTableInDb(myDB, 'ApplicationsSet1',$connection); executeInDb2('insert into ApplicationsSet1 (date,personID, firstName_s1,lastName_s1,nickName_s1, firmID,firm_legalName_s1,firm_nickName_s1) values (\'2016-01-01\',1, \'firstName_s1\',\'lastName_s1\',\'nickName_s1\', 1,\'firm_legalName_s1\',\'firm_nickName_s1\');', $connection); - + meta::relational::functions::toDDL::dropAndCreateTableInDb(myDB, 'ApplicationsSet2',$connection); executeInDb2('insert into ApplicationsSet2 (date, firstName,lastName,nickName, firm_legalName,firm_nickName) values (\'2016-01-01\', \'firstName\',\'lastName\',\'nickName\', \'firm_legalName\',\'firm_nickName\');', $connection); - + true; } @@ -522,28 +524,28 @@ Database meta::relational::tests::mapping::union::unionOfViewsDb ( ID INT PRIMARY KEY, FIRSTNAME VARCHAR(200), LASTNAME VARCHAR(200), birthdate DATE ) - + Table PersonExtensionT2 ( ID INT PRIMARY KEY, FIRSTNAME VARCHAR(200), LASTNAME VARCHAR(200), birthdate DATE ) - + Table firmExtension ( firmId INT PRIMARY KEY, legalName VARCHAR(200), establishedDate DATE ) - + Table midTable ( personId INT PRIMARY KEY, firmId Int, extra VARCHAR(20) ) - + View midTableView ( person: midTable.personId PRIMARY KEY , firm: midTable.firmId ) - + View PersonExtensionView1 ( id: PersonExtensionT1.ID PRIMARY KEY, @@ -551,7 +553,7 @@ Database meta::relational::tests::mapping::union::unionOfViewsDb lastName: PersonExtensionT1.LASTNAME, birthdate: PersonExtensionT1.birthdate ) - + View PersonExtensionView2 ( id: PersonExtensionT2.ID PRIMARY KEY, @@ -559,7 +561,7 @@ Database meta::relational::tests::mapping::union::unionOfViewsDb lastName: PersonExtensionT2.LASTNAME, birthdate: PersonExtensionT2.birthdate ) - + Join Firm_midTableView( firmExtension.firmId= midTableView.firm ) Join midTableView_PeView1( midTableView.person = PersonExtensionView1.id) Join midTableView_PeView2( midTableView.person = PersonExtensionView2.id) @@ -568,7 +570,7 @@ Database meta::relational::tests::mapping::union::unionOfViewsDb ###Relational Database meta::relational::tests::mapping::union::myDB ( - + Table PersonSet1 ( ID INT PRIMARY KEY, @@ -578,7 +580,7 @@ Database meta::relational::tests::mapping::union::myDB ADDRESSID INT, nickName VARCHAR(200) ) - + Table PersonExtension ( ID INT PRIMARY KEY, @@ -601,7 +603,7 @@ Database meta::relational::tests::mapping::union::myDB FirmID INT, ADDRESSID INT ) - + Table PersonSet4 ( ID INT PRIMARY KEY, @@ -610,11 +612,11 @@ Database meta::relational::tests::mapping::union::myDB FirmID_1 INT, FirmID_2 INT ) - + Table Firm ( ID INT PRIMARY KEY, - name VARCHAR(200) + name VARCHAR(200) ) Table FirmSet1 @@ -635,7 +637,7 @@ Database meta::relational::tests::mapping::union::myDB ID INT PRIMARY KEY, name VARCHAR(200) ) - + Table AddressSet1 ( ID INT PRIMARY KEY, @@ -682,10 +684,10 @@ Database meta::relational::tests::mapping::union::myDB Table ApplicationsSet1 ( - date date PRIMARY KEY, + date date PRIMARY KEY, personID int PRIMARY KEY, firstName_s1 VARCHAR(200), - lastName_s1 VARCHAR(200), + lastName_s1 VARCHAR(200), nickName_s1 VARCHAR(200), person_address_s1 VARCHAR(200), firmID int PRIMARY KEY, @@ -693,13 +695,13 @@ Database meta::relational::tests::mapping::union::myDB firm_nickName_s1 VARCHAR(200), firm_address_s1 VARCHAR(200) ) - - + + Table ApplicationsSet2 ( - date date PRIMARY KEY, + date date PRIMARY KEY, firstName VARCHAR(200) PRIMARY KEY, - lastName VARCHAR(200) PRIMARY KEY, + lastName VARCHAR(200) PRIMARY KEY, nickName VARCHAR(200), person_address_s2 VARCHAR(200), firm_legalName VARCHAR(200) PRIMARY KEY, @@ -721,7 +723,7 @@ Database meta::relational::tests::mapping::union::myDB extrainfo VARCHAR(200), otherName VARCHAR(200) ) - + Table TemporalEntitySet1 ( milestoning( @@ -733,7 +735,7 @@ Database meta::relational::tests::mapping::union::myDB ADDRESSID INT, SNAPSHOT_DATE DATE ) - + Table TemporalEntitySet2 ( milestoning( @@ -745,7 +747,7 @@ Database meta::relational::tests::mapping::union::myDB FirmID INT, SNAPSHOT_DATE DATE ) - + Join firm1_person1_join(FirmSet1.ID=PersonSet1.FirmID) Join firm1_person2_join(FirmSet1.ID=PersonSet2.FirmID) Join firm1_person3_join(FirmSet1.ID=PersonSet3.FirmID) @@ -774,16 +776,16 @@ Database meta::relational::tests::mapping::union::myDB Join PersonSet3Firm(PersonSet3.FirmID = Firm.ID) Join PersonSet4Firm1(PersonSet4.FirmID_1 = Firm.ID) Join PersonSet4Firm2(PersonSet4.FirmID_2 = Firm.ID) - + Join PersonSet1AddressSet1(PersonSet1.FirmID = AddressSet1.ID) Join PersonSet1AddressSet2(PersonSet1.FirmID = AddressSet2.ID) Join PersonSet2AddressSet1(PersonSet2.FirmID = AddressSet1.ID) Join PersonSet2AddressSet2(PersonSet2.FirmID = AddressSet2.ID) Join TemporalEntitySet1AddressSet1_withLastName(TemporalEntitySet1.ADDRESSID = AddressSet1.ID and greaterThan(length(TemporalEntitySet1.name_s1), 0)) Join TemporalEntitySet2AddressSet2_withLastName(TemporalEntitySet2.ADDRESSID = AddressSet2.ID and greaterThan(length(TemporalEntitySet2.name_s2), 0)) - + Join PersonSet1PersonAdditional(PersonSet1.ID = PersonAdditional.ID) - + Join PersonSet1PersonExtension(PersonSet1.ID = PersonExtension.ID) Join PersonSet1FirmSet1(PersonSet1.FirmID = FirmSet1.ID) @@ -825,12 +827,12 @@ import meta::relational::tests::mapping::union::*; import meta::relational::tests::model::simple::*; Mapping meta::relational::tests::mapping::union::unionOfViews ( - + *PersonExtension[ext] : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(e1, e2) } - + FirmExtension: Relational { scope([unionOfViewsDb] firmExtension) @@ -841,22 +843,22 @@ Mapping meta::relational::tests::mapping::union::unionOfViews employeesExt[e2]: @Firm_midTableView> (INNER) @midTableView_PeView2 ) } - + PersonExtension[e1]: Relational { scope([unionOfViewsDb] PersonExtensionView1) - ( + ( firstName: firstName, lastName: lastName, birthdate: birthdate ) } - + PersonExtension[e2]: Relational { scope([unionOfViewsDb] PersonExtensionView2) - ( + ( firstName: firstName, lastName: lastName, birthdate: birthdate @@ -870,7 +872,7 @@ import meta::relational::tests::model::simple::*; Mapping meta::relational::tests::mapping::union::chainedJoinsWithUnionsAndIsolation ( - + *Firm : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(FirmSet1, FirmSet2) @@ -887,7 +889,7 @@ Mapping meta::relational::tests::mapping::union::chainedJoinsWithUnionsAndIsolat legalName: [myDB]FirmSet1.name, employees[FirmSet1,set1]: [myDB]@firm1_person1_join } - + Firm[FirmSet2]: Relational { legalName: [myDB]FirmSet2.name, @@ -904,9 +906,9 @@ Mapping meta::relational::tests::mapping::union::chainedJoinsWithUnionsAndIsolat { lastName : [myDB]PersonSet2.lastName_s2, firm[set2,FirmSet2] : [myDB]@PersonSet2FirmSet2 - } + } + - ) ###Mapping @@ -915,7 +917,7 @@ import meta::relational::tests::model::simple::*; Mapping meta::relational::tests::mapping::union::unionMappingOverlappingPKAndFKColumns ( - + *Firm : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(FirmSet1, FirmSet2) @@ -933,28 +935,28 @@ Mapping meta::relational::tests::mapping::union::unionMappingOverlappingPKAndFKC legalName: [myDB]FirmSet1.name, employees[FirmSet1,set1]: [myDB]@firm1_person1_join } - + Firm[FirmSet2]: Relational { legalName: [myDB]FirmSet2.name, employees[FirmSet2,set2]: [myDB]@firm2_person2_join } - + Person[set1] : Relational { lastName : [myDB]PersonSet1.lastName_s1, firm[set1,FirmSet1] : [myDB]@PersonSet1FirmSet1 - + } Person[set2] : Relational { lastName : [myDB]PersonSet2.lastName_s2, firm[set2,FirmSet2] : [myDB]@PersonSet2FirmSet2 - + } - + ) @@ -1066,25 +1068,25 @@ Mapping meta::relational::tests::mapping::union::unionMappingWithJoinInProperty ( *Person : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) } - + Person[set1] : Relational { - ~mainTable [myDB]PersonSet1 + ~mainTable [myDB]PersonSet1 lastName : [myDB]@PersonSet1PersonExtension | PersonExtension.otherLastName, otherNames : [myDB]@PersonSet1PersonExtension | concat('', PersonExtension.otherLastName), firm : [myDB]@PersonSet1Firm } - + Person[set2] : Relational { lastName : [myDB] PersonSet2.lastName_s2, otherNames : [myDB] PersonSet2.lastName_s2, firm : [myDB]@PersonSet2Firm } - + Firm : Relational { legalName : [myDB]Firm.name, @@ -1152,23 +1154,23 @@ Mapping meta::relational::tests::mapping::union::unionMappingWithJoinSequenceInP ( *Person : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) } - + Person[set1] : Relational { - ~mainTable [myDB]PersonSet1 + ~mainTable [myDB]PersonSet1 lastName : [myDB]@PersonSet1PersonExtension | PersonExtension.otherLastName, firm : [myDB]@PersonSet1Firm } - + Person[set2] : Relational { lastName : [myDB]PersonSet2.lastName_s2, firm : [myDB]@PersonSet2Firm } - + Firm : Relational { legalName : [myDB]Firm.name, @@ -1186,9 +1188,9 @@ Mapping meta::relational::tests::mapping::union::unionMappingWithEmbeddedPropert ( *Person : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) } - + Person[set1] : Relational { @@ -1197,7 +1199,7 @@ Mapping meta::relational::tests::mapping::union::unionMappingWithEmbeddedPropert legalName : [myDB]@PersonSet1PersonFirmSet1Firm | PersonFirmSet1Firm.FirmJ1 ) } - + Person[set2] : Relational { lastName : [myDB]PersonFirmSet2.lastName_s2, @@ -1215,9 +1217,9 @@ Mapping meta::relational::tests::mapping::union::unionMappingWithEmbeddedPropert ( *Person : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) } - + Person[set1] : Relational { @@ -1226,7 +1228,7 @@ Mapping meta::relational::tests::mapping::union::unionMappingWithEmbeddedPropert legalName : [myDB]PersonFirmSet1.Firm1 ) } - + Person[set2] : Relational { lastName : [myDB]PersonFirmSet2.lastName_s2, @@ -1244,12 +1246,12 @@ Mapping meta::relational::tests::mapping::union::unionMappingWithEmbeddedPropert ( *Person : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) } *Firm : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(firm_set1, firm_set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(firm_set1, firm_set2) } @@ -1263,7 +1265,7 @@ Mapping meta::relational::tests::mapping::union::unionMappingWithEmbeddedPropert firm[firm_set2] : [myDB]@PersonSet1FirmSet2 ) } - + Person[set2] : Relational { firstName : [myDB]PersonSet2.firstName_s2, @@ -1274,7 +1276,7 @@ Mapping meta::relational::tests::mapping::union::unionMappingWithEmbeddedPropert firm[firm_set2] : [myDB]@PersonSet2FirmSet2 ) } - + Firm[firm_set1] : Relational { legalName : [myDB]FirmSet1.name, @@ -1304,18 +1306,18 @@ Mapping meta::relational::tests::mapping::union::unionToUnionMapping ( *Person : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) } *Firm : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(firm_set1, firm_set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(firm_set1, firm_set2) } *Address : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(a_set1, a_set2) - } + } Person[set1] : Relational { @@ -1325,7 +1327,7 @@ Mapping meta::relational::tests::mapping::union::unionToUnionMapping address[a_set1] : [myDB]@PersonSet1AddressSet1, address[a_set2] : [myDB]@PersonSet1AddressSet2 } - + Person[set2] : Relational { lastName : [myDB]PersonSet2.lastName_s2, @@ -1334,7 +1336,7 @@ Mapping meta::relational::tests::mapping::union::unionToUnionMapping address[a_set1] : [myDB]@PersonSet2AddressSet1, address[a_set2] : [myDB]@PersonSet2AddressSet2 } - + Firm[firm_set1] : Relational { legalName : [myDB]FirmSet1.name, @@ -1348,7 +1350,7 @@ Mapping meta::relational::tests::mapping::union::unionToUnionMapping employees[set1]:[myDB]@PersonSet1FirmSet2, employees[set2]:[myDB]@PersonSet2FirmSet2 } - + Address[a_set1] : Relational { name : [myDB]AddressSet1.name @@ -1356,25 +1358,25 @@ Mapping meta::relational::tests::mapping::union::unionToUnionMapping Address[a_set2] : Relational { name : [myDB]AddressSet2.name - } + } ) Mapping meta::relational::tests::mapping::union::unionToUnionMappingForChainedUnions ( *TemporalEntityWithAddress : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) } *Firm : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(firm_set1, firm_set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(firm_set1, firm_set2) } *Address : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(a_set1, a_set2) - } + } Person : Relational { @@ -1382,19 +1384,19 @@ Mapping meta::relational::tests::mapping::union::unionToUnionMappingForChainedUn firm[firm_set1] : [myDB]@PersonSet1FirmSet1, firm[firm_set2] : [myDB]@PersonSet1FirmSet2 } - + TemporalEntityWithAddress[set1] : Relational { name : [myDB]TemporalEntitySet1.name_s1, address[a_set1] : [myDB]@TemporalEntitySet1AddressSet1_withLastName } - + TemporalEntityWithAddress[set2] : Relational { name : [myDB]TemporalEntitySet2.name_s2, address[a_set2] : [myDB]@TemporalEntitySet2AddressSet2_withLastName } - + Firm[firm_set1] : Relational { legalName : [myDB]FirmSet1.name, @@ -1406,7 +1408,7 @@ Mapping meta::relational::tests::mapping::union::unionToUnionMappingForChainedUn legalName : [myDB]FirmSet2.name, temporalEntityWithAddress[set2]:[myDB]@TemporalEntitySet2FirmSet2 } - + Address[a_set1] : Relational { name : [myDB]AddressSet1.name @@ -1414,7 +1416,7 @@ Mapping meta::relational::tests::mapping::union::unionToUnionMappingForChainedUn Address[a_set2] : Relational { name : [myDB]AddressSet2.name - } + } ) ###Mapping @@ -1429,14 +1431,14 @@ Mapping meta::relational::tests::mapping::union::unionToUnionMapping2 firm[firm_set1] : [myDB]@PersonSet1FirmSet1, firm[firm_set2] : [myDB]@PersonSet1FirmSet2, extraInformation : [myDB]@PersonSet1PersonAdditional | PersonAdditional.extrainfo - } - + } + *Firm : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(firm_set1, firm_set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(firm_set1, firm_set2) } - + Firm[firm_set1] : Relational { legalName : [myDB]FirmSet1.name, @@ -1460,16 +1462,16 @@ Mapping meta::relational::tests::mapping::union::unionMappingWithFunction ( *Person : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) } - + Person[set1] : Relational { lastName : concat('1', [myDB]PersonSet1.lastName_s1), firm : [myDB]@PersonSet1Firm } - + Person[set2] : Relational { lastName : concat('2', [myDB]PersonSet2.lastName_s2), @@ -1485,16 +1487,16 @@ Mapping meta::relational::tests::mapping::union::unionMappingWithLongPropertyMap ( *Person : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) } - + Person[set1] : Relational { lastName : concat('thisStringIsThisLongMakeTheGeneratedAliasExplodePastTheDb2limitOf128Characters',concat('ForTestPurposesOnly', [myDB]PersonSet1.lastName_s1)), firm : [myDB]@PersonSet1Firm } - + Person[set2] : Relational { lastName : concat('thisStringIsThisLongMakeTheGeneratedAliasExplodePastTheDb2limitOf128Characters',concat('ForTestPurposesOnly', [myDB]PersonSet2.lastName_s2)), @@ -1511,21 +1513,21 @@ Mapping meta::relational::tests::mapping::union::unionMappingWithFilter ( *Person : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) } - + Person[set1] : Relational { ~filter [myDB]GsPersonFilter1 - + lastName : [myDB]PersonSet1.lastName_s1 } - + Person[set2] : Relational { ~filter [myDB]GsPersonFilter2 - + lastName : [myDB]PersonSet2.lastName_s2 } ) @@ -1539,21 +1541,21 @@ Mapping meta::relational::tests::mapping::union::unionMappingWithConstant ( *Person : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) } - + Person[set1] : Relational { firstName : 'Bob', lastName : [myDB]PersonSet1.lastName_s1 } - + Person[set2] : Relational { firstName : 'George', lastName : [myDB]PersonSet2.lastName_s2 - + } ) @@ -1566,9 +1568,9 @@ Mapping meta::relational::tests::mapping::union::unionMappingWithEmbeddedPropert ( *Person : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) } - + Person[set1] : Relational { @@ -1577,7 +1579,7 @@ Mapping meta::relational::tests::mapping::union::unionMappingWithEmbeddedPropert legalName : 'Wendys' ) } - + Person[set2] : Relational { lastName : [myDB]PersonFirmSet2.lastName_s2, @@ -1595,12 +1597,12 @@ Mapping meta::relational::tests::mapping::union::unionMappingWithEmbeddedPropert ( *Application : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) } - + Application[set1] : Relational { - + source: 'agency1', date : [myDB]ApplicationsSet1.date, applicant ( @@ -1621,7 +1623,7 @@ Mapping meta::relational::tests::mapping::union::unionMappingWithEmbeddedPropert ) ) } - + Application[set2] : Relational { source: 'agency2', @@ -1652,23 +1654,23 @@ import meta::relational::tests::model::simple::*; Mapping meta::relational::tests::mapping::union::mappingWithColumnsWithSameNames ( - - + + Application : Relational - { + { source: 'agency1', date : [myDB]ApplicationsSet1.date, applicant: [myDB]@ApplicationPerson, firm: [myDB]@ApplicationFirm } - + Person : Relational { firstName : 'Bob', lastName : [myDB]PersonSet1.lastName_s1, nickName: [myDB]PersonSet1.nickName } - + Firm : Relational { legalName : [myDB]FirmSet1.name, @@ -1724,11 +1726,11 @@ Mapping meta::relational::tests::mapping::union::unionToUnionMapping3 { lastName : [myDB]PersonSet1.lastName_s1, firstName : [myDB]PersonSet1.firstName_s1 - } - + } + *Firm : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(firm_set1, firm_set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(firm_set1, firm_set2) } Firm[firm_set1] : Relational @@ -1755,23 +1757,23 @@ Mapping meta::relational::tests::mapping::union::unionToUnionMappingWithJoinToSa employees[set1]:[myDB]@PersonSet4Firm1, employees[set2]:[myDB]@PersonSet4Firm2 } - + *Person : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) } - + Person[set1] : Relational { +firmId:String[1] : [myDB]PersonSet4.FirmID_1, firstName : [myDB]PersonSet4.firstName_s1 - } - + } + Person[set2] : Relational { +firmId:String[1] : [myDB]PersonSet4.FirmID_2, firstName : [myDB]PersonSet4.firstName_s1 - } + } ) ###Mapping @@ -1784,10 +1786,10 @@ Mapping meta::relational::tests::mapping::union::unionWithSinglePropertyMapping { legalName : [myDB]Firm.name } - + *Person : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) } Person[base] : Relational @@ -1795,11 +1797,11 @@ Mapping meta::relational::tests::mapping::union::unionWithSinglePropertyMapping lastName : [myDB]PersonSet1.lastName_s1, firm[firm] : [myDB] @PersonSet1Firm } - + Person[set1] extends [base] : Relational { } - + Person[set2] extends [base] : Relational { } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionForSQLQueryMerging.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionForSQLQueryMerging.pure index 0f920031506..059990cce12 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionForSQLQueryMerging.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionForSQLQueryMerging.pure @@ -17,6 +17,7 @@ import meta::relational::functions::asserts::*; import meta::relational::tests::mapping::union::sqlQueryMerging::model::*; import meta::relational::tests::mapping::union::sqlQueryMerging::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::mapping::union::sqlQueryMerging::testSQLQueryMergingForFilters():Boolean[1] { @@ -24,7 +25,7 @@ function <> meta::relational::tests::mapping::union::sqlQueryMerging: ->filter(a|$a.b.c.pk == 111) ->project([a|$a.pk], ['a_pk'] - ), + ), unionMapping, testRuntime() , meta::relational::extension::relationalExtensions()); assertSameSQL('select "unionBase"."aTable1pk_aTable2pk" as "a_pk" from (select "root".fk as fk_0, null as fk_1, "root".pk as "pk_0_0", null as "pk_0_1", "root".pk as "aTable1pk_aTable2pk" from aTable1 as "root" UNION ALL select null as fk_0, "root".fk as fk_1, null as "pk_0_0", "root".pk as "pk_0_1", "root".pk as "aTable1pk_aTable2pk" from aTable2 as "root") as "unionBase" left outer join (select "root".fk as fk_0, null as fk_1, "root".pk as "bTable1pk_bTable2pk" from bTable1 as "root" UNION ALL select null as fk_0, "root".fk as fk_1, "root".pk as "bTable1pk_bTable2pk" from bTable2 as "root") as "unionalias_1" on ("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk_1 = "unionalias_1".fk_1) left outer join (select "root".fk as fk_0, null as fk_1, "root".pk as "cTable1pk_cTable2pk" from cTable1 as "root" UNION ALL select null as fk_0, "root".fk as fk_1, "root".pk as "cTable1pk_cTable2pk" from cTable2 as "root") as "unionalias_2" on ("unionalias_1".fk_0 = "unionalias_2".fk_0 or "unionalias_1".fk_1 = "unionalias_2".fk_1) where "unionalias_1"."bTable1pk_bTable2pk" = 11 and "unionalias_2"."cTable1pk_cTable2pk" = 111', $result); @@ -38,7 +39,7 @@ function <> meta::relational::tests::mapping::union::sqlQueryMerging: ->filter(a|$a.b.c.d.pk == 1111) ->project([a|$a.pk], ['a_pk'] - ), + ), unionMapping, testRuntime() , meta::relational::extension::relationalExtensions()); assertSameSQL('select "unionBase"."aTable1pk_aTable2pk" as "a_pk" from (select "root".fk as fk_0, null as fk_1, "root".pk as "pk_0_0", null as "pk_0_1", "root".pk as "aTable1pk_aTable2pk" from aTable1 as "root" UNION ALL select null as fk_0, "root".fk as fk_1, null as "pk_0_0", "root".pk as "pk_0_1", "root".pk as "aTable1pk_aTable2pk" from aTable2 as "root") as "unionBase" left outer join (select "root".fk as fk_0, null as fk_1, "root".pk as "bTable1pk_bTable2pk" from bTable1 as "root" UNION ALL select null as fk_0, "root".fk as fk_1, "root".pk as "bTable1pk_bTable2pk" from bTable2 as "root") as "unionalias_1" on ("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk_1 = "unionalias_1".fk_1) left outer join (select "root".fk as fk_0, null as fk_1, "root".pk as "cTable1pk_cTable2pk" from cTable1 as "root" UNION ALL select null as fk_0, "root".fk as fk_1, "root".pk as "cTable1pk_cTable2pk" from cTable2 as "root") as "unionalias_2" on ("unionalias_1".fk_0 = "unionalias_2".fk_0 or "unionalias_1".fk_1 = "unionalias_2".fk_1) left outer join (select "root".fk as fk_0, null as fk_1, "root".pk as "dTable1pk_dTable2pk" from dTable1 as "root" UNION ALL select null as fk_0, "root".fk as fk_1, "root".pk as "dTable1pk_dTable2pk" from dTable2 as "root") as "unionalias_3" on ("unionalias_2".fk_0 = "unionalias_3".fk_0 or "unionalias_2".fk_1 = "unionalias_3".fk_1) where "unionalias_2"."cTable1pk_cTable2pk" = 111 and "unionalias_1"."bTable1pk_bTable2pk" = 11 and "unionalias_3"."dTable1pk_dTable2pk" = 1111', $result); @@ -47,13 +48,13 @@ function <> meta::relational::tests::mapping::union::sqlQueryMerging: function <> meta::relational::tests::mapping::union::sqlQueryMerging::testSQLQueryMergingForProjections():Boolean[1] { - let result = execute(|A.all()->project([a|$a.pk, - a|$a.b.pk, + let result = execute(|A.all()->project([a|$a.pk, + a|$a.b.pk, a|$a.b.c.pk], - ['a_pk', - 'b_pk', + ['a_pk', + 'b_pk', 'c_pk'] - ), + ), unionMapping, testRuntime() , meta::relational::extension::relationalExtensions()); assertSameSQL('select "unionBase"."aTable1pk_aTable2pk" as "a_pk", "unionalias_1"."bTable1pk_bTable2pk" as "b_pk", "unionalias_2"."cTable1pk_cTable2pk" as "c_pk" from (select "root".pk as "pk_0_0", null as "pk_0_1", "root".pk as "aTable1pk_aTable2pk", "root".fk as fk_0, null as fk_1 from aTable1 as "root" UNION ALL select null as "pk_0_0", "root".pk as "pk_0_1", "root".pk as "aTable1pk_aTable2pk", null as fk_0, "root".fk as fk_1 from aTable2 as "root") as "unionBase" left outer join (select "root".fk as fk_0, null as fk_1, "root".pk as "bTable1pk_bTable2pk" from bTable1 as "root" UNION ALL select null as fk_0, "root".fk as fk_1, "root".pk as "bTable1pk_bTable2pk" from bTable2 as "root") as "unionalias_1" on ("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk_1 = "unionalias_1".fk_1) left outer join (select "root".fk as fk_0, null as fk_1, "root".pk as "cTable1pk_cTable2pk" from cTable1 as "root" UNION ALL select null as fk_0, "root".fk as fk_1, "root".pk as "cTable1pk_cTable2pk" from cTable2 as "root") as "unionalias_2" on ("unionalias_1".fk_0 = "unionalias_2".fk_0 or "unionalias_1".fk_1 = "unionalias_2".fk_1)', $result); @@ -64,15 +65,15 @@ function <> meta::relational::tests::mapping::union::sqlQueryMerging: function <> meta::relational::tests::mapping::union::sqlQueryMerging::testSQLQueryMergingForProjectionsDeep():Boolean[1] { - let result = execute(|A.all()->project([a|$a.pk, - a|$a.b.pk, - a|$a.b.c.pk, + let result = execute(|A.all()->project([a|$a.pk, + a|$a.b.pk, + a|$a.b.c.pk, a|$a.b.c.d.pk], - ['a_pk', - 'b_pk', - 'c_pk', + ['a_pk', + 'b_pk', + 'c_pk', 'd_pk'] - ), + ), unionMapping, testRuntime() , meta::relational::extension::relationalExtensions()); assertSameSQL('select "unionBase"."aTable1pk_aTable2pk" as "a_pk", "unionalias_1"."bTable1pk_bTable2pk" as "b_pk", "unionalias_2"."cTable1pk_cTable2pk" as "c_pk", "unionalias_3"."dTable1pk_dTable2pk" as "d_pk" from (select "root".pk as "pk_0_0", null as "pk_0_1", "root".pk as "aTable1pk_aTable2pk", "root".fk as fk_0, null as fk_1 from aTable1 as "root" UNION ALL select null as "pk_0_0", "root".pk as "pk_0_1", "root".pk as "aTable1pk_aTable2pk", null as fk_0, "root".fk as fk_1 from aTable2 as "root") as "unionBase" left outer join (select "root".fk as fk_0, null as fk_1, "root".pk as "bTable1pk_bTable2pk" from bTable1 as "root" UNION ALL select null as fk_0, "root".fk as fk_1, "root".pk as "bTable1pk_bTable2pk" from bTable2 as "root") as "unionalias_1" on ("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk_1 = "unionalias_1".fk_1) left outer join (select "root".fk as fk_0, null as fk_1, "root".pk as "cTable1pk_cTable2pk" from cTable1 as "root" UNION ALL select null as fk_0, "root".fk as fk_1, "root".pk as "cTable1pk_cTable2pk" from cTable2 as "root") as "unionalias_2" on ("unionalias_1".fk_0 = "unionalias_2".fk_0 or "unionalias_1".fk_1 = "unionalias_2".fk_1) left outer join (select "root".fk as fk_0, null as fk_1, "root".pk as "dTable1pk_dTable2pk" from dTable1 as "root" UNION ALL select null as fk_0, "root".fk as fk_1, "root".pk as "dTable1pk_dTable2pk" from dTable2 as "root") as "unionalias_3" on ("unionalias_2".fk_0 = "unionalias_3".fk_0 or "unionalias_2".fk_1 = "unionalias_3".fk_1)', $result); @@ -87,13 +88,13 @@ function <> meta::relational::tests::mapping::union::sqlQueryMerging: let result = execute(|A.all()->filter(a|$a.pk == 1) ->filter(a|$a.b.pk == 11) ->filter(a|$a.b.c.pk == 111) - ->project([a|$a.pk, - a|$a.b.pk, + ->project([a|$a.pk, + a|$a.b.pk, a|$a.b.c.pk], - ['a_pk', - 'b_pk', + ['a_pk', + 'b_pk', 'c_pk'] - ), + ), unionMapping, testRuntime() , meta::relational::extension::relationalExtensions()); assertSameSQL('select "unionBase"."aTable1pk_aTable2pk" as "a_pk", "unionalias_1"."bTable1pk_bTable2pk" as "b_pk", "unionalias_2"."cTable1pk_cTable2pk" as "c_pk" from (select "root".pk as "aTable1pk_aTable2pk", "root".fk as fk_0, null as fk_1, "root".pk as "pk_0_0", null as "pk_0_1" from aTable1 as "root" UNION ALL select "root".pk as "aTable1pk_aTable2pk", null as fk_0, "root".fk as fk_1, null as "pk_0_0", "root".pk as "pk_0_1" from aTable2 as "root") as "unionBase" left outer join (select "root".fk as fk_0, null as fk_1, "root".pk as "bTable1pk_bTable2pk" from bTable1 as "root" UNION ALL select null as fk_0, "root".fk as fk_1, "root".pk as "bTable1pk_bTable2pk" from bTable2 as "root") as "unionalias_1" on ("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk_1 = "unionalias_1".fk_1) left outer join (select "root".fk as fk_0, null as fk_1, "root".pk as "cTable1pk_cTable2pk" from cTable1 as "root" UNION ALL select null as fk_0, "root".fk as fk_1, "root".pk as "cTable1pk_cTable2pk" from cTable2 as "root") as "unionalias_2" on ("unionalias_1".fk_0 = "unionalias_2".fk_0 or "unionalias_1".fk_1 = "unionalias_2".fk_1) where "unionalias_1"."bTable1pk_bTable2pk" = 11 and "unionBase"."aTable1pk_aTable2pk" = 1 and "unionalias_2"."cTable1pk_cTable2pk" = 111', $result); @@ -108,15 +109,15 @@ function <> meta::relational::tests::mapping::union::sqlQueryMerging: ->filter(a|$a.b.pk == 11) ->filter(a|$a.b.c.pk == 111) ->filter(a|$a.b.c.d.pk == 1111) - ->project([a|$a.pk, - a|$a.b.pk, - a|$a.b.c.pk, + ->project([a|$a.pk, + a|$a.b.pk, + a|$a.b.c.pk, a|$a.b.c.d.pk], - ['a_pk', - 'b_pk', - 'c_pk', + ['a_pk', + 'b_pk', + 'c_pk', 'd_pk'] - ), + ), unionMapping, testRuntime() , meta::relational::extension::relationalExtensions()); assertSameSQL('select "unionBase"."aTable1pk_aTable2pk" as "a_pk", "unionalias_1"."bTable1pk_bTable2pk" as "b_pk", "unionalias_2"."cTable1pk_cTable2pk" as "c_pk", "unionalias_3"."dTable1pk_dTable2pk" as "d_pk" from (select "root".pk as "aTable1pk_aTable2pk", "root".fk as fk_0, null as fk_1, "root".pk as "pk_0_0", null as "pk_0_1" from aTable1 as "root" UNION ALL select "root".pk as "aTable1pk_aTable2pk", null as fk_0, "root".fk as fk_1, null as "pk_0_0", "root".pk as "pk_0_1" from aTable2 as "root") as "unionBase" left outer join (select "root".fk as fk_0, null as fk_1, "root".pk as "bTable1pk_bTable2pk" from bTable1 as "root" UNION ALL select null as fk_0, "root".fk as fk_1, "root".pk as "bTable1pk_bTable2pk" from bTable2 as "root") as "unionalias_1" on ("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk_1 = "unionalias_1".fk_1) left outer join (select "root".fk as fk_0, null as fk_1, "root".pk as "cTable1pk_cTable2pk" from cTable1 as "root" UNION ALL select null as fk_0, "root".fk as fk_1, "root".pk as "cTable1pk_cTable2pk" from cTable2 as "root") as "unionalias_2" on ("unionalias_1".fk_0 = "unionalias_2".fk_0 or "unionalias_1".fk_1 = "unionalias_2".fk_1) left outer join (select "root".fk as fk_0, null as fk_1, "root".pk as "dTable1pk_dTable2pk" from dTable1 as "root" UNION ALL select null as fk_0, "root".fk as fk_1, "root".pk as "dTable1pk_dTable2pk" from dTable2 as "root") as "unionalias_3" on ("unionalias_2".fk_0 = "unionalias_3".fk_0 or "unionalias_2".fk_1 = "unionalias_3".fk_1) where "unionalias_2"."cTable1pk_cTable2pk" = 111 and "unionalias_1"."bTable1pk_bTable2pk" = 11 and "unionBase"."aTable1pk_aTable2pk" = 1 and "unionalias_3"."dTable1pk_dTable2pk" = 1111', $result); @@ -296,14 +297,16 @@ Mapping meta::relational::tests::mapping::union::sqlQueryMerging::mapping::union ) ###Pure +import meta::core::runtime::*; import meta::pure::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::execute::*; import meta::relational::tests::mapping::union::sqlQueryMerging::store::*; function <> meta::relational::tests::mapping::union::sqlQueryMerging::setup():Runtime[1] { - let connection = meta::relational::tests::testRuntime(database).connectionByElement(database)->cast(@DatabaseConnection); + let connection = meta::external::store::relational::tests::testRuntime(database).connectionByElement(database)->cast(@DatabaseConnection); executeInDb('drop table if exists aTable1;', $connection); executeInDb('create table aTable1 (pk INTEGER, fk INTEGER)', $connection); @@ -339,11 +342,11 @@ function <> meta::relational::tests::mapping::union::sqlQuer executeInDb('create table cTable2 (pk INTEGER, c1 VARCHAR(10), c2 VARCHAR(10), fk INTEGER)', $connection); executeInDb('insert into cTable2 values(111, \'8\', \'8\', 8);', $connection); executeInDb('insert into cTable2 values(222, \'9\', \'9\', 9);', $connection); - + executeInDb('drop table if exists dTable2;', $connection); executeInDb('create table dTable2 (pk INTEGER, fk INTEGER)', $connection); executeInDb('insert into dTable2 values(1111, 8);', $connection); executeInDb('insert into dTable2 values(2222, 9);', $connection); - - ^Runtime(connections = $connection); + + ^Runtime(connectionStores=^ConnectionStore(connection=$connection, element=database)); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionOptimized.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionOptimized.pure index f6e0a124367..aa630f2c64d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionOptimized.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionOptimized.pure @@ -17,7 +17,9 @@ import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::mapping::union::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::model::simple::*; diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionPartial.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionPartial.pure index 00487ad4c96..40d972083d9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionPartial.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionPartial.pure @@ -14,7 +14,9 @@ import meta::relational::tests::mapping::union::partial::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::model::simple::*; @@ -56,7 +58,7 @@ function <> meta::relational::tests::mapping::union::partial::testPar testRuntime(), meta::relational::extension::relationalExtensions() ); - + meta::relational::functions::asserts::assertSameSQL( 'select "root".name as "firmName", "unionalias_0"."PersonSet1lastName_s1_PersonSet2lastName_s2" as "employeeName", "unionalias_1"."AddressSet1name_AddressSet2name" as "addressName" from Firm as "root" left outer join (select "root".FirmID as FirmID_0, null as FirmID_1, "root".lastName_s1 as "PersonSet1lastName_s1_PersonSet2lastName_s2", "root".ADDRESSID as ADDRESSID_0 from PersonSet1 as "root" UNION ALL select null as FirmID_0, "root".FirmID as FirmID_1, "root".lastName_s2 as "PersonSet1lastName_s1_PersonSet2lastName_s2", null as ADDRESSID_0 from PersonSet2 as "root") as "unionalias_0" on ("unionalias_0".FirmID_0 = "root".ID or "unionalias_0".FirmID_1 = "root".ID) left outer join (select "root".ID as ID_0, null as ID_1, "root".name as "AddressSet1name_AddressSet2name" from AddressSet1 as "root" UNION ALL select null as ID_0, "root".ID as ID_1, "root".name as "AddressSet1name_AddressSet2name" from AddressSet2 as "root") as "unionalias_1" on ("unionalias_0".ADDRESSID_0 = "unionalias_1".ID_0 or "unionalias_0".ADDRESSID_0 = "unionalias_1".ID_1)', $result @@ -71,7 +73,7 @@ function <> meta::relational::tests::mapping::union::partial::testPar testRuntime(), meta::relational::extension::relationalExtensions() ); - + meta::relational::functions::asserts::assertSameSQL( 'select "root".name as "firmName", "unionalias_0"."PersonSet1lastName_s1_PersonSet2lastName_s2" as "employeeName", "unionalias_1"."AddressSet1name_AddressSet2name" as "addressName" from Firm as "root" left outer join (select "root".FirmID as FirmID_0, null as FirmID_1, "root".lastName_s1 as "PersonSet1lastName_s1_PersonSet2lastName_s2" from PersonSet1 as "root" UNION ALL select null as FirmID_0, "root".FirmID as FirmID_1, "root".lastName_s2 as "PersonSet1lastName_s1_PersonSet2lastName_s2" from PersonSet2 as "root") as "unionalias_0" on ("unionalias_0".FirmID_0 = "root".ID or "unionalias_0".FirmID_1 = "root".ID) left outer join (select "root".ID as ID_0, null as ID_1, "root".name as "AddressSet1name_AddressSet2name" from AddressSet1 as "root" UNION ALL select null as ID_0, "root".ID as ID_1, "root".name as "AddressSet1name_AddressSet2name" from AddressSet2 as "root") as "unionalias_1" on ("unionalias_0".FirmID_0 = "unionalias_1".ID_0 or "unionalias_0".FirmID_0 = "unionalias_1".ID_1)', $result @@ -86,7 +88,7 @@ function <> meta::relational::tests::mapping::union::partial::testPar testRuntime(), meta::relational::extension::relationalExtensions() ); - + meta::relational::functions::asserts::assertSameSQL( 'select "root".name as "firmName", "unionalias_0"."PersonSet1lastName_s1_PersonSet2lastName_s2" as "employeeName", "unionalias_1"."AddressSet1name_AddressSet2name" as "addressName" from Firm as "root" left outer join (select "root".FirmID as firmId, "root".lastName_s1 as "PersonSet1lastName_s1_PersonSet2lastName_s2", "root".FirmID as FirmID_0 from PersonSet1 as "root" UNION ALL select "root".FirmID as firmId, "root".lastName_s2 as "PersonSet1lastName_s1_PersonSet2lastName_s2", null as FirmID_0 from PersonSet2 as "root") as "unionalias_0" on ("unionalias_0".firmId = "root".ID) left outer join (select "root".ID as ID_0, null as ID_1, "root".name as "AddressSet1name_AddressSet2name" from AddressSet1 as "root" UNION ALL select null as ID_0, "root".ID as ID_1, "root".name as "AddressSet1name_AddressSet2name" from AddressSet2 as "root") as "unionalias_1" on ("unionalias_0".FirmID_0 = "unionalias_1".ID_0 or "unionalias_0".FirmID_0 = "unionalias_1".ID_1)', $result @@ -134,22 +136,22 @@ Mapping meta::relational::tests::mapping::union::partial::unionMapping ( *Person : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) } - + Person[set1] : Relational { lastName : [myDB]PersonSet1.lastName_s1, firm : [myDB]@PersonSet1Firm } - + Person[set2] : Relational { lastName : [myDB]PersonSet2.lastName_s2, firm : [myDB]@PersonSet2Firm } - + Firm : Relational { legalName : [myDB]Firm.name, @@ -169,24 +171,24 @@ Mapping meta::relational::tests::mapping::union::partial::partialUnionMappingOfA employees[set1]:[myDB]@PersonSet1Firm, employees[set2]:[myDB]@PersonSet2Firm } - + *Person : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) } *Address : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(add1, add2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(add1, add2) } - + Person[set1] : Relational { lastName : [myDB]PersonSet1.lastName_s1, address[add1] : [myDB]@PersonSet1AddressSet1_ADDRESSID, address[add2] : [myDB]@PersonSet1AddressSet2_ADDRESSID } - + Person[set2] : Relational { lastName : [myDB]PersonSet2.lastName_s2 @@ -196,11 +198,11 @@ Mapping meta::relational::tests::mapping::union::partial::partialUnionMappingOfA { name : [myDB]AddressSet1.name } - + Address[add2] : Relational { name : [myDB]AddressSet2.name - } + } ) ###Mapping @@ -215,24 +217,24 @@ Mapping meta::relational::tests::mapping::union::partial::partialUnionMappingOfA employees[set1]:[myDB]@PersonSet1Firm, employees[set2]:[myDB]@PersonSet2Firm } - + *Person : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) } *Address : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(add1, add2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(add1, add2) } - + Person[set1] : Relational { lastName : [myDB]PersonSet1.lastName_s1, address[add1] : [myDB]@PersonSet1AddressSet1, // Join key is FIRMID in person table address[add2] : [myDB]@PersonSet1AddressSet2 // Join key is FIRMID in person table } - + Person[set2] : Relational { lastName : [myDB]PersonSet2.lastName_s2 @@ -242,11 +244,11 @@ Mapping meta::relational::tests::mapping::union::partial::partialUnionMappingOfA { name : [myDB]AddressSet1.name } - + Address[add2] : Relational { name : [myDB]AddressSet2.name - } + } ) ###Mapping @@ -261,17 +263,17 @@ Mapping meta::relational::tests::mapping::union::partial::partialUnionMappingOfA employees[set1]:[myDB]@PersonSet1Firm, employees[set2]:[myDB]@PersonSet2Firm } - + *Person : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) } *Address : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(add1, add2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(add1, add2) } - + Person[set1] : Relational { +firmId : Integer[0..1] : [myDB]PersonSet1.FirmID, @@ -279,7 +281,7 @@ Mapping meta::relational::tests::mapping::union::partial::partialUnionMappingOfA address[add1] : [myDB]@PersonSet1AddressSet1, // Join key is FIRMID in person table address[add2] : [myDB]@PersonSet1AddressSet2 // Join key is FIRMID in person table } - + Person[set2] : Relational { +firmId : Integer[0..1] : [myDB]PersonSet2.FirmID, @@ -290,11 +292,11 @@ Mapping meta::relational::tests::mapping::union::partial::partialUnionMappingOfA { name : [myDB]AddressSet1.name } - + Address[add2] : Relational { name : [myDB]AddressSet2.name - } + } ) @@ -333,9 +335,9 @@ Mapping meta::relational::tests::mapping::union::partial::partialUnionMappingOfS ( *PersonBase : Operation { - meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) + meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(set1, set2) } - + PersonExt1[set1] : Relational { lastName : [myDB]PersonSet1.lastName_s1, @@ -345,7 +347,7 @@ Mapping meta::relational::tests::mapping::union::partial::partialUnionMappingOfS name: [myDB] @PersonSet1AddressSet1_ADDRESSID | AddressSet1.name ) } - + PersonExt2[set2] : Relational { lastName : [myDB]PersonSet1.lastName_s1, @@ -354,5 +356,5 @@ Mapping meta::relational::tests::mapping::union::partial::partialUnionMappingOfS ext2Address ( name: [myDB] @PersonSet1AddressSet1_ADDRESSID | AddressSet1.name ) - } + } ) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionWithExtends.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionWithExtends.pure index 1fb854d8cf6..4d1ef61c57e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionWithExtends.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionWithExtends.pure @@ -17,7 +17,9 @@ import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::mapping::union::extend::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; function <> meta::relational::tests::mapping::union::extend::testSimpleProject():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionWithMultipleChainedJoins.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionWithMultipleChainedJoins.pure index 3cbc6bf26cc..cbfb475762d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionWithMultipleChainedJoins.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionWithMultipleChainedJoins.pure @@ -19,13 +19,14 @@ import meta::relational::functions::asserts::*; import meta::relational::tests::mapping::union::multipleChainedJoins::mapping::*; import meta::relational::tests::mapping::union::multipleChainedJoins::model::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::mapping::union::multipleChainedJoins::testUnionWithChainedJoinsAcross2SetsV1():Boolean[1] { let result = execute(|X.all(%2018-1-1)->project([x|$x.pk, x|$x.y.pk, x|$x.y.z.pk],['x_pk', 'y_pk', 'z_pk']), multipleChainedJoinsMappingWithUnionAcross2SetsV1, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionBase"."X0pk_X1pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk" as "y_pk", "unionalias_3"."Z0pk_Z1pk" as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as "pk_0_0", null as "pk_0_1", "root".pk as "X0pk_X1pk", "root".fk as fk_0, null as fk_1 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "pk_0_0", "root".pk as "pk_0_1", "root".pk as "X0pk_X1pk", null as fk_0, "root".fk as fk_1 from X1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join A as "a_0" on ("unionBase".fk_1 = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') left outer join (select "unionalias_2".fk_1 as fk_1, "unionalias_2".fk_0 as fk_0, "unionalias_2"."Y0pk_Y1pk" as "Y0pk_Y1pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".fk as fk_0, null as fk_1, "root".pk as "Y0pk_Y1pk" from Y0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as fk_0, "root".fk as fk_1, "root".pk as "Y0pk_Y1pk" from Y1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_2" where (coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1") <= \'2018-01-01\' and coalesce("unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") > \'2018-01-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1", "unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") is null) as "unionalias_1" on ("a_0".fk1 = "unionalias_1".fk_1 or "unionBase".fk_0 = "unionalias_1".fk_0) left outer join (select "g_1".fk0 as fk0, "g_1".fk1 from G as "g_1" where "g_1".from_z <= \'2018-01-01\' and "g_1".thru_z > \'2018-01-01\') as "g_0" on ("unionalias_1".fk_1 = "g_0".fk0) left outer join (select "unionalias_4".fk_1 as fk_1, "unionalias_4".fk_0 as fk_0, "unionalias_4"."Z0pk_Z1pk" as "Z0pk_Z1pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".fk as fk_0, null as fk_1, "root".pk as "Z0pk_Z1pk" from Z0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as fk_0, "root".fk as fk_1, "root".pk as "Z0pk_Z1pk" from Z1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_4" where (coalesce("unionalias_4"."from_z_0", "unionalias_4"."from_z_1") <= \'2018-01-01\' and coalesce("unionalias_4"."thru_z_0", "unionalias_4"."thru_z_1") > \'2018-01-01\') or coalesce("unionalias_4"."from_z_0", "unionalias_4"."from_z_1", "unionalias_4"."thru_z_0", "unionalias_4"."thru_z_1") is null) as "unionalias_3" on ("g_0".fk1 = "unionalias_3".fk_1 or "unionalias_1".fk_0 = "unionalias_3".fk_0)', - 'select "unionBase"."X0pk_X1pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk" as "y_pk", "unionalias_3"."Z0pk_Z1pk" as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as "pk_0_0", null as "pk_0_1", "root".pk as "X0pk_X1pk", "root".fk as fk_0, null as fk_1 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "pk_0_0", "root".pk as "pk_0_1", "root".pk as "X0pk_X1pk", null as fk_0, "root".fk as fk_1 from X1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join A as "a_0" on ("unionBase".fk_1 = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') left outer join (select "unionalias_2".fk_1 as fk_1, "unionalias_2".fk_0 as fk_0, "unionalias_2"."Y0pk_Y1pk" as "Y0pk_Y1pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".fk as fk_0, null as fk_1, "root".pk as "Y0pk_Y1pk" from Y0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as fk_0, "root".fk as fk_1, "root".pk as "Y0pk_Y1pk" from Y1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_2" where (coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1") <= DATE\'2018-01-01\' and coalesce("unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") > DATE\'2018-01-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1", "unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") is null) as "unionalias_1" on ("a_0".fk1 = "unionalias_1".fk_1 or "unionBase".fk_0 = "unionalias_1".fk_0) left outer join (select "g_1".fk0 as fk0, "g_1".fk1 from G as "g_1" where "g_1".from_z <= DATE\'2018-01-01\' and "g_1".thru_z > DATE\'2018-01-01\') as "g_0" on ("unionalias_1".fk_1 = "g_0".fk0) left outer join (select "unionalias_4".fk_1 as fk_1, "unionalias_4".fk_0 as fk_0, "unionalias_4"."Z0pk_Z1pk" as "Z0pk_Z1pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".fk as fk_0, null as fk_1, "root".pk as "Z0pk_Z1pk" from Z0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as fk_0, "root".fk as fk_1, "root".pk as "Z0pk_Z1pk" from Z1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_4" where (coalesce("unionalias_4"."from_z_0", "unionalias_4"."from_z_1") <= DATE\'2018-01-01\' and coalesce("unionalias_4"."thru_z_0", "unionalias_4"."thru_z_1") > DATE\'2018-01-01\') or coalesce("unionalias_4"."from_z_0", "unionalias_4"."from_z_1", "unionalias_4"."thru_z_0", "unionalias_4"."thru_z_1") is null) as "unionalias_3" on ("g_0".fk1 = "unionalias_3".fk_1 or "unionalias_1".fk_0 = "unionalias_3".fk_0)', + 'select "unionBase"."X0pk_X1pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk" as "y_pk", "unionalias_3"."Z0pk_Z1pk" as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as "pk_0_0", null as "pk_0_1", "root".pk as "X0pk_X1pk", "root".fk as fk_0, null as fk_1 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "pk_0_0", "root".pk as "pk_0_1", "root".pk as "X0pk_X1pk", null as fk_0, "root".fk as fk_1 from X1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join A as "a_0" on ("unionBase".fk_1 = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') left outer join (select "unionalias_2".fk_1 as fk_1, "unionalias_2".fk_0 as fk_0, "unionalias_2"."Y0pk_Y1pk" as "Y0pk_Y1pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".fk as fk_0, null as fk_1, "root".pk as "Y0pk_Y1pk" from Y0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as fk_0, "root".fk as fk_1, "root".pk as "Y0pk_Y1pk" from Y1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_2" where (coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1") <= \'2018-01-01\' and coalesce("unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") > \'2018-01-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1", "unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") is null) as "unionalias_1" on ("a_0".fk1 = "unionalias_1".fk_1 or "unionBase".fk_0 = "unionalias_1".fk_0) left outer join (select "g_1".fk0 as fk0, "g_1".fk1 from G as "g_1" where "g_1".from_z <= \'2018-01-01\' and "g_1".thru_z > \'2018-01-01\') as "g_0" on ("unionalias_1".fk_1 = "g_0".fk0) left outer join (select "unionalias_4".fk_1 as fk_1, "unionalias_4".fk_0 as fk_0, "unionalias_4"."Z0pk_Z1pk" as "Z0pk_Z1pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".fk as fk_0, null as fk_1, "root".pk as "Z0pk_Z1pk" from Z0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as fk_0, "root".fk as fk_1, "root".pk as "Z0pk_Z1pk" from Z1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_4" where (coalesce("unionalias_4"."from_z_0", "unionalias_4"."from_z_1") <= \'2018-01-01\' and coalesce("unionalias_4"."thru_z_0", "unionalias_4"."thru_z_1") > \'2018-01-01\') or coalesce("unionalias_4"."from_z_0", "unionalias_4"."from_z_1", "unionalias_4"."thru_z_0", "unionalias_4"."thru_z_1") is null) as "unionalias_3" on ("g_0".fk1 = "unionalias_3".fk_1 or "unionalias_1".fk_0 = "unionalias_3".fk_0)', + 'select "unionBase"."X0pk_X1pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk" as "y_pk", "unionalias_3"."Z0pk_Z1pk" as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as "pk_0_0", null as "pk_0_1", "root".pk as "X0pk_X1pk", "root".fk as fk_0, null as fk_1 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "pk_0_0", "root".pk as "pk_0_1", "root".pk as "X0pk_X1pk", null as fk_0, "root".fk as fk_1 from X1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join A as "a_0" on ("unionBase".fk_1 = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') left outer join (select "unionalias_2".fk_1 as fk_1, "unionalias_2".fk_0 as fk_0, "unionalias_2"."Y0pk_Y1pk" as "Y0pk_Y1pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".fk as fk_0, null as fk_1, "root".pk as "Y0pk_Y1pk" from Y0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as fk_0, "root".fk as fk_1, "root".pk as "Y0pk_Y1pk" from Y1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_2" where (coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1") <= DATE\'2018-01-01\' and coalesce("unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") > DATE\'2018-01-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1", "unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") is null) as "unionalias_1" on ("a_0".fk1 = "unionalias_1".fk_1 or "unionBase".fk_0 = "unionalias_1".fk_0) left outer join (select "g_1".fk0 as fk0, "g_1".fk1 from G as "g_1" where "g_1".from_z <= DATE\'2018-01-01\' and "g_1".thru_z > DATE\'2018-01-01\') as "g_0" on ("unionalias_1".fk_1 = "g_0".fk0) left outer join (select "unionalias_4".fk_1 as fk_1, "unionalias_4".fk_0 as fk_0, "unionalias_4"."Z0pk_Z1pk" as "Z0pk_Z1pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".fk as fk_0, null as fk_1, "root".pk as "Z0pk_Z1pk" from Z0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as fk_0, "root".fk as fk_1, "root".pk as "Z0pk_Z1pk" from Z1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_4" where (coalesce("unionalias_4"."from_z_0", "unionalias_4"."from_z_1") <= DATE\'2018-01-01\' and coalesce("unionalias_4"."thru_z_0", "unionalias_4"."thru_z_1") > DATE\'2018-01-01\') or coalesce("unionalias_4"."from_z_0", "unionalias_4"."from_z_1", "unionalias_4"."thru_z_0", "unionalias_4"."thru_z_1") is null) as "unionalias_3" on ("g_0".fk1 = "unionalias_3".fk_1 or "unionalias_1".fk_0 = "unionalias_3".fk_0)', $result->sqlRemoveFormatting() ); assertEquals([10, 11], $result.values.rows.get('x_pk')); @@ -37,8 +38,8 @@ function <> meta::relational::tests::mapping::union::multipleChainedJ { let result = execute(|X.all(%2018-1-1)->project([x|$x.pk, x|$x.y.pk, x|$x.y.z.pk],['x_pk', 'y_pk', 'z_pk']), multipleChainedJoinsMappingWithUnionAcross3SetsV1, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionBase"."X0pk_X1pk_X2pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk" as "y_pk", "unionalias_2"."Z0pk_Z1pk_Z2pk" as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk1_1, null as fk1_2 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, "root".fk as fk_1, null as fk_2, "a_0".fk1 as fk1_1, null as fk1_2 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk1_1, "c_0".fk1 as fk1_2 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= \'2018-01-01\' and "b_0".thru_z > \'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= \'2018-01-01\' and "c_1".thru_z > \'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".fk as fk_0, null as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, null as fk1_2 from Y0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as fk_0, "root".fk as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", "g_0".fk1 as fk1_1, null as fk1_2 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= \'2018-01-01\' and "g_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as fk_0, null as fk_1, "root".fk as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, "i_0".fk1 as fk1_2 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= \'2018-01-01\' and "h_0".thru_z > \'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= \'2018-01-01\' and "i_1".thru_z > \'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2") <= \'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") > \'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") is null)) left outer join (select "unionalias_3".fk_0 as fk_0, "unionalias_3".fk_1 as fk_1, "unionalias_3".fk_2 as fk_2, "unionalias_3"."Z0pk_Z1pk_Z2pk" as "Z0pk_Z1pk_Z2pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".fk as fk_0, null as fk_1, null as fk_2, "root".pk as "Z0pk_Z1pk_Z2pk" from Z0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as fk_0, "root".fk as fk_1, null as fk_2, "root".pk as "Z0pk_Z1pk_Z2pk" from Z1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as fk_0, null as fk_1, "root".fk as fk_2, "root".pk as "Z0pk_Z1pk_Z2pk" from Z2 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_3" where (coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2") <= \'2018-01-01\' and coalesce("unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2") > \'2018-01-01\') or coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2", "unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2") is null) as "unionalias_2" on ("unionalias_1".fk_0 = "unionalias_2".fk_0 or "unionalias_1".fk1_1 = "unionalias_2".fk_1 or "unionalias_1".fk1_2 = "unionalias_2".fk_2)', - 'select "unionBase"."X0pk_X1pk_X2pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk" as "y_pk", "unionalias_2"."Z0pk_Z1pk_Z2pk" as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk1_1, null as fk1_2 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, "root".fk as fk_1, null as fk_2, "a_0".fk1 as fk1_1, null as fk1_2 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk1_1, "c_0".fk1 as fk1_2 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= DATE\'2018-01-01\' and "b_0".thru_z > DATE\'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= DATE\'2018-01-01\' and "c_1".thru_z > DATE\'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".fk as fk_0, null as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, null as fk1_2 from Y0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as fk_0, "root".fk as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", "g_0".fk1 as fk1_1, null as fk1_2 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= DATE\'2018-01-01\' and "g_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as fk_0, null as fk_1, "root".fk as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, "i_0".fk1 as fk1_2 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= DATE\'2018-01-01\' and "h_0".thru_z > DATE\'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= DATE\'2018-01-01\' and "i_1".thru_z > DATE\'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2") <= DATE\'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") > DATE\'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") is null)) left outer join (select "unionalias_3".fk_0 as fk_0, "unionalias_3".fk_1 as fk_1, "unionalias_3".fk_2 as fk_2, "unionalias_3"."Z0pk_Z1pk_Z2pk" as "Z0pk_Z1pk_Z2pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".fk as fk_0, null as fk_1, null as fk_2, "root".pk as "Z0pk_Z1pk_Z2pk" from Z0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as fk_0, "root".fk as fk_1, null as fk_2, "root".pk as "Z0pk_Z1pk_Z2pk" from Z1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as fk_0, null as fk_1, "root".fk as fk_2, "root".pk as "Z0pk_Z1pk_Z2pk" from Z2 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_3" where (coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2") <= DATE\'2018-01-01\' and coalesce("unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2") > DATE\'2018-01-01\') or coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2", "unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2") is null) as "unionalias_2" on ("unionalias_1".fk_0 = "unionalias_2".fk_0 or "unionalias_1".fk1_1 = "unionalias_2".fk_1 or "unionalias_1".fk1_2 = "unionalias_2".fk_2)', + 'select "unionBase"."X0pk_X1pk_X2pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk" as "y_pk", "unionalias_2"."Z0pk_Z1pk_Z2pk" as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk1_1, null as fk1_2 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, "root".fk as fk_1, null as fk_2, "a_0".fk1 as fk1_1, null as fk1_2 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk1_1, "c_0".fk1 as fk1_2 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= \'2018-01-01\' and "b_0".thru_z > \'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= \'2018-01-01\' and "c_1".thru_z > \'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".fk as fk_0, null as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, null as fk1_2 from Y0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as fk_0, "root".fk as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", "g_0".fk1 as fk1_1, null as fk1_2 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= \'2018-01-01\' and "g_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as fk_0, null as fk_1, "root".fk as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, "i_0".fk1 as fk1_2 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= \'2018-01-01\' and "h_0".thru_z > \'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= \'2018-01-01\' and "i_1".thru_z > \'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2") <= \'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") > \'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") is null)) left outer join (select "unionalias_3".fk_0 as fk_0, "unionalias_3".fk_1 as fk_1, "unionalias_3".fk_2 as fk_2, "unionalias_3"."Z0pk_Z1pk_Z2pk" as "Z0pk_Z1pk_Z2pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".fk as fk_0, null as fk_1, null as fk_2, "root".pk as "Z0pk_Z1pk_Z2pk" from Z0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as fk_0, "root".fk as fk_1, null as fk_2, "root".pk as "Z0pk_Z1pk_Z2pk" from Z1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as fk_0, null as fk_1, "root".fk as fk_2, "root".pk as "Z0pk_Z1pk_Z2pk" from Z2 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_3" where (coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2") <= \'2018-01-01\' and coalesce("unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2") > \'2018-01-01\') or coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2", "unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2") is null) as "unionalias_2" on ("unionalias_1".fk_0 = "unionalias_2".fk_0 or "unionalias_1".fk1_1 = "unionalias_2".fk_1 or "unionalias_1".fk1_2 = "unionalias_2".fk_2)', + 'select "unionBase"."X0pk_X1pk_X2pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk" as "y_pk", "unionalias_2"."Z0pk_Z1pk_Z2pk" as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk1_1, null as fk1_2 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, "root".fk as fk_1, null as fk_2, "a_0".fk1 as fk1_1, null as fk1_2 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk1_1, "c_0".fk1 as fk1_2 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= DATE\'2018-01-01\' and "b_0".thru_z > DATE\'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= DATE\'2018-01-01\' and "c_1".thru_z > DATE\'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".fk as fk_0, null as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, null as fk1_2 from Y0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as fk_0, "root".fk as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", "g_0".fk1 as fk1_1, null as fk1_2 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= DATE\'2018-01-01\' and "g_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as fk_0, null as fk_1, "root".fk as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, "i_0".fk1 as fk1_2 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= DATE\'2018-01-01\' and "h_0".thru_z > DATE\'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= DATE\'2018-01-01\' and "i_1".thru_z > DATE\'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2") <= DATE\'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") > DATE\'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") is null)) left outer join (select "unionalias_3".fk_0 as fk_0, "unionalias_3".fk_1 as fk_1, "unionalias_3".fk_2 as fk_2, "unionalias_3"."Z0pk_Z1pk_Z2pk" as "Z0pk_Z1pk_Z2pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".fk as fk_0, null as fk_1, null as fk_2, "root".pk as "Z0pk_Z1pk_Z2pk" from Z0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as fk_0, "root".fk as fk_1, null as fk_2, "root".pk as "Z0pk_Z1pk_Z2pk" from Z1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as fk_0, null as fk_1, "root".fk as fk_2, "root".pk as "Z0pk_Z1pk_Z2pk" from Z2 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_3" where (coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2") <= DATE\'2018-01-01\' and coalesce("unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2") > DATE\'2018-01-01\') or coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2", "unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2") is null) as "unionalias_2" on ("unionalias_1".fk_0 = "unionalias_2".fk_0 or "unionalias_1".fk1_1 = "unionalias_2".fk_1 or "unionalias_1".fk1_2 = "unionalias_2".fk_2)', $result->sqlRemoveFormatting() ); assertEquals([10, 11, 12], $result.values.rows.get('x_pk')); @@ -50,8 +51,8 @@ function <> meta::relational::tests::mapping::union::multipleChainedJ { let result = execute(|X.all(%2018-1-1)->project([x|$x.pk, x|$x.y.pk, x|$x.y.z.pk],['x_pk', 'y_pk', 'z_pk']), multipleChainedJoinsMappingWithUnionAcross4SetsV1, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionBase"."X0pk_X1pk_X2pk_X3pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk_Y3pk" as "y_pk", "unionalias_2"."Z0pk_Z1pk_Z2pk_Z3pk" as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, null as fk1_1, null as fk1_2, null as fk1_3 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "a_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, null as fk1_1, "c_0".fk1 as fk1_2, null as fk1_3 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= \'2018-01-01\' and "b_0".thru_z > \'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= \'2018-01-01\' and "c_1".thru_z > \'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, null as fk1_1, null as fk1_2, "f_0".fk1 as fk1_3 from X3 as "root" left outer join D as "d_0" on ("root".fk = "d_0".fk0 and "d_0".from_z <= \'2018-01-01\' and "d_0".thru_z > \'2018-01-01\') left outer join (select "e_1".fk0 as fk0, "e_1".fk1 from E as "e_1" where "e_1".from_z <= \'2018-01-01\' and "e_1".thru_z > \'2018-01-01\') as "e_0" on ("d_0".fk1 = "e_0".fk0) left outer join (select "f_1".fk1 as fk1, "f_1".fk0 as fk0 from F as "f_1" where "f_1".from_z <= \'2018-01-01\' and "f_1".thru_z > \'2018-01-01\') as "f_0" on ("e_0".fk1 = "f_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, null as fk1_3 from Y0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", "g_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= \'2018-01-01\' and "g_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, "i_0".fk1 as fk1_2, null as fk1_3 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= \'2018-01-01\' and "h_0".thru_z > \'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= \'2018-01-01\' and "i_1".thru_z > \'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, "l_0".fk1 as fk1_3 from Y3 as "root" left outer join J as "j_0" on ("root".fk = "j_0".fk0 and "j_0".from_z <= \'2018-01-01\' and "j_0".thru_z > \'2018-01-01\') left outer join (select "k_1".fk0 as fk0, "k_1".fk1 from K as "k_1" where "k_1".from_z <= \'2018-01-01\' and "k_1".thru_z > \'2018-01-01\') as "k_0" on ("j_0".fk1 = "k_0".fk0) left outer join (select "l_1".fk1 as fk1, "l_1".fk0 as fk0 from L as "l_1" where "l_1".from_z <= \'2018-01-01\' and "l_1".thru_z > \'2018-01-01\') as "l_0" on ("k_0".fk1 = "l_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2 or "unionBase".fk1_3 = "unionalias_1".fk_3) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3") <= \'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") > \'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") is null)) left outer join (select "unionalias_3".fk_0 as fk_0, "unionalias_3".fk_1 as fk_1, "unionalias_3".fk_2 as fk_2, "unionalias_3".fk_3 as fk_3, "unionalias_3"."Z0pk_Z1pk_Z2pk_Z3pk" as "Z0pk_Z1pk_Z2pk_Z3pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z2 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z3 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_3" where (coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2", "unionalias_3"."from_z_3") <= \'2018-01-01\' and coalesce("unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2", "unionalias_3"."thru_z_3") > \'2018-01-01\') or coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2", "unionalias_3"."from_z_3", "unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2", "unionalias_3"."thru_z_3") is null) as "unionalias_2" on ("unionalias_1".fk_0 = "unionalias_2".fk_0 or "unionalias_1".fk1_1 = "unionalias_2".fk_1 or "unionalias_1".fk1_2 = "unionalias_2".fk_2 or "unionalias_1".fk1_3 = "unionalias_2".fk_3)', - 'select "unionBase"."X0pk_X1pk_X2pk_X3pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk_Y3pk" as "y_pk", "unionalias_2"."Z0pk_Z1pk_Z2pk_Z3pk" as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, null as fk1_1, null as fk1_2, null as fk1_3 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "a_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, null as fk1_1, "c_0".fk1 as fk1_2, null as fk1_3 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= DATE\'2018-01-01\' and "b_0".thru_z > DATE\'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= DATE\'2018-01-01\' and "c_1".thru_z > DATE\'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, null as fk1_1, null as fk1_2, "f_0".fk1 as fk1_3 from X3 as "root" left outer join D as "d_0" on ("root".fk = "d_0".fk0 and "d_0".from_z <= DATE\'2018-01-01\' and "d_0".thru_z > DATE\'2018-01-01\') left outer join (select "e_1".fk0 as fk0, "e_1".fk1 from E as "e_1" where "e_1".from_z <= DATE\'2018-01-01\' and "e_1".thru_z > DATE\'2018-01-01\') as "e_0" on ("d_0".fk1 = "e_0".fk0) left outer join (select "f_1".fk1 as fk1, "f_1".fk0 as fk0 from F as "f_1" where "f_1".from_z <= DATE\'2018-01-01\' and "f_1".thru_z > DATE\'2018-01-01\') as "f_0" on ("e_0".fk1 = "f_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, null as fk1_3 from Y0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", "g_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= DATE\'2018-01-01\' and "g_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, "i_0".fk1 as fk1_2, null as fk1_3 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= DATE\'2018-01-01\' and "h_0".thru_z > DATE\'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= DATE\'2018-01-01\' and "i_1".thru_z > DATE\'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, "l_0".fk1 as fk1_3 from Y3 as "root" left outer join J as "j_0" on ("root".fk = "j_0".fk0 and "j_0".from_z <= DATE\'2018-01-01\' and "j_0".thru_z > DATE\'2018-01-01\') left outer join (select "k_1".fk0 as fk0, "k_1".fk1 from K as "k_1" where "k_1".from_z <= DATE\'2018-01-01\' and "k_1".thru_z > DATE\'2018-01-01\') as "k_0" on ("j_0".fk1 = "k_0".fk0) left outer join (select "l_1".fk1 as fk1, "l_1".fk0 as fk0 from L as "l_1" where "l_1".from_z <= DATE\'2018-01-01\' and "l_1".thru_z > DATE\'2018-01-01\') as "l_0" on ("k_0".fk1 = "l_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2 or "unionBase".fk1_3 = "unionalias_1".fk_3) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3") <= DATE\'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") > DATE\'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") is null)) left outer join (select "unionalias_3".fk_0 as fk_0, "unionalias_3".fk_1 as fk_1, "unionalias_3".fk_2 as fk_2, "unionalias_3".fk_3 as fk_3, "unionalias_3"."Z0pk_Z1pk_Z2pk_Z3pk" as "Z0pk_Z1pk_Z2pk_Z3pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z2 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z3 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_3" where (coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2", "unionalias_3"."from_z_3") <= DATE\'2018-01-01\' and coalesce("unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2", "unionalias_3"."thru_z_3") > DATE\'2018-01-01\') or coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2", "unionalias_3"."from_z_3", "unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2", "unionalias_3"."thru_z_3") is null) as "unionalias_2" on ("unionalias_1".fk_0 = "unionalias_2".fk_0 or "unionalias_1".fk1_1 = "unionalias_2".fk_1 or "unionalias_1".fk1_2 = "unionalias_2".fk_2 or "unionalias_1".fk1_3 = "unionalias_2".fk_3)', + 'select "unionBase"."X0pk_X1pk_X2pk_X3pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk_Y3pk" as "y_pk", "unionalias_2"."Z0pk_Z1pk_Z2pk_Z3pk" as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, null as fk1_1, null as fk1_2, null as fk1_3 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "a_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, null as fk1_1, "c_0".fk1 as fk1_2, null as fk1_3 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= \'2018-01-01\' and "b_0".thru_z > \'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= \'2018-01-01\' and "c_1".thru_z > \'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, null as fk1_1, null as fk1_2, "f_0".fk1 as fk1_3 from X3 as "root" left outer join D as "d_0" on ("root".fk = "d_0".fk0 and "d_0".from_z <= \'2018-01-01\' and "d_0".thru_z > \'2018-01-01\') left outer join (select "e_1".fk0 as fk0, "e_1".fk1 from E as "e_1" where "e_1".from_z <= \'2018-01-01\' and "e_1".thru_z > \'2018-01-01\') as "e_0" on ("d_0".fk1 = "e_0".fk0) left outer join (select "f_1".fk1 as fk1, "f_1".fk0 as fk0 from F as "f_1" where "f_1".from_z <= \'2018-01-01\' and "f_1".thru_z > \'2018-01-01\') as "f_0" on ("e_0".fk1 = "f_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, null as fk1_3 from Y0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", "g_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= \'2018-01-01\' and "g_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, "i_0".fk1 as fk1_2, null as fk1_3 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= \'2018-01-01\' and "h_0".thru_z > \'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= \'2018-01-01\' and "i_1".thru_z > \'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, "l_0".fk1 as fk1_3 from Y3 as "root" left outer join J as "j_0" on ("root".fk = "j_0".fk0 and "j_0".from_z <= \'2018-01-01\' and "j_0".thru_z > \'2018-01-01\') left outer join (select "k_1".fk0 as fk0, "k_1".fk1 from K as "k_1" where "k_1".from_z <= \'2018-01-01\' and "k_1".thru_z > \'2018-01-01\') as "k_0" on ("j_0".fk1 = "k_0".fk0) left outer join (select "l_1".fk1 as fk1, "l_1".fk0 as fk0 from L as "l_1" where "l_1".from_z <= \'2018-01-01\' and "l_1".thru_z > \'2018-01-01\') as "l_0" on ("k_0".fk1 = "l_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2 or "unionBase".fk1_3 = "unionalias_1".fk_3) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3") <= \'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") > \'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") is null)) left outer join (select "unionalias_3".fk_0 as fk_0, "unionalias_3".fk_1 as fk_1, "unionalias_3".fk_2 as fk_2, "unionalias_3".fk_3 as fk_3, "unionalias_3"."Z0pk_Z1pk_Z2pk_Z3pk" as "Z0pk_Z1pk_Z2pk_Z3pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z2 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z3 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_3" where (coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2", "unionalias_3"."from_z_3") <= \'2018-01-01\' and coalesce("unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2", "unionalias_3"."thru_z_3") > \'2018-01-01\') or coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2", "unionalias_3"."from_z_3", "unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2", "unionalias_3"."thru_z_3") is null) as "unionalias_2" on ("unionalias_1".fk_0 = "unionalias_2".fk_0 or "unionalias_1".fk1_1 = "unionalias_2".fk_1 or "unionalias_1".fk1_2 = "unionalias_2".fk_2 or "unionalias_1".fk1_3 = "unionalias_2".fk_3)', + 'select "unionBase"."X0pk_X1pk_X2pk_X3pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk_Y3pk" as "y_pk", "unionalias_2"."Z0pk_Z1pk_Z2pk_Z3pk" as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, null as fk1_1, null as fk1_2, null as fk1_3 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "a_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, null as fk1_1, "c_0".fk1 as fk1_2, null as fk1_3 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= DATE\'2018-01-01\' and "b_0".thru_z > DATE\'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= DATE\'2018-01-01\' and "c_1".thru_z > DATE\'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, null as fk1_1, null as fk1_2, "f_0".fk1 as fk1_3 from X3 as "root" left outer join D as "d_0" on ("root".fk = "d_0".fk0 and "d_0".from_z <= DATE\'2018-01-01\' and "d_0".thru_z > DATE\'2018-01-01\') left outer join (select "e_1".fk0 as fk0, "e_1".fk1 from E as "e_1" where "e_1".from_z <= DATE\'2018-01-01\' and "e_1".thru_z > DATE\'2018-01-01\') as "e_0" on ("d_0".fk1 = "e_0".fk0) left outer join (select "f_1".fk1 as fk1, "f_1".fk0 as fk0 from F as "f_1" where "f_1".from_z <= DATE\'2018-01-01\' and "f_1".thru_z > DATE\'2018-01-01\') as "f_0" on ("e_0".fk1 = "f_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, null as fk1_3 from Y0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", "g_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= DATE\'2018-01-01\' and "g_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, "i_0".fk1 as fk1_2, null as fk1_3 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= DATE\'2018-01-01\' and "h_0".thru_z > DATE\'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= DATE\'2018-01-01\' and "i_1".thru_z > DATE\'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, "l_0".fk1 as fk1_3 from Y3 as "root" left outer join J as "j_0" on ("root".fk = "j_0".fk0 and "j_0".from_z <= DATE\'2018-01-01\' and "j_0".thru_z > DATE\'2018-01-01\') left outer join (select "k_1".fk0 as fk0, "k_1".fk1 from K as "k_1" where "k_1".from_z <= DATE\'2018-01-01\' and "k_1".thru_z > DATE\'2018-01-01\') as "k_0" on ("j_0".fk1 = "k_0".fk0) left outer join (select "l_1".fk1 as fk1, "l_1".fk0 as fk0 from L as "l_1" where "l_1".from_z <= DATE\'2018-01-01\' and "l_1".thru_z > DATE\'2018-01-01\') as "l_0" on ("k_0".fk1 = "l_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2 or "unionBase".fk1_3 = "unionalias_1".fk_3) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3") <= DATE\'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") > DATE\'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") is null)) left outer join (select "unionalias_3".fk_0 as fk_0, "unionalias_3".fk_1 as fk_1, "unionalias_3".fk_2 as fk_2, "unionalias_3".fk_3 as fk_3, "unionalias_3"."Z0pk_Z1pk_Z2pk_Z3pk" as "Z0pk_Z1pk_Z2pk_Z3pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z2 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, "root".pk as "Z0pk_Z1pk_Z2pk_Z3pk" from Z3 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_3" where (coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2", "unionalias_3"."from_z_3") <= DATE\'2018-01-01\' and coalesce("unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2", "unionalias_3"."thru_z_3") > DATE\'2018-01-01\') or coalesce("unionalias_3"."from_z_0", "unionalias_3"."from_z_1", "unionalias_3"."from_z_2", "unionalias_3"."from_z_3", "unionalias_3"."thru_z_0", "unionalias_3"."thru_z_1", "unionalias_3"."thru_z_2", "unionalias_3"."thru_z_3") is null) as "unionalias_2" on ("unionalias_1".fk_0 = "unionalias_2".fk_0 or "unionalias_1".fk1_1 = "unionalias_2".fk_1 or "unionalias_1".fk1_2 = "unionalias_2".fk_2 or "unionalias_1".fk1_3 = "unionalias_2".fk_3)', $result->sqlRemoveFormatting() ); assertEquals([10, 11, 12, 13], $result.values.rows.get('x_pk')); @@ -63,8 +64,8 @@ function <> meta::relational::tests::mapping::union::multipleChainedJ { let result = execute(|X.all(%2018-1-1)->project([x|$x.pk, x|$x.y.pk, x|$x.y.z.pk],['x_pk', 'y_pk', 'z_pk']), multipleChainedJoinsMappingWithUnionAcross2SetsV2, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionBase"."X0pk_X1pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk" as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as "pk_0_0", null as "pk_0_1", "root".pk as "X0pk_X1pk", "root".fk as fk_0, null as fk_1 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "pk_0_0", "root".pk as "pk_0_1", "root".pk as "X0pk_X1pk", null as fk_0, "root".fk as fk_1 from X1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join A as "a_0" on ("unionBase".fk_1 = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') left outer join (select "unionalias_2".fk_1 as fk_1, "unionalias_2".fk_0 as fk_0, "unionalias_2"."Y0pk_Y1pk" as "Y0pk_Y1pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".fk as fk_0, null as fk_1, "root".pk as "Y0pk_Y1pk" from Y0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as fk_0, "root".fk as fk_1, "root".pk as "Y0pk_Y1pk" from Y1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_2" where (coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1") <= \'2018-01-01\' and coalesce("unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") > \'2018-01-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1", "unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") is null) as "unionalias_1" on ("a_0".fk1 = "unionalias_1".fk_1 or "unionBase".fk_0 = "unionalias_1".fk_0) left outer join (select "g_1".fk0 as fk0, "g_1".fk1 from G as "g_1" where "g_1".from_z <= \'2018-01-01\' and "g_1".thru_z > \'2018-01-01\') as "g_0" on ("unionalias_1".fk_1 = "g_0".fk0) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= \'2018-01-01\' and "z0_1".thru_z > \'2018-01-01\') as "z0_0" on ("g_0".fk1 = "z0_0".fk or "unionalias_1".fk_0 = "z0_0".fk)', - 'select "unionBase"."X0pk_X1pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk" as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as "pk_0_0", null as "pk_0_1", "root".pk as "X0pk_X1pk", "root".fk as fk_0, null as fk_1 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "pk_0_0", "root".pk as "pk_0_1", "root".pk as "X0pk_X1pk", null as fk_0, "root".fk as fk_1 from X1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join A as "a_0" on ("unionBase".fk_1 = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') left outer join (select "unionalias_2".fk_1 as fk_1, "unionalias_2".fk_0 as fk_0, "unionalias_2"."Y0pk_Y1pk" as "Y0pk_Y1pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".fk as fk_0, null as fk_1, "root".pk as "Y0pk_Y1pk" from Y0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as fk_0, "root".fk as fk_1, "root".pk as "Y0pk_Y1pk" from Y1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_2" where (coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1") <= DATE\'2018-01-01\' and coalesce("unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") > DATE\'2018-01-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1", "unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") is null) as "unionalias_1" on ("a_0".fk1 = "unionalias_1".fk_1 or "unionBase".fk_0 = "unionalias_1".fk_0) left outer join (select "g_1".fk0 as fk0, "g_1".fk1 from G as "g_1" where "g_1".from_z <= DATE\'2018-01-01\' and "g_1".thru_z > DATE\'2018-01-01\') as "g_0" on ("unionalias_1".fk_1 = "g_0".fk0) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= DATE\'2018-01-01\' and "z0_1".thru_z > DATE\'2018-01-01\') as "z0_0" on ("g_0".fk1 = "z0_0".fk or "unionalias_1".fk_0 = "z0_0".fk)', + 'select "unionBase"."X0pk_X1pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk" as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as "pk_0_0", null as "pk_0_1", "root".pk as "X0pk_X1pk", "root".fk as fk_0, null as fk_1 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "pk_0_0", "root".pk as "pk_0_1", "root".pk as "X0pk_X1pk", null as fk_0, "root".fk as fk_1 from X1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join A as "a_0" on ("unionBase".fk_1 = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') left outer join (select "unionalias_2".fk_1 as fk_1, "unionalias_2".fk_0 as fk_0, "unionalias_2"."Y0pk_Y1pk" as "Y0pk_Y1pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".fk as fk_0, null as fk_1, "root".pk as "Y0pk_Y1pk" from Y0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as fk_0, "root".fk as fk_1, "root".pk as "Y0pk_Y1pk" from Y1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_2" where (coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1") <= \'2018-01-01\' and coalesce("unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") > \'2018-01-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1", "unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") is null) as "unionalias_1" on ("a_0".fk1 = "unionalias_1".fk_1 or "unionBase".fk_0 = "unionalias_1".fk_0) left outer join (select "g_1".fk0 as fk0, "g_1".fk1 from G as "g_1" where "g_1".from_z <= \'2018-01-01\' and "g_1".thru_z > \'2018-01-01\') as "g_0" on ("unionalias_1".fk_1 = "g_0".fk0) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= \'2018-01-01\' and "z0_1".thru_z > \'2018-01-01\') as "z0_0" on ("g_0".fk1 = "z0_0".fk or "unionalias_1".fk_0 = "z0_0".fk)', + 'select "unionBase"."X0pk_X1pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk" as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as "pk_0_0", null as "pk_0_1", "root".pk as "X0pk_X1pk", "root".fk as fk_0, null as fk_1 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "pk_0_0", "root".pk as "pk_0_1", "root".pk as "X0pk_X1pk", null as fk_0, "root".fk as fk_1 from X1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join A as "a_0" on ("unionBase".fk_1 = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') left outer join (select "unionalias_2".fk_1 as fk_1, "unionalias_2".fk_0 as fk_0, "unionalias_2"."Y0pk_Y1pk" as "Y0pk_Y1pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".fk as fk_0, null as fk_1, "root".pk as "Y0pk_Y1pk" from Y0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as fk_0, "root".fk as fk_1, "root".pk as "Y0pk_Y1pk" from Y1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_2" where (coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1") <= DATE\'2018-01-01\' and coalesce("unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") > DATE\'2018-01-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1", "unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") is null) as "unionalias_1" on ("a_0".fk1 = "unionalias_1".fk_1 or "unionBase".fk_0 = "unionalias_1".fk_0) left outer join (select "g_1".fk0 as fk0, "g_1".fk1 from G as "g_1" where "g_1".from_z <= DATE\'2018-01-01\' and "g_1".thru_z > DATE\'2018-01-01\') as "g_0" on ("unionalias_1".fk_1 = "g_0".fk0) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= DATE\'2018-01-01\' and "z0_1".thru_z > DATE\'2018-01-01\') as "z0_0" on ("g_0".fk1 = "z0_0".fk or "unionalias_1".fk_0 = "z0_0".fk)', $result->sqlRemoveFormatting() ); assertEquals([10, 11], $result.values.rows.get('x_pk')); @@ -76,8 +77,8 @@ function <> meta::relational::tests::mapping::union::multipleChainedJ { let result = execute(|X.all(%2018-1-1)->project([x|$x.pk, x|$x.y.pk, x|$x.y.z.pk],['x_pk', 'y_pk', 'z_pk']), multipleChainedJoinsMappingWithUnionAcross3SetsV2, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionBase"."X0pk_X1pk_X2pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk" as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk1_1, null as fk1_2 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, "root".fk as fk_1, null as fk_2, "a_0".fk1 as fk1_1, null as fk1_2 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk1_1, "c_0".fk1 as fk1_2 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= \'2018-01-01\' and "b_0".thru_z > \'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= \'2018-01-01\' and "c_1".thru_z > \'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".fk as fk_0, null as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, null as fk1_2 from Y0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as fk_0, "root".fk as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", "g_0".fk1 as fk1_1, null as fk1_2 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= \'2018-01-01\' and "g_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as fk_0, null as fk_1, "root".fk as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, "i_0".fk1 as fk1_2 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= \'2018-01-01\' and "h_0".thru_z > \'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= \'2018-01-01\' and "i_1".thru_z > \'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2") <= \'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") > \'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") is null)) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= \'2018-01-01\' and "z0_1".thru_z > \'2018-01-01\') as "z0_0" on ("unionalias_1".fk_0 = "z0_0".fk or "unionalias_1".fk1_1 = "z0_0".fk or "unionalias_1".fk1_2 = "z0_0".fk)', - 'select "unionBase"."X0pk_X1pk_X2pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk" as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk1_1, null as fk1_2 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, "root".fk as fk_1, null as fk_2, "a_0".fk1 as fk1_1, null as fk1_2 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk1_1, "c_0".fk1 as fk1_2 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= DATE\'2018-01-01\' and "b_0".thru_z > DATE\'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= DATE\'2018-01-01\' and "c_1".thru_z > DATE\'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".fk as fk_0, null as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, null as fk1_2 from Y0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as fk_0, "root".fk as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", "g_0".fk1 as fk1_1, null as fk1_2 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= DATE\'2018-01-01\' and "g_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as fk_0, null as fk_1, "root".fk as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, "i_0".fk1 as fk1_2 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= DATE\'2018-01-01\' and "h_0".thru_z > DATE\'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= DATE\'2018-01-01\' and "i_1".thru_z > DATE\'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2") <= DATE\'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") > DATE\'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") is null)) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= DATE\'2018-01-01\' and "z0_1".thru_z > DATE\'2018-01-01\') as "z0_0" on ("unionalias_1".fk_0 = "z0_0".fk or "unionalias_1".fk1_1 = "z0_0".fk or "unionalias_1".fk1_2 = "z0_0".fk)', + 'select "unionBase"."X0pk_X1pk_X2pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk" as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk1_1, null as fk1_2 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, "root".fk as fk_1, null as fk_2, "a_0".fk1 as fk1_1, null as fk1_2 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk1_1, "c_0".fk1 as fk1_2 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= \'2018-01-01\' and "b_0".thru_z > \'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= \'2018-01-01\' and "c_1".thru_z > \'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".fk as fk_0, null as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, null as fk1_2 from Y0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as fk_0, "root".fk as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", "g_0".fk1 as fk1_1, null as fk1_2 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= \'2018-01-01\' and "g_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as fk_0, null as fk_1, "root".fk as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, "i_0".fk1 as fk1_2 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= \'2018-01-01\' and "h_0".thru_z > \'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= \'2018-01-01\' and "i_1".thru_z > \'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2") <= \'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") > \'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") is null)) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= \'2018-01-01\' and "z0_1".thru_z > \'2018-01-01\') as "z0_0" on ("unionalias_1".fk_0 = "z0_0".fk or "unionalias_1".fk1_1 = "z0_0".fk or "unionalias_1".fk1_2 = "z0_0".fk)', + 'select "unionBase"."X0pk_X1pk_X2pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk" as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk1_1, null as fk1_2 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, "root".fk as fk_1, null as fk_2, "a_0".fk1 as fk1_1, null as fk1_2 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk1_1, "c_0".fk1 as fk1_2 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= DATE\'2018-01-01\' and "b_0".thru_z > DATE\'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= DATE\'2018-01-01\' and "c_1".thru_z > DATE\'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".fk as fk_0, null as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, null as fk1_2 from Y0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as fk_0, "root".fk as fk_1, null as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", "g_0".fk1 as fk1_1, null as fk1_2 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= DATE\'2018-01-01\' and "g_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as fk_0, null as fk_1, "root".fk as fk_2, "root".pk as "Y0pk_Y1pk_Y2pk", null as fk1_1, "i_0".fk1 as fk1_2 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= DATE\'2018-01-01\' and "h_0".thru_z > DATE\'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= DATE\'2018-01-01\' and "i_1".thru_z > DATE\'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2") <= DATE\'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") > DATE\'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2") is null)) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= DATE\'2018-01-01\' and "z0_1".thru_z > DATE\'2018-01-01\') as "z0_0" on ("unionalias_1".fk_0 = "z0_0".fk or "unionalias_1".fk1_1 = "z0_0".fk or "unionalias_1".fk1_2 = "z0_0".fk)', $result->sqlRemoveFormatting() ); assertEquals([10, 11, 12], $result.values.rows.get('x_pk')); @@ -89,8 +90,8 @@ function <> meta::relational::tests::mapping::union::multipleChainedJ { let result = execute(|X.all(%2018-1-1)->project([x|$x.pk, x|$x.y.pk, x|$x.y.z.pk],['x_pk', 'y_pk', 'z_pk']), multipleChainedJoinsMappingWithUnionAcross4SetsV2, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionBase"."X0pk_X1pk_X2pk_X3pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk_Y3pk" as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, null as fk1_1, null as fk1_2, null as fk1_3 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "a_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, null as fk1_1, "c_0".fk1 as fk1_2, null as fk1_3 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= \'2018-01-01\' and "b_0".thru_z > \'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= \'2018-01-01\' and "c_1".thru_z > \'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, null as fk1_1, null as fk1_2, "f_0".fk1 as fk1_3 from X3 as "root" left outer join D as "d_0" on ("root".fk = "d_0".fk0 and "d_0".from_z <= \'2018-01-01\' and "d_0".thru_z > \'2018-01-01\') left outer join (select "e_1".fk0 as fk0, "e_1".fk1 from E as "e_1" where "e_1".from_z <= \'2018-01-01\' and "e_1".thru_z > \'2018-01-01\') as "e_0" on ("d_0".fk1 = "e_0".fk0) left outer join (select "f_1".fk1 as fk1, "f_1".fk0 as fk0 from F as "f_1" where "f_1".from_z <= \'2018-01-01\' and "f_1".thru_z > \'2018-01-01\') as "f_0" on ("e_0".fk1 = "f_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, null as fk1_3 from Y0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", "g_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= \'2018-01-01\' and "g_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, "i_0".fk1 as fk1_2, null as fk1_3 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= \'2018-01-01\' and "h_0".thru_z > \'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= \'2018-01-01\' and "i_1".thru_z > \'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, "l_0".fk1 as fk1_3 from Y3 as "root" left outer join J as "j_0" on ("root".fk = "j_0".fk0 and "j_0".from_z <= \'2018-01-01\' and "j_0".thru_z > \'2018-01-01\') left outer join (select "k_1".fk0 as fk0, "k_1".fk1 from K as "k_1" where "k_1".from_z <= \'2018-01-01\' and "k_1".thru_z > \'2018-01-01\') as "k_0" on ("j_0".fk1 = "k_0".fk0) left outer join (select "l_1".fk1 as fk1, "l_1".fk0 as fk0 from L as "l_1" where "l_1".from_z <= \'2018-01-01\' and "l_1".thru_z > \'2018-01-01\') as "l_0" on ("k_0".fk1 = "l_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2 or "unionBase".fk1_3 = "unionalias_1".fk_3) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3") <= \'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") > \'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") is null)) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= \'2018-01-01\' and "z0_1".thru_z > \'2018-01-01\') as "z0_0" on ("unionalias_1".fk_0 = "z0_0".fk or "unionalias_1".fk1_1 = "z0_0".fk or "unionalias_1".fk1_2 = "z0_0".fk or "unionalias_1".fk1_3 = "z0_0".fk)', - 'select "unionBase"."X0pk_X1pk_X2pk_X3pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk_Y3pk" as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, null as fk1_1, null as fk1_2, null as fk1_3 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "a_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, null as fk1_1, "c_0".fk1 as fk1_2, null as fk1_3 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= DATE\'2018-01-01\' and "b_0".thru_z > DATE\'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= DATE\'2018-01-01\' and "c_1".thru_z > DATE\'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, null as fk1_1, null as fk1_2, "f_0".fk1 as fk1_3 from X3 as "root" left outer join D as "d_0" on ("root".fk = "d_0".fk0 and "d_0".from_z <= DATE\'2018-01-01\' and "d_0".thru_z > DATE\'2018-01-01\') left outer join (select "e_1".fk0 as fk0, "e_1".fk1 from E as "e_1" where "e_1".from_z <= DATE\'2018-01-01\' and "e_1".thru_z > DATE\'2018-01-01\') as "e_0" on ("d_0".fk1 = "e_0".fk0) left outer join (select "f_1".fk1 as fk1, "f_1".fk0 as fk0 from F as "f_1" where "f_1".from_z <= DATE\'2018-01-01\' and "f_1".thru_z > DATE\'2018-01-01\') as "f_0" on ("e_0".fk1 = "f_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, null as fk1_3 from Y0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", "g_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= DATE\'2018-01-01\' and "g_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, "i_0".fk1 as fk1_2, null as fk1_3 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= DATE\'2018-01-01\' and "h_0".thru_z > DATE\'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= DATE\'2018-01-01\' and "i_1".thru_z > DATE\'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, "l_0".fk1 as fk1_3 from Y3 as "root" left outer join J as "j_0" on ("root".fk = "j_0".fk0 and "j_0".from_z <= DATE\'2018-01-01\' and "j_0".thru_z > DATE\'2018-01-01\') left outer join (select "k_1".fk0 as fk0, "k_1".fk1 from K as "k_1" where "k_1".from_z <= DATE\'2018-01-01\' and "k_1".thru_z > DATE\'2018-01-01\') as "k_0" on ("j_0".fk1 = "k_0".fk0) left outer join (select "l_1".fk1 as fk1, "l_1".fk0 as fk0 from L as "l_1" where "l_1".from_z <= DATE\'2018-01-01\' and "l_1".thru_z > DATE\'2018-01-01\') as "l_0" on ("k_0".fk1 = "l_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2 or "unionBase".fk1_3 = "unionalias_1".fk_3) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3") <= DATE\'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") > DATE\'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") is null)) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= DATE\'2018-01-01\' and "z0_1".thru_z > DATE\'2018-01-01\') as "z0_0" on ("unionalias_1".fk_0 = "z0_0".fk or "unionalias_1".fk1_1 = "z0_0".fk or "unionalias_1".fk1_2 = "z0_0".fk or "unionalias_1".fk1_3 = "z0_0".fk)', + 'select "unionBase"."X0pk_X1pk_X2pk_X3pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk_Y3pk" as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, null as fk1_1, null as fk1_2, null as fk1_3 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "a_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, null as fk1_1, "c_0".fk1 as fk1_2, null as fk1_3 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= \'2018-01-01\' and "b_0".thru_z > \'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= \'2018-01-01\' and "c_1".thru_z > \'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, null as fk1_1, null as fk1_2, "f_0".fk1 as fk1_3 from X3 as "root" left outer join D as "d_0" on ("root".fk = "d_0".fk0 and "d_0".from_z <= \'2018-01-01\' and "d_0".thru_z > \'2018-01-01\') left outer join (select "e_1".fk0 as fk0, "e_1".fk1 from E as "e_1" where "e_1".from_z <= \'2018-01-01\' and "e_1".thru_z > \'2018-01-01\') as "e_0" on ("d_0".fk1 = "e_0".fk0) left outer join (select "f_1".fk1 as fk1, "f_1".fk0 as fk0 from F as "f_1" where "f_1".from_z <= \'2018-01-01\' and "f_1".thru_z > \'2018-01-01\') as "f_0" on ("e_0".fk1 = "f_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, null as fk1_3 from Y0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", "g_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= \'2018-01-01\' and "g_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, "i_0".fk1 as fk1_2, null as fk1_3 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= \'2018-01-01\' and "h_0".thru_z > \'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= \'2018-01-01\' and "i_1".thru_z > \'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, "l_0".fk1 as fk1_3 from Y3 as "root" left outer join J as "j_0" on ("root".fk = "j_0".fk0 and "j_0".from_z <= \'2018-01-01\' and "j_0".thru_z > \'2018-01-01\') left outer join (select "k_1".fk0 as fk0, "k_1".fk1 from K as "k_1" where "k_1".from_z <= \'2018-01-01\' and "k_1".thru_z > \'2018-01-01\') as "k_0" on ("j_0".fk1 = "k_0".fk0) left outer join (select "l_1".fk1 as fk1, "l_1".fk0 as fk0 from L as "l_1" where "l_1".from_z <= \'2018-01-01\' and "l_1".thru_z > \'2018-01-01\') as "l_0" on ("k_0".fk1 = "l_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2 or "unionBase".fk1_3 = "unionalias_1".fk_3) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3") <= \'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") > \'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") is null)) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= \'2018-01-01\' and "z0_1".thru_z > \'2018-01-01\') as "z0_0" on ("unionalias_1".fk_0 = "z0_0".fk or "unionalias_1".fk1_1 = "z0_0".fk or "unionalias_1".fk1_2 = "z0_0".fk or "unionalias_1".fk1_3 = "z0_0".fk)', + 'select "unionBase"."X0pk_X1pk_X2pk_X3pk" as "x_pk", "unionalias_1"."Y0pk_Y1pk_Y2pk_Y3pk" as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, null as fk1_1, null as fk1_2, null as fk1_3 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "a_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, null as fk1_1, "c_0".fk1 as fk1_2, null as fk1_3 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= DATE\'2018-01-01\' and "b_0".thru_z > DATE\'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= DATE\'2018-01-01\' and "c_1".thru_z > DATE\'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, null as fk1_1, null as fk1_2, "f_0".fk1 as fk1_3 from X3 as "root" left outer join D as "d_0" on ("root".fk = "d_0".fk0 and "d_0".from_z <= DATE\'2018-01-01\' and "d_0".thru_z > DATE\'2018-01-01\') left outer join (select "e_1".fk0 as fk0, "e_1".fk1 from E as "e_1" where "e_1".from_z <= DATE\'2018-01-01\' and "e_1".thru_z > DATE\'2018-01-01\') as "e_0" on ("d_0".fk1 = "e_0".fk0) left outer join (select "f_1".fk1 as fk1, "f_1".fk0 as fk0 from F as "f_1" where "f_1".from_z <= DATE\'2018-01-01\' and "f_1".thru_z > DATE\'2018-01-01\') as "f_0" on ("e_0".fk1 = "f_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, null as fk1_3 from Y0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", "g_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from Y1 as "root" left outer join G as "g_0" on ("root".fk = "g_0".fk0 and "g_0".from_z <= DATE\'2018-01-01\' and "g_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, "i_0".fk1 as fk1_2, null as fk1_3 from Y2 as "root" left outer join H as "h_0" on ("root".fk = "h_0".fk0 and "h_0".from_z <= DATE\'2018-01-01\' and "h_0".thru_z > DATE\'2018-01-01\') left outer join (select "i_1".fk1 as fk1, "i_1".fk0 as fk0 from I as "i_1" where "i_1".from_z <= DATE\'2018-01-01\' and "i_1".thru_z > DATE\'2018-01-01\') as "i_0" on ("h_0".fk1 = "i_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, "root".pk as "Y0pk_Y1pk_Y2pk_Y3pk", null as fk1_1, null as fk1_2, "l_0".fk1 as fk1_3 from Y3 as "root" left outer join J as "j_0" on ("root".fk = "j_0".fk0 and "j_0".from_z <= DATE\'2018-01-01\' and "j_0".thru_z > DATE\'2018-01-01\') left outer join (select "k_1".fk0 as fk0, "k_1".fk1 from K as "k_1" where "k_1".from_z <= DATE\'2018-01-01\' and "k_1".thru_z > DATE\'2018-01-01\') as "k_0" on ("j_0".fk1 = "k_0".fk0) left outer join (select "l_1".fk1 as fk1, "l_1".fk0 as fk0 from L as "l_1" where "l_1".from_z <= DATE\'2018-01-01\' and "l_1".thru_z > DATE\'2018-01-01\') as "l_0" on ("k_0".fk1 = "l_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_1" on (("unionBase".fk_0 = "unionalias_1".fk_0 or "unionBase".fk1_1 = "unionalias_1".fk_1 or "unionBase".fk1_2 = "unionalias_1".fk_2 or "unionBase".fk1_3 = "unionalias_1".fk_3) and ((coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3") <= DATE\'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") > DATE\'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."from_z_2", "unionalias_1"."from_z_3", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1", "unionalias_1"."thru_z_2", "unionalias_1"."thru_z_3") is null)) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= DATE\'2018-01-01\' and "z0_1".thru_z > DATE\'2018-01-01\') as "z0_0" on ("unionalias_1".fk_0 = "z0_0".fk or "unionalias_1".fk1_1 = "z0_0".fk or "unionalias_1".fk1_2 = "z0_0".fk or "unionalias_1".fk1_3 = "z0_0".fk)', $result->sqlRemoveFormatting() ); assertEquals([10, 11, 12, 13], $result.values.rows.get('x_pk')); @@ -102,8 +103,8 @@ function <> meta::relational::tests::mapping::union::multipleChainedJ { let result = execute(|X.all(%2018-1-1)->project([x|$x.pk, x|$x.y.pk, x|$x.y.z.pk],['x_pk', 'y_pk', 'z_pk']), multipleChainedJoinsMappingWithUnionAcross2SetsV3, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionBase"."X0pk_X1pk" as "x_pk", "y0_0".pk as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as "pk_0_0", null as "pk_0_1", "root".pk as "X0pk_X1pk", "root".fk as fk_0, null as fk_1 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "pk_0_0", "root".pk as "pk_0_1", "root".pk as "X0pk_X1pk", null as fk_0, "root".fk as fk_1 from X1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join A as "a_0" on ("unionBase".fk_1 = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') left outer join (select "y0_1".fk as fk, "y0_1".pk as pk from Y0 as "y0_1" where "y0_1".from_z <= \'2018-01-01\' and "y0_1".thru_z > \'2018-01-01\') as "y0_0" on ("a_0".fk1 = "y0_0".fk or "unionBase".fk_0 = "y0_0".fk) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= \'2018-01-01\' and "z0_1".thru_z > \'2018-01-01\') as "z0_0" on ("y0_0".fk = "z0_0".fk)', - 'select "unionBase"."X0pk_X1pk" as "x_pk", "y0_0".pk as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as "pk_0_0", null as "pk_0_1", "root".pk as "X0pk_X1pk", "root".fk as fk_0, null as fk_1 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "pk_0_0", "root".pk as "pk_0_1", "root".pk as "X0pk_X1pk", null as fk_0, "root".fk as fk_1 from X1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join A as "a_0" on ("unionBase".fk_1 = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') left outer join (select "y0_1".fk as fk, "y0_1".pk as pk from Y0 as "y0_1" where "y0_1".from_z <= DATE\'2018-01-01\' and "y0_1".thru_z > DATE\'2018-01-01\') as "y0_0" on ("a_0".fk1 = "y0_0".fk or "unionBase".fk_0 = "y0_0".fk) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= DATE\'2018-01-01\' and "z0_1".thru_z > DATE\'2018-01-01\') as "z0_0" on ("y0_0".fk = "z0_0".fk)', + 'select "unionBase"."X0pk_X1pk" as "x_pk", "y0_0".pk as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as "pk_0_0", null as "pk_0_1", "root".pk as "X0pk_X1pk", "root".fk as fk_0, null as fk_1 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "pk_0_0", "root".pk as "pk_0_1", "root".pk as "X0pk_X1pk", null as fk_0, "root".fk as fk_1 from X1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join A as "a_0" on ("unionBase".fk_1 = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') left outer join (select "y0_1".fk as fk, "y0_1".pk as pk from Y0 as "y0_1" where "y0_1".from_z <= \'2018-01-01\' and "y0_1".thru_z > \'2018-01-01\') as "y0_0" on ("a_0".fk1 = "y0_0".fk or "unionBase".fk_0 = "y0_0".fk) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= \'2018-01-01\' and "z0_1".thru_z > \'2018-01-01\') as "z0_0" on ("y0_0".fk = "z0_0".fk)', + 'select "unionBase"."X0pk_X1pk" as "x_pk", "y0_0".pk as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as "pk_0_0", null as "pk_0_1", "root".pk as "X0pk_X1pk", "root".fk as fk_0, null as fk_1 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "pk_0_0", "root".pk as "pk_0_1", "root".pk as "X0pk_X1pk", null as fk_0, "root".fk as fk_1 from X1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join A as "a_0" on ("unionBase".fk_1 = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') left outer join (select "y0_1".fk as fk, "y0_1".pk as pk from Y0 as "y0_1" where "y0_1".from_z <= DATE\'2018-01-01\' and "y0_1".thru_z > DATE\'2018-01-01\') as "y0_0" on ("a_0".fk1 = "y0_0".fk or "unionBase".fk_0 = "y0_0".fk) left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= DATE\'2018-01-01\' and "z0_1".thru_z > DATE\'2018-01-01\') as "z0_0" on ("y0_0".fk = "z0_0".fk)', $result->sqlRemoveFormatting() ); assertEquals([10, 11], $result.values.rows.get('x_pk')); @@ -115,8 +116,8 @@ function <> meta::relational::tests::mapping::union::multipleChainedJ { let result = execute(|X.all(%2018-1-1)->project([x|$x.pk, x|$x.y.pk, x|$x.y.z.pk],['x_pk', 'y_pk', 'z_pk']), multipleChainedJoinsMappingWithUnionAcross3SetsV3, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionBase"."X0pk_X1pk_X2pk" as "x_pk", "y0_0".pk as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk1_1, null as fk1_2 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, "root".fk as fk_1, null as fk_2, "a_0".fk1 as fk1_1, null as fk1_2 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk1_1, "c_0".fk1 as fk1_2 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= \'2018-01-01\' and "b_0".thru_z > \'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= \'2018-01-01\' and "c_1".thru_z > \'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join Y0 as "y0_0" on (("unionBase".fk_0 = "y0_0".fk or "unionBase".fk1_1 = "y0_0".fk or "unionBase".fk1_2 = "y0_0".fk) and "y0_0".from_z <= \'2018-01-01\' and "y0_0".thru_z > \'2018-01-01\') left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= \'2018-01-01\' and "z0_1".thru_z > \'2018-01-01\') as "z0_0" on ("y0_0".fk = "z0_0".fk)', - 'select "unionBase"."X0pk_X1pk_X2pk" as "x_pk", "y0_0".pk as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk1_1, null as fk1_2 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, "root".fk as fk_1, null as fk_2, "a_0".fk1 as fk1_1, null as fk1_2 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk1_1, "c_0".fk1 as fk1_2 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= DATE\'2018-01-01\' and "b_0".thru_z > DATE\'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= DATE\'2018-01-01\' and "c_1".thru_z > DATE\'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join Y0 as "y0_0" on (("unionBase".fk_0 = "y0_0".fk or "unionBase".fk1_1 = "y0_0".fk or "unionBase".fk1_2 = "y0_0".fk) and "y0_0".from_z <= DATE\'2018-01-01\' and "y0_0".thru_z > DATE\'2018-01-01\') left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= DATE\'2018-01-01\' and "z0_1".thru_z > DATE\'2018-01-01\') as "z0_0" on ("y0_0".fk = "z0_0".fk)', + 'select "unionBase"."X0pk_X1pk_X2pk" as "x_pk", "y0_0".pk as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk1_1, null as fk1_2 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, "root".fk as fk_1, null as fk_2, "a_0".fk1 as fk1_1, null as fk1_2 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk1_1, "c_0".fk1 as fk1_2 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= \'2018-01-01\' and "b_0".thru_z > \'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= \'2018-01-01\' and "c_1".thru_z > \'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join Y0 as "y0_0" on (("unionBase".fk_0 = "y0_0".fk or "unionBase".fk1_1 = "y0_0".fk or "unionBase".fk1_2 = "y0_0".fk) and "y0_0".from_z <= \'2018-01-01\' and "y0_0".thru_z > \'2018-01-01\') left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= \'2018-01-01\' and "z0_1".thru_z > \'2018-01-01\') as "z0_0" on ("y0_0".fk = "z0_0".fk)', + 'select "unionBase"."X0pk_X1pk_X2pk" as "x_pk", "y0_0".pk as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk1_1, null as fk1_2 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, "root".fk as fk_1, null as fk_2, "a_0".fk1 as fk1_1, null as fk1_2 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", "root".pk as "X0pk_X1pk_X2pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk1_1, "c_0".fk1 as fk1_2 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= DATE\'2018-01-01\' and "b_0".thru_z > DATE\'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= DATE\'2018-01-01\' and "c_1".thru_z > DATE\'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join Y0 as "y0_0" on (("unionBase".fk_0 = "y0_0".fk or "unionBase".fk1_1 = "y0_0".fk or "unionBase".fk1_2 = "y0_0".fk) and "y0_0".from_z <= DATE\'2018-01-01\' and "y0_0".thru_z > DATE\'2018-01-01\') left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= DATE\'2018-01-01\' and "z0_1".thru_z > DATE\'2018-01-01\') as "z0_0" on ("y0_0".fk = "z0_0".fk)', $result->sqlRemoveFormatting() ); assertEquals([10, 11, 12], $result.values.rows.get('x_pk')); @@ -128,8 +129,8 @@ function <> meta::relational::tests::mapping::union::multipleChainedJ { let result = execute(|X.all(%2018-1-1)->project([x|$x.pk, x|$x.y.pk, x|$x.y.z.pk],['x_pk', 'y_pk', 'z_pk']), multipleChainedJoinsMappingWithUnionAcross4SetsV3, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionBase"."X0pk_X1pk_X2pk_X3pk" as "x_pk", "y0_0".pk as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, null as fk1_1, null as fk1_2, null as fk1_3 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "a_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, null as fk1_1, "c_0".fk1 as fk1_2, null as fk1_3 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= \'2018-01-01\' and "b_0".thru_z > \'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= \'2018-01-01\' and "c_1".thru_z > \'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, null as fk1_1, null as fk1_2, "f_0".fk1 as fk1_3 from X3 as "root" left outer join D as "d_0" on ("root".fk = "d_0".fk0 and "d_0".from_z <= \'2018-01-01\' and "d_0".thru_z > \'2018-01-01\') left outer join (select "e_1".fk0 as fk0, "e_1".fk1 from E as "e_1" where "e_1".from_z <= \'2018-01-01\' and "e_1".thru_z > \'2018-01-01\') as "e_0" on ("d_0".fk1 = "e_0".fk0) left outer join (select "f_1".fk1 as fk1, "f_1".fk0 as fk0 from F as "f_1" where "f_1".from_z <= \'2018-01-01\' and "f_1".thru_z > \'2018-01-01\') as "f_0" on ("e_0".fk1 = "f_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join Y0 as "y0_0" on (("unionBase".fk_0 = "y0_0".fk or "unionBase".fk1_1 = "y0_0".fk or "unionBase".fk1_2 = "y0_0".fk or "unionBase".fk1_3 = "y0_0".fk) and "y0_0".from_z <= \'2018-01-01\' and "y0_0".thru_z > \'2018-01-01\') left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= \'2018-01-01\' and "z0_1".thru_z > \'2018-01-01\') as "z0_0" on ("y0_0".fk = "z0_0".fk)', - 'select "unionBase"."X0pk_X1pk_X2pk_X3pk" as "x_pk", "y0_0".pk as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, null as fk1_1, null as fk1_2, null as fk1_3 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "a_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, null as fk1_1, "c_0".fk1 as fk1_2, null as fk1_3 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= DATE\'2018-01-01\' and "b_0".thru_z > DATE\'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= DATE\'2018-01-01\' and "c_1".thru_z > DATE\'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, null as fk1_1, null as fk1_2, "f_0".fk1 as fk1_3 from X3 as "root" left outer join D as "d_0" on ("root".fk = "d_0".fk0 and "d_0".from_z <= DATE\'2018-01-01\' and "d_0".thru_z > DATE\'2018-01-01\') left outer join (select "e_1".fk0 as fk0, "e_1".fk1 from E as "e_1" where "e_1".from_z <= DATE\'2018-01-01\' and "e_1".thru_z > DATE\'2018-01-01\') as "e_0" on ("d_0".fk1 = "e_0".fk0) left outer join (select "f_1".fk1 as fk1, "f_1".fk0 as fk0 from F as "f_1" where "f_1".from_z <= DATE\'2018-01-01\' and "f_1".thru_z > DATE\'2018-01-01\') as "f_0" on ("e_0".fk1 = "f_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join Y0 as "y0_0" on (("unionBase".fk_0 = "y0_0".fk or "unionBase".fk1_1 = "y0_0".fk or "unionBase".fk1_2 = "y0_0".fk or "unionBase".fk1_3 = "y0_0".fk) and "y0_0".from_z <= DATE\'2018-01-01\' and "y0_0".thru_z > DATE\'2018-01-01\') left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= DATE\'2018-01-01\' and "z0_1".thru_z > DATE\'2018-01-01\') as "z0_0" on ("y0_0".fk = "z0_0".fk)', + 'select "unionBase"."X0pk_X1pk_X2pk_X3pk" as "x_pk", "y0_0".pk as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, null as fk1_1, null as fk1_2, null as fk1_3 from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "a_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= \'2018-01-01\' and "a_0".thru_z > \'2018-01-01\') where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, null as fk1_1, "c_0".fk1 as fk1_2, null as fk1_3 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= \'2018-01-01\' and "b_0".thru_z > \'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= \'2018-01-01\' and "c_1".thru_z > \'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, null as fk1_1, null as fk1_2, "f_0".fk1 as fk1_3 from X3 as "root" left outer join D as "d_0" on ("root".fk = "d_0".fk0 and "d_0".from_z <= \'2018-01-01\' and "d_0".thru_z > \'2018-01-01\') left outer join (select "e_1".fk0 as fk0, "e_1".fk1 from E as "e_1" where "e_1".from_z <= \'2018-01-01\' and "e_1".thru_z > \'2018-01-01\') as "e_0" on ("d_0".fk1 = "e_0".fk0) left outer join (select "f_1".fk1 as fk1, "f_1".fk0 as fk0 from F as "f_1" where "f_1".from_z <= \'2018-01-01\' and "f_1".thru_z > \'2018-01-01\') as "f_0" on ("e_0".fk1 = "f_0".fk0) where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionBase" left outer join Y0 as "y0_0" on (("unionBase".fk_0 = "y0_0".fk or "unionBase".fk1_1 = "y0_0".fk or "unionBase".fk1_2 = "y0_0".fk or "unionBase".fk1_3 = "y0_0".fk) and "y0_0".from_z <= \'2018-01-01\' and "y0_0".thru_z > \'2018-01-01\') left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= \'2018-01-01\' and "z0_1".thru_z > \'2018-01-01\') as "z0_0" on ("y0_0".fk = "z0_0".fk)', + 'select "unionBase"."X0pk_X1pk_X2pk_X3pk" as "x_pk", "y0_0".pk as "y_pk", "z0_0".pk as "z_pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", "root".pk as "pk_0_0", null as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", "root".fk as fk_0, null as fk_1, null as fk_2, null as fk_3, null as fk1_1, null as fk1_2, null as fk1_3 from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", null as "from_z_2", null as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", "root".pk as "pk_0_1", null as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, "root".fk as fk_1, null as fk_2, null as fk_3, "a_0".fk1 as fk1_1, null as fk1_2, null as fk1_3 from X1 as "root" left outer join A as "a_0" on ("root".fk = "a_0".fk0 and "a_0".from_z <= DATE\'2018-01-01\' and "a_0".thru_z > DATE\'2018-01-01\') where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".from_z as "from_z_2", "root".thru_z as "thru_z_2", null as "from_z_3", null as "thru_z_3", null as "pk_0_0", null as "pk_0_1", "root".pk as "pk_0_2", null as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, "root".fk as fk_2, null as fk_3, null as fk1_1, "c_0".fk1 as fk1_2, null as fk1_3 from X2 as "root" left outer join B as "b_0" on ("root".fk = "b_0".fk0 and "b_0".from_z <= DATE\'2018-01-01\' and "b_0".thru_z > DATE\'2018-01-01\') left outer join (select "c_1".fk1 as fk1, "c_1".fk0 as fk0 from C as "c_1" where "c_1".from_z <= DATE\'2018-01-01\' and "c_1".thru_z > DATE\'2018-01-01\') as "c_0" on ("b_0".fk1 = "c_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", null as "from_z_1", null as "thru_z_1", null as "from_z_2", null as "thru_z_2", "root".from_z as "from_z_3", "root".thru_z as "thru_z_3", null as "pk_0_0", null as "pk_0_1", null as "pk_0_2", "root".pk as "pk_0_3", "root".pk as "X0pk_X1pk_X2pk_X3pk", null as fk_0, null as fk_1, null as fk_2, "root".fk as fk_3, null as fk1_1, null as fk1_2, "f_0".fk1 as fk1_3 from X3 as "root" left outer join D as "d_0" on ("root".fk = "d_0".fk0 and "d_0".from_z <= DATE\'2018-01-01\' and "d_0".thru_z > DATE\'2018-01-01\') left outer join (select "e_1".fk0 as fk0, "e_1".fk1 from E as "e_1" where "e_1".from_z <= DATE\'2018-01-01\' and "e_1".thru_z > DATE\'2018-01-01\') as "e_0" on ("d_0".fk1 = "e_0".fk0) left outer join (select "f_1".fk1 as fk1, "f_1".fk0 as fk0 from F as "f_1" where "f_1".from_z <= DATE\'2018-01-01\' and "f_1".thru_z > DATE\'2018-01-01\') as "f_0" on ("e_0".fk1 = "f_0".fk0) where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionBase" left outer join Y0 as "y0_0" on (("unionBase".fk_0 = "y0_0".fk or "unionBase".fk1_1 = "y0_0".fk or "unionBase".fk1_2 = "y0_0".fk or "unionBase".fk1_3 = "y0_0".fk) and "y0_0".from_z <= DATE\'2018-01-01\' and "y0_0".thru_z > DATE\'2018-01-01\') left outer join (select "z0_1".fk as fk, "z0_1".pk as pk from Z0 as "z0_1" where "z0_1".from_z <= DATE\'2018-01-01\' and "z0_1".thru_z > DATE\'2018-01-01\') as "z0_0" on ("y0_0".fk = "z0_0".fk)', $result->sqlRemoveFormatting() ); assertEquals([10, 11, 12, 13], $result.values.rows.get('x_pk')); @@ -142,8 +143,8 @@ function <> meta::relational::tests::mapping::union::multipleChainedJ { let result = execute(|Y.all(%2018-1-1)->project(y|$y.z.pk,'z'), viewToViewToUnion, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionalias_0"."Z1pk_Z2pk" as "z" from (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "root" left outer join (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "vx2_0" on ("root".fk = "vx2_0".pk) left outer join (select "unionalias_1".pk as pk, "unionalias_1"."Z1pk_Z2pk" as "Z1pk_Z2pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z2 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_1" where (coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1") <= \'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1") > \'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1") is null) as "unionalias_0" on ("vx2_0".fk = "unionalias_0".pk)', - 'select "unionalias_0"."Z1pk_Z2pk" as "z" from (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "root" left outer join (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "vx2_0" on ("root".fk = "vx2_0".pk) left outer join (select "unionalias_1".pk as pk, "unionalias_1"."Z1pk_Z2pk" as "Z1pk_Z2pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z2 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_1" where (coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1") <= DATE\'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1") > DATE\'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1") is null) as "unionalias_0" on ("vx2_0".fk = "unionalias_0".pk)', + 'select "unionalias_0"."Z1pk_Z2pk" as "z" from (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "root" left outer join (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "vx2_0" on ("root".fk = "vx2_0".pk) left outer join (select "unionalias_1".pk as pk, "unionalias_1"."Z1pk_Z2pk" as "Z1pk_Z2pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z2 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_1" where (coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1") <= \'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1") > \'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1") is null) as "unionalias_0" on ("vx2_0".fk = "unionalias_0".pk)', + 'select "unionalias_0"."Z1pk_Z2pk" as "z" from (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "root" left outer join (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "vx2_0" on ("root".fk = "vx2_0".pk) left outer join (select "unionalias_1".pk as pk, "unionalias_1"."Z1pk_Z2pk" as "Z1pk_Z2pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z2 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_1" where (coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1") <= DATE\'2018-01-01\' and coalesce("unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1") > DATE\'2018-01-01\') or coalesce("unionalias_1"."from_z_0", "unionalias_1"."from_z_1", "unionalias_1"."thru_z_0", "unionalias_1"."thru_z_1") is null) as "unionalias_0" on ("vx2_0".fk = "unionalias_0".pk)', $result->sqlRemoveFormatting() ); } @@ -152,10 +153,10 @@ function <> meta::relational::tests::mapping::union::multipleChainedJ { let result = execute(|Y.all(%2018-1-1)->project(y|$y.z.pk,'z'), unionOfViewsToViewToUnion, testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionalias_1"."Z1pk_Z2pk" as "z" from (select "root".pk as "pk_0_0", null as "pk_0_1", "root".fk as fk_0, null as fk_1 from (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "root" UNION ALL select null as "pk_0_0", "root".pk as "pk_0_1", null as fk_0, "root".fk as fk_1 from (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "root") as "unionBase" left outer join (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "vx2_0" on ("unionBase".fk_0 = "vx2_0".pk or "unionBase".fk_1 = "vx2_0".pk) left outer join (select "unionalias_2".pk as pk, "unionalias_2"."Z1pk_Z2pk" as "Z1pk_Z2pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z2 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_2" where (coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1") <= \'2018-01-01\' and coalesce("unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") > \'2018-01-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1", "unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") is null) as "unionalias_1" on ("vx2_0".fk = "unionalias_1".pk)', - 'select "unionalias_1"."Z1pk_Z2pk" as "z" from (select "root".pk as "pk_0_0", null as "pk_0_1", "root".fk as fk_0, null as fk_1 from (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "root" UNION ALL select null as "pk_0_0", "root".pk as "pk_0_1", null as fk_0, "root".fk as fk_1 from (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "root") as "unionBase" left outer join (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "vx2_0" on ("unionBase".fk_0 = "vx2_0".pk or "unionBase".fk_1 = "vx2_0".pk) left outer join (select "unionalias_2".pk as pk, "unionalias_2"."Z1pk_Z2pk" as "Z1pk_Z2pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z2 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_2" where (coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1") <= DATE\'2018-01-01\' and coalesce("unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") > DATE\'2018-01-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1", "unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") is null) as "unionalias_1" on ("vx2_0".fk = "unionalias_1".pk)', + 'select "unionalias_1"."Z1pk_Z2pk" as "z" from (select "root".pk as "pk_0_0", null as "pk_0_1", "root".fk as fk_0, null as fk_1 from (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "root" UNION ALL select null as "pk_0_0", "root".pk as "pk_0_1", null as fk_0, "root".fk as fk_1 from (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "root") as "unionBase" left outer join (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "vx2_0" on ("unionBase".fk_0 = "vx2_0".pk or "unionBase".fk_1 = "vx2_0".pk) left outer join (select "unionalias_2".pk as pk, "unionalias_2"."Z1pk_Z2pk" as "Z1pk_Z2pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z1 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z2 as "root" where "root".from_z <= \'2018-01-01\' and "root".thru_z > \'2018-01-01\') as "unionalias_2" where (coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1") <= \'2018-01-01\' and coalesce("unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") > \'2018-01-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1", "unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") is null) as "unionalias_1" on ("vx2_0".fk = "unionalias_1".pk)', + 'select "unionalias_1"."Z1pk_Z2pk" as "z" from (select "root".pk as "pk_0_0", null as "pk_0_1", "root".fk as fk_0, null as fk_1 from (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "root" UNION ALL select null as "pk_0_0", "root".pk as "pk_0_1", null as fk_0, "root".fk as fk_1 from (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "root") as "unionBase" left outer join (select "root".pk as pk, "root".fk as fk, \'2018-01-01\' as "k_businessDate" from X0 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "vx2_0" on ("unionBase".fk_0 = "vx2_0".pk or "unionBase".fk_1 = "vx2_0".pk) left outer join (select "unionalias_2".pk as pk, "unionalias_2"."Z1pk_Z2pk" as "Z1pk_Z2pk" from (select "root".from_z as "from_z_0", "root".thru_z as "thru_z_0", null as "from_z_1", null as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z1 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\' UNION ALL select null as "from_z_0", null as "thru_z_0", "root".from_z as "from_z_1", "root".thru_z as "thru_z_1", "root".pk as pk, "root".pk as "Z1pk_Z2pk" from Z2 as "root" where "root".from_z <= DATE\'2018-01-01\' and "root".thru_z > DATE\'2018-01-01\') as "unionalias_2" where (coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1") <= DATE\'2018-01-01\' and coalesce("unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") > DATE\'2018-01-01\') or coalesce("unionalias_2"."from_z_0", "unionalias_2"."from_z_1", "unionalias_2"."thru_z_0", "unionalias_2"."thru_z_1") is null) as "unionalias_1" on ("vx2_0".fk = "unionalias_1".pk)', $result->sqlRemoveFormatting() - ); + ); } ###Pure @@ -197,84 +198,84 @@ Database meta::relational::tests::mapping::union::multipleChainedJoins::store::m ) pk INTEGER PRIMARY KEY, fk INTEGER, from_z DATE, thru_z DATE ) - + Table X1( milestoning( business(BUS_FROM = from_z, BUS_THRU = thru_z) ) pk INTEGER PRIMARY KEY, fk INTEGER, from_z DATE, thru_z DATE ) - + Table X2( milestoning( business(BUS_FROM = from_z, BUS_THRU = thru_z) ) pk INTEGER PRIMARY KEY, fk INTEGER, from_z DATE, thru_z DATE ) - + Table X3( milestoning( business(BUS_FROM = from_z, BUS_THRU = thru_z) ) pk INTEGER PRIMARY KEY, fk INTEGER, from_z DATE, thru_z DATE ) - + Table Y0( milestoning( business(BUS_FROM = from_z, BUS_THRU = thru_z) ) pk INTEGER PRIMARY KEY, fk INTEGER, from_z DATE, thru_z DATE ) - + Table Y1( milestoning( business(BUS_FROM = from_z, BUS_THRU = thru_z) ) pk INTEGER PRIMARY KEY, fk INTEGER, from_z DATE, thru_z DATE ) - + Table Y2( milestoning( business(BUS_FROM = from_z, BUS_THRU = thru_z) ) pk INTEGER PRIMARY KEY, fk INTEGER, from_z DATE, thru_z DATE ) - + Table Y3( milestoning( business(BUS_FROM = from_z, BUS_THRU = thru_z) ) pk INTEGER PRIMARY KEY, fk INTEGER, from_z DATE, thru_z DATE ) - + Table Z0( milestoning( business(BUS_FROM = from_z, BUS_THRU = thru_z) ) pk INTEGER PRIMARY KEY, fk INTEGER, from_z DATE, thru_z DATE ) - + Table Z1( milestoning( business(BUS_FROM = from_z, BUS_THRU = thru_z) ) pk INTEGER PRIMARY KEY, fk INTEGER, from_z DATE, thru_z DATE ) - + Table Z2( milestoning( business(BUS_FROM = from_z, BUS_THRU = thru_z) ) pk INTEGER PRIMARY KEY, fk INTEGER, from_z DATE, thru_z DATE ) - + Table Z3( milestoning( business(BUS_FROM = from_z, BUS_THRU = thru_z) ) pk INTEGER PRIMARY KEY, fk INTEGER, from_z DATE, thru_z DATE ) - + Table A( milestoning( business(BUS_FROM = from_z, BUS_THRU = thru_z) @@ -358,29 +359,29 @@ Database meta::relational::tests::mapping::union::multipleChainedJoins::store::m ) fk0 INTEGER, fk1 INTEGER, from_z DATE, thru_z DATE ) - + View VX1( pk: X0.pk PRIMARY KEY, fk: X0.fk ) - + View VX1B( pk: X0.pk PRIMARY KEY, fk: X0.fk ) - + View VX2( pk: X0.pk PRIMARY KEY, fk: X0.fk - ) - + ) + Join X0_Y0(X0.fk = Y0.fk) Join X0_A(X0.fk = A.fk0) Join X0_B(X0.fk = B.fk0) Join X0_D(X0.fk = D.fk0) Join X1_A(X1.fk = A.fk0) Join X2_B(X2.fk = B.fk0) - Join X3_D(X3.fk = D.fk0) + Join X3_D(X3.fk = D.fk0) Join A_Y0(A.fk1 = Y0.fk) Join A_Y1(A.fk1 = Y1.fk) Join C_Y0(C.fk1 = Y0.fk) @@ -391,7 +392,7 @@ Database meta::relational::tests::mapping::union::multipleChainedJoins::store::m Join Y0_G(Y0.fk = G.fk0) Join Y0_H(Y0.fk = H.fk0) Join Y0_J(Y0.fk = J.fk0) - Join Y1_G(Y1.fk = G.fk0) + Join Y1_G(Y1.fk = G.fk0) Join Y2_H(Y2.fk = H.fk0) Join Y3_J(Y3.fk = J.fk0) Join G_Z0(G.fk1 = Z0.fk) @@ -404,7 +405,7 @@ Database meta::relational::tests::mapping::union::multipleChainedJoins::store::m Join D_E(D.fk1 = E.fk0) Join E_F(E.fk1 = F.fk0) Join H_I(H.fk1 = I.fk0) - Join J_K(J.fk1 = K.fk0) + Join J_K(J.fk1 = K.fk0) Join K_L(K.fk1 = L.fk0) Join VX1_VX2(VX1.fk = VX2.pk) Join VX1B_VX2(VX1B.fk = VX2.pk) @@ -418,27 +419,27 @@ import meta::relational::tests::mapping::union::multipleChainedJoins::store::*; Mapping meta::relational::tests::mapping::union::multipleChainedJoins::mapping::viewToViewToUnion ( - + Y[y] : Relational { pk : [multipleChainedJoinsDB]VX1.pk } - + *Z : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(z1, z2) } - + Z[z1] : Relational { pk : [multipleChainedJoinsDB]Z1.pk } - + Z[z2] : Relational { pk : [multipleChainedJoinsDB]Z2.pk } - + YZ : Relational { AssociationMapping @@ -451,44 +452,44 @@ Mapping meta::relational::tests::mapping::union::multipleChainedJoins::mapping:: Mapping meta::relational::tests::mapping::union::multipleChainedJoins::mapping::unionOfViewsToViewToUnion ( - + Y[y1] : Relational { pk : [multipleChainedJoinsDB]VX1.pk } - + Y[y2] : Relational { pk : [multipleChainedJoinsDB]VX1B.pk - } - + } + *Y : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(y1, y2) - } - + } + *Z : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(z1, z2) } - + Z[z1] : Relational { pk : [multipleChainedJoinsDB]Z1.pk } - + Z[z2] : Relational { pk : [multipleChainedJoinsDB]Z2.pk } - + YZ : Relational { AssociationMapping ( z[y1, z1] : [multipleChainedJoinsDB]@VX1_VX2 > @VX2_Z1, z[y1, z2] : [multipleChainedJoinsDB]@VX1_VX2 > @VX2_Z2, - + z[y2, z1] : [multipleChainedJoinsDB]@VX1B_VX2 > @VX2_Z1, z[y2, z2] : [multipleChainedJoinsDB]@VX1B_VX2 > @VX2_Z2 ) @@ -498,17 +499,17 @@ Mapping meta::relational::tests::mapping::union::multipleChainedJoins::mapping:: Mapping meta::relational::tests::mapping::union::multipleChainedJoins::mapping::multipleChainedJoinsMappingWithUnionAcross2SetsV1 ( include meta::relational::tests::mapping::union::multipleChainedJoins::mapping::multipleChainedJoinsAssociationMappingV1 - + *X : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(x0, x1) } - + *Y : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(y0, y1) } - + *Z : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(z0, z1) @@ -543,17 +544,17 @@ Mapping meta::relational::tests::mapping::union::multipleChainedJoins::mapping:: Mapping meta::relational::tests::mapping::union::multipleChainedJoins::mapping::multipleChainedJoinsMappingWithUnionAcross3SetsV1 ( include meta::relational::tests::mapping::union::multipleChainedJoins::mapping::multipleChainedJoinsAssociationMappingV1 - + *X : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(x0, x1, x2) } - + *Y : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(y0, y1, y2) } - + *Z : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(z0, z1, z2) @@ -588,17 +589,17 @@ Mapping meta::relational::tests::mapping::union::multipleChainedJoins::mapping:: Mapping meta::relational::tests::mapping::union::multipleChainedJoins::mapping::multipleChainedJoinsMappingWithUnionAcross4SetsV1 ( include meta::relational::tests::mapping::union::multipleChainedJoins::mapping::multipleChainedJoinsAssociationMappingV1 - + *X : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(x0, x1, x2, x3) } - + *Y : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(y0, y1, y2, y3) } - + *Z : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(z0, z1, z2, z3) @@ -745,62 +746,62 @@ Mapping meta::relational::tests::mapping::union::multipleChainedJoins::mapping:: ) Mapping meta::relational::tests::mapping::union::multipleChainedJoins::mapping::multipleChainedJoinsClassMapping -( +( *X[x0] : Relational { pk : [multipleChainedJoinsDB]X0.pk } - + X[x1] : Relational { pk : [multipleChainedJoinsDB]X1.pk } - + X[x2] : Relational { pk : [multipleChainedJoinsDB]X2.pk } - + X[x3] : Relational { pk : [multipleChainedJoinsDB]X3.pk } - + *Y[y0] : Relational { pk : [multipleChainedJoinsDB]Y0.pk - } - + } + Y[y1] : Relational { pk : [multipleChainedJoinsDB]Y1.pk } - + Y[y2] : Relational { pk : [multipleChainedJoinsDB]Y2.pk } - + Y[y3] : Relational { pk : [multipleChainedJoinsDB]Y3.pk } - + *Z[z0] : Relational { pk : [multipleChainedJoinsDB]Z0.pk - } - + } + Z[z1] : Relational { pk : [multipleChainedJoinsDB]Z1.pk } - + Z[z2] : Relational { pk : [multipleChainedJoinsDB]Z2.pk } - + Z[z3] : Relational { pk : [multipleChainedJoinsDB]Z3.pk @@ -810,132 +811,135 @@ Mapping meta::relational::tests::mapping::union::multipleChainedJoins::mapping:: ###Pure import meta::relational::metamodel::execute::*; import meta::relational::tests::mapping::union::multipleChainedJoins::store::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function <> meta::relational::tests::mapping::union::multipleChainedJoins::setup():Runtime[1] { - let connection = meta::relational::tests::testRuntime(multipleChainedJoinsDB).connections->toOne()->cast(@TestDatabaseConnection); - + let connectionStore = meta::external::store::relational::tests::testRuntime(multipleChainedJoinsDB).connectionStores->toOne(); + let connection = $connectionStore.connection->cast(@TestDatabaseConnection); + executeInDb('drop table if exists X0;', $connection); executeInDb('create table X0 (pk INTEGER, fk INTEGER, from_z DATE, thru_z DATE)', $connection); executeInDb('insert into X0 values(10, 111, \'2015-1-1\', \'2017-1-1\');', $connection); executeInDb('insert into X0 values(10, 111, \'2017-1-1\', \'9999-12-31\');', $connection); - + executeInDb('drop table if exists X1;', $connection); executeInDb('create table X1 (pk INTEGER, fk INTEGER, from_z DATE, thru_z DATE)', $connection); executeInDb('insert into X1 values(11, 111, \'2015-1-1\', \'2017-1-1\');', $connection); executeInDb('insert into X1 values(11, 111, \'2017-1-1\', \'9999-12-31\');', $connection); - + executeInDb('drop table if exists X2;', $connection); executeInDb('create table X2 (pk INTEGER, fk INTEGER, from_z DATE, thru_z DATE)', $connection); executeInDb('insert into X2 values(12, 111, \'2015-1-1\', \'2017-1-1\');', $connection); executeInDb('insert into X2 values(12, 111, \'2017-1-1\', \'9999-12-31\');', $connection); - + executeInDb('drop table if exists X3;', $connection); executeInDb('create table X3 (pk INTEGER, fk INTEGER, from_z DATE, thru_z DATE)', $connection); executeInDb('insert into X3 values(13, 111, \'2015-1-1\', \'2017-1-1\');', $connection); executeInDb('insert into X3 values(13, 111, \'2017-1-1\', \'9999-12-31\');', $connection); - + executeInDb('drop table if exists Y0;', $connection); executeInDb('create table Y0 (pk INTEGER, fk INTEGER, from_z DATE, thru_z DATE)', $connection); executeInDb('insert into Y0 values(20, 111, \'2015-1-1\', \'2017-1-1\');', $connection); executeInDb('insert into Y0 values(20, 111, \'2017-1-1\', \'9999-12-31\');', $connection); - + executeInDb('drop table if exists Y1;', $connection); executeInDb('create table Y1 (pk INTEGER, fk INTEGER, from_z DATE, thru_z DATE)', $connection); executeInDb('insert into Y1 values(21, 111, \'2015-1-1\', \'2017-1-1\');', $connection); executeInDb('insert into Y1 values(21, 111, \'2017-1-1\', \'9999-12-31\');', $connection); - + executeInDb('drop table if exists Y2;', $connection); executeInDb('create table Y2 (pk INTEGER, fk INTEGER, from_z DATE, thru_z DATE)', $connection); executeInDb('insert into Y2 values(22, 111, \'2015-1-1\', \'2017-1-1\');', $connection); executeInDb('insert into Y2 values(22, 111, \'2017-1-1\', \'9999-12-31\');', $connection); - + executeInDb('drop table if exists Y3;', $connection); executeInDb('create table Y3 (pk INTEGER, fk INTEGER, from_z DATE, thru_z DATE)', $connection); executeInDb('insert into Y3 values(23, 111, \'2015-1-1\', \'2017-1-1\');', $connection); executeInDb('insert into Y3 values(23, 111, \'2017-1-1\', \'9999-12-31\');', $connection); - + executeInDb('drop table if exists Z0;', $connection); executeInDb('create table Z0 (pk INTEGER, fk INTEGER, from_z DATE, thru_z DATE)', $connection); executeInDb('insert into Z0 values(30, 111, \'2015-1-1\', \'2017-1-1\');', $connection); executeInDb('insert into Z0 values(30, 111, \'2017-1-1\', \'9999-12-31\');', $connection); - + executeInDb('drop table if exists Z1;', $connection); executeInDb('create table Z1 (pk INTEGER, fk INTEGER, from_z DATE, thru_z DATE)', $connection); executeInDb('insert into Z1 values(31, 111, \'2015-1-1\', \'2017-1-1\');', $connection); executeInDb('insert into Z1 values(31, 111, \'2017-1-1\', \'9999-12-31\');', $connection); - + executeInDb('drop table if exists Z2;', $connection); executeInDb('create table Z2 (pk INTEGER, fk INTEGER, from_z DATE, thru_z DATE)', $connection); executeInDb('insert into Z2 values(32, 111, \'2015-1-1\', \'2017-1-1\');', $connection); executeInDb('insert into Z2 values(32, 111, \'2017-1-1\', \'9999-12-31\');', $connection); - + executeInDb('drop table if exists Z3;', $connection); executeInDb('create table Z3 (pk INTEGER, fk INTEGER, from_z DATE, thru_z DATE)', $connection); executeInDb('insert into Z3 values(33, 111, \'2015-1-1\', \'2017-1-1\');', $connection); executeInDb('insert into Z3 values(33, 111, \'2017-1-1\', \'9999-12-31\');', $connection); - + executeInDb('drop table if exists A;',$connection); executeInDb('create table A(fk0 INTEGER, fk1 INTEGER, from_z DATE, thru_z DATE)', $connection); executeInDb('insert into A values(111, 111, \'2015-1-1\', \'2017-1-1\');', $connection); executeInDb('insert into A values(111, 111, \'2017-1-1\', \'9999-12-31\');', $connection); - + executeInDb('drop table if exists B;',$connection); executeInDb('create table B(fk0 INTEGER, fk1 INTEGER, from_z DATE, thru_z DATE)', $connection); executeInDb('insert into B values(111, 111, \'2015-1-1\', \'2017-1-1\');', $connection); executeInDb('insert into B values(111, 111, \'2017-1-1\', \'9999-12-31\');', $connection); - + executeInDb('drop table if exists C;',$connection); executeInDb('create table C(fk0 INTEGER, fk1 INTEGER, from_z DATE, thru_z DATE)', $connection); executeInDb('insert into C values(111, 111, \'2015-1-1\', \'2017-1-1\');', $connection); executeInDb('insert into C values(111, 111, \'2017-1-1\', \'9999-12-31\');', $connection); - + executeInDb('drop table if exists D;',$connection); executeInDb('create table D(fk0 INTEGER, fk1 INTEGER, from_z DATE, thru_z DATE)', $connection); executeInDb('insert into D values(111, 111, \'2015-1-1\', \'2017-1-1\');', $connection); executeInDb('insert into D values(111, 111, \'2017-1-1\', \'9999-12-31\');', $connection); - + executeInDb('drop table if exists E;',$connection); executeInDb('create table E(fk0 INTEGER, fk1 INTEGER, from_z DATE, thru_z DATE)', $connection); executeInDb('insert into E values(111, 111, \'2015-1-1\', \'2017-1-1\');', $connection); executeInDb('insert into E values(111, 111, \'2017-1-1\', \'9999-12-31\');', $connection); - + executeInDb('drop table if exists F;',$connection); executeInDb('create table F(fk0 INTEGER, fk1 INTEGER, from_z DATE, thru_z DATE)', $connection); executeInDb('insert into F values(111, 111, \'2015-1-1\', \'2017-1-1\');', $connection); executeInDb('insert into F values(111, 111, \'2017-1-1\', \'9999-12-31\');', $connection); - + executeInDb('drop table if exists G;',$connection); executeInDb('create table G(fk0 INTEGER, fk1 INTEGER, from_z DATE, thru_z DATE)', $connection); executeInDb('insert into G values(111, 111, \'2015-1-1\', \'2017-1-1\');', $connection); executeInDb('insert into G values(111, 111, \'2017-1-1\', \'9999-12-31\');', $connection); - + executeInDb('drop table if exists H;',$connection); executeInDb('create table H(fk0 INTEGER, fk1 INTEGER, from_z DATE, thru_z DATE)', $connection); executeInDb('insert into H values(111, 111, \'2015-1-1\', \'2017-1-1\');', $connection); executeInDb('insert into H values(111, 111, \'2017-1-1\', \'9999-12-31\');', $connection); - + executeInDb('drop table if exists I;',$connection); executeInDb('create table I(fk0 INTEGER, fk1 INTEGER, from_z DATE, thru_z DATE)', $connection); executeInDb('insert into I values(111, 111, \'2015-1-1\', \'2017-1-1\');', $connection); executeInDb('insert into I values(111, 111, \'2017-1-1\', \'9999-12-31\');', $connection); - + executeInDb('drop table if exists J;',$connection); executeInDb('create table J(fk0 INTEGER, fk1 INTEGER, from_z DATE, thru_z DATE)', $connection); executeInDb('insert into J values(111, 111, \'2015-1-1\', \'2017-1-1\');', $connection); executeInDb('insert into J values(111, 111, \'2017-1-1\', \'9999-12-31\');', $connection); - + executeInDb('drop table if exists K;',$connection); executeInDb('create table K(fk0 INTEGER, fk1 INTEGER, from_z DATE, thru_z DATE)', $connection); executeInDb('insert into K values(111, 111, \'2015-1-1\', \'2017-1-1\');', $connection); executeInDb('insert into K values(111, 111, \'2017-1-1\', \'9999-12-31\');', $connection); - + executeInDb('drop table if exists L;',$connection); executeInDb('create table L(fk0 INTEGER, fk1 INTEGER, from_z DATE, thru_z DATE)', $connection); executeInDb('insert into L values(111, 111, \'2015-1-1\', \'2017-1-1\');', $connection); executeInDb('insert into L values(111, 111, \'2017-1-1\', \'9999-12-31\');', $connection); - - ^Runtime(connections = $connection); + + ^Runtime(connectionStores= $connectionStore); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionWithPartialForeignKeyUsage.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionWithPartialForeignKeyUsage.pure index 4542276511a..befba689604 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionWithPartialForeignKeyUsage.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/union/testUnionWithPartialForeignKeyUsage.pure @@ -68,12 +68,12 @@ Database meta::relational::tests::mapping::union::partialForeignKeyUsage::store: Table B1(pk INTEGER PRIMARY KEY, fk1 INTEGER, fk2 INTEGER) Table C1(pk INTEGER PRIMARY KEY, fk1 INTEGER, fk2 INTEGER) Table D1(pk INTEGER PRIMARY KEY, fk1 INTEGER, fk2 INTEGER) - + Table A2(pk INTEGER PRIMARY KEY, fk1 INTEGER, fk2 INTEGER) Table B2(pk INTEGER PRIMARY KEY, fk1 INTEGER, fk2 INTEGER) Table C2(pk INTEGER PRIMARY KEY, fk1 INTEGER, fk2 INTEGER) Table D2(pk INTEGER PRIMARY KEY, fk1 INTEGER, fk2 INTEGER) - + Join A1_B1(A1.fk1 = B1.fk1) Join A2_B2(A2.fk1 = B2.fk1 or A2.fk2 = B2.fk2) Join B1_C1(B1.fk1 = C1.fk1 or B1.fk2 = C1.fk2) @@ -87,114 +87,114 @@ import meta::relational::tests::mapping::union::partialForeignKeyUsage::model::* import meta::relational::tests::mapping::union::partialForeignKeyUsage::store::*; Mapping meta::relational::tests::mapping::union::partialForeignKeyUsage::mapping::relationalMapping -( +( *A : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(a1, a2) } - + *B : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(b1, b2) } - + *C : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(c1, c2) } - + *D : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(d1, d2) } - + A[a1] : Relational { pk : [relationalStore]A1.pk, fk1 : [relationalStore]A1.fk1, fk2 : [relationalStore]A1.fk2 } - + A[a2] : Relational { pk : [relationalStore]A2.pk, fk1 : [relationalStore]A2.fk1, fk2 : [relationalStore]A2.fk2 } - + B[b1] : Relational { pk : [relationalStore]B1.pk, fk1 : [relationalStore]B1.fk1, fk2 : [relationalStore]B1.fk2 - } - + } + B[b2] : Relational { pk : [relationalStore]B2.pk, fk1 : [relationalStore]B2.fk1, fk2 : [relationalStore]B2.fk2 } - + C[c1] : Relational { pk : [relationalStore]C1.pk, fk1 : [relationalStore]C1.fk1, fk2 : [relationalStore]C1.fk2 - } - + } + C[c2] : Relational { pk : [relationalStore]C2.pk, fk1 : [relationalStore]C2.fk1, fk2 : [relationalStore]C2.fk2 } - + D[d1] : Relational { pk : [relationalStore]D1.pk, fk1 : [relationalStore]D1.fk1, fk2 : [relationalStore]D1.fk2 - } - + } + D[d2] : Relational { pk : [relationalStore]D2.pk, fk1 : [relationalStore]D2.fk1, fk2 : [relationalStore]D2.fk2 } - + AB : Relational { AssociationMapping ( a[b1, a1] : [relationalStore]@A1_B1, b[a1, b1] : [relationalStore]@A1_B1, - + a[b2, a2] : [relationalStore]@A2_B2, - b[a2, b2] : [relationalStore]@A2_B2 + b[a2, b2] : [relationalStore]@A2_B2 ) } - + BC : Relational { AssociationMapping ( b[c1, b1] : [relationalStore]@B1_C1, c[b1, c1] : [relationalStore]@B1_C1, - + b[c2, b2] : [relationalStore]@B2_C2, c[b2, c2] : [relationalStore]@B2_C2 ) } - + CD : Relational { AssociationMapping ( c[d1, c1] : [relationalStore]@C1_D1, d[c1, d1] : [relationalStore]@C1_D1, - + c[d2, c2] : [relationalStore]@C2_D2, d[c2, d2] : [relationalStore]@C2_D2 ) @@ -204,46 +204,49 @@ Mapping meta::relational::tests::mapping::union::partialForeignKeyUsage::mapping ###Pure import meta::relational::metamodel::execute::*; import meta::relational::tests::mapping::union::partialForeignKeyUsage::store::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function <> meta::relational::tests::mapping::union::partialForeignKeyUsage::initDatabase():Runtime[1] { - let connection = meta::relational::tests::testRuntime(relationalStore).connections->toOne()->cast(@TestDatabaseConnection); - + let connectionStore = meta::external::store::relational::tests::testRuntime(relationalStore).connectionStores->toOne(); + let connection = $connectionStore.connection->cast(@TestDatabaseConnection); + executeInDb('drop table if exists A1;', $connection); executeInDb('create table A1 (pk INTEGER PRIMARY KEY, fk1 INTEGER, fk2 INTEGER)', $connection); executeInDb('insert into A1 values(101, 1, 11);', $connection); - + executeInDb('drop table if exists A2;', $connection); executeInDb('create table A2 (pk INTEGER PRIMARY KEY, fk1 INTEGER, fk2 INTEGER)', $connection); executeInDb('insert into A2 values(202, 2, 22);', $connection); - + executeInDb('drop table if exists B1;', $connection); executeInDb('create table B1 (pk INTEGER PRIMARY KEY, fk1 INTEGER, fk2 INTEGER)', $connection); executeInDb('insert into B1 values(101, 1, 11);', $connection); - + executeInDb('drop table if exists B2;', $connection); executeInDb('create table B2 (pk INTEGER PRIMARY KEY, fk1 INTEGER, fk2 INTEGER)', $connection); executeInDb('insert into B2 values(202, 2, 22);', $connection); - + executeInDb('drop table if exists C1;', $connection); executeInDb('create table C1 (pk INTEGER PRIMARY KEY, fk1 INTEGER, fk2 INTEGER)', $connection); executeInDb('insert into C1 values(101, 1, 11);', $connection); - + executeInDb('drop table if exists C2;', $connection); executeInDb('create table C2 (pk INTEGER PRIMARY KEY, fk1 INTEGER, fk2 INTEGER)', $connection); executeInDb('insert into C2 values(202, 2, 22);', $connection); - + executeInDb('drop table if exists D1;', $connection); executeInDb('create table D1 (pk INTEGER PRIMARY KEY, fk1 INTEGER, fk2 INTEGER)', $connection); executeInDb('insert into D1 values(101, 1, 11);', $connection); - + executeInDb('drop table if exists D2;', $connection); executeInDb('create table D2 (pk INTEGER PRIMARY KEY, fk1 INTEGER, fk2 INTEGER)', $connection); executeInDb('insert into D2 values(202, 2, 22);', $connection); - - ^Runtime(connections=$connection); + + ^Runtime(connectionStores=$connectionStore); } ###Pure @@ -251,6 +254,7 @@ import meta::relational::functions::asserts::*; import meta::relational::tests::mapping::union::partialForeignKeyUsage::model::*; import meta::relational::tests::mapping::union::partialForeignKeyUsage::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::mapping::union::partialForeignKeyUsage::testUnionWithPartialForeignKeyUsage1():Any[*] { diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/datePeriods.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/datePeriods.pure index a8680f62cbf..2a22b5b6ae6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/datePeriods.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/datePeriods.pure @@ -17,8 +17,10 @@ import meta::relational::tests::groupBy::datePeriods::domain::*; import meta::relational::tests::groupBy::datePeriods::mapping::*; import meta::relational::tests::groupBy::datePeriods::store::*; import meta::relational::tests::groupBy::datePeriods::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::execute::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::mapping::*; import meta::relational::tests::csv::*; @@ -26,14 +28,14 @@ import meta::relational::tests::csv::*; // Alloy exclusion reason: 15. Variables types should be inferred Encoding doesn't currently support generics (issue if the variable if of type Path for example) function <> meta::relational::tests::groupBy::datePeriods::testGroupBy():Boolean[1] { - + let fn = {| let startDate = getReportingStartDate(); let endDate = getReportingEndDate(); let reportEndDate = FiscalCalendarDate.all()->filter(d | $d.date == $endDate)->toOne(); - + let datePath = #/SalesCredit/tradeDate#; - + SalesCredit.all() ->filter(gc | $gc.tradeDate.date > $startDate && ($gc.tradeDate.date <= $reportEndDate.date)) ->groupBy([ @@ -45,32 +47,32 @@ function <> meta::relational::tests::groupBy::date agg(s| wtd($s, #/SalesCredit/grossValue#, $datePath, $reportEndDate), r|$r->sum()) ] , - ['Sales Division', 'Income Function', 'YTD Gross Credits', 'WTD Gross Credits'] + ['Sales Division', 'Income Function', 'YTD Gross Credits', 'WTD Gross Credits'] ) ->sort([desc('Sales Division'), desc('Income Function')]); }; - - + + let result = execute($fn,myMapping,testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values; - - assertEquals('Sales Division,Income Function,YTD Gross Credits,WTD Gross Credits\n' + + + assertEquals('Sales Division,Income Function,YTD Gross Credits,WTD Gross Credits\n' + 'OrgName2,1002,100000.0,100000.0\n' + 'OrgName2,1001,300000.0,0.0\n' + 'OrgName1,1002,200000.0,0.0\n', $tds->toCSV()); - + assertEqualsH2Compatible( 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'', 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'', $result->sqlRemoveFormatting(0) ); - + assertEqualsH2Compatible( 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else 0.0 end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else 0.0 end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > \'2015-02-01\' and "calendar_0"."date" <= \'2015-02-25\') group by "Sales Division","Income Function" order by "Sales Division" desc,"Income Function" desc', 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else CAST(0.0 AS FLOAT) end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else CAST(0.0 AS FLOAT) end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > DATE\'2015-02-01\' and "calendar_0"."date" <= DATE\'2015-02-25\') group by "Sales Division","Income Function" order by "Sales Division" desc,"Income Function" desc', $result->sqlRemoveFormatting(1) ); - + assertEqualsH2Compatible( 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', @@ -181,12 +183,12 @@ function <> meta::relational::tests::groupBy::datePer function <> meta::relational::tests::groupBy::datePeriods::testGroupByWithFilterFunction_noDatePath():Boolean[1] { - + let fn = {| let startDate = getReportingStartDate(); let endDate = getReportingEndDate(); let reportEndDate = FiscalCalendarDate.all()->filter(d | $d.date == $endDate)->toOne(); - + SalesCredit.all() ->filter(gc | $gc->dateFilter($startDate, $endDate)) ->groupBy([ @@ -198,32 +200,32 @@ function <> meta::relational::tests::groupBy::datePeriods::testGroupB agg(s| wtd($s, #/SalesCredit/grossValue#, #/SalesCredit/tradeDate#, $reportEndDate), r|$r->sum()) ] , - ['Sales Division', 'Income Function', 'YTD Gross Credits', 'WTD Gross Credits'] + ['Sales Division', 'Income Function', 'YTD Gross Credits', 'WTD Gross Credits'] ) ->sort([desc('Sales Division'), desc('Income Function')]); }; - - + + let result = execute($fn,myMapping,testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values; - - assertEquals('Sales Division,Income Function,YTD Gross Credits,WTD Gross Credits\n' + + + assertEquals('Sales Division,Income Function,YTD Gross Credits,WTD Gross Credits\n' + 'OrgName2,1002,100000.0,100000.0\n' + - 'OrgName2,1001,300000.0,0.0\n' + + 'OrgName2,1001,300000.0,0.0\n' + 'OrgName1,1002,200000.0,0.0\n', $tds->toCSV()); - + assertEqualsH2Compatible( 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'', 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'', $result->sqlRemoveFormatting(0) ); - + assertEqualsH2Compatible( 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else 0.0 end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else 0.0 end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > \'2015-02-01\' and "calendar_0"."date" <= \'2015-02-25\') group by "Sales Division","Income Function" order by "Sales Division" desc,"Income Function" desc', 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else CAST(0.0 AS FLOAT) end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else CAST(0.0 AS FLOAT) end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > DATE\'2015-02-01\' and "calendar_0"."date" <= DATE\'2015-02-25\') group by "Sales Division","Income Function" order by "Sales Division" desc,"Income Function" desc', $result->sqlRemoveFormatting(1) ); - + assertEqualsH2Compatible( 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', @@ -234,14 +236,14 @@ function <> meta::relational::tests::groupBy::datePeriods::testGroupB // Alloy exclusion reason: 15. Variables types should be inferred Encoding doesn't currently support generics (issue if the variable if of type Path for example) function <> meta::relational::tests::groupBy::datePeriods::testGroupByWithFilterFunction():Boolean[1] { - + let fn = {| let startDate = getReportingStartDate(); let endDate = getReportingEndDate(); let reportEndDate = FiscalCalendarDate.all()->filter(d | $d.date == $endDate)->toOne(); - + let datePath = #/SalesCredit/tradeDate#; - + SalesCredit.all() ->filter(gc | $gc->dateFilter($startDate, $endDate)) ->groupBy([ @@ -253,32 +255,32 @@ function <> meta::relational::tests::groupBy::date agg(s| wtd($s, #/SalesCredit/grossValue#, $datePath, $reportEndDate), r|$r->sum()) ] , - ['Sales Division', 'Income Function', 'YTD Gross Credits', 'WTD Gross Credits'] + ['Sales Division', 'Income Function', 'YTD Gross Credits', 'WTD Gross Credits'] ) ->sort([desc('Sales Division'), desc('Income Function')]); }; - - + + let result = execute($fn,myMapping,testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values; - - assertEquals('Sales Division,Income Function,YTD Gross Credits,WTD Gross Credits\n' + + + assertEquals('Sales Division,Income Function,YTD Gross Credits,WTD Gross Credits\n' + 'OrgName2,1002,100000.0,100000.0\n' + 'OrgName2,1001,300000.0,0.0\n' + 'OrgName1,1002,200000.0,0.0\n', $tds->toCSV()); - + assertEqualsH2Compatible( 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'', 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'', $result->sqlRemoveFormatting(0) ); - + assertEqualsH2Compatible( 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else 0.0 end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else 0.0 end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > \'2015-02-01\' and "calendar_0"."date" <= \'2015-02-25\') group by "Sales Division","Income Function" order by "Sales Division" desc,"Income Function" desc', 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else CAST(0.0 AS FLOAT) end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else CAST(0.0 AS FLOAT) end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > DATE\'2015-02-01\' and "calendar_0"."date" <= DATE\'2015-02-25\') group by "Sales Division","Income Function" order by "Sales Division" desc,"Income Function" desc', $result->sqlRemoveFormatting(1) - ); - + ); + assertEqualsH2Compatible( 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', @@ -294,14 +296,14 @@ function meta::relational::tests::groupBy::datePeriods::dateFilter(gc:SalesCredi // Alloy exclusion reason: 15. Variables types should be inferred Encoding doesn't currently support generics (issue if the variable if of type Path for example) function <> meta::relational::tests::groupBy::datePeriods::testGroupByWithRelativeDateFunctions():Boolean[1] { - + let fn = {| let startDate = getReportingStartDate(); let endDate = $startDate->adjust(24, DurationUnit.DAYS); let reportEndDate = FiscalCalendarDate.all()->filter(d | $d.date == $endDate)->toOne(); - + let datePath = #/SalesCredit/tradeDate#; - + SalesCredit.all() ->filter(gc | $gc->dateFilter($startDate, $endDate)) ->groupBy([ @@ -313,25 +315,25 @@ function <> meta::relational::tests::groupBy::date agg(s| wtd($s, #/SalesCredit/grossValue#, $datePath, $reportEndDate), r|$r->sum()) ] , - ['Sales Division', 'Income Function', 'YTD Gross Credits', 'WTD Gross Credits'] + ['Sales Division', 'Income Function', 'YTD Gross Credits', 'WTD Gross Credits'] ); }; - - + + let result = execute($fn,myMapping,testRuntime(), meta::relational::extension::relationalExtensions()); - + assertEqualsH2Compatible( 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'', 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'', $result->sqlRemoveFormatting(0) ); - + assertEqualsH2Compatible( - 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else 0.0 end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else 0.0 end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > \'2015-02-01\' and "calendar_0"."date" <= \'2015-02-25\') group by "Sales Division","Income Function"', - 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else CAST(0.0 AS FLOAT) end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else CAST(0.0 AS FLOAT) end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > DATE\'2015-02-01\' and "calendar_0"."date" <= DATE\'2015-02-25\') group by "Sales Division","Income Function"', + 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else 0.0 end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else 0.0 end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > \'2015-02-01\' and "calendar_0"."date" <= \'2015-02-25\') group by "Sales Division","Income Function"', + 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else CAST(0.0 AS FLOAT) end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else CAST(0.0 AS FLOAT) end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > DATE\'2015-02-01\' and "calendar_0"."date" <= DATE\'2015-02-25\') group by "Sales Division","Income Function"', $result->sqlRemoveFormatting(1) ); - + assertEqualsH2Compatible( 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', @@ -342,12 +344,12 @@ function <> meta::relational::tests::groupBy::date // Alloy exclusion reason: 16. Alloy doesn't support platform functions function <> meta::relational::tests::groupBy::datePeriods::testGroupByWithRelativeDateFunctions_noDatePath():Boolean[1] { - + let fn = {| let startDate = getReportingStartDate(); let endDate = $startDate->adjust(24, DurationUnit.DAYS); let reportEndDate = FiscalCalendarDate.all()->filter(d | $d.date == $endDate)->toOne(); - + SalesCredit.all() ->filter(gc | $gc->dateFilter($startDate, $endDate)) ->groupBy([ @@ -359,25 +361,25 @@ function <> meta::relational::tests::groupBy::date agg(s| wtd($s, #/SalesCredit/grossValue#, #/SalesCredit/tradeDate#, $reportEndDate), r|$r->sum()) ] , - ['Sales Division', 'Income Function', 'YTD Gross Credits', 'WTD Gross Credits'] + ['Sales Division', 'Income Function', 'YTD Gross Credits', 'WTD Gross Credits'] ); }; - - + + let result = execute($fn,myMapping,testRuntime(), meta::relational::extension::relationalExtensions()); - + assertEqualsH2Compatible( 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'', 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'', $result->sqlRemoveFormatting(0) ); - + assertEqualsH2Compatible( - 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else 0.0 end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else 0.0 end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > \'2015-02-01\' and "calendar_0"."date" <= \'2015-02-25\') group by "Sales Division","Income Function"', - 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else CAST(0.0 AS FLOAT) end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else CAST(0.0 AS FLOAT) end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > DATE\'2015-02-01\' and "calendar_0"."date" <= DATE\'2015-02-25\') group by "Sales Division","Income Function"', + 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else 0.0 end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else 0.0 end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > \'2015-02-01\' and "calendar_0"."date" <= \'2015-02-25\') group by "Sales Division","Income Function"', + 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else CAST(0.0 AS FLOAT) end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else CAST(0.0 AS FLOAT) end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > DATE\'2015-02-01\' and "calendar_0"."date" <= DATE\'2015-02-25\') group by "Sales Division","Income Function"', $result->sqlRemoveFormatting(1) ); - + assertEqualsH2Compatible( 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', @@ -388,15 +390,15 @@ function <> meta::relational::tests::groupBy::date // Alloy exclusion reason: 15. Variables types should be inferred Encoding doesn't currently support generics (issue if the variable if of type Path for example) function <> meta::relational::tests::groupBy::datePeriods::testGroupByWithRelativeDateFunctionsWithPathFilter():Boolean[1] { - + let fn = {| let startDate = getReportingStartDate(); let endDate = $startDate->adjust(24, DurationUnit.DAYS); let reportEndDate = FiscalCalendarDate.all()->filter(d | $d.date == $endDate)->toOne(); - + let datePath = #/SalesCredit/tradeDate/date#; let calendarDatePath = #/SalesCredit/tradeDate#; - + SalesCredit.all() ->filter(gc | $gc->filterReportDates($startDate, $endDate, $datePath)) ->groupBy([ @@ -408,25 +410,25 @@ function <> meta::relational::tests::groupBy::date agg(s| wtd($s, #/SalesCredit/grossValue#, $calendarDatePath, $reportEndDate), r|$r->sum()) ] , - ['Sales Division', 'Income Function', 'YTD Gross Credits', 'WTD Gross Credits'] + ['Sales Division', 'Income Function', 'YTD Gross Credits', 'WTD Gross Credits'] ); }; - - + + let result = execute($fn,myMapping,testRuntime(), meta::relational::extension::relationalExtensions()); - + assertEqualsH2Compatible( 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'', 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'', $result->sqlRemoveFormatting(0) ); - + assertEqualsH2Compatible( 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else 0.0 end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else 0.0 end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > \'2015-02-01\' and "calendar_0"."date" <= \'2015-02-25\') group by "Sales Division","Income Function"', 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum(case when "calendar_0"."fiscal day" <= 37 then "root".credits else CAST(0.0 AS FLOAT) end) as "YTD Gross Credits", sum(case when ("calendar_0"."fiscal week" = 9 and "calendar_0"."fiscal day of week" <= 3) then "root".credits else CAST(0.0 AS FLOAT) end) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > DATE\'2015-02-01\' and "calendar_0"."date" <= DATE\'2015-02-25\') group by "Sales Division","Income Function"', $result->sqlRemoveFormatting(1) ); - + assertEqualsH2Compatible( 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = \'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', 'select "root"."date" as "pk_0", "root"."calendar name" as "pk_1", "root"."date" as "date", "root"."fiscal week start" as "weekStart", "root"."fiscal week end" as "weekEnd", "root"."fiscal day" as "day", "root"."fiscal week" as "week", "root"."fiscal day of week" as "dayOfWeekNumber", "root"."fiscal year end" as "yearEnd", "root"."fiscal year start" as "yearStart" from calendar as "root" where "root"."date" = DATE\'2015-02-25\'\nWarning: Results only shown for first relational query. Other SQL statements could not be computed because they require results from the execution of the previous expression.', @@ -458,7 +460,7 @@ function <> meta::relational::tests::groupBy::date let reportEndDate = getReportingEndDateAsFiscalDate(); let endDate = $reportEndDate.date; let startDate = getReportingStartDate(); - + let result = execute(|SalesCredit.all()->filter(gc | $gc.tradeDate.date > $startDate && ($gc.tradeDate.date <= $endDate)) ->project([#/SalesCredit/salesDivision/name#,#/SalesCredit/incomeFunction/code#, @@ -470,12 +472,12 @@ function <> meta::relational::tests::groupBy::date ->sort([desc('Sales Division'), desc('Income Function')]) ,myMapping,testRuntime(), meta::relational::extension::relationalExtensions()); let tds = $result.values; - - assertEquals('Sales Division,Income Function,YTD Gross Credits,WTD Gross Credits\n' + + + assertEquals('Sales Division,Income Function,YTD Gross Credits,WTD Gross Credits\n' + 'OrgName2,1002,100000.0,100000.0\n' + 'OrgName2,1001,300000.0,0.0\n' + 'OrgName1,1002,200000.0,0.0\n', $tds->toCSV()); - + assertEqualsH2Compatible( 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum((case when "calendar_0"."fiscal day" <= 37 then 1.0 else 0.0 end * "root".credits)) as "YTD Gross Credits", sum((case when (week("calendar_0"."date") = week(\'2015-02-25\') and DAY_OF_WEEK("calendar_0"."date") <= DAY_OF_WEEK(\'2015-02-25\')) then 1.0 else 0.0 end * "root".credits)) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > \'2015-02-01\' and "calendar_0"."date" <= \'2015-02-25\') group by "Sales Division","Income Function" order by "Sales Division" desc,"Income Function" desc', 'select "org_chart_entity_0".name as "Sales Division", "income_function_0".code as "Income Function", sum((case when "calendar_0"."fiscal day" <= 37 then CAST(1.0 AS FLOAT) else CAST(0.0 AS FLOAT) end * "root".credits)) as "YTD Gross Credits", sum((case when (week("calendar_0"."date") = week(DATE\'2015-02-25\') and DAY_OF_WEEK("calendar_0"."date") <= DAY_OF_WEEK(DATE\'2015-02-25\')) then CAST(1.0 AS FLOAT) else CAST(0.0 AS FLOAT) end * "root".credits)) as "WTD Gross Credits" from SALES_GCS as "root" left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) left outer join INCOME_FUNCTION as "income_function_0" on ("root".if_code = "income_function_0".code) left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") where ("calendar_0"."date" > DATE\'2015-02-01\' and "calendar_0"."date" <= DATE\'2015-02-25\') group by "Sales Division","Income Function" order by "Sales Division" desc,"Income Function" desc', @@ -496,8 +498,8 @@ function <> meta::relational::tests::groupBy::datePeriods::testDayOfW meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "org_chart_entity_0".name as "name" from SALES_GCS as "root" left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) where ("calendar_0"."date" > \'2022-02-21\' and "calendar_0"."date" <= \'2022-03-25\')', - 'select "org_chart_entity_0".name as "name" from SALES_GCS as "root" left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) where ("calendar_0"."date" > DATE\'2022-02-21\' and "calendar_0"."date" <= DATE\'2022-03-25\')', + 'select "org_chart_entity_0".name as "name" from SALES_GCS as "root" left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) where ("calendar_0"."date" > \'2022-02-21\' and "calendar_0"."date" <= \'2022-03-25\')', + 'select "org_chart_entity_0".name as "name" from SALES_GCS as "root" left outer join calendar as "calendar_0" on ("root".tradeDate = "calendar_0"."date") left outer join ORG_CHART_ENTITY as "org_chart_entity_0" on ("root".division_id = "org_chart_entity_0".oe_id) where ("calendar_0"."date" > DATE\'2022-02-21\' and "calendar_0"."date" <= DATE\'2022-03-25\')', $result->sqlRemoveFormatting(0) ); } @@ -545,7 +547,7 @@ function <> meta::relational::tests::groupBy::datePeriods::s function meta::relational::tests::groupBy::datePeriods::testRuntime():Runtime[1] { - meta::relational::tests::testRuntime(myDB); + meta::external::store::relational::tests::testRuntime(myDB); } @@ -564,11 +566,11 @@ function meta::relational::tests::groupBy::datePeriods::createTablesAndFillDb(): executeInDb('insert into ORG_CHART_ENTITY (oe_id, name) values (1, \'OrgName1\');', $connection); executeInDb('insert into ORG_CHART_ENTITY (oe_id, name) values (2, \'OrgName2\');', $connection); - - + + meta::relational::functions::toDDL::dropAndCreateTableInDb(myDB, 'SALES_GCS', $connection); - + executeInDb('insert into SALES_GCS (key, if_code, division_id, credits, tradeDate) values (1, 1002, 2, 500000.0, \'2015-01-05\');', $connection); executeInDb('insert into SALES_GCS (key, if_code, division_id, credits, tradeDate) values (2, 1002, 2, 600000.0, \'2015-01-06\');', $connection); executeInDb('insert into SALES_GCS (key, if_code, division_id, credits, tradeDate) values (3, 1001, 1, 100000.0, \'2015-02-01\');', $connection); @@ -578,21 +580,21 @@ function meta::relational::tests::groupBy::datePeriods::createTablesAndFillDb(): meta::relational::functions::toDDL::dropAndCreateTableInDb(myDB, 'calendar', $connection); - executeInDb('insert into calendar ("calendar name", "date", "fiscal week start", "fiscal week end", "fiscal day", "fiscal week", "fiscal year", "fiscal year start", "fiscal year end", "fiscal day of week")' + + executeInDb('insert into calendar ("calendar name", "date", "fiscal week start", "fiscal week end", "fiscal day", "fiscal week", "fiscal year", "fiscal year start", "fiscal year end", "fiscal day of week")' + ' values (\'NYC\', \'2015-01-05\', \'2015-01-05\', \'2015-01-09\', 1, 1, 2015, \'2015-01-01\', \'2015-12-31\', 1);', $connection); - executeInDb('insert into calendar ("calendar name", "date", "fiscal week start", "fiscal week end", "fiscal day", "fiscal week", "fiscal year", "fiscal year start", "fiscal year end", "fiscal day of week")' + + executeInDb('insert into calendar ("calendar name", "date", "fiscal week start", "fiscal week end", "fiscal day", "fiscal week", "fiscal year", "fiscal year start", "fiscal year end", "fiscal day of week")' + ' values (\'NYC\', \'2015-01-06\', \'2015-01-05\', \'2015-01-09\', 2, 1, 2015, \'2015-01-01\', \'2015-12-31\', 1);', $connection); - executeInDb('insert into calendar ("calendar name", "date", "fiscal week start", "fiscal week end", "fiscal day", "fiscal week", "fiscal year", "fiscal year start", "fiscal year end", "fiscal day of week")' + + executeInDb('insert into calendar ("calendar name", "date", "fiscal week start", "fiscal week end", "fiscal day", "fiscal week", "fiscal year", "fiscal year start", "fiscal year end", "fiscal day of week")' + ' values (\'NYC\', \'2015-02-01\', \'2015-02-02\', \'2015-02-06\', 21, 6, 2015, \'2015-01-01\', \'2015-12-31\', 1);', $connection); - executeInDb('insert into calendar ("calendar name", "date", "fiscal week start", "fiscal week end", "fiscal day", "fiscal week", "fiscal year", "fiscal year start", "fiscal year end", "fiscal day of week")' + + executeInDb('insert into calendar ("calendar name", "date", "fiscal week start", "fiscal week end", "fiscal day", "fiscal week", "fiscal year", "fiscal year start", "fiscal year end", "fiscal day of week")' + ' values (\'NYC\', \'2015-02-07\', \'2015-02-09\', \'2015-02-13\', 26, 7, 2015, \'2015-01-01\', \'2015-12-31\', 2);', $connection); - executeInDb('insert into calendar ("calendar name", "date", "fiscal week start", "fiscal week end", "fiscal day", "fiscal week", "fiscal year", "fiscal year start", "fiscal year end", "fiscal day of week")' + + executeInDb('insert into calendar ("calendar name", "date", "fiscal week start", "fiscal week end", "fiscal day", "fiscal week", "fiscal year", "fiscal year start", "fiscal year end", "fiscal day of week")' + ' values (\'NYC\', \'2015-02-08\', \'2015-02-09\', \'2015-02-13\', 26, 7, 2015, \'2015-01-01\', \'2015-12-31\', 2);', $connection); - executeInDb('insert into calendar ("calendar name", "date", "fiscal week start", "fiscal week end", "fiscal day", "fiscal week", "fiscal year", "fiscal year start", "fiscal year end", "fiscal day of week")' + - ' values (\'NYC\', \'2015-02-24\', \'2015-02-23\', \'2015-02-27\', 36, 9, 2015, \'2015-01-01\', \'2015-12-31\', 3);', $connection); - executeInDb('insert into calendar ("calendar name", "date", "fiscal week start", "fiscal week end", "fiscal day", "fiscal week", "fiscal year", "fiscal year start", "fiscal year end", "fiscal day of week")' + - ' values (\'NYC\', \'2015-02-25\', \'2015-02-23\', \'2015-02-27\', 37, 9, 2015, \'2015-01-01\', \'2015-12-31\', 3);', $connection); - + executeInDb('insert into calendar ("calendar name", "date", "fiscal week start", "fiscal week end", "fiscal day", "fiscal week", "fiscal year", "fiscal year start", "fiscal year end", "fiscal day of week")' + + ' values (\'NYC\', \'2015-02-24\', \'2015-02-23\', \'2015-02-27\', 36, 9, 2015, \'2015-01-01\', \'2015-12-31\', 3);', $connection); + executeInDb('insert into calendar ("calendar name", "date", "fiscal week start", "fiscal week end", "fiscal day", "fiscal week", "fiscal year", "fiscal year start", "fiscal year end", "fiscal day of week")' + + ' values (\'NYC\', \'2015-02-25\', \'2015-02-23\', \'2015-02-27\', 37, 9, 2015, \'2015-01-01\', \'2015-12-31\', 3);', $connection); + true; } @@ -633,55 +635,55 @@ Association meta::relational::tests::groupBy::datePeriods::domain::SalesCredits_ Class meta::relational::tests::groupBy::datePeriods::domain::FiscalCalendarDate { date:Date[1]; - + weekStart:Date[1]; weekEnd:Date[1]; - - + + {doc.doc = 'Day number in the fiscal year'} day:Integer[1]; week:Integer[1]; - + dayOfWeekNumber:Integer[1]; - + yearStart: Date[1]; yearEnd: Date[1]; fiscalYear: FiscalYear[1]; - + isYtdAsFloat(reportEndDate: FiscalCalendarDate[1]) { if ($this.isYtd($reportEndDate), | 1.0, | 0.0) }:Float[1]; - - + + isYtd(reportEndDate: FiscalCalendarDate[1]) { $this.day <= $reportEndDate.day }: Boolean[1]; - + isWtd(reportEndDate: FiscalCalendarDate[1]) { $this.week == $reportEndDate.week && ($this.dayOfWeekNumber <= $reportEndDate.dayOfWeekNumber); }: Boolean[1]; - - - + + + isWtd3(reportEndDate: FiscalCalendarDate[1]) { $this.week == $reportEndDate.week && (dayOfWeekNumber($this.date) <= dayOfWeekNumber($reportEndDate.date)); }: Boolean[1]; - + isWtd2(reportEndDate: Date[1]) { - weekOfYear($this.date) == weekOfYear($reportEndDate) && + weekOfYear($this.date) == weekOfYear($reportEndDate) && (dayOfWeekNumber($this.date) <= dayOfWeekNumber($reportEndDate)); }: Boolean[1]; - + isWtdAsFloat(reportEndDate: Date[1]) { if ($this.isWtd2($reportEndDate), | 1.0, | 0.0) }:Float[1]; - + } Class meta::relational::tests::groupBy::datePeriods::domain::FiscalYear @@ -694,25 +696,25 @@ Class meta::relational::tests::groupBy::datePeriods::domain::FiscalYear Database meta::relational::tests::groupBy::datePeriods::store::myDB ( - Table calendar("Previous Fiscal Week Year" INTEGER, "Previous Fiscal Year" INTEGER, "Previous Fiscal Quarter" INTEGER, "Previous Fiscal Month" INTEGER, - "fiscal day next week end" INTEGER, "fiscal day current week end" INTEGER, "fiscal day previous week end" INTEGER, "fiscal days in year" INTEGER, "fiscal days in quarter" INTEGER, "fiscal days in month" INTEGER, "fiscal day of week" INTEGER, "fiscal day of month" INTEGER, "fiscal day of quarter" INTEGER, "fiscal week of quarter" INTEGER, "fiscal month of quarter" INTEGER, "fiscal day since epoch" INTEGER, "fiscal day" INTEGER, "fiscal week" INTEGER, "fiscal quarter" INTEGER, "fiscal month" INTEGER, "fiscal year" INTEGER, - "vlf_batch_id_out" INTEGER, "vlf_batch_id_in" INTEGER, - "previous month true up" DATE, "previous fiscal month end" DATE, "prior date - 12 weeks" DATE, "prior date - 4 weeks" DATE, "adjusted date previous" DATE, "previous business day" DATE, "previous last business day of week" DATE, + Table calendar("Previous Fiscal Week Year" INTEGER, "Previous Fiscal Year" INTEGER, "Previous Fiscal Quarter" INTEGER, "Previous Fiscal Month" INTEGER, + "fiscal day next week end" INTEGER, "fiscal day current week end" INTEGER, "fiscal day previous week end" INTEGER, "fiscal days in year" INTEGER, "fiscal days in quarter" INTEGER, "fiscal days in month" INTEGER, "fiscal day of week" INTEGER, "fiscal day of month" INTEGER, "fiscal day of quarter" INTEGER, "fiscal week of quarter" INTEGER, "fiscal month of quarter" INTEGER, "fiscal day since epoch" INTEGER, "fiscal day" INTEGER, "fiscal week" INTEGER, "fiscal quarter" INTEGER, "fiscal month" INTEGER, "fiscal year" INTEGER, + "vlf_batch_id_out" INTEGER, "vlf_batch_id_in" INTEGER, + "previous month true up" DATE, "previous fiscal month end" DATE, "prior date - 12 weeks" DATE, "prior date - 4 weeks" DATE, "adjusted date previous" DATE, "previous business day" DATE, "previous last business day of week" DATE, "fiscal week end" DATE, "fiscal week start" DATE, "fiscal quarter end" DATE, "fiscal quarter start" DATE, "fiscal month end" DATE, "fiscal month start" DATE, "fiscal year end" DATE, "fiscal year start" DATE, "adjusted date" DATE, "date" DATE PRIMARY KEY, - "vlf_digest" CHAR(32), - "fiscal day name" VARCHAR(16), "fiscal month name" VARCHAR(16), "fiscal year display" VARCHAR(8), "fiscal quarter display" VARCHAR(2), "fiscal month display" VARCHAR(8), "fiscal week display" VARCHAR(2), "fiscal day display" VARCHAR(3), + "vlf_digest" CHAR(32), + "fiscal day name" VARCHAR(16), "fiscal month name" VARCHAR(16), "fiscal year display" VARCHAR(8), "fiscal quarter display" VARCHAR(2), "fiscal month display" VARCHAR(8), "fiscal week display" VARCHAR(2), "fiscal day display" VARCHAR(3), "is holiday" VARCHAR(1), "name of day" VARCHAR(9), "calendar name" VARCHAR(15) PRIMARY KEY, "region" VARCHAR(15)) - + Table INCOME_FUNCTION(code INTEGER PRIMARY KEY, name VARCHAR(30), year INTEGER) - + Table SALES_GCS(key INTEGER PRIMARY KEY, if_code INTEGER, division_id INTEGER, credits DOUBLE, tradeDate DATE) - + Table ORG_CHART_ENTITY(oe_id INTEGER PRIMARY KEY, name VARCHAR(30)) - + Join SALES_GC_TO_IF(SALES_GCS.if_code = INCOME_FUNCTION.code) - + Join SALES_GC_TO_ORG_CHART_ENTITY(SALES_GCS.division_id = ORG_CHART_ENTITY.oe_id) - + Join SALES_GC_CALENDAR(SALES_GCS.tradeDate = calendar."date") ) @@ -728,10 +730,10 @@ Mapping meta::relational::tests::groupBy::datePeriods::mapping::myMapping scope([myDB]calendar) ( date: "date", - + weekStart : "fiscal week start", weekEnd : "fiscal week end", - + day : "fiscal day", week: "fiscal week", dayOfWeekNumber: "fiscal day of week", @@ -741,10 +743,10 @@ Mapping meta::relational::tests::groupBy::datePeriods::mapping::myMapping ( value: "fiscal year" ) - + ) } - + IncomeFunction: Relational { scope([myDB]INCOME_FUNCTION) @@ -755,19 +757,19 @@ Mapping meta::relational::tests::groupBy::datePeriods::mapping::myMapping ), salesCredits: [myDB]@SALES_GC_TO_IF } - + SalesCredit: Relational { scope([myDB]SALES_GCS) ( grossValue: credits ), - + tradeDate: [myDB]@SALES_GC_CALENDAR, incomeFunction: [myDB]@SALES_GC_TO_IF, salesDivision: [myDB]@SALES_GC_TO_ORG_CHART_ENTITY } - + Division:Relational { scope([myDB]ORG_CHART_ENTITY) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testAssociationMixed.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testAssociationMixed.pure index 3f03d294c34..46bd3e8b2f0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testAssociationMixed.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testAssociationMixed.pure @@ -16,6 +16,7 @@ import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; function <> meta::relational::tests::query::association::mixed::testAssociationMixed():Boolean[1] @@ -23,11 +24,11 @@ function <> meta::relational::tests::query::association::mixed::testA let result = execute(|Person.all()->filter(p | $p.firm.employees->exists(e | $e.firstName == 'Oliver')), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values, 2); assertEquals('Oliver,Elena', $result.values.firstName->makeString(',')); - + let result2 = execute(|Person.all()->filter(p | $p.firm.employees->exists(e | $e.firstName == 'Peter')), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result2.values, 6); assertEquals('Anthony, Don, John, John, New, Peter', $result2.values.firstName->sort()->makeString(', ')); - + assertSameSQL('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) left outer join (select distinct "persontable_2".FIRMID from personTable as "persontable_2" where "persontable_2".FIRSTNAME = \'Oliver\') as "persontable_1" on ("firmtable_0".ID = "persontable_1".FIRMID) where "persontable_1".FIRMID is not null', $result); assertSameSQL('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) left outer join (select distinct "persontable_2".FIRMID from personTable as "persontable_2" where "persontable_2".FIRSTNAME = \'Peter\') as "persontable_1" on ("firmtable_0".ID = "persontable_1".FIRMID) where "persontable_1".FIRMID is not null', $result2); } @@ -39,7 +40,7 @@ function <> meta::relational::tests::query::association::mixed::testA assertSize($result.values->removeDuplicates(), 2); assertEquals('Elena,Oliver', $result.values->removeDuplicates().firstName->sort()->makeString(',')); assertSameSQL('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) left outer join (select distinct "persontable_2".FIRMID from personTable as "persontable_2" left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "persontable_2".ADDRESSID) where "addresstable_0".NAME = \'Hong Kong\') as "persontable_1" on ("firmtable_0".ID = "persontable_1".FIRMID) where "persontable_1".FIRMID is not null', $result->sqlRemoveFormatting()); - + let result2 = execute(|Person.all()->filter(p | $p.firm.employees->exists(e | $e.address.name == 'Hoboken')), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result2.values, 6); assertEquals( 'Anthony, Don, John, John, New, Peter', $result2.values.firstName->sort()->makeString(', ')); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testAssociationToMany.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testAssociationToMany.pure index 26041c306cc..cc1fdaa1e86 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testAssociationToMany.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testAssociationToMany.pure @@ -16,6 +16,7 @@ import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; function <> meta::relational::tests::query::association::toMany::testAssociationToMany():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testAssociationToOne.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testAssociationToOne.pure index 822fd542ea5..abb2851150e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testAssociationToOne.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testAssociationToOne.pure @@ -15,6 +15,7 @@ import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; function <> meta::relational::tests::query::association::toOne::testAssociationToOne():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testOpenVariables.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testOpenVariables.pure index 4b24f49dc4f..cba137dbd7d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testOpenVariables.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testOpenVariables.pure @@ -16,6 +16,7 @@ import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; function <> meta::relational::tests::query::openvariables::testGroupOpenVariable():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testQualifier.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testQualifier.pure index ab53c69731d..4e833e71808 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testQualifier.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testQualifier.pure @@ -17,6 +17,7 @@ import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; function <> meta::relational::tests::query::qualifier::testNoParameters():Boolean[1] @@ -91,7 +92,7 @@ function <> meta::relational::tests::query::qualifier::testNonTrivial { let result = execute(|Firm.all()->filter(f| $f.employeeByLastNameFirstName('Johnson') == 'John') , simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - + assertEquals(1, $result.values->size()); assertSameSQL('select "root".ID as "pk_0", "root".LEGALNAME as "legalName" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID and "persontable_0".LASTNAME = \'Johnson\') where "persontable_0".FIRSTNAME = \'John\'', $result); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testView.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testView.pure index a54a34a8ddd..afba89aff93 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testView.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testView.pure @@ -16,10 +16,12 @@ import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::functions::asserts::*; import meta::relational::tests::query::view::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; function <> meta::relational::tests::query::view::testViewAll():Boolean[1] { @@ -38,7 +40,7 @@ function <> meta::relational::tests::query::view::testDistinctOnlyInc { let result = execute(|Person.all()->filter(x|$x.firstName == 'John')->project([x|$x.firstName, x|$x.address.name],['firstName', 'address']), TestViewWithDistinctAndJoins, testRuntime(), meta::relational::extension::relationalExtensions()); assertSameElements('[John, New York]', $result.values.rows->map(r|$r.values->makeString('[',', ',']'))); - assertEquals('select "root".firstName as "firstName", "root".address as "address" from (select distinct "root".FIRSTNAME as firstName, "addresstable_0".NAME as address from personTable as "root" left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "root".ADDRESSID)) as "root" where "root".firstName = \'John\'', $result->sqlRemoveFormatting()); + assertEquals('select "root".firstName as "firstName", "root".address as "address" from (select distinct "root".FIRSTNAME as firstName, "addresstable_0".NAME as address from personTable as "root" left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "root".ADDRESSID)) as "root" where "root".firstName = \'John\'', $result->sqlRemoveFormatting()); } function <> meta::relational::tests::query::view::testViewSimpleFilter():Boolean[1] @@ -77,7 +79,7 @@ function <> meta::relational::tests::query::view:: function <> meta::relational::tests::query::view::testViewSimpleExists():Boolean[1] { - + let result = execute(|Order.all()->filter(o|$o.pnlContact->exists( p| $p.firm.legalName == 'Johnson')), relationalMappingWithViewAndInnerJoin, testRuntime(), meta::relational::extension::relationalExtensions(),debug()); assertSameSQL('select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".orderDate as "date", "root".settlementDateTime as "settlementDateTime" from orderTable as "root" left outer join (select distinct "salespersontable_1".ACCOUNT_ID from (select "salespersontable_1".ACCOUNT_ID as ACCOUNT_ID, "personfirmview_0".firm_name as firm_name from salesPersonTable as "salespersontable_1" inner join (select "root".ID as PERSON_ID, "root".LASTNAME as lastName, "firmtable_0".LEGALNAME as firm_name from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID)) as "personfirmview_0" on ("salespersontable_1".PERSON_ID = "personfirmview_0".PERSON_ID)) as "salespersontable_1" where "salespersontable_1".firm_name = \'Johnson\') as "salespersontable_0" on ("root".accountID = "salespersontable_0".ACCOUNT_ID) where "salespersontable_0".ACCOUNT_ID is not null', $result); } @@ -94,6 +96,7 @@ function <> meta::relational::tests::query::view::testViewPropertyFil ###Mapping import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; Mapping meta::relational::tests::query::view::relationalMappingWithViewAndInnerJoin ( diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testWithEval.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testWithEval.pure index 7677291488d..da91d006634 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testWithEval.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testWithEval.pure @@ -15,6 +15,7 @@ import meta::relational::mapping::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; function <> meta::relational::tests::query::eval::testAssociationToOneThroughEval():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testWithFunction.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testWithFunction.pure index 5f5044a308d..33a879f700d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testWithFunction.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/query/testWithFunction.pure @@ -15,9 +15,11 @@ import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::functions::asserts::*; import meta::relational::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::relational::functions::sqlstring::*; @@ -53,11 +55,11 @@ function <> meta::relational::tests::query::function::testFilterUsing assertSize($result.values, 11); assertSameElements(['Allen', 'Firm B', 'Harris', 'Hill', 'Hill', 'Johnson', 'New York', 'Roberts', 'Smith', 'Smith', 'York'], $result.values.lastName); assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) where "firmtable_0".LEGALNAME like \'Fir%\'', $result->sqlRemoveFormatting()); - + let result_escape= execute(|Person.all()->filter({p | ($p.firm->toOne().legalName->startsWith('\\%'))}), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSize($result_escape.values, 0); + assertSize($result_escape.values, 0); assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) where "firmtable_0".LEGALNAME like \'\\\\%%\'', $result_escape->sqlRemoveFormatting()); - + } function <> meta::relational::tests::query::function::testFilterUsingIsAlphaNumericFunction():Boolean[1] @@ -136,7 +138,7 @@ function <> meta::relational::tests::query::function::testFilterUsing assertSize($result.values, 6); assertSameElements(['Allen', 'Smith', 'Johnson', 'New York', 'Hill', 'York'], $result.values.lastName); assertSameSQL('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) where "firmtable_0".LEGALNAME like \'%X%\'', $result->sqlRemoveFormatting()); - + let result_escape = execute(|Person.all()->filter({p | ($p.firm->toOne().legalName->contains('\\%BoA'))}), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result_escape.values, 0); assertSameSQL('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) where "firmtable_0".LEGALNAME like \'%\\\\%BoA%\'', $result_escape->sqlRemoveFormatting()); @@ -148,7 +150,7 @@ function <> meta::relational::tests::query::function::testFilterUsing assertSize($result.values, 6); assertSameElements(['Allen', 'Smith', 'Johnson', 'New York', 'Hill', 'York'], $result.values.lastName); assertSameSQL('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) where "firmtable_0".LEGALNAME like \'%X\'', $result->sqlRemoveFormatting()); - + let result_escape = execute(|Person.all()->filter({p | ($p.firm->toOne().legalName->endsWith('\\%'))}), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result_escape.values, 0); assertSameSQL('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) where "firmtable_0".LEGALNAME like \'%\\\\%\'', $result_escape->sqlRemoveFormatting()); @@ -181,12 +183,12 @@ function <> meta::relational::tests::query::function::testFilterUsing // Alloy exclusion reason: 5. Should recurse in system functions function <> meta::relational::tests::query::function::dates::testMostRecentDayOfWeek():Boolean[1] { - + let fn = {| let startDate = mostRecentDayOfWeek(DayOfWeek.Monday); Trade.all()->filter(d | $d.date == $startDate); }; - + let result = execute($fn,simpleRelationalMapping,testRuntime(), meta::relational::extension::relationalExtensions()); assert($result->sqlRemoveFormatting(0)->startsWith('select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where "root".tradeDate =')); } @@ -218,7 +220,7 @@ function <> meta::relational::tests::query::function::testFilterUsing let result = execute(|Person.all()->filter({p|$p.lastName->toLower() =='harris'}), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSize($result.values,1); assertSameElements(['Harris'], $result.values.lastName); - assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" where lower("root".LASTNAME) = \'harris\'', $result->sqlRemoveFormatting()); + assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" where lower("root".LASTNAME) = \'harris\'', $result->sqlRemoveFormatting()); } function <> meta::relational::tests::query::function::toString::testFilterUsingToStringFunction():Boolean[1] @@ -434,10 +436,10 @@ function <> meta::relational::tests::query::function::testFilterTimes { let result = execute(|Person.all()->project([p| $p.lastName, p|$p.age->toOne() * 2 * $p.firm->toOne().sumEmployeesAge() ],['name','ages']), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSameSQL('select "root".LASTNAME as "name", ("root".AGE * 2 * "firmtable_1".aggCol) as "ages" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) left outer join (select "firmtable_2".ID as ID, sum("persontable_1".AGE) as aggCol from firmTable as "firmtable_2" left outer join personTable as "persontable_1" on ("firmtable_2".ID = "persontable_1".FIRMID) group by "firmtable_2".ID) as "firmtable_1" on ("firmtable_0".ID = "firmtable_1".ID)', $result); - + let result2= execute(|Person.all()->project([p| $p.lastName,p | times([$p.age->toOne() , 2 , $p.firm->toOne().sumEmployeesAge(), 100]) ],['name','ages']), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSameSQL('select "root".LASTNAME as "name", ("root".AGE * 2 * "firmtable_1".aggCol * 100) as "ages" from personTable as "root" left outer join firmTable as "firmtable_0" on ("firmtable_0".ID = "root".FIRMID) left outer join (select "firmtable_2".ID as ID, sum("persontable_1".AGE) as aggCol from firmTable as "firmtable_2" left outer join personTable as "persontable_1" on ("firmtable_2".ID = "persontable_1".FIRMID) group by "firmtable_2".ID) as "firmtable_1" on ("firmtable_0".ID = "firmtable_1".ID)', $result2); - + } @@ -446,9 +448,9 @@ function <> meta::relational::tests::query::function::testFilterUsing let result = execute(|Trade.all()->filter(t | $t.date->quarterNumber() == 4), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); assertSameElements([1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11], $result.values.id->sort()); assertSameSQL('select "root".ID as "pk_0", "root".ID as "id", "root".quantity as "quantity", "root".tradeDate as "date", "root".settlementDateTime as "settlementDateTime", "tradeeventviewmaxtradeeventdate_0".maxTradeEventDate as "latestEventDate" from tradeTable as "root" left outer join (select "root".trade_id as trade_id, max("root".eventDate) as maxTradeEventDate from tradeEventTable as "root" group by "root".trade_id) as "tradeeventviewmaxtradeeventdate_0" on ("root".ID = "tradeeventviewmaxtradeeventdate_0".trade_id) where quarter("root".tradeDate) = 4', $result); - + let result2 = execute(|Trade.all()->filter(t | $t.date->quarterNumber() == 2), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); - assertSameElements([], $result2.values.id->sort()); + assertSameElements([], $result2.values.id->sort()); } function <> meta::relational::tests::query::function::distinct::testCollectionDistinctFunction():Boolean[1] diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/relationalSetUp.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/relationalSetUp.pure index 12029641f6c..97bca3c8c21 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/relationalSetUp.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/relationalSetUp.pure @@ -310,6 +310,7 @@ Database meta::relational::tests::caseSensitiveTableNames ###Mapping import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; Mapping meta::relational::tests::caseSentitiveMapping ( Firm: Relational @@ -361,6 +362,7 @@ Mapping meta::relational::tests::MappingWithInnerJoinAndEmbeddedMappingSub ###Mapping import meta::relational::tests::model::simple::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; Mapping meta::relational::tests::simpleRelationalMappingWithChainedUnions ( @@ -541,7 +543,7 @@ Mapping meta::relational::tests::simpleRelationalMappingInc CITY: 1 } - ValidPerson : Relational + ValidPerson : Relational { scope([dbInc]) ( @@ -549,7 +551,7 @@ Mapping meta::relational::tests::simpleRelationalMappingInc age : validPersonTable.AGE ) } - + Person : Relational { //~primaryKey([dbInc]default.personTable.ID, [dbInc]default.personTable.FIRSTNAME) @@ -1036,6 +1038,7 @@ Mapping meta::relational::tests::TestViewWithDistinctAndJoins ###Mapping import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; Mapping meta::relational::tests::PersonOtherNamesMapping @@ -1055,44 +1058,48 @@ import meta::relational::metamodel::*; import meta::json::*; import meta::json::tests::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::pure::profiles::*; import meta::relational::metamodel::execute::*; +import meta::core::runtime::*; import meta::pure::runtime::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; -function meta::relational::tests::testRuntime():Runtime[1] +function meta::external::store::relational::tests::testRuntime():Runtime[1] { - testRuntime(db); + meta::external::store::relational::tests::testRuntime(db); } -function meta::relational::tests::testRuntimeForBQ():Runtime[1] +function meta::external::store::relational::tests::testRuntimeForBQ():Runtime[1] { - testRuntime(dbForBQ); + meta::external::store::relational::tests::testRuntime(dbForBQ); } -function meta::relational::tests::testRuntime(timeZone:String[1]):Runtime[1] +function meta::external::store::relational::tests::testRuntime(timeZone:String[1]):Runtime[1] { - testRuntime(testDatabaseConnection(db, $timeZone)) + meta::external::store::relational::tests::testRuntime(testDatabaseConnection(db, $timeZone)) } -function meta::relational::tests::testRuntime(db:Database[1]):Runtime[1] +function meta::external::store::relational::tests::testRuntime(db:Database[1]):Runtime[1] { - testRuntime(testDatabaseConnection($db, [])) + meta::external::store::relational::tests::testRuntime(testDatabaseConnection($db, [])) } -function <> meta::relational::tests::testRuntime(testConnection:TestDatabaseConnection[1]):Runtime[1] +function meta::external::store::relational::tests::testRuntime(testConnection:ConnectionStore[1]):Runtime[1] { - ^Runtime(connections = $testConnection) + ^Runtime(connectionStores= $testConnection) } -function <> meta::relational::tests::testDatabaseConnection(db:Database[1], timeZone:String[0..1]):TestDatabaseConnection[1] +function meta::external::store::relational::tests::testDatabaseConnection(db:Database[1], timeZone:String[0..1]):ConnectionStore[1] { - ^TestDatabaseConnection( - element = $db, + ^ConnectionStore( + connection=^TestDatabaseConnection( type = DatabaseType.H2, timeZone = if($timeZone->isEmpty(), |'GMT', |$timeZone) - ); + ), + element = $db); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/shared.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/shared.pure index fc6c7e4742f..04b56c5cd39 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/shared.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/shared.pure @@ -13,23 +13,26 @@ // limitations under the License. import meta::relational::transform::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::metamodel::execute::*; import meta::relational::functions::toDDL::*; import meta::pure::mapping::modelToModel::test::shared::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; -function meta::pure::mapping::modelToModel::test::shared::getConnection():Connection[1] +function meta::pure::mapping::modelToModel::test::shared::getConnection():ConnectionStore[1] { - ^TestDatabaseConnection( - element = relationalDB, + ^ConnectionStore( + element = relationalDB, + connection=^TestDatabaseConnection( type=DatabaseType.H2 - ) + )); } function meta::pure::mapping::modelToModel::test::shared::initData():Boolean[1] { - let connection = getConnection()->cast(@DatabaseConnection); + let connection = getConnection().connection->cast(@DatabaseConnection); dropAndCreateTableInDb(relationalDB, 'default', 'SPerson', $connection); dropAndCreateTableInDb(relationalDB, 'default', 'Person', $connection); dropAndCreateTableInDb(relationalDB, 'default', 'Firm', $connection); @@ -124,7 +127,7 @@ Mapping meta::pure::mapping::modelToModel::test::shared::relationalMapping Address : Relational { street : [relationalDB]Address.street - } + } ) @@ -152,17 +155,17 @@ Database meta::relational::transform::toPure::tests::SimpleDb1 firstName VARCHAR(200), last_name VARCHAR(200), a VARCHAR(2), - B VARCHAR(2), - is_valid BIT, + B VARCHAR(2), + is_valid BIT, is_valid_not_nullable BIT NOT NULL ) - + Table FirmTable( - ID INT PRIMARY KEY, + ID INT PRIMARY KEY, LEGALNAME VARCHAR(200) NOT NULL, ALTERNATIVE_NAME VARCHAR(200) ) - + Table Others( ID INT PRIMARY KEY, NAME VARCHAR(200) NOT NULL @@ -221,4 +224,4 @@ Mapping meta::relational::transform::toPure::tests::SimpleDb1Mapping isValid : case(isNull([meta::relational::transform::toPure::tests::SimpleDb1]personTable.is_valid),sqlNull(),case(equal([meta::relational::transform::toPure::tests::SimpleDb1]personTable.is_valid,1),sqlTrue(),sqlFalse())), isValidNotNullable : case(equal([meta::relational::transform::toPure::tests::SimpleDb1]personTable.is_valid_not_nullable,1),sqlTrue(),sqlFalse()) } -) \ No newline at end of file +) 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 6244fa06434..e3c3e81bbab 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 @@ -12,10 +12,16 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::core::runtime::*; +import meta::relational::metamodel::execute::tests::*; +import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::relational::translation::*; import meta::pure::extension::*; import meta::relational::extension::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::csv::*; import meta::relational::metamodel::execute::*; @@ -26,11 +32,11 @@ import meta::pure::mapping::*; function <> meta::relational::metamodel::execute::tests::testExecuteInDbToTDS() : Boolean[1] { let result = meta::relational::metamodel::execute::executeInDbToTDS('select 1 as "Count"', {|createTestDatabaseConnection()}); - + assertEquals(1, $result.rows->at(0).get('Count')); - + assertEquals('Count\n1\n', $result->toCSV()); - + true; } @@ -41,7 +47,7 @@ function <> meta::relational::tests::typeInference::testTranslateDbTy a: meta::relational::metamodel::datatype::DataType[1]| [] ])}; let dType = translateCoreTypeToDbSpecificType(^meta::relational::metamodel::datatype::Varchar(size = 100), ^TranslationContext(coreTypeToDbSpecificSqlTranslator=$translator)); - + assertEquals('STRING(100)', $dType->toOne()->meta::relational::metamodel::datatype::dataTypeToSqlText()); } @@ -106,11 +112,11 @@ function <> meta::relational::tests::typeInference::testDynaCaseWithD let mapping = meta::relational::tests::runtime::typeInference::DecimalCompatibilityMapping1 ->rootClassMappingByClass(meta::relational::tests::runtime::typeInference::DecimalCompatibilityModel)->toOne() ->cast(@meta::relational::mapping::RootRelationalInstanceSetImplementation); - + let intPropDType = $mapping->propertyMappingsByPropertyName('intProp') ->cast(@meta::relational::mapping::RelationalPropertyMapping).relationalOperationElement->toOne() ->meta::relational::functions::typeInference::inferRelationalType()->toOne(); - + assertEquals('DECIMAL(3, 0)', $intPropDType->meta::relational::metamodel::datatype::dataTypeToSqlText()); } @@ -119,7 +125,7 @@ function <> meta::relational::tests::typeInference::testDynaCaseWithD let mapping = meta::relational::tests::runtime::typeInference::DecimalCompatibilityMapping1 ->rootClassMappingByClass(meta::relational::tests::runtime::typeInference::DecimalCompatibilityModel)->toOne() ->cast(@meta::relational::mapping::RootRelationalInstanceSetImplementation); - + let floatPropDType = $mapping->propertyMappingsByPropertyName('floatProp') ->cast(@meta::relational::mapping::RelationalPropertyMapping).relationalOperationElement->toOne() ->meta::relational::functions::typeInference::inferRelationalType()->toOne(); @@ -132,12 +138,12 @@ function <> meta::relational::tests::typeInference::testDynaCaseWithD let mapping = meta::relational::tests::runtime::typeInference::DecimalCompatibilityMapping1 ->rootClassMappingByClass(meta::relational::tests::runtime::typeInference::DecimalCompatibilityModel)->toOne() ->cast(@meta::relational::mapping::RootRelationalInstanceSetImplementation); - + let numericPropDType = $mapping->propertyMappingsByPropertyName('numericProp') ->cast(@meta::relational::mapping::RelationalPropertyMapping).relationalOperationElement->toOne() - ->meta::relational::functions::typeInference::inferRelationalType()->toOne(); + ->meta::relational::functions::typeInference::inferRelationalType()->toOne(); - assertEquals('DECIMAL(7, 4)', $numericPropDType->meta::relational::metamodel::datatype::dataTypeToSqlText()); + assertEquals('DECIMAL(7, 4)', $numericPropDType->meta::relational::metamodel::datatype::dataTypeToSqlText()); } function <> meta::relational::tests::typeInference::testDynaComplexInference1():Boolean[1] @@ -185,7 +191,7 @@ function <> meta::relational::tests::typeInference::testSQLNullWithin { let dType1 = ^meta::relational::metamodel::DynaFunction(name = 'case', parameters = [^meta::relational::metamodel::Literal(value = true), ^meta::relational::metamodel::Literal(value = 'str'), ^meta::relational::metamodel::DynaFunction(name = 'sqlNull')])->meta::relational::functions::typeInference::inferRelationalType()->toOne(); assertEquals('VARCHAR(3)', $dType1->meta::relational::metamodel::datatype::dataTypeToSqlText()); - + let dType2 = ^meta::relational::metamodel::DynaFunction(name = 'case', parameters = [^meta::relational::metamodel::Literal(value = true), ^meta::relational::metamodel::Literal(value = 'str'), ^meta::relational::metamodel::Literal(value = true), ^meta::relational::metamodel::Literal(value = 'str2'), ^meta::relational::metamodel::DynaFunction(name = 'sqlNull')])->meta::relational::functions::typeInference::inferRelationalType()->toOne(); assertEquals('VARCHAR(4)', $dType2->meta::relational::metamodel::datatype::dataTypeToSqlText()); } @@ -194,7 +200,7 @@ function <> meta::relational::tests::typeInference::testNotTypeInfere { let dType1 = ^meta::relational::metamodel::DynaFunction(name = 'not', parameters = [^meta::relational::metamodel::DynaFunction(name = 'equal', parameters = [^meta::relational::metamodel::Literal(value = 1), ^meta::relational::metamodel::Literal(value = 2)])])->meta::relational::functions::typeInference::inferRelationalType()->toOne(); assertEquals('BIT', $dType1->meta::relational::metamodel::datatype::dataTypeToSqlText()); - + let dType2 = ^meta::relational::metamodel::DynaFunction(name = 'not', parameters = [^meta::relational::metamodel::DynaFunction(name = 'in', parameters = [^meta::relational::metamodel::Literal(value = 1), ^meta::relational::metamodel::LiteralList(values = [^meta::relational::metamodel::Literal(value = 2), ^meta::relational::metamodel::Literal(value = 3)])])])->meta::relational::functions::typeInference::inferRelationalType()->toOne(); assertEquals('BIT', $dType2->meta::relational::metamodel::datatype::dataTypeToSqlText()); } @@ -202,7 +208,7 @@ function <> meta::relational::tests::typeInference::testNotTypeInfere function <> meta::relational::tests::typeInference::testJoinStringsTypeInference():Boolean[1] { let dType = ^meta::relational::metamodel::DynaFunction( - name = 'joinStrings', + name = 'joinStrings', parameters = [ meta::relational::tests::simpleRelationalMapping->rootClassMappingByClass(meta::relational::tests::model::simple::Person)->cast(@meta::relational::mapping::RootRelationalInstanceSetImplementation)->map(x|$x->propertyMappingsByPropertyName('firstName'))->cast(@meta::relational::mapping::RelationalPropertyMapping).relationalOperationElement->toOne(), ^meta::relational::metamodel::Literal(value = ',') @@ -270,16 +276,17 @@ Mapping meta::relational::tests::runtime::typeInference::DecimalCompatibilityMap ( meta::relational::tests::runtime::typeInference::DecimalCompatibilityModel : Relational { intProp: case(isNotNull([meta::relational::tests::runtime::typeInference::DecimalCompatibilityDB]DecimalCompatibilityTable.prop1), - [meta::relational::tests::runtime::typeInference::DecimalCompatibilityDB]DecimalCompatibilityTable.prop1, + [meta::relational::tests::runtime::typeInference::DecimalCompatibilityDB]DecimalCompatibilityTable.prop1, [meta::relational::tests::runtime::typeInference::DecimalCompatibilityDB]DecimalCompatibilityTable.prop4 ), floatProp: case(isNotNull([meta::relational::tests::runtime::typeInference::DecimalCompatibilityDB]DecimalCompatibilityTable.prop2), - [meta::relational::tests::runtime::typeInference::DecimalCompatibilityDB]DecimalCompatibilityTable.prop2, + [meta::relational::tests::runtime::typeInference::DecimalCompatibilityDB]DecimalCompatibilityTable.prop2, [meta::relational::tests::runtime::typeInference::DecimalCompatibilityDB]DecimalCompatibilityTable.prop5 ), numericProp: case(isNotNull([meta::relational::tests::runtime::typeInference::DecimalCompatibilityDB]DecimalCompatibilityTable.prop2), - [meta::relational::tests::runtime::typeInference::DecimalCompatibilityDB]DecimalCompatibilityTable.prop2, + [meta::relational::tests::runtime::typeInference::DecimalCompatibilityDB]DecimalCompatibilityTable.prop2, [meta::relational::tests::runtime::typeInference::DecimalCompatibilityDB]DecimalCompatibilityTable.prop3 ) } -) \ No newline at end of file +) + diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/transform/fromPure/tests/testToSQLString.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/transform/fromPure/tests/testToSQLString.pure index d34d7f081bb..206c5d6db81 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/transform/fromPure/tests/testToSQLString.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/transform/fromPure/tests/testToSQLString.pure @@ -19,9 +19,11 @@ import meta::pure::mapping::*; import meta::relational::functions::asserts::*; import meta::relational::mapping::*; import meta::relational::tests::*; +import meta::external::store::relational::tests::*; import meta::relational::tests::model::simple::*; import meta::pure::profiles::*; import meta::relational::functions::sqlstring::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; @@ -33,7 +35,7 @@ Class meta::relational::tests::functions::sqlstring::TestCase dbType: DatabaseType[1]; expectedSql: String[1]; generateUsageFor: Function[*]; - + } function meta::relational::tests::functions::sqlstring::testCasesForDocGeneration():TestCase[*] @@ -47,7 +49,7 @@ function meta::relational::tests::functions::sqlstring::testCasesForDocGeneratio expectedSql = 'select "root".FIRSTNAME as "firstName", count(*) as "new" from personTable as "root" group by "firstName"', generateUsageFor = [meta::pure::tds::groupBy_TabularDataSet_1__String_MANY__AggregateValue_MANY__TabularDataSet_1_] ), - + ^TestCase( id ='testToSQLStringWithAbs_2', query = |Person.all()->project(p|$p.firstName,'firstName')->groupBy('firstName', agg('new', e|$e, y| abs($y->count()))), @@ -64,7 +66,7 @@ function meta::relational::tests::functions::sqlstring::runTestCaseById(testCase let filtered = meta::relational::tests::functions::sqlstring::testCasesForDocGeneration()->filter(c|$c.id==$testCaseId); assert($filtered->size()==1, 'Number of test cases found is not 1.'); let testCase = $filtered->toOne(); - + let result = toSQLString($testCase.query, $testCase.mapping, $testCase.dbType, meta::relational::extension::relationalExtensions()); assertEquals($testCase.expectedSql, $result, '\nSQL not as expected for \'%s\'\n\nexpected: %s\nactual: %s', [$testCase.id, $testCase.expectedSql, $result]); } @@ -94,41 +96,41 @@ function <> meta::relational::tests::functions::sqlstring::testToSQLS function <> meta::relational::tests::functions::sqlstring::testToSQLStringWithAggregationDB2():Boolean[1] { - let s = toSQLString(|Person.all()->groupBy([p:Person[1]|$p.firstName], + let s = toSQLString(|Person.all()->groupBy([p:Person[1]|$p.firstName], agg(e|$e.age, y|$y->sum()), - ['firstName', 'age']), - meta::relational::tests::simpleRelationalMapping, + ['firstName', 'age']), + meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.DB2, meta::relational::extension::relationalExtensions()); assertEquals('select "root".FIRSTNAME as "firstName", sum("root".AGE) as "age" from personTable as "root" group by "root".FIRSTNAME', $s); } function <> meta::relational::tests::functions::sqlstring::testToSQLStringWithRelativeDateDB2():Boolean[1] { - let s1 = toSQLString(|Trade.all()->filter(t|$t.settlementDateTime > today()->adjust(-1, DurationUnit.MONTHS))->project([t| $t.id, t| $t.settlementDateTime] ,['id', 'settlementDateTime']), - meta::relational::tests::simpleRelationalMapping, + let s1 = toSQLString(|Trade.all()->filter(t|$t.settlementDateTime > today()->adjust(-1, DurationUnit.MONTHS))->project([t| $t.id, t| $t.settlementDateTime] ,['id', 'settlementDateTime']), + meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.DB2, meta::relational::extension::relationalExtensions()); - + assertEquals('select "root".ID as "id", "root".settlementDateTime as "settlementDateTime" from tradeTable as "root" where ("root".settlementDateTime is not null and "root".settlementDateTime > date(current date) - 1 MONTHS)', $s1); - let s2 = toSQLString(|Trade.all()->filter(t|$t.settlementDateTime > today()->adjust(-3, DurationUnit.DAYS))->project([t| $t.id, t| $t.settlementDateTime] ,['id', 'settlementDateTime']), - meta::relational::tests::simpleRelationalMapping, + let s2 = toSQLString(|Trade.all()->filter(t|$t.settlementDateTime > today()->adjust(-3, DurationUnit.DAYS))->project([t| $t.id, t| $t.settlementDateTime] ,['id', 'settlementDateTime']), + meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.DB2, meta::relational::extension::relationalExtensions()); - + assertEquals('select "root".ID as "id", "root".settlementDateTime as "settlementDateTime" from tradeTable as "root" where ("root".settlementDateTime is not null and "root".settlementDateTime > date(current date) - 3 DAYS)', $s2); - let s3 = toSQLString(|Trade.all()->filter(t|$t.settlementDateTime > today()->adjust(-2, DurationUnit.WEEKS))->project([t| $t.id, t| $t.settlementDateTime] ,['id', 'settlementDateTime']), - meta::relational::tests::simpleRelationalMapping, + let s3 = toSQLString(|Trade.all()->filter(t|$t.settlementDateTime > today()->adjust(-2, DurationUnit.WEEKS))->project([t| $t.id, t| $t.settlementDateTime] ,['id', 'settlementDateTime']), + meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.DB2, meta::relational::extension::relationalExtensions()); - + assertEquals('select "root".ID as "id", "root".settlementDateTime as "settlementDateTime" from tradeTable as "root" where ("root".settlementDateTime is not null and "root".settlementDateTime > date(current date) - 14 DAYS)', $s3); - + } function <> meta::relational::tests::functions::sqlstring::testToSQLStringWithAbs():Boolean[1] { let s = toSQLString(|Trade.all()->project([t| abs($t.quantity), a| abs(-2)] ,['absoluteQuantity', 'positiveTwo']), meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.H2, meta::relational::extension::relationalExtensions()); assertEquals('select abs("root".quantity) as "absoluteQuantity", abs(-2) as "positiveTwo" from tradeTable as "root"', $s); - + meta::relational::tests::functions::sqlstring::runTestCaseById('testToSQLStringWithAbs_2'); } @@ -138,7 +140,7 @@ function <> meta::relational::tests::functions::sqlstring::testToSQLS agg(x|$x.employees.firstName,y|$y->joinStrings('*')), ['legalName', 'employeesFirstName'] )}; - + let h2Sql = toSQLString($fn, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.H2, meta::relational::extension::relationalExtensions()); assertEquals('select "root".LEGALNAME as "legalName", group_concat("personTable_d#4_d_m1".FIRSTNAME separator \'*\') as "employeesFirstName" from firmTable as "root" left outer join personTable as "personTable_d#4_d_m1" on ("root".ID = "personTable_d#4_d_m1".FIRMID) group by "legalName"', $h2Sql); } @@ -146,7 +148,7 @@ function <> meta::relational::tests::functions::sqlstring::testToSQLS function <> meta::relational::tests::functions::sqlstring::testToSQLStringJoinStringsSimpleConcat():Boolean[1] { let fn = {|Person.all()->project([p | $p.firstName + '_' + $p.lastName], ['firstName_lastName'])}; - + let h2Sql = toSQLString($fn, meta::relational::tests::simpleRelationalMapping, meta::relational::runtime::DatabaseType.H2, meta::relational::extension::relationalExtensions()); assertEquals('select concat("root".FIRSTNAME, \'_\', "root".LASTNAME) as "firstName_lastName" from personTable as "root"', $h2Sql); @@ -194,7 +196,7 @@ function <> meta::relational::tests::functions::sqlstring::testToSQLS let s = toSQLString(|Person.all()->project(p|length($p.firstName), 'nameLength'), simpleRelationalMapping, $db, meta::relational::extension::relationalExtensions()); assertEquals('select char_length("root".FIRSTNAME) as "nameLength" from personTable as "root"', $s); ); - + let db2sql = toSQLString(|Person.all()->project(p|length($p.firstName), 'nameLength'), simpleRelationalMapping, DatabaseType.DB2, meta::relational::extension::relationalExtensions()); assertEquals('select CHARACTER_LENGTH("root".FIRSTNAME,CODEUNITS32) as "nameLength" from personTable as "root"', $db2sql); } @@ -357,15 +359,15 @@ function <> meta::relational::tests::functions::sqlstring::testDayOfY pair(DatabaseType.H2, 'select DAY_OF_YEAR("root".tradeDate) as "doy" from tradeTable as "root"'), pair(DatabaseType.DB2, 'select dayofyear("root".tradeDate) as "doy" from tradeTable as "root"') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all() ->project(col(t|$t.date->dayOfYear(), 'doy')), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); @@ -381,11 +383,11 @@ function <> meta::relational::tests::functions::sqlstring::testTrim() pair(DatabaseType.H2, $common), pair(DatabaseType.Composite, $common) ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Person.all()->project([ a | $a.firstName->ltrim(), @@ -393,7 +395,7 @@ function <> meta::relational::tests::functions::sqlstring::testTrim() a | $a.firstName->rtrim() ], ['ltrim', 'trim', 'rtrim']), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); @@ -409,17 +411,17 @@ function <> meta::relational::tests::functions::sqlstring::testCbrt() pair(DatabaseType.H2, $common), pair(DatabaseType.Composite, $common) ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all()->project([ a | $a.quantity->cbrt() ], ['cbrt']), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); @@ -430,8 +432,8 @@ function <> meta::relational::tests::functions::sqlstring::testSqlGen { let result = toSQLString(|Person.all()->project([ a | adjust(%2011-12-30, 86400, DurationUnit.SECONDS) - ], - ['a']), + ], + ['a']), simpleRelationalMapping, DatabaseType.H2, meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( 'select dateadd(SECOND, 86400, \'2011-12-30\') as "a" from personTable as "root"', @@ -444,8 +446,8 @@ function <> meta::relational::tests::functions::sqlstring::testSqlGen { let result = toSQLString(|Trade.all()->filter(it| adjust(%2011-12-30, 86400, DurationUnit.SECONDS) > %2011-12-30)->project([ a | 'a' - ], - ['a']), + ], + ['a']), simpleRelationalMapping, DatabaseType.H2, meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( 'select \'a\' as "a" from tradeTable as "root" where dateadd(SECOND, 86400, \'2011-12-30\') > \'2011-12-30\'', @@ -471,15 +473,15 @@ function <> meta::relational::tests::functions::sqlstring::testToSqlG pair(DatabaseType.H2, 'select dateadd(DAY, -(dayofmonth("root".tradeDate) - 1), "root".tradeDate) as "date" from tradeTable as "root"'), pair(DatabaseType.DB2, 'select date(1) + (year("root".tradeDate)-1) YEARS + (month("root".tradeDate)-1) MONTHS as "date" from tradeTable as "root"') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all() ->project(col(t|$t.date->firstDayOfMonth(), 'date')), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); @@ -492,17 +494,17 @@ function <> meta::relational::tests::functions::sqlstring::testToSqlG pair(DatabaseType.H2, 'select dateadd(DAY, -(dayofyear("root".tradeDate) - 1), "root".tradeDate) as "date" from tradeTable as "root"'), pair(DatabaseType.DB2, 'select date(1) + (year("root".tradeDate)-1) YEARS as "date" from tradeTable as "root"') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all() ->project(col(t|$t.date->firstDayOfYear(), 'date')), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); - + assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); )->distinct() == [true]; } @@ -513,17 +515,17 @@ function <> meta::relational::tests::functions::sqlstring::testToSqlG pair(DatabaseType.H2, 'select dateadd(DAY, -(dayofyear(current_date()) - 1), current_date()) as "date" from tradeTable as "root"'), pair(DatabaseType.DB2, 'select date(1) + (year(current date)-1) YEARS as "date" from tradeTable as "root"') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all() ->project(col(t|firstDayOfThisYear(), 'date')), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); - + assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); )->distinct() == [true]; } @@ -533,11 +535,11 @@ function meta::relational::tests::functions::sqlstring::testToSqlGenerationFirst let result = toSQLString( |Trade.all() ->project(col(t|$t.date->firstDayOfQuarter(), 'date')), - simpleRelationalMapping, + simpleRelationalMapping, $databaseType, meta::relational::extension::relationalExtensions()); assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$databaseType, $expectedSql, $result]); - + } function <> meta::relational::tests::functions::sqlstring::testToSqlGenerationFirstDayOfQuarter_H2():Boolean[1] @@ -555,17 +557,17 @@ function <> meta::relational::tests::functions::sqlstring::testToSqlG let expected = [ pair(DatabaseType.H2, 'select dateadd(DAY, -(mod(dayofweek("root".tradeDate)+5, 7)), "root".tradeDate) as "date" from tradeTable as "root"') ]; - + $expected->map(p| let driver = $p.first; let expectedSql = $p.second; - + let result = toSQLString( |Trade.all() ->project(col(t|$t.date->firstDayOfWeek(), 'date')), - simpleRelationalMapping, + simpleRelationalMapping, $driver, meta::relational::extension::relationalExtensions()); - + assertEquals($expectedSql, $result, '\nSQL not as expected for %s\n\nexpected: %s\nactual: %s', [$driver, $expectedSql, $result]); )->distinct() == [true]; } @@ -663,8 +665,8 @@ function <> meta::relational::tests::functions::sqlst ]) , simpleRelationalMapping, DatabaseType.H2, meta::relational::extension::relationalExtensions()); - assertEquals('select rawtohex(hash(\'MD5\', "root".FIRSTNAME)) as "tds_md5", rawtohex(hash(\'SHA-1\', "root".FIRSTNAME)) as "tds_sha1", rawtohex(hash(\'SHA-256\', "root".FIRSTNAME)) as "tds_sha256", ' - + 'rawtohex(hash(\'MD5\', concat("root".FIRSTNAME, "root".LASTNAME))) as "tds_concat_md5", rawtohex(hash(\'MD5\', concat("root".FIRSTNAME, "root".LASTNAME, \'\', \'\', \'\'))) as "tds_joinstrings_md5", ' + assertEquals('select rawtohex(hash(\'MD5\', "root".FIRSTNAME)) as "tds_md5", rawtohex(hash(\'SHA-1\', "root".FIRSTNAME)) as "tds_sha1", rawtohex(hash(\'SHA-256\', "root".FIRSTNAME)) as "tds_sha256", ' + + 'rawtohex(hash(\'MD5\', concat("root".FIRSTNAME, "root".LASTNAME))) as "tds_concat_md5", rawtohex(hash(\'MD5\', concat("root".FIRSTNAME, "root".LASTNAME, \'\', \'\', \'\'))) as "tds_joinstrings_md5", ' + 'rawtohex(hash(\'MD5\', concat("root".FIRSTNAME, "root".LASTNAME, \'|\'))) as "tds_digest" from personTable as "root"', $result); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/transform/fromPure/toSQLString.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/transform/fromPure/toSQLString.pure index b04f1909fe1..333ee2ed153 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/transform/fromPure/toSQLString.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/transform/fromPure/toSQLString.pure @@ -18,10 +18,12 @@ import meta::relational::extension::*; import meta::relational::metamodel::*; import meta::pure::mapping::*; import meta::relational::metamodel::relation::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::functions::pureToSqlQuery::*; import meta::relational::functions::sqlQueryToString::*; import meta::relational::functions::sqlstring::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::router::clustering::*; import meta::pure::router::metamodel::clustering::*; @@ -38,13 +40,13 @@ function meta::relational::functions::sqlstring::toSQLStringPretty(f:FunctionDef function meta::relational::functions::sqlstring::toSQLStringPretty(f:FunctionDefinition<{->Any[*]}>[1], mapping:Mapping[1], runtime:Runtime[1], extensions:Extension[*]):String[1] { - let databaseConnection = $runtime.connections->toOne()->cast(@DatabaseConnection); + let databaseConnection = $runtime.connectionStores.connection->toOne()->cast(@DatabaseConnection); toSQL($f, $mapping, $runtime, $extensions).toSQLString($databaseConnection.type, $databaseConnection.timeZone, $databaseConnection.quoteIdentifiers, ^Format(newLine='\n', indent='\t')); } function meta::relational::functions::sqlstring::toSQL(f:FunctionDefinition<{->Any[*]}>[1], mapping:Mapping[1], runtime:Runtime[1], extensions:Extension[*]):SQLResult[1] { - let databaseConnection = $runtime.connections->filter(c|$c->instanceOf(DatabaseConnection))->toOne()->cast(@DatabaseConnection); + let databaseConnection = $runtime.connectionStores.connection->filter(c|$c->instanceOf(DatabaseConnection))->toOne()->cast(@DatabaseConnection); let postProcessors = meta::relational::mapping::sqlQueryDefaultPostProcessors()->map(pp | {select:SelectSQLQuery[*] | $pp->eval($select, $extensions)})->concatenate($databaseConnection.sqlQueryPostProcessors); let sql = toSQL($f, $mapping, $databaseConnection.type, $databaseConnection.timeZone, $postProcessors, $extensions, noDebug()); @@ -91,14 +93,14 @@ function meta::relational::functions::sqlstring::toSQLString(f:FunctionDefinitio function meta::relational::functions::sqlstring::toSQLString(f:FunctionDefinition<{->Any[*]}>[1], mapping:Mapping[1], databaseType:DatabaseType[1], dbTimeZone:String[0..1], quoteIdentifier:Boolean[0..1], sqlQueryPostProcessors: Function<{SelectSQLQuery[1]->Result[1]}>[*], format:Format[1], extensions:Extension[*], debug:DebugContext[1]):String[1] { - let routed = $f->routeFunction($mapping, ^Runtime(connections=[^Connection(element='Mock')]), $extensions, $debug); + let routed = $f->routeFunction($mapping, ^Runtime(connectionStores=^ConnectionStore(connection=^Connection(),element='Mock')), $extensions, $debug); let sqlResult = toSQL($routed.expressionSequence->evaluateAndDeactivate()->cast(@ClusteredValueSpecification), $f->openVariableValues(), $mapping, $databaseType, $dbTimeZone, $sqlQueryPostProcessors, $extensions, $debug, ^SQLResult(shouldWarn=false, extensions=$extensions)); $sqlResult.toSQLString($databaseType, $dbTimeZone, $quoteIdentifier, $format); } function <> meta::relational::functions::sqlstring::toSQL(f:FunctionDefinition<{->Any[*]}>[1], mapping:Mapping[1], databaseType:DatabaseType[1], dbTimeZone:String[0..1], sqlQueryPostProcessors: Function<{SelectSQLQuery[1]->Result[1]}>[*], extensions:Extension[*], debug:DebugContext[1]):SQLResult[1] { - let routed = $f->routeFunction($mapping, ^Runtime(connections=[^Connection(element='Mock')]), $extensions, $debug); + let routed = $f->routeFunction($mapping, ^Runtime(connectionStores=^ConnectionStore(connection=^Connection(),element='Mock')), $extensions, $debug); toSQL($routed.expressionSequence->evaluateAndDeactivate()->cast(@ClusteredValueSpecification), $f->openVariableValues(), $mapping, $databaseType, $dbTimeZone, $sqlQueryPostProcessors, $extensions, $debug, ^SQLResult(shouldWarn=false, extensions=$extensions)); } @@ -108,7 +110,7 @@ function <> meta::relational::functions::sqlstring::toSQL(cluste let clusterBeforeAggregateRewrite = $clusters->head()->toOne(); if($clusterBeforeAggregateRewrite->instanceOf(StoreMappingClusteredValueSpecification) && $clusterBeforeAggregateRewrite->cast(@StoreMappingClusteredValueSpecification).store->toOne()->instanceOf(meta::pure::mapping::aggregationAware::AggregationAwareStore), | let reprocessedFunction = meta::pure::mapping::aggregationAware::reprocessFunction($clusterBeforeAggregateRewrite.val->cast(@FunctionExpression)->toOne(), $vars, []->cast(@RoutedValueSpecification), $mapping, $debug); - let routed = $reprocessedFunction->routeFunction($mapping, ^Runtime(connections=[^Connection(element='Mock')]), $extensions, $debug); + let routed = $reprocessedFunction->routeFunction($mapping, ^Runtime(connectionStores=^ConnectionStore(connection=^Connection(),element='Mock')), $extensions, $debug); toSQL($routed.expressionSequence->evaluateAndDeactivate()->cast(@StoreMappingClusteredValueSpecification), $vars, $mapping, $databaseType, $dbTimeZone, $sqlQueryPostProcessors, $extensions, $debug, $sqlResult);, | let cluster = $clusterBeforeAggregateRewrite; let firstDbCluster = findDBCluster($cluster->at(0), []->cast(@StoreMappingClusteredValueSpecification)); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/functions.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/functions.pure index 21d8e33d39f..df2d18194dc 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/functions.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/functions.pure @@ -16,8 +16,10 @@ import meta::pure::router::execution::*; import meta::pure::router::clustering::*; import meta::json::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::functions::io::http::*; import meta::relational::mapping::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::metamodel::operation::*; import meta::relational::metamodel::*; @@ -28,6 +30,7 @@ import meta::pure::constraints::functions::util::*; import meta::relational::validation::utils::*; import meta::relational::validation::*; import meta::pure::constraints::functions::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::metamodel::constraint::*; import meta::pure::mapping::*; @@ -55,36 +58,36 @@ function meta::relational::validation::functions::generateConstraintNegatedProje let class = $func->functionType().returnType.rawType->toOne()->cast(@Class); let constraintFilteredQuery = generateConstraintNegatedFilteredQuery($class, $func.expressionSequence->evaluateAndDeactivate()->toOne()->cast(@FunctionExpression)->resolveVars($func->openVariableValues())->cast(@FunctionExpression), $constraint); let constraintInfo = getContextInformationForConstraint($constraint, $constraintInformation); - - ^SimpleFunctionExpression - ( + + ^SimpleFunctionExpression + ( func = project_K_MANY__Function_MANY__String_MANY__TabularDataSet_1_, multiplicity = PureOne, genericType = ^GenericType(rawType = TabularDataSet), importGroup = system::imports::coreImport, - parametersValues = - [ $constraintFilteredQuery, + parametersValues = + [ $constraintFilteredQuery, ^InstanceValue ( - genericType = ^GenericType(rawType = FunctionDefinition, typeArguments = ^GenericType(rawType = Any)), - multiplicity = ZeroMany, + genericType = ^GenericType(rawType = FunctionDefinition, typeArguments = ^GenericType(rawType = Any)), + multiplicity = ZeroMany, values = [ generateProjection($class, $constraint.name->toOne()), generateProjection($class, $constraintInfo.enforcementLevel.name), - $constraintInfo.message->isEmpty()->if( + $constraintInfo.message->isEmpty()->if( | $constraintInfo.messageFunction->isEmpty()->if( | generateProjection($class, ''), | $constraintInfo.messageFunction->toOne() ), | generateProjection($class, $constraintInfo.message->toOne()) ) - ]->concatenate($projections->map(col | + ]->concatenate($projections->map(col | let colfn = $col.func->cast(@LambdaFunction); ^$colfn(openVariables=[], expressionSequence=$colfn.expressionSequence->evaluateAndDeactivate()->toOne()->resolveVars($colfn->openVariableValues())); )) ), ^InstanceValue ( - genericType = ^GenericType(rawType = String), - multiplicity = ZeroMany, + genericType = ^GenericType(rawType = String), + multiplicity = ZeroMany, values = getConstraintValidationColumns().name->concatenate($projections->map(col | $col.name)) ) ] @@ -96,20 +99,20 @@ function meta::relational::validation::functions::generateConstraintNegatedFilte let constraintExprSequence = $constraint.functionDefinition.expressionSequence->evaluateAndDeactivate()->toOne(); let negatedExprSequence = $constraintExprSequence->negatedFunctionExpression(); let dummyLambda = {|'ok'}; - ^SimpleFunctionExpression - ( + ^SimpleFunctionExpression + ( func = filter_T_MANY__Function_1__T_MANY_, multiplicity = ZeroMany, genericType = ^GenericType(rawType = $c), importGroup = system::imports::coreImport, - parametersValues = - [ $f, + parametersValues = + [ $f, ^InstanceValue ( - genericType = $constraint.functionDefinition.classifierGenericType->toOne(), - multiplicity = PureOne, - values = ^$dummyLambda + genericType = $constraint.functionDefinition.classifierGenericType->toOne(), + multiplicity = PureOne, + values = ^$dummyLambda ( - classifierGenericType = $constraint.functionDefinition.classifierGenericType, + classifierGenericType = $constraint.functionDefinition.classifierGenericType, expressionSequence = $negatedExprSequence ) ) @@ -122,8 +125,8 @@ meta::relational::validation::functions::negatedFunctionExpression(f: ValueSpeci { if($f->instanceOf(SimpleFunctionExpression) && $f->cast(@SimpleFunctionExpression).func->evaluateAndDeactivate() == not_Boolean_1__Boolean_1_, | $f->cast(@SimpleFunctionExpression).parametersValues->evaluateAndDeactivate()->at(0), - | ^SimpleFunctionExpression - ( + | ^SimpleFunctionExpression + ( func = not_Boolean_1__Boolean_1_, multiplicity = PureOne, genericType = ^GenericType(rawType = Boolean), @@ -182,7 +185,7 @@ meta::relational::validation::functions::getConstraintValidationColumns():TDSCol { [ ^TDSColumn(offset = 0, name = 'CONSTRAINT_ID', type = String), - ^TDSColumn(offset = 1, name = 'ENFORCEMENT_LEVEL', type = String), + ^TDSColumn(offset = 1, name = 'ENFORCEMENT_LEVEL', type = String), ^TDSColumn(offset = 2, name = 'MESSAGE', type = String) ] } @@ -194,7 +197,7 @@ function meta::relational::validation::functions::getTables(r:RelationalTreeNode ->concatenate(if(!$j.join.target->isEmpty(), | $j.join.target->toOne()->getTables(), | [])) ->concatenate($j.alias->getTables()) ->concatenate($j.childrenData->map(c | $c->cast(@JoinTreeNode)->getTables())), - r:RelationalTreeNode[1] | $r.alias->getTables()->concatenate($r.childrenData->map(c | $c->cast(@JoinTreeNode)->getTables())) + r:RelationalTreeNode[1] | $r.alias->getTables()->concatenate($r.childrenData->map(c | $c->cast(@JoinTreeNode)->getTables())) ])->removeDuplicates(); } @@ -219,4 +222,4 @@ function meta::relational::validation::functions::getTables(r:RelationalOperatio r:RelationalOperationElementWithJoin[1]|$r.joinTreeNode->toOne()->getTables()->concatenate(if($r.relationalOperationElement->isEmpty(),|[],|$r.relationalOperationElement->toOne()->getTables())), rel: RelationalOperationElement[1] | [] ])->removeDuplicates(); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/showcase/validationStandaloneShowcase.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/showcase/validationStandaloneShowcase.pure index a2fe8781b2a..76ee9135217 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/showcase/validationStandaloneShowcase.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/showcase/validationStandaloneShowcase.pure @@ -16,9 +16,13 @@ import meta::relational::tests::csv::*; import meta::relational::functions::asserts::*; import meta::relational::validation::*; import meta::relational::functions::toDDL::*; + + import meta::relational::metamodel::execute::*; import meta::relational::metamodel::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::validation::showcase::model::*; import meta::relational::validation::showcase::standalone::*; @@ -26,7 +30,7 @@ import meta::relational::validation::showcase::standalone::*; function <> meta::relational::validation::showcase::standalone::validateAllConstraints():Boolean[1] { let validationResult = validate({|Trade.all()}, validationShowcaseMapping, getRuntime(), getConstraintsContextInformation(), meta::relational::extension::relationalExtensions()); - + assertEquals('CONSTRAINT_ID,ENFORCEMENT_LEVEL,MESSAGE,ID\n'+ 'etiNotEmpty,Error,External Trade ID is not valid,2\n'+ 'validLocation,Warn,Location is not known,3\n'+ @@ -50,7 +54,7 @@ function <> meta::relational::validation::showcase::standalone::valid '"root".ID as "ID" '+ 'from tradeTable as "root" '+ 'where not "root".ETI is not null', $validationResult); - + assertEquals('CONSTRAINT_ID,ENFORCEMENT_LEVEL,MESSAGE,ID\n'+ 'etiNotEmpty,Error,External Trade ID is not valid,2\n', $validationResult.values->toCSV()); } @@ -71,7 +75,7 @@ function <> meta::relational::validation::showcase::standalone::valid 'from tradeTable as "root" '+ 'where ("root".LOCATION not in (\'Asia\', \'EMEA\', \'Americas\') OR "root".LOCATION is null)'+ ') as "unionalias_0"', $validationResult); - + assertEquals('CONSTRAINT_ID,ENFORCEMENT_LEVEL,MESSAGE,ID\n'+ 'etiNotEmpty,Error,External Trade ID is not valid,2\n'+ 'validLocation,Error,,3\n'+ @@ -94,7 +98,7 @@ function <> meta::relational::validation::showcase::standalone::valid 'from tradeTable as "root" '+ 'where ("root".LOCATION not in (\'Asia\', \'EMEA\', \'Americas\') OR "root".LOCATION is null)'+ ') as "unionalias_0"', $validationResult); - + assertEquals('CONSTRAINT_ID,ENFORCEMENT_LEVEL,MESSAGE,ID\n'+ 'etiNotEmpty,Error,External Trade ID is not valid,2\n'+ 'validLocation,Warn,Location is not known,3\n'+ @@ -104,7 +108,7 @@ function <> meta::relational::validation::showcase::standalone::valid function <> meta::relational::validation::showcase::standalone::validateMultiplesConstraintWithAdditionalProjections():Boolean[1] { let validationResult = validate({|Trade.all()}, [col(x:Trade[1] | $x.tradeId, 'Trade ID'), col(x:Trade[1] | $x.externalTradeId, 'Ext Trade ID'), col(x:Trade[1] | $x.location, 'Location')], [], validationShowcaseMapping, getRuntime(), ^RelationalExecutionContext(), ['etiNotEmpty', 'validLocation'], getConstraintsContextInformation(), meta::relational::extension::relationalExtensions()); - + assertEquals('CONSTRAINT_ID,ENFORCEMENT_LEVEL,MESSAGE,Trade ID,Ext Trade ID,Location\n'+ 'etiNotEmpty,Error,External Trade ID is not valid,2,,Americas\n'+ 'validLocation,Warn,Location is not known,3,102,Dummy\n'+ @@ -113,9 +117,9 @@ function <> meta::relational::validation::showcase::standalone::valid function <> meta::relational::validation::showcase::standalone::validateMultiplesConstraintWithPostTDSOperation1():Boolean[1] { - let validationResult = validate({|Trade.all()}, [col(x:Trade[1] | $x.tradeId, 'Trade ID'), col(x:Trade[1] | $x.externalTradeId, 'Ext Trade ID'), col(x:Trade[1] | $x.location, 'Location')], {t:TabularDataSet[1]|$t->groupBy(['CONSTRAINT_ID'],agg('COUNT', x|$x.getInteger('Trade ID'), y|$y->count()))}, + let validationResult = validate({|Trade.all()}, [col(x:Trade[1] | $x.tradeId, 'Trade ID'), col(x:Trade[1] | $x.externalTradeId, 'Ext Trade ID'), col(x:Trade[1] | $x.location, 'Location')], {t:TabularDataSet[1]|$t->groupBy(['CONSTRAINT_ID'],agg('COUNT', x|$x.getInteger('Trade ID'), y|$y->count()))}, validationShowcaseMapping, getRuntime(), ^RelationalExecutionContext(), ['etiNotEmpty', 'validLocation'], getConstraintsContextInformation(), meta::relational::extension::relationalExtensions()); - + assertEquals('CONSTRAINT_ID,COUNT\n'+ 'validLocation,2\n'+ 'etiNotEmpty,1\n', $validationResult.values->sort([desc('COUNT')])->toCSV()); @@ -123,9 +127,9 @@ function <> meta::relational::validation::showcase::standalone::valid function <> meta::relational::validation::showcase::standalone::validateAllConstraintsWithPostTDSOperation2():Boolean[1] { - let validationResult = validate({|Trade.all()}, [col(x:Trade[1] | $x.tradeId, 'Trade ID'), col(x:Trade[1] | $x.externalTradeId, 'Ext Trade ID'), col(x:Trade[1] | $x.location, 'Location')], {t:TabularDataSet[1]|$t->restrict(['Trade ID', 'Ext Trade ID', 'CONSTRAINT_ID', 'MESSAGE'])->sort([asc('Trade ID'),asc('CONSTRAINT_ID')])}, + let validationResult = validate({|Trade.all()}, [col(x:Trade[1] | $x.tradeId, 'Trade ID'), col(x:Trade[1] | $x.externalTradeId, 'Ext Trade ID'), col(x:Trade[1] | $x.location, 'Location')], {t:TabularDataSet[1]|$t->restrict(['Trade ID', 'Ext Trade ID', 'CONSTRAINT_ID', 'MESSAGE'])->sort([asc('Trade ID'),asc('CONSTRAINT_ID')])}, validationShowcaseMapping, getRuntime(), ^RelationalExecutionContext(), [], getConstraintsContextInformation(), meta::relational::extension::relationalExtensions()); - + assertEquals('Trade ID,Ext Trade ID,CONSTRAINT_ID,MESSAGE\n'+ '1,100,isATypeAccount,Account is not Type A : \n'+ '1,100,knownAccount,Account unknown\n'+ @@ -143,7 +147,7 @@ function <> meta::relational::validation::showcase::standalone::valid function <> meta::relational::validation::showcase::standalone::validateAllConstraintsWithInnerJoinInFilter():Boolean[1] { let validationResult = validate({|Trade.all()}, validationShowcaseMappingWithInnerJoinsInFilter, getRuntime(), getConstraintsContextInformation(), meta::relational::extension::relationalExtensions()); - + assertEquals('CONSTRAINT_ID,ENFORCEMENT_LEVEL,MESSAGE,ID\n'+ 'knownAccount,Error,Account unknown,1\n'+ 'isATypeAccount,Warn,Account is not Type A : ,1\n', $validationResult.values->toCSV()); @@ -151,22 +155,22 @@ function <> meta::relational::validation::showcase::standalone::valid function meta::relational::validation::showcase::standalone::getRuntime():Runtime[1] { - meta::relational::tests::testRuntime(^Database()); + meta::external::store::relational::tests::testRuntime(^Database()); } function <> meta::relational::validation::showcase::standalone::createTablesInDb():Boolean[1] { let runtime = getRuntime(); - let dbConn = $runtime.connections->at(0)->cast(@DatabaseConnection); + let dbConn = $runtime.connectionStores.connection->at(0)->cast(@DatabaseConnection); dropAndCreateTableInDb(db, 'tradeTable', $dbConn); dropAndCreateTableInDb(db, 'accountTable', $dbConn); dropAndCreateTableInDb(db, 'tradeEventTable', $dbConn); dropAndCreateTableInDb(db, 'tradingGroupTable', $dbConn); - + dropAndCreateSchemaInDb('productSchema', $dbConn); dropAndCreateTableInDb(db, 'productSchema', 'productTable', $dbConn); dropAndCreateTableInDb(db, 'productSchema', 'synonymTable', $dbConn); - + executeInDb('insert into tradeTable (ID, ETI, LOCATION, TRADING_GROUP, prodId, accountID, quantity, tradeDate, settlementDateTime) values (1, 100, \'Americas\', \'TG_1\', 30, 60, 1000, \'2018-08-08\', \'2014-12-02 21:00:00\');', $dbConn); executeInDb('insert into tradeTable (ID, LOCATION, TRADING_GROUP, prodId, accountID, quantity, tradeDate, settlementDateTime) values (2, \'Americas\', \'TG_2\', 31, 61, 1000, \'2018-08-08\', \'2014-12-02 21:00:00\');', $dbConn); executeInDb('insert into tradeTable (ID, ETI, LOCATION, TRADING_GROUP, prodId, accountID, quantity, tradeDate, settlementDateTime) values (3, 102, \'Dummy\', \'TG_3\', 32, 62, 1000, \'2018-08-08\', \'2014-12-02 21:00:00\');', $dbConn); @@ -177,7 +181,7 @@ function <> meta::relational::validation::showcase::standalo executeInDb('insert into productSchema.productTable (ID, NAME) values (31, \'Prod_2\');', $dbConn); executeInDb('insert into productSchema.productTable (ID, NAME) values (32, \'Prod_3\');', $dbConn); executeInDb('insert into productSchema.productTable (ID, NAME) values (34, \'Prod_4\');', $dbConn); - + executeInDb('insert into productSchema.synonymTable (ID, PRODID, TYPE, NAME) values (1, 30, \'CUSIP\', \'Synonym_1\');', $dbConn); executeInDb('insert into productSchema.synonymTable (ID, PRODID, TYPE, NAME) values (2, 31, \'CUSIP\', \'Synonym_2\');', $dbConn); executeInDb('insert into productSchema.synonymTable (ID, PRODID, TYPE, NAME) values (3, 31, \'ISIN\', \'Synonym_3\');', $dbConn); @@ -187,20 +191,20 @@ function <> meta::relational::validation::showcase::standalo executeInDb('insert into accountTable (ID, name, createDate) values (62, \'Account_2_A\', \'2018-08-08\');', $dbConn); executeInDb('insert into accountTable (ID, name, createDate) values (63, \'Account_3_B\', \'2018-08-08\');', $dbConn); executeInDb('insert into accountTable (ID, name, createDate) values (64, \'Account_4_A\', \'2018-08-08\');', $dbConn); - + executeInDb('insert into tradingGroupTable (NAME, STATUS) values (\'TG_1\', \'LIVE\');', $dbConn); executeInDb('insert into tradingGroupTable (NAME, STATUS) values (\'TG_2\', \'LIVE\');', $dbConn); executeInDb('insert into tradingGroupTable (NAME, STATUS) values (\'TG_3\', \'LIVE\');', $dbConn); executeInDb('insert into tradingGroupTable (NAME, STATUS) values (\'TG_4\', \'DEAD\');', $dbConn); executeInDb('insert into tradingGroupTable (NAME, STATUS) values (\'TG_5\', \'LIVE\');', $dbConn); - + executeInDb('insert into tradeEventTable (EVENT_ID, trade_id, eventDate, eventType) values (1, 1, \'2018-08-08\', \'Type1\');', $dbConn); executeInDb('insert into tradeEventTable (EVENT_ID, trade_id, eventDate, eventType) values (2, 2, \'2018-08-08\', \'Type1\');', $dbConn); executeInDb('insert into tradeEventTable (EVENT_ID, trade_id, eventDate, eventType) values (3, 3, \'2018-08-08\', \'Type1\');', $dbConn); executeInDb('insert into tradeEventTable (EVENT_ID, trade_id, eventDate, eventType) values (4, 4, \'2018-08-08\', \'Type1\');', $dbConn); executeInDb('insert into tradeEventTable (EVENT_ID, trade_id, eventDate, eventType) values (5, 5, \'2018-08-08\', \'Type1\');', $dbConn); executeInDb('insert into tradeEventTable (EVENT_ID, trade_id, eventDate, eventType) values (6, 2, \'9999-12-31\', \'Type2\');', $dbConn); - + true; } @@ -267,20 +271,20 @@ Mapping meta::relational::validation::showcase::standalone::validationShowcaseMa name : [db]accountTable.name, createDate : [db]accountTable.createDate, trades: [db]@Trade_Account - } - + } + TradingGroupStatus : EnumerationMapping status { DEAD : 'DEAD', LIVE : 'LIVE' } - + ) Mapping meta::relational::validation::showcase::standalone::validationShowcaseMappingWithInnerJoinsInFilter ( include meta::relational::validation::showcase::standalone::validationShowcaseMapping - + *Trade[tradeWithInnerJoinInFilter] : Relational { ~filter [db] (INNER) @Trade_Product | [db] ProductFilter @@ -295,7 +299,7 @@ Mapping meta::relational::validation::showcase::standalone::validationShowcaseMa settlementDateTime : [db]tradeTable.settlementDateTime, latestEventDate : [db]@Trade_TradeEventViewMaxTradeEventDate | tradeEventViewMaxTradeEventDate.maxTradeEventDate, events : [db]@Trade_TradeEvent - } + } ) @@ -306,26 +310,26 @@ Database meta::relational::validation::showcase::standalone::db Table tradingGroupTable(NAME VARCHAR(100) PRIMARY KEY, STATUS VARCHAR(100)) Table accountTable(ID INT PRIMARY KEY, name VARCHAR(200), createDate DATE) Table tradeEventTable(EVENT_ID INT PRIMARY KEY, trade_id INT, eventType VARCHAR(10), eventDate DATE) - + Schema productSchema ( Table productTable(ID INT PRIMARY KEY, NAME VARCHAR(200)) Table synonymTable(ID INT PRIMARY KEY, PRODID INT, TYPE VARCHAR(200), NAME VARCHAR(200)) ) - + View tradeEventViewMaxTradeEventDate ( ~groupBy (tradeEventTable.trade_id) trade_id : tradeEventTable.trade_id, maxTradeEventDate : max(tradeEventTable.eventDate) ) - + Join Product_Synonym(productSchema.synonymTable.PRODID = productSchema.productTable.ID) Join Trade_Product(tradeTable.prodId = productSchema.productTable.ID) Join Trade_tradingGroup(tradeTable.TRADING_GROUP = tradingGroupTable.NAME) Join Trade_Account(tradeTable.accountID = accountTable.ID) Join Trade_TradeEvent(tradeTable.ID = tradeEventTable.trade_id) Join Trade_TradeEventViewMaxTradeEventDate(tradeTable.ID = tradeEventViewMaxTradeEventDate.trade_id) - + Filter ProductFilter(productSchema.productTable.NAME = 'Prod_1') ) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/tests/testComplexValidations.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/tests/testComplexValidations.pure index 1b591becb2d..4f3347d8014 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/tests/testComplexValidations.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/tests/testComplexValidations.pure @@ -228,16 +228,18 @@ Database meta::relational::validation::complex::db ###Pure import meta::relational::validation::complex::*; import meta::relational::metamodel::execute::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::relational::tests::csv::*; import meta::relational::validation::*; import meta::relational::metamodel::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function <> meta::relational::validation::complex::createTablesInDb():Boolean[1] { let runtime = getRuntime(); - let connection = $runtime.connections->at(0)->cast(@DatabaseConnection); + let connection = $runtime.connectionStores.connection->at(0)->cast(@DatabaseConnection); executeInDb('Drop table if exists legalEntityTable;', $connection); executeInDb('Create Table legalEntityTable(id INT, firmId INT, legalEntityAddressId INT);', $connection); @@ -310,7 +312,7 @@ function <> meta::relational::validation::complex::createTab function meta::relational::validation::complex::getRuntime():Runtime[1] { - meta::relational::tests::testRuntime(^Database()); + meta::external::store::relational::tests::testRuntime(^Database()); } function <> meta::relational::validation::complex::validateComplexValidation1():Boolean[1] @@ -450,4 +452,4 @@ function <> meta::relational::validation::complex::validateComplexVal assertEquals('CONSTRAINT_ID,ENFORCEMENT_LEVEL,MESSAGE,ID\n'+ 'constraint8,Error,,1\n'+ 'constraint8,Error,,1\n', $validationResult.values->toCSV()); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/tests/testValidationWithMilestoning.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/tests/testValidationWithMilestoning.pure index bf63e11c9d1..3f4a00d6cc7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/tests/testValidationWithMilestoning.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/tests/testValidationWithMilestoning.pure @@ -15,6 +15,7 @@ import meta::relational::functions::sqlQueryToString::h2::*; import meta::relational::mapping::*; import meta::relational::functions::asserts::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::relational::validation::tests::milestoning::*; import meta::relational::validation::*; @@ -23,10 +24,10 @@ Class <> meta::relational::validation::tests::milesto [ idNotNegative : $this.id > 0, classificationTypeStrNotEMpty : $this.classificationTypeStr != '' - + ] { - + } Class <> meta::relational::validation::tests::milestoning::ProductClassification extends meta::relational::tests::milestoning::ProductClassification @@ -52,50 +53,50 @@ function <> meta::relational::validation::tests::milestoning function <> meta::relational::validation::tests::milestoning::testAggregationOnRootClass():Boolean[1] { - let validation = validate({|meta::relational::validation::tests::milestoning::ProductClassification.all(%2019-09-09)},MilestoneMappingWithDynaFunction,meta::relational::tests::testRuntime(),['joinStringsConstraint'], meta::relational::extension::relationalExtensions()); + let validation = validate({|meta::relational::validation::tests::milestoning::ProductClassification.all(%2019-09-09)},MilestoneMappingWithDynaFunction,meta::external::store::relational::tests::testRuntime(),['joinStringsConstraint'], meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select \'joinStringsConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".type as "type" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where not (char_length("root".type) + char_length("root".type_description)) > 10 and "root".snapshotDate = \'2019-09-09\'', - 'select \'joinStringsConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".type as "type" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where not (char_length("root".type) + char_length("root".type_description)) > 10 and "root".snapshotDate = DATE\'2019-09-09\'', + 'select \'joinStringsConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".type as "type" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where not (char_length("root".type) + char_length("root".type_description)) > 10 and "root".snapshotDate = \'2019-09-09\'', + 'select \'joinStringsConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".type as "type" from ProductClassificationTableWithBusinessSnapshotMilestoning as "root" where not (char_length("root".type) + char_length("root".type_description)) > 10 and "root".snapshotDate = DATE\'2019-09-09\'', $validation->sqlRemoveFormatting() ); } function <> meta::relational::validation::tests::milestoning::testValidateQueryWithMilestoningAndAggregationAll():Boolean[1] { - let validation = validate({|OrderWithAggregationConstraint.all()}, MilestoneMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let validation = validate({|OrderWithAggregationConstraint.all()}, MilestoneMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'aggConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_2".id as id, sum("producttablewithbusinesssnapshotmilestoning_0".id) as aggCol from OrderTable as "ordertable_2" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("ordertable_2".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_0".id > 100 or "producttablewithbusinesssnapshotmilestoning_0".id = -1)) group by "ordertable_2".id) as "ordertable_1" on ("root".id = "ordertable_1".id) left outer join (select "ordertable_4".id as id, sum("producttablewithbusinesssnapshotmilestoning_1".id) as aggCol from OrderTable as "ordertable_4" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_1" on ("ordertable_4".prodFk = "producttablewithbusinesssnapshotmilestoning_1".id and "producttablewithbusinesssnapshotmilestoning_1".snapshotDate = \'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_1".id < 100 or "producttablewithbusinesssnapshotmilestoning_1".id = -10)) group by "ordertable_4".id) as "ordertable_3" on ("root".id = "ordertable_3".id) where not abs(("ordertable_1".aggCol - "ordertable_3".aggCol)) > 1 UNION ALL select \'aggConstraint2\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_6".id as id, count(*) as aggCol from OrderTable as "ordertable_6" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_2" on ("ordertable_6".prodFk = "producttablewithbusinesssnapshotmilestoning_2".id and "producttablewithbusinesssnapshotmilestoning_2".snapshotDate = \'2018-09-09\') group by "ordertable_6".id) as "ordertable_5" on ("root".id = "ordertable_5".id) where not "ordertable_5".aggCol > 1) as "unionalias_0"', - 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'aggConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_2".id as id, sum("producttablewithbusinesssnapshotmilestoning_0".id) as aggCol from OrderTable as "ordertable_2" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("ordertable_2".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_0".id > 100 or "producttablewithbusinesssnapshotmilestoning_0".id = -1)) group by "ordertable_2".id) as "ordertable_1" on ("root".id = "ordertable_1".id) left outer join (select "ordertable_4".id as id, sum("producttablewithbusinesssnapshotmilestoning_1".id) as aggCol from OrderTable as "ordertable_4" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_1" on ("ordertable_4".prodFk = "producttablewithbusinesssnapshotmilestoning_1".id and "producttablewithbusinesssnapshotmilestoning_1".snapshotDate = DATE\'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_1".id < 100 or "producttablewithbusinesssnapshotmilestoning_1".id = -10)) group by "ordertable_4".id) as "ordertable_3" on ("root".id = "ordertable_3".id) where not abs(("ordertable_1".aggCol - "ordertable_3".aggCol)) > 1 UNION ALL select \'aggConstraint2\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_6".id as id, count(*) as aggCol from OrderTable as "ordertable_6" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_2" on ("ordertable_6".prodFk = "producttablewithbusinesssnapshotmilestoning_2".id and "producttablewithbusinesssnapshotmilestoning_2".snapshotDate = DATE\'2018-09-09\') group by "ordertable_6".id) as "ordertable_5" on ("root".id = "ordertable_5".id) where not "ordertable_5".aggCol > 1) as "unionalias_0"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'aggConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_2".id as id, sum("producttablewithbusinesssnapshotmilestoning_0".id) as aggCol from OrderTable as "ordertable_2" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("ordertable_2".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_0".id > 100 or "producttablewithbusinesssnapshotmilestoning_0".id = -1)) group by "ordertable_2".id) as "ordertable_1" on ("root".id = "ordertable_1".id) left outer join (select "ordertable_4".id as id, sum("producttablewithbusinesssnapshotmilestoning_1".id) as aggCol from OrderTable as "ordertable_4" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_1" on ("ordertable_4".prodFk = "producttablewithbusinesssnapshotmilestoning_1".id and "producttablewithbusinesssnapshotmilestoning_1".snapshotDate = \'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_1".id < 100 or "producttablewithbusinesssnapshotmilestoning_1".id = -10)) group by "ordertable_4".id) as "ordertable_3" on ("root".id = "ordertable_3".id) where not abs(("ordertable_1".aggCol - "ordertable_3".aggCol)) > 1 UNION ALL select \'aggConstraint2\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_6".id as id, count(*) as aggCol from OrderTable as "ordertable_6" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_2" on ("ordertable_6".prodFk = "producttablewithbusinesssnapshotmilestoning_2".id and "producttablewithbusinesssnapshotmilestoning_2".snapshotDate = \'2018-09-09\') group by "ordertable_6".id) as "ordertable_5" on ("root".id = "ordertable_5".id) where not "ordertable_5".aggCol > 1) as "unionalias_0"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'aggConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_2".id as id, sum("producttablewithbusinesssnapshotmilestoning_0".id) as aggCol from OrderTable as "ordertable_2" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("ordertable_2".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_0".id > 100 or "producttablewithbusinesssnapshotmilestoning_0".id = -1)) group by "ordertable_2".id) as "ordertable_1" on ("root".id = "ordertable_1".id) left outer join (select "ordertable_4".id as id, sum("producttablewithbusinesssnapshotmilestoning_1".id) as aggCol from OrderTable as "ordertable_4" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_1" on ("ordertable_4".prodFk = "producttablewithbusinesssnapshotmilestoning_1".id and "producttablewithbusinesssnapshotmilestoning_1".snapshotDate = DATE\'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_1".id < 100 or "producttablewithbusinesssnapshotmilestoning_1".id = -10)) group by "ordertable_4".id) as "ordertable_3" on ("root".id = "ordertable_3".id) where not abs(("ordertable_1".aggCol - "ordertable_3".aggCol)) > 1 UNION ALL select \'aggConstraint2\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_6".id as id, count(*) as aggCol from OrderTable as "ordertable_6" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_2" on ("ordertable_6".prodFk = "producttablewithbusinesssnapshotmilestoning_2".id and "producttablewithbusinesssnapshotmilestoning_2".snapshotDate = DATE\'2018-09-09\') group by "ordertable_6".id) as "ordertable_5" on ("root".id = "ordertable_5".id) where not "ordertable_5".aggCol > 1) as "unionalias_0"', $validation->sqlRemoveFormatting() ); } function <> meta::relational::validation::tests::milestoning::testValidateQueryWithMilestoningAndAggregationSingle():Boolean[1] { - let validation = validate({|OrderWithAggregationConstraint.all()}, MilestoneMapping, meta::relational::tests::testRuntime(),['aggConstraint'], meta::relational::extension::relationalExtensions()); + let validation = validate({|OrderWithAggregationConstraint.all()}, MilestoneMapping, meta::external::store::relational::tests::testRuntime(),['aggConstraint'], meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select \'aggConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_2".id as id, sum("producttablewithbusinesssnapshotmilestoning_0".id) as aggCol from OrderTable as "ordertable_2" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("ordertable_2".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_0".id > 100 or "producttablewithbusinesssnapshotmilestoning_0".id = -1)) group by "ordertable_2".id) as "ordertable_1" on ("root".id = "ordertable_1".id) left outer join (select "ordertable_4".id as id, sum("producttablewithbusinesssnapshotmilestoning_1".id) as aggCol from OrderTable as "ordertable_4" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_1" on ("ordertable_4".prodFk = "producttablewithbusinesssnapshotmilestoning_1".id and "producttablewithbusinesssnapshotmilestoning_1".snapshotDate = \'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_1".id < 100 or "producttablewithbusinesssnapshotmilestoning_1".id = -10)) group by "ordertable_4".id) as "ordertable_3" on ("root".id = "ordertable_3".id) where not abs(("ordertable_1".aggCol - "ordertable_3".aggCol)) > 1', - 'select \'aggConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_2".id as id, sum("producttablewithbusinesssnapshotmilestoning_0".id) as aggCol from OrderTable as "ordertable_2" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("ordertable_2".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_0".id > 100 or "producttablewithbusinesssnapshotmilestoning_0".id = -1)) group by "ordertable_2".id) as "ordertable_1" on ("root".id = "ordertable_1".id) left outer join (select "ordertable_4".id as id, sum("producttablewithbusinesssnapshotmilestoning_1".id) as aggCol from OrderTable as "ordertable_4" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_1" on ("ordertable_4".prodFk = "producttablewithbusinesssnapshotmilestoning_1".id and "producttablewithbusinesssnapshotmilestoning_1".snapshotDate = DATE\'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_1".id < 100 or "producttablewithbusinesssnapshotmilestoning_1".id = -10)) group by "ordertable_4".id) as "ordertable_3" on ("root".id = "ordertable_3".id) where not abs(("ordertable_1".aggCol - "ordertable_3".aggCol)) > 1', + 'select \'aggConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_2".id as id, sum("producttablewithbusinesssnapshotmilestoning_0".id) as aggCol from OrderTable as "ordertable_2" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("ordertable_2".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_0".id > 100 or "producttablewithbusinesssnapshotmilestoning_0".id = -1)) group by "ordertable_2".id) as "ordertable_1" on ("root".id = "ordertable_1".id) left outer join (select "ordertable_4".id as id, sum("producttablewithbusinesssnapshotmilestoning_1".id) as aggCol from OrderTable as "ordertable_4" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_1" on ("ordertable_4".prodFk = "producttablewithbusinesssnapshotmilestoning_1".id and "producttablewithbusinesssnapshotmilestoning_1".snapshotDate = \'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_1".id < 100 or "producttablewithbusinesssnapshotmilestoning_1".id = -10)) group by "ordertable_4".id) as "ordertable_3" on ("root".id = "ordertable_3".id) where not abs(("ordertable_1".aggCol - "ordertable_3".aggCol)) > 1', + 'select \'aggConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_2".id as id, sum("producttablewithbusinesssnapshotmilestoning_0".id) as aggCol from OrderTable as "ordertable_2" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("ordertable_2".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_0".id > 100 or "producttablewithbusinesssnapshotmilestoning_0".id = -1)) group by "ordertable_2".id) as "ordertable_1" on ("root".id = "ordertable_1".id) left outer join (select "ordertable_4".id as id, sum("producttablewithbusinesssnapshotmilestoning_1".id) as aggCol from OrderTable as "ordertable_4" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_1" on ("ordertable_4".prodFk = "producttablewithbusinesssnapshotmilestoning_1".id and "producttablewithbusinesssnapshotmilestoning_1".snapshotDate = DATE\'2018-09-09\' and ("producttablewithbusinesssnapshotmilestoning_1".id < 100 or "producttablewithbusinesssnapshotmilestoning_1".id = -10)) group by "ordertable_4".id) as "ordertable_3" on ("root".id = "ordertable_3".id) where not abs(("ordertable_1".aggCol - "ordertable_3".aggCol)) > 1', $validation->sqlRemoveFormatting() ); } function <> meta::relational::validation::tests::milestoning::testValidateQueryWithMilestoningAndAggregationSingleAndNestedDynaFunction():Boolean[1] { - let validation = validate({|OrderWithAggregationConstraint.all()}, MilestoneMappingWithDynaFunction, meta::relational::tests::testRuntime(),['aggConstraint'], meta::relational::extension::relationalExtensions()); + let validation = validate({|OrderWithAggregationConstraint.all()}, MilestoneMappingWithDynaFunction, meta::external::store::relational::tests::testRuntime(),['aggConstraint'], meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select \'aggConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_2".id as id, sum(("producttablewithbusinesssnapshotmilestoning_0".id + "producttablewithbusinesssnapshotmilestoning_0".id)) as aggCol from OrderTable as "ordertable_2" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("ordertable_2".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2018-09-09\' and (("producttablewithbusinesssnapshotmilestoning_0".id + "producttablewithbusinesssnapshotmilestoning_0".id) > 100 or ("producttablewithbusinesssnapshotmilestoning_0".id + "producttablewithbusinesssnapshotmilestoning_0".id) = -1)) group by "ordertable_2".id) as "ordertable_1" on ("root".id = "ordertable_1".id) left outer join (select "ordertable_4".id as id, sum(("producttablewithbusinesssnapshotmilestoning_1".id + "producttablewithbusinesssnapshotmilestoning_1".id)) as aggCol from OrderTable as "ordertable_4" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_1" on ("ordertable_4".prodFk = "producttablewithbusinesssnapshotmilestoning_1".id and "producttablewithbusinesssnapshotmilestoning_1".snapshotDate = \'2018-09-09\' and (("producttablewithbusinesssnapshotmilestoning_1".id + "producttablewithbusinesssnapshotmilestoning_1".id) < 100 or ("producttablewithbusinesssnapshotmilestoning_1".id + "producttablewithbusinesssnapshotmilestoning_1".id) = -10)) group by "ordertable_4".id) as "ordertable_3" on ("root".id = "ordertable_3".id) where not abs(("ordertable_1".aggCol - "ordertable_3".aggCol)) > 1', - 'select \'aggConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_2".id as id, sum(("producttablewithbusinesssnapshotmilestoning_0".id + "producttablewithbusinesssnapshotmilestoning_0".id)) as aggCol from OrderTable as "ordertable_2" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("ordertable_2".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2018-09-09\' and (("producttablewithbusinesssnapshotmilestoning_0".id + "producttablewithbusinesssnapshotmilestoning_0".id) > 100 or ("producttablewithbusinesssnapshotmilestoning_0".id + "producttablewithbusinesssnapshotmilestoning_0".id) = -1)) group by "ordertable_2".id) as "ordertable_1" on ("root".id = "ordertable_1".id) left outer join (select "ordertable_4".id as id, sum(("producttablewithbusinesssnapshotmilestoning_1".id + "producttablewithbusinesssnapshotmilestoning_1".id)) as aggCol from OrderTable as "ordertable_4" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_1" on ("ordertable_4".prodFk = "producttablewithbusinesssnapshotmilestoning_1".id and "producttablewithbusinesssnapshotmilestoning_1".snapshotDate = DATE\'2018-09-09\' and (("producttablewithbusinesssnapshotmilestoning_1".id + "producttablewithbusinesssnapshotmilestoning_1".id) < 100 or ("producttablewithbusinesssnapshotmilestoning_1".id + "producttablewithbusinesssnapshotmilestoning_1".id) = -10)) group by "ordertable_4".id) as "ordertable_3" on ("root".id = "ordertable_3".id) where not abs(("ordertable_1".aggCol - "ordertable_3".aggCol)) > 1', + 'select \'aggConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_2".id as id, sum(("producttablewithbusinesssnapshotmilestoning_0".id + "producttablewithbusinesssnapshotmilestoning_0".id)) as aggCol from OrderTable as "ordertable_2" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("ordertable_2".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2018-09-09\' and (("producttablewithbusinesssnapshotmilestoning_0".id + "producttablewithbusinesssnapshotmilestoning_0".id) > 100 or ("producttablewithbusinesssnapshotmilestoning_0".id + "producttablewithbusinesssnapshotmilestoning_0".id) = -1)) group by "ordertable_2".id) as "ordertable_1" on ("root".id = "ordertable_1".id) left outer join (select "ordertable_4".id as id, sum(("producttablewithbusinesssnapshotmilestoning_1".id + "producttablewithbusinesssnapshotmilestoning_1".id)) as aggCol from OrderTable as "ordertable_4" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_1" on ("ordertable_4".prodFk = "producttablewithbusinesssnapshotmilestoning_1".id and "producttablewithbusinesssnapshotmilestoning_1".snapshotDate = \'2018-09-09\' and (("producttablewithbusinesssnapshotmilestoning_1".id + "producttablewithbusinesssnapshotmilestoning_1".id) < 100 or ("producttablewithbusinesssnapshotmilestoning_1".id + "producttablewithbusinesssnapshotmilestoning_1".id) = -10)) group by "ordertable_4".id) as "ordertable_3" on ("root".id = "ordertable_3".id) where not abs(("ordertable_1".aggCol - "ordertable_3".aggCol)) > 1', + 'select \'aggConstraint\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from OrderTable as "root" left outer join (select "ordertable_2".id as id, sum(("producttablewithbusinesssnapshotmilestoning_0".id + "producttablewithbusinesssnapshotmilestoning_0".id)) as aggCol from OrderTable as "ordertable_2" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_0" on ("ordertable_2".prodFk = "producttablewithbusinesssnapshotmilestoning_0".id and "producttablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2018-09-09\' and (("producttablewithbusinesssnapshotmilestoning_0".id + "producttablewithbusinesssnapshotmilestoning_0".id) > 100 or ("producttablewithbusinesssnapshotmilestoning_0".id + "producttablewithbusinesssnapshotmilestoning_0".id) = -1)) group by "ordertable_2".id) as "ordertable_1" on ("root".id = "ordertable_1".id) left outer join (select "ordertable_4".id as id, sum(("producttablewithbusinesssnapshotmilestoning_1".id + "producttablewithbusinesssnapshotmilestoning_1".id)) as aggCol from OrderTable as "ordertable_4" left outer join ProductTableWithBusinessSnapshotMilestoning as "producttablewithbusinesssnapshotmilestoning_1" on ("ordertable_4".prodFk = "producttablewithbusinesssnapshotmilestoning_1".id and "producttablewithbusinesssnapshotmilestoning_1".snapshotDate = DATE\'2018-09-09\' and (("producttablewithbusinesssnapshotmilestoning_1".id + "producttablewithbusinesssnapshotmilestoning_1".id) < 100 or ("producttablewithbusinesssnapshotmilestoning_1".id + "producttablewithbusinesssnapshotmilestoning_1".id) = -10)) group by "ordertable_4".id) as "ordertable_3" on ("root".id = "ordertable_3".id) where not abs(("ordertable_1".aggCol - "ordertable_3".aggCol)) > 1', $validation->sqlRemoveFormatting() ); } function <> meta::relational::validation::tests::milestoning::testValidateQueryWithMilestoning():Boolean[1] { - let validation = validate({|Product.all(%2010-10-10)}, MilestoneMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let validation = validate({|Product.all(%2010-10-10)}, MilestoneMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0"', - 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = DATE\'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = DATE\'2010-10-10\') as "unionalias_0"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = DATE\'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = DATE\'2010-10-10\') as "unionalias_0"', $validation->sqlRemoveFormatting() ); } @@ -103,10 +104,10 @@ function <> meta::relational::validation::tests::milestoning::testVal function <> meta::relational::validation::tests::milestoning::testValidateQueryWithMilestoningWithVariable():Boolean[1] { let date = %2010-10-10; - let validation = validate({|Product.all($date)}, MilestoneMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let validation = validate({|Product.all($date)}, MilestoneMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0"', - 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = DATE\'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = DATE\'2010-10-10\') as "unionalias_0"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = DATE\'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = DATE\'2010-10-10\') as "unionalias_0"', $validation->sqlRemoveFormatting() ); } @@ -115,10 +116,10 @@ function <> meta::relational::validation::tests::milestoning::testVal { let date = %2010-10-10; let id = 45; - let validation = validate({|Product.all($date)->filter(i | $i.id == $id)}, MilestoneMapping, meta::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); + let validation = validate({|Product.all($date)->filter(i | $i.id == $id)}, MilestoneMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".id = 45 and "root".snapshotDate = \'2010-10-10\' and not "root".id > 0 UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "root".id = 45 and "root".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\') as "unionalias_0"', - 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".id = 45 and "root".snapshotDate = DATE\'2010-10-10\' and not "root".id > 0 UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-10\' and "root".id = 45 and "root".snapshotDate = DATE\'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\') as "unionalias_0"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".id = 45 and "root".snapshotDate = \'2010-10-10\' and not "root".id > 0 UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "root".id = 45 and "root".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\') as "unionalias_0"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".id = 45 and "root".snapshotDate = DATE\'2010-10-10\' and not "root".id > 0 UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-10\' and "root".id = 45 and "root".snapshotDate = DATE\'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\') as "unionalias_0"', $validation->sqlRemoveFormatting() ); } @@ -127,10 +128,10 @@ function <> meta::relational::validation::tests::milestoning::testVal { let date = %2010-10-10; let batch = 1; - let validation = validate({|Product.all($date)}, [col(x|$x.id, 'id')], {t|$t->extend(col(x:TDSRow[1] | $batch->toOne(), 'Batch_ID'))}, MilestoneMapping, meta::relational::tests::testRuntime(), ^meta::relational::runtime::RelationalExecutionContext(), [], [], meta::relational::extension::relationalExtensions()); + let validation = validate({|Product.all($date)}, [col(x|$x.id, 'id')], {t|$t->extend(col(x:TDSRow[1] | $batch->toOne(), 'Batch_ID'))}, MilestoneMapping, meta::external::store::relational::tests::testRuntime(), ^meta::relational::runtime::RelationalExecutionContext(), [], [], meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id", 1 as "Batch_ID" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0"', - 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id", 1 as "Batch_ID" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = DATE\'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = DATE\'2010-10-10\') as "unionalias_0"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id", 1 as "Batch_ID" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id", 1 as "Batch_ID" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = DATE\'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = DATE\'2010-10-10\') as "unionalias_0"', $validation->sqlRemoveFormatting() ); } @@ -139,10 +140,10 @@ function <> meta::relational::validation::tests::milestoning::testVal { let date = %2010-10-10; let batch = 1; - let validation = validate({|Product.all($date)}, [col(x|$x.id, 'id')], {t|$t->extend(^BasicColumnSpecification(func=x:TDSRow[1] | $batch->toOne(), name='Batch_ID'))}, MilestoneMapping, meta::relational::tests::testRuntime(), ^meta::relational::runtime::RelationalExecutionContext(), [], [], meta::relational::extension::relationalExtensions()); + let validation = validate({|Product.all($date)}, [col(x|$x.id, 'id')], {t|$t->extend(^BasicColumnSpecification(func=x:TDSRow[1] | $batch->toOne(), name='Batch_ID'))}, MilestoneMapping, meta::external::store::relational::tests::testRuntime(), ^meta::relational::runtime::RelationalExecutionContext(), [], [], meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id", 1 as "Batch_ID" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0"', - 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id", 1 as "Batch_ID" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = DATE\'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = DATE\'2010-10-10\') as "unionalias_0"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id", 1 as "Batch_ID" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id", 1 as "Batch_ID" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = DATE\'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = DATE\'2010-10-10\') as "unionalias_0"', $validation->sqlRemoveFormatting() ); } @@ -151,10 +152,10 @@ function <> meta::relational::validation::tests::milestoning::testVal { let date = %2010-10-10; let count = 3; - let validation = validate({|Product.all($date)}, [col(x|$x.id, 'id')], {t|$t->groupBy(['CONSTRAINT_ID'], agg('Sum', x|$x.getInteger('id') + $count, y|$y->sum()))}, MilestoneMapping, meta::relational::tests::testRuntime(), ^meta::relational::runtime::RelationalExecutionContext(), [], [], meta::relational::extension::relationalExtensions()); + let validation = validate({|Product.all($date)}, [col(x|$x.id, 'id')], {t|$t->groupBy(['CONSTRAINT_ID'], agg('Sum', x|$x.getInteger('id') + $count, y|$y->sum()))}, MilestoneMapping, meta::external::store::relational::tests::testRuntime(), ^meta::relational::runtime::RelationalExecutionContext(), [], [], meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", sum(("unionalias_0"."id" + 3)) as "Sum" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0" group by "CONSTRAINT_ID"', - 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", sum(("unionalias_0"."id" + 3)) as "Sum" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = DATE\'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = DATE\'2010-10-10\') as "unionalias_0" group by "CONSTRAINT_ID"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", sum(("unionalias_0"."id" + 3)) as "Sum" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0" group by "CONSTRAINT_ID"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", sum(("unionalias_0"."id" + 3)) as "Sum" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = DATE\'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = DATE\'2010-10-10\') as "unionalias_0" group by "CONSTRAINT_ID"', $validation->sqlRemoveFormatting() ); } @@ -164,10 +165,10 @@ function <> meta::relational::validation::tests::milestoning::testVal let date = %2010-10-10; let batch = 1; let count = 3; - let validation = validate({|Product.all($date)}, [col(x|$x.id, 'id')], {t|$t->extend(col(x:TDSRow[1] | $batch->toOne() + $batch->toOne(), 'Batch_ID'))->groupBy(['CONSTRAINT_ID', 'Batch_ID'], agg('Sum', x|$x.getInteger('id') + $count, y|$y->sum()))}, MilestoneMapping, meta::relational::tests::testRuntime(), ^meta::relational::runtime::RelationalExecutionContext(), [], [], meta::relational::extension::relationalExtensions()); + let validation = validate({|Product.all($date)}, [col(x|$x.id, 'id')], {t|$t->extend(col(x:TDSRow[1] | $batch->toOne() + $batch->toOne(), 'Batch_ID'))->groupBy(['CONSTRAINT_ID', 'Batch_ID'], agg('Sum', x|$x.getInteger('id') + $count, y|$y->sum()))}, MilestoneMapping, meta::external::store::relational::tests::testRuntime(), ^meta::relational::runtime::RelationalExecutionContext(), [], [], meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", (1 + 1) as "Batch_ID", sum(("unionalias_0"."id" + 3)) as "Sum" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0" group by "CONSTRAINT_ID","Batch_ID"', - 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", (1 + 1) as "Batch_ID", sum(("unionalias_0"."id" + 3)) as "Sum" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = DATE\'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = DATE\'2010-10-10\') as "unionalias_0" group by "CONSTRAINT_ID","Batch_ID"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", (1 + 1) as "Batch_ID", sum(("unionalias_0"."id" + 3)) as "Sum" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0" group by "CONSTRAINT_ID","Batch_ID"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", (1 + 1) as "Batch_ID", sum(("unionalias_0"."id" + 3)) as "Sum" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" where not "root".id > 0 and "root".snapshotDate = DATE\'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type) where "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_0".type = \'\' and "root".snapshotDate = DATE\'2010-10-10\') as "unionalias_0" group by "CONSTRAINT_ID","Batch_ID"', $validation->sqlRemoveFormatting() ); } @@ -178,10 +179,10 @@ function <> meta::relational::validation::tests::milestoning::testVal let date = %2010-10-10; let date2 = %2010-10-11; let batch = 1; - let validation = validate({|Product.all($date)}, [col(x|$x.id, 'id'), col(x|$x.classification($date2).type, 'class')], {t|$t->extend(col(x:TDSRow[1] | $batch->toOne(), 'Batch_ID'))}, MilestoneMapping, meta::relational::tests::testRuntime(), ^meta::relational::runtime::RelationalExecutionContext(), [], [], meta::relational::extension::relationalExtensions()); + let validation = validate({|Product.all($date)}, [col(x|$x.id, 'id'), col(x|$x.classification($date2).type, 'class')], {t|$t->extend(col(x:TDSRow[1] | $batch->toOne(), 'Batch_ID'))}, MilestoneMapping, meta::external::store::relational::tests::testRuntime(), ^meta::relational::runtime::RelationalExecutionContext(), [], [], meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id", "unionalias_0"."class" as "class", 1 as "Batch_ID" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id", "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "class" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-11\') where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id", "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "class" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_1" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_1".type) left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-11\') where "productclassificationtablewithbusinesssnapshotmilestoning_1".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_1".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0"', - 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id", "unionalias_0"."class" as "class", 1 as "Batch_ID" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id", "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "class" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-11\') where not "root".id > 0 and "root".snapshotDate = DATE\'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id", "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "class" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_1" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_1".type) left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-11\') where "productclassificationtablewithbusinesssnapshotmilestoning_1".snapshotDate = DATE\'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_1".type = \'\' and "root".snapshotDate = DATE\'2010-10-10\') as "unionalias_0"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id", "unionalias_0"."class" as "class", 1 as "Batch_ID" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id", "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "class" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-11\') where not "root".id > 0 and "root".snapshotDate = \'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id", "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "class" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_1" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_1".type) left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = \'2010-10-11\') where "productclassificationtablewithbusinesssnapshotmilestoning_1".snapshotDate = \'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_1".type = \'\' and "root".snapshotDate = \'2010-10-10\') as "unionalias_0"', + 'select "unionalias_0"."CONSTRAINT_ID" as "CONSTRAINT_ID", "unionalias_0"."ENFORCEMENT_LEVEL" as "ENFORCEMENT_LEVEL", "unionalias_0"."MESSAGE" as "MESSAGE", "unionalias_0"."id" as "id", "unionalias_0"."class" as "class", 1 as "Batch_ID" from (select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id", "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "class" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-11\') where not "root".id > 0 and "root".snapshotDate = DATE\'2010-10-10\' UNION ALL select \'classificationTypeStrNotEMpty\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "root".id as "id", "productclassificationtablewithbusinesssnapshotmilestoning_0".type as "class" from ProductTableWithBusinessSnapshotMilestoning as "root" left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_1" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_1".type) left outer join ProductClassificationTableWithBusinessSnapshotMilestoning as "productclassificationtablewithbusinesssnapshotmilestoning_0" on ("root".type = "productclassificationtablewithbusinesssnapshotmilestoning_0".type and "productclassificationtablewithbusinesssnapshotmilestoning_0".snapshotDate = DATE\'2010-10-11\') where "productclassificationtablewithbusinesssnapshotmilestoning_1".snapshotDate = DATE\'2010-10-10\' and "productclassificationtablewithbusinesssnapshotmilestoning_1".type = \'\' and "root".snapshotDate = DATE\'2010-10-10\') as "unionalias_0"', $validation->sqlRemoveFormatting() ); } @@ -191,10 +192,10 @@ function <> meta::relational::validation::tests::milestoning::testVal let date = %2010-10-10; let date2 = %2010-10-11; let batch = 1; - let validation = validate({|Product.all($date)}, [col(x|$x.id, 'id')], {t|$t->extend(col(x:TDSRow[1] | $batch->toOne(), 'Batch_ID'))}, MilestoneUnionMapping, meta::relational::tests::testRuntime(), ^meta::relational::runtime::RelationalExecutionContext(), ['idNotNegative'], [], meta::relational::extension::relationalExtensions()); + let validation = validate({|Product.all($date)}, [col(x|$x.id, 'id')], {t|$t->extend(col(x:TDSRow[1] | $batch->toOne(), 'Batch_ID'))}, MilestoneUnionMapping, meta::external::store::relational::tests::testRuntime(), ^meta::relational::runtime::RelationalExecutionContext(), ['idNotNegative'], [], meta::relational::extension::relationalExtensions()); assertEqualsH2Compatible( - 'select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "unionBase"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" as "id", 1 as "Batch_ID" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid", "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2010-10-10\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid", null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2010-10-10\') as "unionBase" where not "unionBase"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" > 0', - 'select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "unionBase"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" as "id", 1 as "Batch_ID" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid", "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2010-10-10\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid", null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2010-10-10\') as "unionBase" where not "unionBase"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" > 0', + 'select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "unionBase"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" as "id", 1 as "Batch_ID" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid", "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2010-10-10\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid", null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = \'2010-10-10\') as "unionBase" where not "unionBase"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" > 0', + 'select \'idNotNegative\' as "CONSTRAINT_ID", \'Error\' as "ENFORCEMENT_LEVEL", \'\' as "MESSAGE", "unionBase"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" as "id", 1 as "Batch_ID" from (select "root".snapshotDate as "snapshotDate_0", null as "snapshotDate_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid", "root".id as "pk_0_0", null as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2010-10-10\' UNION ALL select null as "snapshotDate_0", "root".snapshotDate as "snapshotDate_1", "root".id as "ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid", null as "pk_0_0", "root".id as "pk_0_1" from ProductTableWithBusinessSnapshotMilestoning as "root" where "root".snapshotDate = DATE\'2010-10-10\') as "unionBase" where not "unionBase"."ProductTableWithBusinessSnapshotMilestoningid_ProductTableWithBusinessSnapshotMilestoningid" > 0', $validation->sqlRemoveFormatting() ); } @@ -236,29 +237,29 @@ Mapping meta::relational::validation::tests::milestoning::MilestoneMapping Mapping meta::relational::validation::tests::milestoning::MilestoneUnionMapping ( include meta::relational::tests::milestoning::businessSnapshotMilestoningMap - - + + *meta::relational::validation::tests::milestoning::Product : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(p1, p2) } - + meta::relational::validation::tests::milestoning::Product[p1] extends [p] : Relational { classification[c1] : [meta::relational::tests::milestoning::db]@ProductWithBusinessSnapshotMilestoning_ClassificationWithBusinessSnapshotMilestoning } - + meta::relational::validation::tests::milestoning::Product[p2] extends [p] : Relational { classification[c2] : [meta::relational::tests::milestoning::db]@ProductWithBusinessSnapshotMilestoning_ClassificationWithBusinessSnapshotMilestoning } - + *meta::relational::validation::tests::milestoning::ProductClassification : Operation { meta::pure::router::operations::union_OperationSetImplementation_1__SetImplementation_MANY_(c1, c2) } - + meta::relational::validation::tests::milestoning::ProductClassification[c1] extends [c] : Relational { } - + meta::relational::validation::tests::milestoning::ProductClassification[c2] extends [c] : Relational { } -) \ No newline at end of file +) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/validation.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/validation.pure index dafee94a012..e170391994d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/validation.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/validation.pure @@ -19,13 +19,16 @@ import meta::pure::router::execution::*; import meta::pure::router::execution::*; import meta::pure::router::clustering::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::relational::validation::functions::*; import meta::relational::metamodel::*; import meta::relational::mapping::*; import meta::pure::constraints::functions::*; import meta::relational::validation::*; import meta::pure::metamodel::constraint::*; +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::*; @@ -108,12 +111,12 @@ meta::relational::validation::generateValidationQuery( $constraint; ); ); - + assertNotEmpty($constraints, 'Class does not have any constraints in the hierarchy to validate'); let classMapping = $m->rootClassMappingByClass($class); assert($classMapping->size() == 1, | 'No class mapping found for the class \'' + $class.name->toOne() + '\' in the mapping \'' + $m.name->toOne() + '\''); - + let lambda = {|^TabularDataSet()}; let tdsExpression = $constraints->tail()->fold({constraint, expr | diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/validationAlloy.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/validationAlloy.pure index 0e2325bfec6..06bad82a6ed 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/validationAlloy.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/validation/validationAlloy.pure @@ -16,12 +16,14 @@ import meta::pure::mapping::*; import meta::pure::extension::*; import meta::relational::extension::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::graphFetch::execution::*; import meta::relational::validation::functions::*; import meta::relational::validation::alloy::*; import meta::pure::metamodel::constraint::*; import meta::pure::executionPlan::*; import meta::pure::graphFetch::*; +import meta::core::runtime::*; import meta::pure::runtime::*; Class meta::relational::validation::alloy::ClassValidationException @@ -181,4 +183,4 @@ function <> meta::relational::validation::alloy::runtimeExpressi let ve = ^VariableExpression(name=$constraintName, multiplicity=PureOne, genericType=$typeGt); let rfe = $runtimeFactory.expressionSequence->at(0)->evaluateAndDeactivate()->cast(@FunctionExpression); ^$rfe(parametersValues=$iv->concatenate($ve)); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/contract/contract.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/contract/contract.pure index 9ab34031007..69538c66346 100644 --- a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/contract/contract.pure +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/contract/contract.pure @@ -1,6 +1,7 @@ import meta::pure::store::*; import meta::pure::mapping::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::pure::extension::*; import meta::rel::mapping::*; @@ -24,17 +25,17 @@ function meta::rel::contract::contract(): StoreContract[1] { // ExecutionPlan Generation ------------------------------------------------------------------------- supportsStreamFunction = meta::rel::mapping::supportsStream_FunctionExpression_1__Boolean_1_, - // ------------------------------------------------------------------------------------ ExecutionPlan + // ------------------------------------------------------------------------------------ ExecutionPlan // Core --------------------------------------------------------------------------------------------- supportsSetImplementation = s:SetImplementation[1]|$s->instanceOf(RelSetImplementation), supportsStore = s:Store[1] | $s->instanceOf(meta::rel::metamodel::store::RAIDatabase), - resolveStoreFromSetImplementation = {s:InstanceSetImplementation[1] | + resolveStoreFromSetImplementation = {s:InstanceSetImplementation[1] | $s.stores->toOne(); }, - // --------------------------------------------------------------------------------------------- Core + // --------------------------------------------------------------------------------------------- Core // DEPRECTAED AND TO BE REMOVED executeStoreQuery = meta::rel::mapping::execution_StoreQuery_1__RoutedValueSpecification_$0_1$__Mapping_1__Runtime_1__ExecutionContext_1__Extension_MANY__DebugContext_1__Result_1_ ) -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/mapping/execution.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/mapping/execution.pure index 4715e02e9cb..5ee86184e2e 100644 --- a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/mapping/execution.pure +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/mapping/execution.pure @@ -19,12 +19,12 @@ Class meta::rel::mapping::QueryActivity extends meta::pure::mapping::Activity { } function meta::rel::mapping::execution( - sq: meta::pure::mapping::StoreQuery[1], - _ext: RoutedValueSpecification[0..1], - mapping: meta::pure::mapping::Mapping[1], - runtime: meta::pure::runtime::Runtime[1], - exeCtx: meta::pure::runtime::ExecutionContext[1], - extensions: meta::pure::extension::Extension[*], + sq: meta::pure::mapping::StoreQuery[1], + _ext: RoutedValueSpecification[0..1], + mapping: meta::pure::mapping::Mapping[1], + runtime: meta::core::runtime::Runtime[1], + exeCtx: meta::pure::runtime::ExecutionContext[1], + extensions: meta::pure::extension::Extension[*], debug: DebugContext[1] ): meta::pure::mapping::Result[1] { if (!$sq.store->instanceOf(RAIDatabase), | fail('Rel queries can only be executed against an instance of `RAIDatabase`'), | ''); @@ -41,38 +41,38 @@ function <> meta::rel::mapping::execution( let result = $query ->intoPExpr() - ->andThen({node: PExpr[1] | + ->andThen({node: PExpr[1] | //$debug->debug(| 'PURE Expression plan:'); //$debug->debug(| $node->meta::rel::compile::ir::utils::display()); $node->compile({_a: Any[1] | error('Unexpected error during compilation.'); }, $state); }) - ->andThen({state: CompilationState[1] | + ->andThen({state: CompilationState[1] | $debug->debug(| 'Column names:'); $debug->debug(| $state.cols.names); $state.current ->okOr(| 'No current expression.') - ->andThen({expr: Expr[1] | + ->andThen({expr: Expr[1] | let type = $query.genericType.rawType; // We distinguish three cases. // 1. The type of the query may be a class belonging to our mapping. - // 2. The type of the query may be `TabularDataSet`, in which case we + // 2. The type of the query may be `TabularDataSet`, in which case we // interpret the query results as a table. // 3. The type may be a primitive type. $type->match([ {class: Class[1] | switch([ // Handles case 2. - case($class == TabularDataSet, {| + case($class == TabularDataSet, {| // Return the new state. - let outputBody = + let outputBody = $state.cols.names - ->map({col: String[1] | + ->map({col: String[1] | $expr ->appl([label($col), var('i')]) }); - let output = + let output = def( rel('output'), if ($outputBody->isEmpty(), | reltrue(), {| @@ -98,7 +98,7 @@ function <> meta::rel::mapping::execution( ->andThen({set: RelSetImplementation[1] | $set ->propertyOutputs() - ->them({rules: Pair[*] | + ->them({rules: Pair[*] | ^$state( program=$state .program @@ -133,7 +133,7 @@ function <> meta::rel::mapping::execution( let compiled = $unwrapped.program->render(); ^meta::pure::mapping::Result( - values=[], + values=[], activities=[^QueryActivity(relSource=$compiled)] ); }, {| @@ -146,13 +146,13 @@ function <> meta::rel::mapping::execution( /** * Helper function which generates output rules for the property mappings * belonging to `set`. Output rules take the format - * + * * ```rel * def output[:property] = Class:property[x] for x in output[:query] * ``` - * + * * Here, `Class:property` is the property expression associated to the property - * named `property`. This function assumes that query results are stored in + * named `property`. This function assumes that query results are stored in * `output[:query]` */ function <> meta::rel::mapping::propertyOutputs( @@ -160,19 +160,19 @@ function <> meta::rel::mapping::propertyOutputs( ): Result|*>[1] { $set.propertyMappings ->tryCastm(@RelPropertyMapping) - ->them({properties: RelPropertyMapping[*] | - let primitiveProperties = + ->them({properties: RelPropertyMapping[*] | + let primitiveProperties = $properties ->filter(p: RelPropertyMapping[1] | $p.property->isPrimitiveValueProperty()); - + let exprs = zip( $primitiveProperties .property .name - ->map(n | label($n)), + ->map(n | label($n)), $primitiveProperties.target ); - + $exprs ->map({pair | $pair.first @@ -207,15 +207,15 @@ function meta::rel::mapping::supportsStream(f: FunctionExpression[1]): Boolean[1 } function meta::rel::mapping::planExecution( - sq: meta::pure::mapping::StoreQuery[1], - ext: RoutedValueSpecification[0..1], - mapping: meta::pure::mapping::Mapping[0..1], - runtime: meta::pure::runtime::Runtime[0..1], - exeCtx: meta::pure::runtime::ExecutionContext[1], - extensions: meta::pure::router::extension::RouterExtension[*], + sq: meta::pure::mapping::StoreQuery[1], + ext: RoutedValueSpecification[0..1], + mapping: meta::pure::mapping::Mapping[0..1], + runtime: meta::core::runtime::Runtime[0..1], + exeCtx: meta::pure::runtime::ExecutionContext[1], + extensions: meta::pure::router::extension::RouterExtension[*], debug:DebugContext[1] ): ExecutionNode[1] { fail('Not implemented'); - + ^ExecutionNode(resultType=^ResultType(type=^Type())); -} \ No newline at end of file +} diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/runtime/connection.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/runtime/connection.pure index a002fd8c047..28f68387338 100644 --- a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/runtime/connection.pure +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/runtime/connection.pure @@ -1,24 +1,25 @@ import meta::rel::runtime::*; +import meta::core::runtime::*; -Class meta::rel::runtime::TestConnection extends meta::pure::runtime::Connection { +Class meta::rel::runtime::TestConnection extends meta::core::runtime::Connection { onExecute: Function<{String[1]->Any[*]}>[0..1]; } function meta::rel::runtime::TestConnection( element: Any[1], onExecute: Function<{String[1]->Any[*]}>[0..1] -): TestConnection[1] { - ^TestConnection(onExecute=$onExecute, element=$element); +): ConnectionStore[1] { + ^ConnectionStore(element=$element,connection=^TestConnection(onExecute=$onExecute)); } -function meta::rel::runtime::TestConnection(element: Any[1]): TestConnection[1] { +function meta::rel::runtime::TestConnection(element: Any[1]): ConnectionStore[1] { TestConnection($element, []); } -function meta::rel::runtime::query(connection: TestConnection[1], query: FunctionDefinition<{->Any[*]}>[1]): Any[*] { +function meta::rel::runtime::query(connection: ConnectionStore[1], query: FunctionDefinition<{->Any[*]}>[1]): Any[*] { let schema = $connection.element->cast(@meta::rel::mapping::frontend::RAISchema); - let runtime = ^meta::pure::runtime::Runtime(connections=$connection); + let runtime = ^meta::core::runtime::Runtime(connectionStores=$connection); let result = execute( $query, diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/testutils/testutils.pure b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/testutils/testutils.pure index 3bca21ddca6..02f04ed98f5 100644 --- a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/testutils/testutils.pure +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/src/main/resources/core_external_query_relationalai/test/testutils/testutils.pure @@ -1,18 +1,19 @@ import meta::rel::runtime::*; import meta::rel::mapping::frontend::*; import meta::pure::mapping::*; +import meta::core::runtime::*; -function meta::rel::test::testutils::testConnection(schema: RAISchema[1]): TestConnection[1] { +function meta::rel::test::testutils::testConnection(schema: RAISchema[1]): ConnectionStore[1] { $schema->TestConnection(); } -function meta::rel::test::testutils::doQuery(connection: meta::pure::runtime::Connection[1], query: FunctionDefinition<{->Any[*]}>[1]): Result[1] { +function meta::rel::test::testutils::doQuery(connection: meta::core::runtime::ConnectionStore[1], query: FunctionDefinition<{->Any[*]}>[1]): Result[1] { let schema = $connection.element->cast(@RAISchema); execute( $query, $schema.mapping, - ^meta::pure::runtime::Runtime(connections=$connection), + ^meta::core::runtime::Runtime(connectionStores=$connection), meta::rel::extension::defaultRAIExtension()//, debug() ); -} +} diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/src/test/resources/org/finos/legend/engine/pure/dsl/service/execution/test/simpleRelationalService.pure b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/src/test/resources/org/finos/legend/engine/pure/dsl/service/execution/test/simpleRelationalService.pure index e8707c6e2a8..2fb43cc103f 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/src/test/resources/org/finos/legend/engine/pure/dsl/service/execution/test/simpleRelationalService.pure +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/src/test/resources/org/finos/legend/engine/pure/dsl/service/execution/test/simpleRelationalService.pure @@ -143,7 +143,7 @@ function test::testMultiExpressionQueryWithMandatoryTemporalDate(businessDate: S function test::fetchWithUserId(): String[1] { - let currentUser = meta::pure::runtime::currentUserId(); + let currentUser = meta::core::runtime::currentUserId(); test::Person.all()->filter(p|$p.firstName->toLower() == $currentUser)->graphFetch(#{test::Person{firstName,lastName}}#)->serialize(#{test::Person{firstName,lastName}}#); } @@ -306,4 +306,4 @@ Runtime test::Runtime }# ] ]; -} \ No newline at end of file +} diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/src/main/java/org/finos/legend/engine/language/pure/dsl/service/generation/ServicePlanGenerator.java b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/src/main/java/org/finos/legend/engine/language/pure/dsl/service/generation/ServicePlanGenerator.java index eb9dafdff08..3f52c1bfbe0 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/src/main/java/org/finos/legend/engine/language/pure/dsl/service/generation/ServicePlanGenerator.java +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/src/main/java/org/finos/legend/engine/language/pure/dsl/service/generation/ServicePlanGenerator.java @@ -45,7 +45,7 @@ import org.finos.legend.pure.generated.Root_meta_pure_executionPlan_ExecutionOptionContext_Impl; import org.finos.legend.pure.generated.Root_meta_pure_extension_Extension; import org.finos.legend.pure.generated.Root_meta_pure_runtime_ExecutionContext; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Runtime; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Runtime; import org.finos.legend.pure.generated.core_service_service_helperFunctions; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.Mapping; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.LambdaFunction; @@ -92,7 +92,7 @@ public static SingleExecutionPlan generateSingleExecutionPlan(PureSingleExecutio public static SingleExecutionPlan generateSingleExecutionPlan(PureSingleExecution singleExecution, Root_meta_pure_runtime_ExecutionContext context, PureModel pureModel, String clientVersion, PlanPlatform platform, String planId, RichIterable extensions, Iterable transformers) { Mapping mapping = singleExecution.mapping != null ? pureModel.getMapping(singleExecution.mapping) : null; - Root_meta_pure_runtime_Runtime runtime = singleExecution.runtime != null ? HelperRuntimeBuilder.buildPureRuntime(singleExecution.runtime, pureModel.getContext()) : null; + Root_meta_core_runtime_Runtime runtime = singleExecution.runtime != null ? HelperRuntimeBuilder.buildPureRuntime(singleExecution.runtime, pureModel.getContext()) : null; LambdaFunction lambda = HelperValueSpecificationBuilder.buildLambda(singleExecution.func.body, singleExecution.func.parameters, pureModel.getContext()); return getSingleExecutionPlan(singleExecution.executionOptions, context, pureModel, clientVersion, platform, planId, extensions, transformers, mapping, runtime, lambda); } @@ -122,7 +122,7 @@ private static ExecutionPlan generateExecutionPlan(String servicePath, Execution throw new IllegalArgumentException("Unsupported execution type: " + execution); } - private static SingleExecutionPlan getSingleExecutionPlan(List executionOptions, Root_meta_pure_runtime_ExecutionContext context, PureModel pureModel, String clientVersion, PlanPlatform platform, String planId, RichIterable extensions, Iterable transformers, Mapping mapping, Root_meta_pure_runtime_Runtime runtime, LambdaFunction lambda) + private static SingleExecutionPlan getSingleExecutionPlan(List executionOptions, Root_meta_pure_runtime_ExecutionContext context, PureModel pureModel, String clientVersion, PlanPlatform platform, String planId, RichIterable extensions, Iterable transformers, Mapping mapping, Root_meta_core_runtime_Runtime runtime, LambdaFunction lambda) { return PlanGenerator.generateExecutionPlan(lambda, mapping, runtime, (executionOptions == null) ? context : getExecutionOptionContext(executionOptions, pureModel), pureModel, clientVersion, platform, planId, extensions, transformers); } diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/src/main/resources/core_service/service/extension.pure b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/src/main/resources/core_service/service/extension.pure index 31f238970d5..c5070ac09e3 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/src/main/resources/core_service/service/extension.pure +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/src/main/resources/core_service/service/extension.pure @@ -1,5 +1,6 @@ import meta::pure::extension::*; import meta::pure::router::routing::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::router::store::routing::*; import meta::pure::router::store::metamodel::*; @@ -51,4 +52,4 @@ function meta::legend::service::serviceExtension() : Extension[1] ] ) ) -} \ No newline at end of file +} diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/src/main/resources/core_service/service/metamodel.pure b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/src/main/resources/core_service/service/metamodel.pure index 059f3edf721..a25ab5db551 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/src/main/resources/core_service/service/metamodel.pure +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/src/main/resources/core_service/service/metamodel.pure @@ -18,7 +18,7 @@ import meta::pure::executionPlan::*; import meta::pure::mapping::*; -import meta::pure::runtime::*; +import meta::core::runtime::*; Class meta::legend::service::metamodel::Service extends PackageableElement, meta::pure::test::Testable [ @@ -397,4 +397,4 @@ Diagram meta::legend::service::metamodel::ServiceDiagram(width=0.0, height=0.0) stereotypesVisible=true, nameVisible=true, lineStyle=SIMPLE) -} \ No newline at end of file +} diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/src/main/java/org/finos/legend/engine/language/pure/dsl/service/compiler/toPureGraph/HelperServiceBuilder.java b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/src/main/java/org/finos/legend/engine/language/pure/dsl/service/compiler/toPureGraph/HelperServiceBuilder.java index 3ab4fbf052c..260d2416306 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/src/main/java/org/finos/legend/engine/language/pure/dsl/service/compiler/toPureGraph/HelperServiceBuilder.java +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/src/main/java/org/finos/legend/engine/language/pure/dsl/service/compiler/toPureGraph/HelperServiceBuilder.java @@ -83,7 +83,7 @@ public static Root_meta_legend_service_metamodel_Execution processServiceExecuti { PureSingleExecution pureSingleExecution = (PureSingleExecution) execution; Mapping mapping = null; - Root_meta_pure_runtime_Runtime runtime = null; + Root_meta_core_runtime_Runtime runtime = null; LambdaFunction lambda; if (pureSingleExecution.mapping != null && pureSingleExecution.runtime != null) { @@ -97,7 +97,7 @@ public static Root_meta_legend_service_metamodel_Execution processServiceExecuti { lambda = HelperValueSpecificationBuilder.buildLambda(pureSingleExecution.func, context); } - return new Root_meta_legend_service_metamodel_PureSingleExecution_Impl("", null, context.pureModel.getClass("meta::legend::service::metamodel::PureSingleExecution")) + return new Root_meta_legend_service_metamodel_PureSingleExecution_Impl("", null, context.pureModel.getClass("meta::legend::service::metamodel::PureMultiExecution")) ._func(lambda) ._mapping(mapping) ._runtime(runtime); @@ -134,7 +134,7 @@ private static Root_meta_legend_service_metamodel_KeyedExecutionParameter proces { Mapping mapping = context.resolveMapping(keyedExecutionParameter.mapping, keyedExecutionParameter.mappingSourceInformation); inferEmbeddedRuntimeMapping(keyedExecutionParameter.runtime, keyedExecutionParameter.mapping); - Root_meta_pure_runtime_Runtime runtime = HelperRuntimeBuilder.buildPureRuntime(keyedExecutionParameter.runtime, context); + Root_meta_core_runtime_Runtime runtime = HelperRuntimeBuilder.buildPureRuntime(keyedExecutionParameter.runtime, context); HelperRuntimeBuilder.checkRuntimeMappingCoverage(runtime, Lists.fixedSize.of(mapping), context, keyedExecutionParameter.runtime.sourceInformation); if (!executionKeyValues.add(keyedExecutionParameter.key)) { @@ -284,7 +284,7 @@ public static Root_meta_legend_service_metamodel_ExecutionParameters processExec SingleExecutionParameters execParams = (SingleExecutionParameters) params; Mapping mapping = context.resolveMapping(execParams.mapping, execParams.mappingSourceInformation); inferEmbeddedRuntimeMapping(execParams.runtime, execParams.mapping); - Root_meta_pure_runtime_Runtime runtime = HelperRuntimeBuilder.buildPureRuntime(execParams.runtime, context); + Root_meta_core_runtime_Runtime runtime = HelperRuntimeBuilder.buildPureRuntime(execParams.runtime, context); HelperRuntimeBuilder.checkRuntimeMappingCoverage(runtime, Lists.fixedSize.of(mapping), context, execParams.runtime.sourceInformation); return new Root_meta_legend_service_metamodel_SingleExecutionParameters_Impl("", null, context.pureModel.getClass("meta::legend::service::metamodel::SingleExecutionParameters")) ._key(execParams.key) diff --git a/legend-engine-xts-service/legend-engine-service-post-validation-runner/src/main/java/org/finos/legend/engine/service/post/validation/runner/ServicePostValidationRunner.java b/legend-engine-xts-service/legend-engine-service-post-validation-runner/src/main/java/org/finos/legend/engine/service/post/validation/runner/ServicePostValidationRunner.java index 279a0414bf4..1a9d936618f 100644 --- a/legend-engine-xts-service/legend-engine-service-post-validation-runner/src/main/java/org/finos/legend/engine/service/post/validation/runner/ServicePostValidationRunner.java +++ b/legend-engine-xts-service/legend-engine-service-post-validation-runner/src/main/java/org/finos/legend/engine/service/post/validation/runner/ServicePostValidationRunner.java @@ -40,7 +40,7 @@ import org.finos.legend.pure.generated.Root_meta_legend_service_metamodel_PureSingleExecution_Impl; import org.finos.legend.pure.generated.Root_meta_legend_service_metamodel_Service; import org.finos.legend.pure.generated.Root_meta_pure_extension_Extension; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Runtime; +import org.finos.legend.pure.generated.Root_meta_core_runtime_Runtime; import org.finos.legend.pure.m3.coreinstance.meta.pure.mapping.Mapping; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.LambdaFunction; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.valuespecification.InstanceValue; @@ -70,7 +70,7 @@ abstract class ServicePostValidationRunner protected final SerializationFormat format; protected LambdaFunction queryFunc; protected Mapping mapping; - protected Root_meta_pure_runtime_Runtime runtime; + protected Root_meta_core_runtime_Runtime runtime; public ServicePostValidationRunner(PureModel pureModel, Root_meta_legend_service_metamodel_Service pureService, List rawParams, RichIterable extensions, Iterable transformers, String pureVersion, MutableList profiles, SerializationFormat format,PlanExecutor planExecutor) { diff --git a/legend-engine-xts-service/legend-engine-service-post-validation-runner/src/test/java/org/finos/legend/engine/service/post/validation/runner/TestLegendServicePostValidationRunner.java b/legend-engine-xts-service/legend-engine-service-post-validation-runner/src/test/java/org/finos/legend/engine/service/post/validation/runner/TestLegendServicePostValidationRunner.java index c292a7fb6ee..dcfb0fcc79b 100644 --- a/legend-engine-xts-service/legend-engine-service-post-validation-runner/src/test/java/org/finos/legend/engine/service/post/validation/runner/TestLegendServicePostValidationRunner.java +++ b/legend-engine-xts-service/legend-engine-service-post-validation-runner/src/test/java/org/finos/legend/engine/service/post/validation/runner/TestLegendServicePostValidationRunner.java @@ -141,7 +141,7 @@ public void testFailingObjectService() throws Exception ObjectNode node = new ObjectMapper().readValue(result, ObjectNode.class); Assert.assertEquals("noFirstNamesWithLetterT", node.get("id").asText()); Assert.assertEquals("Expected no first names to begin with the letter T", node.get("message").asText()); - Assert.assertEquals("{\"builder\":{\"_type\":\"classBuilder\",\"mapping\":\"meta::validation::test::PersonMapping\",\"classMappings\":[{\"setImplementationId\":\"meta_validation_test_Person\",\"properties\":[{\"property\":\"firstName\",\"type\":\"String\"},{\"property\":\"lastName\",\"type\":\"String\"},{\"property\":\"age\",\"type\":\"Integer\"}],\"class\":\"meta::validation::test::Person\"}],\"class\":\"meta::validation::test::Person\"},\"activities\":[{\"_type\":\"RelationalExecutionActivity\",\"sql\":\"select \\\"root\\\".ID as \\\"pk_0\\\", \\\"root\\\".FIRSTNAME as \\\"firstName\\\", \\\"root\\\".LASTNAME as \\\"lastName\\\", \\\"root\\\".AGE as \\\"age\\\" from PersonTable as \\\"root\\\" where \\\"root\\\".FIRSTNAME like 'T%'\"}],\"objects\":[{\"firstName\":\"Tom\",\"lastName\":\"Wilson\",\"age\":24,\"alloyStoreObjectReference$\":\"ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDAzNzptZXRhOjp2YWxpZGF0aW9uOjp0ZXN0OjpQZXJzb25NYXBwaW5nOjAwMDAwMDAwMjc6bWV0YV92YWxpZGF0aW9uX3Rlc3RfUGVyc29uOjAwMDAwMDAwMjc6bWV0YV92YWxpZGF0aW9uX3Rlc3RfUGVyc29uOjAwMDAwMDA1MDg6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCIsInRlc3REYXRhU2V0dXBTcWxzIjpbIkRST1AgVEFCTEUgSUYgRVhJU1RTIFBlcnNvblRhYmxlOyIsIkNSRUFURSBUQUJMRSBQZXJzb25UYWJsZSAoSUQgaW50LCBGSVJTVE5BTUUgdmFyY2hhcigyMDApLCBMQVNUTkFNRSB2YXJjaGFyKDIwMCksIEFHRSBpbnQpOyIsIklOU0VSVCBJTlRPIFBlcnNvblRhYmxlIFZBTFVFUyAoMSwgJ1RvbScsICdXaWxzb24nLCAyNCk7IiwiSU5TRVJUIElOVE8gUGVyc29uVGFibGUgVkFMVUVTICgyLCAnRGlodWknLCAnQmFvJywgMzIpOyJdfSwiZWxlbWVudCI6Im1ldGE6OnZhbGlkYXRpb246OnRlc3Q6OlRlc3REQiIsInBvc3RQcm9jZXNzb3JXaXRoUGFyYW1ldGVyIjpbXSwicG9zdFByb2Nlc3NvcnMiOltdLCJ0eXBlIjoiSDIifTowMDAwMDAwMDExOnsicGskXzAiOjF9\"}]}", RelationalResultToJsonDefaultSerializer.removeComment(node.get("violations").toString())); + Assert.assertEquals("{\"builder\":{\"_type\":\"classBuilder\",\"mapping\":\"meta::validation::test::PersonMapping\",\"classMappings\":[{\"setImplementationId\":\"meta_validation_test_Person\",\"properties\":[{\"property\":\"firstName\",\"type\":\"String\"},{\"property\":\"lastName\",\"type\":\"String\"},{\"property\":\"age\",\"type\":\"Integer\"}],\"class\":\"meta::validation::test::Person\"}],\"class\":\"meta::validation::test::Person\"},\"activities\":[{\"_type\":\"RelationalExecutionActivity\",\"sql\":\"select \\\"root\\\".ID as \\\"pk_0\\\", \\\"root\\\".FIRSTNAME as \\\"firstName\\\", \\\"root\\\".LASTNAME as \\\"lastName\\\", \\\"root\\\".AGE as \\\"age\\\" from PersonTable as \\\"root\\\" where \\\"root\\\".FIRSTNAME like 'T%'\"}],\"objects\":[{\"firstName\":\"Tom\",\"lastName\":\"Wilson\",\"age\":24,\"alloyStoreObjectReference$\":\"ASOR:MDAxOjAxMDowMDAwMDAwMDEwOlJlbGF0aW9uYWw6MDAwMDAwMDAzNzptZXRhOjp2YWxpZGF0aW9uOjp0ZXN0OjpQZXJzb25NYXBwaW5nOjAwMDAwMDAwMjc6bWV0YV92YWxpZGF0aW9uX3Rlc3RfUGVyc29uOjAwMDAwMDAwMjc6bWV0YV92YWxpZGF0aW9uX3Rlc3RfUGVyc29uOjAwMDAwMDA0Nzg6eyJfdHlwZSI6IlJlbGF0aW9uYWxEYXRhYmFzZUNvbm5lY3Rpb24iLCJhdXRoZW50aWNhdGlvblN0cmF0ZWd5Ijp7Il90eXBlIjoiaDJEZWZhdWx0In0sImRhdGFzb3VyY2VTcGVjaWZpY2F0aW9uIjp7Il90eXBlIjoiaDJMb2NhbCIsInRlc3REYXRhU2V0dXBTcWxzIjpbIkRST1AgVEFCTEUgSUYgRVhJU1RTIFBlcnNvblRhYmxlOyIsIkNSRUFURSBUQUJMRSBQZXJzb25UYWJsZSAoSUQgaW50LCBGSVJTVE5BTUUgdmFyY2hhcigyMDApLCBMQVNUTkFNRSB2YXJjaGFyKDIwMCksIEFHRSBpbnQpOyIsIklOU0VSVCBJTlRPIFBlcnNvblRhYmxlIFZBTFVFUyAoMSwgJ1RvbScsICdXaWxzb24nLCAyNCk7IiwiSU5TRVJUIElOVE8gUGVyc29uVGFibGUgVkFMVUVTICgyLCAnRGlodWknLCAnQmFvJywgMzIpOyJdfSwiZWxlbWVudCI6IiIsInBvc3RQcm9jZXNzb3JXaXRoUGFyYW1ldGVyIjpbXSwicG9zdFByb2Nlc3NvcnMiOltdLCJ0eXBlIjoiSDIifTowMDAwMDAwMDExOnsicGskXzAiOjF9\"}]}", RelationalResultToJsonDefaultSerializer.removeComment(node.get("violations").toString())); } @Test diff --git a/legend-engine-xts-service/legend-engine-test-runner-service/src/main/java/org/finos/legend/engine/test/runner/service/ServiceTestGenerationHelper.java b/legend-engine-xts-service/legend-engine-test-runner-service/src/main/java/org/finos/legend/engine/test/runner/service/ServiceTestGenerationHelper.java index 72b1620075c..81bbab9b22c 100644 --- a/legend-engine-xts-service/legend-engine-test-runner-service/src/main/java/org/finos/legend/engine/test/runner/service/ServiceTestGenerationHelper.java +++ b/legend-engine-xts-service/legend-engine-test-runner-service/src/main/java/org/finos/legend/engine/test/runner/service/ServiceTestGenerationHelper.java @@ -64,10 +64,7 @@ import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.LocalH2DatasourceSpecification; import org.finos.legend.engine.shared.core.ObjectMapperFactory; import org.finos.legend.engine.shared.core.url.DataProtocolHandler; -import org.finos.legend.pure.generated.Root_meta_pure_functions_collection_List_Impl; -import org.finos.legend.pure.generated.Root_meta_pure_runtime_Connection; -import org.finos.legend.pure.generated.Root_meta_relational_runtime_DatabaseConnection; -import org.finos.legend.pure.generated.core_relational_relational_helperFunctions_helperFunctions; +import org.finos.legend.pure.generated.*; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.valuespecification.InstanceValue; import org.finos.legend.pure.m3.navigation.ProcessorSupport; import org.finos.legend.pure.m4.coreinstance.CoreInstance; @@ -150,7 +147,7 @@ private static boolean hasMultipleConnection(Runtime runtime, PureModel pureMode } if (runtime instanceof RuntimePointer) { - RichIterable connections = pureModel.getRuntime(((RuntimePointer) runtime).runtime)._connections(); + RichIterable connections = pureModel.getRuntime(((RuntimePointer) runtime).runtime)._connectionStores(); return (connections != null) && connections.size() > 1; } throw new UnsupportedOperationException("Unsupported runtime type: " + runtime.getClass().getName()); @@ -330,8 +327,8 @@ private static boolean doesNotContainRelational(Runtime runtime, PureModel pureM } if (runtime instanceof RuntimePointer) { - List connections = pureModel.getRuntime(((RuntimePointer) runtime).runtime)._connections().toList(); - return (connections != null) && (connections.size() == 1) && !(connections.get(0) instanceof Root_meta_relational_runtime_DatabaseConnection); + List connections = pureModel.getRuntime(((RuntimePointer) runtime).runtime)._connectionStores().toList(); + return (connections != null) && (connections.size() == 1) && !(connections.get(0)._connection() instanceof Root_meta_external_store_relational_runtime_DatabaseConnection); } throw new UnsupportedOperationException("Unsupported runtime type: " + runtime.getClass().getName()); } diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ServiceStoreCompilerExtension.java b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ServiceStoreCompilerExtension.java index 9684b892df6..a06e2ec528c 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ServiceStoreCompilerExtension.java +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/ServiceStoreCompilerExtension.java @@ -92,7 +92,7 @@ public List> getExtraConnectionValueProcessors() + public List> getExtraConnectionValueProcessors() { return Lists.mutable.with( (connectionValue, context) -> @@ -102,7 +102,8 @@ public ListinstanceOf(ServiceStore), | 'Expected a ServiceStore. Found - ' + $store->cast(@Store)->elementToPath()); - + let fe = $sq.fe->evaluateAndDeactivate(); - + let rootTree = $clusteredTree->byPassClusteringInfo()->cast(@RoutedRootGraphFetchTree); - let batchSize = if($fe.func == graphFetch_T_MANY__RootGraphFetchTree_1__Integer_1__T_MANY_ || $fe.func == meta::pure::graphFetch::execution::graphFetchChecked_T_MANY__RootGraphFetchTree_1__Integer_1__Checked_MANY_, - | $fe->instanceValuesAtParameter(2, $sq.inScopeVars)->toOne()->cast(@Integer), + let batchSize = if($fe.func == graphFetch_T_MANY__RootGraphFetchTree_1__Integer_1__T_MANY_ || $fe.func == meta::pure::graphFetch::execution::graphFetchChecked_T_MANY__RootGraphFetchTree_1__Integer_1__Checked_MANY_, + | $fe->instanceValuesAtParameter(2, $sq.inScopeVars)->toOne()->cast(@Integer), | 1); let connection = $runtime->connectionByElement($store); - + let sourceTree = calculateSourceTree($rootTree, $mapping, $extensions); let sourceTreeExtended = if($enableConstraints, | $sourceTree->ensureConstraintsRequirements(), | $sourceTree); - + let serviceSetImpl = $rootTree.sets->toOne()->cast(@RootServiceInstanceSetImplementation); - + let setsProcessed = if($ext->isNotEmpty() && $ext->toOne()->instanceOf(StoreMappingRoutedValueSpecification), | $ext->cast(@StoreMappingRoutedValueSpecification).processedChainSets, |[]); let map = resolveParamMapForChainProcessing($setsProcessed, $sq.inScopeVars, $debug); let serviceStoreQueryProcessedState = $sq->processServiceStoreQuery($map, $debug); @@ -81,13 +83,13 @@ function meta::external::store::service::executionPlan::generation::planRootGrap |$sourceNode, |assert($setsProcessed->cast(@PureInstanceSetImplementation).filter->isEmpty(), | 'Service Store does not support ->take when filters added in chained M2m mapping'); let fromCluster = ^StoreMappingClusteredValueSpecification( - val = $fe, - store = $store, + val = $fe, + store = $store, s = meta::external::store::service::contract::serviceStoreStoreContract(), mapping = $mapping, - executable=true, - multiplicity = $fe.multiplicity, - genericType = $fe.genericType, + executable=true, + multiplicity = $fe.multiplicity, + genericType = $fe.genericType, openVars = $sq.inScopeVars ); ^LimitExecutionNode(limit = $serviceStoreQueryProcessedState.recordsToBeRead->toOne(), @@ -259,7 +261,7 @@ function meta::external::store::service::executionPlan::generation::nodeFromServ binding = $serviceMapping.service.response.binding, executionNodes = $node, config = $config, - enableConstraints = $enableConstraints, + enableConstraints = $enableConstraints, checked = $checked ); } @@ -289,7 +291,7 @@ function meta::external::store::service::executionPlan::generation::getServicePa type = $path.path->at(0)->cast(@PropertyPathElement).property->functionReturnType().rawType->toOne(), multiplicity = $path.path->at(0)->cast(@PropertyPathElement).property->functionReturnMultiplicity())); pair(^$pb(transform = ^$transform(expressionSequence = $updatedTransformAndPaths.first->cast(@ValueSpecification))), ^List(values = $requiredVariableInputs));); - + ^ServiceParametersResolutionExecutionNode(requiredVariableInputs = $updatedMappingAndSources.second.values, requestParametersBuildInfo = ^ServiceRequestParametersBuildInfo(parameterBuildInfoList = $updatedMappingAndSources.first), resultType = ^DataTypeResultType(type = Map));); @@ -299,12 +301,12 @@ function meta::external::store::service::executionPlan::generation::getServiceRe { let requestBodyBuildInfo = $serviceMapping.requestBuildInfo.requestBodyBuildInfo; let requestBodyType = $serviceMapping.service.requestBody; - + if($requestBodyBuildInfo->isEmpty(), |[], |let requestBodyBuildInfoOne = $requestBodyBuildInfo->toOne(); let updatedTransformAndPropPath = $requestBodyBuildInfoOne.transform.expressionSequence->toOne()->findAndReplacePropertyPathsInValueSpecification([], $paramMap)->toOne(); - + let resultType = if($requestBodyType->toOne()->instanceOf(ComplexTypeReference), |^ClassResultType(setImplementations = [], type = $requestBodyType->cast(@ComplexTypeReference).type->toOne()), |^DataTypeResultType(type = String)); @@ -315,7 +317,7 @@ function meta::external::store::service::executionPlan::generation::getServiceRe let requestBodyResolutionNode = ^PureExpressionPlatformExecutionNode(expression = $updatedTransformAndPropPath.first->cast(@ValueSpecification), requiredVariableInputs = $requiredVariableInputs, resultType = $resultType); - + let serializedRequestBody = ^ExternalFormatExternalizeExecutionNode ( resultType = ^ResultType(type=String), @@ -329,14 +331,14 @@ function meta::external::store::service::executionPlan::generation::getServiceRe ^AllocationExecutionNode(varName = $serviceMapping.service.owner->elementToPath('_') + '_' + $serviceMapping.service.resolveFullPathRecursively()->replace('/', '_') + '_requestBody', executionNodes = $serializedRequestBody, resultType = ^VoidResultType(type = meta::pure::router::store::routing::Void)); - ); + ); } function <> meta::external::store::service::executionPlan::generation::generateRootTreeFromBinding(classIn:meta::pure::metamodel::type::Class[1], binding:Binding[1], extensions:Extension[*]): RootGraphFetchTree[1] { let externalFormatContract = $extensions.availableExternalFormats->getExternalFormatContractForContentType($binding.contentType); let bindingDetail = $externalFormatContract.validateBinding($binding); - + assert($bindingDetail->instanceOf(SuccessfulBindingDetail), | 'Binding validation failed.\n' + $bindingDetail->cast(@FailedBindingDetail).errorMessages->joinStrings('\n')); let propertiesInScope = $bindingDetail->cast(@SuccessfulBindingDetail).mappedPropertiesForClass($classIn); @@ -365,24 +367,24 @@ function meta::external::store::service::executionPlan::generation::findAndRepla function meta::external::store::service::executionPlan::generation::findAndReplacePropertyPathsInValueSpecification(vs:ValueSpecification[1], propertiesInCurrentPath:AbstractProperty[*], paramMap:Map[1]):Pair>>[0..1] { $vs->deepByPassRouterInfo() - ->match([fe:FunctionExpression[1] | let newPropertiesInCurrentPath = if ($fe.func->instanceOf(AbstractProperty), + ->match([fe:FunctionExpression[1] | let newPropertiesInCurrentPath = if ($fe.func->instanceOf(AbstractProperty), | $fe.func->cast(@AbstractProperty)->concatenate($propertiesInCurrentPath);, | [];); - + let res = $fe.parametersValues->map(v | $v->findAndReplacePropertyPathsInValueSpecification($newPropertiesInCurrentPath, $paramMap)); - + let propPaths = $newPropertiesInCurrentPath->map(p | ^PropertyPathElement(property=$p)); - let newPath = if($newPropertiesInCurrentPath->isNotEmpty(), + let newPath = if($newPropertiesInCurrentPath->isNotEmpty(), | ^Path(path=$propPaths->toOneMany(), start=$fe.parametersValues->toOne().genericType), | []); - + let updatedFe = if ($fe.func->instanceOf(AbstractProperty), |let newPathString = pathAsString($newPath->toOne()); ^VariableExpression(name = if($paramMap->get($newPathString)->isEmpty(), |$newPathString, | $paramMap->get($newPathString)->toOne()), - genericType = ^GenericType(rawType = Any), + genericType = ^GenericType(rawType = Any), multiplicity = $fe.func->functionReturnMultiplicity())->wrapVariableExpressionInCast($fe.func->cast(@AbstractProperty));, |^$fe(parametersValues = $res.first->cast(@ValueSpecification))); - + let updatedPathList = if($newPropertiesInCurrentPath->isEmpty() || (($fe.parametersValues->size() == 1) && ($fe.parametersValues->at(0)->instanceOf(SimpleFunctionExpression)) && ($fe.parametersValues->at(0)->cast(@SimpleFunctionExpression).func->instanceOf(AbstractProperty))), | ^List>(values = $res.second.values), | ^List>(values = $res.second.values->concatenate($newPath))); @@ -395,8 +397,8 @@ function meta::external::store::service::executionPlan::generation::findAndRepla pair(^$l(expressionSequence = $results.first->cast(@ValueSpecification)->toOneMany()), ^List>(values = $results.second.values));, a : Any[1] | pair($a, ^List>(values = []))])); pair(^$i(values = $updatedValues.first), ^List>(values = $updatedValues.second.values));, - ve:VariableExpression[1] | let updatedName = if($paramMap->get($ve.name)->isEmpty(), - | $ve.name, + ve:VariableExpression[1] | let updatedName = if($paramMap->get($ve.name)->isEmpty(), + | $ve.name, | $paramMap->get($ve.name)->toOne()); pair(^$ve(name = $updatedName), ^List>(values = [])); ] @@ -414,7 +416,7 @@ function meta::external::store::service::executionPlan::generation::wrapVariable genericType = $prop->functionReturnType(), importGroup = system::imports::coreImport, parametersValues = - [ + [ $v, ^InstanceValue ( @@ -430,4 +432,4 @@ function meta::external::store::service::executionPlan::generation::pathAsString if($p.start.rawType->toOne()->instanceOf(MappingClass), |$p.start.rawType->cast(@MappingClass).generalizations.general.rawType.name->toOne(), |$p.start.rawType.name->toOne()) + '_' + $p.path->map(prop|$prop->cast(@PropertyPathElement).property.name)->joinStrings('_'); -} \ No newline at end of file +} diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/executionPlan/executionPlan_print.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/executionPlan/executionPlan_print.pure index b753029f145..382167d6b42 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/executionPlan/executionPlan_print.pure +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/executionPlan/executionPlan_print.pure @@ -59,10 +59,7 @@ function meta::external::store::service::executionPlan::toString::limitExecution function meta::external::store::service::executionPlan::toString::serviceStoreConnectionToString(conn:ServiceStoreConnection[1]):String[1] { - let store = 'store="'+$conn.element->cast(@ServiceStore)->elementToPath()+'"'; let baseUrl = 'baseUrl="'+$conn.baseUrl+'"'; - - [$store, $baseUrl]->joinStrings(', '); } function meta::external::store::service::executionPlan::toString::authenticationSchemeToString(s:AuthenticationSchemeRequirement[1], space:String[1], extensions:meta::pure::extension::Extension[*]):String[1] @@ -107,4 +104,4 @@ function meta::external::store::service::executionPlan::toString::serviceStorePa ft: FloatTypeReference[1] | 'Float', ct: ComplexTypeReference[1] | 'Complex(binding = ' + $ct.binding->elementToPath() + ', type = ' + $ct.type->elementToPath() + ')' ]) -} \ No newline at end of file +} diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/extensions/extension.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/extensions/extension.pure index 63b0a640b5a..46577d42992 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/extensions/extension.pure +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/extensions/extension.pure @@ -23,6 +23,7 @@ import meta::pure::mapping::*; import meta::pure::router::clustering::*; import meta::pure::extension::*; import meta::pure::store::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::java::generation::code::*; diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/metamodel/serviceStoreRuntime.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/metamodel/serviceStoreRuntime.pure index a56a2251d73..91a79fe9995 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/metamodel/serviceStoreRuntime.pure +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/metamodel/serviceStoreRuntime.pure @@ -12,16 +12,17 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::runtime::connection::authentication::*; import meta::external::store::service::metamodel::*; Class meta::external::store::service::metamodel::runtime::ServiceStoreConnection extends Connection -[ - $this.element->instanceOf(ServiceStore) -] +//[ +// $this.element->instanceOf(ServiceStore) +//] { baseUrl : String[1]; authenticationSpecifications : Map[1]; -} \ No newline at end of file +} diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_21_0/transfers/connection_serviceStore.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_21_0/transfers/connection_serviceStore.pure index a40f7cc29f0..d6dcc5ef268 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_21_0/transfers/connection_serviceStore.pure +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_21_0/transfers/connection_serviceStore.pure @@ -20,7 +20,7 @@ function meta::protocols::pure::v1_21_0::transformation::fromPureGraph::connecti { ^meta::protocols::pure::v1_21_0::metamodel::connection::store::service::ServiceStoreConnection( _type = 'serviceStore', - element = $connection.element->cast(@ServiceStore)->elementToPath(), + element = '', baseUrl = $connection.baseUrl ); } diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_22_0/transfers/connection_serviceStore.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_22_0/transfers/connection_serviceStore.pure index 61d6b197540..a7f85ccdb95 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_22_0/transfers/connection_serviceStore.pure +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_22_0/transfers/connection_serviceStore.pure @@ -20,7 +20,7 @@ function meta::protocols::pure::v1_22_0::transformation::fromPureGraph::connecti { ^meta::protocols::pure::v1_22_0::metamodel::connection::store::service::ServiceStoreConnection( _type = 'serviceStore', - element = $connection.element->cast(@ServiceStore)->elementToPath(), + element = '', baseUrl = $connection.baseUrl ); } diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_23_0/transfers/connection_serviceStore.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_23_0/transfers/connection_serviceStore.pure index b42a20bea21..9acbc01c2b0 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_23_0/transfers/connection_serviceStore.pure +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_23_0/transfers/connection_serviceStore.pure @@ -20,7 +20,7 @@ function meta::protocols::pure::v1_23_0::transformation::fromPureGraph::connecti { ^meta::protocols::pure::v1_23_0::metamodel::connection::store::service::ServiceStoreConnection( _type = 'serviceStore', - element = $connection.element->cast(@ServiceStore)->elementToPath(), + element = '', baseUrl = $connection.baseUrl ); } diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_24_0/transfers/connection_serviceStore.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_24_0/transfers/connection_serviceStore.pure index 97724b3d04c..95b4b4fa3c1 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_24_0/transfers/connection_serviceStore.pure +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_24_0/transfers/connection_serviceStore.pure @@ -20,7 +20,7 @@ function meta::protocols::pure::v1_24_0::transformation::fromPureGraph::connecti { ^meta::protocols::pure::v1_24_0::metamodel::connection::store::service::ServiceStoreConnection( _type = 'serviceStore', - element = $connection.element->cast(@ServiceStore)->elementToPath(), + element = '', baseUrl = $connection.baseUrl ); } diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_25_0/transfers/connection_serviceStore.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_25_0/transfers/connection_serviceStore.pure index 812d313a268..28aace8f372 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_25_0/transfers/connection_serviceStore.pure +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_25_0/transfers/connection_serviceStore.pure @@ -20,7 +20,7 @@ function meta::protocols::pure::v1_25_0::transformation::fromPureGraph::connecti { ^meta::protocols::pure::v1_25_0::metamodel::connection::store::service::ServiceStoreConnection( _type = 'serviceStore', - element = $connection.element->cast(@ServiceStore)->elementToPath(), + element = '', baseUrl = $connection.baseUrl ); } diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_26_0/transfers/connection_serviceStore.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_26_0/transfers/connection_serviceStore.pure index 5ed9332fcbe..45a275b0d14 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_26_0/transfers/connection_serviceStore.pure +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_26_0/transfers/connection_serviceStore.pure @@ -20,7 +20,7 @@ function meta::protocols::pure::v1_26_0::transformation::fromPureGraph::connecti { ^meta::protocols::pure::v1_26_0::metamodel::connection::store::service::ServiceStoreConnection( _type = 'serviceStore', - element = $connection.element->cast(@ServiceStore)->elementToPath(), + element = '', baseUrl = $connection.baseUrl ); } diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_27_0/transfers/connection_serviceStore.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_27_0/transfers/connection_serviceStore.pure index f11653af0f5..1227eda3292 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_27_0/transfers/connection_serviceStore.pure +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_27_0/transfers/connection_serviceStore.pure @@ -20,7 +20,7 @@ function meta::protocols::pure::v1_27_0::transformation::fromPureGraph::connecti { ^meta::protocols::pure::v1_27_0::metamodel::connection::store::service::ServiceStoreConnection( _type = 'serviceStore', - element = $connection.element->cast(@ServiceStore)->elementToPath(), + element = '', baseUrl = $connection.baseUrl ); } diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_28_0/transfers/connection_serviceStore.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_28_0/transfers/connection_serviceStore.pure index 6d21de048fd..cdbda40c2d2 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_28_0/transfers/connection_serviceStore.pure +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_28_0/transfers/connection_serviceStore.pure @@ -20,7 +20,7 @@ function meta::protocols::pure::v1_28_0::transformation::fromPureGraph::connecti { ^meta::protocols::pure::v1_28_0::metamodel::connection::store::service::ServiceStoreConnection( _type = 'serviceStore', - element = $connection.element->cast(@ServiceStore)->elementToPath(), + element = '', baseUrl = $connection.baseUrl ); } diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_29_0/transfers/connection_serviceStore.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_29_0/transfers/connection_serviceStore.pure index b61655ca31c..a980ab746b5 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_29_0/transfers/connection_serviceStore.pure +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_29_0/transfers/connection_serviceStore.pure @@ -20,7 +20,7 @@ function meta::protocols::pure::v1_29_0::transformation::fromPureGraph::connecti { ^meta::protocols::pure::v1_29_0::metamodel::connection::store::service::ServiceStoreConnection( _type = 'serviceStore', - element = $connection.element->cast(@ServiceStore)->elementToPath(), + element = '', baseUrl = $connection.baseUrl ); } diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_30_0/transfers/connection_serviceStore.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_30_0/transfers/connection_serviceStore.pure index 91c055d4d7f..11835a0cfff 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_30_0/transfers/connection_serviceStore.pure +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_30_0/transfers/connection_serviceStore.pure @@ -22,8 +22,8 @@ function meta::protocols::pure::v1_30_0::transformation::fromPureGraph::connecti { ^meta::protocols::pure::v1_30_0::metamodel::connection::store::service::ServiceStoreConnection( _type = 'serviceStore', - element = $connection.element->cast(@ServiceStore)->elementToPath(), + element = '', baseUrl = $connection.baseUrl, authenticationSpecifications = $connection.authenticationSpecifications->keyValues()->map(e | pair($e.first, $e.second->meta::protocols::pure::v1_30_0::transformation::fromPureGraph::authentication::transformAuthenticationSpecification($extensions)))->newMap() ); -} \ No newline at end of file +} diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_31_0/transfers/connection_serviceStore.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_31_0/transfers/connection_serviceStore.pure index 6ae6b47cacd..dc6fbe8c6fd 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_31_0/transfers/connection_serviceStore.pure +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_31_0/transfers/connection_serviceStore.pure @@ -22,8 +22,8 @@ function meta::protocols::pure::v1_31_0::transformation::fromPureGraph::connecti { ^meta::protocols::pure::v1_31_0::metamodel::connection::store::service::ServiceStoreConnection( _type = 'serviceStore', - element = $connection.element->cast(@ServiceStore)->elementToPath(), + element = '', baseUrl = $connection.baseUrl, authenticationSpecifications = $connection.authenticationSpecifications->keyValues()->map(e | pair($e.first, $e.second->meta::protocols::pure::v1_31_0::transformation::fromPureGraph::authentication::transformAuthenticationSpecification($extensions)))->newMap() ); -} \ No newline at end of file +} diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_32_0/transfers/connection_serviceStore.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_32_0/transfers/connection_serviceStore.pure index 3cec4517139..048debbc2a6 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_32_0/transfers/connection_serviceStore.pure +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_32_0/transfers/connection_serviceStore.pure @@ -22,8 +22,8 @@ function meta::protocols::pure::v1_32_0::transformation::fromPureGraph::connecti { ^meta::protocols::pure::v1_32_0::metamodel::connection::store::service::ServiceStoreConnection( _type = 'serviceStore', - element = $connection.element->cast(@ServiceStore)->elementToPath(), + element = '', baseUrl = $connection.baseUrl, authenticationSpecifications = $connection.authenticationSpecifications->keyValues()->map(e | pair($e.first, $e.second->meta::protocols::pure::v1_32_0::transformation::fromPureGraph::authentication::transformAuthenticationSpecification($extensions)))->newMap() ); -} \ No newline at end of file +} diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/transfers/connection_serviceStore.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/transfers/connection_serviceStore.pure index 3ceaff32755..9c946bad1f0 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/transfers/connection_serviceStore.pure +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/v1_33_0/transfers/connection_serviceStore.pure @@ -22,8 +22,8 @@ function meta::protocols::pure::v1_33_0::transformation::fromPureGraph::connecti { ^meta::protocols::pure::v1_33_0::metamodel::connection::store::service::ServiceStoreConnection( _type = 'serviceStore', - element = $connection.element->cast(@ServiceStore)->elementToPath(), + element = '', baseUrl = $connection.baseUrl, authenticationSpecifications = $connection.authenticationSpecifications->keyValues()->map(e | pair($e.first, $e.second->meta::protocols::pure::v1_33_0::transformation::fromPureGraph::authentication::transformAuthenticationSpecification($extensions)))->newMap() ); -} \ No newline at end of file +} diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/vX_X_X/transfers/connection_serviceStore.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/vX_X_X/transfers/connection_serviceStore.pure index 0271e7cfb5f..8267648aa96 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/vX_X_X/transfers/connection_serviceStore.pure +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/protocols/pure/vX_X_X/transfers/connection_serviceStore.pure @@ -22,8 +22,8 @@ function meta::protocols::pure::vX_X_X::transformation::fromPureGraph::connectio { ^meta::protocols::pure::vX_X_X::metamodel::connection::store::service::ServiceStoreConnection( _type = 'serviceStore', - element = $connection.element->cast(@ServiceStore)->elementToPath(), + element = '', baseUrl = $connection.baseUrl, authenticationSpecifications = $connection.authenticationSpecifications->keyValues()->map(e | pair($e.first, $e.second->meta::protocols::pure::vX_X_X::transformation::fromPureGraph::authentication::transformAuthenticationSpecification($extensions)))->newMap() ); -} \ No newline at end of file +} diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/tests/mapping.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/tests/mapping.pure index ecb417aa385..be5fa4dffc6 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/tests/mapping.pure +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/tests/mapping.pure @@ -18,14 +18,14 @@ Mapping meta::external::store::service::tests::mapping::DummyMappingsToBeDeleted meta::external::store::service::tests::domain::S_Trade[s_trade_set_dummy]: Pure { ~src meta::external::store::service::tests::domain::S_Trade - + s_tradeId: $src.s_tradeId } - + meta::external::store::service::tests::domain::S_Product[s_prod_set_dummy]: Pure { ~src meta::external::store::service::tests::domain::S_Product - + s_productId: $src.s_productId } ) @@ -33,7 +33,7 @@ Mapping meta::external::store::service::tests::mapping::DummyMappingsToBeDeleted Mapping meta::external::store::service::tests::mapping::ServiceStoreMapping ( include meta::external::store::service::tests::mapping::DummyMappingsToBeDeleted - + // *meta::external::store::service::tests::domain::S_Trade[s_trade_set]: Service // { // [meta::external::store::service::tests::store::TradeProductServiceStore] TradeServices.AllTradeService @@ -44,10 +44,10 @@ Mapping meta::external::store::service::tests::mapping::ServiceStoreMapping // ) // ) // } - + // *meta::external::store::service::tests::domain::S_Product[s_prod_set]: Service // { - + // [meta::external::store::service::tests::store::TradeProductServiceStore] ProductServices.ProductByIdService // ( // ParamMapping @@ -56,7 +56,7 @@ Mapping meta::external::store::service::tests::mapping::ServiceStoreMapping // serializationFormat : 'CSV' // ) // ) - + // [meta::external::store::service::tests::store::TradeProductServiceStore] ProductServices.ProductByIdService // ( // ParamMapping @@ -65,67 +65,67 @@ Mapping meta::external::store::service::tests::mapping::ServiceStoreMapping // serializationFormat : 'CSV' // ) // ) - + // [meta::external::store::service::tests::store::TradeProductServiceStore] ProductServices.ProductByNameService // ( // ParamMapping // ( // name : 'product 30' // ) -// ) +// ) // } - + meta::external::store::service::tests::domain::Trade[trade_set]: Pure { ~src meta::external::store::service::tests::domain::S_Trade - + tradeId: $src.s_tradeId, +prodId: String[1]: $src.s_tradeDetails->split(':')->at(0), quantity: $src.s_tradeDetails->split(':')->at(1)->parseInteger(), trader[trader_set]: $src } - + meta::external::store::service::tests::domain::Trader[trader_set]:Pure { ~src meta::external::store::service::tests::domain::S_Trade - + kerberos : $src.s_traderDetails->split(':')->at(0), firstName : $src.s_traderDetails->split(':')->at(1), lastName : $src.s_traderDetails->split(':')->at(2) } - + meta::external::store::service::tests::domain::Product[prod_set]: Pure { ~src meta::external::store::service::tests::domain::S_Product - + productId: $src.s_productId, productName: $src.s_productName, description: $src.s_description, synonyms[synonym_set]: $src.s_synonyms } - + meta::external::store::service::tests::domain::Synonym[synonym_set]:Pure { ~src meta::external::store::service::tests::domain::S_Synonym - + name: $src.s_name, type: EnumerationMapping SynonymTypeMapping: $src.s_type } - + meta::external::store::service::tests::domain::SynonymType: EnumerationMapping SynonymTypeMapping { CUSIP: ['cusip', 'CUSIP'], ISIN: ['isin', 'ISIN'] } - + meta::external::store::service::tests::domain::S_Trade_S_Product[s_cross_set]: XStore { - s_product[s_trade_set_dummy, s_prod_set_dummy]: $this.s_tradeDetails == $that.s_tradeId + s_product[s_trade_set_dummy, s_prod_set_dummy]: $this.s_tradeDetails == $that.s_tradeId } - + meta::external::store::service::tests::domain::Trade_Product[cross_set]: XStore { - product[trade_set, prod_set]: $this.prodId == $that.productId + product[trade_set, prod_set]: $this.prodId == $that.productId } ) @@ -137,13 +137,14 @@ import meta::external::format::shared::metamodel::*; import meta::external::store::service::metamodel::mapping::*; import meta::pure::mapping::xStore::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; function meta::external::store::service::tests::mapping::serviceStoreMapping():Mapping[1] { let baseMapping = meta::external::store::service::tests::mapping::ServiceStoreMapping; let serviceStore = meta::external::store::service::tests::store::TradeProductServiceStore(); - + //Generated in compilation phase using schema binding details let tradeSetPropMappings= [ ^ServiceStorePropertyMapping(property = S_Trade.properties->filter(p | $p.name == 's_tradeId')->toOne(), sourceSetImplementationId = 's_trade_set', targetSetImplementationId = ''), @@ -156,25 +157,25 @@ function meta::external::store::service::tests::mapping::serviceStoreMapping():M class = meta::external::store::service::tests::domain::S_Trade, parent = $baseMapping, propertyMappings = $tradeSetPropMappings); - + let tradeService = $serviceStore.getServiceStoreElementById('TradeServices')->cast(@ServiceGroup).getServiceStoreElementById('AllTradeService')->cast(@Service); let transform3 = {| 'CSV'}; let parameterBuildInfo = ^ServiceRequestParameterBuildInfo(serviceParameter = $tradeService.parameters->toOne(), transform = $transform3); - + let requestBodyBuildInfo = ^ServiceRequestBodyBuildInfo(transform = {s_trade:meta::external::store::service::tests::domain::S_Trade[1]| ^meta::external::store::service::tests::domain::S_RequestBody(propA = $s_trade.s_tradeId, propB = 'propB')}); - let tradeServicesMapping = ^ServiceMapping(service = $tradeService, - owner = $tradeServiceSetImpl, + let tradeServicesMapping = ^ServiceMapping(service = $tradeService, + owner = $tradeServiceSetImpl, requestBuildInfo = ^ServiceRequestBuildInfo(requestParametersBuildInfo = ^ServiceRequestParametersBuildInfo(parameterBuildInfoList = $parameterBuildInfo), requestBodyBuildInfo = $requestBodyBuildInfo)); $tradeServiceSetImpl->mutateAdd('servicesMapping', $tradeServicesMapping); - + let prodServiceSetImpl = ^RootServiceInstanceSetImplementation( id = 's_prod_set', root = true, class = meta::external::store::service::tests::domain::S_Product, parent = $baseMapping); - + //Generated in compilation phase using schema binding details let embeddedSetImpl = ^EmbeddedServiceStoreSetImplementation(property = S_Product.properties->filter(p | $p.name == 's_synonyms')->toOne(), owner = $prodServiceSetImpl, sourceSetImplementationId = 's_prod_set', targetSetImplementationId = 's_synonym_set', root = false, class = S_Synonym, parent = $baseMapping, id = 's_synonym_set', propertyMappings = [^ServiceStorePropertyMapping(property = S_Synonym.properties->filter(p | $p.name == 's_name')->toOne(), sourceSetImplementationId = 's_synonyms', targetSetImplementationId = ''), @@ -183,32 +184,32 @@ function meta::external::store::service::tests::mapping::serviceStoreMapping():M ^ServiceStorePropertyMapping(property = S_Product.properties->filter(p | $p.name == 's_productId')->toOne(), sourceSetImplementationId = 's_prod_set', targetSetImplementationId = ''), ^ServiceStorePropertyMapping(property = S_Product.properties->filter(p | $p.name == 's_productName')->toOne(), sourceSetImplementationId = 's_prod_set', targetSetImplementationId = ''), ^ServiceStorePropertyMapping(property = S_Product.properties->filter(p | $p.name == 's_description')->toOne(), sourceSetImplementationId = 's_prod_set', targetSetImplementationId = ''), - ^ServiceStorePropertyMapping(property = S_Product.properties->filter(p | $p.name == 's_tradeId')->toOne(), sourceSetImplementationId = 's_prod_set', targetSetImplementationId = ''), + ^ServiceStorePropertyMapping(property = S_Product.properties->filter(p | $p.name == 's_tradeId')->toOne(), sourceSetImplementationId = 's_prod_set', targetSetImplementationId = ''), $embeddedSetImpl ]; - + let productByIdService = $serviceStore.getServiceStoreElementById('ProductServices')->cast(@ServiceGroup).getServiceStoreElementById('ProductByIdService')->cast(@Service); let transform = {s_prod:meta::external::store::service::tests::domain::S_Product[1] | $s_prod.s_tradeId->split(':')->at(0)}; let idParamBuildInfos = [^ServiceRequestParameterBuildInfo(serviceParameter = $productByIdService.parameters->at(0), transform = $transform), ^ServiceRequestParameterBuildInfo(serviceParameter = $productByIdService.parameters->at(1), transform = $transform3)]; - + let transform0 = {s_prod:meta::external::store::service::tests::domain::S_Product[1] | $s_prod.s_productId}; let idParamBuildInfos1 = [^ServiceRequestParameterBuildInfo(serviceParameter = $productByIdService.parameters->at(0), transform = $transform0), ^ServiceRequestParameterBuildInfo(serviceParameter = $productByIdService.parameters->at(1), transform = $transform3)]; - + let productByNameService= $serviceStore.getServiceStoreElementById('ProductServices')->cast(@ServiceGroup).getServiceStoreElementById('ProductByNameService')->cast(@Service); let transform1 = {s_prod:meta::external::store::service::tests::domain::S_Product[1] | 'Product 30'}; let nameParamBuildInfo = ^ServiceRequestParameterBuildInfo(serviceParameter = $productByNameService.parameters->toOne(), transform = $transform1); - + let prodServicesMapping = [^ServiceMapping(service = $productByIdService, owner = $prodServiceSetImpl, requestBuildInfo = ^ServiceRequestBuildInfo(requestParametersBuildInfo = ^ServiceRequestParametersBuildInfo(parameterBuildInfoList = $idParamBuildInfos))), ^ServiceMapping(service = $productByIdService, owner = $prodServiceSetImpl, requestBuildInfo = ^ServiceRequestBuildInfo(requestParametersBuildInfo = ^ServiceRequestParametersBuildInfo(parameterBuildInfoList = $idParamBuildInfos1))), ^ServiceMapping(service = $productByNameService, owner = $prodServiceSetImpl, requestBuildInfo = ^ServiceRequestBuildInfo(requestParametersBuildInfo = ^ServiceRequestParametersBuildInfo(parameterBuildInfoList = $idParamBuildInfos1)))]; - + $prodServiceSetImpl->mutateAdd('servicesMapping', $prodServicesMapping); $prodServiceSetImpl->mutateAdd('propertyMappings', $prodSetPropMappings); @@ -216,7 +217,7 @@ function meta::external::store::service::tests::mapping::serviceStoreMapping():M let propertyMapping = $XStoreMapping.propertyMappings->toOne(); let updatedPropMapping = ^$propertyMapping(sourceSetImplementationId = 's_trade_set', targetSetImplementationId = 's_prod_set'); let updatedXStoreMapping = ^$XStoreMapping(propertyMappings = $updatedPropMapping); - + let neededClassMappings = $baseMapping.classMappings->filter(cm | $cm.id->in(['trade_set', 'trader_set', 'prod_set', 'synonym_set'])); ^$baseMapping(classMappings = [$tradeServiceSetImpl, $prodServiceSetImpl, $embeddedSetImpl]->concatenate($neededClassMappings), associationMappings = $updatedXStoreMapping->concatenate($baseMapping.associationMappings->filter(am | $am.id == 'cross_set')->toOne())); -} \ No newline at end of file +} diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/tests/store.pure b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/tests/store.pure index 834aed6a128..12af6b30e1b 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/tests/store.pure +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/src/main/resources/core_servicestore/tests/store.pure @@ -49,13 +49,13 @@ function meta::external::store::service::tests::store::TradeProductServiceStore( name = 'TradeProductServiceStore', securitySchemes = ^Map() ); - + let tradeServiceGroup = ^ServiceGroup( owner = $store, id = 'TradeServices', path = '/trades' ); - + let tradeService = ^Service( owner = $store, parent = $tradeServiceGroup, @@ -66,15 +66,15 @@ function meta::external::store::service::tests::store::TradeProductServiceStore( requestBody = ^ComplexTypeReference(binding = tradeServiceStoreSchemaBinding(), list = false, type = S_RequestBody), response = ^ComplexTypeReference(binding = tradeServiceStoreSchemaBinding(), list = true, type = S_Trade) ); - + $tradeServiceGroup->mutateAdd('elements', $tradeService); - + let prodServiceGroup = ^ServiceGroup( owner = $store, id = 'ProductServices', path = '/products' ); - + let prodByIdService = ^Service( owner = $store, parent = $prodServiceGroup, @@ -85,7 +85,7 @@ function meta::external::store::service::tests::store::TradeProductServiceStore( ^ServiceParameter(name = 'serializationFormat', type = ^StringTypeReference(list = false), location = meta::external::store::service::metamodel::Location.QUERY)], response = ^ComplexTypeReference(binding = prodServiceStoreSchemaBinding(), list = true, type = S_Product) ); - + let prodByNameService = ^Service( owner = $store, parent = $prodServiceGroup, @@ -95,15 +95,17 @@ function meta::external::store::service::tests::store::TradeProductServiceStore( parameters = ^ServiceParameter(name = 'name', type = ^StringTypeReference(list = false), location = meta::external::store::service::metamodel::Location.QUERY), response = ^ComplexTypeReference(binding = prodServiceStoreSchemaBinding(), list = true, type = S_Product) ); - + $prodServiceGroup->mutateAdd('elements', [$prodByIdService, $prodByNameService]); - + $store->mutateAdd('elements', [$tradeServiceGroup, $prodServiceGroup]); } ###Pure +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::external::store::service::metamodel::runtime::*; import meta::external::store::service::tests::runtime::*; @@ -111,13 +113,13 @@ import meta::external::store::service::tests::runtime::*; function meta::external::store::service::tests::runtime::serviceStoreRuntime():Runtime[1] { let serviceStore = meta::external::store::service::tests::store::TradeProductServiceStore(); - - ^Runtime(connections = ^ServiceStoreConnection(element = $serviceStore, + + ^Runtime(connectionStores= ^ConnectionStore(element = $serviceStore,connection=^ServiceStoreConnection( baseUrl = 'http://127.0.0.1:9090/api/user/serviceStore/test', - authenticationSpecifications = ^Map())); + authenticationSpecifications = ^Map()))); } function meta::external::store::service::tests::runtime::modelChainConnectionRuntime():Runtime[1] { - ^Runtime(connections = serviceStoreRuntime().connections->concatenate(^ModelChainConnection(element = ^ModelStore(), mappings = meta::external::store::service::tests::mapping::serviceStoreMapping()))); -} \ No newline at end of file + ^Runtime(connectionStores= serviceStoreRuntime().connectionStores->concatenate(^ConnectionStore(element=^ModelStore(),connection=^ModelChainConnection(mappings = meta::external::store::service::tests::mapping::serviceStoreMapping())))); +} diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/api/SnowflakeAppService.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/api/SnowflakeAppService.java index 3b9d06989ac..e061f149faf 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/api/SnowflakeAppService.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/api/SnowflakeAppService.java @@ -42,7 +42,7 @@ import org.finos.legend.pure.generated.Root_meta_external_function_activator_FunctionActivator; import org.finos.legend.pure.generated.Root_meta_external_function_activator_snowflakeApp_SnowflakeApp; import org.finos.legend.pure.generated.Root_meta_external_function_activator_snowflakeApp_SnowflakeDeploymentConfiguration; -import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_RelationalDatabaseConnection; +import org.finos.legend.pure.generated.Root_meta_external_store_relational_runtime_RelationalDatabaseConnection; import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy; import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification; import org.finos.legend.pure.generated.Root_meta_pure_executionPlan_ExecutionNode; diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppGenerator.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppGenerator.java index 9a0616a1d61..ee9d38e94a7 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppGenerator.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppGenerator.java @@ -22,7 +22,7 @@ import org.finos.legend.engine.plan.generation.PlanGenerator; import org.finos.legend.engine.plan.platform.PlanPlatform; import org.finos.legend.pure.generated.Root_meta_external_function_activator_snowflakeApp_SnowflakeApp; -import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_RelationalDatabaseConnection; +import org.finos.legend.pure.generated.Root_meta_external_store_relational_runtime_RelationalDatabaseConnection; import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy; import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification; import org.finos.legend.pure.generated.Root_meta_pure_executionPlan_ExecutionNode; @@ -63,7 +63,7 @@ private static Object[] extractSQLExpressionsAndConnectionMetadata(PureModel pur .collect(Root_meta_relational_mapping_SQLExecutionNode::_sqlQuery) .select(x -> !x.toLowerCase().startsWith("alter")); - Root_meta_pure_alloy_connections_RelationalDatabaseConnection relCOnn = (Root_meta_pure_alloy_connections_RelationalDatabaseConnection)collectAllNodes(node).selectInstancesOf(Root_meta_relational_mapping_SQLExecutionNode.class) + Root_meta_external_store_relational_runtime_RelationalDatabaseConnection relCOnn = (Root_meta_external_store_relational_runtime_RelationalDatabaseConnection)collectAllNodes(node).selectInstancesOf(Root_meta_relational_mapping_SQLExecutionNode.class) .getAny() ._connection(); Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification ds = (Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification) relCOnn._datasourceSpecification(); diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/test/java/org/finos/legend/engine/language/snowflakeApp/api/TestValidation.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/test/java/org/finos/legend/engine/language/snowflakeApp/api/TestValidation.java index 8f90fd5b89e..e2bdd958249 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/test/java/org/finos/legend/engine/language/snowflakeApp/api/TestValidation.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/test/java/org/finos/legend/engine/language/snowflakeApp/api/TestValidation.java @@ -42,7 +42,7 @@ public void testProperPlan() { String val = "Class a::Person {name : String[1];}\n" + - "function a::f():a::Person[*]{a::Person.all()->from(a::m, ^meta::pure::runtime::Runtime(connections=^meta::relational::runtime::TestDatabaseConnection(element=a::db, type=meta::relational::runtime::DatabaseType.H2)))}\n" + + "function a::f():a::Person[*]{a::Person.all()->from(a::m, ^meta::core::runtime::Runtime(connectionStores=^meta::core::runtime::ConnectionStore(element=a::db, connection=^meta::external::store::relational::runtime::TestDatabaseConnection(type=meta::relational::runtime::DatabaseType.H2))))}\n" + "###Mapping\n" + "Mapping a::m(a::Person:Relational{name : [a::db]tb.name})\n" + "###Relational\n" + @@ -63,7 +63,7 @@ public void testImproperPlan() String val = "Class a::Person {name : String[1]; address : a::Address[1];}\n" + "Class a::Address{zip:String[1];}\n" + - "function a::f():a::Person[*]{a::Person.all()->graphFetch(#{a::Person{name,address{zip}}}#)->from(a::m, ^meta::pure::runtime::Runtime(connections=^meta::relational::runtime::TestDatabaseConnection(element=a::db, type=meta::relational::runtime::DatabaseType.H2)))}\n" + + "function a::f():a::Person[*]{a::Person.all()->graphFetch(#{a::Person{name,address{zip}}}#)->from(a::m, ^meta::core::runtime::Runtime(connectionStores=^meta::core::runtime::ConnectionStore(element=a::db, connection=^meta::external::store::relational::runtime::TestDatabaseConnection(type=meta::relational::runtime::DatabaseType.H2))))}\n" + "###Mapping\n" + "Mapping a::m(a::Person:Relational{name : [a::db]tb.name, address : [a::db]@j} a::Address:Relational{zip : [a::db]addr.zip})\n" + "###Relational\n" + diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/src/main/java/org/finos/legend/engine/language/snowflakeApp/compiler/toPureGraph/SnowflakeAppCompilerExtension.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/src/main/java/org/finos/legend/engine/language/snowflakeApp/compiler/toPureGraph/SnowflakeAppCompilerExtension.java index c96373bb55f..2faa56790c4 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/src/main/java/org/finos/legend/engine/language/snowflakeApp/compiler/toPureGraph/SnowflakeAppCompilerExtension.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/src/main/java/org/finos/legend/engine/language/snowflakeApp/compiler/toPureGraph/SnowflakeAppCompilerExtension.java @@ -25,7 +25,7 @@ import org.finos.legend.pure.generated.Root_meta_external_function_activator_snowflakeApp_SnowflakeApp_Impl; import org.finos.legend.pure.generated.Root_meta_external_function_activator_snowflakeApp_SnowflakeDeploymentConfiguration; import org.finos.legend.pure.generated.Root_meta_external_function_activator_snowflakeApp_SnowflakeDeploymentConfiguration_Impl; -import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_RelationalDatabaseConnection; +import org.finos.legend.pure.generated.Root_meta_external_store_relational_runtime_RelationalDatabaseConnection; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.PackageableFunction; import org.finos.legend.pure.m3.navigation.function.FunctionDescriptor; @@ -83,7 +83,7 @@ public Root_meta_external_function_activator_snowflakeApp_SnowflakeApp buildSnow public Root_meta_external_function_activator_snowflakeApp_SnowflakeDeploymentConfiguration buildDeploymentConfig(SnowflakeDeploymentConfiguration configuration, CompileContext context) { return new Root_meta_external_function_activator_snowflakeApp_SnowflakeDeploymentConfiguration_Impl("") - ._target((Root_meta_pure_alloy_connections_RelationalDatabaseConnection) context.resolveConnection(configuration.activationConnection.connection, configuration.sourceInformation)); + ._target((Root_meta_external_store_relational_runtime_RelationalDatabaseConnection) context.resolveConnection(configuration.activationConnection.connection, configuration.sourceInformation)); // ._stage(context.pureModel.getEnumValue("meta::external::function::activator::DeploymentStage", configuration.stage.name())); } } diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/src/main/resources/core_snowflakeapp/metamodel/metamodel.pure b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/src/main/resources/core_snowflakeapp/metamodel/metamodel.pure index da87ddda792..40816df1ddb 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/src/main/resources/core_snowflakeapp/metamodel/metamodel.pure +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/src/main/resources/core_snowflakeapp/metamodel/metamodel.pure @@ -9,7 +9,7 @@ Class meta::external::function::activator::snowflakeApp::SnowflakeApp extends Fu Class meta::external::function::activator::snowflakeApp::SnowflakeDeploymentConfiguration extends DeploymentConfiguration { - target: meta::pure::alloy::connections::RelationalDatabaseConnection[1]; + target: meta::external::store::relational::runtime::RelationalDatabaseConnection[1]; } Class meta::external::function::activator::snowflakeApp::SnowflakeDeploymentResult extends DeploymentResult @@ -17,10 +17,10 @@ Class meta::external::function::activator::snowflakeApp::SnowflakeApp extends Fu } -// This section needs to be code generated from the section above +// This section needs to be code generated from the section above Class meta::protocols::pure::vX_X_X::metamodel::function::activator::snowflakeApp::SnowflakeApp extends meta::protocols::pure::vX_X_X::metamodel::function::activator::FunctionActivator { applicationName : String[1]; description : String[0..1]; owner : String[0..1]; -} \ No newline at end of file +} diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/fromPure.pure b/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/fromPure.pure index f451545280f..965871119a0 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/fromPure.pure +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/fromPure.pure @@ -13,6 +13,7 @@ // limitations under the License. import meta::pure::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::external::query::sql::metamodel::*; import meta::external::query::sql::transformation::queryToPure::*; @@ -37,7 +38,7 @@ Class meta::external::query::sql::transformation::queryToPure::SQLSource type: String[1]; func:FunctionDefinition[1]; mapping: meta::pure::mapping::Mapping[0..1]; - runtime: meta::pure::runtime::Runtime[0..1]; + runtime: meta::core::runtime::Runtime[0..1]; executionOptions: ExecutionOption[*]; executionContext: ExecutionContext[0..1]; key: SQLSourceArgument[*]; @@ -102,7 +103,7 @@ function meta::external::query::sql::transformation::queryToPure::getPlan( { //NOTE: we should remove this once issues with enum mappings in plan transformation are fixed. let mapping = if ($sources.mapping->isNotEmpty(), | $sources.mapping->removeDuplicates()->toOneMany()->mergeMappings(), | emptyMapping()); - let runtime = if ($sources.runtime->isNotEmpty(), | $sources.runtime->removeDuplicates({t, t2 | meta::pure::runtime::runtimeEquality($t, $t2, $extensions)})->toOneMany()->mergeRuntimes(), | ^Runtime()); + let runtime = if ($sources.runtime->isNotEmpty(), | $sources.runtime->removeDuplicates({t, t2 | meta::core::runtime::runtimeEquality($t, $t2, $extensions)})->toOneMany()->mergeRuntimes(), | ^Runtime()); let lambda = $context.lambda()->meta::pure::router::preeval::preval($extensions); @@ -146,7 +147,7 @@ function meta::external::query::sql::transformation::queryToPure::constantPlan(v ]), resultType = ^DataTypeResultType(type = $value->type())), authDependent = false, func = {|$value}, - runtime = ^meta::pure::runtime::Runtime(), + runtime = ^meta::core::runtime::Runtime(), mapping = ^meta::pure::mapping::Mapping(package = meta::pure::executionPlan, name = 'dummy') ) } @@ -293,7 +294,7 @@ function <> meta::external::query::sql::transformation::queryToP n:NotExpression[1] | $n.value->extractAggregatesFromExpression(), s:SimpleCaseExpression[1] | $s->convertToSearchedCaseExpression()->extractAggregatesFromExpression(), s:SearchedCaseExpression[1] | - $s.whenClauses->map(w | $w.operand->extractAggregatesFromExpression()->concatenate($w.result->extractAggregatesFromExpression()))->concatenate($s.defaultValue->extractAggregatesFromExpression());, + $s.whenClauses->map(w | $w.operand->extractAggregatesFromExpression()->concatenate($w.result->extractAggregatesFromExpression()))->concatenate($s.defaultValue->extractAggregatesFromExpression());, e:meta::external::query::sql::metamodel::Expression[0..1] | [] ]); } @@ -415,7 +416,7 @@ function <> meta::external::query::sql::transformation::queryToP f:FunctionCall[1..*] | // we can only support multiple aggs being used within a single expression if they use the case arguments //e.g. case when sum(col) > 10 then max(col) else min(col) end - //to support more complex cases we need to extract the aggregates into separate columns + //to support more complex cases we need to extract the aggregates into separate columns assertEquals(1, $f.arguments->removeDuplicates()->size(), 'unsupported aggregation'); $f->map(fc | ensureAggregateFunction($fc));, @@ -458,8 +459,8 @@ function <> meta::external::query::sql::transformation::queryToP let processor = meta::external::query::sql::transformation::queryToPure::functionProcessor($functionCall.name); - if ($functionCall.group->isNotEmpty(), - | $functionCall, + if ($functionCall.group->isNotEmpty(), + | $functionCall, | $functionCall.arguments->match([ //NOTE * params come through as empty, investigate whether parser should handle this better a:meta::external::query::sql::metamodel::Expression[0..1] | ^$functionCall(arguments = $var), @@ -594,7 +595,7 @@ function <> meta::external::query::sql::transformation::queryToP n:NotExpression[1] | $n.value->isExpressionAggregate($includeParameters, $includeWindow), s:SimpleCaseExpression[1] | $s->convertToSearchedCaseExpression()->isExpressionAggregate($includeParameters, $includeWindow), s:SearchedCaseExpression[1] | - $s.whenClauses->exists(w | $w.operand->isExpressionAggregate($includeParameters, $includeWindow) || $w.result->isExpressionAggregate($includeParameters, $includeWindow)) + $s.whenClauses->exists(w | $w.operand->isExpressionAggregate($includeParameters, $includeWindow) || $w.result->isExpressionAggregate($includeParameters, $includeWindow)) || $s.defaultValue->isExpressionAggregate($includeParameters, $includeWindow), e:meta::external::query::sql::metamodel::Expression[0..1] | false ]) @@ -631,7 +632,7 @@ function <> meta::external::query::sql::transformation::queryToP { debug('processSelectToRestrict', $context.debug); - let restricted = if ($restrict, + let restricted = if ($restrict, | $select.selectItems->map(si | $si->match([ s:SingleColumn[1] | ^$s(alias = []), s:SelectItem[1] | $s @@ -655,7 +656,7 @@ function <> meta::external::query::sql::transformation::queryToP let renames = $selectItems->map(si | let defaultName = extractNameFromExpression($si.expression, $context); let existing = $context.columns.name; - + if ($si.alias->isNotEmpty() && $si.alias != $defaultName, | @@ -701,8 +702,8 @@ function <> meta::external::query::sql::transformation::queryToP $relations->match([ relation: Relation[1] | processRelation($relation, $context), - relations: Relation[2..*] | - $relations->drop(2)->fold({r, join | + relations: Relation[2..*] | + $relations->drop(2)->fold({r, join | ^Join(type = JoinType.CROSS, left = $join, right = $r) }, ^Join(type = JoinType.CROSS, left = $relations->at(0), right = $relations->at(1)))->processJoin($context);, r: Relation[*] | fail('Not yet supported'); $context; @@ -802,7 +803,7 @@ function <> meta::external::query::sql::transformation::queryToP u:JoinUsing[1] | join_TabularDataSet_1__TabularDataSet_1__JoinType_1__String_$1_MANY$__TabularDataSet_1_, n:NaturalJoin[1] | fail('Natural join not yet supported'); join_TabularDataSet_1__TabularDataSet_1__JoinType_1__String_$1_MANY$__TabularDataSet_1_;, j:JoinCriteria[0..1] | - assert($join.type == JoinType.CROSS, 'only cross join supported without criteria'); + assert($join.type == JoinType.CROSS, 'only cross join supported without criteria'); join_TabularDataSet_1__TabularDataSet_1__JoinType_1__Function_1__TabularDataSet_1_; ]); @@ -810,7 +811,7 @@ function <> meta::external::query::sql::transformation::queryToP o:JoinOn[1] | createJoinOn($o.expression, $row1, $row2, $expContext, $newContext), u:JoinUsing[1] | iv($u.columns), n:NaturalJoin[1] | fail('Natural join not yet supported'); iv(1);, - j:JoinCriteria[0..1] | + j:JoinCriteria[0..1] | assert($join.type == JoinType.CROSS, 'only cross join supported without criteria'); createJoinOn(^BooleanLiteral(value = true), $row1, $row2, $expContext, $newContext); ]); @@ -943,7 +944,7 @@ function <> meta::external::query::sql::transformation::queryToP function meta::external::query::sql::transformation::queryToPure::extractSourceArguments(expressions:meta::external::query::sql::metamodel::Expression[*]):SQLSourceArgument[*] { - range(0, $expressions->size())->map(i | + range(0, $expressions->size())->map(i | extractSourceArgument($expressions->at($i), $i, []) ); } @@ -1270,7 +1271,7 @@ function meta::external::query::sql::transformation::queryToPure::extractNameFro i:IsNullPredicate[1] | $i.value->extractNameFromExpression($context) + ' IS NULL', i:IsNotNullPredicate[1] | $i.value->extractNameFromExpression($context) + ' IS NOT NULL', l:Literal[1] | $l->extractNameFromLiteral($context), - l:LikePredicate[1] | + l:LikePredicate[1] | let like = if ($l.ignoreCase, | ' ILIKE ', | ' LIKE '); let escape = if ($l.escape->isEmpty(), | '', | ' ESCAPE ' + $l.escape->toOne()->extractNameFromExpression($context)); $l.value->extractNameFromExpression($context) + $like + $l.pattern->extractNameFromExpression($context) + $escape;, @@ -1389,7 +1390,7 @@ function <> meta::external::query::sql::transformation::queryToP let value = $l.value->processExpression($expContext, $context); [ - pair($wildFirstIndex == 0 && $wildLastIndex == 0, {| + pair($wildFirstIndex == 0 && $wildLastIndex == 0, {| sfe(endsWith_String_1__String_1__Boolean_1_, [$value, iv($pattern->substring(1))]) }), pair($wildFirstIndex == -1, {| @@ -1813,14 +1814,14 @@ function <> meta::external::query::sql::transformation::queryToP $args->match([ v:ValueSpecification[1] | $v.genericType.rawType->toOne(), a:Any[*] | fail('Unsupported arg type'); Any; - ]); + ]); } function meta::external::query::sql::transformation::queryToPure::functionProcessors():FunctionProcessor[*] { [ processor('count', count_Any_MANY__Integer_1_, true), - processor('distinct', true, false, Any, {args, fc, ctx | + processor('distinct', true, false, Any, {args, fc, ctx | let type = getAggregationArgumentType($args); let genericType = ^GenericType(rawType = $type); sfe(distinct_T_MANY__T_MANY_, $genericType, $genericType, $args); @@ -1941,7 +1942,7 @@ function meta::external::query::sql::transformation::queryToPure::functionProces processor('btrim', String, {args, fc, ctx | processTrim(trim_String_1__String_1_, $args)}), processor('char_length', length_String_1__Integer_1_), processor('chr', char_Integer_1__String_1_), - processor('concat', String, {args, fc, ctx | + processor('concat', String, {args, fc, ctx | sfe(plus_String_MANY__String_1_, iv($args)) }), processor('length', length_String_1__Integer_1_), @@ -1954,7 +1955,7 @@ function meta::external::query::sql::transformation::queryToPure::functionProces processor('reverse', reverseString_String_1__String_1_), processor('rtrim', String, {args, fc, ctx | processTrim(rtrim_String_1__String_1_, $args)}), processor('sha256', String, {args, fc, ctx | processHash($args, meta::pure::functions::hash::HashType.SHA256)}), - processor('split_part', String, {args, fc, ctx | + processor('split_part', String, {args, fc, ctx | assertEquals(3, $args->size(), 'split_part must specify three arguments'); let position = $args->at(2)->match([ @@ -2063,8 +2064,8 @@ function meta::external::query::sql::transformation::queryToPure::processPercent let var = $expContext.defaultVar->toOne(); let percentile = $args->at(0); - if ($ascending && $continuous, - | sfe(percentile_Number_MANY__Float_1__Number_$0_1$_, [$var, $percentile]), + if ($ascending && $continuous, + | sfe(percentile_Number_MANY__Float_1__Number_$0_1$_, [$var, $percentile]), | sfe(percentile_Number_MANY__Float_1__Boolean_1__Boolean_1__Number_$0_1$_, [$var, $percentile, iv($ascending), iv($continuous)])); } @@ -2623,9 +2624,9 @@ function <> meta::external::query::sql::transformation::queryToP let zipped = $func->getParameters()->evaluateAndDeactivate()->zip($pvs); - let parameters = $zipped->map(p | if ($p.first.multiplicity->hasLowerBound() && $p.second->isZeroOne(), + let parameters = $zipped->map(p | if ($p.first.multiplicity->hasLowerBound() && $p.second->isZeroOne(), | sfe(toOne_T_MANY__T_1_, $p.second->evaluateAndDeactivate().genericType, [], PureOne, $p.second->evaluateAndDeactivate()), - | $p.second->evaluateAndDeactivate())); + | $p.second->evaluateAndDeactivate())); ^SimpleFunctionExpression( func = $func, diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/tests/shared.pure b/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/tests/shared.pure index 67790a78ad8..e046005f14c 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/tests/shared.pure +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/tests/shared.pure @@ -80,27 +80,30 @@ Mapping meta::external::query::sql::transformation::queryToPure::tests::dummyMap MyEnum: EnumerationMapping MyEnumMapping { - Value1: 'V1', + Value1: 'V1', Value2: 'V2', Value_3 : 'V3', VALUE__4: 'V4' - } + } FieldType: EnumerationMapping FieldTypeMapping { - Type1: 'T1', + Type1: 'T1', Type2: 'T2', Type_3 : 'T3', Type__4: 'T4' - } + } ) ###Pure +import meta::external::store::relational::runtime::*; import meta::relational::runtime::*; import meta::pure::extension::*; import meta::pure::alloy::connections::*; +import meta::external::store::relational::runtime::*; import meta::pure::alloy::connections::alloy::authentication::*; import meta::pure::alloy::connections::alloy::specification::*; +import meta::core::runtime::*; import meta::pure::runtime::*; import meta::pure::metamodel::serialization::grammar::*; import meta::legend::service::metamodel::*; @@ -109,28 +112,29 @@ import meta::external::query::sql::transformation::queryToPure::*; import meta::external::query::sql::transformation::queryToPure::tests::*; import meta::external::query::sql::metamodel::*; -function meta::external::query::sql::transformation::queryToPure::tests::dummyConnection(): Connection[1] +function meta::external::query::sql::transformation::queryToPure::tests::dummyConnection(): ConnectionStore[1] { + ^ConnectionStore( + element = meta::external::query::sql::transformation::queryToPure::tests::dummyDatabase,connection= ^RelationalDatabaseConnection( type = DatabaseType.H2, datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification(testDataSetupCsv = ''), - authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::TestDatabaseAuthenticationStrategy(), - element = meta::external::query::sql::transformation::queryToPure::tests::dummyDatabase - ) + authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::TestDatabaseAuthenticationStrategy() + )) } function meta::external::query::sql::transformation::queryToPure::tests::dummyRuntime(): Runtime[1] { ^EngineRuntime( mappings = dummyMapping, - connections = dummyConnection() + connectionStores = dummyConnection() ); } function meta::external::query::sql::transformation::queryToPure::tests::sqlExtensions():Extension[*] { let sqlTestExtension = ^meta::pure::extension::Extension( - type = 'sql', + type = 'sql', serializerExtension = meta::external::query::sql::transformation::queryToPure::tests::getSqlSerializerExtension_String_1__String_1_); meta::relational::extension::relationalExtensions()->concatenate($sqlTestExtension); @@ -146,7 +150,7 @@ function meta::external::query::sql::transformation::queryToPure::tests::sqlSeri ^meta::protocols::pure::vX_X_X::extension::SerializerExtension_vX_X_X( transfers_store_transformConnection2 = {extensions:meta::pure::extension::Extension[*] | [ - c:Connection[1] | ^meta::protocols::pure::vX_X_X::metamodel::runtime::Connection(_type = 'connection', element = $c.element->toString()) + c:Connection[1] | ^meta::protocols::pure::vX_X_X::metamodel::runtime::Connection(_type = 'connection', element = '') ]} ); } @@ -247,7 +251,7 @@ function meta::external::query::sql::transformation::queryToPure::tests::Service function meta::external::query::sql::transformation::queryToPure::tests::Service3(): Service[1] { - createService('/service/service3', {| + createService('/service/service3', {| let const = 123; FlatInput.all()->project( [ @@ -261,7 +265,7 @@ function meta::external::query::sql::transformation::queryToPure::tests::Service function meta::external::query::sql::transformation::queryToPure::tests::Service4(): Service[1] { - createService('/service/service4/{id}', {id:String[1], ints:Integer[*], date:StrictDate[0..1] | + createService('/service/service4/{id}', {id:String[1], ints:Integer[*], date:StrictDate[0..1] | FlatInput.all()->filter(f | $f.idIn == $id && $f.integerIn->in($ints) && ($f.strictDateIn > $date))->project( [ @@ -271,4 +275,4 @@ function meta::external::query::sql::transformation::queryToPure::tests::Service 'ID', 'Integer', 'Enum' ] );}) -} \ No newline at end of file +} diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/src/main/resources/core_external_format_xml_java_platform_binding/legendJavaPlatformBinding/tests/executionPlanExecution.pure b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/src/main/resources/core_external_format_xml_java_platform_binding/legendJavaPlatformBinding/tests/executionPlanExecution.pure index aa7c9ed5cf0..3faefae0a22 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/src/main/resources/core_external_format_xml_java_platform_binding/legendJavaPlatformBinding/tests/executionPlanExecution.pure +++ b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/src/main/resources/core_external_format_xml_java_platform_binding/legendJavaPlatformBinding/tests/executionPlanExecution.pure @@ -20,6 +20,7 @@ import meta::legend::*; import meta::pure::graphFetch::execution::*; import meta::pure::mapping::*; +import meta::core::runtime::*; import meta::pure::runtime::*; function <> meta::external::format::xml::executionPlan::platformBinding::legendJava::test::testInternalizeExternalizeSimple(): Boolean[1] @@ -45,7 +46,7 @@ function <John\n' + 'Doe\n' + ''); - + let result = executeXSDBindingQuery($query, $vars); assertEquals('{"builder":{"_type":"json"},"values":{"fullName":"John Doe"}}', $result); @@ -54,4 +55,4 @@ function <[1], vars: Pair[*]): String[1] { meta::legend::executeLegendQuery($f, $vars, ^ExecutionContext(), getExtensions()); -} \ No newline at end of file +} diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-pure/src/main/resources/core_external_format_xml/executionPlan/tests/constraints.pure b/legend-engine-xts-xml/legend-engine-xt-xml-pure/src/main/resources/core_external_format_xml/executionPlan/tests/constraints.pure index 42f6b83d63c..cb20d0c073f 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-pure/src/main/resources/core_external_format_xml/executionPlan/tests/constraints.pure +++ b/legend-engine-xts-xml/legend-engine-xt-xml-pure/src/main/resources/core_external_format_xml/executionPlan/tests/constraints.pure @@ -25,8 +25,10 @@ import meta::pure::executionPlan::*; import meta::pure::executionPlan::toString::*; import meta::pure::graphFetch::execution::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::model::unit::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::legend::*; import meta::pure::dataQuality::*; diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-pure/src/main/resources/core_external_format_xml/executionPlan/tests/executionPlanTest.pure b/legend-engine-xts-xml/legend-engine-xt-xml-pure/src/main/resources/core_external_format_xml/executionPlan/tests/executionPlanTest.pure index 5768ebec3b6..590039129d4 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-pure/src/main/resources/core_external_format_xml/executionPlan/tests/executionPlanTest.pure +++ b/legend-engine-xts-xml/legend-engine-xt-xml-pure/src/main/resources/core_external_format_xml/executionPlan/tests/executionPlanTest.pure @@ -24,7 +24,9 @@ import meta::pure::executionPlan::*; import meta::pure::executionPlan::toString::*; import meta::pure::graphFetch::execution::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::model::unit::*; +import meta::core::runtime::*; import meta::pure::runtime::*; Class meta::external::format::xml::executionPlan::test::Person @@ -102,7 +104,7 @@ function meta::external::format::xml::executionPlan::test::getTestBinding(): Bin ) ) ); - + ^Binding( name = 'TestBinding', package = meta::external::format::xml::executionPlan::test, diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-pure/src/main/resources/core_external_format_xml/executionPlan/tests/simple.pure b/legend-engine-xts-xml/legend-engine-xt-xml-pure/src/main/resources/core_external_format_xml/executionPlan/tests/simple.pure index bf3fe9318ee..5115914c187 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-pure/src/main/resources/core_external_format_xml/executionPlan/tests/simple.pure +++ b/legend-engine-xts-xml/legend-engine-xt-xml-pure/src/main/resources/core_external_format_xml/executionPlan/tests/simple.pure @@ -25,8 +25,10 @@ import meta::pure::executionPlan::*; import meta::pure::executionPlan::toString::*; import meta::pure::graphFetch::execution::*; import meta::pure::mapping::modelToModel::*; +import meta::external::store::model::*; import meta::pure::model::unit::*; import meta::pure::runtime::*; +import meta::core::runtime::*; import meta::legend::*; import meta::pure::dataQuality::*; diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-pure/src/main/resources/core_external_format_xml/executionPlan/tests/utils.pure b/legend-engine-xts-xml/legend-engine-xt-xml-pure/src/main/resources/core_external_format_xml/executionPlan/tests/utils.pure index 4342f10beee..821898a059a 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-pure/src/main/resources/core_external_format_xml/executionPlan/tests/utils.pure +++ b/legend-engine-xts-xml/legend-engine-xt-xml-pure/src/main/resources/core_external_format_xml/executionPlan/tests/utils.pure @@ -16,6 +16,7 @@ import meta::legend::*; import meta::pure::extension::*; import meta::pure::runtime::*; +import meta::core::runtime::*; function meta::external::format::xml::executionPlan::test::convertStringToBytes(data:String[1]): InstanceValue[1] { diff --git a/pom.xml b/pom.xml index a5132fd657e..d2a65e2a43b 100644 --- a/pom.xml +++ b/pom.xml @@ -104,7 +104,7 @@ - 4.9.0 + 4.10.0 0.24.1 From 103073d96ba28770410e36794cfadd4f5bcbcf95 Mon Sep 17 00:00:00 2001 From: FINOS Administrator <37706051+finos-admin@users.noreply.github.com> Date: Wed, 18 Oct 2023 00:03:21 +0000 Subject: [PATCH 23/80] [maven-release-plugin] prepare release legend-engine-4.32.0 --- legend-engine-application-query/pom.xml | 2 +- legend-engine-config/legend-engine-configuration/pom.xml | 2 +- .../legend-engine-connection-integration-tests/pom.xml | 2 +- .../legend-engine-extensions-collection-execution/pom.xml | 2 +- .../legend-engine-extensions-collection-generation/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-server-integration-tests/pom.xml | 2 +- .../legend-engine-server-support-core/pom.xml | 2 +- legend-engine-config/legend-engine-server/pom.xml | 2 +- legend-engine-config/pom.xml | 2 +- .../legend-engine-executionPlan-dependencies/pom.xml | 2 +- .../legend-engine-executionPlan-execution-api/pom.xml | 2 +- .../legend-engine-executionPlan-execution-authorizer/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-executionPlan-execution/pom.xml | 2 +- .../legend-engine-external-shared-format-runtime/pom.xml | 2 +- .../legend-engine-core-executionPlan-execution/pom.xml | 2 +- .../legend-engine-executionPlan-generation/pom.xml | 2 +- .../legend-engine-core-executionPlan-generation/pom.xml | 2 +- .../legend-engine-external-shared-format-model/pom.xml | 2 +- .../legend-engine-language-pure-compiler-api/pom.xml | 2 +- .../legend-engine-language-pure-compiler/pom.xml | 2 +- .../legend-engine-language-pure-grammar-api/pom.xml | 2 +- .../legend-engine-language-pure-grammar/pom.xml | 2 +- .../legend-engine-language-pure-modelManager-sdlc/pom.xml | 2 +- .../legend-engine-language-pure-modelManager/pom.xml | 2 +- .../legend-engine-protocol-api/pom.xml | 2 +- .../legend-engine-protocol-generation-pure/pom.xml | 2 +- .../legend-engine-protocol-generation/pom.xml | 2 +- .../legend-engine-protocol-pure/pom.xml | 2 +- .../legend-engine-protocol/pom.xml | 2 +- legend-engine-core/legend-engine-core-language-pure/pom.xml | 2 +- .../legend-engine-query-pure/pom.xml | 2 +- legend-engine-core/legend-engine-core-query-pure/pom.xml | 2 +- .../legend-engine-shared-core/pom.xml | 2 +- .../legend-engine-shared-javaCompiler/pom.xml | 2 +- legend-engine-core/legend-engine-core-shared/pom.xml | 2 +- .../legend-engine-test-data-generation/pom.xml | 2 +- .../legend-engine-test-runner-mapping/pom.xml | 2 +- .../legend-engine-test-runner-shared/pom.xml | 2 +- .../legend-engine-test-server-shared/pom.xml | 2 +- .../legend-engine-core-test/legend-engine-testable/pom.xml | 2 +- legend-engine-core/legend-engine-core-test/pom.xml | 2 +- legend-engine-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-functions/pom.xml | 2 +- .../legend-engine-pure-code-core-extension/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-code/pom.xml | 2 +- .../legend-engine-pure-ide-light-metadata-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-ide/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-diagram-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-graph-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-mapping-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-path-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-json-java/pom.xml | 2 +- .../legend-engine-pure-platform-java/pom.xml | 2 +- .../legend-engine-pure-platform-store-relational-java/pom.xml | 2 +- .../legend-engine-pure-platform-modular-generation/pom.xml | 2 +- .../legend-engine-pure-runtime-compiler/pom.xml | 2 +- .../legend-engine-pure-runtime-execution/pom.xml | 2 +- .../legend-engine-pure-runtime-extensions/pom.xml | 2 +- .../legend-engine-xt-java-runtime-compiler/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-runtime/pom.xml | 2 +- legend-engine-pure/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-api/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-binding/pom.xml | 2 +- .../legend-engine-xt-analytics-class-api/pom.xml | 2 +- .../legend-engine-xt-analytics-class-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-class/pom.xml | 2 +- .../legend-engine-xt-analytics-function-api/pom.xml | 2 +- .../legend-engine-xt-analytics-function-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-function/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-api/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-lineage/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-api/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-protocol/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-mapping/pom.xml | 2 +- .../legend-engine-xt-analytics-search-generation/pom.xml | 2 +- .../legend-engine-xt-analytics-search-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-search/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement-api/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement/pom.xml | 2 +- .../legend-engine-xts-analytics-store/pom.xml | 2 +- legend-engine-xts-analytics/pom.xml | 2 +- legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml | 2 +- .../legend-engine-xt-arrow-runtime/pom.xml | 2 +- legend-engine-xts-arrow/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-protocol/pom.xml | 2 +- .../legend-engine-xt-authentication-pure/pom.xml | 2 +- legend-engine-xts-authentication/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro/pom.xml | 2 +- legend-engine-xts-avro/pom.xml | 2 +- .../legend-engine-xt-changetoken-compiler/pom.xml | 2 +- .../legend-engine-xt-changetoken-pure/pom.xml | 2 +- legend-engine-xts-changetoken/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml | 2 +- legend-engine-xts-daml/pom.xml | 2 +- .../legend-engine-xt-data-push-server/pom.xml | 2 +- legend-engine-xts-data-push/pom.xml | 2 +- .../legend-engine-xt-data-space-api/pom.xml | 2 +- .../legend-engine-xt-data-space-compiler/pom.xml | 2 +- .../legend-engine-xt-data-space-generation/pom.xml | 2 +- .../legend-engine-xt-data-space-grammar/pom.xml | 2 +- .../legend-engine-xt-data-space-protocol/pom.xml | 2 +- .../legend-engine-xt-data-space-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-data-space-pure/pom.xml | 2 +- legend-engine-xts-data-space/pom.xml | 2 +- .../legend-engine-xt-diagram-api/pom.xml | 2 +- .../legend-engine-xt-diagram-compiler/pom.xml | 2 +- .../legend-engine-xt-diagram-grammar/pom.xml | 2 +- .../legend-engine-xt-diagram-protocol/pom.xml | 2 +- .../legend-engine-xt-diagram-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-diagram-pure/pom.xml | 2 +- legend-engine-xts-diagram/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-grammar/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-protocol/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-executionPlan-test/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-protocol-utils/pom.xml | 2 +- .../pom.xml | 2 +- legend-engine-xts-elasticsearch/pom.xml | 2 +- .../legend-engine-xt-flatdata-driver-bloomberg/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-flatdata-model/pom.xml | 2 +- .../legend-engine-xt-flatdata-pure/pom.xml | 2 +- .../legend-engine-xt-flatdata-runtime/pom.xml | 2 +- .../legend-engine-xt-flatdata-shared/pom.xml | 2 +- legend-engine-xts-flatdata/pom.xml | 2 +- .../legend-engine-xt-functionActivator-api/pom.xml | 2 +- .../legend-engine-xt-functionActivator-protocol/pom.xml | 2 +- .../legend-engine-xt-functionActivator-pure/pom.xml | 2 +- legend-engine-xts-functionActivator/pom.xml | 2 +- .../legend-engine-external-shared/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation/pom.xml | 2 +- .../legend-engine-xt-artifact-generation-api/pom.xml | 2 +- legend-engine-xts-generation/pom.xml | 2 +- .../legend-engine-xt-graphQL-compiler/pom.xml | 4 ++-- .../legend-engine-xt-graphQL-grammar-integration/pom.xml | 2 +- .../legend-engine-xt-graphQL-grammar/pom.xml | 2 +- .../legend-engine-xt-graphQL-protocol/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure/pom.xml | 2 +- .../legend-engine-xt-graphQL-query/pom.xml | 2 +- .../legend-engine-xt-graphQL-relational-extension/pom.xml | 2 +- legend-engine-xts-graphQL/pom.xml | 2 +- .../legend-engine-xt-haskell-grammar/pom.xml | 2 +- .../legend-engine-xt-haskell-protocol/pom.xml | 2 +- .../legend-engine-xt-haskell-pure/pom.xml | 2 +- legend-engine-xts-haskell/pom.xml | 2 +- .../legend-engine-xt-hostedService-api/pom.xml | 2 +- .../legend-engine-xt-hostedService-compiler/pom.xml | 2 +- .../legend-engine-xt-hostedService-generation/pom.xml | 2 +- .../legend-engine-xt-hostedService-grammar/pom.xml | 2 +- .../legend-engine-xt-hostedService-protocol/pom.xml | 2 +- .../legend-engine-xt-hostedService-pure/pom.xml | 2 +- legend-engine-xts-hostedService/pom.xml | 2 +- .../legend-engine-xt-iceberg-pure/pom.xml | 2 +- .../legend-engine-xt-iceberg-test-support/pom.xml | 2 +- legend-engine-xts-iceberg/pom.xml | 2 +- .../legend-engine-external-language-java/pom.xml | 2 +- .../legend-engine-xt-javaGeneration-featureBased-pure/pom.xml | 2 +- .../legend-engine-xt-javaGeneration-pure/pom.xml | 2 +- .../legend-engine-xt-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-java/pom.xml | 2 +- .../legend-engine-external-format-jsonSchema/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-pure/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-test/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-model/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml | 2 +- legend-engine-xts-json/pom.xml | 2 +- .../legend-engine-xt-mastery-grammar/pom.xml | 2 +- .../legend-engine-xt-mastery-protocol/pom.xml | 2 +- .../legend-engine-xt-mastery-pure/pom.xml | 2 +- legend-engine-xts-mastery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml | 2 +- legend-engine-xts-mongodb/pom.xml | 2 +- .../legend-engine-xt-morphir-pure/pom.xml | 2 +- legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml | 2 +- legend-engine-xts-morphir/pom.xml | 2 +- .../legend-engine-xt-openapi-generation/pom.xml | 2 +- .../legend-engine-xt-openapi-pure/pom.xml | 2 +- legend-engine-xts-openapi/pom.xml | 2 +- .../legend-engine-xt-persistence-api/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-component/pom.xml | 2 +- .../legend-engine-xt-persistence-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-test-runner/pom.xml | 2 +- legend-engine-xts-persistence/pom.xml | 2 +- .../legend-engine-xt-protobuf-grammar/pom.xml | 2 +- .../legend-engine-xt-protobuf-protocol/pom.xml | 2 +- .../legend-engine-xt-protobuf-pure/pom.xml | 2 +- legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml | 4 ++-- legend-engine-xts-protobuf/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-analytics/pom.xml | 2 +- .../legend-engine-xt-relationalStore-connection/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-reports/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-server/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino/pom.xml | 2 +- .../legend-engine-xt-relationalStore-dbExtension/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-executionPlan/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-api/pom.xml | 2 +- .../legend-engine-xt-relationalStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-generation/pom.xml | 2 +- legend-engine-xts-relationalStore/pom.xml | 2 +- .../legend-engine-xt-relationalai-pure/pom.xml | 2 +- legend-engine-xts-relationalai/pom.xml | 2 +- .../legend-engine-xt-rosetta-pure/pom.xml | 2 +- legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml | 2 +- legend-engine-xts-rosetta/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-execution/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service/pom.xml | 2 +- .../legend-engine-service-post-validation-runner/pom.xml | 2 +- .../legend-engine-services-model-api/pom.xml | 2 +- .../legend-engine-services-model/pom.xml | 2 +- .../legend-engine-test-runner-service/pom.xml | 2 +- legend-engine-xts-service/pom.xml | 2 +- .../legend-engine-xt-serviceStore-executionPlan/pom.xml | 2 +- .../legend-engine-xt-serviceStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-serviceStore-protocol/pom.xml | 2 +- .../legend-engine-xt-serviceStore-pure/pom.xml | 2 +- legend-engine-xts-serviceStore/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-api/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-compiler/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-grammar/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-protocol/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-pure/pom.xml | 2 +- legend-engine-xts-snowflakeApp/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml | 2 +- .../legend-engine-xt-sql-grammar-integration/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml | 2 +- .../legend-engine-xt-sql-postgres-server/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml | 2 +- .../legend-engine-xt-sql-pure-metamodel/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml | 2 +- legend-engine-xts-sql/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml | 2 +- .../legend-engine-xt-text-pure-metamodel/pom.xml | 2 +- legend-engine-xts-text/pom.xml | 2 +- .../legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml | 2 +- legend-engine-xts-xml/pom.xml | 2 +- pom.xml | 4 ++-- 375 files changed, 378 insertions(+), 378 deletions(-) diff --git a/legend-engine-application-query/pom.xml b/legend-engine-application-query/pom.xml index 1b5501d9573..765b07222ed 100644 --- a/legend-engine-application-query/pom.xml +++ b/legend-engine-application-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-application-query diff --git a/legend-engine-config/legend-engine-configuration/pom.xml b/legend-engine-config/legend-engine-configuration/pom.xml index e1f0918d120..5c4b9875722 100644 --- a/legend-engine-config/legend-engine-configuration/pom.xml +++ b/legend-engine-config/legend-engine-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-configuration diff --git a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml index 4637bd8602e..bd2dd360458 100644 --- a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-connection-integration-tests diff --git a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml index 216d1377620..dc632328c15 100644 --- a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml index 85b6ada4a7d..2fc2f4b69d2 100644 --- a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml index c456e094c46..1d0bd2a888a 100644 --- a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml +++ b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-config/legend-engine-server-integration-tests/pom.xml b/legend-engine-config/legend-engine-server-integration-tests/pom.xml index 8e296c28723..6aa660b6137 100644 --- a/legend-engine-config/legend-engine-server-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-server-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-server-integration-tests diff --git a/legend-engine-config/legend-engine-server-support-core/pom.xml b/legend-engine-config/legend-engine-server-support-core/pom.xml index 91802452882..159842138c7 100644 --- a/legend-engine-config/legend-engine-server-support-core/pom.xml +++ b/legend-engine-config/legend-engine-server-support-core/pom.xml @@ -3,7 +3,7 @@ legend-engine-config org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index 6a3c2af59ac..d61feca868f 100644 --- a/legend-engine-config/legend-engine-server/pom.xml +++ b/legend-engine-config/legend-engine-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-server diff --git a/legend-engine-config/pom.xml b/legend-engine-config/pom.xml index bbb9cb9c2a8..fda3008ec0b 100644 --- a/legend-engine-config/pom.xml +++ b/legend-engine-config/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml index 7d3007710fc..8eb284b1815 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-executionPlan-dependencies diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml index bfc7d8d6ca1..55161a2fc6e 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-executionPlan-execution-api diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml index f4d6a34578a..48d5a11651a 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-core-executionPlan-execution org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml index d5821e8a718..8dda8b8c204 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-executionPlan-execution-store-inMemory diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml index 3974c2b2822..0a62ed61a2b 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-executionPlan-execution diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml index edadc86aafc..aec9cf0e992 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml index 3e2c9b3d5de..f8c94208137 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml index 2d3665e0b36..a8935a9c6ca 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-generation - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml index d1257764856..d7a2993ae42 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml index f4870d70cf5..d399a59eb5b 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml index f0f130171be..debbb856a0b 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-language-pure-compiler-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml index cc8237a789d..26b890fef63 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-language-pure-compiler diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml index f033c25217b..bdfa916f9d8 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-language-pure-grammar-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml index f71cbe34f30..6201a5bf488 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-language-pure-grammar diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml index b37d7df0f23..586be8b35fe 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-language-pure-modelManager-sdlc diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml index 5b33e58f991..ee5bc71de5e 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-language-pure-modelManager diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml index f147f42f96d..18450882e2e 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-protocol-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml index 8517059d504..e85d596d4c4 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-protocol-generation-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml index aafc776e195..b981c084761 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-protocol-generation diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml index 4d7984a4ece..8a491587764 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-protocol-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml index 1140a988496..07ab7a45687 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-protocol diff --git a/legend-engine-core/legend-engine-core-language-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/pom.xml index cb1d7de5293..70e71bc2d3e 100644 --- a/legend-engine-core/legend-engine-core-language-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml index 55bfffeaeef..4e1180afd79 100644 --- a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-query-pure - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-query-pure diff --git a/legend-engine-core/legend-engine-core-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/pom.xml index 14ff8bdc5b0..20299960355 100644 --- a/legend-engine-core/legend-engine-core-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml index b44de677970..6764467dc25 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-shared-core diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml index 84a74c4b0dc..73bd9f7c241 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-shared-javaCompiler diff --git a/legend-engine-core/legend-engine-core-shared/pom.xml b/legend-engine-core/legend-engine-core-shared/pom.xml index 6831091614b..39bab9b873a 100644 --- a/legend-engine-core/legend-engine-core-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml index a8d1afea83b..d73644db82f 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-core-test - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml index 62e73a174e5..17cbcb7fa0f 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml index 1a0ee7f594b..6ed1357c82f 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-test-runner-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml index 75d382ea280..95b64687393 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-test-server-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml index e662814e997..5e0fd0d2544 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-testable diff --git a/legend-engine-core/legend-engine-core-test/pom.xml b/legend-engine-core/legend-engine-core-test/pom.xml index af941fe122d..3c0f4e5fdbc 100644 --- a/legend-engine-core/legend-engine-core-test/pom.xml +++ b/legend-engine-core/legend-engine-core-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-core/pom.xml b/legend-engine-core/pom.xml index dcb7453bd64..a915626200b 100644 --- a/legend-engine-core/pom.xml +++ b/legend-engine-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml index 7c35a7caf44..99710cef715 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.31.1-SNAPSHOT + 4.32.0 legend-engine-pure-code-compiled-core diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml index 5918920e868..03e550f986c 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.31.1-SNAPSHOT + 4.32.0 legend-engine-pure-code-compiled-functions diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml index 73361dea3f1..1b615cf6850 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.31.1-SNAPSHOT + 4.32.0 legend-engine-pure-code-core-extension diff --git a/legend-engine-pure/legend-engine-pure-code/pom.xml b/legend-engine-pure/legend-engine-pure-code/pom.xml index 428750e1245..1029f22b83f 100644 --- a/legend-engine-pure/legend-engine-pure-code/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml index 40c7357d619..906027e5449 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml index 912e66c9ebc..56e407e1ff6 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml index 691809bc13f..a137c28f949 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/pom.xml b/legend-engine-pure/legend-engine-pure-ide/pom.xml index 0c4c7f5e6c0..49e9a0e35cb 100644 --- a/legend-engine-pure/legend-engine-pure-ide/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml index f3d4f2d0027..2bcbdd9ee56 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.31.1-SNAPSHOT + 4.32.0 legend-engine-pure-platform-dsl-diagram-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml index e101186ad2a..ebf5a412d52 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.31.1-SNAPSHOT + 4.32.0 legend-engine-pure-platform-dsl-graph-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml index 72a720c8ef4..59cb5843bc8 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.31.1-SNAPSHOT + 4.32.0 legend-engine-pure-platform-dsl-mapping-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml index 6cd7fba5059..739da4dab3b 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.31.1-SNAPSHOT + 4.32.0 legend-engine-pure-platform-dsl-path-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml index 9ca609aec7c..4cf161b6efa 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.31.1-SNAPSHOT + 4.32.0 legend-engine-pure-platform-functions-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml index 8febb4cdf03..d68798783e8 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.31.1-SNAPSHOT + 4.32.0 legend-engine-pure-platform-functions-json-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml index db6c216bc8f..64b89e22738 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.31.1-SNAPSHOT + 4.32.0 legend-engine-pure-platform-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml index c68ddb82372..660723fd8cc 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.31.1-SNAPSHOT + 4.32.0 legend-engine-pure-platform-store-relational-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml index 48a4caa9c31..20ac42d36bf 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml index 5a42d68b628..98fc3a32183 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml index b0df0896b36..fc880f41429 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml index b505fa514a5..b84c004436f 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml index eab70caf3cc..569fc4903a1 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.31.1-SNAPSHOT + 4.32.0 legend-engine-xt-java-runtime-compiler diff --git a/legend-engine-pure/legend-engine-pure-runtime/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/pom.xml index fd7ee851c61..329332b22cd 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-pure/pom.xml b/legend-engine-pure/pom.xml index f84fbac75a6..57971571785 100644 --- a/legend-engine-pure/pom.xml +++ b/legend-engine-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml index a5d04ed96ac..4962574117f 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml index c8d36887d91..081c8cac6d7 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml index 6356a5566b2..558d779853b 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml index a1144c69ab5..62b55b4e3a6 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml index 132ce5bcc34..cea8674e260 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml index 00ea1e6137d..4ab8fbfb55d 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml index 6bbbdd54374..2b443278984 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml index c7d10e7ad86..1a5b70fe83b 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml index c426a62af6a..908d118acd4 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml index 74796d196bc..c745d66650b 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml index 5046f000249..d9bbe36da84 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml index 348def6cfc0..9ed33acb3d4 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml index f5382f8d519..75ff6c0b206 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 Legend Engine - XT - Analytics - Mapping - API diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml index 5254aaaf0f3..f3b1f5bcfb1 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-mapping - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 Legend Engine - XT - Analytics - Mapping - Protocol diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml index 3ab440b5c48..cb16bf8033c 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml index bd22dd792f9..f2488049ec2 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml index 7ae2253a4d5..6b5fd78aaa6 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-search - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml index b4dae52b129..ce18a12a1c7 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-search org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml index 565b2d54662..1605856bd39 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml index 38f95fd9463..0c0a001e0e7 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-xt-analytics-store-entitlement-api diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml index 896db2b9f6a..3874df05e0c 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml index cf129f070a7..24dc9e17bed 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-analytics/pom.xml b/legend-engine-xts-analytics/pom.xml index 081666c4a5c..f7d21c43116 100644 --- a/legend-engine-xts-analytics/pom.xml +++ b/legend-engine-xts-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml index a2b412ed3c4..1dcc3fe1992 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml index 7c435680d58..9cdce4434b1 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-arrow/pom.xml b/legend-engine-xts-arrow/pom.xml index c9b3e502a86..fa222dd3b17 100644 --- a/legend-engine-xts-arrow/pom.xml +++ b/legend-engine-xts-arrow/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 legend-engine-xts-arrow diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml index d811cbf224a..367d79f0266 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml index 89e689aadbe..0b832969808 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml index 1c2e59f514f..f91b873336e 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml index 12b223a2449..87c5d4d3b02 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml index ed311af4f6e..60e8cef799c 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml index ac041ae119c..6a76d1c08c5 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml index 4329daa182b..b0d55386f54 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-authentication/pom.xml b/legend-engine-xts-authentication/pom.xml index b4d0973ffc9..74bcd05b790 100644 --- a/legend-engine-xts-authentication/pom.xml +++ b/legend-engine-xts-authentication/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml index bb06877dcf1..f3e1f733677 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml index 3dad133888f..54c99e1c371 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-avro/pom.xml b/legend-engine-xts-avro/pom.xml index 40ee1013d94..636983ef655 100644 --- a/legend-engine-xts-avro/pom.xml +++ b/legend-engine-xts-avro/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml index f85e25bf3b4..79d1a1e81f2 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-changetoken org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml index 626d0fa7ddf..5ac94ebd0db 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-changetoken - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-changetoken/pom.xml b/legend-engine-xts-changetoken/pom.xml index 9344f055b3e..ccbfca2ee1e 100644 --- a/legend-engine-xts-changetoken/pom.xml +++ b/legend-engine-xts-changetoken/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml index eebdad8c10b..2e2279c3852 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml index fcd3ab34528..86b17a2f5e5 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml index 3bed27ca5b3..5e3a6418b9b 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-daml/pom.xml b/legend-engine-xts-daml/pom.xml index 5b5fb51cd1b..f216372b866 100644 --- a/legend-engine-xts-daml/pom.xml +++ b/legend-engine-xts-daml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml index af7ec154e04..985c516bd9f 100644 --- a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml +++ b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-data-push org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-data-push/pom.xml b/legend-engine-xts-data-push/pom.xml index 8b26e478056..5fd315b0fc0 100644 --- a/legend-engine-xts-data-push/pom.xml +++ b/legend-engine-xts-data-push/pom.xml @@ -3,7 +3,7 @@ legend-engine org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml index 6a8c3b4c416..cf4cfae6f18 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml index 024e91ab654..4ac79e8ce47 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-data-space org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml index 53787d07178..0ed76f1e2bc 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml index c2913afb469..8802bfa71da 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml index 784e5aabe74..deef7efd09f 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml index ae29325834d..f568a4dd450 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml index c01524ba414..1bc0b692677 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-data-space/pom.xml b/legend-engine-xts-data-space/pom.xml index 4609d01bc6a..7b4fb2a6a08 100644 --- a/legend-engine-xts-data-space/pom.xml +++ b/legend-engine-xts-data-space/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml index 9ff85a24a7a..13c4be7c128 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml index c2c955a6e52..1b310fb7647 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-diagram org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml index 63f314683c3..6c02c22ab65 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml index 553e1b3a34b..3f5d6e15592 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml index 87c13195c2b..86e43787044 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml index 8338e110667..7d4a7e86e1c 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-diagram/pom.xml b/legend-engine-xts-diagram/pom.xml index ebe261d28fb..472f964cf23 100644 --- a/legend-engine-xts-diagram/pom.xml +++ b/legend-engine-xts-diagram/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml index 17d159cb8a9..39302d34fe5 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml index d08ef57bd2b..e94a862687a 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml index f20d77daac4..69d2f95e628 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml index 95e23417732..6ed68bce865 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml index 17baab3f0ff..a4888d7e0c9 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml index d70bc343c2f..872c3ec1500 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.31.1-SNAPSHOT + 4.32.0 legend-engine-xt-elasticsearch-protocol-utils diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml index 784cb734310..c4505c26094 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/pom.xml b/legend-engine-xts-elasticsearch/pom.xml index 179b8b3a816..3c48b79416d 100644 --- a/legend-engine-xts-elasticsearch/pom.xml +++ b/legend-engine-xts-elasticsearch/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml index 264e4ae01f4..92055af760a 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-flatdata org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml index cbded859cf1..f1ba63b108e 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml index 3b781ed407f..b2d8a08d9aa 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml index e1ba1544f43..6013663eec8 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml index 14e4fac4e54..86dce7afbcb 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml index 7cc569dda8e..598f2a366ab 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml index b5501feb952..1f57a52c1c2 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-flatdata/pom.xml b/legend-engine-xts-flatdata/pom.xml index f58835e7187..4341aee1177 100644 --- a/legend-engine-xts-flatdata/pom.xml +++ b/legend-engine-xts-flatdata/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml index 861bd4ff8fd..9b652a630f8 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml index c042e549f45..75886bec721 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml index 4e40d912b09..90b8ae46f5c 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-functionActivator/pom.xml b/legend-engine-xts-functionActivator/pom.xml index 8eeff53cf8d..4bff01f4f64 100644 --- a/legend-engine-xts-functionActivator/pom.xml +++ b/legend-engine-xts-functionActivator/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml index daef6b69466..af0bc6a9699 100644 --- a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml +++ b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml index a1f6cfe6dac..f77d69a0794 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml index 5ead294f099..e5794fea721 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-language-pure-dsl-generation diff --git a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml index f229c9f3717..629791c07b3 100644 --- a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml +++ b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-generation org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-generation/pom.xml b/legend-engine-xts-generation/pom.xml index 766e8ef9802..1fa1b41dc88 100644 --- a/legend-engine-xts-generation/pom.xml +++ b/legend-engine-xts-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml index 4e12e66e7b8..aa6e71f72e9 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 @@ -73,7 +73,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.31.1-SNAPSHOT + 4.32.0 org.finos.legend.pure diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml index c471fc7d8e8..9bd15df7ba0 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml index 9d69c4b6448..a1039af324a 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml index 500d297fb6e..ab213942c8d 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml index e1b3a086eac..b30eb374295 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml index 89fbe0fb449..15e208d0b6d 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml index c13abafe937..43005d28da6 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml index 7d80c069636..87f00f26636 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-graphQL/pom.xml b/legend-engine-xts-graphQL/pom.xml index 0d4fb094091..f78b90a47f7 100644 --- a/legend-engine-xts-graphQL/pom.xml +++ b/legend-engine-xts-graphQL/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml index c93a8ba8d87..90d069fddf1 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml index 540ec11ee18..7b0ec5fcc59 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml index 5f324d1e60e..d4a12325b0b 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-haskell/pom.xml b/legend-engine-xts-haskell/pom.xml index 4a024da2e8e..28b5274b48b 100644 --- a/legend-engine-xts-haskell/pom.xml +++ b/legend-engine-xts-haskell/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml index f31be8e6005..b8a4256282c 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml index 25aae85f410..1034f9ac002 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml index dcbdbab8954..1162aca0628 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml index db64a44a26a..f0c4f5b0bd7 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml index ad9f95184a2..fc6c4127601 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml index fda070cffcf..9f6ea021300 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-hostedService/pom.xml b/legend-engine-xts-hostedService/pom.xml index 4db6a24b2e0..9a8fc5ff5d3 100644 --- a/legend-engine-xts-hostedService/pom.xml +++ b/legend-engine-xts-hostedService/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml index 77b5f59c709..f9ac6f6838a 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml index 94f92a1e677..f04b55b1fbd 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-iceberg/pom.xml b/legend-engine-xts-iceberg/pom.xml index 0ecafda67b0..ba46ae5746a 100644 --- a/legend-engine-xts-iceberg/pom.xml +++ b/legend-engine-xts-iceberg/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml index 99e8e5798d4..69c32436aa9 100644 --- a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml +++ b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml index d30d47a03ff..14ca50e312d 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml index 0a03ac7cec5..ca80f19998c 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml index 6e08667d397..19eeaff1f10 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-java/pom.xml b/legend-engine-xts-java/pom.xml index 4a998b4637a..a2d5757de0d 100644 --- a/legend-engine-xts-java/pom.xml +++ b/legend-engine-xts-java/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml index d8f5cca7662..6dc92734c29 100644 --- a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml +++ b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml index 89f59d33004..7e70975b403 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml index 72db4c25ef6..5da1b9d1b64 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml index e7a7ea5e2ed..1c4f9573f71 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml index 479a61075ec..f934b33f2b3 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml index 4fd16bdd85e..7f8794bdb98 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-json/pom.xml b/legend-engine-xts-json/pom.xml index 08322b7ff55..2ad400e253e 100644 --- a/legend-engine-xts-json/pom.xml +++ b/legend-engine-xts-json/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml index 2f3232d471d..78e473bc99e 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-mastery org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml index f8c3b853114..9014535e377 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml index d09ada6a227..48cd34a4e87 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-mastery/pom.xml b/legend-engine-xts-mastery/pom.xml index 1a48aa752ae..6750d013edd 100644 --- a/legend-engine-xts-mastery/pom.xml +++ b/legend-engine-xts-mastery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml index 2541fb8f78a..a4399497666 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml index 0df97c65e7d..0c24623c30d 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.31.1-SNAPSHOT + 4.32.0 legend-engine-xt-nonrelationalStore-mongodb-executionPlan diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml index 3636900c04f..ccfd103608d 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.31.1-SNAPSHOT + 4.32.0 legend-engine-xt-nonrelationalStore-mongodb-grammar-integration diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml index 77e0b0ee8af..a83de2155a2 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.31.1-SNAPSHOT + 4.32.0 legend-engine-xt-nonrelationalStore-mongodb-grammar diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml index 7aadc72da36..1356c748107 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.31.1-SNAPSHOT + 4.32.0 legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml index d2df8856cd5..ff9aa23f0a8 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.31.1-SNAPSHOT + 4.32.0 legend-engine-xt-nonrelationalStore-mongodb-protocol diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml index 8f091cf4a37..97ae940bff7 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.31.1-SNAPSHOT + 4.32.0 legend-engine-xt-nonrelationalStore-mongodb-pure diff --git a/legend-engine-xts-mongodb/pom.xml b/legend-engine-xts-mongodb/pom.xml index c72d1a8a86c..e5bef351f06 100644 --- a/legend-engine-xts-mongodb/pom.xml +++ b/legend-engine-xts-mongodb/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml index 65493a80047..d6a5cb951f5 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-morphir - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml index fde890d8a3f..07118075823 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-morphir org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-morphir/pom.xml b/legend-engine-xts-morphir/pom.xml index 79f7a69978f..c7b48d4b936 100644 --- a/legend-engine-xts-morphir/pom.xml +++ b/legend-engine-xts-morphir/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml index c34b6d1f2fd..b80dc08e1c3 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.31.1-SNAPSHOT + 4.32.0 legend-engine-xt-openapi-generation diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml index 3543fb6b815..2f55cd79e76 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.31.1-SNAPSHOT + 4.32.0 legend-engine-xt-openapi-pure diff --git a/legend-engine-xts-openapi/pom.xml b/legend-engine-xts-openapi/pom.xml index fd31acd9441..f06b6652a62 100644 --- a/legend-engine-xts-openapi/pom.xml +++ b/legend-engine-xts-openapi/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml index 4ce9c028ff8..f865d4cacfd 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml index 2ab21473c47..3217809287a 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml index 7022a9ff2b0..6650cf3a9fe 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml index 1ab317420fd..87662a42f17 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml index 0d278e2c3e6..d3378367e44 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml index 817b3aa377a..c014418a64e 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml index fe5e5122bda..e76f83b24fd 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml index 69321cee964..a946849f290 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml index abbdedbf293..a5e181e566a 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml index 6a265f6ff23..00c67d16dca 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml index 9f975cf5e47..48bcc601b88 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml index 1a3fcaecf0f..7132be654ed 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml index a2c4d5553d3..8da70c9d998 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml index b7da62a86e2..e1abb1e92e0 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml index caa72b6cbaa..61bb7cea55d 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml index a172b3a3463..bb857924162 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml index fc6ecb0920e..ed8752e55f9 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml index d2d06a36e66..7acb2b52bd8 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml index ec691b8f2d9..804b56fb2f6 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml index 349065e92ea..c5731530ffd 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml index 46c153a73ce..f429a346fc8 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-persistence/pom.xml b/legend-engine-xts-persistence/pom.xml index 05ebf918cb3..38102adc6f4 100644 --- a/legend-engine-xts-persistence/pom.xml +++ b/legend-engine-xts-persistence/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml index 4720031f2b0..bb07a18c3b5 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-xt-protobuf-grammar diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml index 12395685af3..895e2af1b8f 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-xt-protobuf-protocol diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml index 7a6d1396178..8b09f1fa374 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml index a6cb111f22a..8d0a6eb0ca0 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 @@ -57,7 +57,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.31.1-SNAPSHOT + 4.32.0 org.finos.legend.pure diff --git a/legend-engine-xts-protobuf/pom.xml b/legend-engine-xts-protobuf/pom.xml index fd6bda07b53..bbc2effc272 100644 --- a/legend-engine-xts-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml index 0f8fec2191a..902fb50bc94 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml index 36992f462d4..7c33b432c18 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml index 7f66ab4f5ef..d5bc14fba17 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml index a100e6fab79..a586a318f37 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml index d92d6333ca1..f15419709c7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml index c15d4213f4f..d3ba2fb1c47 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml index 8f9e9a7493e..e57789f379c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml index 36dec03baee..0ec895756fc 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml index 84539b905e9..058a10f7b5d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml index c25255ef586..bf365b732df 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml index 92ffb8c31f7..3408334cba5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-bigquery org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml index bf1d62457a2..a0c1f046fdd 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml index 4865a91efc2..a9685bc7516 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml index ebea03dfe4f..f1e68a8dca8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml index 1d1228bda8b..290e7fa52b7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml index 242659a9547..69e1cb0288a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml index ab31d032faa..76144b58af5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml index 1c05059766e..eccec5b21fe 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml index 661092a2d2c..f95b7e1add7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml index dceda4199c2..4d1c415d7a1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml index 1c98b9f2ff7..8e3f98d87a8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml index ae1f4ca8f91..dd9c6e41dc9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml index 8e3b74d3b53..e5b445b7505 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-dbExtension org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml index 29dc95b3a17..e887efe7435 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-hive - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml index 5fe58af41d5..a217bc1ddc3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml index fc66e078900..eb554aea41c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml index 53335d9cb15..8b299686e0e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-memsql org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml index 8740975e5ba..8cfb1672690 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.31.1-SNAPSHOT + 4.32.0 legend-engine-xt-relationalStore-memsql-execution diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml index aa62c02a2db..1acd534a320 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.31.1-SNAPSHOT + 4.32.0 legend-engine-xt-relationalStore-memsql-pure diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml index 273c0a98e56..ee80cb0a703 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml index 677109489c3..e21c84c8a31 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml index 2c0648e6d4e..16bbd38d7cf 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml index cbc115aedc1..eeaac8bbd8e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml index 6b66d3be078..ca63a6f82ae 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml index 7306154db03..56c64ca741a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml index 17ffa3bf6b4..e08a1c363b3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml index f8ebc28e154..3462445261e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-presto - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml index c81e6b646f3..17e812b8065 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml index 6e06ceab56c..b59c6dc3910 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml index 9cd44ae3fbe..9c375a12392 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml index f60aac5338c..eb95b6d1946 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml index 69480678ff2..62bceb7d82a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml index 23df390d834..40773f82a81 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml index 3bf8bbbae77..cda749e69bf 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml index 8001d9343ba..de443e5e3a8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml index f045f4e2e3e..1e774251ffe 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml index 6fdde142e2f..8ed57b2fb99 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml index 373825f4490..ce841540aa8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml index 59b13163780..10eaba7775a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml index 2db19eb588f..2ebfe52185c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml index 4d039dba3b3..ccf9daec53d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml index 0b9f703a5be..796d675d414 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml index 38fab3a27ac..938c6bd78b9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml index d23132cf80e..6525c0f78c0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml index da4d48ea87e..3aecff4bcd4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml index a9ba58c5d13..e3280c42d96 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml index cc4c7c6a89e..7e2aa1f8405 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml index 744ca369754..10f6102426d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml index 947ea932cae..d62fca1fcbb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sparksql - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml index 4a8db0e6e61..056b8f61ac5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml index 73f78704c20..8c29bfdd3ca 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml index 0375ca31f45..caa146ed574 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-xt-relationalStore-sqlserver-execution-tests diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml index cfe0332d8b8..31bae713107 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml index 685ccc702b4..2eeec9606c1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml index 9fb760f0bbd..efccec62806 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml index 8e5f094df45..cbb6df1e80e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybase - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml index a8d0be06b31..bc30227ef26 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml index 00fedc2c3de..5157d539147 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybaseiq - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml index 02ba1b1f76d..41cf2bd5aff 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml index c2b4589f915..75e03d0248a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-xt-relationalStore-test-reports diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml index 1fcfdd33788..825d3de768a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-xt-relationalStore-test-server diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml index b50b1c49551..2e18e20eb7f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml index 0addb3bc94f..955dbea7fe1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml index e1c8245ba3e..f56ec438c8c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml index 752bda76ad8..9767314924a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml index 7841b5a2b23..0b23999ef62 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml index 19a560d72fa..27f44913187 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml index 445ab469081..4cf52278a95 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml index 73f2d3ad399..bec8ed4571f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml index adf81bd3c92..f1e3a569fe7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml index 0adc008e651..45f37ce1efc 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication-default diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml index 45d385317fd..c9b4d47e8ca 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml index a9be7f7c66b..d6f3b3d0fa9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 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 88136a52859..81cd89b3d8b 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 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 797e3f09751..45d418757fa 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml index efc4a801f28..771259a28cb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml index 66dee0ddcdd..f19ccbdc565 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml index 4ed89300aea..5fbbb644c8f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml index 67fa80ba0d0..eb2e484fd81 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml index 26dc68c4aa4..0c52a4204b6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml index 33d04b2c01a..1843f91ce90 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml index 0cab99839ef..8dacc3ea4f6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml index 4d08598e30a..8d140ffe649 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml index cab12259b39..0a8b76a0f9f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/pom.xml b/legend-engine-xts-relationalStore/pom.xml index a1c3563288e..883630d4cfa 100644 --- a/legend-engine-xts-relationalStore/pom.xml +++ b/legend-engine-xts-relationalStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml index 01760063987..4e97feebd7d 100644 --- a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalai - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-relationalai/pom.xml b/legend-engine-xts-relationalai/pom.xml index 2b8cf170951..83865276f46 100644 --- a/legend-engine-xts-relationalai/pom.xml +++ b/legend-engine-xts-relationalai/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml index 17bdf942efa..0a1458552c3 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml index d33318a6d0a..5cfe58eff66 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-rosetta/pom.xml b/legend-engine-xts-rosetta/pom.xml index 4872d55b92e..4ddda0b2a6f 100644 --- a/legend-engine-xts-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml index d65d2ed52b5..ae5fedd5590 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-language-pure-dsl-service-execution diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml index 804260c7aa9..a9ae650a5f6 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml index 2a527c92c91..473ad8d3718 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml index 8a2661eaa1c..a8e4be719b2 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-language-pure-dsl-service diff --git a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml index 837f41ebeb6..2dc194ce375 100644 --- a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml +++ b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml index 46b94cc6735..7af5fc02a3c 100644 --- a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-services-model-api diff --git a/legend-engine-xts-service/legend-engine-services-model/pom.xml b/legend-engine-xts-service/legend-engine-services-model/pom.xml index add0386e576..d36d0783e9d 100644 --- a/legend-engine-xts-service/legend-engine-services-model/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 legend-engine-services-model diff --git a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml index df829614070..104269b6797 100644 --- a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-service/pom.xml b/legend-engine-xts-service/pom.xml index 9e23cc80850..8796f6db7cb 100644 --- a/legend-engine-xts-service/pom.xml +++ b/legend-engine-xts-service/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml index e3254defb62..4fa1a8b018f 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml index 5dc7fca4647..e93506fe1ed 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml index 0763b837d80..df2ab0ebe10 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml index 7214e483c4e..63776cefb51 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml index 5720eed17ec..15a75255dbd 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-serviceStore/pom.xml b/legend-engine-xts-serviceStore/pom.xml index 23c1641fe3a..793ec5ca33f 100644 --- a/legend-engine-xts-serviceStore/pom.xml +++ b/legend-engine-xts-serviceStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml index f59d85c3e91..d27ab96d92b 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml index ff93761e8b2..0d53c58c063 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-snowflakeApp org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml index c540979e13d..1ca4c18ed82 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml index 077dca42c5f..c838f975fef 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml index 2d93f56b716..a4a5a659021 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/pom.xml b/legend-engine-xts-snowflakeApp/pom.xml index 4eb9faf0901..5b1ca969c67 100644 --- a/legend-engine-xts-snowflakeApp/pom.xml +++ b/legend-engine-xts-snowflakeApp/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml index 2514e24e901..72463d1ccc9 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml index 2de59a54ad1..5b248112ef2 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml index fe61e9da901..9056c2865a1 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml index bbd628f36b9..bcf7dcd2e79 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-sql org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml index 696c73344bb..e4786a9e201 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml index e78b886b9b8..e947504222d 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml index a1423398703..bbc9850032b 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml index 187dd38dd35..b2cfe6d2e19 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-sql/pom.xml b/legend-engine-xts-sql/pom.xml index 40c0076004f..05becc2fa54 100644 --- a/legend-engine-xts-sql/pom.xml +++ b/legend-engine-xts-sql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml index 3e645fb561a..9d7f780a859 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-text org.finos.legend.engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml index f2ac4fb2cbb..b0f945b5372 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml index 9d74f92e07b..d9c5d876162 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml index 4e51f7b30e0..1554d79d87c 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-text/pom.xml b/legend-engine-xts-text/pom.xml index b0a09655c8b..e9b3954a286 100644 --- a/legend-engine-xts-text/pom.xml +++ b/legend-engine-xts-text/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml index 0833f448c9f..8c0f0fdff8e 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml index 87d69643142..ebd7fe46117 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml index 82c997c1e2f..30e338bd8ba 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml index 621fe36aa81..15e2868e103 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml index 31c0e6e699e..c1bf1f45ed3 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/legend-engine-xts-xml/pom.xml b/legend-engine-xts-xml/pom.xml index 68255112f02..bd141762391 100644 --- a/legend-engine-xts-xml/pom.xml +++ b/legend-engine-xts-xml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 4.0.0 diff --git a/pom.xml b/pom.xml index d2a65e2a43b..ad81f9e1d42 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ Legend Engine org.finos.legend.engine legend-engine - 4.31.1-SNAPSHOT + 4.32.0 pom @@ -228,7 +228,7 @@ scm:git:https://github.com/finos/legend-engine - HEAD + legend-engine-4.32.0 From c0ea53840ae2b75f9bad54e1f33ab931fd274e73 Mon Sep 17 00:00:00 2001 From: FINOS Administrator <37706051+finos-admin@users.noreply.github.com> Date: Wed, 18 Oct 2023 00:03:24 +0000 Subject: [PATCH 24/80] [maven-release-plugin] prepare for next development iteration --- legend-engine-application-query/pom.xml | 2 +- legend-engine-config/legend-engine-configuration/pom.xml | 2 +- .../legend-engine-connection-integration-tests/pom.xml | 2 +- .../legend-engine-extensions-collection-execution/pom.xml | 2 +- .../legend-engine-extensions-collection-generation/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-server-integration-tests/pom.xml | 2 +- .../legend-engine-server-support-core/pom.xml | 2 +- legend-engine-config/legend-engine-server/pom.xml | 2 +- legend-engine-config/pom.xml | 2 +- .../legend-engine-executionPlan-dependencies/pom.xml | 2 +- .../legend-engine-executionPlan-execution-api/pom.xml | 2 +- .../legend-engine-executionPlan-execution-authorizer/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-executionPlan-execution/pom.xml | 2 +- .../legend-engine-external-shared-format-runtime/pom.xml | 2 +- .../legend-engine-core-executionPlan-execution/pom.xml | 2 +- .../legend-engine-executionPlan-generation/pom.xml | 2 +- .../legend-engine-core-executionPlan-generation/pom.xml | 2 +- .../legend-engine-external-shared-format-model/pom.xml | 2 +- .../legend-engine-language-pure-compiler-api/pom.xml | 2 +- .../legend-engine-language-pure-compiler/pom.xml | 2 +- .../legend-engine-language-pure-grammar-api/pom.xml | 2 +- .../legend-engine-language-pure-grammar/pom.xml | 2 +- .../legend-engine-language-pure-modelManager-sdlc/pom.xml | 2 +- .../legend-engine-language-pure-modelManager/pom.xml | 2 +- .../legend-engine-protocol-api/pom.xml | 2 +- .../legend-engine-protocol-generation-pure/pom.xml | 2 +- .../legend-engine-protocol-generation/pom.xml | 2 +- .../legend-engine-protocol-pure/pom.xml | 2 +- .../legend-engine-protocol/pom.xml | 2 +- legend-engine-core/legend-engine-core-language-pure/pom.xml | 2 +- .../legend-engine-query-pure/pom.xml | 2 +- legend-engine-core/legend-engine-core-query-pure/pom.xml | 2 +- .../legend-engine-shared-core/pom.xml | 2 +- .../legend-engine-shared-javaCompiler/pom.xml | 2 +- legend-engine-core/legend-engine-core-shared/pom.xml | 2 +- .../legend-engine-test-data-generation/pom.xml | 2 +- .../legend-engine-test-runner-mapping/pom.xml | 2 +- .../legend-engine-test-runner-shared/pom.xml | 2 +- .../legend-engine-test-server-shared/pom.xml | 2 +- .../legend-engine-core-test/legend-engine-testable/pom.xml | 2 +- legend-engine-core/legend-engine-core-test/pom.xml | 2 +- legend-engine-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-functions/pom.xml | 2 +- .../legend-engine-pure-code-core-extension/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-code/pom.xml | 2 +- .../legend-engine-pure-ide-light-metadata-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-ide/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-diagram-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-graph-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-mapping-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-path-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-json-java/pom.xml | 2 +- .../legend-engine-pure-platform-java/pom.xml | 2 +- .../legend-engine-pure-platform-store-relational-java/pom.xml | 2 +- .../legend-engine-pure-platform-modular-generation/pom.xml | 2 +- .../legend-engine-pure-runtime-compiler/pom.xml | 2 +- .../legend-engine-pure-runtime-execution/pom.xml | 2 +- .../legend-engine-pure-runtime-extensions/pom.xml | 2 +- .../legend-engine-xt-java-runtime-compiler/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-runtime/pom.xml | 2 +- legend-engine-pure/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-api/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-binding/pom.xml | 2 +- .../legend-engine-xt-analytics-class-api/pom.xml | 2 +- .../legend-engine-xt-analytics-class-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-class/pom.xml | 2 +- .../legend-engine-xt-analytics-function-api/pom.xml | 2 +- .../legend-engine-xt-analytics-function-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-function/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-api/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-lineage/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-api/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-protocol/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-mapping/pom.xml | 2 +- .../legend-engine-xt-analytics-search-generation/pom.xml | 2 +- .../legend-engine-xt-analytics-search-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-search/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement-api/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement/pom.xml | 2 +- .../legend-engine-xts-analytics-store/pom.xml | 2 +- legend-engine-xts-analytics/pom.xml | 2 +- legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml | 2 +- .../legend-engine-xt-arrow-runtime/pom.xml | 2 +- legend-engine-xts-arrow/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-protocol/pom.xml | 2 +- .../legend-engine-xt-authentication-pure/pom.xml | 2 +- legend-engine-xts-authentication/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro/pom.xml | 2 +- legend-engine-xts-avro/pom.xml | 2 +- .../legend-engine-xt-changetoken-compiler/pom.xml | 2 +- .../legend-engine-xt-changetoken-pure/pom.xml | 2 +- legend-engine-xts-changetoken/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml | 2 +- legend-engine-xts-daml/pom.xml | 2 +- .../legend-engine-xt-data-push-server/pom.xml | 2 +- legend-engine-xts-data-push/pom.xml | 2 +- .../legend-engine-xt-data-space-api/pom.xml | 2 +- .../legend-engine-xt-data-space-compiler/pom.xml | 2 +- .../legend-engine-xt-data-space-generation/pom.xml | 2 +- .../legend-engine-xt-data-space-grammar/pom.xml | 2 +- .../legend-engine-xt-data-space-protocol/pom.xml | 2 +- .../legend-engine-xt-data-space-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-data-space-pure/pom.xml | 2 +- legend-engine-xts-data-space/pom.xml | 2 +- .../legend-engine-xt-diagram-api/pom.xml | 2 +- .../legend-engine-xt-diagram-compiler/pom.xml | 2 +- .../legend-engine-xt-diagram-grammar/pom.xml | 2 +- .../legend-engine-xt-diagram-protocol/pom.xml | 2 +- .../legend-engine-xt-diagram-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-diagram-pure/pom.xml | 2 +- legend-engine-xts-diagram/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-grammar/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-protocol/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-executionPlan-test/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-protocol-utils/pom.xml | 2 +- .../pom.xml | 2 +- legend-engine-xts-elasticsearch/pom.xml | 2 +- .../legend-engine-xt-flatdata-driver-bloomberg/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-flatdata-model/pom.xml | 2 +- .../legend-engine-xt-flatdata-pure/pom.xml | 2 +- .../legend-engine-xt-flatdata-runtime/pom.xml | 2 +- .../legend-engine-xt-flatdata-shared/pom.xml | 2 +- legend-engine-xts-flatdata/pom.xml | 2 +- .../legend-engine-xt-functionActivator-api/pom.xml | 2 +- .../legend-engine-xt-functionActivator-protocol/pom.xml | 2 +- .../legend-engine-xt-functionActivator-pure/pom.xml | 2 +- legend-engine-xts-functionActivator/pom.xml | 2 +- .../legend-engine-external-shared/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation/pom.xml | 2 +- .../legend-engine-xt-artifact-generation-api/pom.xml | 2 +- legend-engine-xts-generation/pom.xml | 2 +- .../legend-engine-xt-graphQL-compiler/pom.xml | 4 ++-- .../legend-engine-xt-graphQL-grammar-integration/pom.xml | 2 +- .../legend-engine-xt-graphQL-grammar/pom.xml | 2 +- .../legend-engine-xt-graphQL-protocol/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure/pom.xml | 2 +- .../legend-engine-xt-graphQL-query/pom.xml | 2 +- .../legend-engine-xt-graphQL-relational-extension/pom.xml | 2 +- legend-engine-xts-graphQL/pom.xml | 2 +- .../legend-engine-xt-haskell-grammar/pom.xml | 2 +- .../legend-engine-xt-haskell-protocol/pom.xml | 2 +- .../legend-engine-xt-haskell-pure/pom.xml | 2 +- legend-engine-xts-haskell/pom.xml | 2 +- .../legend-engine-xt-hostedService-api/pom.xml | 2 +- .../legend-engine-xt-hostedService-compiler/pom.xml | 2 +- .../legend-engine-xt-hostedService-generation/pom.xml | 2 +- .../legend-engine-xt-hostedService-grammar/pom.xml | 2 +- .../legend-engine-xt-hostedService-protocol/pom.xml | 2 +- .../legend-engine-xt-hostedService-pure/pom.xml | 2 +- legend-engine-xts-hostedService/pom.xml | 2 +- .../legend-engine-xt-iceberg-pure/pom.xml | 2 +- .../legend-engine-xt-iceberg-test-support/pom.xml | 2 +- legend-engine-xts-iceberg/pom.xml | 2 +- .../legend-engine-external-language-java/pom.xml | 2 +- .../legend-engine-xt-javaGeneration-featureBased-pure/pom.xml | 2 +- .../legend-engine-xt-javaGeneration-pure/pom.xml | 2 +- .../legend-engine-xt-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-java/pom.xml | 2 +- .../legend-engine-external-format-jsonSchema/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-pure/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-test/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-model/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml | 2 +- legend-engine-xts-json/pom.xml | 2 +- .../legend-engine-xt-mastery-grammar/pom.xml | 2 +- .../legend-engine-xt-mastery-protocol/pom.xml | 2 +- .../legend-engine-xt-mastery-pure/pom.xml | 2 +- legend-engine-xts-mastery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml | 2 +- legend-engine-xts-mongodb/pom.xml | 2 +- .../legend-engine-xt-morphir-pure/pom.xml | 2 +- legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml | 2 +- legend-engine-xts-morphir/pom.xml | 2 +- .../legend-engine-xt-openapi-generation/pom.xml | 2 +- .../legend-engine-xt-openapi-pure/pom.xml | 2 +- legend-engine-xts-openapi/pom.xml | 2 +- .../legend-engine-xt-persistence-api/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-component/pom.xml | 2 +- .../legend-engine-xt-persistence-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-test-runner/pom.xml | 2 +- legend-engine-xts-persistence/pom.xml | 2 +- .../legend-engine-xt-protobuf-grammar/pom.xml | 2 +- .../legend-engine-xt-protobuf-protocol/pom.xml | 2 +- .../legend-engine-xt-protobuf-pure/pom.xml | 2 +- legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml | 4 ++-- legend-engine-xts-protobuf/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-analytics/pom.xml | 2 +- .../legend-engine-xt-relationalStore-connection/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-reports/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-server/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino/pom.xml | 2 +- .../legend-engine-xt-relationalStore-dbExtension/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-executionPlan/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-api/pom.xml | 2 +- .../legend-engine-xt-relationalStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-generation/pom.xml | 2 +- legend-engine-xts-relationalStore/pom.xml | 2 +- .../legend-engine-xt-relationalai-pure/pom.xml | 2 +- legend-engine-xts-relationalai/pom.xml | 2 +- .../legend-engine-xt-rosetta-pure/pom.xml | 2 +- legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml | 2 +- legend-engine-xts-rosetta/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-execution/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service/pom.xml | 2 +- .../legend-engine-service-post-validation-runner/pom.xml | 2 +- .../legend-engine-services-model-api/pom.xml | 2 +- .../legend-engine-services-model/pom.xml | 2 +- .../legend-engine-test-runner-service/pom.xml | 2 +- legend-engine-xts-service/pom.xml | 2 +- .../legend-engine-xt-serviceStore-executionPlan/pom.xml | 2 +- .../legend-engine-xt-serviceStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-serviceStore-protocol/pom.xml | 2 +- .../legend-engine-xt-serviceStore-pure/pom.xml | 2 +- legend-engine-xts-serviceStore/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-api/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-compiler/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-grammar/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-protocol/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-pure/pom.xml | 2 +- legend-engine-xts-snowflakeApp/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml | 2 +- .../legend-engine-xt-sql-grammar-integration/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml | 2 +- .../legend-engine-xt-sql-postgres-server/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml | 2 +- .../legend-engine-xt-sql-pure-metamodel/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml | 2 +- legend-engine-xts-sql/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml | 2 +- .../legend-engine-xt-text-pure-metamodel/pom.xml | 2 +- legend-engine-xts-text/pom.xml | 2 +- .../legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml | 2 +- legend-engine-xts-xml/pom.xml | 2 +- pom.xml | 4 ++-- 375 files changed, 378 insertions(+), 378 deletions(-) diff --git a/legend-engine-application-query/pom.xml b/legend-engine-application-query/pom.xml index 765b07222ed..a5644d49a5d 100644 --- a/legend-engine-application-query/pom.xml +++ b/legend-engine-application-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-application-query diff --git a/legend-engine-config/legend-engine-configuration/pom.xml b/legend-engine-config/legend-engine-configuration/pom.xml index 5c4b9875722..19b085a060c 100644 --- a/legend-engine-config/legend-engine-configuration/pom.xml +++ b/legend-engine-config/legend-engine-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-configuration diff --git a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml index bd2dd360458..e8b2a4156e3 100644 --- a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-connection-integration-tests diff --git a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml index dc632328c15..b13cd3058fb 100644 --- a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml index 2fc2f4b69d2..3067f7c74f8 100644 --- a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml index 1d0bd2a888a..f860a58d691 100644 --- a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml +++ b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-server-integration-tests/pom.xml b/legend-engine-config/legend-engine-server-integration-tests/pom.xml index 6aa660b6137..b92093ed2fb 100644 --- a/legend-engine-config/legend-engine-server-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-server-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-server-integration-tests diff --git a/legend-engine-config/legend-engine-server-support-core/pom.xml b/legend-engine-config/legend-engine-server-support-core/pom.xml index 159842138c7..29959d07831 100644 --- a/legend-engine-config/legend-engine-server-support-core/pom.xml +++ b/legend-engine-config/legend-engine-server-support-core/pom.xml @@ -3,7 +3,7 @@ legend-engine-config org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index d61feca868f..5b97f0ebd47 100644 --- a/legend-engine-config/legend-engine-server/pom.xml +++ b/legend-engine-config/legend-engine-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-server diff --git a/legend-engine-config/pom.xml b/legend-engine-config/pom.xml index fda3008ec0b..f3cdfd4a74c 100644 --- a/legend-engine-config/pom.xml +++ b/legend-engine-config/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml index 8eb284b1815..6c91f276510 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-executionPlan-dependencies diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml index 55161a2fc6e..0c2a2cee499 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-executionPlan-execution-api diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml index 48d5a11651a..1210baadae3 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-core-executionPlan-execution org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml index 8dda8b8c204..ec312791f98 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-executionPlan-execution-store-inMemory diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml index 0a62ed61a2b..2850f59dfd2 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-executionPlan-execution diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml index aec9cf0e992..a5102224d6c 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml index f8c94208137..5cae8208813 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml index a8935a9c6ca..945bffaefe6 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-generation - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml index d7a2993ae42..c57a58439a4 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml index d399a59eb5b..00c9263a2ce 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml index debbb856a0b..8f65a7cd6bb 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-language-pure-compiler-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml index 26b890fef63..aca4bf1dc65 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-language-pure-compiler diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml index bdfa916f9d8..ca8ab38350f 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-language-pure-grammar-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml index 6201a5bf488..ea064956592 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-language-pure-grammar diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml index 586be8b35fe..3137cbabb3a 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-language-pure-modelManager-sdlc diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml index ee5bc71de5e..b0ff121784f 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-language-pure-modelManager diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml index 18450882e2e..f0d06addb59 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-protocol-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml index e85d596d4c4..13abe3f5e6f 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-protocol-generation-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml index b981c084761..93c6220db52 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-protocol-generation diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml index 8a491587764..71aa64d49f5 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-protocol-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml index 07ab7a45687..3222c5f3767 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-protocol diff --git a/legend-engine-core/legend-engine-core-language-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/pom.xml index 70e71bc2d3e..0897b6cb4e3 100644 --- a/legend-engine-core/legend-engine-core-language-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml index 4e1180afd79..7cc07a0c3f1 100644 --- a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-query-pure - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-query-pure diff --git a/legend-engine-core/legend-engine-core-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/pom.xml index 20299960355..1f0f2e790de 100644 --- a/legend-engine-core/legend-engine-core-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml index 6764467dc25..75001d41b25 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-shared-core diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml index 73bd9f7c241..d9a7fc82689 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-shared-javaCompiler diff --git a/legend-engine-core/legend-engine-core-shared/pom.xml b/legend-engine-core/legend-engine-core-shared/pom.xml index 39bab9b873a..a674da193be 100644 --- a/legend-engine-core/legend-engine-core-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml index d73644db82f..d7286cac2cd 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-core-test - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml index 17cbcb7fa0f..96f215753bc 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml index 6ed1357c82f..9d19e01a47e 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-test-runner-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml index 95b64687393..eed9506b68f 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-test-server-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml index 5e0fd0d2544..7d455c55c97 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-testable diff --git a/legend-engine-core/legend-engine-core-test/pom.xml b/legend-engine-core/legend-engine-core-test/pom.xml index 3c0f4e5fdbc..eabebcd002a 100644 --- a/legend-engine-core/legend-engine-core-test/pom.xml +++ b/legend-engine-core/legend-engine-core-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/pom.xml b/legend-engine-core/pom.xml index a915626200b..b2c14141b16 100644 --- a/legend-engine-core/pom.xml +++ b/legend-engine-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml index 99710cef715..b51cee8d273 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.32.0 + 4.32.1-SNAPSHOT legend-engine-pure-code-compiled-core diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml index 03e550f986c..cafc8094775 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.32.0 + 4.32.1-SNAPSHOT legend-engine-pure-code-compiled-functions diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml index 1b615cf6850..7fa3a90ac59 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.32.0 + 4.32.1-SNAPSHOT legend-engine-pure-code-core-extension diff --git a/legend-engine-pure/legend-engine-pure-code/pom.xml b/legend-engine-pure/legend-engine-pure-code/pom.xml index 1029f22b83f..fcf48b09e5d 100644 --- a/legend-engine-pure/legend-engine-pure-code/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml index 906027e5449..4d7ef4be307 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml index 56e407e1ff6..eccd598d078 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml index a137c28f949..17a0b4aefdf 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/pom.xml b/legend-engine-pure/legend-engine-pure-ide/pom.xml index 49e9a0e35cb..fe62d799f87 100644 --- a/legend-engine-pure/legend-engine-pure-ide/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml index 2bcbdd9ee56..3e69a6bdf58 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.32.0 + 4.32.1-SNAPSHOT legend-engine-pure-platform-dsl-diagram-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml index ebf5a412d52..336a660b58a 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.32.0 + 4.32.1-SNAPSHOT legend-engine-pure-platform-dsl-graph-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml index 59cb5843bc8..a6bb9845859 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.32.0 + 4.32.1-SNAPSHOT legend-engine-pure-platform-dsl-mapping-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml index 739da4dab3b..cf4adf171aa 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.32.0 + 4.32.1-SNAPSHOT legend-engine-pure-platform-dsl-path-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml index 4cf161b6efa..b2e106b6fd1 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.32.0 + 4.32.1-SNAPSHOT legend-engine-pure-platform-functions-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml index d68798783e8..8f9acf9465b 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.32.0 + 4.32.1-SNAPSHOT legend-engine-pure-platform-functions-json-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml index 64b89e22738..36fd4464f5b 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.32.0 + 4.32.1-SNAPSHOT legend-engine-pure-platform-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml index 660723fd8cc..78d84ca6879 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.32.0 + 4.32.1-SNAPSHOT legend-engine-pure-platform-store-relational-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml index 20ac42d36bf..ff3867b33eb 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml index 98fc3a32183..523ae9a2a96 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml index fc880f41429..0385771f6ca 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml index b84c004436f..51ad8bec715 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml index 569fc4903a1..752fc2e25bc 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.32.0 + 4.32.1-SNAPSHOT legend-engine-xt-java-runtime-compiler diff --git a/legend-engine-pure/legend-engine-pure-runtime/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/pom.xml index 329332b22cd..6a851e58074 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/pom.xml b/legend-engine-pure/pom.xml index 57971571785..644726cea75 100644 --- a/legend-engine-pure/pom.xml +++ b/legend-engine-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml index 4962574117f..aa2b8da6975 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml index 081c8cac6d7..1e0af19bad8 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml index 558d779853b..37a5cbfbda1 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml index 62b55b4e3a6..3dd304e3490 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml index cea8674e260..cfce69a9758 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml index 4ab8fbfb55d..1c1f5539889 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml index 2b443278984..d5d303dac6e 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml index 1a5b70fe83b..f645ad5f1f5 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml index 908d118acd4..bbc6593b0b6 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml index c745d66650b..51b4a91ff31 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml index d9bbe36da84..2d1a0fb8727 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml index 9ed33acb3d4..dd62aee9f06 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml index 75ff6c0b206..9e81fbb0417 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 Legend Engine - XT - Analytics - Mapping - API diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml index f3b1f5bcfb1..2a2f2f46698 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-mapping - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 Legend Engine - XT - Analytics - Mapping - Protocol diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml index cb16bf8033c..42c581d3582 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml index f2488049ec2..dc4f11e89ef 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml index 6b5fd78aaa6..8a2cef1d5ef 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-search - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml index ce18a12a1c7..8d556d18a90 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-search org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml index 1605856bd39..1ea29707898 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml index 0c0a001e0e7..bda221c6705 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-xt-analytics-store-entitlement-api diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml index 3874df05e0c..21d5ba85b04 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml index 24dc9e17bed..8ea1c598453 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/pom.xml b/legend-engine-xts-analytics/pom.xml index f7d21c43116..9f1109bd3cb 100644 --- a/legend-engine-xts-analytics/pom.xml +++ b/legend-engine-xts-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml index 1dcc3fe1992..03b2e282a85 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml index 9cdce4434b1..0b0db2cf8ba 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-arrow/pom.xml b/legend-engine-xts-arrow/pom.xml index fa222dd3b17..242bd3bae07 100644 --- a/legend-engine-xts-arrow/pom.xml +++ b/legend-engine-xts-arrow/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT legend-engine-xts-arrow diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml index 367d79f0266..e0d1268d796 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml index 0b832969808..d60499a7b02 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml index f91b873336e..9f76cb56a53 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml index 87c5d4d3b02..88ecd494b67 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml index 60e8cef799c..21d94edcf1e 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml index 6a76d1c08c5..5e4d86a9054 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml index b0d55386f54..c532fd18084 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/pom.xml b/legend-engine-xts-authentication/pom.xml index 74bcd05b790..2e6ece66d89 100644 --- a/legend-engine-xts-authentication/pom.xml +++ b/legend-engine-xts-authentication/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml index f3e1f733677..da269d7de3f 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml index 54c99e1c371..de3143e9cab 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-avro/pom.xml b/legend-engine-xts-avro/pom.xml index 636983ef655..933307d3023 100644 --- a/legend-engine-xts-avro/pom.xml +++ b/legend-engine-xts-avro/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml index 79d1a1e81f2..435dcb74a7b 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-changetoken org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml index 5ac94ebd0db..100dc295cf2 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-changetoken - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-changetoken/pom.xml b/legend-engine-xts-changetoken/pom.xml index ccbfca2ee1e..e9202e6ce65 100644 --- a/legend-engine-xts-changetoken/pom.xml +++ b/legend-engine-xts-changetoken/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml index 2e2279c3852..9a96c23c453 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml index 86b17a2f5e5..5074517e363 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml index 5e3a6418b9b..6ae80cd45ce 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/pom.xml b/legend-engine-xts-daml/pom.xml index f216372b866..cb7c3d4f020 100644 --- a/legend-engine-xts-daml/pom.xml +++ b/legend-engine-xts-daml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml index 985c516bd9f..56b7c7bd560 100644 --- a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml +++ b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-data-push org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-push/pom.xml b/legend-engine-xts-data-push/pom.xml index 5fd315b0fc0..76051500d88 100644 --- a/legend-engine-xts-data-push/pom.xml +++ b/legend-engine-xts-data-push/pom.xml @@ -3,7 +3,7 @@ legend-engine org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml index cf4cfae6f18..e561a5e2d4f 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml index 4ac79e8ce47..f8ab50a0fcf 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-data-space org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml index 0ed76f1e2bc..dfb0bddab8f 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml index 8802bfa71da..edb773f3c75 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml index deef7efd09f..b4deaaee9be 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml index f568a4dd450..e49d93e638e 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml index 1bc0b692677..d8be092ea06 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/pom.xml b/legend-engine-xts-data-space/pom.xml index 7b4fb2a6a08..be7c0003a17 100644 --- a/legend-engine-xts-data-space/pom.xml +++ b/legend-engine-xts-data-space/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml index 13c4be7c128..7c1c7f9f9f6 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml index 1b310fb7647..a95dccd3e25 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-diagram org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml index 6c02c22ab65..472d0806b10 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml index 3f5d6e15592..a1d12eb2859 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml index 86e43787044..38858e9b4b1 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml index 7d4a7e86e1c..f7d11554ee3 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/pom.xml b/legend-engine-xts-diagram/pom.xml index 472f964cf23..30b4dad81c6 100644 --- a/legend-engine-xts-diagram/pom.xml +++ b/legend-engine-xts-diagram/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml index 39302d34fe5..95eb5b30e0d 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml index e94a862687a..9c3afc01ca7 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml index 69d2f95e628..b71e66b3195 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml index 6ed68bce865..f5e1fff78db 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml index a4888d7e0c9..92317a1d9fa 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml index 872c3ec1500..1a9c94f58ed 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.32.0 + 4.32.1-SNAPSHOT legend-engine-xt-elasticsearch-protocol-utils diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml index c4505c26094..9132e7e2ace 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/pom.xml b/legend-engine-xts-elasticsearch/pom.xml index 3c48b79416d..71811023ad8 100644 --- a/legend-engine-xts-elasticsearch/pom.xml +++ b/legend-engine-xts-elasticsearch/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml index 92055af760a..ca6d92e88b7 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-flatdata org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml index f1ba63b108e..2ce3ee6188a 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml index b2d8a08d9aa..15743a9a12a 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml index 6013663eec8..2608aad24b6 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml index 86dce7afbcb..0ae45f6c61e 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml index 598f2a366ab..7a11ca9f632 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml index 1f57a52c1c2..0b4c1bc13dc 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/pom.xml b/legend-engine-xts-flatdata/pom.xml index 4341aee1177..6e1065054e1 100644 --- a/legend-engine-xts-flatdata/pom.xml +++ b/legend-engine-xts-flatdata/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml index 9b652a630f8..8cd5d554c3e 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml index 75886bec721..ce19c12348c 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml index 90b8ae46f5c..9390cc74c2a 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/pom.xml b/legend-engine-xts-functionActivator/pom.xml index 4bff01f4f64..55c5943d834 100644 --- a/legend-engine-xts-functionActivator/pom.xml +++ b/legend-engine-xts-functionActivator/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml index af0bc6a9699..fa7cbd3981e 100644 --- a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml +++ b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml index f77d69a0794..b9c46315d9d 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml index e5794fea721..fcc6340f2c1 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-language-pure-dsl-generation diff --git a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml index 629791c07b3..cde9e7c2f37 100644 --- a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml +++ b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-generation org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/pom.xml b/legend-engine-xts-generation/pom.xml index 1fa1b41dc88..4b8f2f5b637 100644 --- a/legend-engine-xts-generation/pom.xml +++ b/legend-engine-xts-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml index aa6e71f72e9..d34644934c3 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 @@ -73,7 +73,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.32.0 + 4.32.1-SNAPSHOT org.finos.legend.pure diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml index 9bd15df7ba0..9d90f50016d 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml index a1039af324a..54f1645b576 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml index ab213942c8d..b61c227ba4e 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml index b30eb374295..8c951cada22 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml index 15e208d0b6d..7974680f5b0 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml index 43005d28da6..f093ec9f128 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml index 87f00f26636..e22db607ac2 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/pom.xml b/legend-engine-xts-graphQL/pom.xml index f78b90a47f7..e448b626519 100644 --- a/legend-engine-xts-graphQL/pom.xml +++ b/legend-engine-xts-graphQL/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml index 90d069fddf1..98523bd142f 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml index 7b0ec5fcc59..2b74a5f133f 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml index d4a12325b0b..72397413fe1 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/pom.xml b/legend-engine-xts-haskell/pom.xml index 28b5274b48b..163105a0bce 100644 --- a/legend-engine-xts-haskell/pom.xml +++ b/legend-engine-xts-haskell/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml index b8a4256282c..e951e3b7b30 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml index 1034f9ac002..e813b1fd989 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml index 1162aca0628..8c7d18a42df 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml index f0c4f5b0bd7..d56a41cd2c0 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml index fc6c4127601..b04ec33d513 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml index 9f6ea021300..df59aa04e05 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/pom.xml b/legend-engine-xts-hostedService/pom.xml index 9a8fc5ff5d3..bd432585b6b 100644 --- a/legend-engine-xts-hostedService/pom.xml +++ b/legend-engine-xts-hostedService/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml index f9ac6f6838a..3b8a9040b9e 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml index f04b55b1fbd..3e981c3c934 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-iceberg/pom.xml b/legend-engine-xts-iceberg/pom.xml index ba46ae5746a..5a0a130aedd 100644 --- a/legend-engine-xts-iceberg/pom.xml +++ b/legend-engine-xts-iceberg/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml index 69c32436aa9..13312566e13 100644 --- a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml +++ b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml index 14ca50e312d..50c295c9cbc 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml index ca80f19998c..c398240c537 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml index 19eeaff1f10..7db3c8bb05f 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/pom.xml b/legend-engine-xts-java/pom.xml index a2d5757de0d..f4ecc30945a 100644 --- a/legend-engine-xts-java/pom.xml +++ b/legend-engine-xts-java/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml index 6dc92734c29..66b7c3bd864 100644 --- a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml +++ b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml index 7e70975b403..9bdf6b11d7c 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml index 5da1b9d1b64..c00f6bbe83b 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml index 1c4f9573f71..da634985f6d 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml index f934b33f2b3..6ab776881cd 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml index 7f8794bdb98..53b9699d5a2 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/pom.xml b/legend-engine-xts-json/pom.xml index 2ad400e253e..f7f05218ab6 100644 --- a/legend-engine-xts-json/pom.xml +++ b/legend-engine-xts-json/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml index 78e473bc99e..c06b7dd9ebb 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-mastery org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml index 9014535e377..c05f13ee744 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml index 48cd34a4e87..1f113512bde 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/pom.xml b/legend-engine-xts-mastery/pom.xml index 6750d013edd..a9ed29d1635 100644 --- a/legend-engine-xts-mastery/pom.xml +++ b/legend-engine-xts-mastery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml index a4399497666..2f10d87be78 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml index 0c24623c30d..7a78503c94c 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.32.0 + 4.32.1-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-executionPlan diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml index ccfd103608d..7aad8f265c9 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.32.0 + 4.32.1-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-grammar-integration diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml index a83de2155a2..13796b13157 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.32.0 + 4.32.1-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-grammar diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml index 1356c748107..6fb4d43b4ab 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.32.0 + 4.32.1-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml index ff9aa23f0a8..ac178f01934 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.32.0 + 4.32.1-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-protocol diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml index 97ae940bff7..fb363441515 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.32.0 + 4.32.1-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-pure diff --git a/legend-engine-xts-mongodb/pom.xml b/legend-engine-xts-mongodb/pom.xml index e5bef351f06..9e098bf5b0d 100644 --- a/legend-engine-xts-mongodb/pom.xml +++ b/legend-engine-xts-mongodb/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml index d6a5cb951f5..8619cf357fe 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-morphir - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml index 07118075823..6aeaf7a15e1 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-morphir org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-morphir/pom.xml b/legend-engine-xts-morphir/pom.xml index c7b48d4b936..1e554be7668 100644 --- a/legend-engine-xts-morphir/pom.xml +++ b/legend-engine-xts-morphir/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml index b80dc08e1c3..f3ee40368da 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.32.0 + 4.32.1-SNAPSHOT legend-engine-xt-openapi-generation diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml index 2f55cd79e76..89b2ca01ded 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.32.0 + 4.32.1-SNAPSHOT legend-engine-xt-openapi-pure diff --git a/legend-engine-xts-openapi/pom.xml b/legend-engine-xts-openapi/pom.xml index f06b6652a62..2f9cffd4dc1 100644 --- a/legend-engine-xts-openapi/pom.xml +++ b/legend-engine-xts-openapi/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml index f865d4cacfd..c19a4c7ec0b 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml index 3217809287a..47b492dbe0c 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml index 6650cf3a9fe..5426cab9210 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml index 87662a42f17..bba93ab206e 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml index d3378367e44..0cdec007df2 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml index c014418a64e..79909146efd 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml index e76f83b24fd..86c331c2263 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml index a946849f290..80e32e5de49 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml index a5e181e566a..bab1efb8874 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml index 00c67d16dca..2c78e852fdf 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml index 48bcc601b88..631f58c585b 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml index 7132be654ed..ddbe1e3431e 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml index 8da70c9d998..a98253b12b6 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml index e1abb1e92e0..29dfea691f4 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml index 61bb7cea55d..308dea15132 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml index bb857924162..7c6f4c0c516 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml index ed8752e55f9..5d660f97d43 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml index 7acb2b52bd8..1a7c1bd7bda 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml index 804b56fb2f6..606b708d0f2 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml index c5731530ffd..162a1b0e3c5 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml index f429a346fc8..71af3c9ac2a 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/pom.xml b/legend-engine-xts-persistence/pom.xml index 38102adc6f4..b438b169025 100644 --- a/legend-engine-xts-persistence/pom.xml +++ b/legend-engine-xts-persistence/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml index bb07a18c3b5..12292f5e5d2 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-xt-protobuf-grammar diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml index 895e2af1b8f..4516e69fa0b 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-xt-protobuf-protocol diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml index 8b09f1fa374..05fe28adcf3 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml index 8d0a6eb0ca0..f6e8a518ee4 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 @@ -57,7 +57,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.32.0 + 4.32.1-SNAPSHOT org.finos.legend.pure diff --git a/legend-engine-xts-protobuf/pom.xml b/legend-engine-xts-protobuf/pom.xml index bbc2effc272..4a4241f2955 100644 --- a/legend-engine-xts-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml index 902fb50bc94..dd036aabade 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml index 7c33b432c18..3d1355e1a0d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml index d5bc14fba17..91fae8f4668 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml index a586a318f37..a02a3111a95 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml index f15419709c7..0bf4f64c441 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml index d3ba2fb1c47..3b449ef884b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml index e57789f379c..b3747e68f50 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml index 0ec895756fc..8743d43226b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml index 058a10f7b5d..28e889f26a1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml index bf365b732df..92c900c899d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml index 3408334cba5..4d4ca89a640 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-bigquery org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml index a0c1f046fdd..5995b72d51c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml index a9685bc7516..956161185bf 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml index f1e68a8dca8..6bf0cb36e03 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml index 290e7fa52b7..772eb8eebd3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml index 69e1cb0288a..ab117934571 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml index 76144b58af5..81e894dd1b7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml index eccec5b21fe..f82546b0207 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml index f95b7e1add7..4266d8e7fc8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml index 4d1c415d7a1..4bdb231f29d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml index 8e3f98d87a8..0236a5704f7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml index dd9c6e41dc9..e9810e038c3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml index e5b445b7505..5eee2575af5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-dbExtension org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml index e887efe7435..69a735cf579 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-hive - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml index a217bc1ddc3..d771fc231d0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml index eb554aea41c..806be46c5f8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml index 8b299686e0e..90c49a13f5d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-memsql org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml index 8cfb1672690..c55623b1adb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.32.0 + 4.32.1-SNAPSHOT legend-engine-xt-relationalStore-memsql-execution diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml index 1acd534a320..b50fbb9c384 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.32.0 + 4.32.1-SNAPSHOT legend-engine-xt-relationalStore-memsql-pure diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml index ee80cb0a703..6c59e3b3798 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml index e21c84c8a31..a74494a1a6e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml index 16bbd38d7cf..08d34b2d2b7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml index eeaac8bbd8e..2c0295f7306 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml index ca63a6f82ae..df533361f06 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml index 56c64ca741a..d2017fa2ad4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml index e08a1c363b3..12feefb3d03 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml index 3462445261e..d0ad6061fc3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-presto - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml index 17e812b8065..76b70da91f5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml index b59c6dc3910..20fb01d5f9f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml index 9c375a12392..b2c9dd23ef8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml index eb95b6d1946..3fa7c830dfb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml index 62bceb7d82a..f319632f4e2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml index 40773f82a81..a8684018722 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml index cda749e69bf..e0c9170f489 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml index de443e5e3a8..903c4c38542 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml index 1e774251ffe..b9dad684373 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml index 8ed57b2fb99..d5fd3a87cbe 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml index ce841540aa8..17d450ecb30 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml index 10eaba7775a..0309ecd6134 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml index 2ebfe52185c..9398b2bbf95 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml index ccf9daec53d..65b54b5b365 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml index 796d675d414..c08de9ba64c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml index 938c6bd78b9..164a7e43103 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml index 6525c0f78c0..eab19ddc209 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml index 3aecff4bcd4..930b2638ae7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml index e3280c42d96..3e947a3ca19 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml index 7e2aa1f8405..5620a78b37f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml index 10f6102426d..3214a07efac 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml index d62fca1fcbb..1de244ccd5b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sparksql - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml index 056b8f61ac5..00836ab26b1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml index 8c29bfdd3ca..a904b9b33f5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml index caa146ed574..972c410cb17 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-sqlserver-execution-tests diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml index 31bae713107..a8139e8cdfd 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml index 2eeec9606c1..1efb477f179 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml index efccec62806..38140532577 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml index cbb6df1e80e..863cdc1c7bc 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybase - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml index bc30227ef26..04ba83b1069 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml index 5157d539147..617c7b119cd 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybaseiq - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml index 41cf2bd5aff..fd350fd8ed5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml index 75e03d0248a..861d1ac7aa1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-test-reports diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml index 825d3de768a..4e5172262ce 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-test-server diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml index 2e18e20eb7f..01192b31507 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml index 955dbea7fe1..a209baae6cc 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml index f56ec438c8c..da17a73dc1e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml index 9767314924a..a8595f21513 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml index 0b23999ef62..df813c99f7c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml index 27f44913187..a27208fa210 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml index 4cf52278a95..f8df50ce175 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml index bec8ed4571f..6cb2cf613b4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml index f1e3a569fe7..df6199ea357 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml index 45f37ce1efc..cd3a70b279b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication-default diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml index c9b4d47e8ca..8d6660293c6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml index d6f3b3d0fa9..6be48f969bc 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 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 81cd89b3d8b..4209282b241 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 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 45d418757fa..ab6fe96e9b0 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml index 771259a28cb..d2c2d61ae7f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml index f19ccbdc565..b4508ff6709 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml index 5fbbb644c8f..b4d2ccddf9f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml index eb2e484fd81..3cfed4a48ea 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml index 0c52a4204b6..75fbe5a77b7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml index 1843f91ce90..dff071bd52d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml index 8dacc3ea4f6..a53578648a4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml index 8d140ffe649..fa6e862a6fb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml index 0a8b76a0f9f..afb2ae401d0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/pom.xml b/legend-engine-xts-relationalStore/pom.xml index 883630d4cfa..717b5eb81b1 100644 --- a/legend-engine-xts-relationalStore/pom.xml +++ b/legend-engine-xts-relationalStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml index 4e97feebd7d..5810fc8444d 100644 --- a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalai - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalai/pom.xml b/legend-engine-xts-relationalai/pom.xml index 83865276f46..6fb2ce4665d 100644 --- a/legend-engine-xts-relationalai/pom.xml +++ b/legend-engine-xts-relationalai/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml index 0a1458552c3..6ddbd23f1ce 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml index 5cfe58eff66..f1c2e39d2d5 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-rosetta/pom.xml b/legend-engine-xts-rosetta/pom.xml index 4ddda0b2a6f..04301fa5f9d 100644 --- a/legend-engine-xts-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml index ae5fedd5590..f241ee59173 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-language-pure-dsl-service-execution diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml index a9ae650a5f6..c96cdee527e 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml index 473ad8d3718..8ccff22469a 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml index a8e4be719b2..e1d12871634 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-language-pure-dsl-service diff --git a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml index 2dc194ce375..a3ca2dd87f4 100644 --- a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml +++ b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml index 7af5fc02a3c..9e1e310814f 100644 --- a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-services-model-api diff --git a/legend-engine-xts-service/legend-engine-services-model/pom.xml b/legend-engine-xts-service/legend-engine-services-model/pom.xml index d36d0783e9d..be3873faca2 100644 --- a/legend-engine-xts-service/legend-engine-services-model/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 legend-engine-services-model diff --git a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml index 104269b6797..a9dbf9de247 100644 --- a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/pom.xml b/legend-engine-xts-service/pom.xml index 8796f6db7cb..1f3dbdf3bc2 100644 --- a/legend-engine-xts-service/pom.xml +++ b/legend-engine-xts-service/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml index 4fa1a8b018f..ceda5491fff 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml index e93506fe1ed..c85b9726cd5 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml index df2ab0ebe10..d679c93eeee 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml index 63776cefb51..67b7c08f389 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml index 15a75255dbd..a3cb3d91f2c 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/pom.xml b/legend-engine-xts-serviceStore/pom.xml index 793ec5ca33f..0e3742c8240 100644 --- a/legend-engine-xts-serviceStore/pom.xml +++ b/legend-engine-xts-serviceStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml index d27ab96d92b..afd677ee962 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml index 0d53c58c063..e4338792cb7 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-snowflakeApp org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml index 1ca4c18ed82..ee6d48b026f 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml index c838f975fef..44ba7e492a3 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml index a4a5a659021..180449a04c2 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/pom.xml b/legend-engine-xts-snowflakeApp/pom.xml index 5b1ca969c67..92a05d2beb7 100644 --- a/legend-engine-xts-snowflakeApp/pom.xml +++ b/legend-engine-xts-snowflakeApp/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml index 72463d1ccc9..2b47b85f498 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml index 5b248112ef2..77abaf653c1 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml index 9056c2865a1..fd4200aa96f 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml index bcf7dcd2e79..755b3aef202 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-sql org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml index e4786a9e201..6b4295071a4 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml index e947504222d..c75d9c9073a 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml index bbc9850032b..8e344b7b3c5 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml index b2cfe6d2e19..c1e0cd03af2 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/pom.xml b/legend-engine-xts-sql/pom.xml index 05becc2fa54..b9297f87eee 100644 --- a/legend-engine-xts-sql/pom.xml +++ b/legend-engine-xts-sql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml index 9d7f780a859..0f3f8adcec6 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-text org.finos.legend.engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml index b0f945b5372..c287fc5642e 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml index d9c5d876162..5bfd598aea5 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml index 1554d79d87c..867ed175c09 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/pom.xml b/legend-engine-xts-text/pom.xml index e9b3954a286..61d1359d0b4 100644 --- a/legend-engine-xts-text/pom.xml +++ b/legend-engine-xts-text/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml index 8c0f0fdff8e..b46994939a5 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml index ebd7fe46117..d95936aef22 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml index 30e338bd8ba..72e70b7d74c 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml index 15e2868e103..4d2f71269e9 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml index c1bf1f45ed3..84eb12e2a7b 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/pom.xml b/legend-engine-xts-xml/pom.xml index bd141762391..9bd279755df 100644 --- a/legend-engine-xts-xml/pom.xml +++ b/legend-engine-xts-xml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT 4.0.0 diff --git a/pom.xml b/pom.xml index ad81f9e1d42..0c66a7c491d 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ Legend Engine org.finos.legend.engine legend-engine - 4.32.0 + 4.32.1-SNAPSHOT pom @@ -228,7 +228,7 @@ scm:git:https://github.com/finos/legend-engine - legend-engine-4.32.0 + HEAD From dc5064baaf64f755012a36621ff2535068c8e9ba Mon Sep 17 00:00:00 2001 From: pragyasri-gs <132895593+pragyasri-gs@users.noreply.github.com> Date: Wed, 18 Oct 2023 16:10:12 +0530 Subject: [PATCH 25/80] Support for match function in relational semi-structured queries (#2361) --- .../pure/router/routing/router_routing.pure | 8 +- .../TestSnowflakeSemiStructuredMatching.java | 177 +++++++++ .../semiStructuredMatching.pure | 342 +++++++++++++++++ .../TestSemiStructuredMatching.java | 219 +++++++++++ .../semiStructuredMatching.pure | 348 ++++++++++++++++++ .../pureToSQLQuery/pureToSQLQuery.pure | 68 ++++ 6 files changed, 1158 insertions(+), 4 deletions(-) create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/semiStructured/TestSnowflakeSemiStructuredMatching.java create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/src/test/resources/org/finos/legend/engine/plan/execution/stores/relational/test/semiStructured/semiStructuredMatching.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/semiStructured/TestSemiStructuredMatching.java create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/resources/org/finos/legend/engine/plan/execution/stores/relational/test/semiStructured/semiStructuredMatching.pure diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/routing/router_routing.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/routing/router_routing.pure index 9e1c0747789..80a447e1d3d 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/routing/router_routing.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/routing/router_routing.pure @@ -132,11 +132,11 @@ function <> meta::pure::router::routing::routeValueSpecification |$state, |let processedValues = processCollection($state, $i.values->evaluateAndDeactivate(), $executionContext, $vars, $inScopeVars, v:Any[1]|true, $extensions, $debug); let last = $processedValues->last()->toOne(); - let shouldClean = $processedValues.value->evaluateAndDeactivate()->forAll(p|$p->instanceOf(InstanceValue) && $p->cast(@InstanceValue).genericType.rawType != LambdaFunction); - + let shouldClean = $processedValues->evaluateAndDeactivate().value->forAll(p|$p->instanceOf(InstanceValue) && $p->cast(@InstanceValue).genericType.rawType != LambdaFunction); + ^$last(value = if ($shouldClean, - | ^$i(values = $processedValues.value->evaluateAndDeactivate()->cast(@InstanceValue)->map(e|$e.values)), - | ^$i(values = $processedValues.value))); + | ^$i(values = $processedValues->evaluateAndDeactivate().value->cast(@InstanceValue)->map(e|$e.values)), + | ^$i(values = $processedValues->evaluateAndDeactivate().value))); ); );, cs:ClassSetImplementationHolder[1] | let param = $cs.value->cast(@InstanceValue).values->at(0)->cast(@Class); // TODO: cleanup needed diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/semiStructured/TestSnowflakeSemiStructuredMatching.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/semiStructured/TestSnowflakeSemiStructuredMatching.java new file mode 100644 index 00000000000..93645d33e31 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/semiStructured/TestSnowflakeSemiStructuredMatching.java @@ -0,0 +1,177 @@ +// Copyright 2023 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.test.semiStructured; + +import org.eclipse.collections.impl.multimap.set.SynchronizedSetMultimap; +import org.junit.Assert; +import org.junit.Test; + +public class TestSnowflakeSemiStructuredMatching extends AbstractTestSnowflakeSemiStructured +{ + private static final String snowflakeMapping = "match::mapping::SnowflakeMapping"; + private static final String snowflakeRuntime = "match::runtime::SnowflakeRuntime"; + + @Test + public void testSemiStructuredMatchComplexProperty() + { + String queryFunction = "match::semiStructuredMatchComplexProperty__TabularDataSet_1_"; + String snowflakePlan = this.buildExecutionPlanString(queryFunction, snowflakeMapping, snowflakeRuntime); + String snowflakeExpected = + " Relational\n" + + " (\n" + + " type = TDS[(Customer Address, String, \"\", \"\")]\n" + + " resultColumns = [(\"Customer Address\", \"\")]\n" + + " sql = select case when \"root\".CUSTOMER['customerAddress']['@type']::varchar in ('BillingAddress') then \"root\".CUSTOMER['customerAddress']['billAddress']::varchar when \"root\".CUSTOMER['customerAddress']['@type']::varchar in ('ShippingAddress') then \"root\".CUSTOMER['customerAddress']['shipAddress']::varchar else 'Default Address' end as \"Customer Address\" from ORDER_SCHEMA.ORDER_TABLE as \"root\"\n" + + " connection = RelationalDatabaseConnection(type = \"Snowflake\")\n" + + " )\n"; + String TDSType = " type = TDS[(Customer Address, String, \"\", \"\")]\n"; + Assert.assertEquals(wrapPreAndFinallyExecutionSqlQuery(TDSType, snowflakeExpected), snowflakePlan); + } + + + @Test + public void testSemiStructuredMatchWithMultipleProject() + { + String queryFunction = "match::semiStructuredMatchWithMultipleProject__TabularDataSet_1_"; + String snowflakePlan = this.buildExecutionPlanString(queryFunction, snowflakeMapping, snowflakeRuntime); + String snowflakeExpected = + " Relational\n" + + " (\n" + + " type = TDS[(Customer Address, String, \"\", \"\"), (Order Price, Integer, \"\", \"\")]\n" + + " resultColumns = [(\"Customer Address\", \"\"), (\"Order Price\", \"\")]\n" + + " sql = select case when \"root\".CUSTOMER['customerAddress']['@type']::varchar in ('BillingAddress') then \"root\".CUSTOMER['customerAddress']['billAddress']::varchar when \"root\".CUSTOMER['customerAddress']['@type']::varchar in ('ShippingAddress') then \"root\".CUSTOMER['customerAddress']['shipAddress']::varchar else null end as \"Customer Address\", case when \"root\".CUSTOMER['transactionDetails']['payment']['@type']::varchar in ('CashOnDeliveryPayment') then \"root\".CUSTOMER['transactionDetails']['payment']['amountToBePaid'] when \"root\".CUSTOMER['transactionDetails']['payment']['@type']::varchar in ('PrepaidPayment', 'WalletPrepaidPayment', 'CardPrepaidPayment') then \"root\".CUSTOMER['transactionDetails']['payment']['amountPaid'] else null end as \"Order Price\" from ORDER_SCHEMA.ORDER_TABLE as \"root\"\n" + + " connection = RelationalDatabaseConnection(type = \"Snowflake\")\n" + + " )\n"; + String TDSType = " type = TDS[(Customer Address, String, \"\", \"\"), (Order Price, Integer, \"\", \"\")]\n"; + Assert.assertEquals(wrapPreAndFinallyExecutionSqlQuery(TDSType, snowflakeExpected), snowflakePlan); + } + + @Test + public void testSemiStructuredMatchWithComplexFilter() + { + String queryFunction = "match::semiStructuredMatchWithComplexFilter__TabularDataSet_1_"; + String snowflakePlan = this.buildExecutionPlanString(queryFunction, snowflakeMapping, snowflakeRuntime); + String snowflakeExpected = + " Relational\n" + + " (\n" + + " type = TDS[(Customer Address, String, \"\", \"\")]\n" + + " resultColumns = [(\"Customer Address\", \"\")]\n" + + " sql = select case when \"root\".CUSTOMER['customerAddress']['@type']::varchar in ('BillingAddress') then \"root\".CUSTOMER['customerAddress']['billAddress']::varchar when \"root\".CUSTOMER['customerAddress']['@type']::varchar in ('ShippingAddress') then \"root\".CUSTOMER['customerAddress']['shipAddress']::varchar else null end as \"Customer Address\" from ORDER_SCHEMA.ORDER_TABLE as \"root\" where case when \"root\".CUSTOMER['transactionDetails']['payment']['@type']::varchar in ('CashOnDeliveryPayment') then \"root\".CUSTOMER['transactionDetails']['payment']['amountToBePaid'] when \"root\".CUSTOMER['transactionDetails']['payment']['@type']::varchar in ('PrepaidPayment', 'WalletPrepaidPayment', 'CardPrepaidPayment') then \"root\".CUSTOMER['transactionDetails']['payment']['amountPaid'] else null end < 200\n" + + " connection = RelationalDatabaseConnection(type = \"Snowflake\")\n" + + " )\n"; + String TDSType = " type = TDS[(Customer Address, String, \"\", \"\")]\n"; + Assert.assertEquals(wrapPreAndFinallyExecutionSqlQuery(TDSType, snowflakeExpected), snowflakePlan); + } + + + @Test + public void testSemiStructuredMatchWithVariableAccess() + { + String queryFunction = "match::semiStructuredMatchWithVariableAccess__TabularDataSet_1_"; + String snowflakePlan = this.buildExecutionPlanString(queryFunction, snowflakeMapping, snowflakeRuntime); + String snowflakeExpected = "Sequence\n" + + "(\n" + + " type = TDS[(Max Amount Flag, Boolean, \"\", \"\")]\n" + + " (\n" + + " Allocation\n" + + " (\n" + + " type = Integer\n" + + " resultSizeRange = 1\n" + + " name = maxAmount\n" + + " value = \n" + + " (\n" + + " Constant\n" + + " (\n" + + " type = Integer\n" + + " resultSizeRange = 1\n" + + " values=[200]\n" + + " )\n" + + " )\n" + + " )\n" + + " RelationalBlockExecutionNode\n" + + " (\n" + + " type = TDS[(Max Amount Flag, Boolean, \"\", \"\")]\n" + + " (\n" + + " SQL\n" + + " (\n" + + " type = Void\n" + + " resultColumns = []\n" + + " sql = ALTER SESSION SET QUERY_TAG = '{\"executionTraceID\" : \"${execID}\", \"engineUser\" : \"${userId}\", \"referer\" : \"${referer}\"}';\n" + + " connection = RelationalDatabaseConnection(type = \"Snowflake\")\n" + + " )\n" + + " Relational\n" + + " (\n" + + " type = TDS[(Max Amount Flag, Boolean, \"\", \"\")]\n" + + " resultColumns = [(\"Max Amount Flag\", \"\")]\n" + + " sql = select case when \"root\".CUSTOMER['transactionDetails']['payment']['@type']::varchar in ('CashOnDeliveryPayment') then case when \"root\".CUSTOMER['transactionDetails']['payment']['amountToBePaid'] < ${maxAmount} then 'true' else 'false' end when \"root\".CUSTOMER['transactionDetails']['payment']['@type']::varchar in ('PrepaidPayment', 'WalletPrepaidPayment', 'CardPrepaidPayment') then case when \"root\".CUSTOMER['transactionDetails']['payment']['amountPaid'] < ${maxAmount} then 'true' else 'false' end else null end as \"Max Amount Flag\" from ORDER_SCHEMA.ORDER_TABLE as \"root\"\n" + + " connection = RelationalDatabaseConnection(type = \"Snowflake\")\n" + + " )\n" + + " ) \n" + + " finallyExecutionNodes = \n" + + " (\n" + + " SQL\n" + + " (\n" + + " type = Void\n" + + " resultColumns = []\n" + + " sql = ALTER SESSION UNSET QUERY_TAG;\n" + + " connection = RelationalDatabaseConnection(type = \"Snowflake\")\n" + + " )\n" + + " )\n" + + " )\n" + + " )\n" + + ")\n"; + Assert.assertEquals(snowflakeExpected, snowflakePlan); + } + + + @Test + public void testSemiStructuredMatchMultilevel() + { + String queryFunction = "match::semiStructuredMatchMultilevel__TabularDataSet_1_"; + String snowflakePlan = this.buildExecutionPlanString(queryFunction, snowflakeMapping, snowflakeRuntime); + String snowflakeExpected = + " Relational\n" + + " (\n" + + " type = TDS[(Amount, Integer, \"\", \"\")]\n" + + " resultColumns = [(\"Amount\", \"\")]\n" + + " sql = select case when \"root\".CUSTOMER['transactionDetails']['payment']['@type']::varchar in ('PrepaidPayment', 'WalletPrepaidPayment', 'CardPrepaidPayment') then case when \"root\".CUSTOMER['transactionDetails']['payment']['@type']::varchar in ('WalletPrepaidPayment') then \"root\".CUSTOMER['transactionDetails']['payment']['walletTransactionAmount'] when \"root\".CUSTOMER['transactionDetails']['payment']['@type']::varchar in ('CardPrepaidPayment') then \"root\".CUSTOMER['transactionDetails']['payment']['cardTransactionAmount'] when \"root\".CUSTOMER['transactionDetails']['payment']['@type']::varchar in ('PrepaidPayment', 'WalletPrepaidPayment', 'CardPrepaidPayment') then \"root\".CUSTOMER['transactionDetails']['payment']['amountPaid'] else null end when \"root\".CUSTOMER['transactionDetails']['payment']['@type']::varchar in ('CashOnDeliveryPayment') then \"root\".CUSTOMER['transactionDetails']['payment']['amountToBePaid'] else null end as \"Amount\" from ORDER_SCHEMA.ORDER_TABLE as \"root\"\n" + + " connection = RelationalDatabaseConnection(type = \"Snowflake\")\n" + + " )\n"; + String TDSType = " type = TDS[(Amount, Integer, \"\", \"\")]\n"; + Assert.assertEquals(wrapPreAndFinallyExecutionSqlQuery(TDSType, snowflakeExpected), snowflakePlan); + } + + @Test + public void testSemiStructuredMatchWithMultipleProjectUsingCol() + { + String queryFunction = "match::semiStructuredMatchWithMultipleProjectUsingCol__TabularDataSet_1_"; + String snowflakePlan = this.buildExecutionPlanString(queryFunction, snowflakeMapping, snowflakeRuntime); + String snowflakeExpected = + " Relational\n" + + " (\n" + + " type = TDS[(Customer Address, String, \"\", \"\"), (Order Price, Integer, \"\", \"\")]\n" + + " resultColumns = [(\"Customer Address\", \"\"), (\"Order Price\", \"\")]\n" + + " sql = select case when \"root\".CUSTOMER['customerAddress']['@type']::varchar in ('BillingAddress') then \"root\".CUSTOMER['customerAddress']['billAddress']::varchar when \"root\".CUSTOMER['customerAddress']['@type']::varchar in ('ShippingAddress') then \"root\".CUSTOMER['customerAddress']['shipAddress']::varchar else null end as \"Customer Address\", case when \"root\".CUSTOMER['transactionDetails']['payment']['@type']::varchar in ('CashOnDeliveryPayment') then \"root\".CUSTOMER['transactionDetails']['payment']['amountToBePaid'] when \"root\".CUSTOMER['transactionDetails']['payment']['@type']::varchar in ('PrepaidPayment', 'WalletPrepaidPayment', 'CardPrepaidPayment') then \"root\".CUSTOMER['transactionDetails']['payment']['amountPaid'] else null end as \"Order Price\" from ORDER_SCHEMA.ORDER_TABLE as \"root\"\n" + + " connection = RelationalDatabaseConnection(type = \"Snowflake\")\n" + + " )\n"; + String TDSType = " type = TDS[(Customer Address, String, \"\", \"\"), (Order Price, Integer, \"\", \"\")]\n"; + Assert.assertEquals(wrapPreAndFinallyExecutionSqlQuery(TDSType, snowflakeExpected), snowflakePlan); + } + + public String modelResourcePath() + { + return "/org/finos/legend/engine/plan/execution/stores/relational/test/semiStructured/semiStructuredMatching.pure"; + } +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/src/test/resources/org/finos/legend/engine/plan/execution/stores/relational/test/semiStructured/semiStructuredMatching.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/src/test/resources/org/finos/legend/engine/plan/execution/stores/relational/test/semiStructured/semiStructuredMatching.pure new file mode 100644 index 00000000000..765929dba46 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/src/test/resources/org/finos/legend/engine/plan/execution/stores/relational/test/semiStructured/semiStructuredMatching.pure @@ -0,0 +1,342 @@ +// Copyright 2023 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. + +###Pure +Class match::model::Order +{ + orderId: Integer[1]; + orderName: String[1]; + customer: match::model::Customer[1]; +} + +Class match::model::Customer +{ + customerId: String[1]; + customerAddress: match::model::CustomerAddress[1]; + transactionDetails: match::model::TransactionDetails[1]; +} + +Class match::model::CustomerAddress +{ + name: String[1]; +} + +Class match::model::BillingAddress extends match::model::CustomerAddress +{ + billAddress: String[1]; +} + +Class match::model::ShippingAddress extends match::model::CustomerAddress +{ + shipAddress: String[1]; +} + +Class match::model::TransactionDetails +{ + payment: match::model::Payment[1]; +} + +Class match::model::Payment +{ + paymentId: String[1]; +} + +Class match::model::CashOnDeliveryPayment extends match::model::Payment +{ + amountToBePaid: Integer[1]; +} + +Class match::model::PrepaidPayment extends match::model::Payment +{ + amountPaid: Integer[1]; +} + +Class match::model::WalletPrepaidPayment extends match::model::PrepaidPayment +{ + walletTransactionAmount: Integer[1]; +} + +Class match::model::CardPrepaidPayment extends match::model::PrepaidPayment +{ + cardTransactionAmount: Integer[1]; +} + +###Relational +Database match::store::SnowflakeDB +( + Schema ORDER_SCHEMA + ( + Table ORDER_TABLE + ( + ORDERID INTEGER PRIMARY KEY, + ORDERNAME VARCHAR(100), + CUSTOMER SEMISTRUCTURED + ) + ) +) + +Database match::store::MemSQLDB +( + Schema ORDER_SCHEMA + ( + Table ORDER_TABLE + ( + ORDERID INTEGER PRIMARY KEY, + ORDERNAME VARCHAR(100), + CUSTOMER JSON + ) + ) +) + +Database match::store::H2DB +( + Schema ORDER_SCHEMA + ( + Table ORDER_TABLE + ( + ORDERID INTEGER PRIMARY KEY, + ORDERNAME VARCHAR(100), + CUSTOMER VARCHAR(1000) + ) + ) +) + +###ExternalFormat +Binding match::store::OrderBinding +{ + contentType: 'application/json'; + modelIncludes: [ + match::model::Order, + match::model::Customer, + match::model::CustomerAddress, + match::model::BillingAddress, + match::model::ShippingAddress, + match::model::TransactionDetails, + match::model::Payment, + match::model::CashOnDeliveryPayment, + match::model::PrepaidPayment, + match::model::WalletPrepaidPayment, + match::model::CardPrepaidPayment + ]; +} + +###Mapping +Mapping match::mapping::SnowflakeMapping +( + match::model::Order: Relational + { + ~primaryKey + ( + [match::store::SnowflakeDB]ORDER_SCHEMA.ORDER_TABLE.ORDERID + ) + ~mainTable [match::store::SnowflakeDB]ORDER_SCHEMA.ORDER_TABLE + orderId: [match::store::SnowflakeDB]ORDER_SCHEMA.ORDER_TABLE.ORDERID, + orderName: [match::store::SnowflakeDB]ORDER_SCHEMA.ORDER_TABLE.ORDERNAME, + customer: Binding match::store::OrderBinding : [match::store::SnowflakeDB]ORDER_SCHEMA.ORDER_TABLE.CUSTOMER + } +) + +Mapping match::mapping::MemSQLMapping +( + match::model::Order: Relational + { + ~primaryKey + ( + [match::store::MemSQLDB]ORDER_SCHEMA.ORDER_TABLE.ORDERID + ) + ~mainTable [match::store::MemSQLDB]ORDER_SCHEMA.ORDER_TABLE + orderId: [match::store::MemSQLDB]ORDER_SCHEMA.ORDER_TABLE.ORDERID, + orderName: [match::store::MemSQLDB]ORDER_SCHEMA.ORDER_TABLE.ORDERNAME, + customer: Binding match::store::OrderBinding : [match::store::MemSQLDB]ORDER_SCHEMA.ORDER_TABLE.CUSTOMER + } +) + +Mapping match::mapping::H2Mapping +( + match::model::Order: Relational + { + ~primaryKey + ( + [match::store::H2DB]ORDER_SCHEMA.ORDER_TABLE.ORDERID + ) + ~mainTable [match::store::H2DB]ORDER_SCHEMA.ORDER_TABLE + orderId: [match::store::H2DB]ORDER_SCHEMA.ORDER_TABLE.ORDERID, + orderName: [match::store::H2DB]ORDER_SCHEMA.ORDER_TABLE.ORDERNAME, + customer: Binding match::store::OrderBinding : [match::store::H2DB]ORDER_SCHEMA.ORDER_TABLE.CUSTOMER + } +) + +###Runtime +Runtime match::runtime::SnowflakeRuntime +{ + mappings : + [ + match::mapping::SnowflakeMapping + ]; + connections : + [ + match::store::SnowflakeDB : + [ + connection_1 : #{ + RelationalDatabaseConnection { + store: match::store::SnowflakeDB; + type: Snowflake; + specification: Snowflake + { + name: 'dbName'; + account: 'account'; + warehouse: 'warehouse'; + region: 'region'; + }; + auth: Test; + } + }# + ] + ]; +} + +###Pure +function match::semiStructuredMatchComplexProperty(): TabularDataSet[1] +{ + match::model::Order.all()->project( + [ + x | $x.customer.customerAddress->match( + [ + s: match::model::BillingAddress[1] | $s.billAddress, + s: match::model::ShippingAddress[1] | $s.shipAddress, + s: Any[1] | 'Default Address' + ] + ) + ], + [ + 'Customer Address' + ] + ); +} + +function match::semiStructuredMatchWithMultipleProject(): TabularDataSet[1] +{ + match::model::Order.all()->project( + [ + x | $x.customer.customerAddress->match( + [ + s: match::model::BillingAddress[1] | $s.billAddress, + s: match::model::ShippingAddress[1] | $s.shipAddress + ] + ), + x | $x.customer.transactionDetails.payment->match( + [ + s:match::model::CashOnDeliveryPayment[1] | $s.amountToBePaid, + s:match::model::PrepaidPayment[1] | $s.amountPaid + ] + ) + ], + [ + 'Customer Address', + 'Order Price' + ] + ); +} + +function match::semiStructuredMatchWithComplexFilter(): TabularDataSet[1] +{ + match::model::Order.all() + ->filter( + x | $x.customer.transactionDetails.payment->match( + [ + s:match::model::CashOnDeliveryPayment[1] | $s.amountToBePaid, + s:match::model::PrepaidPayment[1] | $s.amountPaid + ] + )<200 + ) + ->project( + [ + x | $x.customer.customerAddress->match( + [ + s: match::model::BillingAddress[1] | $s.billAddress, + s: match::model::ShippingAddress[1] | $s.shipAddress + ] + ) + ], + [ + 'Customer Address' + ] + ); +} + +function match::semiStructuredMatchWithVariableAccess(): TabularDataSet[1] +{ + let maxAmount = 200; + match::model::Order.all()->project( + [ + x | $x.customer.transactionDetails.payment->match( + [ + s:match::model::CashOnDeliveryPayment[1] | + if($s.amountToBePaid < $maxAmount, + |true, + |false + ), + s:match::model::PrepaidPayment[1] | + if($s.amountPaid < $maxAmount, + |true, + |false + ) + ] + ) + ], + [ + 'Max Amount Flag' + ] + ); + +} + +function match::semiStructuredMatchMultilevel(): TabularDataSet[1] +{ + match::model::Order.all()->project( + [ + x | $x.customer.transactionDetails.payment->match( + [ + s: match::model::PrepaidPayment[1] | $s->match( + [ + k:match::model::WalletPrepaidPayment[1] | $k.walletTransactionAmount , + k:match::model::CardPrepaidPayment[1] | $k.cardTransactionAmount, + k:match::model::PrepaidPayment[1] | $k.amountPaid + ] + ), + s: match::model::CashOnDeliveryPayment[1] | $s.amountToBePaid + ] + ) + ], + [ + 'Amount' + ] + ); +} + +function match::semiStructuredMatchWithMultipleProjectUsingCol(): TabularDataSet[1] +{ + match::model::Order.all()->project([ + col(x | $x.customer.customerAddress->match( + [ + s: match::model::BillingAddress[1] | $s.billAddress, + s: match::model::ShippingAddress[1] | $s.shipAddress + ]),'Customer Address'), + col(x | $x.customer.transactionDetails.payment->match( + [ + s:match::model::CashOnDeliveryPayment[1] | $s.amountToBePaid, + s:match::model::PrepaidPayment[1] | $s.amountPaid + ]),'Order Price') + ]); +} \ No newline at end of file diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/semiStructured/TestSemiStructuredMatching.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/semiStructured/TestSemiStructuredMatching.java new file mode 100644 index 00000000000..94eaeb9fe4d --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/semiStructured/TestSemiStructuredMatching.java @@ -0,0 +1,219 @@ +// Copyright 2023 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.test.semiStructured; + +import org.junit.Assert; +import org.junit.Test; + +public class TestSemiStructuredMatching extends AbstractTestSemiStructured +{ + private static final String memSQLMapping = "match::mapping::MemSQLMapping"; + private static final String memSQLRuntime = "match::runtime::MemSQLRuntime"; + + private static final String h2Mapping = "match::mapping::H2Mapping"; + private static final String h2Runtime = "match::runtime::H2Runtime"; + + @Test + public void testSemiStructuredMatchComplexProperty() + { + String queryFunction = "match::semiStructuredMatchComplexProperty__TabularDataSet_1_"; + String memSQLPlan = this.buildExecutionPlanString(queryFunction, memSQLMapping, memSQLRuntime); + String memSQLExpected = + "Relational\n" + + "(\n" + + " type = TDS[(Customer Address, String, \"\", \"\")]\n" + + " resultColumns = [(\"Customer Address\", \"\")]\n" + + " sql = select case when `root`.CUSTOMER::customerAddress::$@type in ('BillingAddress') then `root`.CUSTOMER::customerAddress::$billAddress when `root`.CUSTOMER::customerAddress::$@type in ('ShippingAddress') then `root`.CUSTOMER::customerAddress::$shipAddress else 'Default Address' end as `Customer Address` from ORDER_SCHEMA.ORDER_TABLE as `root`\n" + + " connection = RelationalDatabaseConnection(type = \"MemSQL\")\n" + + ")\n"; + Assert.assertEquals(memSQLExpected, memSQLPlan); + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("B1\n" + + "B2\n" + + "B3\n" + + "Default Address\n" + + "S1\n" + + "S2\n" + + "S3\n" + + "S4\n", h2Result.replace("\r\n", "\n")); + + Assert.assertEquals("[ORDER_TABLE.CUSTOMER ]", this.scanColumns(queryFunction, h2Mapping)); + } + + @Test + public void testSemiStructuredMatchWithMultipleProject() + { + String queryFunction = "match::semiStructuredMatchWithMultipleProject__TabularDataSet_1_"; + String memSQLPlan = this.buildExecutionPlanString(queryFunction, memSQLMapping, memSQLRuntime); + String memSQLExpected = + "Relational\n" + + "(\n" + + " type = TDS[(Customer Address, String, \"\", \"\"), (Order Price, Integer, \"\", \"\")]\n" + + " resultColumns = [(\"Customer Address\", \"\"), (\"Order Price\", \"\")]\n" + + " sql = select case when `root`.CUSTOMER::customerAddress::$@type in ('BillingAddress') then `root`.CUSTOMER::customerAddress::$billAddress when `root`.CUSTOMER::customerAddress::$@type in ('ShippingAddress') then `root`.CUSTOMER::customerAddress::$shipAddress else null end as `Customer Address`, case when `root`.CUSTOMER::transactionDetails::payment::$@type in ('CashOnDeliveryPayment') then `root`.CUSTOMER::transactionDetails::payment::%amountToBePaid when `root`.CUSTOMER::transactionDetails::payment::$@type in ('PrepaidPayment', 'WalletPrepaidPayment', 'CardPrepaidPayment') then `root`.CUSTOMER::transactionDetails::payment::%amountPaid else null end as `Order Price` from ORDER_SCHEMA.ORDER_TABLE as `root`\n" + + " connection = RelationalDatabaseConnection(type = \"MemSQL\")\n" + + ")\n"; + Assert.assertEquals(memSQLExpected, memSQLPlan); + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("B1,200\n" + + "B2,180\n" + + "B3,290\n" + + ",150\n" + + "S1,185\n" + + "S2,120\n" + + "S3,180\n" + + "S4,160\n", h2Result.replace("\r\n", "\n")); + + Assert.assertEquals("[ORDER_TABLE.CUSTOMER ]", this.scanColumns(queryFunction, h2Mapping)); + } + + @Test + public void testSemiStructuredMatchWithComplexFilter() + { + String queryFunction = "match::semiStructuredMatchWithComplexFilter__TabularDataSet_1_"; + String memSQLPlan = this.buildExecutionPlanString(queryFunction, memSQLMapping, memSQLRuntime); + String memSQLExpected = + "Relational\n" + + "(\n" + + " type = TDS[(Customer Address, String, \"\", \"\")]\n" + + " resultColumns = [(\"Customer Address\", \"\")]\n" + + " sql = select case when `root`.CUSTOMER::customerAddress::$@type in ('BillingAddress') then `root`.CUSTOMER::customerAddress::$billAddress when `root`.CUSTOMER::customerAddress::$@type in ('ShippingAddress') then `root`.CUSTOMER::customerAddress::$shipAddress else null end as `Customer Address` from ORDER_SCHEMA.ORDER_TABLE as `root` where case when `root`.CUSTOMER::transactionDetails::payment::$@type in ('CashOnDeliveryPayment') then `root`.CUSTOMER::transactionDetails::payment::%amountToBePaid when `root`.CUSTOMER::transactionDetails::payment::$@type in ('PrepaidPayment', 'WalletPrepaidPayment', 'CardPrepaidPayment') then `root`.CUSTOMER::transactionDetails::payment::%amountPaid else null end < 200\n" + + " connection = RelationalDatabaseConnection(type = \"MemSQL\")\n" + + ")\n"; + Assert.assertEquals(memSQLExpected, memSQLPlan); + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("B2\n" + + "\n" + + "S1\n" + + "S2\n" + + "S3\n" + + "S4\n", h2Result.replace("\r\n", "\n")); + + Assert.assertEquals("[ORDER_TABLE.CUSTOMER ]", this.scanColumns(queryFunction, h2Mapping)); + } + + @Test + public void testSemiStructuredMatchWithVariableAccess() + { + String queryFunction = "match::semiStructuredMatchWithVariableAccess__TabularDataSet_1_"; + String memSQLPlan = this.buildExecutionPlanString(queryFunction, memSQLMapping, memSQLRuntime); + String memSQLExpected = + "Sequence\n" + + "(\n" + + " type = TDS[(Max Amount Flag, Boolean, \"\", \"\")]\n" + + " (\n" + + " Allocation\n" + + " (\n" + + " type = Integer\n" + + " resultSizeRange = 1\n" + + " name = maxAmount\n" + + " value = \n" + + " (\n" + + " Constant\n" + + " (\n" + + " type = Integer\n" + + " resultSizeRange = 1\n" + + " values=[200]\n" + + " )\n" + + " )\n" + + " )\n" + + " Relational\n" + + " (\n" + + " type = TDS[(Max Amount Flag, Boolean, \"\", \"\")]\n" + + " resultColumns = [(\"Max Amount Flag\", \"\")]\n" + + " sql = select case when `root`.CUSTOMER::transactionDetails::payment::$@type in ('CashOnDeliveryPayment') then case when `root`.CUSTOMER::transactionDetails::payment::%amountToBePaid < ${maxAmount} then 'true' else 'false' end when `root`.CUSTOMER::transactionDetails::payment::$@type in ('PrepaidPayment', 'WalletPrepaidPayment', 'CardPrepaidPayment') then case when `root`.CUSTOMER::transactionDetails::payment::%amountPaid < ${maxAmount} then 'true' else 'false' end else null end as `Max Amount Flag` from ORDER_SCHEMA.ORDER_TABLE as `root`\n" + + " connection = RelationalDatabaseConnection(type = \"MemSQL\")\n" + + " )\n" + + " )\n" + + ")\n"; + Assert.assertEquals(memSQLExpected, memSQLPlan); + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("false\n" + + "true\n" + + "false\n" + + "true\n" + + "true\n" + + "true\n" + + "true\n" + + "true\n", h2Result.replace("\r\n", "\n")); + + } + + + @Test + public void testSemiStructuredMatchMultilevel() + { + String queryFunction = "match::semiStructuredMatchMultilevel__TabularDataSet_1_"; + String memSQLPlan = this.buildExecutionPlanString(queryFunction, memSQLMapping, memSQLRuntime); + String memSQLExpected = + "Relational\n" + + "(\n" + + " type = TDS[(Amount, Integer, \"\", \"\")]\n" + + " resultColumns = [(\"Amount\", \"\")]\n" + + " sql = select case when `root`.CUSTOMER::transactionDetails::payment::$@type in ('PrepaidPayment', 'WalletPrepaidPayment', 'CardPrepaidPayment') then case when `root`.CUSTOMER::transactionDetails::payment::$@type in ('WalletPrepaidPayment') then `root`.CUSTOMER::transactionDetails::payment::%walletTransactionAmount when `root`.CUSTOMER::transactionDetails::payment::$@type in ('CardPrepaidPayment') then `root`.CUSTOMER::transactionDetails::payment::%cardTransactionAmount when `root`.CUSTOMER::transactionDetails::payment::$@type in ('PrepaidPayment', 'WalletPrepaidPayment', 'CardPrepaidPayment') then `root`.CUSTOMER::transactionDetails::payment::%amountPaid else null end when `root`.CUSTOMER::transactionDetails::payment::$@type in ('CashOnDeliveryPayment') then `root`.CUSTOMER::transactionDetails::payment::%amountToBePaid else null end as `Amount` from ORDER_SCHEMA.ORDER_TABLE as `root`\n" + + " connection = RelationalDatabaseConnection(type = \"MemSQL\")\n" + + ")\n"; + Assert.assertEquals(memSQLExpected, memSQLPlan); + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("200\n" + + "180\n" + + "290\n" + + "150\n" + + "185\n" + + "120\n" + + "200\n" + + "190\n", h2Result.replace("\r\n", "\n")); + + Assert.assertEquals("[ORDER_TABLE.CUSTOMER ]", this.scanColumns(queryFunction, h2Mapping)); + } + + @Test + public void testSemiStructuredMatchWithMultipleProjectUsingCol() + { + String queryFunction = "match::semiStructuredMatchWithMultipleProjectUsingCol__TabularDataSet_1_"; + String memSQLPlan = this.buildExecutionPlanString(queryFunction, memSQLMapping, memSQLRuntime); + String memSQLExpected = + "Relational\n" + + "(\n" + + " type = TDS[(Customer Address, String, \"\", \"\"), (Order Price, Integer, \"\", \"\")]\n" + + " resultColumns = [(\"Customer Address\", \"\"), (\"Order Price\", \"\")]\n" + + " sql = select case when `root`.CUSTOMER::customerAddress::$@type in ('BillingAddress') then `root`.CUSTOMER::customerAddress::$billAddress when `root`.CUSTOMER::customerAddress::$@type in ('ShippingAddress') then `root`.CUSTOMER::customerAddress::$shipAddress else null end as `Customer Address`, case when `root`.CUSTOMER::transactionDetails::payment::$@type in ('CashOnDeliveryPayment') then `root`.CUSTOMER::transactionDetails::payment::%amountToBePaid when `root`.CUSTOMER::transactionDetails::payment::$@type in ('PrepaidPayment', 'WalletPrepaidPayment', 'CardPrepaidPayment') then `root`.CUSTOMER::transactionDetails::payment::%amountPaid else null end as `Order Price` from ORDER_SCHEMA.ORDER_TABLE as `root`\n" + + " connection = RelationalDatabaseConnection(type = \"MemSQL\")\n" + + ")\n"; + Assert.assertEquals(memSQLExpected, memSQLPlan); + + String h2Result = this.executeFunction(queryFunction, h2Mapping, h2Runtime); + Assert.assertEquals("B1,200\n" + + "B2,180\n" + + "B3,290\n" + + ",150\n" + + "S1,185\n" + + "S2,120\n" + + "S3,180\n" + + "S4,160\n", h2Result.replace("\r\n", "\n")); + + Assert.assertEquals("[ORDER_TABLE.CUSTOMER ]", this.scanColumns(queryFunction, h2Mapping)); + } + + public String modelResourcePath() + { + return "/org/finos/legend/engine/plan/execution/stores/relational/test/semiStructured/semiStructuredMatching.pure"; + } +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/resources/org/finos/legend/engine/plan/execution/stores/relational/test/semiStructured/semiStructuredMatching.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/resources/org/finos/legend/engine/plan/execution/stores/relational/test/semiStructured/semiStructuredMatching.pure new file mode 100644 index 00000000000..b0ebf3d9f20 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/resources/org/finos/legend/engine/plan/execution/stores/relational/test/semiStructured/semiStructuredMatching.pure @@ -0,0 +1,348 @@ +// Copyright 2023 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. + +###Pure +Class match::model::Order +{ + orderId: Integer[1]; + orderName: String[1]; + customer: match::model::Customer[1]; +} + +Class match::model::Customer +{ + customerId: String[1]; + customerAddress: match::model::CustomerAddress[1]; + transactionDetails: match::model::TransactionDetails[1]; +} + +Class match::model::CustomerAddress +{ + name: String[1]; +} + +Class match::model::BillingAddress extends match::model::CustomerAddress +{ + billAddress: String[1]; +} + +Class match::model::ShippingAddress extends match::model::CustomerAddress +{ + shipAddress: String[1]; +} + +Class match::model::TransactionDetails +{ + payment: match::model::Payment[1]; +} + +Class match::model::Payment +{ + paymentId: String[1]; +} + +Class match::model::CashOnDeliveryPayment extends match::model::Payment +{ + amountToBePaid: Integer[1]; +} + +Class match::model::PrepaidPayment extends match::model::Payment +{ + amountPaid: Integer[1]; +} + +Class match::model::WalletPrepaidPayment extends match::model::PrepaidPayment +{ + walletTransactionAmount: Integer[1]; +} + +Class match::model::CardPrepaidPayment extends match::model::PrepaidPayment +{ + cardTransactionAmount: Integer[1]; +} + +###Relational +Database match::store::MemSQLDB +( + Schema ORDER_SCHEMA + ( + Table ORDER_TABLE + ( + ORDERID INTEGER PRIMARY KEY, + ORDERNAME VARCHAR(100), + CUSTOMER JSON + ) + ) +) + +Database match::store::H2DB +( + Schema ORDER_SCHEMA + ( + Table ORDER_TABLE + ( + ORDERID INTEGER PRIMARY KEY, + ORDERNAME VARCHAR(100), + CUSTOMER VARCHAR(1000) + ) + ) +) + +###ExternalFormat +Binding match::store::OrderBinding +{ + contentType: 'application/json'; + modelIncludes: [ + match::model::Order, + match::model::Customer, + match::model::CustomerAddress, + match::model::BillingAddress, + match::model::ShippingAddress, + match::model::TransactionDetails, + match::model::Payment, + match::model::CashOnDeliveryPayment, + match::model::PrepaidPayment, + match::model::WalletPrepaidPayment, + match::model::CardPrepaidPayment + ]; +} + +###Mapping +Mapping match::mapping::MemSQLMapping +( + match::model::Order: Relational + { + ~primaryKey + ( + [match::store::MemSQLDB]ORDER_SCHEMA.ORDER_TABLE.ORDERID + ) + ~mainTable [match::store::MemSQLDB]ORDER_SCHEMA.ORDER_TABLE + orderId: [match::store::MemSQLDB]ORDER_SCHEMA.ORDER_TABLE.ORDERID, + orderName: [match::store::MemSQLDB]ORDER_SCHEMA.ORDER_TABLE.ORDERNAME, + customer: Binding match::store::OrderBinding : [match::store::MemSQLDB]ORDER_SCHEMA.ORDER_TABLE.CUSTOMER + } +) + +Mapping match::mapping::H2Mapping +( + match::model::Order: Relational + { + ~primaryKey + ( + [match::store::H2DB]ORDER_SCHEMA.ORDER_TABLE.ORDERID + ) + ~mainTable [match::store::H2DB]ORDER_SCHEMA.ORDER_TABLE + orderId: [match::store::H2DB]ORDER_SCHEMA.ORDER_TABLE.ORDERID, + orderName: [match::store::H2DB]ORDER_SCHEMA.ORDER_TABLE.ORDERNAME, + customer: Binding match::store::OrderBinding : [match::store::H2DB]ORDER_SCHEMA.ORDER_TABLE.CUSTOMER + } +) + + +###Runtime +Runtime match::runtime::MemSQLRuntime +{ + mappings : + [ + match::mapping::MemSQLMapping + ]; + connections : + [ + match::store::MemSQLDB : + [ + connection_1 : #{ + RelationalDatabaseConnection { + store: match::store::MemSQLDB; + type: MemSQL; + specification: LocalH2{}; + auth: Test; + } + }# + ] + ]; +} + +Runtime match::runtime::H2Runtime +{ + mappings : + [ + match::mapping::H2Mapping + ]; + connections : + [ + match::store::H2DB : + [ + connection_1 : #{ + RelationalDatabaseConnection { + store: match::store::H2DB; + type: H2; + specification: LocalH2{ + testDataSetupSqls: [ + 'DROP SCHEMA IF EXISTS ORDER_SCHEMA CASCADE;', + 'CREATE SCHEMA ORDER_SCHEMA;', + 'CREATE TABLE ORDER_SCHEMA.ORDER_TABLE(ORDERID INT PRIMARY KEY, ORDERNAME VARCHAR(100), CUSTOMER VARCHAR(1000));', + 'INSERT INTO ORDER_SCHEMA.ORDER_TABLE(ORDERID,ORDERNAME,CUSTOMER) VALUES (1,\'Order1\',\'{"customerId": "Customer1", "customerAddress": {"@type":"BillingAddress","name": "A1","billAddress":"B1"},"transactionDetails": {"payment":{"@type":"CashOnDeliveryPayment","paymentId": "P1","amountToBePaid": 200}}}\');', + 'INSERT INTO ORDER_SCHEMA.ORDER_TABLE(ORDERID,ORDERNAME,CUSTOMER) VALUES (2,\'Order2\',\'{"customerId": "Customer2", "customerAddress": {"@type":"BillingAddress","name": "A2","billAddress":"B2"},"transactionDetails": {"payment":{"@type":"CashOnDeliveryPayment","paymentId": "P2","amountToBePaid": 180}}}\');', + 'INSERT INTO ORDER_SCHEMA.ORDER_TABLE(ORDERID,ORDERNAME,CUSTOMER) VALUES (3,\'Order3\',\'{"customerId": "Customer3", "customerAddress": {"@type":"BillingAddress","name": "A3","billAddress":"B3"},"transactionDetails": {"payment":{"@type":"CashOnDeliveryPayment","paymentId": "P3","amountToBePaid": 290}}}\');', + 'INSERT INTO ORDER_SCHEMA.ORDER_TABLE(ORDERID,ORDERNAME,CUSTOMER) VALUES (4,\'Order4\',\'{"customerId": "Customer4", "customerAddress": {"name": "A4"},"transactionDetails": {"payment":{"@type":"PrepaidPayment","paymentId": "P4","amountPaid": 150}}}\');', + 'INSERT INTO ORDER_SCHEMA.ORDER_TABLE(ORDERID,ORDERNAME,CUSTOMER) VALUES (6,\'Order6\',\'{"customerId": "Customer6", "customerAddress": {"@type":"ShippingAddress","name": "A6","shipAddress":"S2"},"transactionDetails": {"payment":{"@type":"PrepaidPayment","paymentId": "P6","amountPaid": 120}}}\')', + 'INSERT INTO ORDER_SCHEMA.ORDER_TABLE(ORDERID,ORDERNAME,CUSTOMER) VALUES (5,\'Order5\',\'{"customerId": "Customer5", "customerAddress": {"@type":"ShippingAddress","name": "A5","shipAddress":"S1"},"transactionDetails": {"payment":{"@type":"PrepaidPayment","paymentId": "P5","amountPaid": 185}}}\')', + 'INSERT INTO ORDER_SCHEMA.ORDER_TABLE(ORDERID,ORDERNAME,CUSTOMER) VALUES (7,\'Order7\',\'{"customerId": "Customer7", "customerAddress": {"@type":"ShippingAddress","name": "A7","shipAddress":"S3"},"transactionDetails": {"payment":{"@type":"WalletPrepaidPayment","paymentId": "P7","amountPaid": 180,"walletTransactionAmount":200}}}\')', + 'INSERT INTO ORDER_SCHEMA.ORDER_TABLE(ORDERID,ORDERNAME,CUSTOMER) VALUES (8,\'Order8\',\'{"customerId": "Customer8", "customerAddress": {"@type":"ShippingAddress","name": "A8","shipAddress":"S4"},"transactionDetails": {"payment":{"@type":"CardPrepaidPayment","paymentId": "P8","amountPaid": 160, "cardTransactionAmount":190}}}\')' + + ]; + }; + auth: Test; + } + }# + ] + ]; +} + + + +###Pure +function match::semiStructuredMatchComplexProperty(): TabularDataSet[1] +{ + match::model::Order.all()->project( + [ + x | $x.customer.customerAddress->match( + [ + s: match::model::BillingAddress[1] | $s.billAddress, + s: match::model::ShippingAddress[1] | $s.shipAddress, + s: Any[1] | 'Default Address' + ] + ) + ], + [ + 'Customer Address' + ] + ); +} + +function match::semiStructuredMatchWithMultipleProject(): TabularDataSet[1] +{ + match::model::Order.all()->project( + [ + x | $x.customer.customerAddress->match( + [ + s: match::model::BillingAddress[1] | $s.billAddress, + s: match::model::ShippingAddress[1] | $s.shipAddress + ] + ), + x | $x.customer.transactionDetails.payment->match( + [ + s:match::model::CashOnDeliveryPayment[1] | $s.amountToBePaid, + s:match::model::PrepaidPayment[1] | $s.amountPaid + ] + ) + ], + [ + 'Customer Address', + 'Order Price' + ] + ); +} + +function match::semiStructuredMatchWithComplexFilter(): TabularDataSet[1] +{ + match::model::Order.all() + ->filter( + x | $x.customer.transactionDetails.payment->match( + [ + s:match::model::CashOnDeliveryPayment[1] | $s.amountToBePaid, + s:match::model::PrepaidPayment[1] | $s.amountPaid + ] + )<200 + ) + ->project( + [ + x | $x.customer.customerAddress->match( + [ + s: match::model::BillingAddress[1] | $s.billAddress, + s: match::model::ShippingAddress[1] | $s.shipAddress + ] + ) + ], + [ + 'Customer Address' + ] + ); +} + +function match::semiStructuredMatchWithVariableAccess(): TabularDataSet[1] +{ + let maxAmount = 200; + match::model::Order.all()->project( + [ + x | $x.customer.transactionDetails.payment->match( + [ + s:match::model::CashOnDeliveryPayment[1] | + if($s.amountToBePaid < $maxAmount, + |true, + |false + ), + s:match::model::PrepaidPayment[1] | + if($s.amountPaid < $maxAmount, + |true, + |false + ) + ] + ) + ], + [ + 'Max Amount Flag' + ] + ); + +} + +function match::semiStructuredMatchMultilevel(): TabularDataSet[1] +{ + match::model::Order.all()->project( + [ + x | $x.customer.transactionDetails.payment->match( + [ + s: match::model::PrepaidPayment[1] | $s->match( + [ + k:match::model::WalletPrepaidPayment[1] | $k.walletTransactionAmount , + k:match::model::CardPrepaidPayment[1] | $k.cardTransactionAmount, + k:match::model::PrepaidPayment[1] | $k.amountPaid + ] + ), + s: match::model::CashOnDeliveryPayment[1] | $s.amountToBePaid + ] + ) + ], + [ + 'Amount' + ] + ); +} + +function match::semiStructuredMatchWithMultipleProjectUsingCol(): TabularDataSet[1] +{ + match::model::Order.all()->project([ + col(x | $x.customer.customerAddress->match( + [ + s: match::model::BillingAddress[1] | $s.billAddress, + s: match::model::ShippingAddress[1] | $s.shipAddress + ]),'Customer Address'), + col(x | $x.customer.transactionDetails.payment->match( + [ + s:match::model::CashOnDeliveryPayment[1] | $s.amountToBePaid, + s:match::model::PrepaidPayment[1] | $s.amountPaid + ]),'Order Price') + ]); +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/pureToSQLQuery.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/pureToSQLQuery.pure index 97e867c21af..a7e689058c7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/pureToSQLQuery.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/pureToSQLQuery.pure @@ -2319,6 +2319,67 @@ function <> meta::relational::functions::pureToSqlQuery::process ^$processedLeftSide(element = ^$collectionSWC(select = $newSelect)); } + +function <> meta::relational::functions::pureToSqlQuery::canProcessMatch(f:FunctionExpression[1]):Boolean[1] +{ + // Can process 'match' in the context of semi structured mappings (which are not routed). + let params = $f.parametersValues->evaluateAndDeactivate(); + ($params->size() == 2) && (!$params->at(0)->instanceOf(RoutedValueSpecification) || $params->at(0)->instanceOf(NoSetRoutedValueSpecification)); +} + +function <> meta::relational::functions::pureToSqlQuery::processMatch(expression:FunctionExpression[1], currentPropertyMapping:PropertyMapping[*], operation:SelectWithCursor[1], vars:Map[1], state:State[1], joinType:JoinType[1], nodeId:String[1], aggFromMap:List[1], context:DebugContext[1], extensions:Extension[*]):RelationalOperationElement[1] +{ + assert($expression.genericType.rawType->toOne()->instanceOf(PrimitiveType),'Match does not support Non-Primitive return type..! Current return type : '+ $expression.genericType.rawType->toOne()->toString()); + let leftSide = $expression.parametersValues->at(0); + let byPassedLeftSide = $leftSide->deepByPassRouterInfo(); + + assert($byPassedLeftSide->cast(@ValueSpecification).multiplicity->isToOne(), 'Match only supports operands with multiplicity [1]..! Current operand : '+ $byPassedLeftSide->cast(@ValueSpecification)->meta::pure::router::printer::asString()); + let leftSideOp = processValueSpecificationReturnPropertyMapping($leftSide, $currentPropertyMapping, $operation, $vars, $state, $joinType, $nodeId, $aggFromMap, $context, $extensions)->toOne(); + let processedLeftSide = $leftSideOp.element->cast(@SelectWithCursor); + let leftSelect = $processedLeftSide.select; + + let checkCol = if($state.inFilter,|$leftSelect.filteringOperation, |$leftSelect.columns)->toOne(); + //Currently hardcoding '@type' as a property. + let checkColType = ^SemiStructuredPropertyAccess(operand = $checkCol->cast(@SemiStructuredPropertyAccess),property = ^Literal(value = '@type'), returnType = String); + let propMapping = $leftSideOp.currentPropertyMapping; + + let functions = $expression->instanceValuesAtParameter(1, $vars, $state.inScopeVars)->cast(@meta::pure::metamodel::function::Function); + let processedFuncs = $functions->map(f|$f->processMatchFunctions($processedLeftSide, $vars, $state, $nodeId, $aggFromMap, $context->shift(), $extensions, $joinType, $propMapping)); + + let matchConclusions = $processedFuncs->map(x | let select = $x.element->cast(@SelectWithCursor).select; + if($state.inFilter,|$select.filteringOperation, |$select.columns)->toOne(); + ); + let functionCount = $functions->size(); + let allFunctionsSubtypes = $functions->size()->range()->map(ind | let functionType = $functions->at($ind)->meta::pure::functions::meta::functionType().parameters->at(0).genericType.rawType->toOne(); + assertFalse($functionType->instanceOf(PrimitiveType), 'Match does not support checking on primitive data type..! Currently checking on : ' + $functionType->toString()); + if($functionType->isAnyClass(), + | assert($ind == $functionCount-1, 'Any should be used as a default type at the end of match'); + [];, + | + list($functionType->cast(@Class)->meta::pure::functions::meta::allSpecializations()) + ); + ); + + let matchConditions = $allFunctionsSubtypes->size()->range()->map(index | ^DynaFunction(name = 'in', parameters = [$checkColType,^LiteralList(values = $allFunctionsSubtypes->at($index).values.name->map(x | ^meta::relational::metamodel::Literal(value =$x)))])); + let matchConditionsWithConclusions = $allFunctionsSubtypes->size()->range()->map(index | $matchConditions->at($index)->concatenate($matchConclusions->at($index))); + + let caseParams = if($matchConditions->size() == $functionCount - 1, + |$matchConditionsWithConclusions->concatenate($matchConclusions->at($functionCount - 1)), + |$matchConditionsWithConclusions->concatenate(^meta::relational::metamodel::Literal(value=^SQLNull())) + ); + + let newSelect = $state.inFilter->if(|^$leftSelect(filteringOperation = ^DynaFunction(name = 'case', parameters = $caseParams)),|^$leftSelect(columns = ^DynaFunction(name = 'case', parameters = $caseParams))); + ^$processedLeftSide(select =$newSelect); +} + +function <> meta::relational::functions::pureToSqlQuery::processMatchFunctions(f:meta::pure::metamodel::function::Function[1], query:SelectWithCursor[1], vars:Map[1], state:State[1], nodeId:String[1], aggFromMap:List[1], context:DebugContext[1], extensions:Extension[*], joinType:JoinType[1], propMapping : PropertyMapping[*]):OperationWithParentPropertyMapping[1] +{ + assert($f->functionReturnMultiplicity()->isToOne(),'Match only supports lambdas with multiplicity [1]..! Current lambda : ' + $f->deepByPassRouterInfo()->cast(@meta::pure::metamodel::function::Function)->meta::pure::router::printer::asString()); + let expression = $f->cast(@meta::pure::metamodel::function::FunctionDefinition).expressionSequence; + assertSize($expression, 1,'Lambdas with more than one functionExpressions are not supported yet in Match..! The lambda \'' + $f->deepByPassRouterInfo()->cast(@meta::pure::metamodel::function::Function)->meta::pure::router::printer::asString() + '\' has ' + $expression->size()->toString() + ' expressions.'); + processValueSpecificationReturnPropertyMapping($expression->toOne(),$propMapping, $query, $vars, $state, $joinType, $nodeId, $aggFromMap, $context->shift(), $extensions)->toOne(); +} + function meta::relational::functions::pureToSqlQuery::processNot(f:FunctionExpression[1], currentPropertyMapping:PropertyMapping[*], operation:SelectWithCursor[1], vars:Map[1], state:State[1], joinType:JoinType[1], nodeId:String[1], aggFromMap:List[1], context:DebugContext[1], extensions:Extension[*]):RelationalOperationElement[1] { processUnary($f, $currentPropertyMapping, $operation, {a|^DynaFunction(name = 'not', parameters = $a)}, $vars, $state, $nodeId, $aggFromMap, $context, $extensions)->cast(@SelectWithCursor)->moveExtraFilterToFilter($extensions) @@ -7463,6 +7524,13 @@ function meta::relational::functions::pureToSqlQuery::getContextBasedSupportedFu meta::relational::functions::pureToSqlQuery::canProcessAt_FunctionExpression_1__Boolean_1_, meta::relational::functions::pureToSqlQuery::processAt_FunctionExpression_1__PropertyMapping_MANY__SelectWithCursor_1__Map_1__State_1__JoinType_1__String_1__List_1__DebugContext_1__Extension_MANY__RelationalOperationElement_1_ ) + ), + ^Pair, PairBoolean[1]}>, meta::pure::metamodel::function::Function<{FunctionExpression[1], PropertyMapping[0..1], SelectWithCursor[1], Map[1], State[1], JoinType[1], String[1], List[1], DebugContext[1], Extension[*]->RelationalOperationElement[1]}>>>( + first = meta::pure::functions::lang::match_Any_MANY__Function_$1_MANY$__T_m_, + second = pair( + meta::relational::functions::pureToSqlQuery::canProcessMatch_FunctionExpression_1__Boolean_1_, + meta::relational::functions::pureToSqlQuery::processMatch_FunctionExpression_1__PropertyMapping_MANY__SelectWithCursor_1__Map_1__State_1__JoinType_1__String_1__List_1__DebugContext_1__Extension_MANY__RelationalOperationElement_1_ + ) ) ]) } From bf164952b289d3fcf1bdaa489fb6809e91df9e3f Mon Sep 17 00:00:00 2001 From: Aziem Chawdhary <61746398+aziemchawdhary-gs@users.noreply.github.com> Date: Wed, 18 Oct 2023 15:50:26 +0100 Subject: [PATCH 26/80] Fix router to handle dynamic column specifications (#2381) --- .../core/pure/router/routing/router_routing.pure | 2 +- .../functions/tests/projection/testSimple.pure | 16 ++++++++++++++++ 2 files changed, 17 insertions(+), 1 deletion(-) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/routing/router_routing.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/routing/router_routing.pure index 80a447e1d3d..ecb88e86e68 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/routing/router_routing.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/router/routing/router_routing.pure @@ -511,7 +511,7 @@ function meta::pure::router::routing::processColSpecParams(fe:FunctionExpression ]))->cast(@ValueSpecification); let nfe = ^$fe(parametersValues = $parametersValues); - let colSpec = $nfe->reactivate($inScopeVars)->evaluateAndDeactivate()->cast(@ColumnSpecification)->toOne(); + $nfe->reactivate($inScopeVars)->evaluateAndDeactivate()->cast(@ColumnSpecification); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testSimple.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testSimple.pure index 00dd1cee030..d10c214f372 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testSimple.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testSimple.pure @@ -34,6 +34,22 @@ function <> meta::relational::tests::projection::simple::testAllOneSi assertEquals('select "root".FIRSTNAME as "firstName" from personTable as "root"', $result->sqlRemoveFormatting()); } +function meta::relational::tests::projection::simple::getCols():ColumnSpecification[*] +{ + [ + col(x : Person[1] | $x.firstName, 'firstName'), + col(x : Person[1] | $x.lastName, 'lastName') + ]; +} + +function <> meta::relational::tests::projection::simple::testAllOneSimplePropertyWithColsFromFunction():Boolean[1] +{ + let result = execute(|Person.all()->project(meta::relational::tests::projection::simple::getCols()), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); + assertSize($result.values.rows, 7 ); + assertEquals('Allen,Anthony,David,Fabrice,Harris,Hill,Hill,John,John,Johnson,Oliver,Peter,Roberts,Smith', $result.values.rows->map(r|$r.values)->sort()->makeString(',')); + assertEquals('select "root".FIRSTNAME as "firstName", "root".LASTNAME as "lastName" from personTable as "root"', $result->sqlRemoveFormatting()); +} + function <> meta::relational::tests::projection::simple::testAllOneSimplePropertyUsingVariable():Boolean[1] { let p = [#/Person/firstName#]; From 5fbfc4c283d8c1c781ac72d887373ea89e389876 Mon Sep 17 00:00:00 2001 From: Mohammed Ibrahim Date: Thu, 19 Oct 2023 09:43:29 -0400 Subject: [PATCH 27/80] rename method (#2390) --- .../relational/sqlQueryToString/sparkSQLExtension.pure | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/src/main/resources/core_relational_sparksql/relational/sqlQueryToString/sparkSQLExtension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/src/main/resources/core_relational_sparksql/relational/sqlQueryToString/sparkSQLExtension.pure index a14c2f8aad0..9710caeebc9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/src/main/resources/core_relational_sparksql/relational/sqlQueryToString/sparkSQLExtension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/src/main/resources/core_relational_sparksql/relational/sqlQueryToString/sparkSQLExtension.pure @@ -15,7 +15,7 @@ function <> meta::relational::functions::sqlQueryToString::s function <> meta::relational::functions::sqlQueryToString::sparkSQL::createDbExtensionForSparkSQL():DbExtension[1] { - let reservedWords = sybaseReservedWords(); + let reservedWords = sparkReservedWords(); let literalProcessors = getDefaultLiteralProcessors()->putAll(getLiteralProcessorsForSparkSQL()); let literalProcessor = {type:Type[1]| $literalProcessors->get(if($type->instanceOf(Enumeration), | Enum, | $type))->toOne()}; let dynaFuncDispatch = getDynaFunctionToSqlDefault($literalProcessor)->groupBy(d| $d.funcName)->putAll( @@ -304,7 +304,8 @@ function meta::relational::functions::sqlQueryToString::sparkSQL::loadValuesToDb ,| $l->meta::relational::functions::sqlQueryToString::default::loadValuesToDbTableDefault($dbConfig)); } -function <> meta::relational::functions::sqlQueryToString::sparkSQL::sybaseReservedWords():String[*] + +function <> meta::relational::functions::sqlQueryToString::sparkSQL::sparkReservedWords():String[*] { //Based on // http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc38151.1510/html/iqrefbb/Alhakeywords.htm From fb7e2bbd533220a040329a543d3d687b2417211e Mon Sep 17 00:00:00 2001 From: gs-jp1 <80327721+gs-jp1@users.noreply.github.com> Date: Thu, 19 Oct 2023 15:03:48 +0100 Subject: [PATCH 28/80] Legend SQL - assortment of changes (#2393) * Legend SQL - assortment of changes - further support for complex aliasing - date - date arithmetic - fix split part * FromPure fix --- .../binding/fromPure/fromPure.pure | 260 +++++++++++------- .../binding/fromPure/tests/testTranspile.pure | 237 ++++++++++++++-- 2 files changed, 377 insertions(+), 120 deletions(-) diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/fromPure.pure b/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/fromPure.pure index 965871119a0..ec5bd2c906c 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/fromPure.pure +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/fromPure.pure @@ -228,7 +228,9 @@ function <> meta::external::query::sql::transformation::queryToP let newExp = appendTdsFunc($left.expression->toOne(), concatenate_TabularDataSet_1__TabularDataSet_1__TabularDataSet_1_, [list($right.expression->toOne())]); - ^$context(expression = $newExp, contexts = [$left, $right]); + let aliases = $left.aliases->concatenate($right.aliases)->removeDuplicates(); + + ^$context(expression = $newExp, contexts = [$left, $right], aliases = $aliases); } function <> meta::external::query::sql::transformation::queryToPure::processQuerySpec(querySpec: QuerySpecification[1], context: SqlTransformContext[1]): SqlTransformContext[1] @@ -236,10 +238,15 @@ function <> meta::external::query::sql::transformation::queryToP debug('processQuerySpec', $context.debug); let from = $querySpec.from->processFrom($context); + //if the from context comes back and is still the same (ie no subquery, realias etc) then we can use that directly, else we + //need to subnest the context + let fromContext = if ($from.root || $from.name == $context.name, | $from, | ^$context(contexts = ^$from(contexts = []), expression = $from.expression)); + + let query = $querySpec.limit->processLimitOffset($querySpec.offset, $querySpec.orderBy->processOrderBy($querySpec.select.selectItems, $querySpec.having->processHaving($querySpec.select, - $querySpec.select->processProjection($querySpec.groupBy, $querySpec.having, $querySpec.where->processWhere($from)) + $querySpec.select->processProjection($querySpec.groupBy, $querySpec.having, $querySpec.orderBy.sortKey, $querySpec.where->processWhere($fromContext)) ) ) ); @@ -253,7 +260,10 @@ function <> meta::external::query::sql::transformation::queryToP let alias = $query.alias($nonAliasedName, $s.alias, true)->toOne(); let finalAlias = $query.alias($alias.name, $s.alias, false); - ^$alias(alias = if ($finalAlias->isEmpty(), | $alias.alias, | $finalAlias.alias));, + + let realias = if ($alias.realias->isNotEmpty(), | $alias.realias, | $finalAlias.realias); + + ^$alias(alias = if ($finalAlias->isEmpty(), | $alias.alias, | $finalAlias.alias), realias = $realias);, a:AllColumns[1] | if ($a.prefix->isEmpty(), | $query.contexts->map(c | $c.aliases)->concatenate($query.aliases), @@ -268,15 +278,17 @@ function <> meta::external::query::sql::transformation::queryToP expression = ^QualifiedNameReference(name = ^QualifiedName(parts = if ($clash, | $p.expected, | $p.actual)))); ); - //if this is the root context we want to align the schema (order and name) with what has been specified in the sql let currentSchema = $query.columns.name; - let toRename = $expected->filter(sc | $sc.expression->extractNameFromExpression([])->in($currentSchema)); - let renamed = if ($query.root && $expected.alias != $currentSchema, | ^$query(expression = processRename($toRename, $query)), | $query); + let renamed = if ($expected.alias != $currentSchema, | ^$query(expression = processRename($expected->filter(e | !$e.alias->in($currentSchema)), $query)), | $query); - if ($renamed.columns.name != $expected.alias->removeDuplicates() && $expected.alias->isNotEmpty(), + let final = if ($renamed.columns.name != $expected.alias->removeDuplicates() && $expected.alias->isNotEmpty(), | ^$query(expression = processRestrict($expected.alias, $renamed)), | $renamed); + + let aliases = $final.columns.name->map(c | ^SQLColumnAlias(name=$c)); + + ^$final(aliases = $aliases); } function <> meta::external::query::sql::transformation::queryToPure::extractAggregatesFromExpression(expression:meta::external::query::sql::metamodel::Expression[0..1]):meta::external::query::sql::metamodel::Expression[*] @@ -300,20 +312,47 @@ function <> meta::external::query::sql::transformation::queryToP } -function <> meta::external::query::sql::transformation::queryToPure::processProjection(select: Select[1], groupBy: meta::external::query::sql::metamodel::Expression[*], having:meta::external::query::sql::metamodel::Expression[0..1], context: SqlTransformContext[1]): SqlTransformContext[1] +function <> meta::external::query::sql::transformation::queryToPure::processProjection(originalSelect: Select[1], groupBy: meta::external::query::sql::metamodel::Expression[*], having:meta::external::query::sql::metamodel::Expression[0..1], orderBy:meta::external::query::sql::metamodel::Expression[*], context: SqlTransformContext[1]): SqlTransformContext[1] { debug('processProjection', $context.debug); - let aggregates = $select.selectItems->filter(si | $si->isSelectItemAggregate()); - let windows = $select.selectItems->filter(si | $si->isSelectItemWindow())->cast(@SingleColumn); - let standard = $select.selectItems->removeAll($aggregates)->removeAll($windows); + let aggregates = $originalSelect.selectItems->filter(si | $si->isSelectItemAggregate()); + let windows = $originalSelect.selectItems->filter(si | $si->isSelectItemWindow())->cast(@SingleColumn); + let standard = $originalSelect.selectItems->removeAll($aggregates)->removeAll($windows); let havingExtensions = extractAggregatesFromExpression($having)->map(e | ^SingleColumn(expression = $e)); - let standardExtensions = $standard->filter(si | !$si->isSelectItemColumnReference() && !$si->isSelectItemAggregate()); + let standardExtensions = $standard->filter(si | !$si->isNonAliasedSelectItemColumnReference() && !$si->isSelectItemAggregate()); let windowExtensions = extractWindowExtensionExpressions($windows); - let extensions = $standardExtensions->concatenate($windowExtensions); + let columns = $context.columns.name; + + let extensionPairs = $standardExtensions->concatenate($windowExtensions)->cast(@SingleColumn)->map(sc | + let name = extractNameFromSingleColumn($sc->toOne(), $context); + pair($sc, if ($columns->contains($name), | ^$sc(alias = $name + '_1'), | $sc)); + ); + + let selectItems = $originalSelect.selectItems->map(si | + let extension = $extensionPairs->filter(e | $e.first == $si)->first(); + if ($extension.first == $extension.second, | $si, | $extension->toOne().second); + ); + + let extensions = $extensionPairs.second; + + let aliases = range(0, $originalSelect.selectItems->size())->map(i | + let si = $originalSelect.selectItems->at($i); + let eis = $selectItems->at($i); + $si->match([ + s:SingleColumn[1] | + let alias = extractAliasFromColumn($s); + let ealias = extractAliasFromColumn($eis->cast(@SingleColumn)); + + if ($si != $eis, | ^$alias(realias = $ealias.actual), | $alias);, + a:AllColumns[1] | $context.aliases->map(a | ^SQLColumnAlias(name = $a.actual)) + ]); + ); + + let select = ^$originalSelect(selectItems = $selectItems); let isAggregate = $groupBy->isNotEmpty() || anyColumnAggregate($select); let isWindow = $windows->isNotEmpty(); @@ -338,13 +377,6 @@ function <> meta::external::query::sql::transformation::queryToP | appendTdsFunc($olapGroupBy, distinct_TabularDataSet_1__TabularDataSet_1_, []), | $olapGroupBy); - let aliases = $select.selectItems->map(si | - $si->match([ - s:SingleColumn[1] | extractAliasFromColumn($s), - a:AllColumns[1] | $context.aliases->map(a | ^SQLColumnAlias(name = $a.name)); - ]) - ); - ^$context(expression = $distinctExp, aliases = $aliases); } @@ -374,23 +406,10 @@ function <> meta::external::query::sql::transformation::queryToP let groupByColumns = $groupBy->map(g | $g->extractColumnNameFromExpression($select.selectItems, $context)); - - let aggregates = $select.selectItems->filter(s | $s->isSelectItemAggregate() && !$s->isSelectItemWindow()); + let aggregates = $select.selectItems->filter(s | $s->isSelectItemAggregate() && !$s->isSelectItemWindow())->cast(@SingleColumn); let rename = processSelect(^$select(selectItems = $select.selectItems->removeAll($aggregates)->removeAll($windows)->removeAll($extensions)->removeAll($havingExtensions)->filter(c | $c->instanceOf(SingleColumn))->cast(@SingleColumn)), false, $context); - //TODO should use equals on the expression instead of name checking in groupBy, cannot at moment due to no equality key. - let aggregatePairs = $aggregates->cast(@SingleColumn) - ->map(column | pair(extractNameFromSingleColumn($column, $context), $column)) - ->filter(pair | !$groupByColumns->contains($pair.first)); - - let aggregateExpressionNames = $aggregates->cast(@SingleColumn)->map(column | extractNameFromExpression($column.expression, $context)); - - let havingAggregatePairs = $havingExtensions->cast(@SingleColumn) - ->map(column | pair(extractNameFromSingleColumn($column, $context), $column)) - ->filter(pair | !$aggregateExpressionNames->contains($pair.first)) - ->removeDuplicatesBy(x | $x.first); - let additionalGroupColumns = $select.selectItems->removeAll($aggregates)->map(s | $s->match([ s:SingleColumn[1] | extractNameFromSingleColumn($s, $context), a:AllColumns[1] | @@ -403,11 +422,13 @@ function <> meta::external::query::sql::transformation::queryToP let allGroupByColumns = $groupByColumns->concatenate($additionalGroupColumns)->distinct(); + let aggregateExpressionNames = $aggregates->cast(@SingleColumn)->map(column | extractNameFromExpression($column.expression, $context)); + let allAggregateColumns = $aggregates->concatenate($havingExtensions->cast(@SingleColumn)->filter(h | + !extractNameFromExpression($h.expression, $context)->in($aggregateExpressionNames); + ))->removeDuplicatesBy(c | $c->extractNameFromSingleColumn($context)); - let aggregations = $aggregatePairs->concatenate($havingAggregatePairs) - ->map(pair | - let name = $pair.first; - let column = $pair.second; + let aggregations = $allAggregateColumns->map(column | + let name = extractNameFromSingleColumn($column, $context); let aggregateExpression = extractAggregatesFromExpression($column.expression); @@ -547,24 +568,28 @@ function <> meta::external::query::sql::transformation::queryToP let typeArguments = ^GenericType(rawType = TDSRow); let genericType = ^GenericType(rawType = BasicColumnSpecification, typeArguments = $typeArguments); - let args = $select.selectItems->processSelectItems($context, false)->map(item | - sfe(col_Function_1__String_1__BasicColumnSpecification_1_, $genericType, $typeArguments, [$item.first->iv(), $item.second->iv()]); - ); + let selectItems = $select.selectItems->processSelectItems($context, false); - let iv = iv($args); + let columns = $context.columns.name; - appendTdsFunc($context.expression->toOne(), extend_TabularDataSet_1__BasicColumnSpecification_MANY__TabularDataSet_1_, list($iv)); + let args = $selectItems->map(item | + let rename = $columns->contains($item.second); + let name = if ($rename, | $item.second + '_1', | $item.second); + + sfe(col_Function_1__String_1__BasicColumnSpecification_1_, $genericType, $typeArguments, [$item.first->iv(), $name->iv()]); + ); + + appendTdsFunc($context.expression->toOne(), extend_TabularDataSet_1__BasicColumnSpecification_MANY__TabularDataSet_1_, list(iv($args))); } -function <> meta::external::query::sql::transformation::queryToPure::processSelect(select: Select[1], restrict:Boolean[1],context: SqlTransformContext[1]):FunctionExpression[1] +function <> meta::external::query::sql::transformation::queryToPure::processSelect(select: Select[1], restrict:Boolean[1], context: SqlTransformContext[1]):FunctionExpression[1] { debug('processSelect', $context.debug); - if (isSelectStar($select), + if (isSelectStar($select, $context), | $context.expression->toOne(), | if (allColumnsSimpleSelect($select), | processSelectToRestrictAndRename($select, $restrict, $context), | processSelectToProject($select, $context))); - } @@ -608,9 +633,12 @@ function <> meta::external::query::sql::transformation::queryToP && $si->cast(@SingleColumn).expression->cast(@FunctionCall).window->isNotEmpty() } -function <> meta::external::query::sql::transformation::queryToPure::isSelectItemColumnReference(si:SelectItem[1]):Boolean[1] +function <> meta::external::query::sql::transformation::queryToPure::isNonAliasedSelectItemColumnReference(si:SelectItem[1]):Boolean[1] { - $si->instanceOf(AllColumns) || ($si->instanceOf(SingleColumn) && $si->cast(@SingleColumn).expression->instanceOf(QualifiedNameReference)) + $si->match([ + a:AllColumns[1] | true, + s:SingleColumn[1] | $s.expression->instanceOf(QualifiedNameReference) && $s.alias->isEmpty() + ]) } function <> meta::external::query::sql::transformation::queryToPure::processSelectToProject(select: Select[1], context: SqlTransformContext[1]):FunctionExpression[1] @@ -655,8 +683,6 @@ function <> meta::external::query::sql::transformation::queryToP let renames = $selectItems->map(si | let defaultName = extractNameFromExpression($si.expression, $context); - let existing = $context.columns.name; - if ($si.alias->isNotEmpty() && $si.alias != $defaultName, | @@ -669,9 +695,12 @@ function <> meta::external::query::sql::transformation::queryToP | $context.expression->toOne()); } -function <> meta::external::query::sql::transformation::queryToPure::isSelectStar(select: Select[1]):Boolean[1] +function <> meta::external::query::sql::transformation::queryToPure::isSelectStar(select: Select[1], context: SqlTransformContext[1]):Boolean[1] { - $select.selectItems->forAll(si | $si->instanceOf(AllColumns)); + $select.selectItems->forAll(si | $si->match([ + a:AllColumns[1] | assert($a.prefix->isEmpty() || $a.prefix == $context.name || $a.prefix->in($context.contexts.name), 'invalid select * - alias not in scope'), + s:SelectItem[1] | false + ])); } function <> meta::external::query::sql::transformation::queryToPure::allColumnsSimpleSelect(select: Select[1]):Boolean[1] @@ -749,14 +778,13 @@ function <> meta::external::query::sql::transformation::queryToP function <> meta::external::query::sql::transformation::queryToPure::processDuplicateRenames(names:String[*], suffix:String[1], context:SqlTransformContext[1]): SqlTransformContext[1] { - if ($names->isNotEmpty(), | let expression = processRename($names->map(n | ^SingleColumn(alias = $n + '_' + $suffix, expression = ^QualifiedNameReference(name = ^QualifiedName(parts = $n)))), $context); let aliases = $context.aliases->map(a | - if ($a.name->in($names) || $a.alias->in($names), - | ^$a(realias = $a.expected + '_' + $suffix), + if ($a.name->in($names) || $a.alias->in($names) || $a.realias->in($names), + | ^$a(realias = $a.actual + '_' + $suffix), | $a); ); @@ -771,8 +799,8 @@ function <> meta::external::query::sql::transformation::queryToP let leftContext = processRelation($join.left, ^$context(root = false, id = $context.id + 2)); let rightContext = processRelation($join.right, ^$context(root = false, id = $context.id + 3)); - let leftColumns = $leftContext.aliases.expected(); - let rightColumns = $rightContext.aliases.expected(); + let leftColumns = $leftContext.aliases.actual(); + let rightColumns = $rightContext.aliases.actual(); let leftName = $join.left->relationName(); let rightName = $join.right->relationName(); @@ -876,6 +904,8 @@ function <> meta::external::query::sql::transformation::queryToP function <> meta::external::query::sql::transformation::queryToPure::createSortItemFunction(si:SortItem[1], selectItems:SelectItem[*], context: SqlTransformContext[1]):FunctionExpression[1] { + assert($si.nullOrdering == SortItemNullOrdering.UNDEFINED, 'null ordering type not yet supported'); + let column = extractColumnNameFromExpression($si.sortKey, $selectItems, $context); let sortFunc = [ pair(SortItemOrdering.ASCENDING, asc_String_1__SortInformation_1_), @@ -939,7 +969,7 @@ function <> meta::external::query::sql::transformation::queryToP function <> meta::external::query::sql::transformation::queryToPure::processTableSubquery(tsq: TableSubquery[1], context: SqlTransformContext[1]): SqlTransformContext[1] { debug('processTableSubquery', $context.debug); - processQuery($tsq.query, $context); + processQuery($tsq.query, ^$context(root = false)); } function meta::external::query::sql::transformation::queryToPure::extractSourceArguments(expressions:meta::external::query::sql::metamodel::Expression[*]):SQLSourceArgument[*] @@ -1518,7 +1548,8 @@ function <> meta::external::query::sql::transformation::queryToP pair(String, | processCastAsParse(^$c(type = ^ColumnType(name = 'DOUBLE PRECISION')), $v, $expContext, $context)), pair(Float, | $v), pair(Decimal, | sfe(toFloat_Number_1__Float_1_, $v)), - pair(Integer, | sfe(toFloat_Number_1__Float_1_, $v)) + pair(Integer, | sfe(toFloat_Number_1__Float_1_, $v)), + pair(Number, | sfe(toFloat_Number_1__Float_1_, $v)) ]->getValue($type)->eval(); } @@ -1536,7 +1567,8 @@ function <> meta::external::query::sql::transformation::queryToP pair(String, | processCastAsParse(^$c(type = ^ColumnType(name = 'NUMERIC')), $v, $expContext, $context)), pair(Decimal, | $v), pair(Float, | sfe(toDecimal_Number_1__Decimal_1_, $v)), - pair(Integer, | sfe(toDecimal_Number_1__Decimal_1_, $v)) + pair(Integer, | sfe(toDecimal_Number_1__Decimal_1_, $v)), + pair(Number, | sfe(toDecimal_Number_1__Decimal_1_, $v)) ]->getValue($type)->eval(); let scale = if ($c.type.parameters->size() == 2, | $c.type.parameters->at(1), | []); @@ -1696,7 +1728,6 @@ function <> meta::external::query::sql::transformation::queryToP function <> meta::external::query::sql::transformation::queryToPure::createTdsColumn(qualifiedName:QualifiedName[1], var:VariableExpression[1], expContext:SqlTransformExpressionContext[1], context: SqlTransformContext[1]):ValueSpecification[1] { - if ($qualifiedName.parts->isEmpty(), | $var, | let column = $context.columnByNameParts($qualifiedName.parts, true); @@ -1960,10 +1991,10 @@ function meta::external::query::sql::transformation::queryToPure::functionProces let position = $args->at(2)->match([ i:InstanceValue[1] | $i.values->match([ - i:Integer[1] | iv($i + 1), + i:Integer[1] | iv($i - 1), a:Any[*] | fail('invalid split part position'); iv(1); ]), - v:ValueSpecification[1] | sfe(plus_Integer_MANY__Integer_1_, iv([$args->at(2), iv(1)])) + v:ValueSpecification[1] | sfe(minus_Integer_MANY__Integer_1_, iv([$args->at(2), iv(1)])) ]); let arguments = [$args->at(0), $args->at(1), $position]; @@ -2105,7 +2136,7 @@ function <> meta::external::query::sql::transformation::queryToP debug('processNegativeExpression', $context.debug); let value = $n.value->processExpression($expContext, $context); - sfe(minus_Number_MANY__Number_1_, $value); + createMinus($value.genericType.rawType, false, $value); } function <> meta::external::query::sql::transformation::queryToPure::getLiteralType(literal:Literal[1]):Type[1] @@ -2207,28 +2238,50 @@ function <> meta::external::query::sql::transformation::queryToP let type = if ($leftType->isNotEmpty() && $leftType == $rightType, | $leftType->toOne(), | Number); let expression = [ - pair(ArithmeticType.ADD, | sfe([ - pair(Integer, plus_Integer_MANY__Integer_1_), - pair(Float, plus_Float_MANY__Float_1_), - pair(Float, plus_Decimal_MANY__Decimal_1_) - ]->getValue($type, plus_Number_MANY__Number_1_), iv($left->concatenate($right)))), - pair(ArithmeticType.SUBTRACT, | sfe([ + pair(ArithmeticType.ADD, | createPlus($type, false, $left->concatenate($right))), + pair(ArithmeticType.SUBTRACT, | createMinus($type, false, $left->concatenate($right))), + pair(ArithmeticType.MULTIPLY, | createTimes($type, false, $left->concatenate($right))), + pair(ArithmeticType.DIVIDE, | nullOrSfe(divide_Number_1__Number_1__Float_1_, [$left, $right])), + pair(ArithmeticType.MODULUS, | nullOrSfe(mod_Integer_1__Integer_1__Integer_1_, [$left, $right])), + pair(ArithmeticType.POWER, | nullOrSfe(pow_Number_1__Number_1__Number_1_, [$left, $right])) + ]->getValue($a.type)->eval(); + + if ($left->isNull() || $right->isNull(), | iv([], $expression->evaluateAndDeactivate().genericType), | $expression); + +} + +function meta::external::query::sql::transformation::queryToPure::createMinus(type:Type[0..1], null:Boolean[1], args:ValueSpecification[*]):ValueSpecification[1] +{ + createTypedFunction([ pair(Integer, minus_Integer_MANY__Integer_1_), pair(Float, minus_Float_MANY__Float_1_), pair(Decimal, minus_Decimal_MANY__Decimal_1_) - ]->getValue($type, minus_Number_MANY__Number_1_), iv($left->concatenate($right)))), - pair(ArithmeticType.MULTIPLY, | sfe([ + ], minus_Number_MANY__Number_1_, $type, $null, iv($args)); +} + +function meta::external::query::sql::transformation::queryToPure::createPlus(type:Type[0..1], null:Boolean[1], args:ValueSpecification[*]):ValueSpecification[1] +{ + createTypedFunction([ + pair(Integer, plus_Integer_MANY__Integer_1_), + pair(Float, plus_Float_MANY__Float_1_), + pair(Decimal, plus_Decimal_MANY__Decimal_1_) + ], plus_Number_MANY__Number_1_, $type, $null, iv($args)); +} + +function meta::external::query::sql::transformation::queryToPure::createTimes(type:Type[0..1], null:Boolean[1], args:ValueSpecification[*]):ValueSpecification[1] +{ + createTypedFunction([ pair(Integer, times_Integer_MANY__Integer_1_), pair(Float, times_Float_MANY__Float_1_), pair(Decimal, times_Decimal_MANY__Decimal_1_) - ]->getValue($type, times_Number_MANY__Number_1_), iv($left->concatenate($right)))), - pair(ArithmeticType.DIVIDE, | nullOrSfe(divide_Number_1__Number_1__Float_1_, [$left, $right])), - pair(ArithmeticType.MODULUS, | nullOrSfe(mod_Integer_1__Integer_1__Integer_1_, [$left, $right])), - pair(ArithmeticType.POWER, | nullOrSfe(pow_Number_1__Number_1__Number_1_, [$left, $right])) - ]->getValue($a.type)->eval(); + ], times_Number_MANY__Number_1_, $type, $null, iv($args)); +} - if ($left->isNull() || $right->isNull(), | iv([], $expression->evaluateAndDeactivate().genericType), | $expression); +function <> meta::external::query::sql::transformation::queryToPure::createTypedFunction(pairs:Pair>[*], default:Function[1], type:Type[0..1], null:Boolean[1], args:ValueSpecification[*]):ValueSpecification[1] +{ + let func = if ($type->isEmpty(), | $default, | $pairs->getValue($type->toOne(), $default)); + if ($null, | nullOrSfe($func, $args), | sfe($func, $args)); } //purely internal class to ensure we can handle expressions in the interval calculation logic @@ -2248,14 +2301,19 @@ Class <> meta::external::query::sql::transformation::queryToPure function <> meta::external::query::sql::transformation::queryToPure::simplifyDateArithmetic(e:meta::external::query::sql::metamodel::Expression[1], expContext:SqlTransformExpressionContext[1], context:SqlTransformContext[1]):meta::external::query::sql::metamodel::Expression[1] { $e->match([ - a:ArithmeticExpression[1] | + ae:ArithmeticExpression[1] | + let a = ^$ae( + left = if ($ae.left->instanceOf(StringLiteral), | ^Cast(expression = $ae.left, type = ^ColumnType(name = 'TIMESTAMP')), | $ae.left), + right = if ($ae.right->instanceOf(StringLiteral), | ^Cast(expression = $ae.right, type = ^ColumnType(name = 'TIMESTAMP')), | $ae.right) + ); + if ($a.right->instanceOf(NullLiteral) || $a.left->instanceOf(NullLiteral), | ^NullLiteral(), | if ($a.type == ArithmeticType.MULTIPLY && $a.left->instanceOf(IntervalLiteral), | multiplyIntervalLiteral($a.left->cast(@IntervalLiteral), $a.right, $expContext, $context), | if ($a.type == ArithmeticType.MULTIPLY && $a.right->instanceOf(IntervalLiteral), | multiplyIntervalLiteral($a.right->cast(@IntervalLiteral), $a.left, $expContext, $context), - | ^$a(left = $a.left->simplifyDateArithmetic($expContext, $context), right = $a.right->simplifyDateArithmetic($expContext, $context))))), + | ^$a(left = $a.left->simplifyDateArithmetic($expContext, $context), right = $a.right->simplifyDateArithmetic($expContext, $context)))));, i:IntervalLiteral[1] | ^IntervalLiteralWrapper(ago = $i.ago, years = $i.years->ivIfNotEmpty(), months = $i.months->ivIfNotEmpty(), weeks = $i.weeks->ivIfNotEmpty(), days = $i.days->ivIfNotEmpty(), hours = $i.hours->ivIfNotEmpty(), minutes = $i.minutes->ivIfNotEmpty(), seconds = $i.seconds->ivIfNotEmpty()), e:meta::external::query::sql::metamodel::Expression[1] | $e @@ -2292,18 +2350,27 @@ function <> meta::external::query::sql::transformation::queryToP assert($simplified.type == ArithmeticType.ADD || $simplified.type == ArithmeticType.SUBTRACT, | 'arithmetic type ' + $simplified.type.name + ' not currently supported for dates'); //note we are making assumption here that Any is fine. This results from a function call that is generic return type (e.g. max) assert($leftTypeNormalized == Date || $leftTypeNormalized == Any, | 'left side of date arithmetic must be non interval date'); - assert($rightTypeNormalized == Number || $simplified.right->instanceOf(IntervalLiteralWrapper) || $simplified.right->instanceOf(NullLiteral), | 'right side of date arithmetic must be numeric or interval'); + + assert($rightTypeNormalized == Number || $rightTypeNormalized == String || $simplified.right->instanceOf(IntervalLiteralWrapper) || $simplified.right->instanceOf(NullLiteral) || ($rightTypeNormalized == Date && $simplified.type == ArithmeticType.SUBTRACT), | 'right side of date arithmetic must be numeric or interval'); let negate = $simplified.type == ArithmeticType.SUBTRACT; [ pair($simplified.right->instanceOf(IntervalLiteralWrapper) && !$simplified.left->instanceOf(NullLiteral), {| let left = $simplified.left->processExpression($expContext, $context); - processIntervalToAdjust($left, $simplified.right->cast(@IntervalLiteralWrapper), $negate);}), + processIntervalToAdjust($left, $simplified.right->cast(@IntervalLiteralWrapper), $negate); + }), pair($simplified.right->instanceOf(NullLiteral) || $simplified.left->instanceOf(NullLiteral), {| let left = $simplified.left->processExpression($expContext, $context); let cast = ^Cast(expression = ^NullLiteral(), type = ^ColumnType(name = 'DATE')); - processCastAsCast($cast, processExpression($cast, $expContext, $context), $expContext, $context);}) + processCastAsCast($cast, processExpression($cast, $expContext, $context), $expContext, $context); + }), + pair($leftTypeNormalized == Date && ($rightTypeNormalized == Date || $rightTypeNormalized == String) && $simplified.type == ArithmeticType.SUBTRACT && !$simplified.right->instanceOf(IntervalLiteralWrapper), {| + let left = $simplified.left->processExpression($expContext, $context); + let right = $simplified.right->processExpression($expContext, $context); + + sfe(dateDiff_Date_1__Date_1__DurationUnit_1__Integer_1_, [$left, $right, processExtractEnumValue(DurationUnit, DurationUnit.DAYS.name)]); + }) ]->getValue(true, {| let left = $simplified.left->processExpression($expContext, $context); let right = $simplified.right->processExpression($expContext, $context); @@ -2536,7 +2603,11 @@ function <> meta::external::query::sql::transformation::queryToP { if ($amount->isNotEmpty(), | - let adjustedAmount = if ($ago, | nullOrSfe(minus_Number_MANY__Number_1_, $amount->toOne()), | $amount); + let adjustedAmount = if ($ago, + | + let type = $amount->evaluateAndDeactivate().genericType.rawType; + createMinus($type, true, $amount->toOne());, + | $amount); nullOrSfe(adjust_Date_1__Integer_1__DurationUnit_1__Date_1_, [$input, iv($adjustedAmount->toOne()), processExtractEnumValue(DurationUnit, $unit.name)]);, | $input) } @@ -2760,7 +2831,7 @@ Class meta::external::query::sql::transformation::queryToPure::SqlTransformConte $indent + 'name: ' + if ($this.name->isEmpty(), | '[]', | $this.name->toOne()) + '\n' + $indent + 'root: ' + $this.root->toString() + '\n' + if ($this.aliases->isNotEmpty(), | $indent + 'aliases: \n' + $indent + ' ' + $this.aliases.toString()->joinStrings('\n' + $indent + ' ') + '\n', | '') + - if ($this.contexts->isNotEmpty(), | $indent + 'contexts: \n' + $indent + $this.contexts->map(c | $c.toString($indent + ' '))->joinStrings('\n' + $indent), | '') + + if ($this.contexts->isNotEmpty(), | $indent + 'contexts: \n' + $this.contexts->map(c | $c.toString($indent + ' '))->joinStrings('\n'), | '') + if ($this.assignments->isNotEmpty(), | $indent + 'assigments: ' + $this.assignments->size()->toString(), | '') }:String[1]; @@ -2774,16 +2845,16 @@ Class meta::external::query::sql::transformation::queryToPure::SqlTransformConte }:SqlTransformContext[1]; columns(){ if ($this.expression->isNotEmpty(), - | meta::pure::tds::schema::resolveSchema($this.lambda(), $this.extensions), + | meta::pure::tds::schema::resolveSchema($this.lambda(), $this.extensions);, | []) }: TDSColumn[*]; columnByNameParts(parts:String[*], failIfNotFound:Boolean[1]) { let name = if ($parts->size() > 1, | $parts->last(), | $parts)->joinStrings('.'); let contextName = $parts->init()->joinStrings('.'); + let foundContext = $this.contexts->filter(c | $c.name == $contextName); let context = if ($contextName->isEmpty() || $foundContext->isEmpty(), | $this, | $foundContext->toOne()); - $context.columnByName($name, $failIfNotFound); }:TDSColumn[0..1]; columnByName(name:String[1], failIfNotFound:Boolean[1]){ @@ -2797,14 +2868,14 @@ Class meta::external::query::sql::transformation::queryToPure::SqlTransformConte }: TDSColumn[0..1]; alias(nameParts:String[*], alias:String[0..1], failIfNotFound:Boolean[1]){ - let name = $nameParts->last()->toOne(); - let contexts = if ($nameParts->size() > 1, | $this.context($nameParts->at(0)), | $this->concatenate($this.contexts)); + let contextName = $nameParts->at(0); + let contexts = if ($nameParts->size() > 1, | $this.context($contextName), | $this->concatenate($this.contexts)); let aliases = $contexts.aliases->removeDuplicates(); - let filter = if ($nameParts->size() > 1, - | {a:SQLColumnAlias[1] | $a.name == $name || $a.alias == $name}, + let filter = if ($nameParts->size() > 1 && $contextName != $this.name, + | {a:SQLColumnAlias[1] | ($a.alias->isEmpty() && $a.name == $name) || ($a.alias == $name)}, | {a:SQLColumnAlias[1] | $a.name == $name && $a.alias == $alias}); let found = $aliases->filter($filter); @@ -2923,5 +2994,10 @@ function meta::external::query::sql::transformation::queryToPure::getParameters( function meta::external::query::sql::transformation::queryToPure::debug(a:String[1], debug:DebugContext[1]):Any[0] { - if ($debug.debug, | println($debug.space + $a), | []); + debug({|$a}, $debug) +} + +function meta::external::query::sql::transformation::queryToPure::debug(f:FunctionDefinition<{->String[1]}>[1], debug:DebugContext[1]):Any[0] +{ + if ($debug.debug, | println($debug.space + $f->eval()), | []); } diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/tests/testTranspile.pure b/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/tests/testTranspile.pure index 1d745b94da8..4dcbce199cd 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/tests/testTranspile.pure +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/tests/testTranspile.pure @@ -157,6 +157,19 @@ function <> meta::external::query::sql::transformation::queryToPure:: }) } +function <> meta::external::query::sql::transformation::queryToPure::tests::testSelectWithTableAlias():Boolean[1] +{ + test( + 'SELECT t1."String" AS "str" FROM service."/service/service1" t1', + + {| FlatInput.all()->project( + [ x | $x.booleanIn, x | $x.integerIn, x | $x.floatIn, x | $x.decimalIn, x | $x.strictDateIn, x | $x.dateTimeIn, x | $x.stringIn ], + [ 'Boolean', 'Integer', 'Float', 'Decimal', 'StrictDate', 'DateTime', 'String' ]) + ->restrict('String')->renameColumns(pair('String', 'str')) + } + ) +} + function <> meta::external::query::sql::transformation::queryToPure::tests::testSelectColumnMultiTimes():Boolean[1] { test( @@ -174,7 +187,10 @@ function <> meta::external::query::sql::transformation::queryToPure:: function <> meta::external::query::sql::transformation::queryToPure::tests::testSelectColumnMultiTimesRealiasToExisting():Boolean[1] { test( - 'SELECT String as "str", String as "String" FROM service."/service/service1"', + [ + 'SELECT String as "str", String as "String" FROM service."/service/service1"', + 'SELECT "t1"."String" as "str", "t1".String as "String" FROM service."/service/service1" t1' + ], {| FlatInput.all()->project( [ x | $x.booleanIn, x | $x.integerIn, x | $x.floatIn, x | $x.decimalIn, x | $x.strictDateIn, x | $x.dateTimeIn, x | $x.stringIn ], @@ -185,18 +201,72 @@ function <> meta::external::query::sql::transformation::queryToPure:: }) } -function <> meta::external::query::sql::transformation::queryToPure::tests::testSelectColumnAliasedAsUnusedTableColumnName():Boolean[1] +function <> meta::external::query::sql::transformation::queryToPure::tests::testSelectColumnMultiTimesRealiasToExisting2():Boolean[1] { test( - 'SELECT Integer as "String" FROM service."/service/service1"', + [ + 'SELECT String as "str", String as "Integer" FROM service."/service/service1"', + 'SELECT "t1"."String" as "str", "t1".String as "Integer" FROM service."/service/service1" t1' + ], {| FlatInput.all()->project( [ x | $x.booleanIn, x | $x.integerIn, x | $x.floatIn, x | $x.decimalIn, x | $x.strictDateIn, x | $x.dateTimeIn, x | $x.stringIn ], - [ 'Boolean', 'Integer', 'Float', 'Decimal', 'StrictDate', 'DateTime', 'String' ]) - ->restrict('Integer')->renameColumns(pair('Integer', 'String')) + [ 'Boolean', 'Integer', 'Float', 'Decimal', 'StrictDate', 'DateTime', 'String' ])->project([ + col(row:TDSRow[1] | $row.getString('String'), 'str'), + col(row:TDSRow[1] | $row.getString('String'), 'Integer') + ]) }) } +function <> meta::external::query::sql::transformation::queryToPure::tests::testSelectColumnMultiTimesRealiasToExistingWithGroupBy():Boolean[1] +{ + test( + 'SELECT ' + + 't1.String AS "col1", ' + + 't1.String AS "col2", ' + + 't1.StrictDate AS "StrictDate", ' + + 't1.String AS "String", ' + + 'SUM(t1.Integer) AS "sum" ' + + 'FROM (select * from service."/service/service1") "t1" GROUP BY 3, 4', + + {| FlatInput.all()->project( + [ x | $x.booleanIn, x | $x.integerIn, x | $x.floatIn, x | $x.decimalIn, x | $x.strictDateIn, x | $x.dateTimeIn, x | $x.stringIn ], + [ 'Boolean', 'Integer', 'Float', 'Decimal', 'StrictDate', 'DateTime', 'String' ]) + ->extend([ + col(row:TDSRow[1] | $row.getString('String'), 'col1'), + col(row:TDSRow[1] | $row.getString('String'), 'col2'), + col(row:TDSRow[1] | $row.getStrictDate('StrictDate'), 'StrictDate_1'), + col(row:TDSRow[1] | $row.getString('String'), 'String_1') + ])->groupBy( + ['StrictDate_1', 'String_1', 'col1', 'col2'], + agg('sum', row | $row.getInteger('Integer'), y | $y->sum()) + )->renameColumns([ + pair('StrictDate_1', 'StrictDate'), + pair('String_1', 'String') + ])->restrict([ + 'col1', 'col2', 'StrictDate', 'String', 'sum' + ]) + }, false + ) +} + +function <> meta::external::query::sql::transformation::queryToPure::tests::selectStarFromRealisedColumnSubQuery():Boolean[1] +{ + test( + [ + 'SELECT * FROM (select String as "S" from service."/service/service1")', + 'SELECT t1.* FROM (select String as "S" from service."/service/service1") t1' + ], + + {| FlatInput.all()->project( + [ x | $x.booleanIn, x | $x.integerIn, x | $x.floatIn, x | $x.decimalIn, x | $x.strictDateIn, x | $x.dateTimeIn, x | $x.stringIn ], + [ 'Boolean', 'Integer', 'Float', 'Decimal', 'StrictDate', 'DateTime', 'String' ]) + ->restrict('String') + ->renameColumns(pair('String', 'S')) + } + ) +} + function <> meta::external::query::sql::transformation::queryToPure::tests::testSelectColumnMultiTimesGroupBy():Boolean[1] { test( @@ -204,8 +274,7 @@ function <> meta::external::query::sql::transformation::queryToPure:: {| FlatInput.all()->project( [ x | $x.booleanIn, x | $x.integerIn, x | $x.floatIn, x | $x.decimalIn, x | $x.strictDateIn, x | $x.dateTimeIn, x | $x.stringIn ], - [ 'Boolean', 'Integer', 'Float', 'Decimal', 'StrictDate', 'DateTime', 'String' ])->project([ - col(row:TDSRow[1] | $row.getString('String'), 'String'), + [ 'Boolean', 'Integer', 'Float', 'Decimal', 'StrictDate', 'DateTime', 'String' ])->extend([ col(row:TDSRow[1] | $row.getString('String'), 'str') ])->restrict(['String', 'str'])->distinct() }) @@ -626,7 +695,9 @@ function <> meta::external::query::sql::transformation::queryToPure:: {| FlatInput.all()->project( [ x | $x.booleanIn, x | $x.integerIn, x | $x.floatIn, x | $x.decimalIn, x | $x.strictDateIn, x | $x.dateTimeIn, x | $x.stringIn ], [ 'Boolean', 'Integer', 'Float', 'Decimal', 'StrictDate', 'DateTime', 'String' ] - )->renameColumns(pair('Boolean', 'bool')) + )->extend([ + col(row:TDSRow[1] | $row.getBoolean('Boolean'), 'bool') + ]) ->groupBy(['String', 'bool'], agg('sum', row | $row.getInteger('Integer'), y | $y->sum())) ->restrict(['String', 'sum', 'bool']) }, false) @@ -640,7 +711,9 @@ function <> meta::external::query::sql::transformation::queryToPure:: {| FlatInput.all()->project( [ x | $x.booleanIn, x | $x.integerIn, x | $x.floatIn, x | $x.decimalIn, x | $x.strictDateIn, x | $x.dateTimeIn, x | $x.stringIn ], [ 'Boolean', 'Integer', 'Float', 'Decimal', 'StrictDate', 'DateTime', 'String' ] - )->renameColumns(pair('Boolean', 'bool')) + )->extend([ + col(row:TDSRow[1] | $row.getBoolean('Boolean'), 'bool') + ]) ->groupBy(['String', 'bool'], agg('sum', row | $row.getInteger('Integer'), y | $y->sum())) ->restrict(['String', 'sum', 'bool']) }, false) @@ -730,6 +803,32 @@ function <> meta::external::query::sql::transformation::queryToPure:: }, false) } +function <> meta::external::query::sql::transformation::queryToPure::tests::testAggregationWithConstantSelectItemNoGroupBy():Boolean[1] +{ + test( + 'SELECT count("Integer") AS "Count", count("Float") AS "Float Count", \'abc\' AS "String", cast("Float" AS VARCHAR) AS "Float", Float AS "Original Float" from service."/service/service1"', + + {| FlatInput.all()->project( + [ x | $x.booleanIn, x | $x.integerIn, x | $x.floatIn, x | $x.decimalIn, x | $x.strictDateIn, x | $x.dateTimeIn, x | $x.stringIn ], + [ 'Boolean', 'Integer', 'Float', 'Decimal', 'StrictDate', 'DateTime', 'String' ]) + ->extend([ + col(row:TDSRow[1] | 'abc', 'String_1'), + col(row:TDSRow[1] | $row.getFloat('Float')->toString(), 'Float_1'), + col(row:TDSRow[1] | $row.getFloat('Float'), 'Original Float') + ]) + ->groupBy(['String_1', 'Float_1', 'Original Float'], [ + agg('Count', row | $row.getInteger('Integer'), y | $y->count()), + agg('Float Count', row | $row.getFloat('Float'), y | $y->count()) + ]) + ->renameColumns([ + pair('String_1', 'String'), + pair('Float_1', 'Float') + ]) + ->restrict(['Count', 'Float Count', 'String', 'Float', 'Original Float']) + }, false + ) +} + //HAVING function <> meta::external::query::sql::transformation::queryToPure::tests::testHaving():Boolean[1] { @@ -796,9 +895,9 @@ function <> meta::external::query::sql::transformation::queryToPure:: pair('DateTime', 'DateTime_table2'), pair('String', 'String_table2') ]), meta::relational::metamodel::join::JoinType.LEFT_OUTER, ['String']) - ->renameColumns([ - pair('String_table2', 'str') - ]) + ->extend( + col(row:TDSRow[1] | $row.getString('String_table2'), 'str') + ) ->groupBy([ 'Boolean_table1', 'Integer_table1', 'Float_table1', 'Decimal_table1', 'StrictDate_table1', 'DateTime_table1', 'String_table1', 'str' @@ -839,8 +938,8 @@ function <> meta::external::query::sql::transformation::queryToPure:: ' CAST(String AS DOUBLE PRECISION) AS "double", CAST(String AS NUMERIC) AS "numeric",' + ' CAST(String AS TIMESTAMP) AS "timestamp", CAST(Integer AS TEXT) AS "integerText", CAST(Integer AS VARCHAR) AS "integerString", CAST(Integer AS Integer) AS "expression",' + ' CAST(String AS VARCHAR(2)) AS "stringChars", CAST(Integer AS VARCHAR(2)) AS "integerStringChars",' + - ' CAST(Float AS NUMERIC) AS "floatNumeric", CAST(Decimal AS NUMERIC) AS "decimalNumeric", CAST(Decimal AS DOUBLE PRECISION) AS "decimalDoublePrecision",' + - ' CAST(Float AS DOUBLE PRECISION) AS "floatDoublePrecision", CAST(String AS NUMERIC(4, 2)) AS "numericParams" FROM service."/service/service1"', + ' CAST(Float AS NUMERIC) AS "floatNumeric", CAST(Decimal AS NUMERIC) AS "decimalNumeric", CAST(1 + 1.1 AS NUMERIC) AS "numberNumeric", CAST(Decimal AS DOUBLE PRECISION) AS "decimalDoublePrecision",' + + ' CAST(Float AS DOUBLE PRECISION) AS "floatDoublePrecision", CAST(1 + 1.1 AS DOUBLE PRECISION) AS "numberDoublePrecision", CAST(String AS NUMERIC(4, 2)) AS "numericParams" FROM service."/service/service1"', {| FlatInput.all()->project( [ x | $x.booleanIn, x | $x.integerIn, x | $x.floatIn, x | $x.decimalIn, x | $x.strictDateIn, x | $x.dateTimeIn, x | $x.stringIn ], @@ -864,8 +963,10 @@ function <> meta::external::query::sql::transformation::queryToPure:: col(row:TDSRow[1] | substring(toString($row.getInteger('Integer')), 1, 2), 'integerStringChars'), col(row:TDSRow[1] | toDecimal($row.getFloat('Float')), 'floatNumeric'), col(row:TDSRow[1] | $row.getDecimal('Decimal'), 'decimalNumeric'), + col(row:TDSRow[1] | toDecimal(1 + 1.1), 'numberNumeric'), col(row:TDSRow[1] | toFloat($row.getDecimal('Decimal')), 'decimalDoublePrecision'), col(row:TDSRow[1] | $row.getFloat('Float'), 'floatDoublePrecision'), + col(row:TDSRow[1] | toFloat(1 + 1.1), 'numberDoublePrecision'), col(row:TDSRow[1] | round(parseDecimal($row.getString('String')), 2), 'numericParams') ]) }) @@ -1189,6 +1290,40 @@ function <> meta::external::query::sql::transformation::queryToPure:: ])}, false) } +function <> meta::external::query::sql::transformation::queryToPure::tests::testJoinWithAliasRenamingInSubQueries():Boolean[1] +{ + test( + 'SELECT "t0"."String" AS "String", "t1"."measure" AS "sum" FROM (SELECT "t3"."String" AS "String" FROM service."/service/service1" "t3" GROUP BY 1) "t0" CROSS JOIN (SELECT SUM("t3"."Integer") AS "measure" FROM service."/service/service1" "Staples" HAVING (COUNT(1) > 0)) "t1"', + + {| FlatInput.all()->project( + [ x | $x.booleanIn, x | $x.integerIn, x | $x.floatIn, x | $x.decimalIn, x | $x.strictDateIn, x | $x.dateTimeIn, x | $x.stringIn ], + [ 'Boolean', 'Integer', 'Float', 'Decimal', 'StrictDate', 'DateTime', 'String' ]) + ->extend([ + col(row:TDSRow[1]|$row.getString('String'), 'String_1') + ]) + ->restrict('String_1')->distinct() + ->renameColumns(pair('String_1', 'String')) + ->renameColumns(pair('String', 'String_t0')) + ->join(FlatInput.all()->project( + [ x | $x.booleanIn, x | $x.integerIn, x | $x.floatIn, x | $x.decimalIn, x | $x.strictDateIn, x | $x.dateTimeIn, x | $x.stringIn ], + ['Boolean', 'Integer', 'Float', 'Decimal', 'StrictDate', 'DateTime', 'String' ]) + ->groupBy([], [ + agg('measure', row | $row.getInteger('Integer'), y | $y->sum()), + agg('COUNT(1)', row | 1, y | $y->count()) + ]) + ->filter(row|($row.getInteger('COUNT(1)') > 0)) + ->restrict('measure') + ->renameColumns(pair('measure', 'measure_t1')), + meta::relational::metamodel::join::JoinType.INNER, {row1:TDSRow[1], row2:TDSRow[1] | true}) + ->restrict(['String_t0', 'measure_t1']) + ->renameColumns([ + pair('String_t0', 'String'), + pair('measure_t1', 'sum') + ]) + }, false + ) +} + //UNION function <> meta::external::query::sql::transformation::queryToPure::tests::testUnion():Boolean[1] @@ -1211,6 +1346,42 @@ function <> meta::external::query::sql::transformation::queryToPure:: }) } +function <> meta::external::query::sql::transformation::queryToPure::tests::testSelectFromAliasedUnion():Boolean[1] +{ + test('SELECT 1 AS "Number of Records",' + + '"t0"."String" AS "String"' + + 'FROM (SELECT "t1"."String" AS "String"' + + ' FROM (' + + ' SELECT "s1"."Integer" AS "int",' + + ' \'Value\' AS "String"' + + ' FROM service."/service/service1" "s1") "t1"' + + ' UNION ALL' + + ' SELECT "s1"."String" AS "String"' + + ' FROM (SELECT "s1"."Integer" AS "int",' + + ' \'Value2\' AS "String"' + + ' FROM service."/service/service1" "s1") "t2") "t0" LIMIT 1000', + + {|meta::external::query::sql::transformation::queryToPure::tests::FlatInput.all() + ->project([x|$x.booleanIn, x|$x.integerIn, x|$x.floatIn, x|$x.decimalIn, x|$x.strictDateIn, x|$x.dateTimeIn, x|$x.stringIn], + ['Boolean', 'Integer', 'Float', 'Decimal', 'StrictDate', 'DateTime', 'String']) + ->project([ + col(row:TDSRow[1] |$row.getInteger('Integer'), 'int'), + col(row:TDSRow[1]| 'Value', 'String')]) + ->restrict('String') + ->concatenate(meta::external::query::sql::transformation::queryToPure::tests::FlatInput.all() + ->project([x|$x.booleanIn, x|$x.integerIn, x|$x.floatIn, x|$x.decimalIn, x|$x.strictDateIn, x|$x.dateTimeIn, x|$x.stringIn], + ['Boolean', 'Integer', 'Float', 'Decimal', 'StrictDate', 'DateTime', 'String']) + ->project([ + col(row:TDSRow[1]| $row.getInteger('Integer'), 'int'), + col(row:TDSRow[1]|'Value2', 'String')]) + ->restrict('String') + )->project([ + col(row:TDSRow[1]|1, 'Number of Records'), + col(row:TDSRow[1]| $row.getString('String'), 'String')]) + ->limit(1000)} + ) +} + //CURRENT TIME function <> meta::external::query::sql::transformation::queryToPure::tests::testCurrentTime():Boolean[1] { @@ -1328,7 +1499,10 @@ function <> meta::external::query::sql::transformation::queryToPure:: 'StrictDate + NULL + INTERVAL \'1 YEAR 3 WEEKS 2 DAYS\' AS "INTERVAL_ADD_NULL", ' + '(CAST(\'2023-01-01\' AS DATE) + 2 * INTERVAL \'1 DAY\') + 3 * INTERVAL \'2 DAY\' AS "INTERVAL_MIX", ' + 'StrictDate + EXTRACT(\'year\' FROM StrictDate) * INTERVAL \'2 YEAR 3 DAYS\' AS "INTERVAL_MIX2", ' + - 'CAST((DATE_TRUNC( \'DAY\', CAST("StrictDate" AS DATE) ) + (EXTRACT(DOW FROM "StrictDate") * INTERVAL \'1 DAY\')) AS DATE) AS "INTERVAL_MIX3" ' + + 'CAST((DATE_TRUNC( \'DAY\', CAST("StrictDate" AS DATE) ) + (EXTRACT(DOW FROM "StrictDate") * INTERVAL \'1 DAY\')) AS DATE) AS "INTERVAL_MIX3", ' + + 'StrictDate - DateTime AS "DATE_SUBTRACT", ' + + 'StrictDate - INTERVAL \'1 DAY\' AS "INTERVAL_SUBTRACT", ' + + 'StrictDate - \'2023-01-01\' AS "STRING_SUBSTRACT"' + 'FROM service."/service/service1"', {| @@ -1345,7 +1519,10 @@ function <> meta::external::query::sql::transformation::queryToPure:: col(row:TDSRow[1] | []->cast(@StrictDate), 'INTERVAL_ADD_NULL'), col(row:TDSRow[1] | parseDate('2023-01-01')->adjust(2 * 1, DurationUnit.DAYS)->adjust(3 * 2, DurationUnit.DAYS), 'INTERVAL_MIX'), col(row:TDSRow[1] | $row.getStrictDate('StrictDate')->adjust(year($row.getStrictDate('StrictDate')) * 2, DurationUnit.YEARS)->adjust(year($row.getStrictDate('StrictDate')) * 3, DurationUnit.DAYS), 'INTERVAL_MIX2'), - col(row:TDSRow[1] | $row.getStrictDate('StrictDate')->firstHourOfDay()->adjust(($row.getStrictDate('StrictDate')->dayOfWeekNumber() * 1), DurationUnit.DAYS), 'INTERVAL_MIX3') + col(row:TDSRow[1] | $row.getStrictDate('StrictDate')->firstHourOfDay()->adjust(($row.getStrictDate('StrictDate')->dayOfWeekNumber() * 1), DurationUnit.DAYS), 'INTERVAL_MIX3'), + col(row:TDSRow[1] | dateDiff($row.getStrictDate('StrictDate'), $row.getDateTime('DateTime'), DurationUnit.DAYS), 'DATE_SUBTRACT'), + col(row:TDSRow[1] | adjust($row.getStrictDate('StrictDate'), -1, DurationUnit.DAYS), 'INTERVAL_SUBTRACT'), + col(row:TDSRow[1] | dateDiff($row.getStrictDate('StrictDate'), parseDate('2023-01-01'), DurationUnit.DAYS), 'STRING_SUBSTRACT') ]) }) } @@ -1386,8 +1563,8 @@ function <> meta::external::query::sql::transformation::queryToPure:: col(row:TDSRow[1] | rtrim($row.getString('String')), 'RTRIM'), col(row:TDSRow[1] | rtrim($row.getString('String')), 'RTRIM2'), col(row:TDSRow[1] | hash($row.getString('String'), HashType.SHA256), 'SHA256'), - col(row:TDSRow[1] | splitPart($row.getString('String'), ',', 2), 'SPLITPART'), - col(row:TDSRow[1] | splitPart($row.getString('String'), ',', $row.getInteger('Integer') + 1), 'SPLITPART2'), + col(row:TDSRow[1] | splitPart($row.getString('String'), ',', 0), 'SPLITPART'), + col(row:TDSRow[1] | splitPart($row.getString('String'), ',', $row.getInteger('Integer') - 1), 'SPLITPART2'), col(row:TDSRow[1] | substring($row.getString('String'), 1), 'SUBSTRING'), col(row:TDSRow[1] | substring($row.getString('String'), 1, 2), 'SUBSTR'), col(row:TDSRow[1] | trim($row.getString('String')), 'TRIM'), @@ -1582,7 +1759,9 @@ function <> meta::external::query::sql::transformation::queryToPure:: ->project( [ x | $x.booleanIn, x | $x.integerIn, x | $x.floatIn, x | $x.decimalIn, x | $x.strictDateIn, x | $x.dateTimeIn, x | $x.stringIn ], [ 'Boolean', 'Integer', 'Float', 'Decimal', 'StrictDate', 'DateTime', 'String' ]) - ->renameColumns(pair('String', 'string')) + ->extend([ + col(row:TDSRow[1] | $row.getString('String'), 'string') + ]) ->olapGroupBy(['String'], asc('Integer'), y | $y->meta::pure::functions::math::olap::rowNumber(), 'ROW') ->olapGroupBy(['String'], desc('Integer'), y | $y->meta::pure::functions::math::olap::denseRank(), 'DENSE RANK') ->olapGroupBy(['String'], asc('Integer'), y | $y->meta::pure::functions::math::olap::rank(), 'RANK') @@ -1983,23 +2162,25 @@ function meta::external::query::sql::transformation::queryToPure::tests::testSou ] } -function meta::external::query::sql::transformation::queryToPure::tests::test(sql:String[1], expected:FunctionDefinition[1]):Boolean[1] +function meta::external::query::sql::transformation::queryToPure::tests::test(sqls:String[*], expected:FunctionDefinition[1]):Boolean[1] { - test($sql, $expected, true); + test($sqls, $expected, true); } -function meta::external::query::sql::transformation::queryToPure::tests::test(sql:String[1], expected:FunctionDefinition[1], assertJSON:Boolean[1]):Boolean[1] +function meta::external::query::sql::transformation::queryToPure::tests::test(sqls:String[*], expected:FunctionDefinition[1], assertJSON:Boolean[1]):Boolean[1] { - test($sql, $expected, testSources(), false, true, $assertJSON); + test($sqls, $expected, testSources(), false, true, $assertJSON); } -function meta::external::query::sql::transformation::queryToPure::tests::test(sql:String[1], expected:FunctionDefinition[1], sources:SQLSource[*], scopeWithFrom:Boolean[1], assertLambda:Boolean[1], assertJSON:Boolean[1]):Boolean[1] +function meta::external::query::sql::transformation::queryToPure::tests::test(sqls:String[*], expected:FunctionDefinition[1], sources:SQLSource[*], scopeWithFrom:Boolean[1], assertLambda:Boolean[1], assertJSON:Boolean[1]):Boolean[1] { - let sqlTransformContext = $sql->processQuery($sources, $scopeWithFrom); - let actual = $sqlTransformContext.lambda(); + $sqls->forAll(sql | + let sqlTransformContext = $sql->processQuery($sources, $scopeWithFrom); + let actual = $sqlTransformContext.lambda(); - if ($assertLambda, | assertLambdaEquals($expected, $actual), | true); - if ($assertJSON, | assertLambdaJSONEquals($expected, $actual), | true); + if ($assertLambda, | assertLambdaEquals($expected, $actual), | true); + if ($assertJSON, | assertLambdaJSONEquals($expected, $actual), | true); + ) } function meta::external::query::sql::transformation::queryToPure::tests::processQuery(sql: String[1]): SqlTransformContext[1] From bc6cc1a220082bd1637638046cadc67ee81870c4 Mon Sep 17 00:00:00 2001 From: Zhang Lizhi Date: Fri, 20 Oct 2023 01:48:43 +0800 Subject: [PATCH 29/80] Persistence Component: Bulk Load Support for Big Query (#2294) * Bug Fix: Bitemporal milestoning Derive Main schema removes the VALID_FROM/VALID_TRHOUGH field if the name matches with source specified VALID_FROM/VALID_TRHOUGH fields * Bug Fix: Bitemporal milestoning Schema Evolution must ignore user provided validity fields * Adding code for concurrent safety feature * Adding test for Multi Ingest Mode with concurrent Safety * Adding tests for concurrent safety * Code Clean up * Bug Fix: Bitemporal temp tables must be deleted after usage * Update readme and code review comments * Fix typo * Fix typos in readme * Bug Fix: Empty Batch Handling in Unitemp Snapshot * Bug Fix: Code review comments * Implement StagedFilesDatasetReference * Implement StagedFilesSelection * Support for Empty Batch Handling in Unitemporal Snapshot * Support for FailEmptyBatch strategy in Unitemporal Snapshot * Enrich datasets to add additionalDatasetproperties every where * Add tests for Empty Data handling * Support ICEBERG_TABLE_2022 for Iceberg tables * Implement bulk load for h2 * Add missing datasetAdditionalProperties in BigQueryHelper * Implement executor flow and add end-to-end test * Add test * Add support for digest udf in h2 and add tests * Clean up * Add file format and validation for file format and add tests * Add missing statement * Fix typo in year * Fix comments * Add H2 MD5 * Change file format interface * Change stats * Change stats - make snowflake always return stats no matter success or failure * Implement bulk load in using copy and insert + modify interface for capabilities * Add Support for metadata for BulkLoad Task * Refactor Digest Generation Strategy * Implement bulk load for big query * Addressed Code Review Comments * Clean up * Add basic tests for bulk load for big query * Refactor Code to rename AppendLog to BulkLoad * Add default bulkLoad Batchid * Refactor Append Log table name * Resolve conflicts * Add digest udf and more tests * Fix digest problem * Change H2 digest algo * Fix tests * Fix typo * Refactor file format and load options * Refactor dataset, selection, reference logic * Fix other comments * Fix big query bulk load ingestor flow and add end-to-end tests * Add rows with error handling and test * Address comments * Bulk Load Batch ID and Task ID & PK Validation (#11) * Add PK validation in bulk load * Resolve conflict * Remove unnecessary delete * Introduce bulk load batch id and bulk load task id * Rename variable * Address Code Review Comments --------- Co-authored-by: Ashutosh Co-authored-by: prasar-ashutosh --- .../components/common/FileFormat.java | 2 +- .../LoadOptionsAbstract.java} | 27 +- .../DeriveMainDatasetSchemaFromStaging.java | 2 +- .../logicalplan/LogicalPlanFactory.java | 27 +- .../logicalplan/values/DigestUdfAbstract.java | 5 + .../logicalplan/values/FunctionName.java | 3 +- .../components/planner/AppendOnlyPlanner.java | 6 +- .../planner/BitemporalDeltaPlanner.java | 6 +- .../components/planner/BitemporalPlanner.java | 6 +- .../planner/BitemporalSnapshotPlanner.java | 6 +- .../components/planner/BulkLoadPlanner.java | 125 ++++- .../planner/NontemporalDeltaPlanner.java | 6 +- .../planner/NontemporalSnapshotPlanner.java | 12 +- .../components/planner/Planner.java | 8 +- .../components/planner/Planners.java | 31 +- .../planner/UnitemporalDeltaPlanner.java | 6 +- .../planner/UnitemporalPlanner.java | 7 +- .../planner/UnitemporalSnapshotPlanner.java | 8 +- .../util/BulkLoadMetadataDatasetAbstract.java | 2 +- .../util/BulkLoadMetadataUtils.java | 31 +- .../components/util/Capability.java | 1 + .../transformer/AbstractTransformer.java | 1 - .../transformer/LogicalPlanVisitor.java | 2 - .../components/transformer/Transformer.java | 2 - .../relational/ansi/AnsiSqlSink.java | 3 - .../util/BulkLoadDatasetUtilsAnsiTest.java | 4 +- .../util/BulkLoadDatasetUtilsTest.java | 1 - .../pom.xml | 26 + .../relational/bigquery/BigQuerySink.java | 53 ++ .../bigquery/executor/BigQueryExecutor.java | 14 + .../bigquery/executor/BigQueryHelper.java | 102 ++-- .../executor/BigQueryTransactionManager.java | 19 +- ...yStagedFilesDatasetPropertiesAbstract.java | 39 ++ .../bigquery/sql/visitor/CopyVisitor.java | 42 ++ .../sql/visitor/DigestUdfVisitor.java | 40 ++ .../StagedFilesDatasetReferenceVisitor.java | 76 +++ .../visitor/StagedFilesDatasetVisitor.java} | 13 +- .../visitor/StagedFilesFieldValueVisitor.java | 36 ++ .../visitor/StagedFilesSelectionVisitor.java | 33 ++ .../expressions/table/StagedFilesTable.java | 111 ++++ .../schemaops/statements/CopyStatement.java | 101 ++++ .../schemaops/values/StagedFilesField.java | 69 +++ .../components/e2e/BulkLoadExecutorTest.java | 195 +++++++ .../components/e2e/BulkLoadGeneratorTest.java | 138 +++++ .../components/ingestmode/BulkLoadTest.java | 478 ++++++++++++++++++ .../BulkLoadDatasetUtilsBigQueryTest.java | 4 +- .../expected/bulk_load/expected_table1.csv | 7 + .../expected/bulk_load/expected_table2.csv | 4 + .../resources/input/bulk_load/bad_file.csv | 3 + .../input/bulk_load/staged_file1.csv} | 0 .../input/bulk_load/staged_file2.csv | 3 + .../input/bulk_load/staged_file3.csv | 1 + .../api/RelationalGeneratorAbstract.java | 14 +- .../api/RelationalIngestorAbstract.java | 24 +- .../relational/sqldom/common/Clause.java | 5 +- .../sqldom/common/FunctionName.java | 3 +- .../relational/h2/H2DigestUtil.java | 67 ++- .../components/relational/h2/H2Sink.java | 4 + ...2StagedFilesDatasetPropertiesAbstract.java | 2 +- .../components/H2DigestUtilTest.java | 32 ++ .../ingestmode/bulkload/BulkLoadTest.java | 266 ++++++++-- .../bulk-load/expected/expected_table1.csv | 6 +- .../bulk-load/expected/expected_table2.csv | 6 +- .../bulk-load/expected/expected_table3.csv | 6 +- .../bulk-load/expected/expected_table4.csv | 6 +- .../bulk-load/expected/expected_table5.csv | 9 +- .../relational/snowflake/SnowflakeSink.java | 37 +- .../components/ingestmode/BulkLoadTest.java | 51 +- .../BulkLoadDatasetUtilsSnowflakeTest.java | 4 +- .../NontemporalSnapshotTestCases.java | 2 +- 70 files changed, 2218 insertions(+), 273 deletions(-) rename legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/{logicalplan/values/BulkLoadBatchIdValueAbstract.java => common/LoadOptionsAbstract.java} (62%) create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/logicalplan/datasets/BigQueryStagedFilesDatasetPropertiesAbstract.java create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sql/visitor/CopyVisitor.java create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sql/visitor/DigestUdfVisitor.java create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sql/visitor/StagedFilesDatasetReferenceVisitor.java rename legend-engine-xts-persistence/legend-engine-xt-persistence-component/{legend-engine-xt-persistence-component-relational-ansi/src/main/java/org/finos/legend/engine/persistence/components/relational/ansi/sql/visitors/BulkLoadBatchIdValueVisitor.java => legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sql/visitor/StagedFilesDatasetVisitor.java} (65%) create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sql/visitor/StagedFilesFieldValueVisitor.java create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sql/visitor/StagedFilesSelectionVisitor.java create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sqldom/schemaops/expressions/table/StagedFilesTable.java create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sqldom/schemaops/statements/CopyStatement.java create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sqldom/schemaops/values/StagedFilesField.java create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/java/org/finos/legend/engine/persistence/components/e2e/BulkLoadExecutorTest.java create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/java/org/finos/legend/engine/persistence/components/e2e/BulkLoadGeneratorTest.java create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/BulkLoadTest.java create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/expected/bulk_load/expected_table1.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/expected/bulk_load/expected_table2.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/bulk_load/bad_file.csv rename legend-engine-xts-persistence/legend-engine-xt-persistence-component/{legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bulk-load/input/staged_file5.csv => legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/bulk_load/staged_file1.csv} (100%) create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/bulk_load/staged_file2.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/bulk_load/staged_file3.csv create mode 100644 legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/java/org/finos/legend/engine/persistence/components/H2DigestUtilTest.java diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/common/FileFormat.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/common/FileFormat.java index c73082518ed..75cf32a3a55 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/common/FileFormat.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/common/FileFormat.java @@ -19,5 +19,5 @@ public enum FileFormat CSV, JSON, AVRO, - PARQUET + PARQUET; } diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/logicalplan/values/BulkLoadBatchIdValueAbstract.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/common/LoadOptionsAbstract.java similarity index 62% rename from legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/logicalplan/values/BulkLoadBatchIdValueAbstract.java rename to legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/common/LoadOptionsAbstract.java index 9e7b5001aad..c299b0b7aa5 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/logicalplan/values/BulkLoadBatchIdValueAbstract.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/common/LoadOptionsAbstract.java @@ -12,20 +12,33 @@ // See the License for the specific language governing permissions and // limitations under the License. -package org.finos.legend.engine.persistence.components.logicalplan.values; +package org.finos.legend.engine.persistence.components.common; -import static org.immutables.value.Value.Immutable; -import static org.immutables.value.Value.Style; +import org.immutables.value.Value; -@Immutable -@Style( +import java.util.Optional; + +@Value.Immutable +@Value.Style( typeAbstract = "*Abstract", typeImmutable = "*", jdkOnly = true, optionalAcceptNullable = true, strictBuilder = true ) -public interface BulkLoadBatchIdValueAbstract extends Value +public interface LoadOptionsAbstract { - BulkLoadBatchIdValue INSTANCE = BulkLoadBatchIdValue.builder().build(); + Optional fieldDelimiter(); + + Optional encoding(); + + Optional nullMarker(); + + Optional quote(); + + Optional skipLeadingRows(); + + Optional maxBadRecords(); + + Optional compression(); } diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/ingestmode/DeriveMainDatasetSchemaFromStaging.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/ingestmode/DeriveMainDatasetSchemaFromStaging.java index cf333ca3b41..b92a06436fc 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/ingestmode/DeriveMainDatasetSchemaFromStaging.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/ingestmode/DeriveMainDatasetSchemaFromStaging.java @@ -149,7 +149,7 @@ public Dataset visitBulkLoad(BulkLoadAbstract bulkLoad) } Field batchIdField = Field.builder() .name(bulkLoad.batchIdField()) - .type(FieldType.of(DataType.VARCHAR, Optional.empty(), Optional.empty())) + .type(FieldType.of(DataType.INT, Optional.empty(), Optional.empty())) .primaryKey(false) .build(); mainSchemaFields.add(batchIdField); diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/logicalplan/LogicalPlanFactory.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/logicalplan/LogicalPlanFactory.java index 33ae2fcad34..b16e938fbc8 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/logicalplan/LogicalPlanFactory.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/logicalplan/LogicalPlanFactory.java @@ -15,7 +15,8 @@ package org.finos.legend.engine.persistence.components.logicalplan; import org.finos.legend.engine.persistence.components.common.Datasets; -import org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition; +import org.finos.legend.engine.persistence.components.ingestmode.BulkLoad; +import org.finos.legend.engine.persistence.components.ingestmode.IngestMode; import org.finos.legend.engine.persistence.components.logicalplan.datasets.CsvExternalDatasetReference; import org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset; import org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection; @@ -32,12 +33,13 @@ import org.finos.legend.engine.persistence.components.logicalplan.values.StringValue; import org.finos.legend.engine.persistence.components.logicalplan.values.TabularValues; import org.finos.legend.engine.persistence.components.logicalplan.values.Value; +import org.finos.legend.engine.persistence.components.util.BulkLoadMetadataDataset; +import org.finos.legend.engine.persistence.components.util.BulkLoadMetadataUtils; import org.finos.legend.engine.persistence.components.util.LogicalPlanUtils; import org.finos.legend.engine.persistence.components.util.MetadataDataset; import org.finos.legend.engine.persistence.components.util.MetadataUtils; import java.util.List; -import java.util.Optional; public class LogicalPlanFactory { @@ -91,14 +93,23 @@ public static LogicalPlan getLogicalPlanForConstantStats(String stats, Long valu .build(); } - public static LogicalPlan getLogicalPlanForNextBatchId(Datasets datasets) + public static LogicalPlan getLogicalPlanForNextBatchId(Datasets datasets, IngestMode ingestMode) { StringValue mainTable = StringValue.of(datasets.mainDataset().datasetReference().name().orElseThrow(IllegalStateException::new)); - MetadataDataset metadataDataset = datasets.metadataDataset().isPresent() - ? datasets.metadataDataset().get() - : MetadataDataset.builder().build(); - MetadataUtils metadataUtils = new MetadataUtils(metadataDataset); - Selection selection = metadataUtils.getBatchId(mainTable).selection(); + Selection selection; + if (ingestMode instanceof BulkLoad) + { + BulkLoadMetadataDataset bulkLoadMetadataDataset = datasets.bulkLoadMetadataDataset().orElse(BulkLoadMetadataDataset.builder().build()); + BulkLoadMetadataUtils bulkLoadMetadataUtils = new BulkLoadMetadataUtils(bulkLoadMetadataDataset); + selection = bulkLoadMetadataUtils.getBatchId(mainTable).selection(); + } + else + { + MetadataDataset metadataDataset = datasets.metadataDataset().orElse(MetadataDataset.builder().build()); + MetadataUtils metadataUtils = new MetadataUtils(metadataDataset); + selection = metadataUtils.getBatchId(mainTable).selection(); + } + return LogicalPlan.builder().addOps(selection).build(); } diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/logicalplan/values/DigestUdfAbstract.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/logicalplan/values/DigestUdfAbstract.java index 06f153770df..e6c35ff9c7b 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/logicalplan/values/DigestUdfAbstract.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/logicalplan/values/DigestUdfAbstract.java @@ -14,7 +14,10 @@ package org.finos.legend.engine.persistence.components.logicalplan.values; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset; + import java.util.List; +import java.util.Optional; @org.immutables.value.Value.Immutable @org.immutables.value.Value.Style( @@ -32,4 +35,6 @@ public interface DigestUdfAbstract extends Value List fieldNames(); List values(); + + Optional dataset(); } diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/logicalplan/values/FunctionName.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/logicalplan/values/FunctionName.java index 37e611e7ee9..706830f613f 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/logicalplan/values/FunctionName.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/logicalplan/values/FunctionName.java @@ -37,5 +37,6 @@ public enum FunctionName GENERATE_ARRAY, PARSE_DATETIME, OBJECT_CONSTRUCT, - TO_VARIANT; + TO_VARIANT, + TO_JSON; } diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/AppendOnlyPlanner.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/AppendOnlyPlanner.java index 21a21628db3..0476ee62baf 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/AppendOnlyPlanner.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/AppendOnlyPlanner.java @@ -60,9 +60,9 @@ class AppendOnlyPlanner extends Planner { private final Optional dataSplitInRangeCondition; - AppendOnlyPlanner(Datasets datasets, AppendOnly ingestMode, PlannerOptions plannerOptions) + AppendOnlyPlanner(Datasets datasets, AppendOnly ingestMode, PlannerOptions plannerOptions, Set capabilities) { - super(datasets, ingestMode, plannerOptions); + super(datasets, ingestMode, plannerOptions, capabilities); // validate ingestMode.deduplicationStrategy().accept(new ValidatePrimaryKeys(primaryKeys, this::validatePrimaryKeysIsEmpty, @@ -83,7 +83,7 @@ protected AppendOnly ingestMode() } @Override - public LogicalPlan buildLogicalPlanForIngest(Resources resources, Set capabilities) + public LogicalPlan buildLogicalPlanForIngest(Resources resources) { List fieldsToSelect = new ArrayList<>(stagingDataset().schemaReference().fieldValues()); List fieldsToInsert = new ArrayList<>(stagingDataset().schemaReference().fieldValues()); diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/BitemporalDeltaPlanner.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/BitemporalDeltaPlanner.java index d3b06d47a4c..93a97abfec8 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/BitemporalDeltaPlanner.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/BitemporalDeltaPlanner.java @@ -105,9 +105,9 @@ class BitemporalDeltaPlanner extends BitemporalPlanner private List primaryKeyFieldsAndFromFieldForSelection; private List dataFields; - BitemporalDeltaPlanner(Datasets datasets, BitemporalDelta ingestMode, PlannerOptions plannerOptions) + BitemporalDeltaPlanner(Datasets datasets, BitemporalDelta ingestMode, PlannerOptions plannerOptions, Set capabilities) { - super(datasets, ingestMode, plannerOptions); + super(datasets, ingestMode, plannerOptions, capabilities); if (ingestMode().validityMilestoning().validityDerivation() instanceof SourceSpecifiesFromDateTime && ingestMode().deduplicationStrategy() instanceof FilterDuplicates) { @@ -201,7 +201,7 @@ protected BitemporalDelta ingestMode() } @Override - public LogicalPlan buildLogicalPlanForIngest(Resources resources, Set capabilities) + public LogicalPlan buildLogicalPlanForIngest(Resources resources) { List operations = new ArrayList<>(); diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/BitemporalPlanner.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/BitemporalPlanner.java index baff665cf4b..61745fad675 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/BitemporalPlanner.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/BitemporalPlanner.java @@ -25,17 +25,19 @@ import org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset; import org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue; import org.finos.legend.engine.persistence.components.logicalplan.values.Value; +import org.finos.legend.engine.persistence.components.util.Capability; import org.finos.legend.engine.persistence.components.util.LogicalPlanUtils; import java.util.ArrayList; import java.util.List; import java.util.Optional; +import java.util.Set; abstract class BitemporalPlanner extends UnitemporalPlanner { - BitemporalPlanner(Datasets datasets, BitemporalMilestoned bitemporalMilestoned, PlannerOptions plannerOptions) + BitemporalPlanner(Datasets datasets, BitemporalMilestoned bitemporalMilestoned, PlannerOptions plannerOptions, Set capabilities) { - super(datasets, bitemporalMilestoned, plannerOptions); + super(datasets, bitemporalMilestoned, plannerOptions, capabilities); // validate String targetValidDateTimeFrom = bitemporalMilestoned.validityMilestoning().accept(EXTRACT_TARGET_VALID_DATE_TIME_FROM); diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/BitemporalSnapshotPlanner.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/BitemporalSnapshotPlanner.java index 854d0cceeb4..1d52c6bdeea 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/BitemporalSnapshotPlanner.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/BitemporalSnapshotPlanner.java @@ -45,9 +45,9 @@ class BitemporalSnapshotPlanner extends BitemporalPlanner { - BitemporalSnapshotPlanner(Datasets datasets, BitemporalSnapshot ingestMode, PlannerOptions plannerOptions) + BitemporalSnapshotPlanner(Datasets datasets, BitemporalSnapshot ingestMode, PlannerOptions plannerOptions, Set capabilities) { - super(datasets, ingestMode, plannerOptions); + super(datasets, ingestMode, plannerOptions, capabilities); // validate @@ -67,7 +67,7 @@ protected BitemporalSnapshot ingestMode() } @Override - public LogicalPlan buildLogicalPlanForIngest(Resources resources, Set capabilities) + public LogicalPlan buildLogicalPlanForIngest(Resources resources) { List> keyValuePairs = keyValuesForMilestoningUpdate(); diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/BulkLoadPlanner.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/BulkLoadPlanner.java index 27cc89caa0f..8a49dd3a5fe 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/BulkLoadPlanner.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/BulkLoadPlanner.java @@ -26,7 +26,11 @@ import org.finos.legend.engine.persistence.components.ingestmode.digest.UDFBasedDigestGenStrategyAbstract; import org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan; import org.finos.legend.engine.persistence.components.logicalplan.conditions.Equals; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetDefinition; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.Field; import org.finos.legend.engine.persistence.components.logicalplan.datasets.StagedFilesSelection; +import org.finos.legend.engine.persistence.components.logicalplan.operations.Drop; +import org.finos.legend.engine.persistence.components.logicalplan.operations.Insert; import org.finos.legend.engine.persistence.components.logicalplan.values.FunctionImpl; import org.finos.legend.engine.persistence.components.logicalplan.values.FunctionName; import org.finos.legend.engine.persistence.components.logicalplan.values.All; @@ -38,12 +42,10 @@ import org.finos.legend.engine.persistence.components.logicalplan.operations.Create; import org.finos.legend.engine.persistence.components.logicalplan.operations.Copy; import org.finos.legend.engine.persistence.components.logicalplan.operations.Operation; -import org.finos.legend.engine.persistence.components.logicalplan.operations.Insert; import org.finos.legend.engine.persistence.components.logicalplan.values.DigestUdf; import org.finos.legend.engine.persistence.components.logicalplan.values.Value; import org.finos.legend.engine.persistence.components.logicalplan.values.BatchStartTimestamp; import org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue; -import org.finos.legend.engine.persistence.components.logicalplan.values.BulkLoadBatchIdValue; import org.finos.legend.engine.persistence.components.util.BulkLoadMetadataDataset; import org.finos.legend.engine.persistence.components.util.BulkLoadMetadataUtils; import org.finos.legend.engine.persistence.components.util.Capability; @@ -53,26 +55,53 @@ import java.util.stream.Collectors; import static org.finos.legend.engine.persistence.components.common.StatisticName.ROWS_INSERTED; +import static org.finos.legend.engine.persistence.components.util.LogicalPlanUtils.TEMP_DATASET_BASE_NAME; +import static org.finos.legend.engine.persistence.components.util.LogicalPlanUtils.UNDERSCORE; class BulkLoadPlanner extends Planner { + private boolean transformWhileCopy; + private Dataset tempDataset; private StagedFilesDataset stagedFilesDataset; - private BulkLoadMetadataDataset bulkLoadMetadataDataset; + private Optional bulkLoadTaskIdValue; - BulkLoadPlanner(Datasets datasets, BulkLoad ingestMode, PlannerOptions plannerOptions) + BulkLoadPlanner(Datasets datasets, BulkLoad ingestMode, PlannerOptions plannerOptions, Set capabilities) { - super(datasets, ingestMode, plannerOptions); + super(datasets, ingestMode, plannerOptions, capabilities); // validation + validateNoPrimaryKeysInStageAndMain(); if (!(datasets.stagingDataset() instanceof StagedFilesDataset)) { throw new IllegalArgumentException("Only StagedFilesDataset are allowed under Bulk Load"); } + bulkLoadTaskIdValue = plannerOptions.bulkLoadTaskIdValue(); stagedFilesDataset = (StagedFilesDataset) datasets.stagingDataset(); bulkLoadMetadataDataset = bulkLoadMetadataDataset().orElseThrow(IllegalStateException::new); + + transformWhileCopy = capabilities.contains(Capability.TRANSFORM_WHILE_COPY); + if (!transformWhileCopy) + { + tempDataset = DatasetDefinition.builder() + .schema(datasets.stagingDataset().schema()) + .database(datasets.mainDataset().datasetReference().database()) + .group(datasets.mainDataset().datasetReference().group()) + .name(datasets.mainDataset().datasetReference().name().orElseThrow((IllegalStateException::new)) + UNDERSCORE + TEMP_DATASET_BASE_NAME) + .alias(TEMP_DATASET_BASE_NAME) + .build(); + } + } + + private void validateNoPrimaryKeysInStageAndMain() + { + List primaryKeysFromMain = mainDataset().schema().fields().stream().filter(Field::primaryKey).map(Field::name).collect(Collectors.toList()); + validatePrimaryKeysIsEmpty(primaryKeysFromMain); + + List primaryKeysFromStage = stagingDataset().schema().fields().stream().filter(Field::primaryKey).map(Field::name).collect(Collectors.toList()); + validatePrimaryKeysIsEmpty(primaryKeysFromStage); } @Override @@ -82,46 +111,114 @@ protected BulkLoad ingestMode() } @Override - public LogicalPlan buildLogicalPlanForIngest(Resources resources, Set capabilities) + public LogicalPlan buildLogicalPlanForIngest(Resources resources) + { + if (transformWhileCopy) + { + return buildLogicalPlanForTransformWhileCopy(resources); + } + else + { + return buildLogicalPlanForCopyAndTransform(resources); + } + } + + private LogicalPlan buildLogicalPlanForTransformWhileCopy(Resources resources) { List fieldsToSelect = LogicalPlanUtils.extractStagedFilesFieldValues(stagingDataset()); List fieldsToInsert = new ArrayList<>(stagingDataset().schemaReference().fieldValues()); - // Digest Generation + // Add digest ingestMode().digestGenStrategy().accept(new DigestGeneration(mainDataset(), stagingDataset(), fieldsToSelect, fieldsToInsert)); // Add batch_id field fieldsToInsert.add(FieldValue.builder().datasetRef(mainDataset().datasetReference()).fieldName(ingestMode().batchIdField()).build()); - fieldsToSelect.add(BulkLoadBatchIdValue.INSTANCE); + fieldsToSelect.add(new BulkLoadMetadataUtils(bulkLoadMetadataDataset).getBatchId(StringValue.of(mainDataset().datasetReference().name().orElseThrow(IllegalStateException::new)))); + // Add auditing if (ingestMode().auditing().accept(AUDIT_ENABLED)) { - BatchStartTimestamp batchStartTimestamp = BatchStartTimestamp.INSTANCE; - fieldsToSelect.add(batchStartTimestamp); - String auditField = ingestMode().auditing().accept(AuditingVisitors.EXTRACT_AUDIT_FIELD).orElseThrow(IllegalStateException::new); - fieldsToInsert.add(FieldValue.builder().datasetRef(mainDataset().datasetReference()).fieldName(auditField).build()); + addAuditing(fieldsToInsert, fieldsToSelect); } Dataset selectStage = StagedFilesSelection.builder().source(stagedFilesDataset).addAllFields(fieldsToSelect).build(); return LogicalPlan.of(Collections.singletonList(Copy.of(mainDataset(), selectStage, fieldsToInsert))); } + private LogicalPlan buildLogicalPlanForCopyAndTransform(Resources resources) + { + List operations = new ArrayList<>(); + + + // Operation 1: Copy into a temp table + List fieldsToSelectFromStage = LogicalPlanUtils.extractStagedFilesFieldValues(stagingDataset()); + Dataset selectStage = StagedFilesSelection.builder().source(stagedFilesDataset).addAllFields(fieldsToSelectFromStage).build(); + operations.add(Copy.of(tempDataset, selectStage, fieldsToSelectFromStage)); + + + // Operation 2: Transfer from temp table into target table, adding extra columns at the same time + List fieldsToSelect = new ArrayList<>(tempDataset.schemaReference().fieldValues()); + List fieldsToInsertIntoMain = new ArrayList<>(tempDataset.schemaReference().fieldValues()); + + // Add digest + ingestMode().digestGenStrategy().accept(new DigestGeneration(mainDataset(), tempDataset, fieldsToSelect, fieldsToInsertIntoMain)); + + // Add batch_id field + fieldsToInsertIntoMain.add(FieldValue.builder().datasetRef(mainDataset().datasetReference()).fieldName(ingestMode().batchIdField()).build()); + fieldsToSelect.add(new BulkLoadMetadataUtils(bulkLoadMetadataDataset).getBatchId(StringValue.of(mainDataset().datasetReference().name().orElseThrow(IllegalStateException::new)))); + + // Add auditing + if (ingestMode().auditing().accept(AUDIT_ENABLED)) + { + addAuditing(fieldsToInsertIntoMain, fieldsToSelect); + } + + operations.add(Insert.of(mainDataset(), Selection.builder().source(tempDataset).addAllFields(fieldsToSelect).build(), fieldsToInsertIntoMain)); + + + return LogicalPlan.of(operations); + } + + private void addAuditing(List fieldsToInsert, List fieldsToSelect) + { + BatchStartTimestamp batchStartTimestamp = BatchStartTimestamp.INSTANCE; + String auditField = ingestMode().auditing().accept(AuditingVisitors.EXTRACT_AUDIT_FIELD).orElseThrow(IllegalStateException::new); + fieldsToInsert.add(FieldValue.builder().datasetRef(mainDataset().datasetReference()).fieldName(auditField).build()); + fieldsToSelect.add(batchStartTimestamp); + } + @Override public LogicalPlan buildLogicalPlanForPreActions(Resources resources) { List operations = new ArrayList<>(); operations.add(Create.of(true, mainDataset())); operations.add(Create.of(true, bulkLoadMetadataDataset.get())); + if (!transformWhileCopy) + { + operations.add(Create.of(true, tempDataset)); + } return LogicalPlan.of(operations); } @Override public LogicalPlan buildLogicalPlanForPostActions(Resources resources) { + // there is no need to delete from the temp table for big query because we always use "overwrite" when loading List operations = new ArrayList<>(); return LogicalPlan.of(operations); } + @Override + public LogicalPlan buildLogicalPlanForPostCleanup(Resources resources) + { + List operations = new ArrayList<>(); + if (!transformWhileCopy) + { + operations.add(Drop.of(true, tempDataset, false)); + } + return LogicalPlan.of(operations); + } + @Override public LogicalPlan buildLogicalPlanForMetadataIngest(Resources resources) { @@ -162,9 +259,10 @@ private Selection getRowsBasedOnAppendTimestamp(Dataset dataset, String field, S private String jsonifyBatchSourceInfo(StagedFilesDatasetProperties stagedFilesDatasetProperties) { - List files = stagedFilesDatasetProperties.files(); Map batchSourceMap = new HashMap(); + List files = stagedFilesDatasetProperties.files(); batchSourceMap.put("files", files); + bulkLoadTaskIdValue.ifPresent(taskId -> batchSourceMap.put("task_id", taskId)); ObjectMapper objectMapper = new ObjectMapper(); try { @@ -206,6 +304,7 @@ public Void visitUDFBasedDigestGenStrategy(UDFBasedDigestGenStrategyAbstract udf .udfName(udfBasedDigestGenStrategy.digestUdfName()) .addAllFieldNames(stagingDataset.schemaReference().fieldValues().stream().map(fieldValue -> fieldValue.fieldName()).collect(Collectors.toList())) .addAllValues(fieldsToSelect) + .dataset(stagingDataset) .build(); String digestField = udfBasedDigestGenStrategy.digestField(); fieldsToInsert.add(FieldValue.builder().datasetRef(mainDataset.datasetReference()).fieldName(digestField).build()); diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/NontemporalDeltaPlanner.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/NontemporalDeltaPlanner.java index fe4d9638fba..12042820c56 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/NontemporalDeltaPlanner.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/NontemporalDeltaPlanner.java @@ -68,9 +68,9 @@ class NontemporalDeltaPlanner extends Planner private final Optional dataSplitInRangeCondition; - NontemporalDeltaPlanner(Datasets datasets, NontemporalDelta ingestMode, PlannerOptions plannerOptions) + NontemporalDeltaPlanner(Datasets datasets, NontemporalDelta ingestMode, PlannerOptions plannerOptions, Set capabilities) { - super(datasets, ingestMode, plannerOptions); + super(datasets, ingestMode, plannerOptions, capabilities); // validate validatePrimaryKeysNotEmpty(primaryKeys); @@ -103,7 +103,7 @@ protected NontemporalDelta ingestMode() } @Override - public LogicalPlan buildLogicalPlanForIngest(Resources resources, Set capabilities) + public LogicalPlan buildLogicalPlanForIngest(Resources resources) { List operations = new ArrayList<>(); // Op1: Merge data from staging to main diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/NontemporalSnapshotPlanner.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/NontemporalSnapshotPlanner.java index a0424f612f7..d5adad5f1d4 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/NontemporalSnapshotPlanner.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/NontemporalSnapshotPlanner.java @@ -42,22 +42,18 @@ import java.util.HashMap; import java.util.List; import java.util.Map; -import java.util.Set; import java.util.Optional; +import java.util.Set; -import static org.finos.legend.engine.persistence.components.common.StatisticName.INCOMING_RECORD_COUNT; import static org.finos.legend.engine.persistence.components.common.StatisticName.ROWS_DELETED; -import static org.finos.legend.engine.persistence.components.common.StatisticName.ROWS_INSERTED; -import static org.finos.legend.engine.persistence.components.common.StatisticName.ROWS_TERMINATED; -import static org.finos.legend.engine.persistence.components.common.StatisticName.ROWS_UPDATED; import static org.finos.legend.engine.persistence.components.util.LogicalPlanUtils.ALL_COLUMNS; import static org.finos.legend.engine.persistence.components.util.LogicalPlanUtils.getPrimaryKeyMatchCondition; class NontemporalSnapshotPlanner extends Planner { - NontemporalSnapshotPlanner(Datasets datasets, NontemporalSnapshot ingestMode, PlannerOptions plannerOptions) + NontemporalSnapshotPlanner(Datasets datasets, NontemporalSnapshot ingestMode, PlannerOptions plannerOptions, Set capabilities) { - super(datasets, ingestMode, plannerOptions); + super(datasets, ingestMode, plannerOptions, capabilities); } @Override @@ -67,7 +63,7 @@ protected NontemporalSnapshot ingestMode() } @Override - public LogicalPlan buildLogicalPlanForIngest(Resources resources, Set capabilities) + public LogicalPlan buildLogicalPlanForIngest(Resources resources) { Dataset stagingDataset = stagingDataset(); List fieldsToSelect = new ArrayList<>(stagingDataset().schemaReference().fieldValues()); diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/Planner.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/Planner.java index dbc17287cbd..6123b86eec8 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/Planner.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/Planner.java @@ -97,18 +97,22 @@ default boolean enableConcurrentSafety() { return false; } + + Optional bulkLoadTaskIdValue(); } private final Datasets datasets; private final IngestMode ingestMode; private final PlannerOptions plannerOptions; + protected final Set capabilities; protected final List primaryKeys; - Planner(Datasets datasets, IngestMode ingestMode, PlannerOptions plannerOptions) + Planner(Datasets datasets, IngestMode ingestMode, PlannerOptions plannerOptions, Set capabilities) { this.datasets = datasets; this.ingestMode = ingestMode; this.plannerOptions = plannerOptions == null ? PlannerOptions.builder().build() : plannerOptions; + this.capabilities = capabilities; this.primaryKeys = findCommonPrimaryKeysBetweenMainAndStaging(); } @@ -153,7 +157,7 @@ protected PlannerOptions options() return plannerOptions; } - public abstract LogicalPlan buildLogicalPlanForIngest(Resources resources, Set capabilities); + public abstract LogicalPlan buildLogicalPlanForIngest(Resources resources); public LogicalPlan buildLogicalPlanForMetadataIngest(Resources resources) { diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/Planners.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/Planners.java index c6949395af4..321c480b129 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/Planners.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/Planners.java @@ -33,6 +33,9 @@ import org.finos.legend.engine.persistence.components.ingestmode.UnitemporalSnapshotAbstract; import org.finos.legend.engine.persistence.components.ingestmode.BulkLoadAbstract; import org.finos.legend.engine.persistence.components.ingestmode.BulkLoad; +import org.finos.legend.engine.persistence.components.util.Capability; + +import java.util.Set; public class Planners { @@ -40,73 +43,75 @@ private Planners() { } - public static Planner get(Datasets datasets, IngestMode ingestMode) + public static Planner get(Datasets datasets, IngestMode ingestMode, Set capabilities) { - return ingestMode.accept(new PlannerFactory(datasets, PlannerOptions.builder().build())); + return ingestMode.accept(new PlannerFactory(datasets, PlannerOptions.builder().build(), capabilities)); } - public static Planner get(Datasets datasets, IngestMode ingestMode, PlannerOptions plannerOptions) + public static Planner get(Datasets datasets, IngestMode ingestMode, PlannerOptions plannerOptions, Set capabilities) { - return ingestMode.accept(new PlannerFactory(datasets, plannerOptions)); + return ingestMode.accept(new PlannerFactory(datasets, plannerOptions, capabilities)); } static class PlannerFactory implements IngestModeVisitor { private final Datasets datasets; private final PlannerOptions plannerOptions; + private final Set capabilities; - PlannerFactory(Datasets datasets, PlannerOptions plannerOptions) + PlannerFactory(Datasets datasets, PlannerOptions plannerOptions, Set capabilities) { this.datasets = datasets; this.plannerOptions = plannerOptions; + this.capabilities = capabilities; } @Override public Planner visitAppendOnly(AppendOnlyAbstract appendOnly) { - return new AppendOnlyPlanner(datasets, (AppendOnly) appendOnly, plannerOptions); + return new AppendOnlyPlanner(datasets, (AppendOnly) appendOnly, plannerOptions, capabilities); } @Override public Planner visitNontemporalSnapshot(NontemporalSnapshotAbstract nontemporalSnapshot) { - return new NontemporalSnapshotPlanner(datasets, (NontemporalSnapshot) nontemporalSnapshot, plannerOptions); + return new NontemporalSnapshotPlanner(datasets, (NontemporalSnapshot) nontemporalSnapshot, plannerOptions, capabilities); } @Override public Planner visitNontemporalDelta(NontemporalDeltaAbstract nontemporalDelta) { - return new NontemporalDeltaPlanner(datasets, (NontemporalDelta) nontemporalDelta, plannerOptions); + return new NontemporalDeltaPlanner(datasets, (NontemporalDelta) nontemporalDelta, plannerOptions, capabilities); } @Override public Planner visitUnitemporalSnapshot(UnitemporalSnapshotAbstract unitemporalSnapshot) { - return new UnitemporalSnapshotPlanner(datasets, (UnitemporalSnapshot) unitemporalSnapshot, plannerOptions); + return new UnitemporalSnapshotPlanner(datasets, (UnitemporalSnapshot) unitemporalSnapshot, plannerOptions, capabilities); } @Override public Planner visitUnitemporalDelta(UnitemporalDeltaAbstract unitemporalDelta) { - return new UnitemporalDeltaPlanner(datasets, (UnitemporalDelta) unitemporalDelta, plannerOptions); + return new UnitemporalDeltaPlanner(datasets, (UnitemporalDelta) unitemporalDelta, plannerOptions, capabilities); } @Override public Planner visitBitemporalSnapshot(BitemporalSnapshotAbstract bitemporalSnapshot) { - return new BitemporalSnapshotPlanner(datasets, (BitemporalSnapshot) bitemporalSnapshot, plannerOptions); + return new BitemporalSnapshotPlanner(datasets, (BitemporalSnapshot) bitemporalSnapshot, plannerOptions, capabilities); } @Override public Planner visitBitemporalDelta(BitemporalDeltaAbstract bitemporalDelta) { - return new BitemporalDeltaPlanner(datasets, (BitemporalDelta) bitemporalDelta, plannerOptions); + return new BitemporalDeltaPlanner(datasets, (BitemporalDelta) bitemporalDelta, plannerOptions, capabilities); } @Override public Planner visitBulkLoad(BulkLoadAbstract bulkLoad) { - return new BulkLoadPlanner(datasets, (BulkLoad) bulkLoad, plannerOptions); + return new BulkLoadPlanner(datasets, (BulkLoad) bulkLoad, plannerOptions, capabilities); } } } diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/UnitemporalDeltaPlanner.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/UnitemporalDeltaPlanner.java index b93ef293767..58cf0f92144 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/UnitemporalDeltaPlanner.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/UnitemporalDeltaPlanner.java @@ -64,9 +64,9 @@ class UnitemporalDeltaPlanner extends UnitemporalPlanner private final Optional deleteIndicatorIsSetCondition; private final Optional dataSplitInRangeCondition; - UnitemporalDeltaPlanner(Datasets datasets, UnitemporalDelta ingestMode, PlannerOptions plannerOptions) + UnitemporalDeltaPlanner(Datasets datasets, UnitemporalDelta ingestMode, PlannerOptions plannerOptions, Set capabilities) { - super(datasets, ingestMode, plannerOptions); + super(datasets, ingestMode, plannerOptions, capabilities); // Validate if the optimizationFilters are comparable if (!ingestMode.optimizationFilters().isEmpty()) @@ -98,7 +98,7 @@ protected UnitemporalDelta ingestMode() } @Override - public LogicalPlan buildLogicalPlanForIngest(Resources resources, Set capabilities) + public LogicalPlan buildLogicalPlanForIngest(Resources resources) { List operations = new ArrayList<>(); diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/UnitemporalPlanner.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/UnitemporalPlanner.java index 4b43d78ce4c..3b021655afc 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/UnitemporalPlanner.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/UnitemporalPlanner.java @@ -46,6 +46,7 @@ import org.finos.legend.engine.persistence.components.logicalplan.values.StringValue; import org.finos.legend.engine.persistence.components.logicalplan.values.Value; import org.finos.legend.engine.persistence.components.logicalplan.values.DiffBinaryValueOperator; +import org.finos.legend.engine.persistence.components.util.Capability; import org.finos.legend.engine.persistence.components.util.LogicalPlanUtils; import org.finos.legend.engine.persistence.components.util.MetadataDataset; import org.finos.legend.engine.persistence.components.util.MetadataUtils; @@ -57,6 +58,7 @@ import java.util.List; import java.util.Map; import java.util.Optional; +import java.util.Set; import static org.finos.legend.engine.persistence.components.common.StatisticName.ROWS_INSERTED; import static org.finos.legend.engine.persistence.components.common.StatisticName.ROWS_UPDATED; @@ -76,13 +78,14 @@ abstract class UnitemporalPlanner extends Planner protected Condition primaryKeysMatchCondition; - UnitemporalPlanner(Datasets datasets, TransactionMilestoned transactionMilestoned, PlannerOptions plannerOptions) + UnitemporalPlanner(Datasets datasets, TransactionMilestoned transactionMilestoned, PlannerOptions plannerOptions, Set capabilities) { super(datasets.metadataDataset().isPresent() ? datasets : datasets.withMetadataDataset(MetadataDataset.builder().build()), transactionMilestoned, - plannerOptions); + plannerOptions, + capabilities); // validate validatePrimaryKeysNotEmpty(primaryKeys); diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/UnitemporalSnapshotPlanner.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/UnitemporalSnapshotPlanner.java index 019adbbffc5..da241423103 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/UnitemporalSnapshotPlanner.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/planner/UnitemporalSnapshotPlanner.java @@ -49,9 +49,9 @@ class UnitemporalSnapshotPlanner extends UnitemporalPlanner { - UnitemporalSnapshotPlanner(Datasets datasets, UnitemporalSnapshot ingestMode, PlannerOptions plannerOptions) + UnitemporalSnapshotPlanner(Datasets datasets, UnitemporalSnapshot ingestMode, PlannerOptions plannerOptions, Set capabilities) { - super(datasets, ingestMode, plannerOptions); + super(datasets, ingestMode, plannerOptions, capabilities); // validate if (ingestMode.partitioned()) @@ -72,7 +72,7 @@ protected UnitemporalSnapshot ingestMode() } @Override - public LogicalPlan buildLogicalPlanForIngest(Resources resources, Set capabilities) + public LogicalPlan buildLogicalPlanForIngest(Resources resources) { List> keyValuePairs = keyValuesForMilestoningUpdate(); @@ -177,7 +177,7 @@ protected Insert sqlToUpsertRows() sink."batch_id_out" = 999999999 and not exists ( - sink."digest" <> stage."digest" and sink.primaryKeys = stage.primaryKeys + sink."digest" = stage."digest" and sink.primaryKeys = stage.primaryKeys ) Partition : diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/util/BulkLoadMetadataDatasetAbstract.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/util/BulkLoadMetadataDatasetAbstract.java index 65054f86e39..3cfea00878f 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/util/BulkLoadMetadataDatasetAbstract.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/util/BulkLoadMetadataDatasetAbstract.java @@ -95,7 +95,7 @@ default Dataset get() .group(group()) .name(name()) .schema(SchemaDefinition.builder() - .addFields(Field.builder().name(batchIdField()).type(FieldType.of(DataType.VARCHAR, 255, null)).build()) + .addFields(Field.builder().name(batchIdField()).type(FieldType.of(DataType.INT, Optional.empty(), Optional.empty())).build()) .addFields(Field.builder().name(tableNameField()).type(FieldType.of(DataType.VARCHAR, 255, null)).build()) .addFields(Field.builder().name(batchStartTimeField()).type(FieldType.of(DataType.DATETIME, Optional.empty(), Optional.empty())).build()) .addFields(Field.builder().name(batchEndTimeField()).type(FieldType.of(DataType.DATETIME, Optional.empty(), Optional.empty())).build()) diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/util/BulkLoadMetadataUtils.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/util/BulkLoadMetadataUtils.java index 161a25e345b..0ff58bbbcdc 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/util/BulkLoadMetadataUtils.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/util/BulkLoadMetadataUtils.java @@ -14,17 +14,23 @@ package org.finos.legend.engine.persistence.components.util; +import org.finos.legend.engine.persistence.components.logicalplan.conditions.Condition; +import org.finos.legend.engine.persistence.components.logicalplan.conditions.Equals; import org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset; import org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetReference; import org.finos.legend.engine.persistence.components.logicalplan.datasets.Selection; import org.finos.legend.engine.persistence.components.logicalplan.operations.Insert; +import org.finos.legend.engine.persistence.components.logicalplan.values.BatchIdValue; +import org.finos.legend.engine.persistence.components.logicalplan.values.FunctionImpl; +import org.finos.legend.engine.persistence.components.logicalplan.values.FunctionName; +import org.finos.legend.engine.persistence.components.logicalplan.values.NumericalValue; import org.finos.legend.engine.persistence.components.logicalplan.values.StringValue; import org.finos.legend.engine.persistence.components.logicalplan.values.BatchStartTimestamp; import org.finos.legend.engine.persistence.components.logicalplan.values.BatchEndTimestamp; import org.finos.legend.engine.persistence.components.logicalplan.values.FieldValue; +import org.finos.legend.engine.persistence.components.logicalplan.values.SumBinaryValueOperator; import org.finos.legend.engine.persistence.components.logicalplan.values.Value; import org.finos.legend.engine.persistence.components.logicalplan.values.ParseJsonFunction; -import org.finos.legend.engine.persistence.components.logicalplan.values.BulkLoadBatchIdValue; import org.finos.legend.engine.persistence.components.logicalplan.values.BulkLoadBatchStatusValue; import java.util.ArrayList; @@ -41,6 +47,27 @@ public BulkLoadMetadataUtils(BulkLoadMetadataDataset bulkLoadMetadataDataset) this.dataset = bulkLoadMetadataDataset.get(); } + /* + SELECT COALESCE(MAX("table_batch_id"),0)+1 FROM batch_metadata WHERE "table_name" = mainTableName + */ + public BatchIdValue getBatchId(StringValue mainTableName) + { + FieldValue tableNameFieldValue = FieldValue.builder().datasetRef(dataset.datasetReference()).fieldName(bulkLoadMetadataDataset.tableNameField()).build(); + FunctionImpl tableNameInUpperCase = FunctionImpl.builder().functionName(FunctionName.UPPER).addValue(tableNameFieldValue).build(); + StringValue mainTableNameInUpperCase = StringValue.builder().value(mainTableName.value().map(field -> field.toUpperCase())) + .alias(mainTableName.alias()).build(); + Condition whereCondition = Equals.of(tableNameInUpperCase, mainTableNameInUpperCase); + FieldValue tableBatchIdFieldValue = FieldValue.builder().datasetRef(dataset.datasetReference()).fieldName(bulkLoadMetadataDataset.batchIdField()).build(); + FunctionImpl maxBatchId = FunctionImpl.builder().functionName(FunctionName.MAX).addValue(tableBatchIdFieldValue).build(); + FunctionImpl coalesce = FunctionImpl.builder().functionName(FunctionName.COALESCE).addValue(maxBatchId, NumericalValue.of(0L)).build(); + + return BatchIdValue.of(Selection.builder() + .source(dataset) + .condition(whereCondition) + .addFields(SumBinaryValueOperator.of(coalesce, NumericalValue.of(1L))) + .build()); + } + /* INSERT INTO batch_metadata ("batchIdField", "tableNameField", "batchStartTimeField", "batchEndTimeField", "batchStatusField","batchSourceInfoField") @@ -63,7 +90,7 @@ public Insert insertMetaData(StringValue tableNameValue, StringValue batchSource List metaSelectFields = new ArrayList<>(); metaInsertFields.add(batchId); - metaSelectFields.add(BulkLoadBatchIdValue.INSTANCE); + metaSelectFields.add(getBatchId(tableNameValue)); metaInsertFields.add(tableName); metaSelectFields.add(tableNameValue); diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/util/Capability.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/util/Capability.java index 16acfd6bd94..f99f9f94a23 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/util/Capability.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/src/main/java/org/finos/legend/engine/persistence/components/util/Capability.java @@ -22,4 +22,5 @@ public enum Capability EXPLICIT_DATA_TYPE_CONVERSION, DATA_TYPE_LENGTH_CHANGE, DATA_TYPE_SCALE_CHANGE, + TRANSFORM_WHILE_COPY; } diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/src/main/java/org/finos/legend/engine/persistence/components/transformer/AbstractTransformer.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/src/main/java/org/finos/legend/engine/persistence/components/transformer/AbstractTransformer.java index e9cab94d2d7..7f7e667044f 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/src/main/java/org/finos/legend/engine/persistence/components/transformer/AbstractTransformer.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/src/main/java/org/finos/legend/engine/persistence/components/transformer/AbstractTransformer.java @@ -69,7 +69,6 @@ protected VisitorContext createContext(TransformOptions options) .batchStartTimestamp(options.batchStartTimestampValue()) .batchIdPattern(options.batchIdPattern()) .infiniteBatchIdValue(options.infiniteBatchIdValue()) - .bulkLoadBatchIdValue(options.bulkLoadBatchIdValue()) .bulkLoadBatchStatusPattern(options.bulkLoadBatchStatusPattern()) .addAllOptimizers(options.optimizers()) .quoteIdentifier(sink.quoteIdentifier()) diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/src/main/java/org/finos/legend/engine/persistence/components/transformer/LogicalPlanVisitor.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/src/main/java/org/finos/legend/engine/persistence/components/transformer/LogicalPlanVisitor.java index 7b59312d55f..5801b636aa0 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/src/main/java/org/finos/legend/engine/persistence/components/transformer/LogicalPlanVisitor.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/src/main/java/org/finos/legend/engine/persistence/components/transformer/LogicalPlanVisitor.java @@ -51,8 +51,6 @@ interface VisitorContextAbstract Optional infiniteBatchIdValue(); - Optional bulkLoadBatchIdValue(); - Optional bulkLoadBatchStatusPattern(); List optimizers(); diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/src/main/java/org/finos/legend/engine/persistence/components/transformer/Transformer.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/src/main/java/org/finos/legend/engine/persistence/components/transformer/Transformer.java index be6f7a440d6..3e663deb408 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/src/main/java/org/finos/legend/engine/persistence/components/transformer/Transformer.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/src/main/java/org/finos/legend/engine/persistence/components/transformer/Transformer.java @@ -57,8 +57,6 @@ public Clock executionTimestampClock() public abstract Optional infiniteBatchIdValue(); - public abstract Optional bulkLoadBatchIdValue(); - public abstract Optional bulkLoadBatchStatusPattern(); public abstract List optimizers(); diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/src/main/java/org/finos/legend/engine/persistence/components/relational/ansi/AnsiSqlSink.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/src/main/java/org/finos/legend/engine/persistence/components/relational/ansi/AnsiSqlSink.java index 63a2d109bb4..f7e3d5e6ac4 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/src/main/java/org/finos/legend/engine/persistence/components/relational/ansi/AnsiSqlSink.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/src/main/java/org/finos/legend/engine/persistence/components/relational/ansi/AnsiSqlSink.java @@ -61,7 +61,6 @@ import org.finos.legend.engine.persistence.components.logicalplan.values.BatchEndTimestamp; import org.finos.legend.engine.persistence.components.logicalplan.values.BatchIdValue; import org.finos.legend.engine.persistence.components.logicalplan.values.BatchStartTimestamp; -import org.finos.legend.engine.persistence.components.logicalplan.values.BulkLoadBatchIdValue; import org.finos.legend.engine.persistence.components.logicalplan.values.BulkLoadBatchStatusValue; import org.finos.legend.engine.persistence.components.logicalplan.values.Case; import org.finos.legend.engine.persistence.components.logicalplan.values.DatetimeValue; @@ -95,7 +94,6 @@ import org.finos.legend.engine.persistence.components.relational.ansi.sql.visitors.BatchEndTimestampVisitor; import org.finos.legend.engine.persistence.components.relational.ansi.sql.visitors.BatchIdValueVisitor; import org.finos.legend.engine.persistence.components.relational.ansi.sql.visitors.BatchStartTimestampVisitor; -import org.finos.legend.engine.persistence.components.relational.ansi.sql.visitors.BulkLoadBatchIdValueVisitor; import org.finos.legend.engine.persistence.components.relational.ansi.sql.visitors.BulkLoadBatchStatusValueVisitor; import org.finos.legend.engine.persistence.components.relational.ansi.sql.visitors.CaseVisitor; import org.finos.legend.engine.persistence.components.relational.ansi.sql.visitors.DatasetAdditionalPropertiesVisitor; @@ -235,7 +233,6 @@ public class AnsiSqlSink extends RelationalSink logicalPlanVisitorByClass.put(Show.class, new ShowVisitor()); logicalPlanVisitorByClass.put(BatchIdValue.class, new BatchIdValueVisitor()); logicalPlanVisitorByClass.put(InfiniteBatchIdValue.class, new InfiniteBatchIdValueVisitor()); - logicalPlanVisitorByClass.put(BulkLoadBatchIdValue.class, new BulkLoadBatchIdValueVisitor()); logicalPlanVisitorByClass.put(BulkLoadBatchStatusValue.class, new BulkLoadBatchStatusValueVisitor()); LOGICAL_PLAN_VISITOR_BY_CLASS = Collections.unmodifiableMap(logicalPlanVisitorByClass); diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/src/test/java/org/finos/legend/engine/persistence/components/util/BulkLoadDatasetUtilsAnsiTest.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/src/test/java/org/finos/legend/engine/persistence/components/util/BulkLoadDatasetUtilsAnsiTest.java index 67a3337de07..2a6d727b17f 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/src/test/java/org/finos/legend/engine/persistence/components/util/BulkLoadDatasetUtilsAnsiTest.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/src/test/java/org/finos/legend/engine/persistence/components/util/BulkLoadDatasetUtilsAnsiTest.java @@ -24,13 +24,13 @@ public String getExpectedSqlForMetadata() { return "INSERT INTO bulk_load_batch_metadata " + "(\"batch_id\", \"table_name\", \"batch_start_ts_utc\", \"batch_end_ts_utc\", \"batch_status\", \"batch_source_info\")" + - " (SELECT 'batch_id_123','appeng_log_table_name','2000-01-01 00:00:00',CURRENT_TIMESTAMP(),'',PARSE_JSON('my_lineage_value'))"; + " (SELECT (SELECT COALESCE(MAX(bulk_load_batch_metadata.\"batch_id\"),0)+1 FROM bulk_load_batch_metadata as bulk_load_batch_metadata WHERE UPPER(bulk_load_batch_metadata.\"table_name\") = 'APPENG_LOG_TABLE_NAME'),'appeng_log_table_name','2000-01-01 00:00:00',CURRENT_TIMESTAMP(),'',PARSE_JSON('my_lineage_value'))"; } public String getExpectedSqlForMetadataUpperCase() { return "INSERT INTO BULK_LOAD_BATCH_METADATA (\"BATCH_ID\", \"TABLE_NAME\", \"BATCH_START_TS_UTC\", \"BATCH_END_TS_UTC\", \"BATCH_STATUS\", \"BATCH_SOURCE_INFO\") " + - "(SELECT 'batch_id_123','BULK_LOAD_TABLE_NAME','2000-01-01 00:00:00',CURRENT_TIMESTAMP(),'',PARSE_JSON('my_lineage_value'))"; + "(SELECT (SELECT COALESCE(MAX(bulk_load_batch_metadata.\"BATCH_ID\"),0)+1 FROM BULK_LOAD_BATCH_METADATA as bulk_load_batch_metadata WHERE UPPER(bulk_load_batch_metadata.\"TABLE_NAME\") = 'BULK_LOAD_TABLE_NAME'),'BULK_LOAD_TABLE_NAME','2000-01-01 00:00:00',CURRENT_TIMESTAMP(),'',PARSE_JSON('my_lineage_value'))"; } public RelationalSink getRelationalSink() diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/src/test/java/org/finos/legend/engine/persistence/components/util/BulkLoadDatasetUtilsTest.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/src/test/java/org/finos/legend/engine/persistence/components/util/BulkLoadDatasetUtilsTest.java index 65e5861a277..6e563621a28 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/src/test/java/org/finos/legend/engine/persistence/components/util/BulkLoadDatasetUtilsTest.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/src/test/java/org/finos/legend/engine/persistence/components/util/BulkLoadDatasetUtilsTest.java @@ -37,7 +37,6 @@ public abstract class BulkLoadDatasetUtilsTest private final TransformOptions transformOptions = TransformOptions .builder() .executionTimestampClock(Clock.fixed(executionZonedDateTime.toInstant(), ZoneOffset.UTC)) - .bulkLoadBatchIdValue("batch_id_123") .bulkLoadBatchStatusPattern("") .build(); diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml index 80e32e5de49..998b7567af8 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml @@ -56,6 +56,12 @@ legend-engine-xt-persistence-component-relational-ansi + + + org.immutables + value + + com.google.cloud @@ -66,17 +72,37 @@ commons-logging commons-logging + + com.google.errorprone + error_prone_annotations + + + com.google.code.findbugs + jsr305 + com.google.cloud google-cloud-core provided + + + com.google.code.findbugs + jsr305 + + com.google.auth google-auth-library-oauth2-http provided + + + com.google.code.findbugs + jsr305 + + org.slf4j diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/BigQuerySink.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/BigQuerySink.java index ba31be6adad..62c3df96ff0 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/BigQuerySink.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/BigQuerySink.java @@ -14,6 +14,8 @@ package org.finos.legend.engine.persistence.components.relational.bigquery; +import org.finos.legend.engine.persistence.components.common.Datasets; +import org.finos.legend.engine.persistence.components.common.StatisticName; import org.finos.legend.engine.persistence.components.executor.Executor; import org.finos.legend.engine.persistence.components.logicalplan.datasets.ClusterKey; import org.finos.legend.engine.persistence.components.logicalplan.datasets.DataType; @@ -21,13 +23,19 @@ import org.finos.legend.engine.persistence.components.logicalplan.datasets.FieldType; import org.finos.legend.engine.persistence.components.logicalplan.datasets.PartitionKey; import org.finos.legend.engine.persistence.components.logicalplan.datasets.SchemaDefinition; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.StagedFilesDataset; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.StagedFilesDatasetReference; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.StagedFilesSelection; import org.finos.legend.engine.persistence.components.logicalplan.operations.Alter; +import org.finos.legend.engine.persistence.components.logicalplan.operations.Copy; import org.finos.legend.engine.persistence.components.logicalplan.operations.Create; import org.finos.legend.engine.persistence.components.logicalplan.operations.Delete; import org.finos.legend.engine.persistence.components.logicalplan.operations.Truncate; import org.finos.legend.engine.persistence.components.logicalplan.values.BatchEndTimestamp; import org.finos.legend.engine.persistence.components.logicalplan.values.BatchStartTimestamp; import org.finos.legend.engine.persistence.components.logicalplan.values.DatetimeValue; +import org.finos.legend.engine.persistence.components.logicalplan.values.DigestUdf; +import org.finos.legend.engine.persistence.components.logicalplan.values.StagedFilesFieldValue; import org.finos.legend.engine.persistence.components.optimizer.Optimizer; import org.finos.legend.engine.persistence.components.relational.CaseConversion; import org.finos.legend.engine.persistence.components.relational.RelationalSink; @@ -35,6 +43,8 @@ import org.finos.legend.engine.persistence.components.relational.ansi.AnsiSqlSink; import org.finos.legend.engine.persistence.components.relational.ansi.optimizer.LowerCaseOptimizer; import org.finos.legend.engine.persistence.components.relational.ansi.optimizer.UpperCaseOptimizer; +import org.finos.legend.engine.persistence.components.relational.api.IngestStatus; +import org.finos.legend.engine.persistence.components.relational.api.IngestorResult; import org.finos.legend.engine.persistence.components.relational.api.RelationalConnection; import org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryConnection; import org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryExecutor; @@ -45,12 +55,18 @@ import org.finos.legend.engine.persistence.components.relational.bigquery.sql.visitor.BatchEndTimestampVisitor; import org.finos.legend.engine.persistence.components.relational.bigquery.sql.visitor.BatchStartTimestampVisitor; import org.finos.legend.engine.persistence.components.relational.bigquery.sql.visitor.ClusterKeyVisitor; +import org.finos.legend.engine.persistence.components.relational.bigquery.sql.visitor.CopyVisitor; import org.finos.legend.engine.persistence.components.relational.bigquery.sql.visitor.DatetimeValueVisitor; import org.finos.legend.engine.persistence.components.relational.bigquery.sql.visitor.DeleteVisitor; +import org.finos.legend.engine.persistence.components.relational.bigquery.sql.visitor.DigestUdfVisitor; import org.finos.legend.engine.persistence.components.relational.bigquery.sql.visitor.FieldVisitor; import org.finos.legend.engine.persistence.components.relational.bigquery.sql.visitor.PartitionKeyVisitor; import org.finos.legend.engine.persistence.components.relational.bigquery.sql.visitor.SQLCreateVisitor; import org.finos.legend.engine.persistence.components.relational.bigquery.sql.visitor.SchemaDefinitionVisitor; +import org.finos.legend.engine.persistence.components.relational.bigquery.sql.visitor.StagedFilesDatasetReferenceVisitor; +import org.finos.legend.engine.persistence.components.relational.bigquery.sql.visitor.StagedFilesDatasetVisitor; +import org.finos.legend.engine.persistence.components.relational.bigquery.sql.visitor.StagedFilesFieldValueVisitor; +import org.finos.legend.engine.persistence.components.relational.bigquery.sql.visitor.StagedFilesSelectionVisitor; import org.finos.legend.engine.persistence.components.relational.bigquery.sql.visitor.TruncateVisitor; import org.finos.legend.engine.persistence.components.relational.sql.TabularData; import org.finos.legend.engine.persistence.components.relational.sqldom.SqlGen; @@ -66,6 +82,9 @@ import java.util.Optional; import java.util.Set; +import static org.finos.legend.engine.persistence.components.relational.api.RelationalIngestorAbstract.BATCH_ID_PATTERN; +import static org.finos.legend.engine.persistence.components.relational.api.RelationalIngestorAbstract.BATCH_START_TS_PATTERN; + public class BigQuerySink extends AnsiSqlSink { private static final RelationalSink INSTANCE; @@ -97,6 +116,12 @@ public class BigQuerySink extends AnsiSqlSink logicalPlanVisitorByClass.put(DatetimeValue.class, new DatetimeValueVisitor()); logicalPlanVisitorByClass.put(BatchEndTimestamp.class, new BatchEndTimestampVisitor()); logicalPlanVisitorByClass.put(BatchStartTimestamp.class, new BatchStartTimestampVisitor()); + logicalPlanVisitorByClass.put(Copy.class, new CopyVisitor()); + logicalPlanVisitorByClass.put(StagedFilesFieldValue.class, new StagedFilesFieldValueVisitor()); + logicalPlanVisitorByClass.put(StagedFilesDataset.class, new StagedFilesDatasetVisitor()); + logicalPlanVisitorByClass.put(StagedFilesSelection.class, new StagedFilesSelectionVisitor()); + logicalPlanVisitorByClass.put(StagedFilesDatasetReference.class, new StagedFilesDatasetReferenceVisitor()); + logicalPlanVisitorByClass.put(DigestUdf.class, new DigestUdfVisitor()); LOGICAL_PLAN_VISITOR_BY_CLASS = Collections.unmodifiableMap(logicalPlanVisitorByClass); Map> implicitDataTypeMapping = new HashMap<>(); @@ -229,4 +254,32 @@ public Field createNewField(Field evolveTo, Field evolveFrom, Optional .identity(evolveTo.identity()).unique(evolveTo.unique()) .defaultValue(evolveTo.defaultValue()).type(modifiedFieldType).build(); } + + @Override + public IngestorResult performBulkLoad(Datasets datasets, Executor executor, SqlPlan ingestSqlPlan, Map statisticsSqlPlan, Map placeHolderKeyValues) + { + BigQueryExecutor bigQueryExecutor = (BigQueryExecutor) executor; + Map stats = bigQueryExecutor.executeLoadPhysicalPlanAndGetStats(ingestSqlPlan, placeHolderKeyValues); + + IngestorResult.Builder resultBuilder = IngestorResult.builder() + .updatedDatasets(datasets) + .putAllStatisticByName(stats) + .ingestionTimestampUTC(placeHolderKeyValues.get(BATCH_START_TS_PATTERN)) + .batchId(Optional.ofNullable(placeHolderKeyValues.containsKey(BATCH_ID_PATTERN) ? Integer.valueOf(placeHolderKeyValues.get(BATCH_ID_PATTERN)) : null)); + IngestorResult result; + + if ((long) stats.get(StatisticName.ROWS_WITH_ERRORS) == 0) + { + result = resultBuilder + .status(IngestStatus.SUCCEEDED) + .build(); + } + else + { + result = resultBuilder + .status(IngestStatus.FAILED) + .build(); + } + return result; + } } diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/executor/BigQueryExecutor.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/executor/BigQueryExecutor.java index ddddb6a06e7..046d2088a44 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/executor/BigQueryExecutor.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/executor/BigQueryExecutor.java @@ -14,6 +14,7 @@ package org.finos.legend.engine.persistence.components.relational.bigquery.executor; +import org.finos.legend.engine.persistence.components.common.StatisticName; import org.finos.legend.engine.persistence.components.executor.Executor; import org.finos.legend.engine.persistence.components.executor.RelationalExecutionHelper; import org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset; @@ -70,6 +71,19 @@ public void executePhysicalPlan(SqlPlan physicalPlan, Map placeh } } + public Map executeLoadPhysicalPlanAndGetStats(SqlPlan physicalPlan, Map placeholderKeyValues) + { + List sqlList = physicalPlan.getSqlList(); + + // Load statement (Not supported in Bigquery to run in a transaction) + Map loadStats = bigQueryHelper.executeLoadStatement(getEnrichedSql(placeholderKeyValues, sqlList.get(0))); + + // Isolation level of Bigquery is Snapshot, + // So Insert statement has to run in a new transaction so that it can see the changes of Load + bigQueryHelper.executeStatementInANewTransaction(getEnrichedSql(placeholderKeyValues, sqlList.get(1))); + return loadStats; + } + @Override public List executePhysicalPlanAndGetResults(SqlPlan physicalPlan) { diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/executor/BigQueryHelper.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/executor/BigQueryHelper.java index 84c5ed5f186..261226baa04 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/executor/BigQueryHelper.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/executor/BigQueryHelper.java @@ -17,6 +17,7 @@ import com.google.cloud.bigquery.BigQuery; import com.google.cloud.bigquery.FieldList; import com.google.cloud.bigquery.TableId; +import org.finos.legend.engine.persistence.components.common.StatisticName; import org.finos.legend.engine.persistence.components.executor.TypeMapping; import org.finos.legend.engine.persistence.components.logicalplan.LogicalPlan; import org.finos.legend.engine.persistence.components.logicalplan.conditions.And; @@ -326,6 +327,12 @@ public void executeStatement(String sql) executeStatements(sqls); } + public void executeStatementInANewTransaction(String sql) + { + List sqls = Collections.singletonList(sql); + executeStatementsInANewTransaction(sqls); + } + // Execute statements in a transaction - either use an existing one or use a new one public void executeStatements(List sqls) { @@ -345,45 +352,50 @@ public void executeStatements(List sqls) } else { - BigQueryTransactionManager txManager = null; - try + executeStatementsInANewTransaction(sqls); + } + } + + public void executeStatementsInANewTransaction(List sqls) + { + BigQueryTransactionManager txManager = null; + try + { + txManager = new BigQueryTransactionManager(bigQuery); + txManager.beginTransaction(); + for (String sql : sqls) { - txManager = new BigQueryTransactionManager(bigQuery); - txManager.beginTransaction(); - for (String sql : sqls) - { - txManager.executeInCurrentTransaction(sql); - } - txManager.commitTransaction(); + txManager.executeInCurrentTransaction(sql); } - catch (Exception e) + txManager.commitTransaction(); + } + catch (Exception e) + { + LOGGER.error("Error executing SQL statements: " + sqls, e); + if (txManager != null) { - LOGGER.error("Error executing SQL statements: " + sqls, e); - if (txManager != null) + try { - try - { - txManager.revertTransaction(); - } - catch (InterruptedException e2) - { - throw new RuntimeException(e2); - } + txManager.revertTransaction(); + } + catch (InterruptedException e2) + { + throw new RuntimeException(e2); } - throw new RuntimeException(e); } - finally + throw new RuntimeException(e); + } + finally + { + if (txManager != null) { - if (txManager != null) + try { - try - { - txManager.close(); - } - catch (InterruptedException e) - { - LOGGER.error("Error closing transaction manager.", e); - } + txManager.close(); + } + catch (InterruptedException e) + { + LOGGER.error("Error closing transaction manager.", e); } } } @@ -424,6 +436,34 @@ public List> executeQuery(String sql) } } + public Map executeLoadStatement(String sql) + { + BigQueryTransactionManager txManager = null; + try + { + txManager = new BigQueryTransactionManager(bigQuery); + return txManager.executeLoadStatement(sql); + } + catch (Exception e) + { + throw new RuntimeException("Error executing SQL query: " + sql, e); + } + finally + { + if (txManager != null) + { + try + { + txManager.close(); + } + catch (InterruptedException e) + { + LOGGER.error("Error closing transaction manager.", e); + } + } + } + } + @Override public void close() { diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/executor/BigQueryTransactionManager.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/executor/BigQueryTransactionManager.java index 7db1a4c5ad8..9f7b4e376a8 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/executor/BigQueryTransactionManager.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/executor/BigQueryTransactionManager.java @@ -22,8 +22,9 @@ import com.google.cloud.bigquery.Job; import com.google.cloud.bigquery.JobId; import com.google.cloud.bigquery.JobInfo; -import com.google.cloud.bigquery.LegacySQLTypeName; +import com.google.cloud.bigquery.JobStatistics; import com.google.cloud.bigquery.QueryJobConfiguration; +import org.finos.legend.engine.persistence.components.common.StatisticName; import java.util.ArrayList; import java.util.Arrays; @@ -98,6 +99,22 @@ public boolean executeInCurrentTransaction(String sql) throws InterruptedExcepti return job.getStatus().getError() == null; } + public Map executeLoadStatement(String sql) throws InterruptedException + { + Map stats = new HashMap<>(); + + Job job = this.executeSql(sql); + JobStatistics.QueryStatistics queryStatistics = job.getStatistics(); + + long recordsWritten = queryStatistics.getQueryPlan().get(0).getRecordsWritten(); + long recordsRead = queryStatistics.getQueryPlan().get(0).getRecordsRead(); + + stats.put(StatisticName.ROWS_INSERTED, recordsWritten); + stats.put(StatisticName.ROWS_WITH_ERRORS, recordsRead - recordsWritten); + + return stats; + } + public List> convertResultSetToList(String sql) { try diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/logicalplan/datasets/BigQueryStagedFilesDatasetPropertiesAbstract.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/logicalplan/datasets/BigQueryStagedFilesDatasetPropertiesAbstract.java new file mode 100644 index 00000000000..088fed20cb4 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/logicalplan/datasets/BigQueryStagedFilesDatasetPropertiesAbstract.java @@ -0,0 +1,39 @@ +// Copyright 2023 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.persistence.components.relational.bigquery.logicalplan.datasets; + +import org.finos.legend.engine.persistence.components.common.FileFormat; +import org.finos.legend.engine.persistence.components.common.LoadOptions; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.StagedFilesDatasetProperties; +import org.immutables.value.Value; + +import java.util.Optional; + + +@Value.Immutable +@Value.Style( + typeAbstract = "*Abstract", + typeImmutable = "*", + jdkOnly = true, + optionalAcceptNullable = true, + strictBuilder = true +) +public interface BigQueryStagedFilesDatasetPropertiesAbstract extends StagedFilesDatasetProperties +{ + FileFormat fileFormat(); + + Optional loadOptions(); +} diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sql/visitor/CopyVisitor.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sql/visitor/CopyVisitor.java new file mode 100644 index 00000000000..b383f1f6b80 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sql/visitor/CopyVisitor.java @@ -0,0 +1,42 @@ +// Copyright 2023 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.persistence.components.relational.bigquery.sql.visitor; + +import org.finos.legend.engine.persistence.components.logicalplan.LogicalPlanNode; +import org.finos.legend.engine.persistence.components.logicalplan.operations.Copy; +import org.finos.legend.engine.persistence.components.physicalplan.PhysicalPlanNode; +import org.finos.legend.engine.persistence.components.relational.bigquery.sqldom.schemaops.statements.CopyStatement; +import org.finos.legend.engine.persistence.components.transformer.LogicalPlanVisitor; +import org.finos.legend.engine.persistence.components.transformer.VisitorContext; + +import java.util.ArrayList; +import java.util.List; + +public class CopyVisitor implements LogicalPlanVisitor +{ + + @Override + public VisitorResult visit(PhysicalPlanNode prev, Copy current, VisitorContext context) + { + CopyStatement copyStatement = new CopyStatement(); + prev.push(copyStatement); + + List logicalPlanNodes = new ArrayList<>(); + logicalPlanNodes.add(current.sourceDataset()); + logicalPlanNodes.add(current.targetDataset()); + logicalPlanNodes.addAll(current.fields()); + return new VisitorResult(copyStatement, logicalPlanNodes); + } +} diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sql/visitor/DigestUdfVisitor.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sql/visitor/DigestUdfVisitor.java new file mode 100644 index 00000000000..c6b5faec90e --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sql/visitor/DigestUdfVisitor.java @@ -0,0 +1,40 @@ +// Copyright 2023 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.persistence.components.relational.bigquery.sql.visitor; + +import org.finos.legend.engine.persistence.components.logicalplan.values.DigestUdf; +import org.finos.legend.engine.persistence.components.logicalplan.values.FunctionImpl; +import org.finos.legend.engine.persistence.components.logicalplan.values.FunctionName; +import org.finos.legend.engine.persistence.components.logicalplan.values.ObjectValue; +import org.finos.legend.engine.persistence.components.physicalplan.PhysicalPlanNode; +import org.finos.legend.engine.persistence.components.relational.sqldom.schemaops.values.Udf; +import org.finos.legend.engine.persistence.components.transformer.LogicalPlanVisitor; +import org.finos.legend.engine.persistence.components.transformer.VisitorContext; + +import java.util.Arrays; + +public class DigestUdfVisitor implements LogicalPlanVisitor +{ + + @Override + public VisitorResult visit(PhysicalPlanNode prev, DigestUdf current, VisitorContext context) + { + Udf udf = new Udf(context.quoteIdentifier(), current.udfName()); + prev.push(udf); + + FunctionImpl function = FunctionImpl.builder().functionName(FunctionName.TO_JSON).addValue(ObjectValue.of(current.dataset().orElseThrow(IllegalStateException::new).datasetReference().alias())).build(); + return new VisitorResult(udf, Arrays.asList(function)); + } +} diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sql/visitor/StagedFilesDatasetReferenceVisitor.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sql/visitor/StagedFilesDatasetReferenceVisitor.java new file mode 100644 index 00000000000..0c5e7d91bc5 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sql/visitor/StagedFilesDatasetReferenceVisitor.java @@ -0,0 +1,76 @@ +// Copyright 2023 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.persistence.components.relational.bigquery.sql.visitor; + +import org.finos.legend.engine.persistence.components.common.FileFormat; +import org.finos.legend.engine.persistence.components.common.LoadOptions; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.StagedFilesDatasetReference; +import org.finos.legend.engine.persistence.components.physicalplan.PhysicalPlanNode; +import org.finos.legend.engine.persistence.components.relational.bigquery.logicalplan.datasets.BigQueryStagedFilesDatasetProperties; +import org.finos.legend.engine.persistence.components.relational.bigquery.sqldom.schemaops.expressions.table.StagedFilesTable; +import org.finos.legend.engine.persistence.components.transformer.LogicalPlanVisitor; +import org.finos.legend.engine.persistence.components.transformer.VisitorContext; + +import java.util.HashMap; +import java.util.Map; + + +public class StagedFilesDatasetReferenceVisitor implements LogicalPlanVisitor +{ + @Override + public VisitorResult visit(PhysicalPlanNode prev, StagedFilesDatasetReference current, VisitorContext context) + { + if (!(current.properties() instanceof BigQueryStagedFilesDatasetProperties)) + { + throw new IllegalStateException("Only BigQueryStagedFilesDatasetProperties are supported for BigQuery Sink"); + } + BigQueryStagedFilesDatasetProperties datasetProperties = (BigQueryStagedFilesDatasetProperties) current.properties(); + + Map loadOptionsMap = new HashMap<>(); + FileFormat fileFormat = datasetProperties.fileFormat(); + loadOptionsMap.put("format", fileFormat.name()); + datasetProperties.loadOptions().ifPresent(options -> retrieveLoadOptions(fileFormat, options, loadOptionsMap)); + + StagedFilesTable stagedFilesTable = new StagedFilesTable(datasetProperties.files(), loadOptionsMap); + prev.push(stagedFilesTable); + + return new VisitorResult(null); + } + + private void retrieveLoadOptions(FileFormat fileFormat, LoadOptions loadOptions, Map loadOptionsMap) + { + switch (fileFormat) + { + case CSV: + loadOptions.fieldDelimiter().ifPresent(property -> loadOptionsMap.put("field_delimiter", property)); + loadOptions.encoding().ifPresent(property -> loadOptionsMap.put("encoding", property)); + loadOptions.nullMarker().ifPresent(property -> loadOptionsMap.put("null_marker", property)); + loadOptions.quote().ifPresent(property -> loadOptionsMap.put("quote", property)); + loadOptions.skipLeadingRows().ifPresent(property -> loadOptionsMap.put("skip_leading_rows", property)); + loadOptions.maxBadRecords().ifPresent(property -> loadOptionsMap.put("max_bad_records", property)); + loadOptions.compression().ifPresent(property -> loadOptionsMap.put("compression", property)); + break; + case JSON: + loadOptions.maxBadRecords().ifPresent(property -> loadOptionsMap.put("max_bad_records", property)); + loadOptions.compression().ifPresent(property -> loadOptionsMap.put("compression", property)); + break; + case AVRO: + case PARQUET: + return; + default: + throw new IllegalStateException("Unrecognized file format: " + fileFormat); + } + } +} diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/src/main/java/org/finos/legend/engine/persistence/components/relational/ansi/sql/visitors/BulkLoadBatchIdValueVisitor.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sql/visitor/StagedFilesDatasetVisitor.java similarity index 65% rename from legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/src/main/java/org/finos/legend/engine/persistence/components/relational/ansi/sql/visitors/BulkLoadBatchIdValueVisitor.java rename to legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sql/visitor/StagedFilesDatasetVisitor.java index faf24aac182..b482a7e6e3b 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/src/main/java/org/finos/legend/engine/persistence/components/relational/ansi/sql/visitors/BulkLoadBatchIdValueVisitor.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sql/visitor/StagedFilesDatasetVisitor.java @@ -12,20 +12,19 @@ // See the License for the specific language governing permissions and // limitations under the License. -package org.finos.legend.engine.persistence.components.relational.ansi.sql.visitors; +package org.finos.legend.engine.persistence.components.relational.bigquery.sql.visitor; -import org.finos.legend.engine.persistence.components.logicalplan.values.BulkLoadBatchIdValue; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.StagedFilesDataset; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.StagedFilesDatasetReference; import org.finos.legend.engine.persistence.components.physicalplan.PhysicalPlanNode; -import org.finos.legend.engine.persistence.components.relational.sqldom.schemaops.values.StringValue; import org.finos.legend.engine.persistence.components.transformer.LogicalPlanVisitor; import org.finos.legend.engine.persistence.components.transformer.VisitorContext; -public class BulkLoadBatchIdValueVisitor implements LogicalPlanVisitor +public class StagedFilesDatasetVisitor implements LogicalPlanVisitor { @Override - public VisitorResult visit(PhysicalPlanNode prev, BulkLoadBatchIdValue current, VisitorContext context) + public VisitorResult visit(PhysicalPlanNode prev, StagedFilesDataset current, VisitorContext context) { - prev.push(new StringValue(context.bulkLoadBatchIdValue().orElseThrow(IllegalStateException::new), context.quoteIdentifier())); - return new VisitorResult(); + return new StagedFilesDatasetReferenceVisitor().visit(prev, (StagedFilesDatasetReference) current.datasetReference(), context); } } diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sql/visitor/StagedFilesFieldValueVisitor.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sql/visitor/StagedFilesFieldValueVisitor.java new file mode 100644 index 00000000000..e2841175d99 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sql/visitor/StagedFilesFieldValueVisitor.java @@ -0,0 +1,36 @@ +// Copyright 2023 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.persistence.components.relational.bigquery.sql.visitor; + +import org.finos.legend.engine.persistence.components.logicalplan.values.StagedFilesFieldValue; +import org.finos.legend.engine.persistence.components.physicalplan.PhysicalPlanNode; +import org.finos.legend.engine.persistence.components.relational.bigquery.sql.BigQueryDataTypeMapping; +import org.finos.legend.engine.persistence.components.relational.bigquery.sqldom.schemaops.values.StagedFilesField; +import org.finos.legend.engine.persistence.components.relational.sqldom.schema.DataType; +import org.finos.legend.engine.persistence.components.transformer.LogicalPlanVisitor; +import org.finos.legend.engine.persistence.components.transformer.VisitorContext; + +public class StagedFilesFieldValueVisitor implements LogicalPlanVisitor +{ + + @Override + public VisitorResult visit(PhysicalPlanNode prev, StagedFilesFieldValue current, VisitorContext context) + { + DataType dataType = new BigQueryDataTypeMapping().getDataType(current.fieldType()); + StagedFilesField field = new StagedFilesField(context.quoteIdentifier(), current.fieldName(), dataType); + prev.push(field); + return new VisitorResult(null); + } +} diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sql/visitor/StagedFilesSelectionVisitor.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sql/visitor/StagedFilesSelectionVisitor.java new file mode 100644 index 00000000000..c25d175be4d --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sql/visitor/StagedFilesSelectionVisitor.java @@ -0,0 +1,33 @@ +// Copyright 2023 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.persistence.components.relational.bigquery.sql.visitor; + +import org.finos.legend.engine.persistence.components.logicalplan.datasets.StagedFilesDataset; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.StagedFilesDatasetReference; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.StagedFilesSelection; +import org.finos.legend.engine.persistence.components.physicalplan.PhysicalPlanNode; +import org.finos.legend.engine.persistence.components.transformer.LogicalPlanVisitor; +import org.finos.legend.engine.persistence.components.transformer.VisitorContext; + +public class StagedFilesSelectionVisitor implements LogicalPlanVisitor +{ + + @Override + public VisitorResult visit(PhysicalPlanNode prev, StagedFilesSelection current, VisitorContext context) + { + StagedFilesDataset stagedFilesDataset = current.source(); + return new StagedFilesDatasetReferenceVisitor().visit(prev, (StagedFilesDatasetReference) stagedFilesDataset.datasetReference(), context); + } +} diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sqldom/schemaops/expressions/table/StagedFilesTable.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sqldom/schemaops/expressions/table/StagedFilesTable.java new file mode 100644 index 00000000000..2a8d288eeb4 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sqldom/schemaops/expressions/table/StagedFilesTable.java @@ -0,0 +1,111 @@ +// Copyright 2023 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.persistence.components.relational.bigquery.sqldom.schemaops.expressions.table; + +import org.finos.legend.engine.persistence.components.relational.sqldom.SqlDomException; +import org.finos.legend.engine.persistence.components.relational.sqldom.common.Clause; +import org.finos.legend.engine.persistence.components.relational.sqldom.schemaops.expresssions.table.TableLike; +import org.finos.legend.engine.persistence.components.relational.sqldom.utils.SqlGenUtils; + +import java.util.List; +import java.util.Map; + +import static org.finos.legend.engine.persistence.components.relational.sqldom.utils.SqlGenUtils.ASSIGNMENT_OPERATOR; +import static org.finos.legend.engine.persistence.components.relational.sqldom.utils.SqlGenUtils.CLOSING_PARENTHESIS; +import static org.finos.legend.engine.persistence.components.relational.sqldom.utils.SqlGenUtils.CLOSING_SQUARE_BRACKET; +import static org.finos.legend.engine.persistence.components.relational.sqldom.utils.SqlGenUtils.COMMA; +import static org.finos.legend.engine.persistence.components.relational.sqldom.utils.SqlGenUtils.OPEN_PARENTHESIS; +import static org.finos.legend.engine.persistence.components.relational.sqldom.utils.SqlGenUtils.OPEN_SQUARE_BRACKET; +import static org.finos.legend.engine.persistence.components.relational.sqldom.utils.SqlGenUtils.WHITE_SPACE; + +public class StagedFilesTable extends TableLike +{ + private List files; + private Map loadOptions; + + public StagedFilesTable(List files, Map loadOptions) + { + this.files = files; + this.loadOptions = loadOptions; + } + + @Override + public void genSql(StringBuilder builder) throws SqlDomException + { + validate(); + + builder.append(Clause.FILES.get()); + builder.append(WHITE_SPACE); + + builder.append(OPEN_PARENTHESIS); + builder.append("uris"); + builder.append(ASSIGNMENT_OPERATOR); + builder.append(OPEN_SQUARE_BRACKET); + for (int ctr = 0; ctr < files.size(); ctr++) + { + builder.append(SqlGenUtils.singleQuote(files.get(ctr))); + if (ctr < (files.size() - 1)) + { + builder.append(COMMA); + } + } + builder.append(CLOSING_SQUARE_BRACKET); + + if (loadOptions != null && loadOptions.size() > 0) + { + builder.append(COMMA); + builder.append(WHITE_SPACE); + int ctr = 0; + for (String option : loadOptions.keySet()) + { + ctr++; + builder.append(option); + builder.append(ASSIGNMENT_OPERATOR); + if (loadOptions.get(option) instanceof String) + { + builder.append(SqlGenUtils.singleQuote(loadOptions.get(option))); + } + else + { + // number + builder.append(loadOptions.get(option)); + } + + if (ctr < loadOptions.size()) + { + builder.append(COMMA + WHITE_SPACE); + } + } + } + builder.append(CLOSING_PARENTHESIS); + } + + @Override + public void push(Object node) + { + } + + void validate() throws SqlDomException + { + if (files == null || files.isEmpty()) + { + throw new SqlDomException("files are mandatory for loading from files"); + } + if (!loadOptions.containsKey("format")) + { + throw new SqlDomException("format is mandatory for loading from files"); + } + } +} diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sqldom/schemaops/statements/CopyStatement.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sqldom/schemaops/statements/CopyStatement.java new file mode 100644 index 00000000000..d1fe2feaf82 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sqldom/schemaops/statements/CopyStatement.java @@ -0,0 +1,101 @@ +// Copyright 2023 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.persistence.components.relational.bigquery.sqldom.schemaops.statements; + +import org.finos.legend.engine.persistence.components.relational.bigquery.sqldom.schemaops.expressions.table.StagedFilesTable; +import org.finos.legend.engine.persistence.components.relational.sqldom.SqlDomException; +import org.finos.legend.engine.persistence.components.relational.sqldom.SqlGen; +import org.finos.legend.engine.persistence.components.relational.sqldom.common.Clause; +import org.finos.legend.engine.persistence.components.relational.sqldom.schemaops.expresssions.table.Table; +import org.finos.legend.engine.persistence.components.relational.sqldom.schemaops.statements.DDLStatement; +import org.finos.legend.engine.persistence.components.relational.sqldom.schemaops.values.Value; + +import java.util.ArrayList; +import java.util.List; + +import static org.finos.legend.engine.persistence.components.relational.sqldom.common.Clause.LOAD_DATA; +import static org.finos.legend.engine.persistence.components.relational.sqldom.common.Clause.OVERWRITE; +import static org.finos.legend.engine.persistence.components.relational.sqldom.utils.SqlGenUtils.CLOSING_PARENTHESIS; +import static org.finos.legend.engine.persistence.components.relational.sqldom.utils.SqlGenUtils.COMMA; +import static org.finos.legend.engine.persistence.components.relational.sqldom.utils.SqlGenUtils.EMPTY; +import static org.finos.legend.engine.persistence.components.relational.sqldom.utils.SqlGenUtils.OPEN_PARENTHESIS; +import static org.finos.legend.engine.persistence.components.relational.sqldom.utils.SqlGenUtils.WHITE_SPACE; + +public class CopyStatement implements DDLStatement +{ + private Table table; + private StagedFilesTable stagedFilesTable; + private List columns; + + public CopyStatement() + { + columns = new ArrayList<>(); + } + + /* + Copy GENERIC PLAN for Big Query: + LOAD DATA OVERWRITE table_name + (COLUMN_LIST) + FROM FILES (LOAD_OPTIONS) + */ + @Override + public void genSql(StringBuilder builder) throws SqlDomException + { + validate(); + builder.append(LOAD_DATA.get()); + builder.append(WHITE_SPACE); + builder.append(OVERWRITE.get()); + builder.append(WHITE_SPACE); + table.genSqlWithoutAlias(builder); + builder.append(WHITE_SPACE); + + builder.append(OPEN_PARENTHESIS); + SqlGen.genSqlList(builder, columns, EMPTY, COMMA); + builder.append(CLOSING_PARENTHESIS); + + builder.append(WHITE_SPACE + Clause.FROM.get() + WHITE_SPACE); + stagedFilesTable.genSql(builder); + } + + @Override + public void push(Object node) + { + if (node instanceof Table) + { + table = (Table) node; + } + else if (node instanceof StagedFilesTable) + { + stagedFilesTable = (StagedFilesTable) node; + } + else if (node instanceof Value) + { + columns.add((Value) node); + } + } + + void validate() throws SqlDomException + { + if (stagedFilesTable == null) + { + throw new SqlDomException("stagedFilesTable is mandatory for Copy Table Command"); + } + + if (table == null) + { + throw new SqlDomException("table is mandatory for Copy Table Command"); + } + } +} diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sqldom/schemaops/values/StagedFilesField.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sqldom/schemaops/values/StagedFilesField.java new file mode 100644 index 00000000000..0df2a15b8e8 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/main/java/org/finos/legend/engine/persistence/components/relational/bigquery/sqldom/schemaops/values/StagedFilesField.java @@ -0,0 +1,69 @@ +// Copyright 2023 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.persistence.components.relational.bigquery.sqldom.schemaops.values; + +import org.finos.legend.engine.persistence.components.relational.sqldom.SqlDomException; +import org.finos.legend.engine.persistence.components.relational.sqldom.schema.DataType; +import org.finos.legend.engine.persistence.components.relational.sqldom.schemaops.values.Value; +import org.finos.legend.engine.persistence.components.relational.sqldom.utils.SqlGenUtils; + +import static org.finos.legend.engine.persistence.components.relational.sqldom.utils.SqlGenUtils.WHITE_SPACE; + +public class StagedFilesField extends Value +{ + private String columnName; + + private DataType dataType; + + public StagedFilesField(String quoteIdentifier, String columnName, DataType datatype) + { + super(quoteIdentifier); + this.columnName = columnName; + this.dataType = datatype; + } + + @Override + public void genSql(StringBuilder builder) throws SqlDomException + { + genSqlWithoutAlias(builder); + super.genSql(builder); + } + + @Override + public void genSqlWithoutAlias(StringBuilder builder) throws SqlDomException + { + validate(); + builder.append(SqlGenUtils.getQuotedField(columnName, getQuoteIdentifier())); + builder.append(WHITE_SPACE); + dataType.genSql(builder); + } + + @Override + public void push(Object node) + { + } + + void validate() throws SqlDomException + { + if (columnName == null) + { + throw new SqlDomException("columnName is empty"); + } + if (dataType == null) + { + throw new SqlDomException("dataType is empty"); + } + } +} diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/java/org/finos/legend/engine/persistence/components/e2e/BulkLoadExecutorTest.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/java/org/finos/legend/engine/persistence/components/e2e/BulkLoadExecutorTest.java new file mode 100644 index 00000000000..a8efc6b0c04 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/java/org/finos/legend/engine/persistence/components/e2e/BulkLoadExecutorTest.java @@ -0,0 +1,195 @@ +// Copyright 2023 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.persistence.components.e2e; + +import org.finos.legend.engine.persistence.components.common.Datasets; +import org.finos.legend.engine.persistence.components.common.FileFormat; +import org.finos.legend.engine.persistence.components.common.LoadOptions; +import org.finos.legend.engine.persistence.components.ingestmode.BulkLoad; +import org.finos.legend.engine.persistence.components.ingestmode.audit.DateTimeAuditing; +import org.finos.legend.engine.persistence.components.ingestmode.digest.NoDigestGenStrategy; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.DataType; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetDefinition; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.Field; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.FieldType; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.SchemaDefinition; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.StagedFilesDataset; +import org.finos.legend.engine.persistence.components.relational.api.IngestStatus; +import org.finos.legend.engine.persistence.components.relational.api.IngestorResult; +import org.finos.legend.engine.persistence.components.relational.api.RelationalConnection; +import org.finos.legend.engine.persistence.components.relational.api.RelationalIngestor; +import org.finos.legend.engine.persistence.components.relational.bigquery.BigQuerySink; +import org.finos.legend.engine.persistence.components.relational.bigquery.executor.BigQueryConnection; +import org.finos.legend.engine.persistence.components.relational.bigquery.logicalplan.datasets.BigQueryStagedFilesDatasetProperties; +import org.finos.legend.engine.persistence.components.util.BulkLoadMetadataDataset; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +import java.io.IOException; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import static org.finos.legend.engine.persistence.components.common.StatisticName.ROWS_INSERTED; +import static org.finos.legend.engine.persistence.components.common.StatisticName.ROWS_WITH_ERRORS; + +@Disabled +public class BulkLoadExecutorTest extends BigQueryEndToEndTest +{ + private static final String APPEND_TIME = "append_time"; + private static final String BATCH_ID = "batch_id"; + private static final String TASK_ID_VALUE = "xyz123"; + private static final String COL_INT = "col_int"; + private static final String COL_STRING = "col_string"; + private static final String COL_DECIMAL = "col_decimal"; + private static final String COL_DATETIME = "col_datetime"; + private static final List FILE_LIST = Arrays.asList("the uri to the staged_file1.csv on GCS", "the uri to the staged_file2.csv on GCS", "the uri to the staged_file3.csv on GCS"); + private static final List BAD_FILE_LIST = Arrays.asList("the uri to the bad_file.csv on GCS", "the uri to the staged_file1.csv on GCS"); + private static Field col1 = Field.builder() + .name(COL_INT) + .type(FieldType.of(DataType.INT, Optional.empty(), Optional.empty())) + .build(); + private static Field col2 = Field.builder() + .name(COL_STRING) + .type(FieldType.of(DataType.STRING, Optional.empty(), Optional.empty())) + .build(); + private static Field col3 = Field.builder() + .name(COL_DECIMAL) + .type(FieldType.of(DataType.DECIMAL, 5, 2)) + .build(); + private static Field col4 = Field.builder() + .name(COL_DATETIME) + .type(FieldType.of(DataType.DATETIME, Optional.empty(), Optional.empty())) + .build(); + + @Test + public void testMilestoning() throws IOException, InterruptedException + { + BulkLoad bulkLoad = BulkLoad.builder() + .batchIdField(BATCH_ID) + .digestGenStrategy(NoDigestGenStrategy.builder().build()) + .auditing(DateTimeAuditing.builder().dateTimeField(APPEND_TIME).build()) + .build(); + + Dataset stagedFilesDataset = StagedFilesDataset.builder() + .stagedFilesDatasetProperties( + BigQueryStagedFilesDatasetProperties.builder() + .fileFormat(FileFormat.CSV) + .addAllFiles(FILE_LIST).build()) + .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4)).build()) + .build(); + + Dataset mainDataset = DatasetDefinition.builder() + .group("demo").name("append_log") + .schema(SchemaDefinition.builder().build()) + .build(); + + BulkLoadMetadataDataset bulkLoadMetadataDataset = BulkLoadMetadataDataset.builder().group("demo").name("bulk_load_batch_metadata").build(); + + Datasets datasets = Datasets.builder().mainDataset(mainDataset).stagingDataset(stagedFilesDataset).bulkLoadMetadataDataset(bulkLoadMetadataDataset).build(); + + // Clean up + delete("demo", "main"); + delete("demo", "staging"); + delete("demo", "batch_metadata"); + delete("demo", "append_log"); + delete("demo", "bulk_load_batch_metadata"); + + + RelationalIngestor ingestor = RelationalIngestor.builder() + .ingestMode(bulkLoad) + .relationalSink(BigQuerySink.get()) + .collectStatistics(true) + .executionTimestampClock(fixedClock_2000_01_01) + .bulkLoadTaskIdValue(TASK_ID_VALUE) + .build(); + + RelationalConnection connection = BigQueryConnection.of(getBigQueryConnection()); + IngestorResult ingestorResult = ingestor.performFullIngestion(connection, datasets); + + // Verify + List> tableData = runQuery("select * from `demo`.`append_log` order by col_int asc"); + String expectedPath = "src/test/resources/expected/bulk_load/expected_table1.csv"; + String[] schema = new String[]{COL_INT, COL_STRING, COL_DECIMAL, COL_DATETIME, BATCH_ID, APPEND_TIME}; + assertFileAndTableDataEquals(schema, expectedPath, tableData); + + long rowsInserted = (long) ingestorResult.statisticByName().get(ROWS_INSERTED); + long rowsWithErrors = (long) ingestorResult.statisticByName().get(ROWS_WITH_ERRORS); + Assertions.assertEquals(7, rowsInserted); + Assertions.assertEquals(0, rowsWithErrors); + Assertions.assertEquals(IngestStatus.SUCCEEDED, ingestorResult.status()); + } + + @Test + public void testMilestoningFailure() throws IOException, InterruptedException + { + BulkLoad bulkLoad = BulkLoad.builder() + .batchIdField(BATCH_ID) + .digestGenStrategy(NoDigestGenStrategy.builder().build()) + .auditing(DateTimeAuditing.builder().dateTimeField(APPEND_TIME).build()) + .build(); + + Dataset stagedFilesDataset = StagedFilesDataset.builder() + .stagedFilesDatasetProperties( + BigQueryStagedFilesDatasetProperties.builder() + .fileFormat(FileFormat.CSV) + .loadOptions(LoadOptions.builder().maxBadRecords(10L).build()) + .addAllFiles(BAD_FILE_LIST).build()) + .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4)).build()) + .build(); + + Dataset mainDataset = DatasetDefinition.builder() + .group("demo").name("append_log") + .schema(SchemaDefinition.builder().build()) + .build(); + + BulkLoadMetadataDataset bulkLoadMetadataDataset = BulkLoadMetadataDataset.builder().group("demo").name("bulk_load_batch_metadata").build(); + + Datasets datasets = Datasets.builder().mainDataset(mainDataset).stagingDataset(stagedFilesDataset).bulkLoadMetadataDataset(bulkLoadMetadataDataset).build(); + + // Clean up + delete("demo", "main"); + delete("demo", "staging"); + delete("demo", "batch_metadata"); + delete("demo", "append_log"); + delete("demo", "bulk_load_batch_metadata"); + + + RelationalIngestor ingestor = RelationalIngestor.builder() + .ingestMode(bulkLoad) + .relationalSink(BigQuerySink.get()) + .collectStatistics(true) + .executionTimestampClock(fixedClock_2000_01_01) + .build(); + + RelationalConnection connection = BigQueryConnection.of(getBigQueryConnection()); + IngestorResult ingestorResult = ingestor.performFullIngestion(connection, datasets); + + // Verify + List> tableData = runQuery("select * from `demo`.`append_log` order by col_int asc"); + String expectedPath = "src/test/resources/expected/bulk_load/expected_table2.csv"; + String[] schema = new String[]{COL_INT, COL_STRING, COL_DECIMAL, COL_DATETIME, BATCH_ID, APPEND_TIME}; + assertFileAndTableDataEquals(schema, expectedPath, tableData); + + long rowsInserted = (long) ingestorResult.statisticByName().get(ROWS_INSERTED); + long rowsWithErrors = (long) ingestorResult.statisticByName().get(ROWS_WITH_ERRORS); + Assertions.assertEquals(4, rowsInserted); + Assertions.assertEquals(2, rowsWithErrors); + Assertions.assertEquals(IngestStatus.FAILED, ingestorResult.status()); + } +} diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/java/org/finos/legend/engine/persistence/components/e2e/BulkLoadGeneratorTest.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/java/org/finos/legend/engine/persistence/components/e2e/BulkLoadGeneratorTest.java new file mode 100644 index 00000000000..410dabb69e6 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/java/org/finos/legend/engine/persistence/components/e2e/BulkLoadGeneratorTest.java @@ -0,0 +1,138 @@ +// Copyright 2023 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.persistence.components.e2e; + +import org.finos.legend.engine.persistence.components.common.Datasets; +import org.finos.legend.engine.persistence.components.common.FileFormat; +import org.finos.legend.engine.persistence.components.ingestmode.BulkLoad; +import org.finos.legend.engine.persistence.components.ingestmode.audit.DateTimeAuditing; +import org.finos.legend.engine.persistence.components.ingestmode.digest.NoDigestGenStrategy; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.DataType; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetDefinition; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.Field; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.FieldType; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.SchemaDefinition; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.StagedFilesDataset; +import org.finos.legend.engine.persistence.components.relational.api.GeneratorResult; +import org.finos.legend.engine.persistence.components.relational.api.RelationalGenerator; +import org.finos.legend.engine.persistence.components.relational.bigquery.BigQuerySink; +import org.finos.legend.engine.persistence.components.relational.bigquery.logicalplan.datasets.BigQueryStagedFilesDatasetProperties; +import org.finos.legend.engine.persistence.components.util.BulkLoadMetadataDataset; +import org.junit.jupiter.api.Disabled; +import org.junit.jupiter.api.Test; + +import java.io.IOException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +@Disabled +public class BulkLoadGeneratorTest extends BigQueryEndToEndTest +{ + private static final String APPEND_TIME = "append_time"; + private static final String BATCH_ID = "batch_id"; + private static final String TASK_ID_VALUE = "xyz123"; + private static final String COL_INT = "col_int"; + private static final String COL_STRING = "col_string"; + private static final String COL_DECIMAL = "col_decimal"; + private static final String COL_DATETIME = "col_datetime"; + private static final List FILE_LIST = Arrays.asList("the uri to the staged_file1.csv on GCS", "the uri to the staged_file2.csv on GCS", "the uri to the staged_file3.csv on GCS"); + private static Field col1 = Field.builder() + .name(COL_INT) + .type(FieldType.of(DataType.INT, Optional.empty(), Optional.empty())) + .build(); + private static Field col2 = Field.builder() + .name(COL_STRING) + .type(FieldType.of(DataType.STRING, Optional.empty(), Optional.empty())) + .build(); + private static Field col3 = Field.builder() + .name(COL_DECIMAL) + .type(FieldType.of(DataType.DECIMAL, 5, 2)) + .build(); + private static Field col4 = Field.builder() + .name(COL_DATETIME) + .type(FieldType.of(DataType.DATETIME, Optional.empty(), Optional.empty())) + .build(); + + @Test + public void testMilestoning() throws IOException, InterruptedException + { + BulkLoad bulkLoad = BulkLoad.builder() + .batchIdField(BATCH_ID) + .digestGenStrategy(NoDigestGenStrategy.builder().build()) + .auditing(DateTimeAuditing.builder().dateTimeField(APPEND_TIME).build()) + .build(); + + Dataset stagedFilesDataset = StagedFilesDataset.builder() + .stagedFilesDatasetProperties( + BigQueryStagedFilesDatasetProperties.builder() + .fileFormat(FileFormat.CSV) + .addAllFiles(FILE_LIST).build()) + .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4)).build()) + .build(); + + Dataset mainDataset = DatasetDefinition.builder() + .group("demo").name("append_log") + .schema(SchemaDefinition.builder().build()) + .build(); + + BulkLoadMetadataDataset bulkLoadMetadataDataset = BulkLoadMetadataDataset.builder().group("demo").name("bulk_load_batch_metadata").build(); + + Datasets datasets = Datasets.builder().mainDataset(mainDataset).stagingDataset(stagedFilesDataset).bulkLoadMetadataDataset(bulkLoadMetadataDataset).build(); + + // Clean up + delete("demo", "main"); + delete("demo", "staging"); + delete("demo", "batch_metadata"); + delete("demo", "append_log"); + delete("demo", "bulk_load_batch_metadata"); + + + RelationalGenerator generator = RelationalGenerator.builder() + .ingestMode(bulkLoad) + .relationalSink(BigQuerySink.get()) + .collectStatistics(true) + .executionTimestampClock(fixedClock_2000_01_01) + .bulkLoadTaskIdValue(TASK_ID_VALUE) + .bulkLoadBatchStatusPattern("{STATUS}") + .build(); + + GeneratorResult operations = generator.generateOperations(datasets); + List preActionsSqlList = operations.preActionsSql(); + List milestoningSqlList = operations.ingestSql(); + List metadataIngestSql = operations.metadataIngestSql(); + List postActionsSql = operations.postActionsSql(); + + List newMetadataIngestSql = new ArrayList<>(); + for (String metadataSql : metadataIngestSql) + { + String newSql = metadataSql.replace("{STATUS}", "SUCCEEDED"); + newMetadataIngestSql.add(newSql); + } + metadataIngestSql = newMetadataIngestSql; + + + ingest(preActionsSqlList, milestoningSqlList, metadataIngestSql, postActionsSql); + + // Verify + List> tableData = runQuery("select * from `demo`.`append_log` order by col_int asc"); + String expectedPath = "src/test/resources/expected/bulk_load/expected_table1.csv"; + String[] schema = new String[]{COL_INT, COL_STRING, COL_DECIMAL, COL_DATETIME, BATCH_ID, APPEND_TIME}; + assertFileAndTableDataEquals(schema, expectedPath, tableData); + } +} diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/BulkLoadTest.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/BulkLoadTest.java new file mode 100644 index 00000000000..c59096a0c3e --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/BulkLoadTest.java @@ -0,0 +1,478 @@ +// Copyright 2023 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.persistence.components.ingestmode; + +import org.finos.legend.engine.persistence.components.common.Datasets; +import org.finos.legend.engine.persistence.components.common.FileFormat; +import org.finos.legend.engine.persistence.components.common.LoadOptions; +import org.finos.legend.engine.persistence.components.common.StatisticName; +import org.finos.legend.engine.persistence.components.ingestmode.audit.DateTimeAuditing; +import org.finos.legend.engine.persistence.components.ingestmode.audit.NoAuditing; +import org.finos.legend.engine.persistence.components.ingestmode.digest.NoDigestGenStrategy; +import org.finos.legend.engine.persistence.components.ingestmode.digest.UDFBasedDigestGenStrategy; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.DataType; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.Dataset; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.DatasetDefinition; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.Field; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.FieldType; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.SchemaDefinition; +import org.finos.legend.engine.persistence.components.logicalplan.datasets.StagedFilesDataset; +import org.finos.legend.engine.persistence.components.relational.CaseConversion; +import org.finos.legend.engine.persistence.components.relational.api.GeneratorResult; +import org.finos.legend.engine.persistence.components.relational.api.RelationalGenerator; +import org.finos.legend.engine.persistence.components.relational.bigquery.BigQuerySink; +import org.finos.legend.engine.persistence.components.relational.bigquery.logicalplan.datasets.BigQueryStagedFilesDatasetProperties; +import org.junit.jupiter.api.Assertions; +import org.junit.jupiter.api.Test; + +import java.time.Clock; +import java.time.ZoneOffset; +import java.time.ZonedDateTime; +import java.util.Arrays; +import java.util.List; +import java.util.Map; +import java.util.Optional; + +import static org.finos.legend.engine.persistence.components.common.StatisticName.ROWS_DELETED; +import static org.finos.legend.engine.persistence.components.common.StatisticName.ROWS_INSERTED; +import static org.finos.legend.engine.persistence.components.common.StatisticName.ROWS_TERMINATED; +import static org.finos.legend.engine.persistence.components.common.StatisticName.ROWS_UPDATED; + +public class BulkLoadTest +{ + private static final String APPEND_TIME = "append_time"; + private static final String DIGEST = "digest"; + private static final String DIGEST_UDF = "LAKEHOUSE_MD5"; + private static final String BATCH_ID = "batch_id"; + private static final String TASK_ID_VALUE = "xyz123"; + private static final String COL_INT = "col_int"; + private static final String COL_STRING = "col_string"; + private static final String COL_DECIMAL = "col_decimal"; + private static final String COL_DATETIME = "col_datetime"; + private static final String COL_VARIANT = "col_variant"; + + private static Field col1 = Field.builder() + .name(COL_INT) + .type(FieldType.of(DataType.INT, Optional.empty(), Optional.empty())) + .build(); + private static Field col2 = Field.builder() + .name(COL_STRING) + .type(FieldType.of(DataType.STRING, Optional.empty(), Optional.empty())) + .build(); + private static Field col3 = Field.builder() + .name(COL_DECIMAL) + .type(FieldType.of(DataType.DECIMAL, 5, 2)) + .build(); + private static Field col4 = Field.builder() + .name(COL_DATETIME) + .type(FieldType.of(DataType.DATETIME, Optional.empty(), Optional.empty())) + .build(); + + private static Field col5 = Field.builder() + .name(COL_VARIANT) + .type(FieldType.of(DataType.VARIANT, Optional.empty(), Optional.empty())) + .build(); + + private List filesList = Arrays.asList("/path/xyz/file1.csv", "/path/xyz/file2.csv"); + + protected final ZonedDateTime fixedZonedDateTime_2000_01_01 = ZonedDateTime.of(2000, 1, 1, 0, 0, 0, 0, ZoneOffset.UTC); + protected final Clock fixedClock_2000_01_01 = Clock.fixed(fixedZonedDateTime_2000_01_01.toInstant(), ZoneOffset.UTC); + + @Test + public void testBulkLoadWithDigestNotGeneratedAuditEnabledNoExtraOptions() + { + BulkLoad bulkLoad = BulkLoad.builder() + .batchIdField(BATCH_ID) + .digestGenStrategy(NoDigestGenStrategy.builder().build()) + .auditing(DateTimeAuditing.builder().dateTimeField(APPEND_TIME).build()) + .build(); + + Dataset stagedFilesDataset = StagedFilesDataset.builder() + .stagedFilesDatasetProperties( + BigQueryStagedFilesDatasetProperties.builder() + .fileFormat(FileFormat.CSV) + .addAllFiles(filesList).build()) + .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4, col5)).build()) + .build(); + + Dataset mainDataset = DatasetDefinition.builder() + .database("my_db").name("my_name").alias("my_alias") + .schema(SchemaDefinition.builder().build()) + .build(); + + RelationalGenerator generator = RelationalGenerator.builder() + .ingestMode(bulkLoad) + .relationalSink(BigQuerySink.get()) + .collectStatistics(true) + .executionTimestampClock(fixedClock_2000_01_01) + .bulkLoadTaskIdValue(TASK_ID_VALUE) + .batchIdPattern("{NEXT_BATCH_ID}") + .build(); + + GeneratorResult operations = generator.generateOperations(Datasets.of(mainDataset, stagedFilesDataset)); + + List preActionsSql = operations.preActionsSql(); + List ingestSql = operations.ingestSql(); + List metadataIngestSql = operations.metadataIngestSql(); + Map statsSql = operations.postIngestStatisticsSql(); + + String expectedCreateTableSql = "CREATE TABLE IF NOT EXISTS `my_db`.`my_name`" + + "(`col_int` INT64,`col_string` STRING,`col_decimal` NUMERIC(5,2),`col_datetime` DATETIME,`col_variant` JSON,`batch_id` INT64,`append_time` DATETIME)"; + + String expectedCopySql = "LOAD DATA OVERWRITE `my_db`.`my_name_legend_persistence_temp` " + + "(`col_int` INT64,`col_string` STRING,`col_decimal` NUMERIC(5,2),`col_datetime` DATETIME,`col_variant` JSON) " + + "FROM FILES (uris=['/path/xyz/file1.csv','/path/xyz/file2.csv'], format='CSV')"; + + String expectedInsertSql = "INSERT INTO `my_db`.`my_name` " + + "(`col_int`, `col_string`, `col_decimal`, `col_datetime`, `col_variant`, `batch_id`, `append_time`) " + + "(SELECT legend_persistence_temp.`col_int`,legend_persistence_temp.`col_string`,legend_persistence_temp.`col_decimal`,legend_persistence_temp.`col_datetime`,legend_persistence_temp.`col_variant`,{NEXT_BATCH_ID},PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00') " + + "FROM `my_db`.`my_name_legend_persistence_temp` as legend_persistence_temp)"; + + String expectedMetadataIngestSql = "INSERT INTO bulk_load_batch_metadata (`batch_id`, `table_name`, `batch_start_ts_utc`, `batch_end_ts_utc`, `batch_status`, `batch_source_info`) " + + "(SELECT {NEXT_BATCH_ID},'my_name',PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00'),CURRENT_DATETIME(),'{BULK_LOAD_BATCH_STATUS_PLACEHOLDER}',PARSE_JSON('{\"files\":[\"/path/xyz/file1.csv\",\"/path/xyz/file2.csv\"],\"task_id\":\"xyz123\"}'))"; + + Assertions.assertEquals(expectedCreateTableSql, preActionsSql.get(0)); + Assertions.assertEquals(expectedCopySql, ingestSql.get(0)); + Assertions.assertEquals(expectedInsertSql, ingestSql.get(1)); + Assertions.assertEquals(expectedMetadataIngestSql, metadataIngestSql.get(0)); + + Assertions.assertEquals("SELECT 0 as `rowsDeleted`", statsSql.get(ROWS_DELETED)); + Assertions.assertEquals("SELECT 0 as `rowsTerminated`", statsSql.get(ROWS_TERMINATED)); + Assertions.assertEquals("SELECT 0 as `rowsUpdated`", statsSql.get(ROWS_UPDATED)); + Assertions.assertEquals("SELECT COUNT(*) as `rowsInserted` FROM `my_db`.`my_name` as my_alias WHERE my_alias.`append_time` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00')", statsSql.get(ROWS_INSERTED)); + } + + @Test + public void testBulkLoadWithDigestNotGeneratedAuditEnabledAllOptionsNoTaskId() + { + BulkLoad bulkLoad = BulkLoad.builder() + .batchIdField(BATCH_ID) + .digestGenStrategy(NoDigestGenStrategy.builder().build()) + .auditing(DateTimeAuditing.builder().dateTimeField(APPEND_TIME).build()) + .build(); + + Dataset stagedFilesDataset = StagedFilesDataset.builder() + .stagedFilesDatasetProperties( + BigQueryStagedFilesDatasetProperties.builder() + .fileFormat(FileFormat.CSV) + .loadOptions(LoadOptions.builder() + .encoding("UTF8") + .maxBadRecords(100L) + .nullMarker("NULL") + .quote("'") + .compression("GZIP") + .fieldDelimiter(",") + .skipLeadingRows(1L) + .build()) + .addAllFiles(filesList).build()) + .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4, col5)).build()) + .build(); + + Dataset mainDataset = DatasetDefinition.builder() + .database("my_db").name("my_name").alias("my_alias") + .schema(SchemaDefinition.builder().build()) + .build(); + + RelationalGenerator generator = RelationalGenerator.builder() + .ingestMode(bulkLoad) + .relationalSink(BigQuerySink.get()) + .collectStatistics(true) + .executionTimestampClock(fixedClock_2000_01_01) + .build(); + + GeneratorResult operations = generator.generateOperations(Datasets.of(mainDataset, stagedFilesDataset)); + + List preActionsSql = operations.preActionsSql(); + List ingestSql = operations.ingestSql(); + List metadataIngestSql = operations.metadataIngestSql(); + Map statsSql = operations.postIngestStatisticsSql(); + + String expectedCreateTableSql = "CREATE TABLE IF NOT EXISTS `my_db`.`my_name`" + + "(`col_int` INT64,`col_string` STRING,`col_decimal` NUMERIC(5,2),`col_datetime` DATETIME,`col_variant` JSON,`batch_id` INT64,`append_time` DATETIME)"; + + String expectedCopySql = "LOAD DATA OVERWRITE `my_db`.`my_name_legend_persistence_temp` " + + "(`col_int` INT64,`col_string` STRING,`col_decimal` NUMERIC(5,2),`col_datetime` DATETIME,`col_variant` JSON) " + + "FROM FILES " + + "(uris=['/path/xyz/file1.csv','/path/xyz/file2.csv'], max_bad_records=100, quote=''', skip_leading_rows=1, format='CSV', encoding='UTF8', compression='GZIP', field_delimiter=',', null_marker='NULL')"; + + String expectedInsertSql = "INSERT INTO `my_db`.`my_name` " + + "(`col_int`, `col_string`, `col_decimal`, `col_datetime`, `col_variant`, `batch_id`, `append_time`) " + + "(SELECT legend_persistence_temp.`col_int`,legend_persistence_temp.`col_string`,legend_persistence_temp.`col_decimal`,legend_persistence_temp.`col_datetime`,legend_persistence_temp.`col_variant`,(SELECT COALESCE(MAX(bulk_load_batch_metadata.`batch_id`),0)+1 FROM bulk_load_batch_metadata as bulk_load_batch_metadata WHERE UPPER(bulk_load_batch_metadata.`table_name`) = 'MY_NAME'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00') " + + "FROM `my_db`.`my_name_legend_persistence_temp` as legend_persistence_temp)"; + + String expectedMetadataIngestSql = "INSERT INTO bulk_load_batch_metadata (`batch_id`, `table_name`, `batch_start_ts_utc`, `batch_end_ts_utc`, `batch_status`, `batch_source_info`) " + + "(SELECT (SELECT COALESCE(MAX(bulk_load_batch_metadata.`batch_id`),0)+1 FROM bulk_load_batch_metadata as bulk_load_batch_metadata WHERE UPPER(bulk_load_batch_metadata.`table_name`) = 'MY_NAME'),'my_name',PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00'),CURRENT_DATETIME(),'{BULK_LOAD_BATCH_STATUS_PLACEHOLDER}'," + + "PARSE_JSON('{\"files\":[\"/path/xyz/file1.csv\",\"/path/xyz/file2.csv\"]}'))"; + + Assertions.assertEquals(expectedCreateTableSql, preActionsSql.get(0)); + Assertions.assertEquals(expectedCopySql, ingestSql.get(0)); + Assertions.assertEquals(expectedInsertSql, ingestSql.get(1)); + Assertions.assertEquals(expectedMetadataIngestSql, metadataIngestSql.get(0)); + + Assertions.assertEquals("SELECT 0 as `rowsDeleted`", statsSql.get(ROWS_DELETED)); + Assertions.assertEquals("SELECT 0 as `rowsTerminated`", statsSql.get(ROWS_TERMINATED)); + Assertions.assertEquals("SELECT 0 as `rowsUpdated`", statsSql.get(ROWS_UPDATED)); + Assertions.assertEquals("SELECT COUNT(*) as `rowsInserted` FROM `my_db`.`my_name` as my_alias WHERE my_alias.`append_time` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00')", statsSql.get(ROWS_INSERTED)); + } + + @Test + public void testBulkLoadWithDigestNotGeneratedAuditDisabledNoExtraOptions() + { + BulkLoad bulkLoad = BulkLoad.builder() + .batchIdField(BATCH_ID) + .digestGenStrategy(NoDigestGenStrategy.builder().build()) + .auditing(NoAuditing.builder().build()) + .build(); + + Dataset stagedFilesDataset = StagedFilesDataset.builder() + .stagedFilesDatasetProperties( + BigQueryStagedFilesDatasetProperties.builder() + .fileFormat(FileFormat.CSV) + .addAllFiles(filesList).build()) + .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4, col5)).build()) + .build(); + + Dataset mainDataset = DatasetDefinition.builder() + .database("my_db").name("my_name").alias("my_alias") + .schema(SchemaDefinition.builder().build()) + .build(); + + RelationalGenerator generator = RelationalGenerator.builder() + .ingestMode(bulkLoad) + .relationalSink(BigQuerySink.get()) + .collectStatistics(true) + .executionTimestampClock(fixedClock_2000_01_01) + .bulkLoadTaskIdValue(TASK_ID_VALUE) + .build(); + + GeneratorResult operations = generator.generateOperations(Datasets.of(mainDataset, stagedFilesDataset)); + + List preActionsSql = operations.preActionsSql(); + List ingestSql = operations.ingestSql(); + Map statsSql = operations.postIngestStatisticsSql(); + + String expectedCreateTableSql = "CREATE TABLE IF NOT EXISTS `my_db`.`my_name`" + + "(`col_int` INT64,`col_string` STRING,`col_decimal` NUMERIC(5,2),`col_datetime` DATETIME,`col_variant` JSON,`batch_id` INT64)"; + + String expectedCopySql = "LOAD DATA OVERWRITE `my_db`.`my_name_legend_persistence_temp` " + + "(`col_int` INT64,`col_string` STRING,`col_decimal` NUMERIC(5,2),`col_datetime` DATETIME,`col_variant` JSON) " + + "FROM FILES (uris=['/path/xyz/file1.csv','/path/xyz/file2.csv'], format='CSV')"; + + String expectedInsertSql = "INSERT INTO `my_db`.`my_name` " + + "(`col_int`, `col_string`, `col_decimal`, `col_datetime`, `col_variant`, `batch_id`) " + + "(SELECT legend_persistence_temp.`col_int`,legend_persistence_temp.`col_string`,legend_persistence_temp.`col_decimal`,legend_persistence_temp.`col_datetime`,legend_persistence_temp.`col_variant`,(SELECT COALESCE(MAX(bulk_load_batch_metadata.`batch_id`),0)+1 FROM bulk_load_batch_metadata as bulk_load_batch_metadata WHERE UPPER(bulk_load_batch_metadata.`table_name`) = 'MY_NAME') " + + "FROM `my_db`.`my_name_legend_persistence_temp` as legend_persistence_temp)"; + + Assertions.assertEquals(expectedCreateTableSql, preActionsSql.get(0)); + Assertions.assertEquals(expectedCopySql, ingestSql.get(0)); + Assertions.assertEquals(expectedInsertSql, ingestSql.get(1)); + + Assertions.assertEquals("SELECT 0 as `rowsDeleted`", statsSql.get(ROWS_DELETED)); + Assertions.assertEquals("SELECT 0 as `rowsTerminated`", statsSql.get(ROWS_TERMINATED)); + Assertions.assertEquals("SELECT 0 as `rowsUpdated`", statsSql.get(ROWS_UPDATED)); + Assertions.assertNull(statsSql.get(ROWS_INSERTED)); + } + + @Test + public void testBulkLoadWithDigestGeneratedAuditEnabledNoExtraOptions() + { + BulkLoad bulkLoad = BulkLoad.builder() + .batchIdField(BATCH_ID) + .digestGenStrategy(UDFBasedDigestGenStrategy.builder().digestField(DIGEST).digestUdfName(DIGEST_UDF).build()) + .auditing(DateTimeAuditing.builder().dateTimeField(APPEND_TIME).build()) + .build(); + + Dataset stagedFilesDataset = StagedFilesDataset.builder() + .stagedFilesDatasetProperties( + BigQueryStagedFilesDatasetProperties.builder() + .fileFormat(FileFormat.CSV) + .addAllFiles(filesList).build()) + .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4, col5)).build()) + .build(); + + Dataset mainDataset = DatasetDefinition.builder() + .database("my_db").name("my_name").alias("my_alias") + .schema(SchemaDefinition.builder().build()) + .build(); + + RelationalGenerator generator = RelationalGenerator.builder() + .ingestMode(bulkLoad) + .relationalSink(BigQuerySink.get()) + .collectStatistics(true) + .executionTimestampClock(fixedClock_2000_01_01) + .bulkLoadTaskIdValue(TASK_ID_VALUE) + .build(); + + GeneratorResult operations = generator.generateOperations(Datasets.of(mainDataset, stagedFilesDataset)); + + List preActionsSql = operations.preActionsSql(); + List ingestSql = operations.ingestSql(); + Map statsSql = operations.postIngestStatisticsSql(); + + String expectedCreateTableSql = "CREATE TABLE IF NOT EXISTS `my_db`.`my_name`" + + "(`col_int` INT64,`col_string` STRING,`col_decimal` NUMERIC(5,2),`col_datetime` DATETIME,`col_variant` JSON,`digest` STRING,`batch_id` INT64,`append_time` DATETIME)"; + + String expectedCopySql = "LOAD DATA OVERWRITE `my_db`.`my_name_legend_persistence_temp` " + + "(`col_int` INT64,`col_string` STRING,`col_decimal` NUMERIC(5,2),`col_datetime` DATETIME,`col_variant` JSON) " + + "FROM FILES (uris=['/path/xyz/file1.csv','/path/xyz/file2.csv'], format='CSV')"; + + String expectedInsertSql = "INSERT INTO `my_db`.`my_name` " + + "(`col_int`, `col_string`, `col_decimal`, `col_datetime`, `col_variant`, `digest`, `batch_id`, `append_time`) " + + "(SELECT legend_persistence_temp.`col_int`,legend_persistence_temp.`col_string`,legend_persistence_temp.`col_decimal`,legend_persistence_temp.`col_datetime`,legend_persistence_temp.`col_variant`,LAKEHOUSE_MD5(TO_JSON(legend_persistence_temp)),(SELECT COALESCE(MAX(bulk_load_batch_metadata.`batch_id`),0)+1 FROM bulk_load_batch_metadata as bulk_load_batch_metadata WHERE UPPER(bulk_load_batch_metadata.`table_name`) = 'MY_NAME'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00') " + + "FROM `my_db`.`my_name_legend_persistence_temp` as legend_persistence_temp)"; + + Assertions.assertEquals(expectedCreateTableSql, preActionsSql.get(0)); + Assertions.assertEquals(expectedCopySql, ingestSql.get(0)); + Assertions.assertEquals(expectedInsertSql, ingestSql.get(1)); + + Assertions.assertEquals("SELECT 0 as `rowsDeleted`", statsSql.get(ROWS_DELETED)); + Assertions.assertEquals("SELECT 0 as `rowsTerminated`", statsSql.get(ROWS_TERMINATED)); + Assertions.assertEquals("SELECT 0 as `rowsUpdated`", statsSql.get(ROWS_UPDATED)); + Assertions.assertEquals("SELECT COUNT(*) as `rowsInserted` FROM `my_db`.`my_name` as my_alias WHERE my_alias.`append_time` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00')", statsSql.get(ROWS_INSERTED)); + } + + @Test + public void testBulkLoadWithDigestGeneratedAuditEnabledNoExtraOptionsUpperCase() + { + BulkLoad bulkLoad = BulkLoad.builder() + .batchIdField(BATCH_ID) + .digestGenStrategy(UDFBasedDigestGenStrategy.builder().digestField(DIGEST).digestUdfName(DIGEST_UDF).build()) + .auditing(DateTimeAuditing.builder().dateTimeField(APPEND_TIME).build()) + .build(); + + Dataset stagedFilesDataset = StagedFilesDataset.builder() + .stagedFilesDatasetProperties( + BigQueryStagedFilesDatasetProperties.builder() + .fileFormat(FileFormat.CSV) + .addAllFiles(filesList).build()) + .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4, col5)).build()) + .build(); + + Dataset mainDataset = DatasetDefinition.builder() + .database("my_db").name("my_name").alias("my_alias") + .schema(SchemaDefinition.builder().build()) + .build(); + + RelationalGenerator generator = RelationalGenerator.builder() + .ingestMode(bulkLoad) + .relationalSink(BigQuerySink.get()) + .collectStatistics(true) + .executionTimestampClock(fixedClock_2000_01_01) + .bulkLoadTaskIdValue(TASK_ID_VALUE) + .caseConversion(CaseConversion.TO_UPPER) + .build(); + + GeneratorResult operations = generator.generateOperations(Datasets.of(mainDataset, stagedFilesDataset)); + + List preActionsSql = operations.preActionsSql(); + List ingestSql = operations.ingestSql(); + Map statsSql = operations.postIngestStatisticsSql(); + + String expectedCreateTableSql = "CREATE TABLE IF NOT EXISTS `MY_DB`.`MY_NAME`" + + "(`COL_INT` INT64,`COL_STRING` STRING,`COL_DECIMAL` NUMERIC(5,2),`COL_DATETIME` DATETIME,`COL_VARIANT` JSON,`DIGEST` STRING,`BATCH_ID` INT64,`APPEND_TIME` DATETIME)"; + + String expectedCopySql = "LOAD DATA OVERWRITE `MY_DB`.`MY_NAME_LEGEND_PERSISTENCE_TEMP` " + + "(`COL_INT` INT64,`COL_STRING` STRING,`COL_DECIMAL` NUMERIC(5,2),`COL_DATETIME` DATETIME,`COL_VARIANT` JSON) " + + "FROM FILES (uris=['/path/xyz/file1.csv','/path/xyz/file2.csv'], format='CSV')"; + + String expectedInsertSql = "INSERT INTO `MY_DB`.`MY_NAME` " + + "(`COL_INT`, `COL_STRING`, `COL_DECIMAL`, `COL_DATETIME`, `COL_VARIANT`, `DIGEST`, `BATCH_ID`, `APPEND_TIME`) " + + "(SELECT legend_persistence_temp.`COL_INT`,legend_persistence_temp.`COL_STRING`,legend_persistence_temp.`COL_DECIMAL`,legend_persistence_temp.`COL_DATETIME`,legend_persistence_temp.`COL_VARIANT`,LAKEHOUSE_MD5(TO_JSON(legend_persistence_temp)),(SELECT COALESCE(MAX(BULK_LOAD_BATCH_METADATA.`BATCH_ID`),0)+1 FROM BULK_LOAD_BATCH_METADATA as BULK_LOAD_BATCH_METADATA WHERE UPPER(BULK_LOAD_BATCH_METADATA.`TABLE_NAME`) = 'MY_NAME'),PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00') " + + "FROM `MY_DB`.`MY_NAME_LEGEND_PERSISTENCE_TEMP` as legend_persistence_temp)"; + + Assertions.assertEquals(expectedCreateTableSql, preActionsSql.get(0)); + Assertions.assertEquals(expectedCopySql, ingestSql.get(0)); + Assertions.assertEquals(expectedInsertSql, ingestSql.get(1)); + + Assertions.assertEquals("SELECT 0 as `ROWSDELETED`", statsSql.get(ROWS_DELETED)); + Assertions.assertEquals("SELECT 0 as `ROWSTERMINATED`", statsSql.get(ROWS_TERMINATED)); + Assertions.assertEquals("SELECT 0 as `ROWSUPDATED`", statsSql.get(ROWS_UPDATED)); + Assertions.assertEquals("SELECT COUNT(*) as `ROWSINSERTED` FROM `MY_DB`.`MY_NAME` as my_alias WHERE my_alias.`APPEND_TIME` = PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00')", statsSql.get(ROWS_INSERTED)); + } + + @Test + public void testBulkLoadDigestColumnNotProvided() + { + try + { + BulkLoad bulkLoad = BulkLoad.builder() + .digestGenStrategy(UDFBasedDigestGenStrategy.builder().digestUdfName(DIGEST_UDF).build()) + .batchIdField(BATCH_ID) + .auditing(DateTimeAuditing.builder().dateTimeField(APPEND_TIME).build()) + .build(); + Assertions.fail("Exception was not thrown"); + } + catch (Exception e) + { + Assertions.assertTrue(e.getMessage().contains("Cannot build UDFBasedDigestGenStrategy, some of required attributes are not set [digestField]")); + } + } + + @Test + public void testBulkLoadDigestUDFNotProvided() + { + try + { + BulkLoad bulkLoad = BulkLoad.builder() + .digestGenStrategy(UDFBasedDigestGenStrategy.builder().digestField(DIGEST).build()) + .batchIdField(BATCH_ID) + .auditing(DateTimeAuditing.builder().dateTimeField(APPEND_TIME).build()) + .build(); + Assertions.fail("Exception was not thrown"); + } + catch (Exception e) + { + Assertions.assertTrue(e.getMessage().contains("Cannot build UDFBasedDigestGenStrategy, some of required attributes are not set [digestUdfName]")); + } + } + + @Test + public void testBulkLoadStagedFilesDatasetNotProvided() + { + try + { + BulkLoad bulkLoad = BulkLoad.builder() + .batchIdField(BATCH_ID) + .digestGenStrategy(NoDigestGenStrategy.builder().build()) + .auditing(DateTimeAuditing.builder().dateTimeField(APPEND_TIME).build()) + .build(); + + Dataset stagingDataset = DatasetDefinition.builder() + .database("my_db").name("my_stage").alias("my_alias") + .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2)).build()) + .build(); + + Dataset mainDataset = DatasetDefinition.builder() + .database("my_db").name("my_name").alias("my_alias") + .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2)).build()) + .build(); + + RelationalGenerator generator = RelationalGenerator.builder() + .ingestMode(bulkLoad) + .relationalSink(BigQuerySink.get()) + .bulkLoadTaskIdValue(TASK_ID_VALUE) + .collectStatistics(true) + .executionTimestampClock(fixedClock_2000_01_01) + .build(); + + GeneratorResult operations = generator.generateOperations(Datasets.of(mainDataset, stagingDataset)); + Assertions.fail("Exception was not thrown"); + } + catch (Exception e) + { + Assertions.assertTrue(e.getMessage().contains("Only StagedFilesDataset are allowed under Bulk Load")); + } + } +} diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/java/org/finos/legend/engine/persistence/components/util/BulkLoadDatasetUtilsBigQueryTest.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/java/org/finos/legend/engine/persistence/components/util/BulkLoadDatasetUtilsBigQueryTest.java index efcf49965fc..739b22c7274 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/java/org/finos/legend/engine/persistence/components/util/BulkLoadDatasetUtilsBigQueryTest.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/java/org/finos/legend/engine/persistence/components/util/BulkLoadDatasetUtilsBigQueryTest.java @@ -24,14 +24,14 @@ public String getExpectedSqlForMetadata() { return "INSERT INTO bulk_load_batch_metadata " + "(`batch_id`, `table_name`, `batch_start_ts_utc`, `batch_end_ts_utc`, `batch_status`, `batch_source_info`) " + - "(SELECT 'batch_id_123','appeng_log_table_name',PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00'),CURRENT_DATETIME(),'',PARSE_JSON('my_lineage_value'))"; + "(SELECT (SELECT COALESCE(MAX(bulk_load_batch_metadata.`batch_id`),0)+1 FROM bulk_load_batch_metadata as bulk_load_batch_metadata WHERE UPPER(bulk_load_batch_metadata.`table_name`) = 'APPENG_LOG_TABLE_NAME'),'appeng_log_table_name',PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00'),CURRENT_DATETIME(),'',PARSE_JSON('my_lineage_value'))"; } public String getExpectedSqlForMetadataUpperCase() { return "INSERT INTO BULK_LOAD_BATCH_METADATA " + "(`BATCH_ID`, `TABLE_NAME`, `BATCH_START_TS_UTC`, `BATCH_END_TS_UTC`, `BATCH_STATUS`, `BATCH_SOURCE_INFO`) " + - "(SELECT 'batch_id_123','BULK_LOAD_TABLE_NAME',PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00'),CURRENT_DATETIME(),'',PARSE_JSON('my_lineage_value'))"; + "(SELECT (SELECT COALESCE(MAX(bulk_load_batch_metadata.`BATCH_ID`),0)+1 FROM BULK_LOAD_BATCH_METADATA as bulk_load_batch_metadata WHERE UPPER(bulk_load_batch_metadata.`TABLE_NAME`) = 'BULK_LOAD_TABLE_NAME'),'BULK_LOAD_TABLE_NAME',PARSE_DATETIME('%Y-%m-%d %H:%M:%S','2000-01-01 00:00:00'),CURRENT_DATETIME(),'',PARSE_JSON('my_lineage_value'))"; } public RelationalSink getRelationalSink() diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/expected/bulk_load/expected_table1.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/expected/bulk_load/expected_table1.csv new file mode 100644 index 00000000000..e7a4d4b5f4b --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/expected/bulk_load/expected_table1.csv @@ -0,0 +1,7 @@ +0,Candy,999.99,2022-01-15T00:00:00,1,2000-01-01T00:00:00 +1,Andy,5.2,2022-01-11T00:00:00,1,2000-01-01T00:00:00 +1,Andy,5.2,2022-01-11T00:00:00,1,2000-01-01T00:00:00 +2,Bella,99.99,2022-01-12T00:00:00,1,2000-01-01T00:00:00 +2,Bella,99.99,2022-01-12T00:00:00,1,2000-01-01T00:00:00 +49,Sandy,123.45,2022-01-13T00:00:00,1,2000-01-01T00:00:00 +50,Mindy,0,2022-01-14T00:00:00,1,2000-01-01T00:00:00 \ No newline at end of file diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/expected/bulk_load/expected_table2.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/expected/bulk_load/expected_table2.csv new file mode 100644 index 00000000000..c1da46d0fb6 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/expected/bulk_load/expected_table2.csv @@ -0,0 +1,4 @@ +1,Andy,5.2,2022-01-11T00:00:00,1,2000-01-01T00:00:00 +2,Bella,99.99,2022-01-12T00:00:00,1,2000-01-01T00:00:00 +11,Success,123.45,2022-01-13T00:00:00,1,2000-01-01T00:00:00 +49,Sandy,123.45,2022-01-13T00:00:00,1,2000-01-01T00:00:00 \ No newline at end of file diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/bulk_load/bad_file.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/bulk_load/bad_file.csv new file mode 100644 index 00000000000..1c941007414 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/bulk_load/bad_file.csv @@ -0,0 +1,3 @@ +hello,Andy,5.20,2022-01-11 00:00:00.0 +2,Bella,99.99,2022-01-99 00:00:00.0 +11,Success,123.45,2022-01-13 00:00:00.0 \ No newline at end of file diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bulk-load/input/staged_file5.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/bulk_load/staged_file1.csv similarity index 100% rename from legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bulk-load/input/staged_file5.csv rename to legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/bulk_load/staged_file1.csv diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/bulk_load/staged_file2.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/bulk_load/staged_file2.csv new file mode 100644 index 00000000000..a4e5d3b6eb9 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/bulk_load/staged_file2.csv @@ -0,0 +1,3 @@ +1,Andy,5.20,2022-01-11 00:00:00.0 +2,Bella,99.99,2022-01-12 00:00:00.0 +50,Mindy,0.00,2022-01-14 00:00:00.0 \ No newline at end of file diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/bulk_load/staged_file3.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/bulk_load/staged_file3.csv new file mode 100644 index 00000000000..1ec00ee9883 --- /dev/null +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/src/test/resources/input/bulk_load/staged_file3.csv @@ -0,0 +1 @@ +0,Candy,999.99,2022-01-15 00:00:00.0 \ No newline at end of file diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/src/main/java/org/finos/legend/engine/persistence/components/relational/api/RelationalGeneratorAbstract.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/src/main/java/org/finos/legend/engine/persistence/components/relational/api/RelationalGeneratorAbstract.java index 3ee9b546ec0..e597d6451bb 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/src/main/java/org/finos/legend/engine/persistence/components/relational/api/RelationalGeneratorAbstract.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/src/main/java/org/finos/legend/engine/persistence/components/relational/api/RelationalGeneratorAbstract.java @@ -114,11 +114,7 @@ public boolean enableConcurrentSafety() public abstract Optional infiniteBatchIdValue(); - @Default - public String bulkLoadBatchIdValue() - { - return UUID.randomUUID().toString(); - } + public abstract Optional bulkLoadTaskIdValue(); @Default public String bulkLoadBatchStatusPattern() @@ -141,6 +137,7 @@ protected PlannerOptions plannerOptions() .enableSchemaEvolution(enableSchemaEvolution()) .createStagingDataset(createStagingDataset()) .enableConcurrentSafety(enableConcurrentSafety()) + .bulkLoadTaskIdValue(bulkLoadTaskIdValue()) .build(); } @@ -152,7 +149,6 @@ protected TransformOptions transformOptions() .batchStartTimestampPattern(batchStartTimestampPattern()) .batchEndTimestampPattern(batchEndTimestampPattern()) .infiniteBatchIdValue(infiniteBatchIdValue()) - .bulkLoadBatchIdValue(bulkLoadBatchIdValue()) .bulkLoadBatchStatusPattern(bulkLoadBatchStatusPattern()) .batchIdPattern(batchIdPattern()); @@ -192,7 +188,7 @@ GeneratorResult generateOperations(Datasets datasets, Resources resources) Datasets datasetsWithCaseConversion = ApiUtils.enrichAndApplyCase(datasets, caseConversion()); Dataset enrichedMainDataset = ApiUtils.deriveMainDatasetFromStaging(datasetsWithCaseConversion, ingestModeWithCaseConversion); Datasets enrichedDatasets = datasetsWithCaseConversion.withMainDataset(enrichedMainDataset); - Planner planner = Planners.get(enrichedDatasets, ingestModeWithCaseConversion, plannerOptions()); + Planner planner = Planners.get(enrichedDatasets, ingestModeWithCaseConversion, plannerOptions(), relationalSink().capabilities()); return generateOperations(enrichedDatasets, resources, planner, ingestModeWithCaseConversion); } @@ -243,11 +239,11 @@ GeneratorResult generateOperations(Datasets datasets, Resources resources, Plann schemaEvolutionDataset = Optional.of(schemaEvolutionResult.evolvedDataset()); // update main dataset with evolved schema and re-initialize planner - planner = Planners.get(datasets.withMainDataset(schemaEvolutionDataset.get()), ingestMode, plannerOptions()); + planner = Planners.get(datasets.withMainDataset(schemaEvolutionDataset.get()), ingestMode, plannerOptions(), relationalSink().capabilities()); } // ingest - LogicalPlan ingestLogicalPlan = planner.buildLogicalPlanForIngest(resources, relationalSink().capabilities()); + LogicalPlan ingestLogicalPlan = planner.buildLogicalPlanForIngest(resources); SqlPlan ingestSqlPlan = transformer.generatePhysicalPlan(ingestLogicalPlan); // metadata-ingest diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/src/main/java/org/finos/legend/engine/persistence/components/relational/api/RelationalIngestorAbstract.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/src/main/java/org/finos/legend/engine/persistence/components/relational/api/RelationalIngestorAbstract.java index d362d4d4bb4..c7f1f7ab612 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/src/main/java/org/finos/legend/engine/persistence/components/relational/api/RelationalIngestorAbstract.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/src/main/java/org/finos/legend/engine/persistence/components/relational/api/RelationalIngestorAbstract.java @@ -77,7 +77,6 @@ import java.util.Arrays; import java.util.Set; import java.util.stream.Collectors; -import java.util.UUID; import static org.finos.legend.engine.persistence.components.logicalplan.LogicalPlanFactory.MAX_OF_FIELD; import static org.finos.legend.engine.persistence.components.logicalplan.LogicalPlanFactory.MIN_OF_FIELD; @@ -98,8 +97,8 @@ public abstract class RelationalIngestorAbstract private static final String STAGING = "staging"; private static final String UNDERSCORE = "_"; private static final String SINGLE_QUOTE = "'"; - private static final String BATCH_ID_PATTERN = "{NEXT_BATCH_ID_PATTERN}"; + public static final String BATCH_ID_PATTERN = "{NEXT_BATCH_ID_PATTERN}"; public static final String BATCH_START_TS_PATTERN = "{BATCH_START_TIMESTAMP_PLACEHOLDER}"; private static final String BATCH_END_TS_PATTERN = "{BATCH_END_TIMESTAMP_PLACEHOLDER}"; @@ -161,18 +160,14 @@ public Set schemaEvolutionCapabilitySet() return Collections.emptySet(); } - @Default - public String bulkLoadBatchIdValue() - { - return UUID.randomUUID().toString(); - } - //---------- FIELDS ---------- public abstract IngestMode ingestMode(); public abstract RelationalSink relationalSink(); + public abstract Optional bulkLoadTaskIdValue(); + @Derived protected PlannerOptions plannerOptions() { @@ -182,6 +177,7 @@ protected PlannerOptions plannerOptions() .enableSchemaEvolution(enableSchemaEvolution()) .createStagingDataset(createStagingDataset()) .enableConcurrentSafety(enableConcurrentSafety()) + .bulkLoadTaskIdValue(bulkLoadTaskIdValue()) .build(); } @@ -494,10 +490,10 @@ private void init(Datasets datasets) .batchStartTimestampPattern(BATCH_START_TS_PATTERN) .batchEndTimestampPattern(BATCH_END_TS_PATTERN) .batchIdPattern(BATCH_ID_PATTERN) - .bulkLoadBatchIdValue(bulkLoadBatchIdValue()) + .bulkLoadTaskIdValue(bulkLoadTaskIdValue()) .build(); - planner = Planners.get(enrichedDatasets, enrichedIngestMode, plannerOptions()); + planner = Planners.get(enrichedDatasets, enrichedIngestMode, plannerOptions(), relationalSink().capabilities()); generatorResult = generator.generateOperations(enrichedDatasets, resourcesBuilder.build(), planner, enrichedIngestMode); } @@ -569,8 +565,10 @@ private List performBulkLoad(Datasets datasets, Transformer getNextBatchId(Datasets datasets, Executor executor, Transformer transformer, IngestMode ingestMode) { - if (ingestMode.accept(IngestModeVisitors.IS_INGEST_MODE_TEMPORAL)) + if (ingestMode.accept(IngestModeVisitors.IS_INGEST_MODE_TEMPORAL) || ingestMode instanceof BulkLoad) { - LogicalPlan logicalPlanForNextBatchId = LogicalPlanFactory.getLogicalPlanForNextBatchId(datasets); + LogicalPlan logicalPlanForNextBatchId = LogicalPlanFactory.getLogicalPlanForNextBatchId(datasets, ingestMode); List tabularData = executor.executePhysicalPlanAndGetResults(transformer.generatePhysicalPlan(logicalPlanForNextBatchId)); Optional nextBatchId = Optional.ofNullable(tabularData.stream() .findFirst() diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/src/main/java/org/finos/legend/engine/persistence/components/relational/sqldom/common/Clause.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/src/main/java/org/finos/legend/engine/persistence/components/relational/sqldom/common/Clause.java index 1086d1e2c06..a68b724f02f 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/src/main/java/org/finos/legend/engine/persistence/components/relational/sqldom/common/Clause.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/src/main/java/org/finos/legend/engine/persistence/components/relational/sqldom/common/Clause.java @@ -58,7 +58,10 @@ public enum Clause NOT_ENFORCED("NOT ENFORCED"), DATA_TYPE("DATA TYPE"), CONVERT("CONVERT"), - ARRAY("ARRAY"); + ARRAY("ARRAY"), + LOAD_DATA("LOAD DATA"), + OVERWRITE("OVERWRITE"), + FILES("FILES"); private final String clause; diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/src/main/java/org/finos/legend/engine/persistence/components/relational/sqldom/common/FunctionName.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/src/main/java/org/finos/legend/engine/persistence/components/relational/sqldom/common/FunctionName.java index 34482bded7c..6a345b82ebe 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/src/main/java/org/finos/legend/engine/persistence/components/relational/sqldom/common/FunctionName.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/src/main/java/org/finos/legend/engine/persistence/components/relational/sqldom/common/FunctionName.java @@ -45,7 +45,8 @@ public enum FunctionName PARSE_DATETIME("PARSE_DATETIME"), PARSE_JSON("PARSE_JSON"), TO_VARIANT("TO_VARIANT"), - OBJECT_CONSTRUCT("OBJECT_CONSTRUCT"); + OBJECT_CONSTRUCT("OBJECT_CONSTRUCT"), + TO_JSON("TO_JSON"); private static final Map BY_NAME = Arrays .stream(FunctionName.values()) diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/main/java/org/finos/legend/engine/persistence/components/relational/h2/H2DigestUtil.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/main/java/org/finos/legend/engine/persistence/components/relational/h2/H2DigestUtil.java index 82a7f3788f7..3a6c1db5e95 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/main/java/org/finos/legend/engine/persistence/components/relational/h2/H2DigestUtil.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/main/java/org/finos/legend/engine/persistence/components/relational/h2/H2DigestUtil.java @@ -17,9 +17,20 @@ import org.apache.commons.codec.digest.DigestUtils; import org.finos.legend.engine.persistence.components.relational.jdbc.JdbcHelper; +import java.io.ByteArrayOutputStream; +import java.io.DataOutputStream; +import java.io.IOException; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Optional; +import java.util.stream.Collectors; + public class H2DigestUtil { + private static final byte[] EMPTY_STRING = new byte[] { 88 }; + public static void registerMD5Udf(JdbcHelper sink, String UdfName) { sink.executeStatement("CREATE ALIAS " + UdfName + " FOR \"org.finos.legend.engine.persistence.components.relational.h2.H2DigestUtil.MD5\";"); @@ -27,9 +38,57 @@ public static void registerMD5Udf(JdbcHelper sink, String UdfName) public static String MD5(String[] columnNameList, String[] columnValueList) { - String columnNames = String.join("", columnNameList); - String columnValues = String.join("", columnValueList); - String columnNamesAndColumnValues = columnNames + columnValues; - return DigestUtils.md5Hex(columnNamesAndColumnValues).toUpperCase(); + return calculateMD5Digest(generateRowMap(columnNameList, columnValueList)); + } + + private static Map generateRowMap(String[] columnNameList, String[] columnValueList) + { + Map map = new HashMap<>(); + for (int i = 0; i < columnNameList.length; i++) + { + map.put(columnNameList[i], columnValueList[i]); + } + return map; + } + + private static String calculateMD5Digest(Map row) + { + List fieldNames = row.keySet().stream().sorted().collect(Collectors.toList()); + try (ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); + DataOutputStream dataOutputStream = new DataOutputStream(byteArrayOutputStream)) + { + fieldNames.stream().forEachOrdered(field -> + { + Optional value = Optional.ofNullable(row.get(field)); + value.ifPresent(v -> writeValueWithFieldName(field, v, dataOutputStream)); + }); + dataOutputStream.flush(); + return DigestUtils.md5Hex(byteArrayOutputStream.toByteArray()); + } + catch (IOException e) + { + throw new RuntimeException("Unable to create digest", e); + } + } + + private static void writeValueWithFieldName(String fieldName, Object value, DataOutputStream dataOutputStream) + { + try + { + dataOutputStream.writeInt(fieldName.hashCode()); + String stringValue = value.toString(); + if (stringValue == null || stringValue.length() == 0) + { + dataOutputStream.write(EMPTY_STRING); + } + else + { + dataOutputStream.writeBytes(stringValue); + } + } + catch (IOException e) + { + throw new RuntimeException(String.format("Unable to create digest for field [%s]", fieldName), e); + } } } diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/main/java/org/finos/legend/engine/persistence/components/relational/h2/H2Sink.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/main/java/org/finos/legend/engine/persistence/components/relational/h2/H2Sink.java index 9f93c193c6f..9b8ac1db944 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/main/java/org/finos/legend/engine/persistence/components/relational/h2/H2Sink.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/main/java/org/finos/legend/engine/persistence/components/relational/h2/H2Sink.java @@ -77,6 +77,7 @@ import java.util.Map; import java.util.Set; +import static org.finos.legend.engine.persistence.components.relational.api.RelationalIngestorAbstract.BATCH_ID_PATTERN; import static org.finos.legend.engine.persistence.components.relational.api.RelationalIngestorAbstract.BATCH_START_TS_PATTERN; public class H2Sink extends AnsiSqlSink @@ -97,6 +98,7 @@ public class H2Sink extends AnsiSqlSink capabilities.add(Capability.EXPLICIT_DATA_TYPE_CONVERSION); capabilities.add(Capability.DATA_TYPE_LENGTH_CHANGE); capabilities.add(Capability.DATA_TYPE_SCALE_CHANGE); + capabilities.add(Capability.TRANSFORM_WHILE_COPY); CAPABILITIES = Collections.unmodifiableSet(capabilities); Map, LogicalPlanVisitor> logicalPlanVisitorByClass = new HashMap<>(); @@ -200,6 +202,7 @@ public Optional optimizerForCaseConversion(CaseConversion caseConvers } } + @Override public IngestorResult performBulkLoad(Datasets datasets, Executor executor, SqlPlan ingestSqlPlan, Map statisticsSqlPlan, Map placeHolderKeyValues) { executor.executePhysicalPlan(ingestSqlPlan, placeHolderKeyValues); @@ -224,6 +227,7 @@ public IngestorResult performBulkLoad(Datasets datasets, Executor statsSql = operations.postIngestStatisticsSql(); String expectedCreateTableSql = "CREATE TABLE IF NOT EXISTS \"TEST_DB\".\"TEST\".\"main\"" + - "(\"col_int\" INTEGER NOT NULL PRIMARY KEY,\"col_string\" VARCHAR,\"col_decimal\" DECIMAL(5,2),\"col_datetime\" TIMESTAMP,\"batch_id\" VARCHAR,\"append_time\" TIMESTAMP)"; + "(\"col_int\" INTEGER,\"col_string\" VARCHAR,\"col_decimal\" DECIMAL(5,2),\"col_datetime\" TIMESTAMP,\"batch_id\" INTEGER,\"append_time\" TIMESTAMP)"; String expectedIngestSql = "INSERT INTO \"TEST_DB\".\"TEST\".\"main\" " + "(\"col_int\", \"col_string\", \"col_decimal\", \"col_datetime\", \"batch_id\", \"append_time\") " + "SELECT CONVERT(\"col_int\",INTEGER),CONVERT(\"col_string\",VARCHAR),CONVERT(\"col_decimal\",DECIMAL(5,2)),CONVERT(\"col_datetime\",TIMESTAMP)," + - "'xyz123','2000-01-01 00:00:00' FROM CSVREAD('src/test/resources/data/bulk-load/input/staged_file1.csv'," + + "{NEXT_BATCH_ID_PATTERN},'2000-01-01 00:00:00' FROM CSVREAD('src/test/resources/data/bulk-load/input/staged_file1.csv'," + "'col_int,col_string,col_decimal,col_datetime',NULL)"; Assertions.assertEquals(expectedCreateTableSql, preActionsSql.get(0)); @@ -146,7 +147,7 @@ public void testBulkLoadWithDigestNotGeneratedAuditEnabled() throws Exception // Verify execution using ingestor PlannerOptions options = PlannerOptions.builder().collectStatistics(true).build(); - String[] schema = new String[]{col_int, col_string, col_decimal, col_datetime, BATCH_ID, APPEND_TIME}; + String[] schema = new String[]{COL_INT, COL_STRING, COL_DECIMAL, COL_DATETIME, BATCH_ID, APPEND_TIME}; Map expectedStats = new HashMap<>(); expectedStats.put(StatisticName.ROWS_INSERTED.name(), 3); @@ -155,11 +156,11 @@ public void testBulkLoadWithDigestNotGeneratedAuditEnabled() throws Exception String expectedDataPath = "src/test/resources/data/bulk-load/expected/expected_table1.csv"; - RelationalIngestor ingestor = getRelationalIngestor(bulkLoad, options, fixedClock_2000_01_01, CaseConversion.NONE); + RelationalIngestor ingestor = getRelationalIngestor(bulkLoad, options, fixedClock_2000_01_01, CaseConversion.NONE, Optional.empty()); executePlansAndVerifyResults(ingestor, datasets, schema, expectedDataPath, expectedStats, false); Map appendMetadata = h2Sink.executeQuery("select * from bulk_load_batch_metadata").get(0); - verifyBulkLoadMetadata(appendMetadata, filePath); + verifyBulkLoadMetadata(appendMetadata, filePath, 1, Optional.empty()); } @Test @@ -170,7 +171,7 @@ public void testBulkLoadWithDigestNotGeneratedAuditDisabled() throws Exception BulkLoad bulkLoad = BulkLoad.builder() .digestGenStrategy(NoDigestGenStrategy.builder().build()) .auditing(NoAuditing.builder().build()) - .batchIdField("batch_id") + .batchIdField(BATCH_ID) .build(); Dataset stagedFilesDataset = StagedFilesDataset.builder() @@ -194,7 +195,7 @@ public void testBulkLoadWithDigestNotGeneratedAuditDisabled() throws Exception .relationalSink(H2Sink.get()) .collectStatistics(true) .executionTimestampClock(fixedClock_2000_01_01) - .bulkLoadBatchIdValue("xyz123") + .bulkLoadTaskIdValue(TASK_ID_VALUE_1) .build(); GeneratorResult operations = generator.generateOperations(datasets); @@ -204,12 +205,12 @@ public void testBulkLoadWithDigestNotGeneratedAuditDisabled() throws Exception Map statsSql = operations.postIngestStatisticsSql(); String expectedCreateTableSql = "CREATE TABLE IF NOT EXISTS \"TEST_DB\".\"TEST\".\"main\"" + - "(\"col_int\" INTEGER NOT NULL PRIMARY KEY,\"col_string\" VARCHAR,\"col_decimal\" DECIMAL(5,2),\"col_datetime\" TIMESTAMP,\"batch_id\" VARCHAR)"; + "(\"col_int\" INTEGER,\"col_string\" VARCHAR,\"col_decimal\" DECIMAL(5,2),\"col_datetime\" TIMESTAMP,\"batch_id\" INTEGER)"; String expectedIngestSql = "INSERT INTO \"TEST_DB\".\"TEST\".\"main\" " + "(\"col_int\", \"col_string\", \"col_decimal\", \"col_datetime\", \"batch_id\") " + "SELECT CONVERT(\"col_int\",INTEGER),CONVERT(\"col_string\",VARCHAR),CONVERT(\"col_decimal\",DECIMAL(5,2)),CONVERT(\"col_datetime\",TIMESTAMP)," + - "'xyz123' FROM CSVREAD('src/test/resources/data/bulk-load/input/staged_file2.csv','col_int,col_string,col_decimal,col_datetime',NULL)"; + "(SELECT COALESCE(MAX(bulk_load_batch_metadata.\"batch_id\"),0)+1 FROM bulk_load_batch_metadata as bulk_load_batch_metadata WHERE UPPER(bulk_load_batch_metadata.\"table_name\") = 'MAIN') FROM CSVREAD('src/test/resources/data/bulk-load/input/staged_file2.csv','col_int,col_string,col_decimal,col_datetime',NULL)"; Assertions.assertEquals(expectedCreateTableSql, preActionsSql.get(0)); Assertions.assertEquals(expectedIngestSql, ingestSql.get(0)); @@ -218,7 +219,7 @@ public void testBulkLoadWithDigestNotGeneratedAuditDisabled() throws Exception // Verify execution using ingestor PlannerOptions options = PlannerOptions.builder().collectStatistics(true).build(); - String[] schema = new String[]{col_int, col_string, col_decimal, col_datetime, BATCH_ID}; + String[] schema = new String[]{COL_INT, COL_STRING, COL_DECIMAL, COL_DATETIME, BATCH_ID}; Map expectedStats = new HashMap<>(); expectedStats.put(StatisticName.FILES_LOADED.name(), 1); @@ -226,10 +227,10 @@ public void testBulkLoadWithDigestNotGeneratedAuditDisabled() throws Exception String expectedDataPath = "src/test/resources/data/bulk-load/expected/expected_table2.csv"; - RelationalIngestor ingestor = getRelationalIngestor(bulkLoad, options, fixedClock_2000_01_01, CaseConversion.NONE); + RelationalIngestor ingestor = getRelationalIngestor(bulkLoad, options, fixedClock_2000_01_01, CaseConversion.NONE, Optional.of(TASK_ID_VALUE_1)); executePlansAndVerifyResults(ingestor, datasets, schema, expectedDataPath, expectedStats, false); Map appendMetadata = h2Sink.executeQuery("select * from bulk_load_batch_metadata").get(0); - verifyBulkLoadMetadata(appendMetadata, filePath); + verifyBulkLoadMetadata(appendMetadata, filePath, 1, Optional.of(TASK_ID_VALUE_1)); } @Test @@ -243,7 +244,7 @@ public void testBulkLoadWithDigestGeneratedAuditEnabled() throws Exception BulkLoad bulkLoad = BulkLoad.builder() .digestGenStrategy(UDFBasedDigestGenStrategy.builder().digestUdfName(DIGEST_UDF).digestField(DIGEST).build()) .auditing(DateTimeAuditing.builder().dateTimeField(APPEND_TIME).build()) - .batchIdField("batch_id") + .batchIdField(BATCH_ID) .build(); Dataset stagedFilesDataset = StagedFilesDataset.builder() @@ -266,7 +267,7 @@ public void testBulkLoadWithDigestGeneratedAuditEnabled() throws Exception .ingestMode(bulkLoad) .relationalSink(H2Sink.get()) .collectStatistics(true) - .bulkLoadBatchIdValue("xyz123") + .bulkLoadTaskIdValue(TASK_ID_VALUE_1) .executionTimestampClock(fixedClock_2000_01_01) .build(); @@ -277,13 +278,13 @@ public void testBulkLoadWithDigestGeneratedAuditEnabled() throws Exception Map statsSql = operations.postIngestStatisticsSql(); String expectedCreateTableSql = "CREATE TABLE IF NOT EXISTS \"TEST_DB\".\"TEST\".\"main\"" + - "(\"col_int\" INTEGER NOT NULL PRIMARY KEY,\"col_string\" VARCHAR,\"col_decimal\" DECIMAL(5,2),\"col_datetime\" TIMESTAMP,\"digest\" VARCHAR,\"batch_id\" VARCHAR,\"append_time\" TIMESTAMP)"; + "(\"col_int\" INTEGER,\"col_string\" VARCHAR,\"col_decimal\" DECIMAL(5,2),\"col_datetime\" TIMESTAMP,\"digest\" VARCHAR,\"batch_id\" INTEGER,\"append_time\" TIMESTAMP)"; String expectedIngestSql = "INSERT INTO \"TEST_DB\".\"TEST\".\"main\" " + "(\"col_int\", \"col_string\", \"col_decimal\", \"col_datetime\", \"digest\", \"batch_id\", \"append_time\") " + "SELECT CONVERT(\"col_int\",INTEGER),CONVERT(\"col_string\",VARCHAR),CONVERT(\"col_decimal\",DECIMAL(5,2)),CONVERT(\"col_datetime\",TIMESTAMP)," + "LAKEHOUSE_MD5(ARRAY['col_int','col_string','col_decimal','col_datetime'],ARRAY[\"col_int\",\"col_string\",\"col_decimal\",\"col_datetime\"])," + - "'xyz123','2000-01-01 00:00:00' FROM CSVREAD('src/test/resources/data/bulk-load/input/staged_file3.csv','col_int,col_string,col_decimal,col_datetime',NULL)"; + "(SELECT COALESCE(MAX(bulk_load_batch_metadata.\"batch_id\"),0)+1 FROM bulk_load_batch_metadata as bulk_load_batch_metadata WHERE UPPER(bulk_load_batch_metadata.\"table_name\") = 'MAIN'),'2000-01-01 00:00:00' FROM CSVREAD('src/test/resources/data/bulk-load/input/staged_file3.csv','col_int,col_string,col_decimal,col_datetime',NULL)"; Assertions.assertEquals(expectedCreateTableSql, preActionsSql.get(0)); Assertions.assertEquals(expectedIngestSql, ingestSql.get(0)); @@ -292,7 +293,7 @@ public void testBulkLoadWithDigestGeneratedAuditEnabled() throws Exception // Verify execution using ingestor PlannerOptions options = PlannerOptions.builder().collectStatistics(true).build(); - String[] schema = new String[]{col_int, col_string, col_decimal, col_datetime, DIGEST, BATCH_ID, APPEND_TIME}; + String[] schema = new String[]{COL_INT, COL_STRING, COL_DECIMAL, COL_DATETIME, DIGEST, BATCH_ID, APPEND_TIME}; Map expectedStats = new HashMap<>(); expectedStats.put(StatisticName.ROWS_INSERTED.name(), 3); @@ -301,10 +302,10 @@ public void testBulkLoadWithDigestGeneratedAuditEnabled() throws Exception String expectedDataPath = "src/test/resources/data/bulk-load/expected/expected_table3.csv"; - RelationalIngestor ingestor = getRelationalIngestor(bulkLoad, options, fixedClock_2000_01_01, CaseConversion.NONE); + RelationalIngestor ingestor = getRelationalIngestor(bulkLoad, options, fixedClock_2000_01_01, CaseConversion.NONE, Optional.of(TASK_ID_VALUE_1)); executePlansAndVerifyResults(ingestor, datasets, schema, expectedDataPath, expectedStats, false); Map appendMetadata = h2Sink.executeQuery("select * from bulk_load_batch_metadata").get(0); - verifyBulkLoadMetadata(appendMetadata, filePath); + verifyBulkLoadMetadata(appendMetadata, filePath, 1, Optional.of(TASK_ID_VALUE_1)); } @Test @@ -316,7 +317,7 @@ public void testBulkLoadWithDigestGeneratedAuditEnabledUpperCase() throws Except String filePath = "src/test/resources/data/bulk-load/input/staged_file4.csv"; BulkLoad bulkLoad = BulkLoad.builder() - .batchIdField("batch_id") + .batchIdField(BATCH_ID) .digestGenStrategy(UDFBasedDigestGenStrategy.builder().digestUdfName(DIGEST_UDF).digestField(DIGEST).build()) .auditing(DateTimeAuditing.builder().dateTimeField(APPEND_TIME).build()) .build(); @@ -341,7 +342,7 @@ public void testBulkLoadWithDigestGeneratedAuditEnabledUpperCase() throws Except .ingestMode(bulkLoad) .relationalSink(H2Sink.get()) .collectStatistics(true) - .bulkLoadBatchIdValue("xyz123") + .bulkLoadTaskIdValue(TASK_ID_VALUE_1) .executionTimestampClock(fixedClock_2000_01_01) .caseConversion(CaseConversion.TO_UPPER) .build(); @@ -353,13 +354,13 @@ public void testBulkLoadWithDigestGeneratedAuditEnabledUpperCase() throws Except Map statsSql = operations.postIngestStatisticsSql(); String expectedCreateTableSql = "CREATE TABLE IF NOT EXISTS \"TEST_DB\".\"TEST\".\"MAIN\"" + - "(\"COL_INT\" INTEGER NOT NULL PRIMARY KEY,\"COL_STRING\" VARCHAR,\"COL_DECIMAL\" DECIMAL(5,2),\"COL_DATETIME\" TIMESTAMP,\"DIGEST\" VARCHAR,\"BATCH_ID\" VARCHAR,\"APPEND_TIME\" TIMESTAMP)"; + "(\"COL_INT\" INTEGER,\"COL_STRING\" VARCHAR,\"COL_DECIMAL\" DECIMAL(5,2),\"COL_DATETIME\" TIMESTAMP,\"DIGEST\" VARCHAR,\"BATCH_ID\" INTEGER,\"APPEND_TIME\" TIMESTAMP)"; String expectedIngestSql = "INSERT INTO \"TEST_DB\".\"TEST\".\"MAIN\" " + "(\"COL_INT\", \"COL_STRING\", \"COL_DECIMAL\", \"COL_DATETIME\", \"DIGEST\", \"BATCH_ID\", \"APPEND_TIME\") " + "SELECT CONVERT(\"COL_INT\",INTEGER),CONVERT(\"COL_STRING\",VARCHAR),CONVERT(\"COL_DECIMAL\",DECIMAL(5,2)),CONVERT(\"COL_DATETIME\",TIMESTAMP)," + "LAKEHOUSE_MD5(ARRAY['COL_INT','COL_STRING','COL_DECIMAL','COL_DATETIME'],ARRAY[\"COL_INT\",\"COL_STRING\",\"COL_DECIMAL\",\"COL_DATETIME\"])," + - "'xyz123','2000-01-01 00:00:00' " + + "(SELECT COALESCE(MAX(BULK_LOAD_BATCH_METADATA.\"BATCH_ID\"),0)+1 FROM BULK_LOAD_BATCH_METADATA as BULK_LOAD_BATCH_METADATA WHERE UPPER(BULK_LOAD_BATCH_METADATA.\"TABLE_NAME\") = 'MAIN'),'2000-01-01 00:00:00' " + "FROM CSVREAD('src/test/resources/data/bulk-load/input/staged_file4.csv','COL_INT,COL_STRING,COL_DECIMAL,COL_DATETIME',NULL)"; Assertions.assertEquals(expectedCreateTableSql, preActionsSql.get(0)); @@ -369,7 +370,7 @@ public void testBulkLoadWithDigestGeneratedAuditEnabledUpperCase() throws Except // Verify execution using ingestor PlannerOptions options = PlannerOptions.builder().collectStatistics(true).build(); - String[] schema = new String[]{col_int.toUpperCase(), col_string.toUpperCase(), col_decimal.toUpperCase(), col_datetime.toUpperCase(), DIGEST.toUpperCase(), BATCH_ID.toUpperCase(), APPEND_TIME.toUpperCase()}; + String[] schema = new String[]{COL_INT.toUpperCase(), COL_STRING.toUpperCase(), COL_DECIMAL.toUpperCase(), COL_DATETIME.toUpperCase(), DIGEST.toUpperCase(), BATCH_ID.toUpperCase(), APPEND_TIME.toUpperCase()}; Map expectedStats = new HashMap<>(); expectedStats.put(StatisticName.ROWS_INSERTED.name(), 3); @@ -378,10 +379,64 @@ public void testBulkLoadWithDigestGeneratedAuditEnabledUpperCase() throws Except String expectedDataPath = "src/test/resources/data/bulk-load/expected/expected_table4.csv"; - RelationalIngestor ingestor = getRelationalIngestor(bulkLoad, options, fixedClock_2000_01_01, CaseConversion.TO_UPPER); + RelationalIngestor ingestor = getRelationalIngestor(bulkLoad, options, fixedClock_2000_01_01, CaseConversion.TO_UPPER, Optional.of(TASK_ID_VALUE_1)); executePlansAndVerifyForCaseConversion(ingestor, datasets, schema, expectedDataPath, expectedStats); Map appendMetadata = h2Sink.executeQuery("select * from BULK_LOAD_BATCH_METADATA").get(0); - verifyBulkLoadMetadataForUpperCase(appendMetadata, filePath); + verifyBulkLoadMetadataForUpperCase(appendMetadata, filePath, 1, Optional.of(TASK_ID_VALUE_1)); + } + + @Test + public void testBulkLoadWithDigestNotGeneratedAuditDisabledTwoBatches() throws Exception + { + String filePath = "src/test/resources/data/bulk-load/input/staged_file2.csv"; + + BulkLoad bulkLoad = BulkLoad.builder() + .digestGenStrategy(NoDigestGenStrategy.builder().build()) + .auditing(NoAuditing.builder().build()) + .batchIdField(BATCH_ID) + .build(); + + Dataset stagedFilesDataset = StagedFilesDataset.builder() + .stagedFilesDatasetProperties( + H2StagedFilesDatasetProperties.builder() + .fileFormat(FileFormat.CSV) + .addAllFiles(Collections.singletonList(filePath)).build()) + .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4)).build()) + .build(); + + Dataset mainDataset = DatasetDefinition.builder() + .database(testDatabaseName).group(testSchemaName).name(mainTableName).alias("my_alias") + .schema(SchemaDefinition.builder().build()) + .build(); + + Datasets datasets = Datasets.of(mainDataset, stagedFilesDataset); + + + // Verify execution using ingestor (first batch) + PlannerOptions options = PlannerOptions.builder().collectStatistics(true).build(); + String[] schema = new String[]{COL_INT, COL_STRING, COL_DECIMAL, COL_DATETIME, BATCH_ID}; + + Map expectedStats = new HashMap<>(); + expectedStats.put(StatisticName.FILES_LOADED.name(), 1); + expectedStats.put(StatisticName.ROWS_WITH_ERRORS.name(), 0); + + String expectedDataPath = "src/test/resources/data/bulk-load/expected/expected_table2.csv"; + + RelationalIngestor ingestor = getRelationalIngestor(bulkLoad, options, fixedClock_2000_01_01, CaseConversion.NONE, Optional.of(TASK_ID_VALUE_1)); + executePlansAndVerifyResults(ingestor, datasets, schema, expectedDataPath, expectedStats, false); + Map appendMetadata = h2Sink.executeQuery("select * from bulk_load_batch_metadata").get(0); + verifyBulkLoadMetadata(appendMetadata, filePath, 1, Optional.of(TASK_ID_VALUE_1)); + + + // Verify execution using ingestor (second batch) + expectedDataPath = "src/test/resources/data/bulk-load/expected/expected_table5.csv"; + + ingestor = getRelationalIngestor(bulkLoad, options, fixedClock_2000_01_01, CaseConversion.NONE, Optional.of(TASK_ID_VALUE_2)); + executePlansAndVerifyResults(ingestor, datasets, schema, expectedDataPath, expectedStats, false); + appendMetadata = h2Sink.executeQuery("select * from bulk_load_batch_metadata").get(0); + verifyBulkLoadMetadata(appendMetadata, filePath, 1, Optional.of(TASK_ID_VALUE_1)); + appendMetadata = h2Sink.executeQuery("select * from bulk_load_batch_metadata").get(1); + verifyBulkLoadMetadata(appendMetadata, filePath, 2, Optional.of(TASK_ID_VALUE_2)); } @Test @@ -391,6 +446,7 @@ public void testBulkLoadDigestColumnNotProvided() { BulkLoad bulkLoad = BulkLoad.builder() .digestGenStrategy(UDFBasedDigestGenStrategy.builder().digestUdfName(DIGEST_UDF).build()) + .batchIdField(BATCH_ID) .auditing(DateTimeAuditing.builder().dateTimeField(APPEND_TIME).build()) .build(); Assertions.fail("Exception was not thrown"); @@ -408,7 +464,7 @@ public void testBulkLoadDigestUDFNotProvided() { BulkLoad bulkLoad = BulkLoad.builder() .digestGenStrategy(UDFBasedDigestGenStrategy.builder().digestField(DIGEST).build()) - .batchIdField("batch_id") + .batchIdField(BATCH_ID) .auditing(DateTimeAuditing.builder().dateTimeField(APPEND_TIME).build()) .build(); Assertions.fail("Exception was not thrown"); @@ -425,7 +481,7 @@ public void testBulkLoadStagedFilesDatasetNotProvided() try { BulkLoad bulkLoad = BulkLoad.builder() - .batchIdField("batch_id") + .batchIdField(BATCH_ID) .digestGenStrategy(NoDigestGenStrategy.builder().build()) .auditing(DateTimeAuditing.builder().dateTimeField(APPEND_TIME).build()) .build(); @@ -443,7 +499,7 @@ public void testBulkLoadStagedFilesDatasetNotProvided() RelationalGenerator generator = RelationalGenerator.builder() .ingestMode(bulkLoad) .relationalSink(H2Sink.get()) - .bulkLoadBatchIdValue("xyz123") + .bulkLoadTaskIdValue(TASK_ID_VALUE_1) .collectStatistics(true) .executionTimestampClock(fixedClock_2000_01_01) .build(); @@ -457,6 +513,100 @@ public void testBulkLoadStagedFilesDatasetNotProvided() } } + @Test + public void testBulkLoadStageHasPrimaryKey() + { + try + { + Field pkCol = Field.builder() + .name("some_pk") + .type(FieldType.of(DataType.INT, Optional.empty(), Optional.empty())) + .primaryKey(true) + .build(); + + BulkLoad bulkLoad = BulkLoad.builder() + .batchIdField(BATCH_ID) + .digestGenStrategy(NoDigestGenStrategy.builder().build()) + .auditing(NoAuditing.builder().build()) + .build(); + + Dataset stagedFilesDataset = StagedFilesDataset.builder() + .stagedFilesDatasetProperties( + H2StagedFilesDatasetProperties.builder() + .fileFormat(FileFormat.CSV) + .addAllFiles(Collections.singletonList("src/test/resources/data/bulk-load/input/staged_file1.csv")).build()) + .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4, pkCol)).build()) + .build(); + + Dataset mainDataset = DatasetDefinition.builder() + .database("my_db").name("my_name").alias("my_alias") + .schema(SchemaDefinition.builder().build()) + .build(); + + RelationalGenerator generator = RelationalGenerator.builder() + .ingestMode(bulkLoad) + .relationalSink(H2Sink.get()) + .bulkLoadTaskIdValue(TASK_ID_VALUE_1) + .collectStatistics(true) + .executionTimestampClock(fixedClock_2000_01_01) + .build(); + + GeneratorResult operations = generator.generateOperations(Datasets.of(mainDataset, stagedFilesDataset)); + Assertions.fail("Exception was not thrown"); + } + catch (Exception e) + { + Assertions.assertTrue(e.getMessage().contains("Primary key list must be empty")); + } + } + + @Test + public void testBulkLoadMainHasPrimaryKey() + { + try + { + Field pkCol = Field.builder() + .name("some_pk") + .type(FieldType.of(DataType.INT, Optional.empty(), Optional.empty())) + .primaryKey(true) + .build(); + + BulkLoad bulkLoad = BulkLoad.builder() + .batchIdField(BATCH_ID) + .digestGenStrategy(NoDigestGenStrategy.builder().build()) + .auditing(NoAuditing.builder().build()) + .build(); + + Dataset stagedFilesDataset = StagedFilesDataset.builder() + .stagedFilesDatasetProperties( + H2StagedFilesDatasetProperties.builder() + .fileFormat(FileFormat.CSV) + .addAllFiles(Collections.singletonList("src/test/resources/data/bulk-load/input/staged_file1.csv")).build()) + .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4)).build()) + .build(); + + Dataset mainDataset = DatasetDefinition.builder() + .database("my_db").name("my_name").alias("my_alias") + .schema(SchemaDefinition.builder().addAllFields(Arrays.asList(col1, col2, col3, col4, pkCol)).build()) + .build(); + + RelationalGenerator generator = RelationalGenerator.builder() + .ingestMode(bulkLoad) + .relationalSink(H2Sink.get()) + .bulkLoadTaskIdValue(TASK_ID_VALUE_1) + .collectStatistics(true) + .executionTimestampClock(fixedClock_2000_01_01) + .build(); + + GeneratorResult operations = generator.generateOperations(Datasets.of(mainDataset, stagedFilesDataset)); + Assertions.fail("Exception was not thrown"); + } + catch (Exception e) + { + Assertions.assertTrue(e.getMessage().contains("Primary key list must be empty")); + } + } + @Test public void testBulkLoadMoreThanOneFile() { @@ -497,7 +647,7 @@ public void testBulkLoadNotCsvFile() } } - RelationalIngestor getRelationalIngestor(IngestMode ingestMode, PlannerOptions options, Clock executionTimestampClock, CaseConversion caseConversion) + RelationalIngestor getRelationalIngestor(IngestMode ingestMode, PlannerOptions options, Clock executionTimestampClock, CaseConversion caseConversion, Optional taskId) { return RelationalIngestor.builder() .ingestMode(ingestMode) @@ -505,30 +655,46 @@ RelationalIngestor getRelationalIngestor(IngestMode ingestMode, PlannerOptions o .executionTimestampClock(executionTimestampClock) .cleanupStagingData(options.cleanupStagingData()) .collectStatistics(options.collectStatistics()) - .bulkLoadBatchIdValue("xyz123") + .bulkLoadTaskIdValue(taskId) .enableConcurrentSafety(true) .caseConversion(caseConversion) .build(); } - private void verifyBulkLoadMetadata(Map appendMetadata, String fileName) + private void verifyBulkLoadMetadata(Map appendMetadata, String fileName, int batchId, Optional taskId) { - Assertions.assertEquals("xyz123", appendMetadata.get("batch_id")); + Assertions.assertEquals(batchId, appendMetadata.get("batch_id")); Assertions.assertEquals("SUCCEEDED", appendMetadata.get("batch_status")); Assertions.assertEquals("main", appendMetadata.get("table_name")); - Assertions.assertEquals(String.format("{\"files\":[\"%s\"]}", fileName), appendMetadata.get("batch_source_info")); Assertions.assertEquals("2000-01-01 00:00:00.0", appendMetadata.get("batch_start_ts_utc").toString()); Assertions.assertEquals("2000-01-01 00:00:00.0", appendMetadata.get("batch_end_ts_utc").toString()); + Assertions.assertTrue(appendMetadata.get("batch_source_info").toString().contains(String.format("\"files\":[\"%s\"]", fileName))); + if (taskId.isPresent()) + { + Assertions.assertTrue(appendMetadata.get("batch_source_info").toString().contains(String.format("\"task_id\":\"%s\"", taskId.get()))); + } + else + { + Assertions.assertFalse(appendMetadata.get("batch_source_info").toString().contains("\"task_id\"")); + } } - private void verifyBulkLoadMetadataForUpperCase(Map appendMetadata, String fileName) + private void verifyBulkLoadMetadataForUpperCase(Map appendMetadata, String fileName, int batchId, Optional taskId) { - Assertions.assertEquals("xyz123", appendMetadata.get("BATCH_ID")); + Assertions.assertEquals(batchId, appendMetadata.get("BATCH_ID")); Assertions.assertEquals("SUCCEEDED", appendMetadata.get("BATCH_STATUS")); Assertions.assertEquals("MAIN", appendMetadata.get("TABLE_NAME")); - Assertions.assertEquals(String.format("{\"files\":[\"%s\"]}", fileName), appendMetadata.get("BATCH_SOURCE_INFO")); Assertions.assertEquals("2000-01-01 00:00:00.0", appendMetadata.get("BATCH_START_TS_UTC").toString()); Assertions.assertEquals("2000-01-01 00:00:00.0", appendMetadata.get("BATCH_END_TS_UTC").toString()); + Assertions.assertTrue(appendMetadata.get("BATCH_SOURCE_INFO").toString().contains(String.format("\"files\":[\"%s\"]", fileName))); + if (taskId.isPresent()) + { + Assertions.assertTrue(appendMetadata.get("BATCH_SOURCE_INFO").toString().contains(String.format("\"task_id\":\"%s\"", taskId.get()))); + } + else + { + Assertions.assertFalse(appendMetadata.get("BATCH_SOURCE_INFO").toString().contains("\"task_id\"")); + } } } diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bulk-load/expected/expected_table1.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bulk-load/expected/expected_table1.csv index b68e9aa646b..022020ba331 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bulk-load/expected/expected_table1.csv +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bulk-load/expected/expected_table1.csv @@ -1,3 +1,3 @@ -1,Andy,5.20,2022-01-11 00:00:00.0,xyz123,2000-01-01 00:00:00.0 -2,Bella,99.99,2022-01-12 00:00:00.0,xyz123,2000-01-01 00:00:00.0 -49,Sandy,123.45,2022-01-13 00:00:00.0,xyz123,2000-01-01 00:00:00.0 \ No newline at end of file +1,Andy,5.20,2022-01-11 00:00:00.0,1,2000-01-01 00:00:00.0 +2,Bella,99.99,2022-01-12 00:00:00.0,1,2000-01-01 00:00:00.0 +49,Sandy,123.45,2022-01-13 00:00:00.0,1,2000-01-01 00:00:00.0 \ No newline at end of file diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bulk-load/expected/expected_table2.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bulk-load/expected/expected_table2.csv index c807b1c4764..92b02b8f19c 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bulk-load/expected/expected_table2.csv +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bulk-load/expected/expected_table2.csv @@ -1,3 +1,3 @@ -1,Andy,5.20,2022-01-11 00:00:00.0,xyz123 -2,Bella,99.99,2022-01-12 00:00:00.0,xyz123 -49,Sandy,123.45,2022-01-13 00:00:00.0,xyz123 \ No newline at end of file +1,Andy,5.20,2022-01-11 00:00:00.0,1 +2,Bella,99.99,2022-01-12 00:00:00.0,1 +49,Sandy,123.45,2022-01-13 00:00:00.0,1 \ No newline at end of file diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bulk-load/expected/expected_table3.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bulk-load/expected/expected_table3.csv index 8fc9ed0670f..b9421520b4a 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bulk-load/expected/expected_table3.csv +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bulk-load/expected/expected_table3.csv @@ -1,3 +1,3 @@ -1,Andy,5.20,2022-01-11 00:00:00.0,6366D6AFD9E8B991393E719A5A4E6D35,xyz123,2000-01-01 00:00:00.0 -2,Bella,99.99,2022-01-12 00:00:00.0,C556B5DC2B9F3A66000202DF9D98EC05,xyz123,2000-01-01 00:00:00.0 -49,Sandy,123.45,2022-01-13 00:00:00.0,051D68CF86951CDE0DF875915940AEC6,xyz123,2000-01-01 00:00:00.0 \ No newline at end of file +1,Andy,5.20,2022-01-11 00:00:00.0,9fc62c73317227ab0760aed72f4fee17,1,2000-01-01 00:00:00.0 +2,Bella,99.99,2022-01-12 00:00:00.0,b0383f1a479eb2a6c5186f045af4c51f,1,2000-01-01 00:00:00.0 +49,Sandy,123.45,2022-01-13 00:00:00.0,dc170980c8540e2a667753e793dad94c,1,2000-01-01 00:00:00.0 \ No newline at end of file diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bulk-load/expected/expected_table4.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bulk-load/expected/expected_table4.csv index 074bc2e251d..0b162ed75bd 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bulk-load/expected/expected_table4.csv +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bulk-load/expected/expected_table4.csv @@ -1,3 +1,3 @@ -1,Andy,5.20,2022-01-11 00:00:00.0,4B39799C7A1FB5EFC4BC328966A159E0,xyz123,2000-01-01 00:00:00.0 -2,Bella,99.99,2022-01-12 00:00:00.0,58467B440BCED7607369DC8A260B0607,xyz123,2000-01-01 00:00:00.0 -49,Sandy,123.45,2022-01-13 00:00:00.0,29B8C8A6CD28B069290372E6B54B6C72,xyz123,2000-01-01 00:00:00.0 \ No newline at end of file +1,Andy,5.20,2022-01-11 00:00:00.0,e7dc92b208f2244b9ece45d706474f55,1,2000-01-01 00:00:00.0 +2,Bella,99.99,2022-01-12 00:00:00.0,278cf3ee2c2981bb8aeade81cc21e87a,1,2000-01-01 00:00:00.0 +49,Sandy,123.45,2022-01-13 00:00:00.0,e8ff35a6699515eaca0a798a7f989978,1,2000-01-01 00:00:00.0 \ No newline at end of file diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bulk-load/expected/expected_table5.csv b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bulk-load/expected/expected_table5.csv index 7d90d71c952..a20715af7c5 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bulk-load/expected/expected_table5.csv +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/src/test/resources/data/bulk-load/expected/expected_table5.csv @@ -1,3 +1,6 @@ -1,Andy,5.20,2022-01-11 00:00:00.0,4B39799C7A1FB5EFC4BC328966A159E0,2000-01-01 00:00:00.0,src/test/resources/data/bulk-load/input/staged_file5.csv -2,Bella,99.99,2022-01-12 00:00:00.0,58467B440BCED7607369DC8A260B0607,2000-01-01 00:00:00.0,src/test/resources/data/bulk-load/input/staged_file5.csv -49,Sandy,123.45,2022-01-13 00:00:00.0,29B8C8A6CD28B069290372E6B54B6C72,2000-01-01 00:00:00.0,src/test/resources/data/bulk-load/input/staged_file5.csv \ No newline at end of file +1,Andy,5.20,2022-01-11 00:00:00.0,1 +2,Bella,99.99,2022-01-12 00:00:00.0,1 +49,Sandy,123.45,2022-01-13 00:00:00.0,1 +1,Andy,5.20,2022-01-11 00:00:00.0,2 +2,Bella,99.99,2022-01-12 00:00:00.0,2 +49,Sandy,123.45,2022-01-13 00:00:00.0,2 \ No newline at end of file diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/src/main/java/org/finos/legend/engine/persistence/components/relational/snowflake/SnowflakeSink.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/src/main/java/org/finos/legend/engine/persistence/components/relational/snowflake/SnowflakeSink.java index 3d438dd721f..46465426e97 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/src/main/java/org/finos/legend/engine/persistence/components/relational/snowflake/SnowflakeSink.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/src/main/java/org/finos/legend/engine/persistence/components/relational/snowflake/SnowflakeSink.java @@ -85,6 +85,7 @@ import java.util.Objects; import java.util.ArrayList; +import static org.finos.legend.engine.persistence.components.relational.api.RelationalIngestorAbstract.BATCH_ID_PATTERN; import static org.finos.legend.engine.persistence.components.relational.api.RelationalIngestorAbstract.BATCH_START_TS_PATTERN; public class SnowflakeSink extends AnsiSqlSink @@ -109,6 +110,7 @@ public class SnowflakeSink extends AnsiSqlSink capabilities.add(Capability.ADD_COLUMN); capabilities.add(Capability.IMPLICIT_DATA_TYPE_CONVERSION); capabilities.add(Capability.DATA_TYPE_LENGTH_CHANGE); + capabilities.add(Capability.TRANSFORM_WHILE_COPY); CAPABILITIES = Collections.unmodifiableSet(capabilities); Map, LogicalPlanVisitor> logicalPlanVisitorByClass = new HashMap<>(); @@ -254,29 +256,32 @@ public IngestorResult performBulkLoad(Datasets datasets, Executor stats = new HashMap<>(); + stats.put(StatisticName.ROWS_INSERTED, totalRowsLoaded); + stats.put(StatisticName.ROWS_WITH_ERRORS, totalRowsWithError); + stats.put(StatisticName.FILES_LOADED, totalFilesLoaded); + + IngestorResult.Builder resultBuilder = IngestorResult.builder() + .updatedDatasets(datasets) + .putAllStatisticByName(stats) + .ingestionTimestampUTC(placeHolderKeyValues.get(BATCH_START_TS_PATTERN)) + .batchId(Optional.ofNullable(placeHolderKeyValues.containsKey(BATCH_ID_PATTERN) ? Integer.valueOf(placeHolderKeyValues.get(BATCH_ID_PATTERN)) : null)); IngestorResult result; + if (dataFilePathsWithFailedBulkLoad.isEmpty()) { - Map stats = new HashMap<>(); - stats.put(StatisticName.ROWS_INSERTED, totalRowsLoaded); - stats.put(StatisticName.ROWS_WITH_ERRORS, totalRowsWithError); - stats.put(StatisticName.FILES_LOADED, totalFilesLoaded); - result = IngestorResult.builder() - .status(IngestStatus.SUCCEEDED) - .updatedDatasets(datasets) - .putAllStatisticByName(stats) - .ingestionTimestampUTC(placeHolderKeyValues.get(BATCH_START_TS_PATTERN)) - .build(); + result = resultBuilder + .status(IngestStatus.SUCCEEDED) + .build(); } else { String errorMessage = String.format("Unable to bulk load these files: %s", String.join(",", dataFilePathsWithFailedBulkLoad)); - result = IngestorResult.builder() - .status(IngestStatus.FAILED) - .message(errorMessage) - .updatedDatasets(datasets) - .ingestionTimestampUTC(placeHolderKeyValues.get(BATCH_START_TS_PATTERN)) - .build(); + result = resultBuilder + .status(IngestStatus.FAILED) + .message(errorMessage) + .build(); } return result; } diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/BulkLoadTest.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/BulkLoadTest.java index 32793a5c47d..dc739b05cbc 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/BulkLoadTest.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/src/test/java/org/finos/legend/engine/persistence/components/ingestmode/BulkLoadTest.java @@ -42,8 +42,6 @@ import java.util.List; import java.util.Map; import java.util.Optional; -import java.util.regex.Matcher; -import java.util.regex.Pattern; import static org.finos.legend.engine.persistence.components.common.StatisticName.*; @@ -54,7 +52,6 @@ public class BulkLoadTest private static Field col1 = Field.builder() .name("col_int") .type(FieldType.of(DataType.INT, Optional.empty(), Optional.empty())) - .primaryKey(true) .build(); private static Field col2 = Field.builder() .name("col_integer") @@ -104,7 +101,8 @@ public void testBulkLoadWithDigestNotGeneratedColumnNumbersDerived() .relationalSink(SnowflakeSink.get()) .collectStatistics(true) .executionTimestampClock(fixedClock_2000_01_01) - .bulkLoadBatchIdValue("batch123") + .bulkLoadTaskIdValue("task123") + .batchIdPattern("{NEXT_BATCH_ID}") .build(); GeneratorResult operations = generator.generateOperations(Datasets.of(mainDataset, stagedFilesDataset)); @@ -114,16 +112,16 @@ public void testBulkLoadWithDigestNotGeneratedColumnNumbersDerived() List metadataIngestSql = operations.metadataIngestSql(); Map statsSql = operations.postIngestStatisticsSql(); - String expectedCreateTableSql = "CREATE TABLE IF NOT EXISTS \"my_db\".\"my_name\"(\"col_int\" INTEGER NOT NULL PRIMARY KEY,\"col_integer\" INTEGER,\"batch_id\" VARCHAR,\"append_time\" DATETIME)"; + String expectedCreateTableSql = "CREATE TABLE IF NOT EXISTS \"my_db\".\"my_name\"(\"col_int\" INTEGER,\"col_integer\" INTEGER,\"batch_id\" INTEGER,\"append_time\" DATETIME)"; String expectedIngestSql = "COPY INTO \"my_db\".\"my_name\" " + "(\"col_int\", \"col_integer\", \"batch_id\", \"append_time\") " + "FROM " + - "(SELECT legend_persistence_stage.$1 as \"col_int\",legend_persistence_stage.$2 as \"col_integer\",'batch123','2000-01-01 00:00:00' " + + "(SELECT legend_persistence_stage.$1 as \"col_int\",legend_persistence_stage.$2 as \"col_integer\",{NEXT_BATCH_ID},'2000-01-01 00:00:00' " + "FROM my_location (FILE_FORMAT => 'my_file_format', PATTERN => '(/path/xyz/file1.csv)|(/path/xyz/file2.csv)') as legend_persistence_stage)" + " on_error = 'ABORT_STATEMENT'"; String expectedMetadataIngestSql = "INSERT INTO bulk_load_batch_metadata (\"batch_id\", \"table_name\", \"batch_start_ts_utc\", \"batch_end_ts_utc\", \"batch_status\", \"batch_source_info\") " + - "(SELECT 'batch123','my_name','2000-01-01 00:00:00',SYSDATE(),'{BULK_LOAD_BATCH_STATUS_PLACEHOLDER}',PARSE_JSON('{\"files\":[\"/path/xyz/file1.csv\",\"/path/xyz/file2.csv\"]}'))"; + "(SELECT {NEXT_BATCH_ID},'my_name','2000-01-01 00:00:00',SYSDATE(),'{BULK_LOAD_BATCH_STATUS_PLACEHOLDER}',PARSE_JSON('{\"files\":[\"/path/xyz/file1.csv\",\"/path/xyz/file2.csv\"],\"task_id\":\"task123\"}'))"; Assertions.assertEquals(expectedCreateTableSql, preActionsSql.get(0)); Assertions.assertEquals(expectedIngestSql, ingestSql.get(0)); @@ -163,7 +161,7 @@ public void testBulkLoadWithDigestNotGeneratedColumnNumbersProvided() .ingestMode(bulkLoad) .relationalSink(SnowflakeSink.get()) .collectStatistics(true) - .bulkLoadBatchIdValue("batch123") + .bulkLoadTaskIdValue("task123") .build(); GeneratorResult operations = generator.generateOperations(Datasets.of(mainDataset, stagedFilesDataset)); @@ -172,11 +170,11 @@ public void testBulkLoadWithDigestNotGeneratedColumnNumbersProvided() List ingestSql = operations.ingestSql(); Map statsSql = operations.postIngestStatisticsSql(); - String expectedCreateTableSql = "CREATE TABLE IF NOT EXISTS \"my_db\".\"my_name\"(\"col_bigint\" BIGINT,\"col_variant\" VARIANT,\"batch_id\" VARCHAR)"; + String expectedCreateTableSql = "CREATE TABLE IF NOT EXISTS \"my_db\".\"my_name\"(\"col_bigint\" BIGINT,\"col_variant\" VARIANT,\"batch_id\" INTEGER)"; String expectedIngestSql = "COPY INTO \"my_db\".\"my_name\" " + "(\"col_bigint\", \"col_variant\", \"batch_id\") " + "FROM " + - "(SELECT t.$4 as \"col_bigint\",TO_VARIANT(PARSE_JSON(t.$5)) as \"col_variant\",'batch123' " + + "(SELECT t.$4 as \"col_bigint\",TO_VARIANT(PARSE_JSON(t.$5)) as \"col_variant\",(SELECT COALESCE(MAX(bulk_load_batch_metadata.\"batch_id\"),0)+1 FROM bulk_load_batch_metadata as bulk_load_batch_metadata WHERE UPPER(bulk_load_batch_metadata.\"table_name\") = 'MY_NAME') " + "FROM my_location (FILE_FORMAT => 'my_file_format', PATTERN => '(/path/xyz/file1.csv)|(/path/xyz/file2.csv)') as t) " + "on_error = 'ABORT_STATEMENT'"; @@ -189,7 +187,7 @@ public void testBulkLoadWithDigestNotGeneratedColumnNumbersProvided() } @Test - public void testBulkLoadWithUpperCaseConversionAndDefaultBatchId() + public void testBulkLoadWithUpperCaseConversionAndNoTaskId() { BulkLoad bulkLoad = BulkLoad.builder() .batchIdField("batch_id") @@ -223,31 +221,28 @@ public void testBulkLoadWithUpperCaseConversionAndDefaultBatchId() List preActionsSql = operations.preActionsSql(); List ingestSql = operations.ingestSql(); + List metadataIngestSql = operations.metadataIngestSql(); Map statsSql = operations.postIngestStatisticsSql(); - // Extract the generated UUID - Pattern pattern = Pattern.compile("[a-f0-9]{8}(?:-[a-f0-9]{4}){4}[a-f0-9]{8}"); - Matcher matcher = pattern.matcher(ingestSql.get(0)); - String uuid = ""; - if (matcher.find()) - { - uuid = matcher.group(); - } - - String expectedCreateTableSql = "CREATE TABLE IF NOT EXISTS \"MY_DB\".\"MY_NAME\"(\"COL_INT\" INTEGER NOT NULL PRIMARY KEY," + - "\"COL_INTEGER\" INTEGER,\"DIGEST\" VARCHAR,\"BATCH_ID\" VARCHAR,\"APPEND_TIME\" DATETIME)"; + String expectedCreateTableSql = "CREATE TABLE IF NOT EXISTS \"MY_DB\".\"MY_NAME\"(\"COL_INT\" INTEGER," + + "\"COL_INTEGER\" INTEGER,\"DIGEST\" VARCHAR,\"BATCH_ID\" INTEGER,\"APPEND_TIME\" DATETIME)"; String expectedIngestSql = "COPY INTO \"MY_DB\".\"MY_NAME\" " + "(\"COL_INT\", \"COL_INTEGER\", \"DIGEST\", \"BATCH_ID\", \"APPEND_TIME\") " + "FROM " + "(SELECT legend_persistence_stage.$1 as \"COL_INT\",legend_persistence_stage.$2 as \"COL_INTEGER\"," + "LAKEHOUSE_MD5(OBJECT_CONSTRUCT('COL_INT',legend_persistence_stage.$1,'COL_INTEGER',legend_persistence_stage.$2))," + - "'%s','2000-01-01 00:00:00' " + + "(SELECT COALESCE(MAX(BULK_LOAD_BATCH_METADATA.\"BATCH_ID\"),0)+1 FROM BULK_LOAD_BATCH_METADATA as BULK_LOAD_BATCH_METADATA WHERE UPPER(BULK_LOAD_BATCH_METADATA.\"TABLE_NAME\") = 'MY_NAME'),'2000-01-01 00:00:00' " + "FROM my_location (FILE_FORMAT => 'my_file_format', " + "PATTERN => '(/path/xyz/file1.csv)|(/path/xyz/file2.csv)') as legend_persistence_stage) " + "on_error = 'ABORT_STATEMENT'"; + String expectedMetadataIngestSql = "INSERT INTO BULK_LOAD_BATCH_METADATA (\"BATCH_ID\", \"TABLE_NAME\", \"BATCH_START_TS_UTC\", \"BATCH_END_TS_UTC\", \"BATCH_STATUS\", \"BATCH_SOURCE_INFO\") " + + "(SELECT (SELECT COALESCE(MAX(BULK_LOAD_BATCH_METADATA.\"BATCH_ID\"),0)+1 FROM BULK_LOAD_BATCH_METADATA as BULK_LOAD_BATCH_METADATA WHERE UPPER(BULK_LOAD_BATCH_METADATA.\"TABLE_NAME\") = 'MY_NAME')," + + "'MY_NAME','2000-01-01 00:00:00',SYSDATE(),'{BULK_LOAD_BATCH_STATUS_PLACEHOLDER}',PARSE_JSON('{\"files\":[\"/path/xyz/file1.csv\",\"/path/xyz/file2.csv\"]}'))"; + Assertions.assertEquals(expectedCreateTableSql, preActionsSql.get(0)); - Assertions.assertEquals(String.format(expectedIngestSql, uuid), ingestSql.get(0)); + Assertions.assertEquals(expectedIngestSql, ingestSql.get(0)); + Assertions.assertEquals(expectedMetadataIngestSql, metadataIngestSql.get(0)); Assertions.assertEquals("SELECT 0 as \"ROWSDELETED\"", statsSql.get(ROWS_DELETED)); Assertions.assertEquals("SELECT 0 as \"ROWSTERMINATED\"", statsSql.get(ROWS_TERMINATED)); @@ -317,7 +312,7 @@ public void testBulkLoadStagedFilesDatasetNotProvided() .relationalSink(SnowflakeSink.get()) .collectStatistics(true) .executionTimestampClock(fixedClock_2000_01_01) - .bulkLoadBatchIdValue("batch123") + .bulkLoadTaskIdValue("batch123") .build(); GeneratorResult operations = generator.generateOperations(Datasets.of(mainDataset, stagingDataset)); @@ -357,7 +352,7 @@ public void testBulkLoadWithDigest() .relationalSink(SnowflakeSink.get()) .collectStatistics(true) .executionTimestampClock(fixedClock_2000_01_01) - .bulkLoadBatchIdValue("batch123") + .bulkLoadTaskIdValue("task123") .build(); GeneratorResult operations = generator.generateOperations(Datasets.of(mainDataset, stagedFilesDataset)); @@ -366,14 +361,14 @@ public void testBulkLoadWithDigest() List ingestSql = operations.ingestSql(); Map statsSql = operations.postIngestStatisticsSql(); - String expectedCreateTableSql = "CREATE TABLE IF NOT EXISTS \"my_db\".\"my_name\"(\"col_int\" INTEGER NOT NULL PRIMARY KEY,\"col_integer\" INTEGER,\"digest\" VARCHAR,\"batch_id\" VARCHAR,\"append_time\" DATETIME)"; + String expectedCreateTableSql = "CREATE TABLE IF NOT EXISTS \"my_db\".\"my_name\"(\"col_int\" INTEGER,\"col_integer\" INTEGER,\"digest\" VARCHAR,\"batch_id\" INTEGER,\"append_time\" DATETIME)"; String expectedIngestSql = "COPY INTO \"my_db\".\"my_name\" " + "(\"col_int\", \"col_integer\", \"digest\", \"batch_id\", \"append_time\") " + "FROM " + "(SELECT legend_persistence_stage.$1 as \"col_int\",legend_persistence_stage.$2 as \"col_integer\"," + "LAKEHOUSE_UDF(OBJECT_CONSTRUCT('col_int',legend_persistence_stage.$1,'col_integer',legend_persistence_stage.$2))," + - "'batch123','2000-01-01 00:00:00' " + + "(SELECT COALESCE(MAX(bulk_load_batch_metadata.\"batch_id\"),0)+1 FROM bulk_load_batch_metadata as bulk_load_batch_metadata WHERE UPPER(bulk_load_batch_metadata.\"table_name\") = 'MY_NAME'),'2000-01-01 00:00:00' " + "FROM my_location (FILE_FORMAT => 'my_file_format', " + "PATTERN => '(/path/xyz/file1.csv)|(/path/xyz/file2.csv)') as legend_persistence_stage) " + "on_error = 'ABORT_STATEMENT'"; diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/src/test/java/org/finos/legend/engine/persistence/components/util/BulkLoadDatasetUtilsSnowflakeTest.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/src/test/java/org/finos/legend/engine/persistence/components/util/BulkLoadDatasetUtilsSnowflakeTest.java index 8ad9c6351ef..4a5a9dd4992 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/src/test/java/org/finos/legend/engine/persistence/components/util/BulkLoadDatasetUtilsSnowflakeTest.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/src/test/java/org/finos/legend/engine/persistence/components/util/BulkLoadDatasetUtilsSnowflakeTest.java @@ -24,13 +24,13 @@ public String getExpectedSqlForMetadata() { return "INSERT INTO bulk_load_batch_metadata " + "(\"batch_id\", \"table_name\", \"batch_start_ts_utc\", \"batch_end_ts_utc\", \"batch_status\", \"batch_source_info\") " + - "(SELECT 'batch_id_123','appeng_log_table_name','2000-01-01 00:00:00',SYSDATE(),'',PARSE_JSON('my_lineage_value'))"; + "(SELECT (SELECT COALESCE(MAX(bulk_load_batch_metadata.\"batch_id\"),0)+1 FROM bulk_load_batch_metadata as bulk_load_batch_metadata WHERE UPPER(bulk_load_batch_metadata.\"table_name\") = 'APPENG_LOG_TABLE_NAME'),'appeng_log_table_name','2000-01-01 00:00:00',SYSDATE(),'',PARSE_JSON('my_lineage_value'))"; } public String getExpectedSqlForMetadataUpperCase() { return "INSERT INTO BULK_LOAD_BATCH_METADATA (\"BATCH_ID\", \"TABLE_NAME\", \"BATCH_START_TS_UTC\", \"BATCH_END_TS_UTC\", \"BATCH_STATUS\", \"BATCH_SOURCE_INFO\") " + - "(SELECT 'batch_id_123','BULK_LOAD_TABLE_NAME','2000-01-01 00:00:00',SYSDATE(),'',PARSE_JSON('my_lineage_value'))"; + "(SELECT (SELECT COALESCE(MAX(bulk_load_batch_metadata.\"BATCH_ID\"),0)+1 FROM BULK_LOAD_BATCH_METADATA as bulk_load_batch_metadata WHERE UPPER(bulk_load_batch_metadata.\"TABLE_NAME\") = 'BULK_LOAD_TABLE_NAME'),'BULK_LOAD_TABLE_NAME','2000-01-01 00:00:00',SYSDATE(),'',PARSE_JSON('my_lineage_value'))"; } public RelationalSink getRelationalSink() diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/src/test/java/org/finos/legend/engine/persistence/components/testcases/ingestmode/nontemporal/NontemporalSnapshotTestCases.java b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/src/test/java/org/finos/legend/engine/persistence/components/testcases/ingestmode/nontemporal/NontemporalSnapshotTestCases.java index 4a81ebce332..979a71ccd76 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/src/test/java/org/finos/legend/engine/persistence/components/testcases/ingestmode/nontemporal/NontemporalSnapshotTestCases.java +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/src/test/java/org/finos/legend/engine/persistence/components/testcases/ingestmode/nontemporal/NontemporalSnapshotTestCases.java @@ -203,7 +203,7 @@ public void testNontemporalSnapshotWithDropStagingData() TestScenario testScenario = scenarios.NO_AUDTING__NO_DATASPLIT(); PlannerOptions options = PlannerOptions.builder().collectStatistics(true).build(); Resources resources = Resources.builder().externalDatasetImported(true).build(); - Planner planner = Planners.get(testScenario.getDatasets(), testScenario.getIngestMode(), options); + Planner planner = Planners.get(testScenario.getDatasets(), testScenario.getIngestMode(), options, getRelationalSink().capabilities()); RelationalTransformer transformer = new RelationalTransformer(getRelationalSink()); // post actions From c6100b9cb76d3531c90942636e76d47e44ea1b00 Mon Sep 17 00:00:00 2001 From: AFine-gs <69924417+AFine-gs@users.noreply.github.com> Date: Thu, 19 Oct 2023 16:59:44 -0400 Subject: [PATCH 30/80] cache database column types to improve serialization speed (#2378) --- .../relational/result/RelationalResult.java | 32 ++++--- .../result/SQLResultDBColumnsMetaData.java | 28 ++++++- .../result/TestSqlResultDBColumnMetaData.java | 83 +++++++++++++++++++ 3 files changed, 129 insertions(+), 14 deletions(-) create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/result/TestSqlResultDBColumnMetaData.java 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/result/RelationalResult.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/result/RelationalResult.java index f26517bfeff..086e87eac60 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/result/RelationalResult.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/result/RelationalResult.java @@ -25,6 +25,7 @@ import java.sql.Statement; import java.sql.Timestamp; import java.sql.Types; +import java.util.Calendar; import java.util.GregorianCalendar; import java.util.List; import java.util.Map; @@ -113,6 +114,7 @@ public class RelationalResult extends StreamingResult implements IRelationalResu public MutableList setTransformers = Lists.mutable.empty(); public Builder builder; + private Calendar calendar; public RelationalResult(MutableList activities, RelationalExecutionNode node, List sqlResultColumns, String databaseType, String databaseTimeZone, Connection connection, MutableList profiles, List temporaryTables, Span topSpan) { @@ -444,16 +446,7 @@ public Object getValue(int columnIndex) throws SQLException if (resultDBColumnsMetaData.isTimestampColumn(columnIndex)) { Timestamp ts; - if (getRelationalDatabaseTimeZone() != null) - { - ts = resultSet.getTimestamp(columnIndex, new GregorianCalendar(TimeZone.getTimeZone(getRelationalDatabaseTimeZone()))); - } - else - { - //TODO, throw exception, TZ should always be specified - //Till then, default to PURE default which is "GMT" - ts = resultSet.getTimestamp(columnIndex, new GregorianCalendar(TimeZone.getTimeZone("GMT"))); - } + ts = resultSet.getTimestamp(columnIndex, getCalendar()); result = ts; } else if (resultDBColumnsMetaData.isDateColumn(columnIndex)) @@ -651,6 +644,25 @@ public boolean tryAdvance(Consumer action) return StreamSupport.stream(spliterator, false).onClose(this::close); } + + private Calendar getCalendar() + { + String timeZoneId = getRelationalDatabaseTimeZone(); + TimeZone timeZone = (timeZoneId != null) ? TimeZone.getTimeZone(timeZoneId) : TimeZone.getTimeZone("GMT"); + if (calendar == null) + { + //TODO, throw exception, TZ should always be specified + //Till then, default to PURE default which is "GMT" + calendar = new GregorianCalendar(timeZone); + } + else + { + calendar.clear(); + calendar.setTimeZone(timeZone); + } + return calendar; + } + @Override public void cancel() { 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/result/SQLResultDBColumnsMetaData.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/result/SQLResultDBColumnsMetaData.java index f5dc26a96a7..54177ee6e21 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/result/SQLResultDBColumnsMetaData.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/result/SQLResultDBColumnsMetaData.java @@ -26,25 +26,45 @@ public class SQLResultDBColumnsMetaData { private final List sqlResultColumns; private final List dbMetaDataType; + private final boolean[] timeStampColumns; + private final boolean[] dateColumns; SQLResultDBColumnsMetaData(List resultColumns, ResultSetMetaData rsMetaData) throws SQLException { + int size = resultColumns.size(); this.sqlResultColumns = resultColumns; - this.dbMetaDataType = Lists.multiReader.ofInitialCapacity(resultColumns.size()); - for (int i = 1; i <= resultColumns.size(); i++) + this.dbMetaDataType = Lists.multiReader.ofInitialCapacity(size); + this.timeStampColumns = new boolean[size]; + this.dateColumns = new boolean[size]; + + + for (int i = 1; i <= size; i++) { + this.dbMetaDataType.add(rsMetaData.getColumnType(i)); + if (columnIsOfType(i, Types.TIMESTAMP, "TIMESTAMP")) + { + timeStampColumns[i - 1] = true; + + } + else if (columnIsOfType(i, Types.DATE, "DATE")) + { + dateColumns[i - 1] = true; + + } + } } boolean isTimestampColumn(int index) { - return columnIsOfType(index, Types.TIMESTAMP, "TIMESTAMP"); + return timeStampColumns[index - 1]; } + boolean isDateColumn(int index) { - return columnIsOfType(index, Types.DATE, "DATE"); + return dateColumns[index - 1]; } private boolean columnIsOfType(int index, int dbColumnType, String alloyColumnType) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/result/TestSqlResultDBColumnMetaData.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/result/TestSqlResultDBColumnMetaData.java new file mode 100644 index 00000000000..bd9e267200d --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/result/TestSqlResultDBColumnMetaData.java @@ -0,0 +1,83 @@ +// Copyright 2023 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.result; + +import org.eclipse.collections.api.factory.Lists; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.model.result.SQLResultColumn; +import java.sql.ResultSetMetaData; +import java.sql.SQLException; +import java.sql.Types; +import java.util.List; +import org.junit.Before; +import org.junit.Test; +import org.mockito.Mockito; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.when; + +public class TestSqlResultDBColumnMetaData +{ + + private SQLResultDBColumnsMetaData metaData; + private ResultSetMetaData resultSetMetaData; + + + @Before + public void setUp() throws SQLException + { + resultSetMetaData = Mockito.mock(ResultSetMetaData.class); + try + { + when(resultSetMetaData.getColumnType(1)).thenReturn(Types.TIMESTAMP); + when(resultSetMetaData.getColumnType(2)).thenReturn(Types.DATE); + when(resultSetMetaData.getColumnType(3)).thenReturn(Types.VARCHAR); + + } + catch (SQLException e) + { + e.printStackTrace(); + } + + List resultColumns = Lists.mutable.of( + new SQLResultColumn("Column1", "TIMESTAMP"), + new SQLResultColumn("Column2", "DATE"), + new SQLResultColumn("Column3", "STRING") + + ); + + metaData = new SQLResultDBColumnsMetaData(resultColumns, resultSetMetaData); + } + + @Test + public void testIsTimestampColumn() + { + assertTrue(metaData.isTimestampColumn(1)); + assertFalse(metaData.isTimestampColumn(2)); + assertFalse(metaData.isTimestampColumn(3)); + + } + + + @Test + public void testIsDateColumn() + { + assertFalse(metaData.isDateColumn(1)); + assertTrue(metaData.isDateColumn(2)); + assertFalse(metaData.isDateColumn(3)); + + } + +} From bdd95cf5e359a4e09df840b6c018d0566127b74e Mon Sep 17 00:00:00 2001 From: Rafael Bey <24432403+rafaelbey@users.noreply.github.com> Date: Thu, 19 Oct 2023 17:48:06 -0400 Subject: [PATCH 31/80] Allow parsing sql expressions (#2389) --- .../sql/grammar/from/SQLGrammarParser.java | 7 ++++ .../test/roundtrip/TestSQLRoundTrip.java | 42 +++++++++++++++++++ 2 files changed, 49 insertions(+) diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/java/org/finos/legend/engine/language/sql/grammar/from/SQLGrammarParser.java b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/java/org/finos/legend/engine/language/sql/grammar/from/SQLGrammarParser.java index 408f72c14c9..83be78cddba 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/java/org/finos/legend/engine/language/sql/grammar/from/SQLGrammarParser.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/main/java/org/finos/legend/engine/language/sql/grammar/from/SQLGrammarParser.java @@ -28,6 +28,7 @@ import org.finos.legend.engine.language.sql.grammar.from.antlr4.SqlBaseLexer; import org.finos.legend.engine.language.sql.grammar.from.antlr4.SqlBaseParser; import org.finos.legend.engine.protocol.pure.v1.model.SourceInformation; +import org.finos.legend.engine.protocol.sql.metamodel.Expression; import org.finos.legend.engine.protocol.sql.metamodel.Statement; import java.util.BitSet; @@ -51,6 +52,12 @@ public Statement parseStatement(String query) return this.parse(query, "statement"); } + public Expression parseExpression(String expression) + { + SqlBaseParser parser = getSqlBaseParser(expression, "expression"); + return (Expression) sqlVisitor.visitSingleExpression(parser.singleExpression()); + } + private Statement parse(String query, String name) { SqlBaseParser parser = getSqlBaseParser(query, name); diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/test/java/org/finos/legend/engine/language/sql/grammar/test/roundtrip/TestSQLRoundTrip.java b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/test/java/org/finos/legend/engine/language/sql/grammar/test/roundtrip/TestSQLRoundTrip.java index befce651ac1..2643bb292bc 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/test/java/org/finos/legend/engine/language/sql/grammar/test/roundtrip/TestSQLRoundTrip.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/src/test/java/org/finos/legend/engine/language/sql/grammar/test/roundtrip/TestSQLRoundTrip.java @@ -128,18 +128,36 @@ public void testWhere() check("SELECT * FROM myTable WHERE col1 = 1"); } + @Test + public void testWhereExpression() + { + checkExpression("col1 = 1"); + } + @Test public void testCompositeWhere() { check("SELECT * FROM myTable WHERE col1 = 1 AND col2 = 1"); } + @Test + public void testCompositeWhereExpression() + { + checkExpression("col1 = 1 AND col2 = 1"); + } + @Test public void testWhereQualified() { check("SELECT * FROM myTable WHERE myTable.col1 = 1"); } + @Test + public void testWhereQualifiedExpression() + { + checkExpression("myTable.col1 = 1"); + } + @Test public void testCompositeWhereQualifiedWithAlias() { @@ -155,6 +173,15 @@ public void testCompositeWhereOperators() "col BETWEEN 0 AND 1"); } + @Test + public void testCompositeWhereOperatorsExpression() + { + checkExpression("col = 1 AND col > 1 AND col < 1 " + + "AND col >= 1 AND col <= 1 AND col IN (1, 2, 3) AND col IS NULL AND " + + "col IS NOT NULL AND col IS DISTINCT FROM 1 AND col IS NOT DISTINCT FROM 1 AND " + + "col BETWEEN 0 AND 1"); + } + @Test public void testGroupBy() { @@ -324,4 +351,19 @@ private void check(String sql, String expected) String result = composer.renderNode(node); MatcherAssert.assertThat(result.trim(), IsEqualIgnoringCase.equalToIgnoringCase(expected)); } + + private void checkExpression(String expression) + { + checkExpression(expression, expression); + checkExpression(expression.toLowerCase(), expression); + } + + private void checkExpression(String expression, String expected) + { + SQLGrammarParser parser = SQLGrammarParser.newInstance(); + Node node = parser.parseExpression(expression); + SQLGrammarComposer composer = SQLGrammarComposer.newInstance(); + String result = composer.renderNode(node); + MatcherAssert.assertThat(result.trim(), IsEqualIgnoringCase.equalToIgnoringCase(expected)); + } } From 0ca8d0a23520ed5aeec8ae68fd8e99ad14b26712 Mon Sep 17 00:00:00 2001 From: AFine-gs <69924417+AFine-gs@users.noreply.github.com> Date: Thu, 19 Oct 2023 18:54:19 -0400 Subject: [PATCH 32/80] update arrow stream writer (#2388) --- .../format/arrow/ArrowDataWriter.java | 33 +++++++++-------- .../format/arrow/ArrowRuntimeExtension.java | 2 +- .../src/test/java/TestArrowNodeExecutor.java | 11 +++--- .../src/test/java/TestArrowQueries.java | 5 ++- .../src/test/resources/arrowService.json | 34 +++--------------- .../resources/expectedArrowServiceData.arrow | Bin 880 -> 696 bytes 6 files changed, 32 insertions(+), 53 deletions(-) diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/src/main/java/org/finos/legend/engine/external/format/arrow/ArrowDataWriter.java b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/src/main/java/org/finos/legend/engine/external/format/arrow/ArrowDataWriter.java index 330d78225c6..381604cbea7 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/src/main/java/org/finos/legend/engine/external/format/arrow/ArrowDataWriter.java +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/src/main/java/org/finos/legend/engine/external/format/arrow/ArrowDataWriter.java @@ -16,11 +16,9 @@ import java.nio.charset.Charset; import java.util.Calendar; -import java.util.HashMap; -import java.util.Locale; +import java.util.GregorianCalendar; import java.util.TimeZone; -import org.apache.arrow.adapter.jdbc.JdbcFieldInfo; import org.apache.arrow.adapter.jdbc.JdbcToArrowConfig; import org.apache.arrow.adapter.jdbc.JdbcToArrowConfigBuilder; import org.apache.arrow.adapter.jdbc.LegendArrowVectorIterator; @@ -32,39 +30,40 @@ import java.io.IOException; import java.io.OutputStream; -import java.sql.ResultSet; import java.sql.SQLException; +import org.finos.legend.engine.plan.execution.stores.relational.result.RelationalResult; public class ArrowDataWriter extends ExternalFormatWriter implements AutoCloseable { private final LegendArrowVectorIterator iterator; private final BufferAllocator allocator; - public ArrowDataWriter(ResultSet resultSet) throws SQLException + public ArrowDataWriter(RelationalResult resultSet) throws SQLException { - HashMap map = new HashMap(); - this.allocator = new RootAllocator(); - JdbcToArrowConfig config = new JdbcToArrowConfigBuilder(allocator, Calendar.getInstance(TimeZone.getDefault(), Locale.ROOT)).build(); - this.iterator = LegendArrowVectorIterator.create(resultSet, config); + Calendar calendar = resultSet.getRelationalDatabaseTimeZone() == null ? + new GregorianCalendar(TimeZone.getTimeZone("GMT")) : + new GregorianCalendar(TimeZone.getTimeZone(resultSet.getRelationalDatabaseTimeZone())); + JdbcToArrowConfig config = new JdbcToArrowConfigBuilder(allocator, calendar).setReuseVectorSchemaRoot(true).build(); + this.iterator = LegendArrowVectorIterator.create(resultSet.getResultSet(), config); } @Override public void writeData(OutputStream outputStream) throws IOException { - try + try (VectorSchemaRoot vector = iterator.next(); + ArrowStreamWriter writer = new ArrowStreamWriter(vector, null, outputStream); + ) { + writer.start(); + writer.writeBatch(); while (this.iterator.hasNext()) { - try (VectorSchemaRoot vector = iterator.next(); - ArrowStreamWriter writer = new ArrowStreamWriter(vector, null, outputStream) - ) - { - writer.start(); - writer.writeBatch(); - } + iterator.next(); + writer.writeBatch(); + } } catch (Exception e) diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/src/main/java/org/finos/legend/engine/external/format/arrow/ArrowRuntimeExtension.java b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/src/main/java/org/finos/legend/engine/external/format/arrow/ArrowRuntimeExtension.java index 372a03f85ac..326a6053071 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/src/main/java/org/finos/legend/engine/external/format/arrow/ArrowRuntimeExtension.java +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/src/main/java/org/finos/legend/engine/external/format/arrow/ArrowRuntimeExtension.java @@ -65,7 +65,7 @@ public Result executeExternalizeTDSExecutionNode(ExternalFormatExternalizeTDSExe private Result streamArrowFromRelational(RelationalResult relationalResult) throws SQLException, IOException { - return new ExternalFormatSerializeResult(new ArrowDataWriter(relationalResult.getResultSet()), relationalResult, CONTENT_TYPE); + return new ExternalFormatSerializeResult(new ArrowDataWriter(relationalResult), relationalResult, CONTENT_TYPE); } diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/src/test/java/TestArrowNodeExecutor.java b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/src/test/java/TestArrowNodeExecutor.java index 0c388a95af5..6db2d4232d4 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/src/test/java/TestArrowNodeExecutor.java +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/src/test/java/TestArrowNodeExecutor.java @@ -14,6 +14,7 @@ import java.io.FileOutputStream; import java.io.IOException; +import java.util.TimeZone; import org.apache.arrow.memory.BufferAllocator; import org.apache.arrow.memory.RootAllocator; import org.apache.arrow.vector.VectorSchemaRoot; @@ -31,6 +32,7 @@ import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.model.result.SQLResultColumn; import org.finos.legend.engine.shared.core.api.request.RequestContext; import org.junit.Assert; +import org.junit.Before; import org.junit.Test; import org.mockito.Mockito; @@ -45,7 +47,6 @@ public class TestArrowNodeExecutor { - @Test public void testExternalize() throws Exception { @@ -57,7 +58,7 @@ public void testExternalize() throws Exception mockExecutionNode.connection = mockDatabaseConnection; Mockito.when(mockDatabaseConnection.accept(any())).thenReturn(false); - try (Connection conn = DriverManager.getConnection("jdbc:h2:~/test", "sa", ""); + try (Connection conn = DriverManager.getConnection("jdbc:h2:~/test;TIME ZONE=America/New_York", "sa", ""); ByteArrayOutputStream outputStream = new ByteArrayOutputStream()) { //setup table @@ -70,7 +71,7 @@ public void testExternalize() throws Exception conn.createStatement().execute("INSERT INTO testtable (testInt, testString, testDate, testBool) VALUES(1,'A', '2020-01-01 00:00:00-05:00',true),( 2,null, '2020-01-01 00:00:00-02:00',false ),( 3,'B', '2020-01-01 00:00:00-05:00',false )"); conn.createStatement().execute("INSERT INTO testtableJoin (testIntR, testStringR) VALUES(6,'A'), (1,'B')"); - RelationalResult result = new RelationalResult(FastList.newListWith(new RelationalExecutionActivity("SELECT * FROM testtable left join testtableJoin on testtable.testInt=testtableJoin.testIntR", null)), mockExecutionNode, FastList.newListWith(new SQLResultColumn("testInt", "INTEGER"), new SQLResultColumn("testStringR", "VARCHAR"), new SQLResultColumn("testString", "VARCHAR"), new SQLResultColumn("testDate", "TIMESTAMP"), new SQLResultColumn("testBool", "TIMESTAMP")), null, "GMT", conn, null, null, null, new RequestContext()); + RelationalResult result = new RelationalResult(FastList.newListWith(new RelationalExecutionActivity("SELECT * FROM testtable left join testtableJoin on testtable.testInt=testtableJoin.testIntR", null)), mockExecutionNode, FastList.newListWith(new SQLResultColumn("testInt", "INTEGER"), new SQLResultColumn("testStringR", "VARCHAR"), new SQLResultColumn("testString", "VARCHAR"), new SQLResultColumn("testDate", "TIMESTAMP"), new SQLResultColumn("testBool", "TIMESTAMP")), null, "America/New_York", conn, null, null, null, new RequestContext()); ExternalFormatSerializeResult nodeExecute = (ExternalFormatSerializeResult) extension.executeExternalizeTDSExecutionNode(node, result, null, null); @@ -97,7 +98,7 @@ public void testExternalizeAsString() throws Exception mockExecutionNode.connection = mockDatabaseConnection; Mockito.when(mockDatabaseConnection.accept(any())).thenReturn(false); - try (Connection conn = DriverManager.getConnection("jdbc:h2:~/test", "sa", ""); + try (Connection conn = DriverManager.getConnection("jdbc:h2:~/test;TIME ZONE=America/New_York", "sa", ""); ) { @@ -106,7 +107,7 @@ public void testExternalizeAsString() throws Exception conn.createStatement().execute("Create Table testtable (testInt INTEGER, testString VARCHAR(255), testDate TIMESTAMP, testBool BOOLEAN)"); conn.createStatement().execute("INSERT INTO testtable (testInt, testString, testDate, testBool) VALUES(1,'A', '2020-01-01 00:00:00-05:00',true),( 2,'B', '2020-01-01 00:00:00-02:00',false ),( 3,'B', '2020-01-01 00:00:00-05:00',false )"); - RelationalResult result = new RelationalResult(FastList.newListWith(new RelationalExecutionActivity("SELECT * FROM testtable", null)), mockExecutionNode, FastList.newListWith(new SQLResultColumn("testInt", "INTEGER"), new SQLResultColumn("testString", "VARCHAR"), new SQLResultColumn("testDate", "TIMESTAMP"), new SQLResultColumn("testBool", "TIMESTAMP")), null, "GMT", conn, null, null, null, new RequestContext()); + RelationalResult result = new RelationalResult(FastList.newListWith(new RelationalExecutionActivity("SELECT * FROM testtable", null)), mockExecutionNode, FastList.newListWith(new SQLResultColumn("testInt", "INTEGER"), new SQLResultColumn("testString", "VARCHAR"), new SQLResultColumn("testDate", "TIMESTAMP"), new SQLResultColumn("testBool", "TIMESTAMP")), null, "America/New_York", conn, null, null, null, new RequestContext()); ExternalFormatSerializeResult nodeExecute = (ExternalFormatSerializeResult) extension.executeExternalizeTDSExecutionNode(node, result, null, null); diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/src/test/java/TestArrowQueries.java b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/src/test/java/TestArrowQueries.java index 2f0dfbb49c7..529873fee2a 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/src/test/java/TestArrowQueries.java +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/src/test/java/TestArrowQueries.java @@ -55,6 +55,7 @@ public class TestArrowQueries { + @Test public void runTest() { @@ -62,6 +63,7 @@ public void runTest() ByteArrayOutputStream baos = new ByteArrayOutputStream(); ) { + ObjectMapper objectMapper = ObjectMapperFactory.getNewStandardObjectMapperWithPureProtocolExtensionSupports(); ExecuteInput input = objectMapper.readValue(getClass().getClassLoader().getResource("arrowService.json"), ExecuteInput.class); @@ -81,7 +83,8 @@ public void runTest() .build(); StreamingResult streamingResult = (StreamingResult) executor.executeWithArgs(executeArgs); streamingResult.stream(baos, SerializationFormat.DEFAULT); - assertAndValidateArrow(new ByteArrayInputStream(baos.toByteArray()), "expectedArrowServiceData.arrow"); + assertAndValidateArrow(new ByteArrayInputStream(baos.toByteArray()), "expectedArrowServiceData.arrow"); + } catch (Exception e) { diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/src/test/resources/arrowService.json b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/src/test/resources/arrowService.json index 89e3581953c..59ccedc3265 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/src/test/resources/arrowService.json +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/src/test/resources/arrowService.json @@ -24,8 +24,8 @@ { "_type": "collection", "multiplicity": { - "lowerBound": 5, - "upperBound": 5 + "lowerBound": 4, + "upperBound": 4 }, "values": [ { @@ -91,27 +91,6 @@ } ] }, - { - "_type": "lambda", - "body": [ - { - "_type": "property", - "parameters": [ - { - "_type": "var", - "name": "x" - } - ], - "property": "settlementDateTime" - } - ], - "parameters": [ - { - "_type": "var", - "name": "x" - } - ] - }, { "_type": "lambda", "body": [ @@ -138,8 +117,8 @@ { "_type": "collection", "multiplicity": { - "lowerBound": 5, - "upperBound": 5 + "lowerBound": 4, + "upperBound": 4 }, "values": [ { @@ -154,10 +133,6 @@ "_type": "string", "value": "Quantity" }, - { - "_type": "string", - "value": "Settlement Date Time" - }, { "_type": "string", "value": "Trade Date" @@ -447,6 +422,7 @@ { "connection": { "_type": "RelationalDatabaseConnection", + "timeZone" : "America/New_York", "authenticationStrategy": { "_type": "h2Default" }, diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/src/test/resources/expectedArrowServiceData.arrow b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/src/test/resources/expectedArrowServiceData.arrow index e556d7a94a0da7f8fe45dd9e15edd9a1370e356c..c03b1b8aa2d33cd273ea2a4644ae9d1dfa410cdc 100644 GIT binary patch delta 164 zcmeyswu6=RKM;6KWVIG!VPIgm0mLmp>;S|dzSsYWQF3C(fJ%TI1}-2DDN0O9Rd7ix zNuBuZm?B8C1S1232uK7DAZaMzm@LXv&C3Df a0%?}XdzqXk3ou&<9Pwaa0AY~HAO!%J+9js| delta 317 zcmdnN`hku0KM?Gg$Z9Rc%D}+j!pOkz0Z6X_Vh12*0pdshCWgt?#{rcAISgDt98#2+ zlB(d6Sdz-XAO#c`0g8dJ3=jiVFj|0V2*JU?1JuL9zyaifFarZ4g8-0p%uOxIOitAI zOD&I&%rD9Y$$-oVPAw_PNzF~oD*;=e5R#b-w1r_}_fb`l5|C>>fQ|$y1pyugF$O*c zQJ|45KsEzI#N Date: Fri, 20 Oct 2023 15:44:22 +0530 Subject: [PATCH 33/80] Change Boolean Literal Processor of Snowflake (#2391) --- .../TestSnowflakeSemiStructuredMatching.java | 2 +- .../tests/executionPlanTestSnowflake.pure | 2 +- .../sqlQueryToString/snowflakeExtension.pure | 3 ++- .../relational/tests/testSnowflakeWithFunction.pure | 11 +++++++++++ 4 files changed, 15 insertions(+), 3 deletions(-) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/semiStructured/TestSnowflakeSemiStructuredMatching.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/semiStructured/TestSnowflakeSemiStructuredMatching.java index 93645d33e31..35e5cf33790 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/semiStructured/TestSnowflakeSemiStructuredMatching.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/src/test/java/org/finos/legend/engine/plan/execution/stores/relational/test/semiStructured/TestSnowflakeSemiStructuredMatching.java @@ -115,7 +115,7 @@ public void testSemiStructuredMatchWithVariableAccess() " (\n" + " type = TDS[(Max Amount Flag, Boolean, \"\", \"\")]\n" + " resultColumns = [(\"Max Amount Flag\", \"\")]\n" + - " sql = select case when \"root\".CUSTOMER['transactionDetails']['payment']['@type']::varchar in ('CashOnDeliveryPayment') then case when \"root\".CUSTOMER['transactionDetails']['payment']['amountToBePaid'] < ${maxAmount} then 'true' else 'false' end when \"root\".CUSTOMER['transactionDetails']['payment']['@type']::varchar in ('PrepaidPayment', 'WalletPrepaidPayment', 'CardPrepaidPayment') then case when \"root\".CUSTOMER['transactionDetails']['payment']['amountPaid'] < ${maxAmount} then 'true' else 'false' end else null end as \"Max Amount Flag\" from ORDER_SCHEMA.ORDER_TABLE as \"root\"\n" + + " sql = select case when \"root\".CUSTOMER['transactionDetails']['payment']['@type']::varchar in ('CashOnDeliveryPayment') then case when \"root\".CUSTOMER['transactionDetails']['payment']['amountToBePaid'] < ${maxAmount} then true else false end when \"root\".CUSTOMER['transactionDetails']['payment']['@type']::varchar in ('PrepaidPayment', 'WalletPrepaidPayment', 'CardPrepaidPayment') then case when \"root\".CUSTOMER['transactionDetails']['payment']['amountPaid'] < ${maxAmount} then true else false end else null end as \"Max Amount Flag\" from ORDER_SCHEMA.ORDER_TABLE as \"root\"\n" + " connection = RelationalDatabaseConnection(type = \"Snowflake\")\n" + " )\n" + " ) \n" + diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/executionPlan/tests/executionPlanTestSnowflake.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/executionPlan/tests/executionPlanTestSnowflake.pure index f9a79437922..f0487a9aef8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/executionPlan/tests/executionPlanTestSnowflake.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/executionPlan/tests/executionPlanTestSnowflake.pure @@ -53,7 +53,7 @@ import meta::pure::functions::collection::*; function <> meta::pure::executionPlan::tests::snowflake::testFilterEqualsWithOptionalParameter_Snowflake():Boolean[1] { let generatedPlan = executionPlan({optionalID: String[0..1], optionalActive: Boolean[0..1]|Interaction.all()->filter(i|$i.id==$optionalID && $i.active==$optionalActive)->project(col(i|$i.time, 'Time'))}, simpleRelationalMapping, ^Runtime(connectionStores=^ConnectionStore(element = relationalDB,connection=meta::pure::executionPlan::tests::snowflake::relationalConnectionForSnowflake(true))), meta::relational::extension::relationalExtensions()); - let expectedPlan = 'RelationalBlockExecutionNode(type=TDS[(Time,Integer,INT,"")](FunctionParametersValidationNode(functionParameters=[optionalID:String[0..1],optionalActive:Boolean[0..1]])SQL(type=VoidresultColumns=[]sql=ALTERSESSIONSETQUERY_TAG=\'{"executionTraceID":"${execID}","engineUser":"${userId}","referer":"${referer}"}\';connection=RelationalDatabaseConnection(type="Snowflake"))Relational(type=TDS[(Time,Integer,INT,"")]resultColumns=[("Time",INT)]sql=select"root".timeas"Time"frominteractionTableas"root"where((${optionalVarPlaceHolderOperationSelector(optionalID![],\'"root".ID=${varPlaceHolderToString(optionalID![]"\\\'""\\\'"{"\\\'":"\\\'\\\'"}"null")}\',\'"root".IDisnull\')})and(${optionalVarPlaceHolderOperationSelector(optionalActive![],\'casewhen"root".active=\\\'Y\\\'then\\\'true\\\'else\\\'false\\\'end=${varPlaceHolderToString(optionalActive![]"\\\'""\\\'"{}"null")}\',\'casewhen"root".active=\\\'Y\\\'then\\\'true\\\'else\\\'false\\\'endisnull\')}))connection=RelationalDatabaseConnection(type="Snowflake")))finallyExecutionNodes=(SQL(type=VoidresultColumns=[]sql=ALTERSESSIONUNSETQUERY_TAG;connection=RelationalDatabaseConnection(type="Snowflake"))))'; + let expectedPlan = 'RelationalBlockExecutionNode(type=TDS[(Time,Integer,INT,"")](FunctionParametersValidationNode(functionParameters=[optionalID:String[0..1],optionalActive:Boolean[0..1]])SQL(type=VoidresultColumns=[]sql=ALTERSESSIONSETQUERY_TAG=\'{"executionTraceID":"${execID}","engineUser":"${userId}","referer":"${referer}"}\';connection=RelationalDatabaseConnection(type="Snowflake"))Relational(type=TDS[(Time,Integer,INT,"")]resultColumns=[("Time",INT)]sql=select"root".timeas"Time"frominteractionTableas"root"where((${optionalVarPlaceHolderOperationSelector(optionalID![],\'"root".ID=${varPlaceHolderToString(optionalID![]"\\\'""\\\'"{"\\\'":"\\\'\\\'"}"null")}\',\'"root".IDisnull\')})and(${optionalVarPlaceHolderOperationSelector(optionalActive![],\'casewhen"root".active=\\\'Y\\\'then\\\'true\\\'else\\\'false\\\'end=${varPlaceHolderToString(optionalActive![]""""{}"null")}\',\'casewhen"root".active=\\\'Y\\\'then\\\'true\\\'else\\\'false\\\'endisnull\')}))connection=RelationalDatabaseConnection(type="Snowflake")))finallyExecutionNodes=(SQL(type=VoidresultColumns=[]sql=ALTERSESSIONUNSETQUERY_TAG;connection=RelationalDatabaseConnection(type="Snowflake"))))'; assertEquals($expectedPlan, $generatedPlan->planToStringWithoutFormatting(meta::relational::extension::relationalExtensions())); assertSameElements(templateFunctionsList(),$generatedPlan.processingTemplateFunctions); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/sqlQueryToString/snowflakeExtension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/sqlQueryToString/snowflakeExtension.pure index f8080beafdc..f2fb47dbcdf 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/sqlQueryToString/snowflakeExtension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/sqlQueryToString/snowflakeExtension.pure @@ -51,7 +51,8 @@ function <> meta::relational::functions::sqlQueryToString::snowf newMap([ pair(StrictDate, ^LiteralProcessor(format = '\'%s\'::date', transform = {d:StrictDate[1], dbTimeZone:String[0..1] | $d->convertDateToSqlString($dbTimeZone)})), pair(DateTime, ^LiteralProcessor(format = '\'%s\'::timestamp', transform = {d:DateTime[1], dbTimeZone:String[0..1] | $d->convertDateToSqlString($dbTimeZone)})), - pair(Date, ^LiteralProcessor(format = '\'%s\'::timestamp', transform = {d:Date[1], dbTimeZone:String[0..1] | $d->convertDateToSqlString($dbTimeZone)})) + pair(Date, ^LiteralProcessor(format = '\'%s\'::timestamp', transform = {d:Date[1], dbTimeZone:String[0..1] | $d->convertDateToSqlString($dbTimeZone)})), + pair(Boolean, ^LiteralProcessor(format = '%s', transform = toString_Any_1__String_1_->literalTransform())) ]) } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeWithFunction.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeWithFunction.pure index e4d20b8279f..79fe5a4d855 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeWithFunction.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/tests/testSnowflakeWithFunction.pure @@ -38,3 +38,14 @@ function <> meta::relational::tests::query::snowflake::testFilterUsin let s = toSQLString($fn, simpleRelationalMapping, meta::relational::runtime::DatabaseType.Snowflake, meta::relational::extension::relationalExtensions()); assertEquals('select "root".ID as "pk_0", "root".FIRSTNAME as "firstName", "root".AGE as "age", "root".LASTNAME as "lastName" from personTable as "root" left outer join firmTable as "firmTable_d#2_dy0_d#3_d_m1" on ("firmTable_d#2_dy0_d#3_d_m1".ID = "root".FIRMID) where "firmTable_d#2_dy0_d#3_d_m1".LEGALNAME regexp \'^[A-Za-z0-9]*$\'',$s); } + +function <> meta::relational::tests::query::snowflake::testFilterBoolean():Boolean[1] +{ + let sql =toSQLString(|Person.all()->project(p|$p.firstName,'firstName')->filter(p | if( + $p.getString('firstName')->startsWith('d'), + |true, + |false + )), + simpleRelationalMapping, meta::relational::runtime::DatabaseType.Snowflake, meta::relational::extension::relationalExtensions()); + assertEquals('select "root".FIRSTNAME as "firstName" from personTable as "root" where case when "root".FIRSTNAME like \'d%\' then true else false end', $sql); +} \ No newline at end of file From 514d1bb5b8c72f000ae160b5aeab5f3bdbbe2330 Mon Sep 17 00:00:00 2001 From: horbe Date: Fri, 20 Oct 2023 09:16:33 -0400 Subject: [PATCH 34/80] Limit the SingleStore max cached blob size to prevent out-of-memory error (#2395) --- .../tests/api/dynamicTestConnections/MemSQLTestContainer.java | 1 + 1 file changed, 1 insertion(+) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/tests/api/dynamicTestConnections/MemSQLTestContainer.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/tests/api/dynamicTestConnections/MemSQLTestContainer.java index 61e719cb061..a5b0c09f0c6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/tests/api/dynamicTestConnections/MemSQLTestContainer.java +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/src/main/java/org/finos/legend/engine/plan/execution/stores/relational/connection/tests/api/dynamicTestConnections/MemSQLTestContainer.java @@ -51,6 +51,7 @@ public void setup() Statement statement = connection.createStatement()) { statement.execute("create schema if not exists " + DATABASE_NAME + ";"); + statement.execute("SET GLOBAL maximum_blob_cache_size_mb = 1024"); } catch (Exception e) { From bb459208f8337db959a0707d9aa724e95c8b3e40 Mon Sep 17 00:00:00 2001 From: Sai Sriharsha Annepu <72639930+gs-ssh16@users.noreply.github.com> Date: Fri, 20 Oct 2023 19:20:30 +0530 Subject: [PATCH 35/80] Correct check for Any clause in semi-structured match support (#2399) --- .../relational/pureToSQLQuery/pureToSQLQuery.pure | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/pureToSQLQuery.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/pureToSQLQuery.pure index a7e689058c7..fd9b0210b53 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/pureToSQLQuery.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/pureToSQLQuery.pure @@ -2352,7 +2352,7 @@ function <> meta::relational::functions::pureToSqlQuery::process let functionCount = $functions->size(); let allFunctionsSubtypes = $functions->size()->range()->map(ind | let functionType = $functions->at($ind)->meta::pure::functions::meta::functionType().parameters->at(0).genericType.rawType->toOne(); assertFalse($functionType->instanceOf(PrimitiveType), 'Match does not support checking on primitive data type..! Currently checking on : ' + $functionType->toString()); - if($functionType->isAnyClass(), + if($functionType == Any, | assert($ind == $functionCount-1, 'Any should be used as a default type at the end of match'); [];, | From b2556ada267445f67bfb8295e0b9db72b3ffd89e Mon Sep 17 00:00:00 2001 From: Mohammed Ibrahim Date: Fri, 20 Oct 2023 10:24:09 -0400 Subject: [PATCH 36/80] Function Activation Cleanups (#2396) * rename method * Function activation cleanup * rollback file changes --- .../legend-engine-server/pom.xml | 10 --- .../finos/legend/engine/server/Server.java | 10 +-- .../api/FunctionActivatorAPI.java | 12 +++- .../HostedServiceProtocolExtension.java | 4 ++ .../legend-engine-xt-snowflakeApp-api/pom.xml | 4 ++ .../snowflakeApp/api/SnowflakeAppService.java | 26 +++---- .../deployment/SnowflakeAppArtifact.java | 9 +-- ...owflakeAppArtifactGenerationExtension.java | 33 ++++++++- .../deployment/SnowflakeAppContent.java | 47 +++++++++++- .../SnowflakeAppDeploymentConfiguration.java | 5 ++ .../deployment/SnowflakeAppGenerator.java | 71 ++++++++++++++++--- .../SnowflakeDeploymentManager.java | 21 +++--- .../SnowflakeAppCompilerExtension.java | 17 ++--- .../grammar/from/SnowflakeAppTreeWalker.java | 26 +++---- .../to/SnowflakeAppGrammarComposer.java | 2 + .../test/TestSnowflakeAppRoundtrip.java | 1 + ... SnowflakeAppDeploymentConfiguration.java} | 8 ++- .../SnowflakeAppProtocolExtension.java | 4 ++ 18 files changed, 219 insertions(+), 91 deletions(-) rename legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel/{SnowflakeDeploymentConfiguration.java => SnowflakeAppDeploymentConfiguration.java} (79%) diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index 5b97f0ebd47..6e94374f2f3 100644 --- a/legend-engine-config/legend-engine-server/pom.xml +++ b/legend-engine-config/legend-engine-server/pom.xml @@ -190,14 +190,6 @@ org.finos.legend.engine legend-engine-xt-functionActivator-protocol - - org.finos.legend.engine - legend-engine-xt-snowflakeApp-protocol - - - org.finos.legend.engine - legend-engine-xt-hostedService-protocol - org.finos.legend.engine legend-engine-xt-artifact-generation-api @@ -340,7 +332,6 @@ org.finos.legend.engine legend-engine-xt-snowflakeApp-api - runtime org.finos.legend.engine @@ -355,7 +346,6 @@ org.finos.legend.engine legend-engine-xt-hostedService-api - runtime org.finos.legend.engine diff --git a/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java b/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java index c0933bc6f60..1568eefd55f 100644 --- a/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java +++ b/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java @@ -120,10 +120,12 @@ import org.finos.legend.engine.plan.execution.stores.service.plugin.ServiceStoreExecutor; import org.finos.legend.engine.plan.execution.stores.service.plugin.ServiceStoreExecutorBuilder; import org.finos.legend.engine.plan.generation.extension.PlanGeneratorExtension; -import org.finos.legend.engine.protocol.hostedService.metamodel.HostedServiceDeploymentConfiguration; +import org.finos.legend.engine.language.hostedService.api.HostedServiceService; +import org.finos.legend.engine.language.hostedService.deployment.HostedServiceDeploymentConfiguration; import org.finos.legend.engine.protocol.pure.v1.PureProtocolObjectMapperFactory; import org.finos.legend.engine.protocol.pure.v1.model.PureProtocol; -import org.finos.legend.engine.protocol.snowflakeApp.metamodel.SnowflakeDeploymentConfiguration; +import org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppService; +import org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeAppDeploymentConfiguration; import org.finos.legend.engine.pure.code.core.PureCoreExtensionLoader; import org.finos.legend.engine.query.graphQL.api.debug.GraphQLDebug; import org.finos.legend.engine.query.graphQL.api.execute.GraphQLExecute; @@ -212,7 +214,7 @@ protected SwaggerBundleConfiguration getSwaggerBundleConfiguration( bootstrap.getObjectMapper().registerSubtypes(new NamedType(LegendDefaultDatabaseAuthenticationFlowProviderConfiguration.class, "legendDefault")); bootstrap.getObjectMapper().registerSubtypes(new NamedType(HostedServiceDeploymentConfiguration.class, "hostedServiceConfig")); - bootstrap.getObjectMapper().registerSubtypes(new NamedType(SnowflakeDeploymentConfiguration.class, "snowflakeAppConfig")); + bootstrap.getObjectMapper().registerSubtypes(new NamedType(SnowflakeAppDeploymentConfiguration.class, "snowflakeAppConfig")); } public CredentialProviderProvider configureCredentialProviders(List vaultConfigurations) @@ -378,7 +380,7 @@ public void run(T serverConfiguration, Environment environment) environment.jersey().register(new ExecutePlanLegacy(planExecutor)); // Function Activator - environment.jersey().register(new FunctionActivatorAPI(modelManager, Lists.mutable.empty(), routerExtensions)); + environment.jersey().register(new FunctionActivatorAPI(modelManager,Lists.mutable.empty(), Lists.mutable.with(new SnowflakeAppService(planExecutor), new HostedServiceService()), routerExtensions)); // GraphQL environment.jersey().register(new GraphQLGrammar()); diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/api/FunctionActivatorAPI.java b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/api/FunctionActivatorAPI.java index 7e314bd1645..000bd9952ef 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/api/FunctionActivatorAPI.java +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/api/FunctionActivatorAPI.java @@ -65,6 +65,7 @@ public class FunctionActivatorAPI private final PureModel emptyModel; private final Function> routerExtensions; private List runtimeDeploymentConfig = Lists.mutable.empty(); + private MutableList> availableActivatorServices = Lists.mutable.empty(); public FunctionActivatorAPI(ModelManager modelManager, Function> routerExtensions) { @@ -73,10 +74,11 @@ public FunctionActivatorAPI(ModelManager modelManager, Function activatorConfigurations, Function> routerExtensions) + public FunctionActivatorAPI(ModelManager modelManager, List activatorConfigurations, MutableList> availableActivatorServices, Function> routerExtensions) { this(modelManager, routerExtensions); this.runtimeDeploymentConfig = activatorConfigurations; + this.availableActivatorServices = availableActivatorServices; } @GET @@ -87,7 +89,7 @@ public FunctionActivatorAPI(ModelManager modelManager, List pm) { MutableList profiles = ProfileManagerHelper.extractProfiles(pm); - MutableList values = FunctionActivatorLoader.extensions().collect(x -> x.info(emptyModel, "vX_X_X")); + MutableList values = this.availableActivatorServices.isEmpty() ? FunctionActivatorLoader.extensions().collect(x -> x.info(emptyModel, "vX_X_X")) : availableActivatorServices.collect(c -> c.info(emptyModel,"vX_X_X")); return ManageConstantResult.manageResult(profiles, values, objectMapper); } @@ -162,7 +164,11 @@ public Response renderArtifact(FunctionActivatorInput input, @ApiParam(hidden = public FunctionActivatorService getActivatorService(Root_meta_external_function_activator_FunctionActivator activator, PureModel pureModel) { - FunctionActivatorService service = FunctionActivatorLoader.extensions().select(c -> c.supports(activator)).getFirst(); + FunctionActivatorService service = (FunctionActivatorService)this.availableActivatorServices.select(c -> c.supports(activator)).getFirst(); + if (service == null) + { + service = FunctionActivatorLoader.extensions().select(c -> c.supports(activator)).getFirst(); + } if (service == null) { throw new RuntimeException(activator.getClass().getSimpleName() + "is not supported!"); diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/src/main/java/org/finos/legend/engine/protocol/hostedService/metamodel/HostedServiceProtocolExtension.java b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/src/main/java/org/finos/legend/engine/protocol/hostedService/metamodel/HostedServiceProtocolExtension.java index 81fc05ea515..b4c59da89af 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/src/main/java/org/finos/legend/engine/protocol/hostedService/metamodel/HostedServiceProtocolExtension.java +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/src/main/java/org/finos/legend/engine/protocol/hostedService/metamodel/HostedServiceProtocolExtension.java @@ -17,6 +17,7 @@ import org.eclipse.collections.api.block.function.Function0; import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.factory.Maps; +import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentConfiguration; import org.finos.legend.engine.protocol.hostedService.metamodel.control.Deployment; import org.finos.legend.engine.protocol.hostedService.metamodel.control.Ownership; import org.finos.legend.engine.protocol.hostedService.metamodel.control.UserList; @@ -41,6 +42,9 @@ public List>>> getExtraProtocolSubTypeInfo ProtocolSubTypeInfo.newBuilder(Ownership.class) .withSubtype(UserList.class, "userList") .withSubtype(Deployment.class, "deployment") + .build(), + ProtocolSubTypeInfo.newBuilder(DeploymentConfiguration.class) + .withSubtype(HostedServiceDeploymentConfiguration.class, "hostedServiceDeploymentConfiguration") .build() )); } diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml index afd677ee962..f9259d81c75 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml @@ -92,6 +92,10 @@ org.finos.legend.engine legend-engine-executionPlan-execution + + org.finos.legend.engine + legend-engine-pure-platform-java + org.finos.legend.engine diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/api/SnowflakeAppService.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/api/SnowflakeAppService.java index e061f149faf..0ce172a1608 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/api/SnowflakeAppService.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/api/SnowflakeAppService.java @@ -28,29 +28,16 @@ import org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeAppContent; import org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeAppDeploymentConfiguration; import org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeAppGenerator; -import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentConfiguration; -import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentStage; -import org.finos.legend.engine.protocol.snowflakeApp.metamodel.SnowflakeDeploymentConfiguration; import org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeDeploymentManager; import org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeDeploymentResult; +import org.finos.legend.engine.plan.execution.PlanExecutor; import org.finos.legend.engine.plan.execution.stores.relational.config.TemporaryTestDbConfiguration; import org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector; -import org.finos.legend.engine.plan.generation.PlanGenerator; -import org.finos.legend.engine.plan.platform.PlanPlatform; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContext; import org.finos.legend.engine.protocol.snowflakeApp.metamodel.SnowflakeAppProtocolExtension; import org.finos.legend.pure.generated.Root_meta_external_function_activator_FunctionActivator; import org.finos.legend.pure.generated.Root_meta_external_function_activator_snowflakeApp_SnowflakeApp; -import org.finos.legend.pure.generated.Root_meta_external_function_activator_snowflakeApp_SnowflakeDeploymentConfiguration; -import org.finos.legend.pure.generated.Root_meta_external_store_relational_runtime_RelationalDatabaseConnection; -import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy; -import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification; -import org.finos.legend.pure.generated.Root_meta_pure_executionPlan_ExecutionNode; -import org.finos.legend.pure.generated.Root_meta_pure_executionPlan_ExecutionPlan; import org.finos.legend.pure.generated.Root_meta_pure_extension_Extension; -import org.finos.legend.pure.generated.Root_meta_relational_mapping_SQLExecutionNode; -import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.FunctionDefinition; -import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.PackageableFunction; import org.pac4j.core.profile.CommonProfile; import java.util.List; @@ -74,6 +61,11 @@ public SnowflakeAppService(ConnectionManagerSelector connectionManager) this.snowflakeDeploymentManager = new SnowflakeDeploymentManager(new SnowflakeAppDeploymentTool(connectionManager)); } + public SnowflakeAppService(PlanExecutor executor) + { + this.snowflakeDeploymentManager = new SnowflakeDeploymentManager(executor); + } + @Override public FunctionActivatorInfo info(PureModel pureModel, String version) { @@ -94,7 +86,7 @@ public boolean supports(Root_meta_external_function_activator_FunctionActivator @Override public MutableList validate(MutableList profiles, PureModel pureModel, Root_meta_external_function_activator_snowflakeApp_SnowflakeApp activator, PureModelContext inputModel, Function> routerExtensions) { - SnowflakeAppArtifact artifact = SnowflakeAppGenerator.generateArtifact(pureModel, activator, routerExtensions); + SnowflakeAppArtifact artifact = SnowflakeAppGenerator.generateArtifact(pureModel, activator, inputModel, routerExtensions); int size = ((SnowflakeAppContent)artifact.content).sqlExpressions.size(); return size != 1 ? Lists.mutable.with(new SnowflakeAppError("SnowflakeApp can't be used with a plan containing '" + size + "' SQL expressions", ((SnowflakeAppContent)artifact.content).sqlExpressions)) : @@ -105,14 +97,14 @@ public MutableList validate(MutableList profiles, PureModel pureModel, Root_meta_external_function_activator_snowflakeApp_SnowflakeApp activator, PureModelContext inputModel, List runtimeConfigurations, Function> routerExtensions) { - SnowflakeAppArtifact artifact = SnowflakeAppGenerator.generateArtifact(pureModel, activator, routerExtensions); + SnowflakeAppArtifact artifact = SnowflakeAppGenerator.generateArtifact(pureModel, activator, inputModel, routerExtensions); return this.snowflakeDeploymentManager.deploy(profiles, artifact, runtimeConfigurations); } @Override public SnowflakeAppArtifact renderArtifact(PureModel pureModel, Root_meta_external_function_activator_snowflakeApp_SnowflakeApp activator, PureModelContext inputModel, String clientVersion, Function> routerExtensions) { - return SnowflakeAppGenerator.generateArtifact(pureModel, activator, routerExtensions); + return SnowflakeAppGenerator.generateArtifact(pureModel, activator, inputModel, routerExtensions); } @Override diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppArtifact.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppArtifact.java index 9ab608335d6..b1080411d24 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppArtifact.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppArtifact.java @@ -27,14 +27,15 @@ public SnowflakeAppArtifact() //empty artifact } - public SnowflakeAppArtifact(String name, MutableList sqlExpressions) + public SnowflakeAppArtifact(SnowflakeAppContent content) { - this.content = new SnowflakeAppContent(name, sqlExpressions); + this.content = content; } - public SnowflakeAppArtifact(String name, MutableList sqlExpressions, SnowflakeAppDeploymentConfiguration config) + public SnowflakeAppArtifact(SnowflakeAppContent content, SnowflakeAppDeploymentConfiguration config) { - this.content = new SnowflakeAppContent(name, sqlExpressions); + this(content); this.deploymentConfiguration = config; } + } diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppArtifactGenerationExtension.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppArtifactGenerationExtension.java index 1d916df4b67..c0d1f4aa5a2 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppArtifactGenerationExtension.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppArtifactGenerationExtension.java @@ -15,19 +15,31 @@ package org.finos.legend.engine.language.snowflakeApp.deployment; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.eclipse.collections.api.RichIterable; +import org.eclipse.collections.api.block.function.Function; +import org.eclipse.collections.impl.factory.Lists; import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; import org.finos.legend.engine.language.pure.dsl.generation.extension.Artifact; import org.finos.legend.engine.language.pure.dsl.generation.extension.ArtifactGenerationExtension; +import org.finos.legend.engine.protocol.pure.v1.model.context.AlloySDLC; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; +import org.finos.legend.engine.protocol.pure.v1.model.context.SDLC; +import org.finos.legend.engine.pure.code.core.PureCoreExtensionLoader; +import org.finos.legend.engine.shared.core.ObjectMapperFactory; import org.finos.legend.pure.generated.Root_meta_external_function_activator_snowflakeApp_SnowflakeApp; +import org.finos.legend.pure.generated.Root_meta_pure_extension_Extension; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.PackageableElement; +import org.slf4j.Logger; import java.util.List; public class SnowflakeAppArtifactGenerationExtension implements ArtifactGenerationExtension { + private static final ObjectMapper mapper = ObjectMapperFactory.getNewStandardObjectMapperWithPureProtocolExtensionSupports(); + private static final Logger LOGGER = org.slf4j.LoggerFactory.getLogger(SnowflakeAppArtifactGenerationExtension.class); private static final String ROOT_PATH = "snowflakeApp"; - private static final String FILENAME = "snowflakeArtifact.json"; + private static final String FILE_NAME = "snowflakeArtifact.json"; @Override public String getKey() @@ -39,14 +51,29 @@ public String getKey() public boolean canGenerate(PackageableElement element) { return false; - // return element instanceof Root_meta_external_function_activator_snowflakeApp_SnowflakeApp; + // return element instanceof Root_meta_external_function_activator_snowflakeApp_SnowflakeApp; } @Override public List generate(PackageableElement element, PureModel pureModel, PureModelContextData data, String clientVersion) { - return null; + List result = Lists.mutable.empty(); + Function> routerExtensions = (PureModel p) -> PureCoreExtensionLoader.extensions().flatCollect(e -> e.extraPureCoreExtensions(p.getExecutionSupport())); + SnowflakeAppArtifact artifact = SnowflakeAppGenerator.generateArtifact(pureModel, (Root_meta_external_function_activator_snowflakeApp_SnowflakeApp) element, data, routerExtensions); + try + { + LOGGER.info("Generating snowflake artifact for " + element.getName()); + String content = mapper.writeValueAsString(artifact); + result.add((new Artifact(content, FILE_NAME, "json"))); + LOGGER.info("Generated snowflake artifact for " + element.getName()); + + } + catch (Exception e) + { + LOGGER.error("Error generating snowflake artifact for " + element.getName() + " reason: " + e.getMessage()); + } + return result; } diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppContent.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppContent.java index 388b537959b..d8e69ee9437 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppContent.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppContent.java @@ -18,16 +18,59 @@ import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.list.MutableList; import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorDeploymentContent; +import org.finos.legend.engine.protocol.pure.v1.model.context.AlloySDLC; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.model.Database; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.List; public class SnowflakeAppContent extends FunctionActivatorDeploymentContent { public MutableList sqlExpressions = Lists.mutable.empty(); public String applicationName; + public String description; + public List owners; + public String groupId; + public String artifactId; + public String version; + public String creationTime; - public SnowflakeAppContent(String name, MutableList sqlExpressions) + public SnowflakeAppContent(String applicationName, MutableList sqlExpressions, AlloySDLC sdlc) { - this.applicationName = name; + this.applicationName = applicationName; this.sqlExpressions = sqlExpressions; + this.creationTime = convertToValidDate(new Date()); + if (sdlc != null) + { + this.groupId = sdlc.groupId; + this.artifactId = sdlc.artifactId; + this.version = sdlc.version; + } + } + + public SnowflakeAppContent(String applicationName, MutableList sqlExpressions, String description, List owners, AlloySDLC sdlc) + { + this(applicationName, sqlExpressions,sdlc); + this.description = description; + this.owners = owners; + + } + + public static String convertToValidDate(Date date) + { + SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + return format.format(date); + } + + public String getVersionInfo() + { + if (this.version != null) + { + return groupId + ":" + this.artifactId + ":" + this.version; + } + return ""; } } + diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppDeploymentConfiguration.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppDeploymentConfiguration.java index 6308e215f8b..29e823eee5b 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppDeploymentConfiguration.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppDeploymentConfiguration.java @@ -20,4 +20,9 @@ public class SnowflakeAppDeploymentConfiguration extends FunctionActivatorDeploymentConfiguration { RelationalDatabaseConnection connection; + + public SnowflakeAppDeploymentConfiguration(RelationalDatabaseConnection connection) + { + this.connection = connection; + } } diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppGenerator.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppGenerator.java index ee9d38e94a7..7c5ecce3fbe 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppGenerator.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppGenerator.java @@ -21,24 +21,51 @@ import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; import org.finos.legend.engine.plan.generation.PlanGenerator; import org.finos.legend.engine.plan.platform.PlanPlatform; -import org.finos.legend.pure.generated.Root_meta_external_function_activator_snowflakeApp_SnowflakeApp; -import org.finos.legend.pure.generated.Root_meta_external_store_relational_runtime_RelationalDatabaseConnection; -import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy; -import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification; -import org.finos.legend.pure.generated.Root_meta_pure_executionPlan_ExecutionNode; -import org.finos.legend.pure.generated.Root_meta_pure_executionPlan_ExecutionPlan; -import org.finos.legend.pure.generated.Root_meta_pure_extension_Extension; -import org.finos.legend.pure.generated.Root_meta_relational_mapping_SQLExecutionNode; +import org.finos.legend.engine.protocol.pure.v1.model.context.AlloySDLC; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContext; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; +import org.finos.legend.engine.protocol.pure.v1.model.context.SDLC; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.PackageableConnection; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.DatabaseType; +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.SnowflakePublicAuthenticationStrategy; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.SnowflakeDatasourceSpecification; +import org.finos.legend.engine.protocol.snowflakeApp.metamodel.SnowflakeApp; +import org.finos.legend.engine.protocol.snowflakeApp.metamodel.SnowflakeAppDeploymentConfiguration; +import org.finos.legend.pure.generated.*; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.FunctionDefinition; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.PackageableFunction; public class SnowflakeAppGenerator { - public static SnowflakeAppArtifact generateArtifact(PureModel pureModel, Root_meta_external_function_activator_snowflakeApp_SnowflakeApp activator, Function> routerExtensions) + public static SnowflakeAppArtifact generateArtifact(PureModel pureModel, Root_meta_external_function_activator_snowflakeApp_SnowflakeApp activator, PureModelContext inputModel, Function> routerExtensions) { RichIterable sqlExpressions = extractSQLExpressions(pureModel, activator, routerExtensions); - return new SnowflakeAppArtifact(activator._applicationName(), Lists.mutable.withAll(sqlExpressions)); + + RelationalDatabaseConnection connection; + AlloySDLC sdlc = null; + if (((PureModelContextData)inputModel).getOrigin() != null) + { + SDLC sdlcInfo = ((PureModelContextData)inputModel).origin.sdlcInfo; + if (sdlcInfo instanceof AlloySDLC) + { + sdlc = (AlloySDLC) sdlcInfo; + } + } + SnowflakeAppContent content = new SnowflakeAppContent(activator._applicationName(), Lists.mutable.withAll(sqlExpressions), activator._description(), Lists.mutable.with(activator._owner()), sdlc); + if (activator._activationConfiguration() != null) + { + //identify connection + SnowflakeApp protocolActivator = Lists.mutable.withAll(((PureModelContextData) inputModel).getElementsOfType(SnowflakeApp.class)) + .select(c -> c.getPath().equals(platform_pure_basics_meta_elementToPath.Root_meta_pure_functions_meta_elementToPath_PackageableElement_1__String_1_(activator, pureModel.getExecutionSupport()))) + .getFirst(); + connection = (RelationalDatabaseConnection) Lists.mutable.withAll(((PureModelContextData) inputModel).getElementsOfType(PackageableConnection.class)) + .select(c -> c.getPath().equals(((SnowflakeAppDeploymentConfiguration)protocolActivator.activationConfiguration).activationConnection.connection)).getFirst().connectionValue; + return new SnowflakeAppArtifact(content, new org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeAppDeploymentConfiguration(connection)); + } + + return new SnowflakeAppArtifact(content); } private static RichIterable extractSQLExpressions(PureModel pureModel, Root_meta_external_function_activator_snowflakeApp_SnowflakeApp activator, Function> routerExtensions) @@ -72,6 +99,30 @@ private static Object[] extractSQLExpressionsAndConnectionMetadata(PureModel pur return new Object[]{expressions, ds, as}; } + private RelationalDatabaseConnection adaptConnection(Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification datasourceSpecification, Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy authenticationStrategy) + { + RelationalDatabaseConnection connection = new RelationalDatabaseConnection(); + + SnowflakeDatasourceSpecification snowflakeDatasourceSpecification = new SnowflakeDatasourceSpecification(); + snowflakeDatasourceSpecification.accountName = datasourceSpecification._accountName(); + snowflakeDatasourceSpecification.databaseName = datasourceSpecification._databaseName(); + snowflakeDatasourceSpecification.role = datasourceSpecification._role(); + snowflakeDatasourceSpecification.warehouseName = datasourceSpecification._warehouseName(); + snowflakeDatasourceSpecification.region = datasourceSpecification._region(); + snowflakeDatasourceSpecification.cloudType = datasourceSpecification._cloudType(); + + SnowflakePublicAuthenticationStrategy snowflakeAuthenticationStrategy = new SnowflakePublicAuthenticationStrategy(); + snowflakeAuthenticationStrategy.privateKeyVaultReference = authenticationStrategy._privateKeyVaultReference(); + snowflakeAuthenticationStrategy.passPhraseVaultReference = authenticationStrategy._passPhraseVaultReference(); + snowflakeAuthenticationStrategy.publicUserName = authenticationStrategy._publicUserName(); + + connection.authenticationStrategy = snowflakeAuthenticationStrategy; + connection.datasourceSpecification = snowflakeDatasourceSpecification; + connection.type = DatabaseType.Snowflake; + + return connection; + } + private static RichIterable collectAllNodes(Root_meta_pure_executionPlan_ExecutionNode node) { return Lists.mutable.with(node).withAll(node._executionNodes().flatCollect(SnowflakeAppGenerator::collectAllNodes)); diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeDeploymentManager.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeDeploymentManager.java index 5cd7369a2f4..02228287fa8 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeDeploymentManager.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeDeploymentManager.java @@ -24,10 +24,11 @@ import org.finos.legend.engine.plan.execution.PlanExecutor; import org.finos.legend.engine.plan.execution.stores.relational.RelationalExecutor; import org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector; +import org.finos.legend.engine.plan.execution.stores.relational.plugin.RelationalStoreExecutor; import org.finos.legend.engine.plan.execution.stores.relational.plugin.RelationalStoreState; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.DatabaseConnection; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.RelationalDatabaseConnection; -import org.finos.legend.engine.protocol.snowflakeApp.metamodel.SnowflakeDeploymentConfiguration; +import org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeAppDeploymentConfiguration; import org.finos.legend.engine.shared.core.identity.Identity; import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy; import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification; @@ -50,6 +51,8 @@ public class SnowflakeDeploymentManager implements DeploymentManager c instanceof RelationalExecutor).getFirst().getStoreState()).getRelationalExecutor().getConnectionManager(); + connectionManager = ((RelationalStoreState)planExecutor.getExtraExecutors().select(c -> c instanceof RelationalStoreExecutor).getFirst().getStoreState()).getRelationalExecutor().getConnectionManager(); } @Override @@ -83,7 +86,7 @@ public SnowflakeDeploymentResult deploy(MutableList profiles, Sno { String appName = ((SnowflakeAppContent)artifact.content).applicationName; jdbcConnection.setAutoCommit(false); - this.deployImpl(jdbcConnection, appName); + this.deployImpl(jdbcConnection, (SnowflakeAppContent)artifact.content); jdbcConnection.commit(); LOGGER.info("Completed deployment successfully"); result = new SnowflakeDeploymentResult(appName, true); @@ -121,21 +124,21 @@ public java.sql.Connection getDeploymentConnection(MutableList pr return this.connectionManager.getDatabaseConnection(profiles, (DatabaseConnection) connection); } - public void deployImpl(Connection jdbcConnection, String context) throws Exception + public void deployImpl(Connection jdbcConnection, SnowflakeAppContent context) throws Exception { Statement statement = jdbcConnection.createStatement(); String deploymentTableName = this.getDeploymentTableName(jdbcConnection); - String createTableSQL = String.format("create table %s (id INTEGER, message VARCHAR(1000)) if not exists", deploymentTableName); - boolean createTableStatus = statement.execute(createTableSQL); - String insertSQL = String.format("insert into %s(id, message) values(%d, '%s')", deploymentTableName, System.currentTimeMillis(), context); + + //String createTableSQL = String.format("create table %s (id INTEGER, message VARCHAR(1000)) if not exists", deploymentTableName); + //boolean createTableStatus = statement.execute(createTableSQL); + String insertSQL = String.format("insert into %s(CREATE_DATETIME, APP_NAME, SQL_FRAGMENT, VERSION_NUMBER, OWNER) values('%s', '%s', '%s', '%s', '%s')", deploymentTableName, context.creationTime, context.applicationName, context.sqlExpressions.getFirst(), context.getVersionInfo(), Lists.mutable.withAll(context.owners).makeString(",")); boolean insertStatus = statement.execute(insertSQL); } public String getDeploymentTableName(Connection jdbcConnection) throws SQLException { String catalogName = jdbcConnection.getCatalog(); - String schema = "NATIVE_APP"; - return String.format("%s.%s.LEGEND_SNOWFLAKE_APP_DEPLOYMENT", catalogName, schema); + return String.format("%s.%s." + deploymentTable, catalogName, deploymentSchema); } public java.sql.Connection getDeploymentConnection(MutableList profiles, SnowflakeAppArtifact artifact) diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/src/main/java/org/finos/legend/engine/language/snowflakeApp/compiler/toPureGraph/SnowflakeAppCompilerExtension.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/src/main/java/org/finos/legend/engine/language/snowflakeApp/compiler/toPureGraph/SnowflakeAppCompilerExtension.java index 2faa56790c4..2a0afc16ed1 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/src/main/java/org/finos/legend/engine/language/snowflakeApp/compiler/toPureGraph/SnowflakeAppCompilerExtension.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/src/main/java/org/finos/legend/engine/language/snowflakeApp/compiler/toPureGraph/SnowflakeAppCompilerExtension.java @@ -19,8 +19,9 @@ import org.finos.legend.engine.language.pure.compiler.toPureGraph.CompileContext; import org.finos.legend.engine.language.pure.compiler.toPureGraph.extension.CompilerExtension; import org.finos.legend.engine.language.pure.compiler.toPureGraph.extension.Processor; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.PackageableConnection; import org.finos.legend.engine.protocol.snowflakeApp.metamodel.SnowflakeApp; -import org.finos.legend.engine.protocol.snowflakeApp.metamodel.SnowflakeDeploymentConfiguration; +import org.finos.legend.engine.protocol.snowflakeApp.metamodel.SnowflakeAppDeploymentConfiguration; import org.finos.legend.pure.generated.Root_meta_external_function_activator_snowflakeApp_SnowflakeApp; import org.finos.legend.pure.generated.Root_meta_external_function_activator_snowflakeApp_SnowflakeApp_Impl; import org.finos.legend.pure.generated.Root_meta_external_function_activator_snowflakeApp_SnowflakeDeploymentConfiguration; @@ -29,8 +30,6 @@ import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.PackageableFunction; import org.finos.legend.pure.m3.navigation.function.FunctionDescriptor; -import java.util.Collections; - public class SnowflakeAppCompilerExtension implements CompilerExtension { // Here only for dependency check error ... @@ -48,12 +47,8 @@ public Iterable> getExtraProcessors() return Lists.fixedSize.of( Processor.newProcessor( SnowflakeApp.class, - org.eclipse.collections.impl.factory.Lists.fixedSize.with(SnowflakeDeploymentConfiguration.class), + org.eclipse.collections.impl.factory.Lists.fixedSize.with(PackageableConnection.class), this::buildSnowflakeApp - ), - Processor.newProcessor( - SnowflakeDeploymentConfiguration.class, - this::buildDeploymentConfig ) ); } @@ -72,7 +67,7 @@ public Root_meta_external_function_activator_snowflakeApp_SnowflakeApp buildSnow ._function(func) ._description(app.description) ._owner(app.owner) - ._activationConfiguration(app.activationConfiguration != null ? buildDeploymentConfig((SnowflakeDeploymentConfiguration) app.activationConfiguration, context) : null); + ._activationConfiguration(app.activationConfiguration != null ? buildDeploymentConfig((SnowflakeAppDeploymentConfiguration) app.activationConfiguration, context) : null); } catch (Exception e) { @@ -80,10 +75,10 @@ public Root_meta_external_function_activator_snowflakeApp_SnowflakeApp buildSnow } } - public Root_meta_external_function_activator_snowflakeApp_SnowflakeDeploymentConfiguration buildDeploymentConfig(SnowflakeDeploymentConfiguration configuration, CompileContext context) + public Root_meta_external_function_activator_snowflakeApp_SnowflakeDeploymentConfiguration buildDeploymentConfig(SnowflakeAppDeploymentConfiguration configuration, CompileContext context) { return new Root_meta_external_function_activator_snowflakeApp_SnowflakeDeploymentConfiguration_Impl("") ._target((Root_meta_external_store_relational_runtime_RelationalDatabaseConnection) context.resolveConnection(configuration.activationConnection.connection, configuration.sourceInformation)); - // ._stage(context.pureModel.getEnumValue("meta::external::function::activator::DeploymentStage", configuration.stage.name())); + // ._stage(context.pureModel.getEnumValue("meta::external::function::activator::DeploymentStage", configuration.stage.name())); } } diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/main/java/org/finos/legend/engine/language/snowflakeApp/grammar/from/SnowflakeAppTreeWalker.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/main/java/org/finos/legend/engine/language/snowflakeApp/grammar/from/SnowflakeAppTreeWalker.java index 31444f92ce3..550ceb4c1dd 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/main/java/org/finos/legend/engine/language/snowflakeApp/grammar/from/SnowflakeAppTreeWalker.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/main/java/org/finos/legend/engine/language/snowflakeApp/grammar/from/SnowflakeAppTreeWalker.java @@ -28,7 +28,7 @@ import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.TaggedValue; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.section.DefaultCodeSection; import org.finos.legend.engine.protocol.snowflakeApp.metamodel.SnowflakeApp; -import org.finos.legend.engine.protocol.snowflakeApp.metamodel.SnowflakeDeploymentConfiguration; +import org.finos.legend.engine.protocol.snowflakeApp.metamodel.SnowflakeAppDeploymentConfiguration; import org.finos.legend.engine.shared.core.operational.errorManagement.EngineException; import java.util.Collections; @@ -56,21 +56,6 @@ public void visit(SnowflakeAppParserGrammar.DefinitionContext ctx) { ctx.snowflakeApp().stream().map(this::visitSnowflakeApp).peek(e -> this.section.elements.add(e.getPath())).forEach(this.elementConsumer); } - if (ctx.deploymentConfig() != null && !ctx.deploymentConfig().isEmpty()) - { - ctx.deploymentConfig().stream().map(this::visitDeploymentConfig).peek(e -> this.section.elements.add(e.getPath())).forEach(this.elementConsumer); - } - } - - private SnowflakeDeploymentConfiguration visitDeploymentConfig(SnowflakeAppParserGrammar.DeploymentConfigContext ctx) - { - SnowflakeDeploymentConfiguration config = new SnowflakeDeploymentConfiguration(); - ConnectionPointer pointer = new ConnectionPointer(); - pointer.connection = PureGrammarParserUtility.fromQualifiedName(ctx.activationConnection().qualifiedName().packagePath() == null - ? Collections.emptyList() : ctx.activationConnection().qualifiedName().packagePath().identifier(), ctx.activationConnection().qualifiedName().identifier()); - pointer.sourceInformation = walkerSourceInformation.getSourceInformation(ctx.activationConnection().qualifiedName()); - config.activationConnection = pointer; - return config; } private SnowflakeApp visitSnowflakeApp(SnowflakeAppParserGrammar.SnowflakeAppContext ctx) @@ -96,6 +81,15 @@ private SnowflakeApp visitSnowflakeApp(SnowflakeAppParserGrammar.SnowflakeAppCon { snowflakeApp.description = PureGrammarParserUtility.fromGrammarString(descriptionContext.STRING().getText(), true); } + SnowflakeAppParserGrammar.ActivationContext activationContext = PureGrammarParserUtility.validateAndExtractOptionalField(ctx.activation(), "activation", snowflakeApp.sourceInformation); + if (activationContext != null) + { + ConnectionPointer p = new ConnectionPointer(); + p.connection = PureGrammarParserUtility.fromQualifiedName(activationContext.qualifiedName().packagePath() == null + ? Collections.emptyList() : activationContext.qualifiedName().packagePath().identifier(), activationContext.qualifiedName().identifier()); + p.sourceInformation = walkerSourceInformation.getSourceInformation(activationContext.qualifiedName()); + snowflakeApp.activationConfiguration = new SnowflakeAppDeploymentConfiguration(p); + } return snowflakeApp; } diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/main/java/org/finos/legend/engine/language/snowflakeApp/grammar/to/SnowflakeAppGrammarComposer.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/main/java/org/finos/legend/engine/language/snowflakeApp/grammar/to/SnowflakeAppGrammarComposer.java index 329693d0887..4437eacdfc0 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/main/java/org/finos/legend/engine/language/snowflakeApp/grammar/to/SnowflakeAppGrammarComposer.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/main/java/org/finos/legend/engine/language/snowflakeApp/grammar/to/SnowflakeAppGrammarComposer.java @@ -26,6 +26,7 @@ import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.externalFormat.Binding; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.externalFormat.ExternalFormatSchemaSet; import org.finos.legend.engine.protocol.snowflakeApp.metamodel.SnowflakeApp; +import org.finos.legend.engine.protocol.snowflakeApp.metamodel.SnowflakeAppDeploymentConfiguration; import java.util.Collections; import java.util.List; @@ -53,6 +54,7 @@ private static String renderSnowflakeApp(SnowflakeApp app) " function : " + app.function + ";\n" + (app.owner == null ? "" : " owner : '" + app.owner + "';\n") + (app.description == null ? "" : " description : '" + app.description + "';\n") + + (app.activationConfiguration == null ? "" : " activationConfiguration : " + ((SnowflakeAppDeploymentConfiguration)app.activationConfiguration).activationConnection.connection + ";\n") + "}"; } diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/test/java/org/finos/legend/engine/language/snowflakeApp/grammar/test/TestSnowflakeAppRoundtrip.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/test/java/org/finos/legend/engine/language/snowflakeApp/grammar/test/TestSnowflakeAppRoundtrip.java index 54b331fcf73..16dd98acddf 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/test/java/org/finos/legend/engine/language/snowflakeApp/grammar/test/TestSnowflakeAppRoundtrip.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/src/test/java/org/finos/legend/engine/language/snowflakeApp/grammar/test/TestSnowflakeAppRoundtrip.java @@ -29,6 +29,7 @@ public void testSnowflakeApp() " function : zxx(Integer[1]):String[1];\n" + " owner : 'pierre';\n" + " description : 'A super nice app!';\n" + + " activationConfiguration : a::b::connection;\n" + "}\n"); } diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel/SnowflakeDeploymentConfiguration.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel/SnowflakeAppDeploymentConfiguration.java similarity index 79% rename from legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel/SnowflakeDeploymentConfiguration.java rename to legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel/SnowflakeAppDeploymentConfiguration.java index 0aff2c51431..7e4032b33fa 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel/SnowflakeDeploymentConfiguration.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel/SnowflakeAppDeploymentConfiguration.java @@ -17,14 +17,18 @@ import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentConfiguration; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.ConnectionPointer; -public class SnowflakeDeploymentConfiguration extends DeploymentConfiguration +public class SnowflakeAppDeploymentConfiguration extends DeploymentConfiguration { public ConnectionPointer activationConnection; // public String applicationName; - public SnowflakeDeploymentConfiguration() + public SnowflakeAppDeploymentConfiguration() { + } + public SnowflakeAppDeploymentConfiguration(ConnectionPointer cp) + { + activationConnection = cp; } } diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel/SnowflakeAppProtocolExtension.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel/SnowflakeAppProtocolExtension.java index 88d78239a52..f838fd8372b 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel/SnowflakeAppProtocolExtension.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/java/org/finos/legend/engine/protocol/snowflakeApp/metamodel/SnowflakeAppProtocolExtension.java @@ -17,6 +17,7 @@ import org.eclipse.collections.api.block.function.Function0; import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.factory.Maps; +import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentConfiguration; 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.PackageableElement; @@ -34,6 +35,9 @@ public List>>> getExtraProtocolSubTypeInfo return Lists.fixedSize.with(() -> Lists.mutable.with( ProtocolSubTypeInfo.newBuilder(PackageableElement.class) .withSubtype(SnowflakeApp.class, packageJSONType) + .build(), + ProtocolSubTypeInfo.newBuilder(DeploymentConfiguration.class) + .withSubtype(SnowflakeAppDeploymentConfiguration.class, "snowflakeDeploymentConfiguration") .build() )); } From 14e5dd1e996a16e5a86d4d599d1f2bca04fc1472 Mon Sep 17 00:00:00 2001 From: gs-jp1 <80327721+gs-jp1@users.noreply.github.com> Date: Fri, 20 Oct 2023 17:42:03 +0100 Subject: [PATCH 37/80] Legend SQL - assortment of updates (#2397) 1. further alias issue resolutions 2. handle date strings in arithmetic --- .../binding/fromPure/fromPure.pure | 13 +++-- .../binding/fromPure/tests/testTranspile.pure | 49 ++++++++++++++++++- 2 files changed, 55 insertions(+), 7 deletions(-) diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/fromPure.pure b/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/fromPure.pure index ec5bd2c906c..0c15c50e26e 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/fromPure.pure +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/fromPure.pure @@ -286,7 +286,7 @@ function <> meta::external::query::sql::transformation::queryToP | ^$query(expression = processRestrict($expected.alias, $renamed)), | $renamed); - let aliases = $final.columns.name->map(c | ^SQLColumnAlias(name=$c)); + let aliases = $final.columns.name->map(c | ^SQLColumnAlias(name = $c)); ^$final(aliases = $aliases); } @@ -815,7 +815,9 @@ function <> meta::external::query::sql::transformation::queryToP let right = wrapWithFrom($rightRenamed); //all of the child contexts are in scope for joining on so the new context needs to know about them - let newContext = ^$context(contexts = $left->concatenate($left.contexts)->concatenate($right)->concatenate($right.contexts)); + let leftContexts = if ($join.left->instanceOf(Join), | $left.contexts, | $left); + let rightContexts = if ($join.right->instanceOf(Join), | $right.contexts, | $right); + let newContext = ^$context(contexts = $leftContexts->concatenate($rightContexts)); let row1 = ^VariableExpression(multiplicity = PureOne, name = 'row1', genericType = ^GenericType(rawType = TDSRow)); let row2 = ^VariableExpression(multiplicity = PureOne, name = 'row2', genericType = ^GenericType(rawType = TDSRow)); @@ -2349,7 +2351,7 @@ function <> meta::external::query::sql::transformation::queryToP assert($simplified.type == ArithmeticType.ADD || $simplified.type == ArithmeticType.SUBTRACT, | 'arithmetic type ' + $simplified.type.name + ' not currently supported for dates'); //note we are making assumption here that Any is fine. This results from a function call that is generic return type (e.g. max) - assert($leftTypeNormalized == Date || $leftTypeNormalized == Any, | 'left side of date arithmetic must be non interval date'); + assert($leftTypeNormalized == Date || $leftTypeNormalized == String || $leftTypeNormalized == Any, | 'left side of date arithmetic must be non interval date'); assert($rightTypeNormalized == Number || $rightTypeNormalized == String || $simplified.right->instanceOf(IntervalLiteralWrapper) || $simplified.right->instanceOf(NullLiteral) || ($rightTypeNormalized == Date && $simplified.type == ArithmeticType.SUBTRACT), | 'right side of date arithmetic must be numeric or interval'); @@ -2365,7 +2367,7 @@ function <> meta::external::query::sql::transformation::queryToP let cast = ^Cast(expression = ^NullLiteral(), type = ^ColumnType(name = 'DATE')); processCastAsCast($cast, processExpression($cast, $expContext, $context), $expContext, $context); }), - pair($leftTypeNormalized == Date && ($rightTypeNormalized == Date || $rightTypeNormalized == String) && $simplified.type == ArithmeticType.SUBTRACT && !$simplified.right->instanceOf(IntervalLiteralWrapper), {| + pair(($leftTypeNormalized == Date || $leftTypeNormalized == String) && ($rightTypeNormalized == Date || $rightTypeNormalized == String) && $simplified.type == ArithmeticType.SUBTRACT && !$simplified.right->instanceOf(IntervalLiteralWrapper), {| let left = $simplified.left->processExpression($expContext, $context); let right = $simplified.right->processExpression($expContext, $context); @@ -2855,6 +2857,7 @@ Class meta::external::query::sql::transformation::queryToPure::SqlTransformConte let foundContext = $this.contexts->filter(c | $c.name == $contextName); let context = if ($contextName->isEmpty() || $foundContext->isEmpty(), | $this, | $foundContext->toOne()); + $context.columnByName($name, $failIfNotFound); }:TDSColumn[0..1]; columnByName(name:String[1], failIfNotFound:Boolean[1]){ @@ -3000,4 +3003,4 @@ function meta::external::query::sql::transformation::queryToPure::debug(a:String function meta::external::query::sql::transformation::queryToPure::debug(f:FunctionDefinition<{->String[1]}>[1], debug:DebugContext[1]):Any[0] { if ($debug.debug, | println($debug.space + $f->eval()), | []); -} +} \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/tests/testTranspile.pure b/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/tests/testTranspile.pure index 4dcbce199cd..a2dbd301beb 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/tests/testTranspile.pure +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/tests/testTranspile.pure @@ -1324,6 +1324,49 @@ function <> meta::external::query::sql::transformation::queryToPure:: ) } +function <> meta::external::query::sql::transformation::queryToPure::tests::testJoinWithMultiCommonTableAliases():Boolean[1] +{ + test( + 'SELECT "t0"."int" AS "int",' + + ' "t1"."Integer" AS "Integer"' + + 'FROM service."/service/service1" "t1"' + + 'INNER JOIN (' + + ' SELECT "t1"."Integer" AS "int",' + + ' "t1"."String" AS "str"' + + ' FROM service."/service/service2" "t1"' + + ') "t0" ON (("t1"."Integer" = "t0"."int") AND ("t1"."String" = "t0"."str"))', + + {|meta::external::query::sql::transformation::queryToPure::tests::FlatInput.all() + ->project([x|$x.booleanIn, x|$x.integerIn, x|$x.floatIn, x|$x.decimalIn, x|$x.strictDateIn, x|$x.dateTimeIn, x|$x.stringIn], + ['Boolean', 'Integer', 'Float', 'Decimal', 'StrictDate', 'DateTime', 'String']) + ->renameColumns([ + pair('Boolean', 'Boolean_t1'), + pair('Integer', 'Integer_t1'), + pair('Float', 'Float_t1'), + pair('Decimal', 'Decimal_t1'), + pair('StrictDate', 'StrictDate_t1'), + pair('DateTime', 'DateTime_t1'), + pair('String', 'String_t1')]) + ->join(meta::external::query::sql::transformation::queryToPure::tests::FlatInput.all() + ->project([x|$x.idIn, x|$x.integerIn, x|$x.stringIn], ['ID', 'Integer', 'String']) + ->restrict(['Integer', 'String']) + ->renameColumns([ + pair('Integer', 'int'), + pair('String', 'str')]) + ->renameColumns([ + pair('int', 'int_t0'), + pair('str', 'str_t0')]), + meta::relational::metamodel::join::JoinType->extractEnumValue('INNER'), + {row1, row2|(($row2.getInteger('Integer_t1') == $row2.getInteger('int_t0')) && ($row2.getString('String_t1') == $row2.getString('str_t0')))}) + ->restrict(['int_t0', 'Integer_t1']) + ->renameColumns([ + pair('int_t0', 'int'), + pair('Integer_t1', 'Integer')]) + }, false + ) +} + + //UNION function <> meta::external::query::sql::transformation::queryToPure::tests::testUnion():Boolean[1] @@ -1502,7 +1545,8 @@ function <> meta::external::query::sql::transformation::queryToPure:: 'CAST((DATE_TRUNC( \'DAY\', CAST("StrictDate" AS DATE) ) + (EXTRACT(DOW FROM "StrictDate") * INTERVAL \'1 DAY\')) AS DATE) AS "INTERVAL_MIX3", ' + 'StrictDate - DateTime AS "DATE_SUBTRACT", ' + 'StrictDate - INTERVAL \'1 DAY\' AS "INTERVAL_SUBTRACT", ' + - 'StrictDate - \'2023-01-01\' AS "STRING_SUBSTRACT"' + + 'StrictDate - \'2023-01-01\' AS "STRING_SUBSTRACT", ' + + '\'2023-01-01\' - StrictDate AS "STRING_SUBSTRACT2" ' + 'FROM service."/service/service1"', {| @@ -1522,7 +1566,8 @@ function <> meta::external::query::sql::transformation::queryToPure:: col(row:TDSRow[1] | $row.getStrictDate('StrictDate')->firstHourOfDay()->adjust(($row.getStrictDate('StrictDate')->dayOfWeekNumber() * 1), DurationUnit.DAYS), 'INTERVAL_MIX3'), col(row:TDSRow[1] | dateDiff($row.getStrictDate('StrictDate'), $row.getDateTime('DateTime'), DurationUnit.DAYS), 'DATE_SUBTRACT'), col(row:TDSRow[1] | adjust($row.getStrictDate('StrictDate'), -1, DurationUnit.DAYS), 'INTERVAL_SUBTRACT'), - col(row:TDSRow[1] | dateDiff($row.getStrictDate('StrictDate'), parseDate('2023-01-01'), DurationUnit.DAYS), 'STRING_SUBSTRACT') + col(row:TDSRow[1] | dateDiff($row.getStrictDate('StrictDate'), parseDate('2023-01-01'), DurationUnit.DAYS), 'STRING_SUBSTRACT'), + col(row:TDSRow[1] | dateDiff(parseDate('2023-01-01'), $row.getStrictDate('StrictDate'), DurationUnit.DAYS), 'STRING_SUBSTRACT2') ]) }) } From 3181ab9c355cc0bbfda6e05c0c578c8cfb0004d1 Mon Sep 17 00:00:00 2001 From: Abhishoya Lunavat <87463332+abhishoya-gs@users.noreply.github.com> Date: Mon, 23 Oct 2023 11:46:12 +0530 Subject: [PATCH 38/80] GraphQL - Filter out fields with any type during introspection (#2394) * GraphQL - Avoid fields with any type during introspection * test with qualified property * Update testIntrospectionQuery.pure --------- Co-authored-by: Sai Sriharsha Annepu <72639930+gs-ssh16@users.noreply.github.com> --- .../binding/fromPure/introspection/fromPure_Introspection.pure | 2 +- .../transformation/tests/testIntrospectionQuery.pure | 2 ++ 2 files changed, 3 insertions(+), 1 deletion(-) diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/fromPure/introspection/fromPure_Introspection.pure b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/fromPure/introspection/fromPure_Introspection.pure index 6d3e70c1dde..220a722795e 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/fromPure/introspection/fromPure_Introspection.pure +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/fromPure/introspection/fromPure_Introspection.pure @@ -86,7 +86,7 @@ function <> meta::external::query::graphQL::binding::fromPure::i $t->match( [ c:Class[1] | - let fields = $c->allProperties()->map(p| + let fields = $c->allProperties()->filter(p|$p.genericType.rawType != Any)->map(p| ^__Field ( name = $p.name->toOne(), diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/transformation/tests/testIntrospectionQuery.pure b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/transformation/tests/testIntrospectionQuery.pure index e69fdf271c4..efda05f5b24 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/transformation/tests/testIntrospectionQuery.pure +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/transformation/tests/testIntrospectionQuery.pure @@ -6,6 +6,8 @@ Class {doc.doc = 'Firm class representing a physical entity of Firm'} meta::exte {doc.doc = 'All employees of the firm'} employees : meta::external::query::graphQL::transformation::introspection::tests::Person[*]; {doc.doc = 'Is firm a public entity?'} isPublicEntity: Boolean[1]; {doc.doc = 'Type of the firm'} firmType: Firm_Type[1]; + anyProperty: Any[1]; + anyQualifiedProperty() {'LegalName: ' + $this.legalName}: Any[1]; } Enum meta::external::query::graphQL::transformation::introspection::tests::Firm_Type From 7cb53a06e9d50de6563fc96f653eeccb03da0586 Mon Sep 17 00:00:00 2001 From: Mohammed Ibrahim Date: Mon, 23 Oct 2023 14:56:16 -0400 Subject: [PATCH 39/80] Change sparkSQL keywords (#2401) * rename method * Function activation cleanup * rollback file changes * Change spark keywords * Change spark keywords * Fix test --- .../tests/executionPlanTestSparkSQL.pure | 2 +- .../sqlQueryToString/sparkSQLExtension.pure | 295 ++---------------- 2 files changed, 33 insertions(+), 264 deletions(-) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/src/main/resources/core_relational_sparksql/relational/executionPlan/tests/executionPlanTestSparkSQL.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/src/main/resources/core_relational_sparksql/relational/executionPlan/tests/executionPlanTestSparkSQL.pure index 5608b16b1ae..59f36767184 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/src/main/resources/core_relational_sparksql/relational/executionPlan/tests/executionPlanTestSparkSQL.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/src/main/resources/core_relational_sparksql/relational/executionPlan/tests/executionPlanTestSparkSQL.pure @@ -63,7 +63,7 @@ function <> meta::pure::executionPlan::tests::sparkSQL::testFilterEqu ' (\n'+ ' type = TDS[(Time, Integer, INT, "")]\n'+ ' resultColumns = [("Time", INT)]\n'+ - ' sql = select "root"."time" as "Time" from interactionTable as "root" where ((${optionalVarPlaceHolderOperationSelector(optionalID![], \'"root".ID = ${varPlaceHolderToString(optionalID![] "\\\'" "\\\'" {"\\\'" : "\\\'\\\'"} "null")}\', \'"root".ID is null\')}) and (${optionalVarPlaceHolderOperationSelector(optionalActive![], \'case when "root"."active" = \\\'Y\\\' then \\\'true\\\' else \\\'false\\\' end = ${varPlaceHolderToString(optionalActive![] "\\\'" "\\\'" {} "null")}\', \'case when "root"."active" = \\\'Y\\\' then \\\'true\\\' else \\\'false\\\' end is null\')}))\n'+ + ' sql = select "root"."time" as "Time" from interactionTable as "root" where ((${optionalVarPlaceHolderOperationSelector(optionalID![], \'"root".ID = ${varPlaceHolderToString(optionalID![] "\\\'" "\\\'" {"\\\'" : "\\\'\\\'"} "null")}\', \'"root".ID is null\')}) and (${optionalVarPlaceHolderOperationSelector(optionalActive![], \'case when "root".active = \\\'Y\\\' then \\\'true\\\' else \\\'false\\\' end = ${varPlaceHolderToString(optionalActive![] "\\\'" "\\\'" {} "null")}\', \'case when "root".active = \\\'Y\\\' then \\\'true\\\' else \\\'false\\\' end is null\')}))\n'+ ' connection = DatabaseConnection(type = "SparkSQL")\n'+ ' )\n'+ ' )\n'+ diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/src/main/resources/core_relational_sparksql/relational/sqlQueryToString/sparkSQLExtension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/src/main/resources/core_relational_sparksql/relational/sqlQueryToString/sparkSQLExtension.pure index 9710caeebc9..173a5efd426 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/src/main/resources/core_relational_sparksql/relational/sqlQueryToString/sparkSQLExtension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/src/main/resources/core_relational_sparksql/relational/sqlQueryToString/sparkSQLExtension.pure @@ -307,349 +307,118 @@ function meta::relational::functions::sqlQueryToString::sparkSQL::loadValuesToDb function <> meta::relational::functions::sqlQueryToString::sparkSQL::sparkReservedWords():String[*] { - //Based on - // http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc38151.1510/html/iqrefbb/Alhakeywords.htm - // and - // http://infocenter.sybase.com/help/index.jsp?topic=/com.sybase.infocenter.dc38151.1601/doc/html/san1278452828146.html - + //Based on ANSI SQL standard + // https://learn.microsoft.com/en-us/azure/databricks/sql/language-manual/sql-ref-reserved-words + [ - 'active', - 'add', - 'algorithm', 'all', 'alter', 'and', 'any', - 'append', 'array', 'as', - 'asc', - 'attach', - 'auto', - 'backup', - 'begin', + 'at', + 'authorization', 'between', - 'bigint', - 'binary', - 'bit', - 'bottom', - 'break', + 'both', 'by', - 'calibrate', - 'calibration', - 'call', - 'cancel', - 'capability', - 'cascade', 'case', 'cast', - 'certificate', - 'char', - 'char_convert', - 'character', 'check', - 'checkpoint', - 'checksum', - 'clientport', - 'close', - 'columns', - 'comment', + 'collate', + 'column', 'commit', - 'committed', - 'comparisons', - 'compressed', - 'computes', - 'conflict', - 'connect', 'constraint', - 'contains', - 'continue', - 'convert', 'create', 'cross', 'cube', 'current', + 'current_date', + 'current_time', 'current_timestamp', 'current_user', - 'cursor', - 'date', - 'datetimeoffset', - 'dbspace', - 'dbspacename', - 'deallocate', - 'debug', - 'dec', - 'decimal', - 'declare', - 'decoupled', - 'decrypted', - 'default', - 'delay', 'delete', - 'deleting', - 'density', - 'desc', - 'detach', - 'deterministic', - 'disable', - 'distinct', - 'do', - 'double', + 'describe', + 'delete', 'drop', - 'dynamic', - 'elements', 'else', - 'elseif', - 'enable', - 'encapsulated', - 'encrypted', 'end', - 'endif', 'escape', 'except', - 'exception', - 'exclude', - 'exec', - 'execute', - 'existing', - 'exists', - 'explicit', - 'express', - 'externlogin', - 'fastfirstrow', + 'exist', + 'external', + 'extract', + 'false', 'fetch', - 'first', - 'float', - 'following', + 'filter', 'for', - 'force', 'foreign', - 'forward', 'from', 'full', - 'gb', - 'goto', + 'function', + 'global', 'grant', 'group', 'grouping', 'having', - 'hidden', - 'history', - 'holdlock', - 'identified', - 'if', 'in', - 'inactive', - 'index', - 'index_lparen', 'inner', - 'inout', - 'input', - 'insensitive', 'insert', - 'inserting', - 'install', - 'instead', - 'int', - 'integer', - 'integrated', 'intersect', + 'interval', 'into', - 'iq', 'is', - 'isolation', - 'jdk', 'join', - 'json', - 'kb', - 'kerberos', - 'key', - 'lateral', + 'leading', 'left', 'like', - 'limit', - 'lock', - 'logging', - 'login', - 'long', - 'match', - 'mb', - 'membership', - 'merge', - 'message', - 'mode', - 'modify', - 'namespace', + 'local', 'natural', - 'nchar', - 'new', 'no', - 'noholdlock', - 'nolock', 'not', - 'notify', 'null', - 'numeric', - 'nvarchar', 'of', - 'off', 'on', - 'open', - 'openstring', - 'openxml', - 'optimization', - 'option', - 'options', + 'only', 'or', 'order', - 'others', 'out', 'outer', - 'over', - 'pages', - 'paglock', - 'partial', + 'overlaps', 'partition', - 'passthrough', - 'password', - 'plan', - 'preceding', - 'precision', - 'prepare', + 'position', 'primary', - 'print', - 'privileges', - 'proc', - 'procedure', - 'proxy', - 'publication', - 'raiserror', 'range', - 'raw', - 'readcommitted', - 'readonly', - 'readpast', - 'readtext', - 'readuncommitted', - 'readwrite', - 'real', - 'recursive', - 'reference', 'references', - 'refresh', - 'release', - 'relocate', - 'remote', - 'remove', - 'rename', - 'reorganize', - 'repeatable', - 'repeatableread', - 'reserve', - 'resizing', - 'resource', - 'restore', - 'restrict', - 'return', 'revoke', 'right', 'rollback', 'rollup', - 'root', 'row', - 'rowlock', 'rows', - 'rowtype', - 'save', - 'savepoint', - 'schedule', - 'scroll', - 'secure', 'select', - 'sensitive', - 'serializable', - 'service', - 'session', + 'session_user', 'set', - 'setuser', - 'share', - 'smallint', - 'soapaction', 'some', - 'space', - 'spatial', - 'sqlcode', - 'sqlstate', 'start', - 'stop', - 'subtrans', - 'subtransaction', - 'synchronize', - 'syntax_error', 'table', - 'tablock', - 'tablockx', - 'tb', - 'temporary', + 'tablesample', 'then', - 'ties', 'time', - 'timestamp', - 'tinyint', 'to', - 'top', - 'tran', - 'transaction', - 'transactional', - 'transfer', - 'treat', - 'tries', - 'trigger', + 'trailing', + 'true', 'truncate', - 'tsequal', - 'unbounded', - 'uncommitted', 'union', 'unique', - 'uniqueidentifier', 'unknown', - 'unnest', - 'unsigned', 'update', - 'updating', - 'updlock', - 'url', 'user', 'using', - 'utc', - 'validate', 'values', - 'varbinary', - 'varbit', - 'varchar', - 'variable', - 'varray', - 'varying', - 'view', - 'virtual', - 'wait', - 'waitfor', - 'web', - 'when', + 'when', 'where', - 'while', 'window', - 'with', - 'with_cube', - 'with_lparen', - 'with_rollup', - 'withauto', - 'within', - 'word', - 'work', - 'writeserver', - 'writetext', - 'xlock', - 'xml' - ] + 'with' +] } From 0f589d3fde28dae7047ca4e4022077d2c8a5d14b Mon Sep 17 00:00:00 2001 From: "Sherjan, Haroon" <35983762+haroonsherjan@users.noreply.github.com> Date: Mon, 23 Oct 2023 15:31:09 -0400 Subject: [PATCH 40/80] Fix PureSingleExecution instantiation in ServiceBuilder (#2403) --- .../dsl/service/compiler/toPureGraph/HelperServiceBuilder.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/src/main/java/org/finos/legend/engine/language/pure/dsl/service/compiler/toPureGraph/HelperServiceBuilder.java b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/src/main/java/org/finos/legend/engine/language/pure/dsl/service/compiler/toPureGraph/HelperServiceBuilder.java index 260d2416306..8ab30fa39f8 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/src/main/java/org/finos/legend/engine/language/pure/dsl/service/compiler/toPureGraph/HelperServiceBuilder.java +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/src/main/java/org/finos/legend/engine/language/pure/dsl/service/compiler/toPureGraph/HelperServiceBuilder.java @@ -97,7 +97,7 @@ public static Root_meta_legend_service_metamodel_Execution processServiceExecuti { lambda = HelperValueSpecificationBuilder.buildLambda(pureSingleExecution.func, context); } - return new Root_meta_legend_service_metamodel_PureSingleExecution_Impl("", null, context.pureModel.getClass("meta::legend::service::metamodel::PureMultiExecution")) + return new Root_meta_legend_service_metamodel_PureSingleExecution_Impl("", null, context.pureModel.getClass("meta::legend::service::metamodel::PureSingleExecution")) ._func(lambda) ._mapping(mapping) ._runtime(runtime); From b0c5e67f5a493afe89687050b5619a0b1ef69dff Mon Sep 17 00:00:00 2001 From: Gopichand Kotana <109651657+gs-kotang@users.noreply.github.com> Date: Tue, 24 Oct 2023 12:39:03 +0530 Subject: [PATCH 41/80] Fix MemSQL Dynafunction dateDiff() (#2357) * Fix MemSQL Dynafunction datediff * update unit tests * Add support for millisecond * Update memSQLExtension.pure --------- Co-authored-by: Sai Sriharsha Annepu <72639930+gs-ssh16@users.noreply.github.com> --- .../sqlQueryToString/memSQLExtension.pure | 31 +++++++++++++------ .../testSqlFunctionsInMapping.pure | 4 +-- 2 files changed, 24 insertions(+), 11 deletions(-) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/sqlQueryToString/memSQLExtension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/sqlQueryToString/memSQLExtension.pure index 973cef0e638..c79014a1a4a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/sqlQueryToString/memSQLExtension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/sqlQueryToString/memSQLExtension.pure @@ -81,7 +81,7 @@ function <> meta::relational::functions::sqlQueryToString::memsq dynaFnToSql('concat', $allStates, ^ToSql(format='concat%s', transform={p:String[*]|$p->joinStrings('(', ', ', ')')})), dynaFnToSql('convertDate', $allStates, ^ToSql(format='%s', transform={p:String[*] | $p->convertToDateMemSQL()})), dynaFnToSql('convertVarchar128', $allStates, ^ToSql(format='convert(%s, CHAR)')), - dynaFnToSql('dateDiff', $allStates, ^ToSql(format='%s', transform={p:String[*]|generateDateDiffExpressionForMemSQL ([$p->at(1), $p->at(0), $p->at(2)->replace('\'', '')])})), + dynaFnToSql('dateDiff', $allStates, ^ToSql(format='%s', transform={p:String[*]|generateDateDiffExpressionForMemSQL ([$p->at(0), $p->at(1), $p->at(2)->replace('\'', '')])})), dynaFnToSql('datePart', $allStates, ^ToSql(format='date(%s)')), dynaFnToSql('dayOfMonth', $allStates, ^ToSql(format='day(%s)')), dynaFnToSql('dayOfWeekNumber', $allStates, ^ToSql(format='dayofweek(%s)')), @@ -169,18 +169,31 @@ function <> meta::relational::functions::sqlQueryToString::mems let dbSpecificUnits = [ - {| fail('The DurationUnit \''+$params->at(2)+'\' is not supported yet!');'';}, - {| fail('The DurationUnit \''+$params->at(2)+'\' is not supported yet!');'';}, - {| fail('The DurationUnit \''+$params->at(2)+'\' is not supported yet!');'';}, {| format('(%s)', [ - 'datediff(%s , %s)' + 'timestampdiff(YEAR, %s , %s)' ])}, - {| fail('The DurationUnit \''+$params->at(2)+'\' is not supported yet!');'';}, - {| fail('The DurationUnit \''+$params->at(2)+'\' is not supported yet!');'';}, {| format('(%s)', [ - 'time_to_sec(timediff(%s , %s))' + 'timestampdiff(MONTH, %s , %s)' ])}, - {| fail('The DurationUnit \''+$params->at(2)+'\' is not supported yet!');'';} + {| format('(%s)', [ + 'timestampdiff(WEEK, %s , %s)' + ])}, + {| format('(%s)', [ + 'timestampdiff(DAY, %s , %s)' + ])}, + {| format('(%s)', [ + 'timestampdiff(HOUR, %s , %s)' + ])}, + {| format('(%s)', [ + 'timestampdiff(MINUTE, %s , %s)' + ])}, + {| format('(%s)', [ + 'timestampdiff(SECOND, %s , %s)' + ])}, + {| format('(%s)', [ + // Since SingleStore doesn't support millisecond diff, using microsecond diff to calculate required value (https://docs.singlestore.com/cloud/reference/sql-reference/date-and-time-functions/timestampdiff/) + 'floor(timestampdiff(MICROSECOND, %s , %s)/1000)' + ])} ]; format($dbSpecificUnits->at($indexOfDiff)->eval(), [$params->at(0), $params->at(1)]); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/tests/mapping/sqlFunction/testSqlFunctionsInMapping.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/tests/mapping/sqlFunction/testSqlFunctionsInMapping.pure index ec9eb4ca7ea..a02ba4f6546 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/tests/mapping/sqlFunction/testSqlFunctionsInMapping.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/src/main/resources/core_relational_memsql/relational/tests/mapping/sqlFunction/testSqlFunctionsInMapping.pure @@ -79,7 +79,7 @@ function <> meta::relational::memsql::tests::mapping::sqlFunction::pa let s = toSQLString(|SqlFunctionDemo.all()->project([s | dateDiff($da, $db, DurationUnit.DAYS)], ['dateDiff']), testMapping, meta::relational::runtime::DatabaseType.MemSQL, meta::relational::extension::relationalExtensions()); - assertEquals('select (datediff(\'2017-04-01\' , \'2017-03-01\')) as `dateDiff` from dataTable as `root`',$s); + assertEquals('select (timestampdiff(DAY, \'2017-03-01\' , \'2017-04-01\')) as `dateDiff` from dataTable as `root`',$s); } function <> meta::relational::memsql::tests::mapping::sqlFunction::parseInteger::testToSQLStringDateDiffInSeconds_MemSQL():Boolean[1] @@ -90,7 +90,7 @@ function <> meta::relational::memsql::tests::mapping::sqlFunction::pa testMapping, meta::relational::runtime::DatabaseType.MemSQL, meta::relational::extension::relationalExtensions()); - assertEquals('select (time_to_sec(timediff(\'2017-03-01 20:08:08\' , \'2017-03-01 19:09:20\'))) as `dateDiff` from dataTable as `root`',$s); + assertEquals('select (timestampdiff(SECOND, \'2017-03-01 19:09:20\' , \'2017-03-01 20:08:08\')) as `dateDiff` from dataTable as `root`',$s); } function <> meta::relational::memsql::tests::mapping::sqlFunction::parseInteger::testToSQLStringConvertVarchar128_MemSQL():Boolean[1] From a1aa68b6f051cad2144c1e3a830bdb321104e683 Mon Sep 17 00:00:00 2001 From: Mohammed Ibrahim Date: Tue, 24 Oct 2023 14:29:11 -0400 Subject: [PATCH 42/80] Add primitive type to OpenAPI generation (#2404) * rename method * Function activation cleanup * rollback file changes * Change spark keywords * Change spark keywords * Fix test * Add Primitive Type to Open APi Generator * Add byte --- .../transformation/fromPure/pureToOpenApi.pure | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/src/main/resources/core_external_format_openapi/transformation/fromPure/pureToOpenApi.pure b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/src/main/resources/core_external_format_openapi/transformation/fromPure/pureToOpenApi.pure index 173940126fd..28e283f2836 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/src/main/resources/core_external_format_openapi/transformation/fromPure/pureToOpenApi.pure +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/src/main/resources/core_external_format_openapi/transformation/fromPure/pureToOpenApi.pure @@ -294,8 +294,10 @@ function <> meta::external::function::description::openapi::tran pair(Boolean, 'boolean'), pair(Integer, 'integer'), pair(Float, 'float'), + pair(Decimal, 'float'), + pair(Byte, 'string'), pair(Number, 'float') - ]->filter(t|$t.first==$type).second->toOne(); + ]->filter(t|$t.first==$type).second->toOne('Cannot find type match for primitive type: '+ $type.name->toOne()); } From 30cc906deeecb5b1763d1d5b24e9bd8e69543507 Mon Sep 17 00:00:00 2001 From: Aziem Chawdhary <61746398+aziemchawdhary-gs@users.noreply.github.com> Date: Tue, 24 Oct 2023 19:50:24 +0100 Subject: [PATCH 43/80] Activate Pure protocol v1_33_0 (#2383) (#2386) --- .../finos/legend/engine/protocol/pure/PureClientVersions.java | 2 +- .../finos/legend/engine/protocol/test/TestProtocolUpdates.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/PureClientVersions.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/PureClientVersions.java index 5cd5f97d1da..5f722504544 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/PureClientVersions.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/PureClientVersions.java @@ -28,7 +28,7 @@ public class PureClientVersions assert !hasRepeatedVersions(versions) : "Repeated version id :" + versions.toBag().selectByOccurrences(i -> i > 1).toSet().makeString("[", ", ", "]"); } - public static String production = "v1_32_0"; + public static String production = "v1_33_0"; static boolean hasRepeatedVersions(ImmutableList versions) { diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/test/java/org/finos/legend/engine/protocol/test/TestProtocolUpdates.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/test/java/org/finos/legend/engine/protocol/test/TestProtocolUpdates.java index 550f911bbc6..6b4fbb5a5e2 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/test/java/org/finos/legend/engine/protocol/test/TestProtocolUpdates.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/test/java/org/finos/legend/engine/protocol/test/TestProtocolUpdates.java @@ -24,6 +24,6 @@ public class TestProtocolUpdates public void testProductionProtocolVersion() { String productionProtocolVersion = PureClientVersions.production; - Assert.assertEquals("v1_32_0", productionProtocolVersion); + Assert.assertEquals("v1_33_0", productionProtocolVersion); } } From d544a51c0d64c1d9514f2e61953a76eef9e122de Mon Sep 17 00:00:00 2001 From: Mohammed Ibrahim Date: Tue, 24 Oct 2023 16:53:55 -0400 Subject: [PATCH 44/80] Change to use Identity instead of Profiles (#2405) * rename method * Function activation cleanup * rollback file changes * Change spark keywords * Change spark keywords * Fix test * Add Primitive Type to Open APi Generator * Add byte * Snowflake deployment changes * Snowflake deployment changes * Use identity instead of Profiles * checkstyles * Minor fixes --- .../pom.xml | 4 +++ .../collection/generation/TestExtensions.java | 4 ++- .../api/FunctionActivatorAPI.java | 9 ++++-- .../deployment/DeploymentManager.java | 7 ++--- .../service/FunctionActivatorService.java | 7 ++--- .../pom.xml | 4 --- .../api/HostedServiceService.java | 10 +++---- .../HostedServiceDeploymentManager.java | 7 ++--- .../pom.xml | 6 ---- .../HostedServiceArtifactGenerator.java | 7 ++--- .../control/DeploymentOwnerValidator.java | 5 ++-- .../control/HostedServiceOwnerValidator.java | 5 ++-- .../control/UserListOwnerValidator.java | 21 +++++++++---- .../legend-engine-xt-snowflakeApp-api/pom.xml | 4 --- .../snowflakeApp/api/SnowflakeAppService.java | 19 +++++++++--- .../SnowflakeDeploymentManager.java | 30 +++++++++---------- 16 files changed, 80 insertions(+), 69 deletions(-) diff --git a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml index 3067f7c74f8..74a7252ac6b 100644 --- a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml @@ -478,6 +478,10 @@ org.finos.legend.engine legend-engine-xt-snowflakeApp-protocol + + org.finos.legend.engine + legend-engine-xt-snowflakeApp-api + diff --git a/legend-engine-config/legend-engine-extensions-collection-generation/src/test/java/org/finos/legend/engine/extensions/collection/generation/TestExtensions.java b/legend-engine-config/legend-engine-extensions-collection-generation/src/test/java/org/finos/legend/engine/extensions/collection/generation/TestExtensions.java index 2d51c4927c9..672672554f7 100644 --- a/legend-engine-config/legend-engine-extensions-collection-generation/src/test/java/org/finos/legend/engine/extensions/collection/generation/TestExtensions.java +++ b/legend-engine-config/legend-engine-extensions-collection-generation/src/test/java/org/finos/legend/engine/extensions/collection/generation/TestExtensions.java @@ -71,6 +71,7 @@ import org.finos.legend.engine.language.pure.grammar.to.DatabricksGrammarComposerExtension; import org.finos.legend.engine.language.pure.grammar.to.extension.PureGrammarComposerExtension; import org.finos.legend.engine.language.snowflakeApp.compiler.toPureGraph.SnowflakeAppCompilerExtension; +import org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeAppArtifactGenerationExtension; import org.finos.legend.engine.language.snowflakeApp.grammar.from.SnowflakeAppGrammarParserExtension; import org.finos.legend.engine.language.snowflakeApp.grammar.to.SnowflakeAppGrammarComposer; import org.finos.legend.engine.language.sql.grammar.integration.SQLGrammarParserExtension; @@ -452,7 +453,8 @@ protected Iterable> getEx return Lists.mutable.>empty() .with(DataSpaceAnalyticsArtifactGenerationExtension.class) .with(SearchDocumentArtifactGenerationExtension.class) - .with(OpenApiArtifactGenerationExtension.class); + .with(OpenApiArtifactGenerationExtension.class) + .with(SnowflakeAppArtifactGenerationExtension.class); } protected Iterable> getExpectedEntitlementServiceExtensions() diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/api/FunctionActivatorAPI.java b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/api/FunctionActivatorAPI.java index 000bd9952ef..40ecb290423 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/api/FunctionActivatorAPI.java +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/api/FunctionActivatorAPI.java @@ -32,12 +32,13 @@ import org.finos.legend.engine.language.pure.modelManager.ModelManager; //import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentConfiguration; import org.finos.legend.engine.functionActivator.deployment.DeploymentResult; -import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentStage; import org.finos.legend.engine.protocol.pure.PureClientVersions; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; import org.finos.legend.engine.shared.core.ObjectMapperFactory; import org.finos.legend.engine.shared.core.api.result.ManageConstantResult; import org.finos.legend.engine.shared.core.deployment.DeploymentMode; +import org.finos.legend.engine.shared.core.identity.factory.DefaultIdentityFactory; +import org.finos.legend.engine.shared.core.identity.factory.IdentityFactory; import org.finos.legend.engine.shared.core.kerberos.ProfileManagerHelper; import org.finos.legend.engine.shared.core.operational.errorManagement.ExceptionTool; import org.finos.legend.engine.shared.core.operational.logs.LoggingEventType; @@ -66,12 +67,14 @@ public class FunctionActivatorAPI private final Function> routerExtensions; private List runtimeDeploymentConfig = Lists.mutable.empty(); private MutableList> availableActivatorServices = Lists.mutable.empty(); + private IdentityFactory identityFactory; public FunctionActivatorAPI(ModelManager modelManager, Function> routerExtensions) { this.modelManager = modelManager; this.routerExtensions = routerExtensions; this.emptyModel = Compiler.compile(PureModelContextData.newPureModelContextData(), DeploymentMode.PROD, null); + this.identityFactory = new DefaultIdentityFactory(); } public FunctionActivatorAPI(ModelManager modelManager, List activatorConfigurations, MutableList> availableActivatorServices, Function> routerExtensions) @@ -107,7 +110,7 @@ public Response validate(FunctionActivatorInput input, @ApiParam(hidden = true) PureModel pureModel = modelManager.loadModel(input.model, clientVersion, profiles, null); Root_meta_external_function_activator_FunctionActivator activator = (Root_meta_external_function_activator_FunctionActivator) pureModel.getPackageableElement(input.functionActivator); FunctionActivatorService service = getActivatorService(activator, pureModel); - return Response.ok(objectMapper.writeValueAsString(service.validate(profiles, pureModel, activator, input.model, routerExtensions))).type(MediaType.APPLICATION_JSON_TYPE).build(); + return Response.ok(objectMapper.writeValueAsString(service.validate(identityFactory.makeIdentity(profiles), pureModel, activator, input.model, routerExtensions))).type(MediaType.APPLICATION_JSON_TYPE).build(); } catch (Exception ex) { @@ -130,7 +133,7 @@ public Response publishToSandbox(FunctionActivatorInput input, @ApiParam(hidden PureModel pureModel = modelManager.loadModel(input.model, clientVersion, profiles, null); Root_meta_external_function_activator_FunctionActivator activator = (Root_meta_external_function_activator_FunctionActivator) pureModel.getPackageableElement(input.functionActivator); FunctionActivatorService service = getActivatorService(activator,pureModel); - return Response.ok(objectMapper.writeValueAsString(service.publishToSandbox(profiles, pureModel, activator, input.model, service.selectConfig(this.runtimeDeploymentConfig), routerExtensions))).type(MediaType.APPLICATION_JSON_TYPE).build(); + return Response.ok(objectMapper.writeValueAsString(service.publishToSandbox(this.identityFactory.makeIdentity(profiles), pureModel, activator, input.model, service.selectConfig(this.runtimeDeploymentConfig), routerExtensions))).type(MediaType.APPLICATION_JSON_TYPE).build(); } catch (Exception ex) { diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/DeploymentManager.java b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/DeploymentManager.java index 302270e5c49..0c65b451b9c 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/DeploymentManager.java +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/DeploymentManager.java @@ -14,17 +14,16 @@ package org.finos.legend.engine.functionActivator.deployment; -import org.eclipse.collections.api.list.MutableList; -import org.pac4j.core.profile.CommonProfile; +import org.finos.legend.engine.shared.core.identity.Identity; import java.util.List; public interface DeploymentManager { - public V deploy(MutableList profiles, U artifact); + public V deploy(Identity identity, U artifact); - public V deploy(MutableList profiles, U artifact, List availableRuntimeConfigurations); + public V deploy(Identity identity, U artifact, List availableRuntimeConfigurations); public boolean canDeploy(FunctionActivatorArtifact activatorArtifact); diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/service/FunctionActivatorService.java b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/service/FunctionActivatorService.java index 7086ba02aa6..18c4382583a 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/service/FunctionActivatorService.java +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/service/FunctionActivatorService.java @@ -20,14 +20,13 @@ import org.finos.legend.engine.functionActivator.api.output.FunctionActivatorInfo; import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorArtifact; import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorDeploymentConfiguration; -import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentStage; import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentConfiguration; import org.finos.legend.engine.functionActivator.deployment.DeploymentResult; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContext; +import org.finos.legend.engine.shared.core.identity.Identity; import org.finos.legend.pure.generated.Root_meta_external_function_activator_FunctionActivator; import org.finos.legend.pure.generated.Root_meta_pure_extension_Extension; -import org.pac4j.core.profile.CommonProfile; import java.util.List; @@ -37,9 +36,9 @@ public interface FunctionActivatorService validate(MutableList profiles, PureModel pureModel, T functionActivator, PureModelContext inputModel, Function> routerExtensions); + MutableList validate(Identity identity, PureModel pureModel, T functionActivator, PureModelContext inputModel, Function> routerExtensions); - V publishToSandbox(MutableList profiles, PureModel pureModel, T functionActivator, PureModelContext inputModel, List runtimeConfigurations, Function> routerExtensions); + V publishToSandbox(Identity identity, PureModel pureModel, T functionActivator, PureModelContext inputModel, List runtimeConfigurations, Function> routerExtensions); FunctionActivatorArtifact renderArtifact(PureModel pureModel, T functionActivator, PureModelContext inputModel, String clientVersion, Function> routerExtensions); diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml index e951e3b7b30..3403eebb2b1 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml @@ -131,10 +131,6 @@ eclipse-collections - - org.pac4j - pac4j-core - diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/api/HostedServiceService.java b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/api/HostedServiceService.java index a35aa36f5a0..dac65a23cd7 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/api/HostedServiceService.java +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/api/HostedServiceService.java @@ -36,8 +36,8 @@ import org.finos.legend.engine.protocol.hostedService.metamodel.HostedServiceProtocolExtension; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContext; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; +import org.finos.legend.engine.shared.core.identity.Identity; import org.finos.legend.pure.generated.*; -import org.pac4j.core.profile.CommonProfile; import java.util.List; @@ -73,12 +73,12 @@ public boolean supports(Root_meta_external_function_activator_FunctionActivator } @Override - public MutableList validate(MutableList profiles, PureModel pureModel, Root_meta_external_function_activator_hostedService_HostedService activator, PureModelContext inputModel, Function> routerExtensions) + public MutableList validate(Identity identity, PureModel pureModel, Root_meta_external_function_activator_hostedService_HostedService activator, PureModelContext inputModel, Function> routerExtensions) { MutableList errors = Lists.mutable.empty(); try { - this.hostedServiceArtifactgenerator.validateOwner(profiles, pureModel, activator, routerExtensions); + this.hostedServiceArtifactgenerator.validateOwner(identity, pureModel, activator, routerExtensions); core_hostedservice_generation_generation.Root_meta_external_function_activator_hostedService_validator_validateService_HostedService_1__Boolean_1_(activator, pureModel.getExecutionSupport()); //returns true or errors out } @@ -104,11 +104,11 @@ public List selectConfig(List profiles, PureModel pureModel, Root_meta_external_function_activator_hostedService_HostedService activator, PureModelContext inputModel, List runtimeConfigs, Function> routerExtensions) + public HostedServiceDeploymentResult publishToSandbox(Identity identity, PureModel pureModel, Root_meta_external_function_activator_hostedService_HostedService activator, PureModelContext inputModel, List runtimeConfigs, Function> routerExtensions) { GenerationInfoData generation = this.hostedServiceArtifactgenerator.renderArtifact(pureModel, activator, inputModel, "vX_X_X",routerExtensions); HostedServiceArtifact artifact = new HostedServiceArtifact(generation, fetchHostedService(activator, (PureModelContextData)inputModel, pureModel)); - return this.hostedServiceDeploymentManager.deploy(profiles, artifact, runtimeConfigs); + return this.hostedServiceDeploymentManager.deploy(identity, artifact, runtimeConfigs); // return new HostedServiceDeploymentResult(); } diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceDeploymentManager.java b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceDeploymentManager.java index 8309de32973..0e426ab292f 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceDeploymentManager.java +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceDeploymentManager.java @@ -15,11 +15,10 @@ package org.finos.legend.engine.language.hostedService.deployment; import com.fasterxml.jackson.databind.ObjectMapper; -import org.eclipse.collections.api.list.MutableList; import org.finos.legend.engine.functionActivator.deployment.DeploymentManager; import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorArtifact; import org.finos.legend.engine.shared.core.ObjectMapperFactory; -import org.pac4j.core.profile.CommonProfile; +import org.finos.legend.engine.shared.core.identity.Identity; import org.finos.legend.engine.language.hostedService.deployment.HostedServiceDeploymentConfiguration; import java.util.List; @@ -33,13 +32,13 @@ public boolean canDeploy(FunctionActivatorArtifact element) return element instanceof HostedServiceArtifact; } - public HostedServiceDeploymentResult deploy(MutableList profiles, HostedServiceArtifact artifact) + public HostedServiceDeploymentResult deploy(Identity identity, HostedServiceArtifact artifact) { return new HostedServiceDeploymentResult(); } - public HostedServiceDeploymentResult deploy(MutableList profiles, HostedServiceArtifact artifact, List availableRuntimeConfigurations) + public HostedServiceDeploymentResult deploy(Identity identity, HostedServiceArtifact artifact, List availableRuntimeConfigurations) { String host; String path; diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml index 8c7d18a42df..2f2f655497e 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml @@ -103,12 +103,6 @@ - - - org.pac4j - pac4j-core - - junit diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/HostedServiceArtifactGenerator.java b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/HostedServiceArtifactGenerator.java index 4a8697b27b6..ea11cb1dc9e 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/HostedServiceArtifactGenerator.java +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/HostedServiceArtifactGenerator.java @@ -18,7 +18,6 @@ import org.eclipse.collections.api.block.function.Function; import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.factory.Maps; -import org.eclipse.collections.api.list.MutableList; import org.finos.legend.engine.language.hostedService.generation.control.HostedServiceOwnerValidationService; import org.finos.legend.engine.language.hostedService.generation.control.HostedServiceOwnerValidator; import org.finos.legend.engine.language.hostedService.generation.model.GenerationInfoData; @@ -32,12 +31,12 @@ import org.finos.legend.engine.protocol.pure.v1.model.executionPlan.CompositeExecutionPlan; import org.finos.legend.engine.protocol.pure.v1.model.executionPlan.ExecutionPlan; import org.finos.legend.engine.protocol.pure.v1.model.executionPlan.SingleExecutionPlan; +import org.finos.legend.engine.shared.core.identity.Identity; import org.finos.legend.pure.generated.Root_meta_external_function_activator_hostedService_HostedService; import org.finos.legend.pure.generated.Root_meta_external_function_activator_hostedService_Ownership; import org.finos.legend.pure.generated.Root_meta_pure_extension_Extension; import org.finos.legend.pure.generated.core_hostedservice_generation_generation; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.ConcreteFunctionDefinition; -import org.pac4j.core.profile.CommonProfile; import java.util.Map; @@ -73,10 +72,10 @@ public static ExecutionPlan generatePlan(PureModel pureModel, Root_meta_external } } - public boolean validateOwner(MutableList profiles, PureModel pureModel, Root_meta_external_function_activator_hostedService_HostedService activator, Function> routerExtensions) + public boolean validateOwner(Identity identity, PureModel pureModel, Root_meta_external_function_activator_hostedService_HostedService activator, Function> routerExtensions) { HostedServiceOwnerValidator service = getOwnerValidatorService(activator,pureModel); - return service.isOwner(profiles, activator._ownership()); + return service.isOwner(identity, activator._ownership()); } public HostedServiceOwnerValidator getOwnerValidatorService(Root_meta_external_function_activator_hostedService_HostedService activator, PureModel pureModel) diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/control/DeploymentOwnerValidator.java b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/control/DeploymentOwnerValidator.java index d758aa0f497..352f66f0453 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/control/DeploymentOwnerValidator.java +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/control/DeploymentOwnerValidator.java @@ -14,15 +14,14 @@ package org.finos.legend.engine.language.hostedService.generation.control; -import org.eclipse.collections.api.list.MutableList; +import org.finos.legend.engine.shared.core.identity.Identity; import org.finos.legend.pure.generated.Root_meta_external_function_activator_hostedService_Deployment; import org.finos.legend.pure.generated.Root_meta_external_function_activator_hostedService_Ownership; -import org.pac4j.core.profile.CommonProfile; public class DeploymentOwnerValidator implements HostedServiceOwnerValidator { @Override - public boolean isOwner(MutableList profiles, Root_meta_external_function_activator_hostedService_Deployment ownershipModel) + public boolean isOwner(Identity identity, Root_meta_external_function_activator_hostedService_Deployment ownershipModel) { return ownershipModel._id() > 10; } diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/control/HostedServiceOwnerValidator.java b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/control/HostedServiceOwnerValidator.java index ecf5639e90a..7cb98be504f 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/control/HostedServiceOwnerValidator.java +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/control/HostedServiceOwnerValidator.java @@ -14,13 +14,12 @@ package org.finos.legend.engine.language.hostedService.generation.control; -import org.eclipse.collections.api.list.MutableList; +import org.finos.legend.engine.shared.core.identity.Identity; import org.finos.legend.pure.generated.Root_meta_external_function_activator_hostedService_Ownership; -import org.pac4j.core.profile.CommonProfile; public interface HostedServiceOwnerValidator { - boolean isOwner(MutableList profiles, T ownershipModel); + boolean isOwner(Identity identity, T ownershipModel); public boolean supports(Root_meta_external_function_activator_hostedService_Ownership ownershipModel); } diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/control/UserListOwnerValidator.java b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/control/UserListOwnerValidator.java index 6a680c6bcaf..685c685e16e 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/control/UserListOwnerValidator.java +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/control/UserListOwnerValidator.java @@ -14,19 +14,30 @@ package org.finos.legend.engine.language.hostedService.generation.control; -import org.eclipse.collections.api.list.MutableList; -import org.finos.legend.engine.shared.core.kerberos.ProfileManagerHelper; +import org.finos.legend.engine.shared.core.identity.Identity; +import org.finos.legend.engine.shared.core.identity.credential.LegendKerberosCredential; import org.finos.legend.engine.shared.core.kerberos.SubjectTools; import org.finos.legend.pure.generated.Root_meta_external_function_activator_hostedService_Ownership; import org.finos.legend.pure.generated.Root_meta_external_function_activator_hostedService_UserList; -import org.pac4j.core.profile.CommonProfile; + +import javax.security.auth.Subject; +import java.util.NoSuchElementException; public class UserListOwnerValidator implements HostedServiceOwnerValidator { @Override - public boolean isOwner(MutableList profiles, Root_meta_external_function_activator_hostedService_UserList users) + public boolean isOwner(Identity identity, Root_meta_external_function_activator_hostedService_UserList users) { - return users._users().contains(SubjectTools.getKerberos(ProfileManagerHelper.extractSubject(profiles))); //use profile + Subject subject = null; + try + { + subject = identity.getCredential(LegendKerberosCredential.class).get().getSubject(); + } + catch (NoSuchElementException e) + { + return false; + } + return users._users().contains(SubjectTools.getKerberos(subject)); //use profile } @Override diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml index f9259d81c75..f85d6c2e610 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml @@ -133,10 +133,6 @@ com.fasterxml.jackson.core jackson-databind - - org.pac4j - pac4j-core - org.eclipse.collections diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/api/SnowflakeAppService.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/api/SnowflakeAppService.java index 0ce172a1608..9a830e5e85b 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/api/SnowflakeAppService.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/api/SnowflakeAppService.java @@ -35,6 +35,7 @@ import org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContext; import org.finos.legend.engine.protocol.snowflakeApp.metamodel.SnowflakeAppProtocolExtension; +import org.finos.legend.engine.shared.core.identity.Identity; import org.finos.legend.pure.generated.Root_meta_external_function_activator_FunctionActivator; import org.finos.legend.pure.generated.Root_meta_external_function_activator_snowflakeApp_SnowflakeApp; import org.finos.legend.pure.generated.Root_meta_pure_extension_Extension; @@ -84,21 +85,31 @@ public boolean supports(Root_meta_external_function_activator_FunctionActivator } @Override - public MutableList validate(MutableList profiles, PureModel pureModel, Root_meta_external_function_activator_snowflakeApp_SnowflakeApp activator, PureModelContext inputModel, Function> routerExtensions) + public MutableList validate(Identity identity, PureModel pureModel, Root_meta_external_function_activator_snowflakeApp_SnowflakeApp activator, PureModelContext inputModel, Function> routerExtensions) { SnowflakeAppArtifact artifact = SnowflakeAppGenerator.generateArtifact(pureModel, activator, inputModel, routerExtensions); + return validate(artifact); + } + + public MutableList validate(SnowflakeAppArtifact artifact) + { int size = ((SnowflakeAppContent)artifact.content).sqlExpressions.size(); return size != 1 ? Lists.mutable.with(new SnowflakeAppError("SnowflakeApp can't be used with a plan containing '" + size + "' SQL expressions", ((SnowflakeAppContent)artifact.content).sqlExpressions)) : Lists.mutable.empty(); - } @Override - public SnowflakeDeploymentResult publishToSandbox(MutableList profiles, PureModel pureModel, Root_meta_external_function_activator_snowflakeApp_SnowflakeApp activator, PureModelContext inputModel, List runtimeConfigurations, Function> routerExtensions) + public SnowflakeDeploymentResult publishToSandbox(Identity identity, PureModel pureModel, Root_meta_external_function_activator_snowflakeApp_SnowflakeApp activator, PureModelContext inputModel, List runtimeConfigurations, Function> routerExtensions) { SnowflakeAppArtifact artifact = SnowflakeAppGenerator.generateArtifact(pureModel, activator, inputModel, routerExtensions); - return this.snowflakeDeploymentManager.deploy(profiles, artifact, runtimeConfigurations); + MutableList validationError = validate(artifact); + if (validationError.isEmpty()) + { + return this.snowflakeDeploymentManager.deploy(identity, artifact, runtimeConfigurations); + } + return new SnowflakeDeploymentResult(validationError.collect(v -> v.message)); + } @Override diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeDeploymentManager.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeDeploymentManager.java index 02228287fa8..9b4eb750b8d 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeDeploymentManager.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeDeploymentManager.java @@ -22,7 +22,6 @@ import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorArtifact; import org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool; import org.finos.legend.engine.plan.execution.PlanExecutor; -import org.finos.legend.engine.plan.execution.stores.relational.RelationalExecutor; import org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector; import org.finos.legend.engine.plan.execution.stores.relational.plugin.RelationalStoreExecutor; import org.finos.legend.engine.plan.execution.stores.relational.plugin.RelationalStoreState; @@ -32,7 +31,6 @@ import org.finos.legend.engine.shared.core.identity.Identity; import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy; import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification; -import org.pac4j.core.profile.CommonProfile; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -51,8 +49,8 @@ public class SnowflakeDeploymentManager implements DeploymentManager profiles, SnowflakeAppArtifact artifact) + public SnowflakeDeploymentResult deploy(Identity identity, SnowflakeAppArtifact artifact) { return new SnowflakeDeploymentResult("",true); } @Override - public SnowflakeDeploymentResult deploy(MutableList profiles, SnowflakeAppArtifact artifact, List availableRuntimeConfigurations) + public SnowflakeDeploymentResult deploy(Identity identity, SnowflakeAppArtifact artifact, List availableRuntimeConfigurations) { LOGGER.info("Starting deployment"); SnowflakeDeploymentResult result; - try (Connection jdbcConnection = this.getDeploymentConnection(profiles, artifact)) + //use the system connection if available (as would be the case in sandbox flow) , else use artifact connection (production flow) + try (Connection jdbcConnection = availableRuntimeConfigurations.isEmpty() ? this.getDeploymentConnection(identity, artifact) : this.getDeploymentConnection(identity, availableRuntimeConfigurations.get(0).connection)) { String appName = ((SnowflakeAppContent)artifact.content).applicationName; jdbcConnection.setAutoCommit(false); @@ -119,9 +118,9 @@ public SnowflakeDeploymentResult fakeDeploy(Root_meta_pure_alloy_connections_all } } - public java.sql.Connection getDeploymentConnection(MutableList profiles, RelationalDatabaseConnection connection) + public java.sql.Connection getDeploymentConnection(Identity identity, RelationalDatabaseConnection connection) { - return this.connectionManager.getDatabaseConnection(profiles, (DatabaseConnection) connection); + return this.connectionManager.getDatabaseConnection(identity, (DatabaseConnection) connection); } public void deployImpl(Connection jdbcConnection, SnowflakeAppContent context) throws Exception @@ -131,8 +130,9 @@ public void deployImpl(Connection jdbcConnection, SnowflakeAppContent context) t //String createTableSQL = String.format("create table %s (id INTEGER, message VARCHAR(1000)) if not exists", deploymentTableName); //boolean createTableStatus = statement.execute(createTableSQL); - String insertSQL = String.format("insert into %s(CREATE_DATETIME, APP_NAME, SQL_FRAGMENT, VERSION_NUMBER, OWNER) values('%s', '%s', '%s', '%s', '%s')", deploymentTableName, context.creationTime, context.applicationName, context.sqlExpressions.getFirst(), context.getVersionInfo(), Lists.mutable.withAll(context.owners).makeString(",")); - boolean insertStatus = statement.execute(insertSQL); + String insertSQL = String.format("insert into %s(CREATE_DATETIME, APP_NAME, SQL_FRAGMENT, VERSION_NUMBER, OWNER, DESCRIPTION) values('%s', '%s', '%s', '%s', '%s', '%s')", + deploymentTableName, context.creationTime, context.applicationName, context.sqlExpressions.getFirst(), context.getVersionInfo(), Lists.mutable.withAll(context.owners).makeString(","), context.description); + statement.execute(insertSQL); } public String getDeploymentTableName(Connection jdbcConnection) throws SQLException @@ -141,10 +141,10 @@ public String getDeploymentTableName(Connection jdbcConnection) throws SQLExcept return String.format("%s.%s." + deploymentTable, catalogName, deploymentSchema); } - public java.sql.Connection getDeploymentConnection(MutableList profiles, SnowflakeAppArtifact artifact) + public java.sql.Connection getDeploymentConnection(Identity identity, SnowflakeAppArtifact artifact) { RelationalDatabaseConnection connection = extractConnectionFromArtifact(artifact); - return this.connectionManager.getDatabaseConnection(profiles, connection); + return this.connectionManager.getDatabaseConnection(identity, connection); } public RelationalDatabaseConnection extractConnectionFromArtifact(SnowflakeAppArtifact artifact) @@ -152,12 +152,12 @@ public RelationalDatabaseConnection extractConnectionFromArtifact(SnowflakeAppAr return ((SnowflakeAppDeploymentConfiguration)artifact.deploymentConfiguration).connection; } - public ImmutableList getDeployed(MutableList profiles, RelationalDatabaseConnection connection) throws Exception + public ImmutableList getDeployed(Identity identity, RelationalDatabaseConnection connection) throws Exception { ImmutableList deployments = null; LOGGER.info("Querying deployment"); - try (Connection jdbcConnection = this.getDeploymentConnection(profiles, connection)) + try (Connection jdbcConnection = this.getDeploymentConnection(identity, connection)) { deployments = this.getDeployedImpl(jdbcConnection); LOGGER.info("Completed querying deployments successfully"); From 8532e21f2efb8baca5c4102c05a9a48967cc7362 Mon Sep 17 00:00:00 2001 From: Aziem Chawdhary <61746398+aziemchawdhary-gs@users.noreply.github.com> Date: Wed, 25 Oct 2023 15:46:25 +0100 Subject: [PATCH 45/80] Downgrade active Pure protocol to 1_32 (#2407) --- .../finos/legend/engine/protocol/pure/PureClientVersions.java | 2 +- .../finos/legend/engine/protocol/test/TestProtocolUpdates.java | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/PureClientVersions.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/PureClientVersions.java index 5f722504544..5cd5f97d1da 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/PureClientVersions.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/PureClientVersions.java @@ -28,7 +28,7 @@ public class PureClientVersions assert !hasRepeatedVersions(versions) : "Repeated version id :" + versions.toBag().selectByOccurrences(i -> i > 1).toSet().makeString("[", ", ", "]"); } - public static String production = "v1_33_0"; + public static String production = "v1_32_0"; static boolean hasRepeatedVersions(ImmutableList versions) { diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/test/java/org/finos/legend/engine/protocol/test/TestProtocolUpdates.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/test/java/org/finos/legend/engine/protocol/test/TestProtocolUpdates.java index 6b4fbb5a5e2..550f911bbc6 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/test/java/org/finos/legend/engine/protocol/test/TestProtocolUpdates.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/test/java/org/finos/legend/engine/protocol/test/TestProtocolUpdates.java @@ -24,6 +24,6 @@ public class TestProtocolUpdates public void testProductionProtocolVersion() { String productionProtocolVersion = PureClientVersions.production; - Assert.assertEquals("v1_33_0", productionProtocolVersion); + Assert.assertEquals("v1_32_0", productionProtocolVersion); } } From ccf31bb7eac5142db795c53c88e8002d32d16d93 Mon Sep 17 00:00:00 2001 From: Gopichand Kotana <109651657+gs-kotang@users.noreply.github.com> Date: Thu, 26 Oct 2023 12:35:19 +0530 Subject: [PATCH 46/80] Add case function around parameters that return a boolean literal in SybaseIQ (#2398) --- .../sqlQueryToString/sybaseIQExtension.pure | 2 +- .../tests/testSybaseIQIsEmpty.pure | 4 ++-- .../tests/testSybaseIQTDSFilter.pure | 14 ++++++++++++++ .../sqlQueryToString/dbExtension.pure | 17 ++++++++++++++++- 4 files changed, 33 insertions(+), 4 deletions(-) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/sybaseIQExtension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/sybaseIQExtension.pure index 213fc63e865..10c33c2e4e6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/sybaseIQExtension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/sybaseIQExtension.pure @@ -249,7 +249,7 @@ function <> meta::relational::functions::sqlQueryToString::sybas let s = if($isSubSelect && ($sq.fromRow->isNotEmpty() || $sq.toRow->isNotEmpty()), |$sq->rewriteSliceAsWindowFunction(), |$sq); let opStr = if($s.filteringOperation->isEmpty(), |'', |$s.filteringOperation->map(s|$s->wrapAsBooleanOperation($extensions)->processOperation($dbConfig, $format->indent(), ^$config(callingFromFilter = true), $extensions))->filter(s|$s != '')->joinStrings(' <||> ')); - let havingStr = if($s.havingOperation->isEmpty(), |'', |$s.havingOperation->map(s|$s->processOperation($dbConfig, $format->indent(), $config, $extensions))->filter(s|$s != '')->joinStrings(' <||> ')); + let havingStr = if($s.havingOperation->isEmpty(), |'', |$s.havingOperation->map(s|$s->wrapAsBooleanOperation($extensions)->processOperation($dbConfig, $format->indent(), $config, $extensions))->filter(s|$s != '')->joinStrings(' <||> ')); $format.separator + 'select ' + if($s.distinct == true,|'distinct ',|'') + processTop($s, $format, $dbConfig, $extensions) + processSelectColumns($s.columns, $dbConfig, $format->indent(), false, $extensions) + diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQIsEmpty.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQIsEmpty.pure index 08a412e59e2..0a48a0a3765 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQIsEmpty.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQIsEmpty.pure @@ -45,12 +45,12 @@ function <> meta::relational::tests::query::function::sybaseIQ::testD { let result = execute(|TestClass.all()->groupBy([],[agg(x|$x.isValued(), y | $y->count())],['count']), TestMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('select count("root".value is null) as "count" from testTable as "root"', $result->sqlRemoveFormatting()); - assertEquals('select count(case when ("root".value is null) then \'true\' else \'false\' end) as "count" from testTable as "root"', meta::relational::functions::sqlstring::toSQLString(|TestClass.all()->groupBy([],[agg(x|$x.isValued(), y | $y->count())],['count']), TestMapping, meta::relational::runtime::DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions())); + assertEquals('select count(case when "root".value is null then \'true\' else \'false\' end) as "count" from testTable as "root"', meta::relational::functions::sqlstring::toSQLString(|TestClass.all()->groupBy([],[agg(x|$x.isValued(), y | $y->count())],['count']), TestMapping, meta::relational::runtime::DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions())); } function <> meta::relational::tests::query::function::sybaseIQ::testDerivedCountWithIsEmptyNestedInIf():Boolean[1] { let result = execute(|TestClass.all()->groupBy([],[agg(x|$x.isValuedNested(), y | $y->count())],['count']), TestMapping, meta::external::store::relational::tests::testRuntime(), meta::relational::extension::relationalExtensions()); assertEquals('select count(case when "root".value is null then true else false end) as "count" from testTable as "root"', $result->sqlRemoveFormatting()); - assertEquals('select count(case when ("root".value is null) then \'true\' else \'false\' end) as "count" from testTable as "root"', meta::relational::functions::sqlstring::toSQLString(|TestClass.all()->groupBy([],[agg(x|$x.isValued(), y | $y->count())],['count']), TestMapping, meta::relational::runtime::DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions())); + assertEquals('select count(case when "root".value is null then \'true\' else \'false\' end) as "count" from testTable as "root"', meta::relational::functions::sqlstring::toSQLString(|TestClass.all()->groupBy([],[agg(x|$x.isValued(), y | $y->count())],['count']), TestMapping, meta::relational::runtime::DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions())); } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQTDSFilter.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQTDSFilter.pure index eaf73862e89..a4465e9cd2f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQTDSFilter.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/src/main/resources/core_relational_sybaseiq/relational/sqlQueryToString/tests/testSybaseIQTDSFilter.pure @@ -30,3 +30,17 @@ function <> meta::relational::tests::tds::sybaseIQ::testFilterOnDates simpleRelationalMapping, DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); assertEquals('select "root".settlementDateTime as "settlementDateTime" from tradeTable as "root" where "root".settlementDateTime < convert(DATETIME, \'2015-01-01 00:00:00.000\', 121)', $sql); } + +function <> meta::relational::tests::tds::sybaseIQ::testFirstNotNullFunction():Boolean[1] +{ + let sql =toSQLString(|Person.all()->project(p|$p.firstName,'firstName')->filter(p | meta::pure::tds::extensions::firstNotNull([$p.getString('firstName')->in(['John','Peter','Anthony']), false]) != false), + simpleRelationalMapping, meta::relational::runtime::DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); + assertEquals('select "root".FIRSTNAME as "firstName" from personTable as "root" where (coalesce(case when "root".FIRSTNAME in (\'John\', \'Peter\', \'Anthony\') then \'true\' else \'false\' end, \'false\') <> \'false\' OR coalesce(case when "root".FIRSTNAME in (\'John\', \'Peter\', \'Anthony\') then \'true\' else \'false\' end, \'false\') is null)', $sql); +} + +function <> meta::relational::tests::tds::sybaseIQ::testFirstNotNullFunctionWithinWhenClause():Boolean[1] +{ + let sql =toSQLString(|Person.all()->project(p|$p.firstName,'firstName')->filter(p | + if(meta::pure::tds::extensions::firstNotNull([$p.getString('firstName')->in(['John','Peter','Anthony']),false ])->toOne(), | true,| false)), simpleRelationalMapping, meta::relational::runtime::DatabaseType.SybaseIQ, meta::relational::extension::relationalExtensions()); + assertEquals('select "root".FIRSTNAME as "firstName" from personTable as "root" where case when coalesce(case when "root".FIRSTNAME in (\'John\', \'Peter\', \'Anthony\') then \'true\' else \'false\' end, \'false\') = \'true\' then \'true\' else \'false\' end = \'true\'', $sql); +} \ No newline at end of file diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbExtension.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbExtension.pure index b41a4d9740f..dcac2773f10 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbExtension.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbExtension.pure @@ -609,6 +609,19 @@ function meta::relational::functions::sqlQueryToString::wrapAsBooleanOperation(e if ($e->isBooleanOperation($extensions), | $e, | ^DynaFunction(name ='equal', parameters=[$e, ^Literal(value=true)]);); } +function meta::relational::functions::sqlQueryToString::maybeWrapAsBooleanCaseOperation(e:RelationalOperationElement[1], sgc:SqlGenerationContext[1]):RelationalOperationElement[1] +{ + if ($sgc.dbConfig.dbExtension.isBooleanLiteralSupported, + |$e, + |$e->wrapAsBooleanCaseOperation($sgc.extensions) + ); +} + +function meta::relational::functions::sqlQueryToString::wrapAsBooleanCaseOperation(e:RelationalOperationElement[1], extensions:Extension[*]):RelationalOperationElement[1] +{ + if ($e->isBooleanOperation($extensions), | ^DynaFunction(name='case', parameters = [$e, ^Literal(value=true), ^Literal(value=false)]), | $e); +} + function meta::relational::functions::sqlQueryToString::isBooleanOperation(relationalElement:RelationalOperationElement[1], extensions:Extension[*]):Boolean[1] { $relationalElement->match($extensions.moduleExtension('relational')->cast(@RelationalExtension).sqlQueryToString_isBooleanOperation->concatenate([ @@ -690,7 +703,9 @@ function <> meta::relational::functions::sqlQueryToString::proce | if($func.name == 'if', | $func.parameters->head()->map(p | $p->maybeWrapAsBooleanOperation($sgc))->concatenate($func.parameters->tail()), - | $func.parameters + | if (!$func->isBooleanOperation($sgc.extensions), + | $func.parameters->map(p | $p->maybeWrapAsBooleanCaseOperation($sgc)), + | $func.parameters) )); let config = $sgc.config; let generationState = $sgc.generationState; From 76507a2709c90d939dafc7e115cda04839b92385 Mon Sep 17 00:00:00 2001 From: horbe Date: Thu, 26 Oct 2023 15:03:29 -0400 Subject: [PATCH 47/80] Handle hierarchies in GraphQL SDL to Pure roundtrip (#2354) --- .../pure/corefunctions/metaExtension.pure | 34 ++- .../graphQL/grammar/from/antlr4/GraphQL.g4 | 2 +- .../grammar/from/GraphQLGrammarParser.java | 1 + .../grammar/to/GraphQLGrammarComposer.java | 2 +- .../test/roundtrip/TestGraphQLRoundtrip.java | 2 +- .../sdl/metamodel.pure | 1 + .../binding/bindingCommon.pure | 16 + .../binding/fromPure/sdl/fromPure_sdl.pure | 54 +++- .../fromPure/sdl/tests/simpleTest.pure | 215 +++++++++++++ ...peNameTest.pure => bindingCommonTest.pure} | 46 +-- .../binding/toPure/sdl/tests/simpleTest.pure | 283 ++++++++++++++++++ .../toPure/sdl/tests/typeCompatibility.pure | 39 +++ .../binding/toPure/sdl/toPure_sdl.pure | 140 ++++++--- .../serialization/serialization.pure | 4 +- 14 files changed, 756 insertions(+), 83 deletions(-) rename legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/tests/{inputTypeNameTest.pure => bindingCommonTest.pure} (78%) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/metaExtension.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/metaExtension.pure index 6bee2a3fe0e..d32252f31ec 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/metaExtension.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/corefunctions/metaExtension.pure @@ -121,15 +121,37 @@ function {doc.doc = 'Get all properties on the provided type / class'} ->concatenate($class.qualifiedPropertiesFromAssociations) } -function {doc.doc = 'Get all nested types present in this property tree of this class'} +function {doc.doc = 'Get all nested types present in the property tree of this class or its hierarchy.'} meta::pure::functions::meta::allNestedPropertyTypes(class : Class[1]) : Type[*] { - let propertyTypes = $class.properties->map(p | $p.genericType.rawType->toOne()); + let propertyTypes = $class->meta::pure::functions::meta::hierarchicalProperties()->map(p | $p.genericType.rawType->toOne()); let propertiesThatAreClasses = $propertyTypes->filter(type | $type->instanceOf(Class))->cast(@Class); - $class->concatenate($propertyTypes->concatenate($propertiesThatAreClasses->map(class |$class->allNestedPropertyTypes()))); + $class->concatenate($class->validGeneralizations())->concatenate($propertyTypes->concatenate($propertiesThatAreClasses->map(class |$class->allNestedPropertyTypes())))->removeDuplicates(); } -function {doc.doc = 'Get defined and inheritied properties on the provided class'} +function {doc.doc = 'Get the explicitly defined generalizations.'} + meta::pure::functions::meta::validGeneralizations(type : Type[1]) : Class[*] +{ + $type.generalizations.general.rawType->filter(c | $c != Any && $c != Enum)->cast(@Class); +} + +function {doc.doc = 'Recursively get all explicitly defined generalizations.'} + meta::pure::functions::meta::hierarchicalAllGeneralizations(type : Type[1]) : Class[*] +{ + let oneLevel = $type->validGeneralizations(); + $oneLevel->concatenate($oneLevel->map(c | $c->validGeneralizations()))->removeDuplicates(); +} + +function {doc.doc = 'Get all inherited properties on the provided class'} + meta::pure::functions::meta::hierarchicalAllProperties(class:Class[1]):AbstractProperty[*] +{ + if($class==Any, + | [], + | $class->allProperties()->concatenate($class.generalizations->map(g| hierarchicalProperties($g.general.rawType->cast(@Class)->toOne())))->removeDuplicates() + ); +} + +function {doc.doc = 'Get defined and inherited properties on the provided class'} meta::pure::functions::meta::hierarchicalProperties(class:Class[1]):Property[*] { if($class==Any, @@ -138,7 +160,7 @@ function {doc.doc = 'Get defined and inheritied properties on the provided class ); } -function {doc.doc = 'Get defined and inheritied properties via associations on the provided class'} +function {doc.doc = 'Get defined and inherited properties via associations on the provided class'} meta::pure::functions::meta::hierarchicalPropertiesFromAssociations(class:Class[1]):Property[*] { if($class==Any, @@ -147,7 +169,7 @@ function {doc.doc = 'Get defined and inheritied properties via associations on t ); } -function {doc.doc = 'Get defined and inheritied qualified properties on the provided class'} +function {doc.doc = 'Get defined and inherited qualified properties on the provided class'} meta::pure::functions::meta::hierarchicalQualifiedProperties(class:Class[1]):AbstractProperty[*] { if($class==Any, diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/src/main/antlr4/org/finos/legend/engine/language/graphQL/grammar/from/antlr4/GraphQL.g4 b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/src/main/antlr4/org/finos/legend/engine/language/graphQL/grammar/from/antlr4/GraphQL.g4 index 754ba57845f..1d735021fb4 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/src/main/antlr4/org/finos/legend/engine/language/graphQL/grammar/from/antlr4/GraphQL.g4 +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/src/main/antlr4/org/finos/legend/engine/language/graphQL/grammar/from/antlr4/GraphQL.g4 @@ -223,7 +223,7 @@ objectTypeExtension: ; //https://spec.graphql.org/June2018/#sec-Interfaces -interfaceTypeDefinition: description? INTERFACE name directives? fieldsDefinition?; +interfaceTypeDefinition: description? INTERFACE name implementsInterfaces? directives? fieldsDefinition?; //https://spec.graphql.org/June2018/#sec-Interface-Extensions interfaceTypeExtension: EXTEND INTERFACE name directives? fieldsDefinition diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/src/main/java/org/finos/legend/engine/language/graphQL/grammar/from/GraphQLGrammarParser.java b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/src/main/java/org/finos/legend/engine/language/graphQL/grammar/from/GraphQLGrammarParser.java index ca070583638..7c3f3407a71 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/src/main/java/org/finos/legend/engine/language/graphQL/grammar/from/GraphQLGrammarParser.java +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/src/main/java/org/finos/legend/engine/language/graphQL/grammar/from/GraphQLGrammarParser.java @@ -374,6 +374,7 @@ private InterfaceTypeDefinition visitInterfaceTypeDefinition(GraphQLParser.Inter InterfaceTypeDefinition interfaceTypeDefinition = new InterfaceTypeDefinition(); interfaceTypeDefinition.name = interfaceTypeDefinitionContext.name().getText(); interfaceTypeDefinition.fields = ListIterate.collect(interfaceTypeDefinitionContext.fieldsDefinition().fieldDefinition(), this::visitFieldsDefinitionContext); + interfaceTypeDefinition._implements = visitImplementInterface(interfaceTypeDefinitionContext.implementsInterfaces(), Lists.mutable.empty()).reverseThis(); return interfaceTypeDefinition; } diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/src/main/java/org/finos/legend/engine/language/graphQL/grammar/to/GraphQLGrammarComposer.java b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/src/main/java/org/finos/legend/engine/language/graphQL/grammar/to/GraphQLGrammarComposer.java index 60fde75a856..c029af7f07d 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/src/main/java/org/finos/legend/engine/language/graphQL/grammar/to/GraphQLGrammarComposer.java +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/src/main/java/org/finos/legend/engine/language/graphQL/grammar/to/GraphQLGrammarComposer.java @@ -103,7 +103,7 @@ public String visit(UnionTypeDefinition unionTypeDefinition) @Override public String visit(InterfaceTypeDefinition interfaceTypeDefinition) { - return "interface " + interfaceTypeDefinition.name + " {\n" + + return "interface " + interfaceTypeDefinition.name + (interfaceTypeDefinition._implements.isEmpty() ? "" : " implements " + ListAdapter.adapt(interfaceTypeDefinition._implements).makeString(" & ")) + " {\n" + ListIterate.collect(interfaceTypeDefinition.fields, f -> " " + renderField(f)).makeString("\n") + "\n}"; } diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/src/test/java/org/finos/legend/engine/language/graphQL/grammar/test/roundtrip/TestGraphQLRoundtrip.java b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/src/test/java/org/finos/legend/engine/language/graphQL/grammar/test/roundtrip/TestGraphQLRoundtrip.java index 8a87f430cdc..5d5c6e706e7 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/src/test/java/org/finos/legend/engine/language/graphQL/grammar/test/roundtrip/TestGraphQLRoundtrip.java +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/src/test/java/org/finos/legend/engine/language/graphQL/grammar/test/roundtrip/TestGraphQLRoundtrip.java @@ -83,7 +83,7 @@ public void testParsingError() @Test public void testInterfaceRoundtrip() { - check("interface Car {\n" + + check("interface Car implements Automobile {\n" + " id: ID!\n" + " name: String!\n" + " values: [String]\n" + diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/src/main/resources/core_external_query_graphql_metamodel/sdl/metamodel.pure b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/src/main/resources/core_external_query_graphql_metamodel/sdl/metamodel.pure index b5fc7db1371..a9b5bfa34d1 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/src/main/resources/core_external_query_graphql_metamodel/sdl/metamodel.pure +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/src/main/resources/core_external_query_graphql_metamodel/sdl/metamodel.pure @@ -179,6 +179,7 @@ Class meta::external::query::graphQL::metamodel::sdl::typeSystem::InterfaceTypeD name: String[1]; directives: meta::external::query::graphQL::metamodel::sdl::Directive[*]; fields: meta::external::query::graphQL::metamodel::sdl::typeSystem::FieldDefinition[*]; + implements: String[*]; } Class meta::external::query::graphQL::metamodel::sdl::value::ListValue extends meta::external::query::graphQL::metamodel::sdl::value::Value diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/bindingCommon.pure b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/bindingCommon.pure index 868793bfa66..7986292093f 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/bindingCommon.pure +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/bindingCommon.pure @@ -26,6 +26,17 @@ function meta::external::query::graphQL::binding::fromInputTypeName(inputTypeNam if($inputTypeName->endsWith('Input'), | $inputTypeName->substring(0, $inputTypeName->length() - 5), | '') } +// These two functions must roundtrip +function meta::external::query::graphQL::binding::toInterfaceTypeName(pureClassName: String[1]) : String[1] +{ + $pureClassName + 'Interface' +} + +function meta::external::query::graphQL::binding::fromInterfaceTypeName(interfaceTypeName: String[1]) : String[1] +{ + if($interfaceTypeName->endsWith('Interface'), | $interfaceTypeName->substring(0, $interfaceTypeName->length() - 9), | '') +} + function meta::external::query::graphQL::binding::purePrimitivesToGraphQLScalarTypes(): Pair[*] { [ @@ -61,4 +72,9 @@ function meta::external::query::graphQL::binding::temporalityToDirectives(): Map pair('businesstemporal', ^DirectiveDefinition(name = 'businesstemporal', typeSystemLocation = [TypeSystemDirectiveLocation.OBJECT, TypeSystemDirectiveLocation.INPUT_OBJECT])), pair('processingtemporal', ^DirectiveDefinition(name = 'processingtemporal', typeSystemLocation = [TypeSystemDirectiveLocation.OBJECT, TypeSystemDirectiveLocation.INPUT_OBJECT])) ]->newMap(); +} + +function meta::external::query::graphQL::binding::hierarchyDirective(): DirectiveDefinition[1] +{ + ^DirectiveDefinition(name = 'extends', typeSystemLocation = [TypeSystemDirectiveLocation.OBJECT, TypeSystemDirectiveLocation.INPUT_OBJECT]); } \ No newline at end of file diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/fromPure/sdl/fromPure_sdl.pure b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/fromPure/sdl/fromPure_sdl.pure index 5134624a040..fe18b826712 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/fromPure/sdl/fromPure_sdl.pure +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/fromPure/sdl/fromPure_sdl.pure @@ -2,6 +2,7 @@ import meta::pure::model::unit::*; import meta::external::query::graphQL::binding::*; import meta::external::query::graphQL::binding::fromPure::sdl::*; import meta::external::query::graphQL::metamodel::sdl::*; +import meta::external::query::graphQL::metamodel::sdl::value::*; import meta::external::query::graphQL::metamodel::sdl::typeSystem::*; import meta::external::query::graphQL::metamodel::sdl::executable::*; @@ -92,6 +93,8 @@ function meta::external::query::graphQL::binding::fromPure::sdl::transformPureTo ->distinct() ->filter(t | $t->instanceOf(Class)); + let extendedClasses = $allTypes->map(t | $t->validGeneralizations()); + // Build types let graphQLTypes = $allTypes->map(c | $c->match( @@ -102,13 +105,13 @@ function meta::external::query::graphQL::binding::fromPure::sdl::transformPureTo buildInputObjectTypeDefinition($c)->concatenate( if ($classReturnTypes->contains($c), // Used as both -> needs both input and output types - | buildObjectTypeDefinition($c), + | buildObjectTypeDefinition($c, $extendedClasses->contains($c)), // Used as input -> needs input | [] ) ), // Not used as input --> needs output (unused types will result in output types) - | buildObjectTypeDefinition($c) + | buildObjectTypeDefinition($c, $extendedClasses->contains($c)) ), e:Enumeration[1] | ^EnumTypeDefinition( @@ -130,15 +133,20 @@ function meta::external::query::graphQL::binding::fromPure::sdl::transformPureTo ->distinct() ->map(s | temporalityToDirectives()->get($s)->toOne()); + let interfaces = $extendedClasses->map(c | $c->buildInterfaceTypeDefinition()); + $partitioned.second.values // Remove duplicated scalar definitions ->concatenate($partitioned.first.values->cast(@ScalarTypeDefinition)->removeDuplicatesBy(s | $s.name->toOne())) ->concatenate($processingDirectives) + ->concatenate($interfaces) + ->concatenate(if($interfaces->isNotEmpty(), | hierarchyDirective(), | [])) ->meta::pure::functions::collection::sortBy(t | $t->match( [ o : ObjectTypeDefinition[1] | $o.name, i : InputObjectTypeDefinition[1] | $i.name, + i : InterfaceTypeDefinition[1] | $i.name, e : EnumTypeDefinition[1] | $e.name, s : ScalarTypeDefinition[1] | $s.name, d : DirectiveDefinition[1] | $d.name @@ -165,7 +173,6 @@ function <> meta::external::query::graphQL::binding::fromPure::s ->map(s | $s.value) } - function <> meta::external::query::graphQL::binding::fromPure::sdl::isValidPropertyForGraphQL(p: AbstractProperty[1]): Boolean[1] { !$p.name->in(['processingDate', 'businessDate', 'milestoning']); @@ -186,7 +193,7 @@ function <> meta::external::query::graphQL::binding::fromPure::s function <> meta::external::query::graphQL::binding::fromPure::sdl::buildInputObjectTypeDefinition(c: Class[1]): TypeSystemDefinition[*] { - let props = $c->allProperties()->filter(p | $p->isValidPropertyForGraphQL()); + let props = $c->hierarchicalAllProperties()->filter(p | $p->isValidPropertyForGraphQL()); let nonBuiltInScalars = $props->buildNonBuiltInGraphQLScalars(); let temporalStereotypes = $c->getTemporalStereotypes(); @@ -194,7 +201,7 @@ function <> meta::external::query::graphQL::binding::fromPure::s ->concatenate( ^InputObjectTypeDefinition( name = toInputTypeName($c.name->toOne()), - directives = if($temporalStereotypes->isEmpty(), | [], | $temporalStereotypes->map(s | temporalityToDirectives()->get($s)->toOne())->map(def | ^Directive(name = $def.name))), + directives = $temporalStereotypes->map(s | temporalityToDirectives()->get($s)->toOne())->map(def | ^Directive(name = $def.name))->concatenate(buildHierarchyDirective($c, true)), fields = $props ->map(p | ^InputValueDefinition @@ -205,9 +212,9 @@ function <> meta::external::query::graphQL::binding::fromPure::s )); } -function <> meta::external::query::graphQL::binding::fromPure::sdl::buildObjectTypeDefinition(c: Class[1]): TypeSystemDefinition[*] +function <> meta::external::query::graphQL::binding::fromPure::sdl::buildObjectTypeDefinition(c: Class[1], isExtended: Boolean[1]): TypeSystemDefinition[*] { - let props = $c->allProperties()->filter(p | $p->isValidPropertyForGraphQL()); + let props = $c->hierarchicalAllProperties()->filter(p | $p->isValidPropertyForGraphQL()); let nonBuiltInScalars = $props->buildNonBuiltInGraphQLScalars(); let temporalStereotypes = $c->getTemporalStereotypes(); @@ -215,9 +222,9 @@ function <> meta::external::query::graphQL::binding::fromPure::s ->concatenate( ^ObjectTypeDefinition( name = $c.name->toOne(), - directives = if($temporalStereotypes->isEmpty(), | [], | $temporalStereotypes->map(s | temporalityToDirectives()->get($s)->toOne())->map(def | ^Directive(name = $def.name))), - fields = $c->allProperties() - ->filter(p | $p->isValidPropertyForGraphQL()) + implements = if($isExtended, | $c.name, | $c->validGeneralizations()->map(g | $g.name))->map(n | $n->toInterfaceTypeName()), + directives = $temporalStereotypes->map(s | temporalityToDirectives()->get($s)->toOne())->map(def | ^Directive(name = $def.name))->concatenate(buildHierarchyDirective($c, false)), + fields = $props ->map(p | ^FieldDefinition ( @@ -241,6 +248,27 @@ function <> meta::external::query::graphQL::binding::fromPure::s )); } +function <> meta::external::query::graphQL::binding::fromPure::sdl::buildInterfaceTypeDefinition(c: Class[1]): TypeSystemDefinition[*] +{ + let props = $c->hierarchicalAllProperties()->filter(p | $p->isValidPropertyForGraphQL()); + + let temporalStereotypes = $c->getTemporalStereotypes(); + ^InterfaceTypeDefinition( + name = $c.name->toOne()->toInterfaceTypeName(), + implements = $c->validGeneralizations()->map(g | $g.name)->map(n | $n->toInterfaceTypeName()), + directives = $temporalStereotypes->map(s | temporalityToDirectives()->get($s)->toOne())->map(def | ^Directive(name = $def.name))->concatenate(buildHierarchyDirective($c, false)), + fields = $props + ->map(p | + ^FieldDefinition + ( + name = $p.name->toOne(), + type = buildObjectTypeCompatibleTypeReference($p->functionReturnType(), $p->functionReturnMultiplicity()), + argumentDefinitions = [] + ) + ) + ); +} + function <> meta::external::query::graphQL::binding::fromPure::sdl::buildObjectTypeCompatibleTypeReference(type:meta::pure::metamodel::type::generics::GenericType[1], mul:Multiplicity[1]): TypeReference[1] { buildTypeReference($type, $mul, false) @@ -273,6 +301,11 @@ function <> meta::external::query::graphQL::binding::fromPure::s ); } +function meta::external::query::graphQL::binding::fromPure::sdl::buildHierarchyDirective(c: Class[1], forInput: Boolean[1]):Directive[*] +{ + $c->validGeneralizations()->map(g | ^Directive(name = meta::external::query::graphQL::binding::hierarchyDirective().name, arguments = ^Argument(name = 'class', value = ^StringValue(value = if($forInput, |$g.name->toOne()->toInputTypeName(), | $g.name->toOne()))))); +} + function meta::external::query::graphQL::binding::fromPure::sdl::findTypes(pElems:meta::pure::metamodel::PackageableElement[*]):meta::pure::metamodel::type::Type[*] { $pElems @@ -280,4 +313,3 @@ function meta::external::query::graphQL::binding::fromPure::sdl::findTypes(pElem ->cast(@meta::pure::metamodel::type::Type) ->removeDuplicates() } - diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/fromPure/sdl/tests/simpleTest.pure b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/fromPure/sdl/tests/simpleTest.pure index 1584f315000..44d469792c8 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/fromPure/sdl/tests/simpleTest.pure +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/fromPure/sdl/tests/simpleTest.pure @@ -21,6 +21,23 @@ Class meta::external::query::graphQL::binding::fromPure::sdl::tests::model::Pers age : Integer[1]; } +Class meta::external::query::graphQL::binding::fromPure::sdl::tests::model::Employee extends meta::external::query::graphQL::binding::fromPure::sdl::tests::model::Person +{ + title: String[1]; + startDate: StrictDate[1]; +} + +Class meta::external::query::graphQL::binding::fromPure::sdl::tests::model::GSEmployee extends meta::external::query::graphQL::binding::fromPure::sdl::tests::model::Employee +{ + division: String[1]; +} + +Class meta::external::query::graphQL::binding::fromPure::sdl::tests::model::Team +{ + name: String[1]; + members: Employee[1..*]; +} + Class meta::external::query::graphQL::binding::fromPure::sdl::tests::model::ClassWithPrimitiveTypes { string: String[1]; @@ -54,6 +71,19 @@ Class <> meta::external::query::graphQL::binding::fromPure::sd upsertFirm(firm:Firm[1]){Firm.all()->first()}:Firm[0..1]; } +Class <> meta::external::query::graphQL::binding::fromPure::sdl::tests::model::QueryHierarchy +{ + teamByName(n:String[1]){Team.all()->filter(z|$z.name == $n)->first()}:Team[0..1]; + employeeByFirstName(n:String[1]){Employee.all()->filter(z|$z.firstName == $n)->first()}:Employee[0..1]; +} + +Class <> meta::external::query::graphQL::binding::fromPure::sdl::tests::model::MutationHierarchy +{ + // Dummy implementation + upsertTeam(team:Team[1]){Team.all()->first()}:Team[0..1]; + upsertEmployee(employee:Employee[1]){Employee.all()->first()}:Employee[0..1]; +} + function <> meta::external::query::graphQL::binding::fromPure::sdl::tests::testQuery():Boolean[1] { let res = typesToGraphQLString([Query, Firm, Person, IncType]->cast(@PackageableElement)); @@ -208,6 +238,191 @@ function <> meta::external::query::graphQL::binding::fromPure::sdl::t $res); } +function <> meta::external::query::graphQL::binding::fromPure::sdl::tests::testClassWithInheritance():Boolean[1] +{ + let res = typesToGraphQLString([Employee, Person]); + + assertEquals( + 'type Employee implements PersonInterface @extends(class: "Person") {\n' + + ' title: String!\n' + + ' startDate: StrictDate!\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'type Person implements PersonInterface {\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'interface PersonInterface {\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'scalar StrictDate\n' + + '\n' + + 'directive @extends on OBJECT | INPUT_OBJECT', + $res); +} + +function <> meta::external::query::graphQL::binding::fromPure::sdl::tests::testClassWithDeepInheritance():Boolean[1] +{ + let res = typesToGraphQLString([GSEmployee, Employee, Person]); + + assertEquals( + 'type Employee implements EmployeeInterface @extends(class: "Person") {\n' + + ' title: String!\n' + + ' startDate: StrictDate!\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'interface EmployeeInterface implements PersonInterface {\n' + + ' title: String!\n' + + ' startDate: StrictDate!\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'type GSEmployee implements EmployeeInterface @extends(class: "Employee") {\n' + + ' division: String!\n' + + ' title: String!\n' + + ' startDate: StrictDate!\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'type Person implements PersonInterface {\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'interface PersonInterface {\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'scalar StrictDate\n' + + '\n' + + 'directive @extends on OBJECT | INPUT_OBJECT', + $res); +} + +function <> meta::external::query::graphQL::binding::fromPure::sdl::tests::testPropertyWithInheritance():Boolean[1] +{ + let res = typesToGraphQLString([Team, Employee, Person]); + + assertEquals( + 'type Employee implements PersonInterface @extends(class: "Person") {\n' + + ' title: String!\n' + + ' startDate: StrictDate!\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'type Person implements PersonInterface {\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'interface PersonInterface {\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'scalar StrictDate\n' + + '\n' + + 'type Team {\n' + + ' name: String!\n' + + ' members: [Employee!]!\n' + + '}\n' + + '\n' + + 'directive @extends on OBJECT | INPUT_OBJECT', + $res); +} + +function <> meta::external::query::graphQL::binding::fromPure::sdl::tests::testQueryAndMutationWithHierarchy():Boolean[1] +{ + let res = typesToGraphQLString([QueryHierarchy, MutationHierarchy, Team, Employee, Person]); + + assertEquals( + 'type Employee implements PersonInterface @extends(class: "Person") {\n' + + ' title: String!\n' + + ' startDate: StrictDate!\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'input EmployeeInput @extends(class: "PersonInput") {\n' + + ' title: String!\n' + + ' startDate: StrictDate!\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'type MutationHierarchy {\n' + + ' upsertTeam(team: TeamInput!): Team\n' + + ' upsertEmployee(employee: EmployeeInput!): Employee\n' + + '}\n' + + '\n' + + 'type Person implements PersonInterface {\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'input PersonInput {\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'interface PersonInterface {\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'type QueryHierarchy {\n' + + ' teamByName(n: String!): Team\n' + + ' employeeByFirstName(n: String!): Employee\n' + + '}\n' + + '\n' + + 'scalar StrictDate\n' + + '\n' + + 'type Team {\n' + + ' name: String!\n' + + ' members: [Employee!]!\n' + + '}\n' + + '\n' + + 'input TeamInput {\n' + + ' name: String!\n' + + ' members: [EmployeeInput!]!\n' + + '}\n' + + '\n' + + 'directive @extends on OBJECT | INPUT_OBJECT\n' + + '\n' + + 'schema {\n' + + ' query : QueryHierarchy\n' + + ' mutation : MutationHierarchy\n' + + '}', + $res); +} + function <> meta::external::query::graphQL::binding::fromPure::sdl::tests::typesToGraphQLString(types: PackageableElement[*]): String[1] { meta::external::query::graphQL::binding::fromPure::sdl::transformPureToGraphQLSDL($types) diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/tests/inputTypeNameTest.pure b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/tests/bindingCommonTest.pure similarity index 78% rename from legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/tests/inputTypeNameTest.pure rename to legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/tests/bindingCommonTest.pure index da3ee40d510..61989c85d21 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/tests/inputTypeNameTest.pure +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/tests/bindingCommonTest.pure @@ -1,21 +1,27 @@ -// Copyright 2023 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::external::query::graphQL::binding::*; - -function <> meta::external::query::graphQL::binding::tests::testInputTypeNameRoundTrip() : Boolean[1] -{ - let testTypeName = 'test'; - assertEquals($testTypeName, fromInputTypeName(toInputTypeName($testTypeName))); +// Copyright 2023 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::external::query::graphQL::binding::*; + +function <> meta::external::query::graphQL::binding::tests::testInputTypeNameRoundTrip() : Boolean[1] +{ + let testTypeName = 'test'; + assertEquals($testTypeName, fromInputTypeName(toInputTypeName($testTypeName))); +} + +function <> meta::external::query::graphQL::binding::tests::testInterfaceTypeNameRoundTrip() : Boolean[1] +{ + let testTypeName = 'test'; + assertEquals($testTypeName, fromInterfaceTypeName(toInterfaceTypeName($testTypeName))); } \ No newline at end of file diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/toPure/sdl/tests/simpleTest.pure b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/toPure/sdl/tests/simpleTest.pure index 1d2c60232d1..1f34e75abd9 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/toPure/sdl/tests/simpleTest.pure +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/toPure/sdl/tests/simpleTest.pure @@ -219,6 +219,289 @@ function <> meta::external::query::graphQL::binding::toPure::sdl::tes $pureTypes); } +function <> meta::external::query::graphQL::binding::toPure::sdl::tests::testClassWithInheritance():Boolean[1] +{ + let pureTypes = + graphQLToPure( + '#GQL{' + + 'type Employee implements PersonInterface @extends(class: "Person") {\n' + + ' title: String!\n' + + ' startDate: StrictDate!\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'type Person implements PersonInterface {\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'interface PersonInterface {\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'scalar StrictDate\n' + + '\n' + + 'directive @extends on OBJECT | INPUT_OBJECT\n' + + '}#', + 'meta::external::query::graphQL::metamodel::sql' + ); + + assertEquals( + 'Class meta::external::query::graphQL::metamodel::sql::Employee extends meta::external::query::graphQL::metamodel::sql::Person\n' + + '{\n' + + ' title : String[1];\n' + + ' startDate : StrictDate[1];\n' + + '}\n' + + '\n' + + 'Class meta::external::query::graphQL::metamodel::sql::Person\n' + + '{\n' + + ' firstName : String[0..1];\n' + + ' lastName : String[1];\n' + + ' age : Integer[1];\n' + + '}', + $pureTypes); +} + +function <> meta::external::query::graphQL::binding::toPure::sdl::tests::testPropertyWithInheritance():Boolean[1] +{ + let pureTypes = + graphQLToPure( + '#GQL{' + + 'type Employee implements PersonInterface @extends(class: "Person") {\n' + + ' title: String!\n' + + ' startDate: StrictDate!\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'type Person implements PersonInterface {\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'interface PersonInterface {\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'scalar StrictDate\n' + + '\n' + + 'type Team {\n' + + ' name: String!\n' + + ' members: [Employee!]!\n' + + '}\n' + + '\n' + + 'directive @extends on OBJECT | INPUT_OBJECT\n' + + '}#', + 'meta::external::query::graphQL::metamodel::sql' + ); + + assertEquals( + 'Class meta::external::query::graphQL::metamodel::sql::Employee extends meta::external::query::graphQL::metamodel::sql::Person\n' + + '{\n' + + ' title : String[1];\n' + + ' startDate : StrictDate[1];\n' + + '}\n' + + '\n' + + 'Class meta::external::query::graphQL::metamodel::sql::Person\n' + + '{\n' + + ' firstName : String[0..1];\n' + + ' lastName : String[1];\n' + + ' age : Integer[1];\n' + + '}\n' + + '\n' + + 'Class meta::external::query::graphQL::metamodel::sql::Team\n' + + '{\n' + + ' name : String[1];\n' + + ' members : meta::external::query::graphQL::metamodel::sql::Employee[*];\n' + + '}', + $pureTypes); +} + + +function <> meta::external::query::graphQL::binding::toPure::sdl::tests::testClassWithDeepInheritance():Boolean[1] +{ + let pureTypes = + graphQLToPure( + '#GQL{' + + 'type Employee implements EmployeeInterface @extends(class: "Person") {\n' + + ' title: String!\n' + + ' startDate: StrictDate!\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'interface EmployeeInterface implements PersonInterface {\n' + + ' title: String!\n' + + ' startDate: StrictDate!\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'type GSEmployee implements EmployeeInterface @extends(class: "Employee") {\n' + + ' division: String!\n' + + ' title: String!\n' + + ' startDate: StrictDate!\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'type Person implements PersonInterface {\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'interface PersonInterface {\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'scalar StrictDate\n' + + '\n' + + 'directive @extends on OBJECT | INPUT_OBJECT\n' + + '}#', + 'meta::external::query::graphQL::metamodel::sql' + ); + + assertEquals( + 'Class meta::external::query::graphQL::metamodel::sql::Employee extends meta::external::query::graphQL::metamodel::sql::Person\n' + + '{\n' + + ' title : String[1];\n' + + ' startDate : StrictDate[1];\n' + + '}\n' + + '\n' + + 'Class meta::external::query::graphQL::metamodel::sql::GSEmployee extends meta::external::query::graphQL::metamodel::sql::Employee\n' + + '{\n' + + ' division : String[1];\n' + + '}\n' + + '\n' + + 'Class meta::external::query::graphQL::metamodel::sql::Person\n' + + '{\n' + + ' firstName : String[0..1];\n' + + ' lastName : String[1];\n' + + ' age : Integer[1];\n' + + '}', + $pureTypes); +} + + +function <> meta::external::query::graphQL::binding::toPure::sdl::tests::testQueryAndMutationWithHierarchy():Boolean[1] +{ + let pureTypes = + graphQLToPure( + '#GQL{' + + 'type Employee implements PersonInterface @extends(class: "Person") {\n' + + ' title: String!\n' + + ' startDate: StrictDate!\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'input EmployeeInput @extends(class: "PersonInput") {\n' + + ' title: String!\n' + + ' startDate: StrictDate!\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'type MutationHierarchy {\n' + + ' upsertTeam(team: TeamInput!): Team\n' + + ' upsertEmployee(employee: EmployeeInput!): Employee\n' + + '}\n' + + '\n' + + 'type Person implements PersonInterface {\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'input PersonInput {\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'interface PersonInterface {\n' + + ' firstName: String\n' + + ' lastName: String!\n' + + ' age: Int!\n' + + '}\n' + + '\n' + + 'type QueryHierarchy {\n' + + ' teamByName(n: String!): Team\n' + + ' employeeByFirstName(n: String!): Employee\n' + + '}\n' + + '\n' + + 'scalar StrictDate\n' + + '\n' + + 'type Team {\n' + + ' name: String!\n' + + ' members: [Employee!]!\n' + + '}\n' + + '\n' + + 'input TeamInput {\n' + + ' name: String!\n' + + ' members: [EmployeeInput!]!\n' + + '}\n' + + '\n' + + 'directive @extends on OBJECT | INPUT_OBJECT\n' + + '\n' + + 'schema {\n' + + ' query : QueryHierarchy\n' + + ' mutation : MutationHierarchy\n' + + '}\n' + + '}#', + 'meta::external::query::graphQL::metamodel::sql' + ); + + assertEquals( + 'Class meta::external::query::graphQL::metamodel::sql::Employee extends meta::external::query::graphQL::metamodel::sql::Person\n' + + '{\n' + + ' title : String[1];\n' + + ' startDate : StrictDate[1];\n' + + '}\n' + + '\n' + + 'Class meta::external::query::graphQL::metamodel::sql::MutationHierarchy\n' + + '{\n' + + ' upsertTeam(team: meta::external::query::graphQL::metamodel::sql::Team[1]): meta::external::query::graphQL::metamodel::sql::Team[0..1];\n' + + ' upsertEmployee(employee: meta::external::query::graphQL::metamodel::sql::Employee[1]): meta::external::query::graphQL::metamodel::sql::Employee[0..1];\n' + + '}\n' + + '\n' + + 'Class meta::external::query::graphQL::metamodel::sql::Person\n' + + '{\n' + + ' firstName : String[0..1];\n' + + ' lastName : String[1];\n' + + ' age : Integer[1];\n' + + '}\n' + + '\n' + + 'Class meta::external::query::graphQL::metamodel::sql::QueryHierarchy\n' + + '{\n' + + ' teamByName(n: String[1]): meta::external::query::graphQL::metamodel::sql::Team[0..1];\n' + + ' employeeByFirstName(n: String[1]): meta::external::query::graphQL::metamodel::sql::Employee[0..1];\n' + + '}\n' + + '\n' + + 'Class meta::external::query::graphQL::metamodel::sql::Team\n' + + '{\n' + + ' name : String[1];\n' + + ' members : meta::external::query::graphQL::metamodel::sql::Employee[*];\n' + + '}', + $pureTypes); +} function <> meta::external::query::graphQL::binding::toPure::sdl::tests::graphQLToPure(graphQLDocument: String[1], purePackage: String[1]): String[1] { diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/toPure/sdl/tests/typeCompatibility.pure b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/toPure/sdl/tests/typeCompatibility.pure index 528ee0917ae..e8d14098aa3 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/toPure/sdl/tests/typeCompatibility.pure +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/toPure/sdl/tests/typeCompatibility.pure @@ -26,14 +26,19 @@ function <> meta::external::query::graphQL::binding::toPure::sdl::tes assert(isTypeCompatible(Employee, Employee_2)); assert(isTypeCompatible(Address, Address_2)); assert(isTypeCompatible(Country, Country_2)); + assert(isTypeCompatible(Child, Child_2)); + assert(isTypeCompatible(Parent, Parent_2)); assertFalse(isTypeCompatible(Firm, Employee_2)); assertFalse(isTypeCompatible(Address, Country_2)); + assertFalse(isTypeCompatible(Child, Parent)); assertFalse(isTypeCompatible(Firm, Firm_False)); assertFalse(isTypeCompatible(Employee, Employee_False)); assertFalse(isTypeCompatible(Address, Address_False)); assertFalse(isTypeCompatible(Country, Country_False)); + assertFalse(isTypeCompatible(Child, Child_False)); + assertFalse(isTypeCompatible(Child, Child_Parent_False)); } @@ -138,3 +143,37 @@ Class meta::external::query::graphQL::binding::toPure::sdl::tests::Country_False iso2Code : CountryCode[1]; } + +Class meta::external::query::graphQL::binding::toPure::sdl::tests::Child extends meta::external::query::graphQL::binding::toPure::sdl::tests::Parent +{ + child: String[1]; +} + +Class meta::external::query::graphQL::binding::toPure::sdl::tests::Parent +{ + parent: String[1]; +} + +Class meta::external::query::graphQL::binding::toPure::sdl::tests::Child_2 extends meta::external::query::graphQL::binding::toPure::sdl::tests::Parent_2 +{ + child: String[1]; +} + +Class meta::external::query::graphQL::binding::toPure::sdl::tests::Parent_2 +{ + parent: String[1]; +} + +Class meta::external::query::graphQL::binding::toPure::sdl::tests::Child_False +{ + child: String[1]; +} + +Class meta::external::query::graphQL::binding::toPure::sdl::tests::Parent_False +{ +} + +Class meta::external::query::graphQL::binding::toPure::sdl::tests::Child_Parent_False extends meta::external::query::graphQL::binding::toPure::sdl::tests::Parent_False +{ + child: String[1]; +} \ No newline at end of file diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/toPure/sdl/toPure_sdl.pure b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/toPure/sdl/toPure_sdl.pure index 87f5f55494b..fd8eb1cc201 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/toPure/sdl/toPure_sdl.pure +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/binding/toPure/sdl/toPure_sdl.pure @@ -1,6 +1,7 @@ ###Pure import meta::external::query::graphQL::binding::*; import meta::external::query::graphQL::metamodel::sdl::*; +import meta::external::query::graphQL::metamodel::sdl::value::*; import meta::external::query::graphQL::metamodel::sdl::typeSystem::*; import meta::external::query::graphQL::binding::toPure::*; import meta::external::query::graphQL::binding::toPure::sdl::*; @@ -11,38 +12,60 @@ function meta::external::query::graphQL::binding::toPure::sdl::graphQLTypeSystem let operationTypes = $doc.definitions->map(def | if($def->instanceOf(SchemaDefinition), | $def->cast(@SchemaDefinition).rootOperationTypeDefinitions.type, | [])); - // Pass 1 -- shell types used as type references + // Pass 1a -- shell types used as type references let allShellTypesByName = $doc.definitions->map(def| $def->match( [ o : ObjectTypeDefinition[1] | let no = newClass($o.name); let temporality = $o.directives.name->intersection(temporalityToDirectives()->keys())->map(td | ^Stereotype(profile = meta::pure::profiles::temporal, value = $td)); - let cp = ^$no(package = $pack, stereotypes = $temporality); + let cp = ^$no(package = $pack, stereotypes = $temporality, generalizations = []); pair($o.name, $cp);, i : InputObjectTypeDefinition[1] | let no = newClass($i.name); let temporality = $i.directives.name->intersection(temporalityToDirectives()->keys())->map(td | ^Stereotype(profile = meta::pure::profiles::temporal, value = $td)); - let cp = ^$no(package = $pack, stereotypes = $temporality); + let cp = ^$no(package = $pack, stereotypes = $temporality, generalizations = []); pair($i.name, $cp);, e : EnumTypeDefinition[1] | let ne = newEnumeration($e.name, $e.values.value); let ep = ^$ne(package = $pack); pair($e.name, $ep);, s : SchemaDefinition[1] | [], d : DirectiveDefinition[1] | [], - s : ScalarTypeDefinition[1] | [] + s : ScalarTypeDefinition[1] | [], + i : InterfaceTypeDefinition[1] | [] ] ) )->concatenate(graphQLScalarTypesToPurePrimitives())->newMap(); + // Pass 1b -- add hierarchy + $doc.definitions->map(def| + $def->match( + [ + o : ObjectTypeDefinition[1] | buildHierarchy($o.name, $o.directives, $allShellTypesByName), + i : InputObjectTypeDefinition[1] | buildHierarchy($i.name, $i.directives, $allShellTypesByName), + a : Any[1] | [] + ] + ) + ); + + let graphQLTypesByName = $doc.definitions->map(def| + $def->match( + [ + o : ObjectTypeDefinition[1] | pair($o.name, $o), + i : InputObjectTypeDefinition[1] | pair($i.name, $i), + a : Any[1] | [] + ] + ))->newMap(); + // Pass 2a -- build non-operation object and enum types let builtObjectTypesByName = $doc.definitions->map(def | $def->match( [ - o : ObjectTypeDefinition[1] | if($o.name->in($operationTypes), | [], | $o->buildPureType($allShellTypesByName)), + o : ObjectTypeDefinition[1] | if($o.name->in($operationTypes), | [], | $o->buildPureType($allShellTypesByName, $graphQLTypesByName)), i : InputObjectTypeDefinition[1] | [], e : EnumTypeDefinition[1] | $allShellTypesByName->get($e.name)->toOne(), s : SchemaDefinition[1] | [], d : DirectiveDefinition[1] | [], - s : ScalarTypeDefinition[1] | [] + s : ScalarTypeDefinition[1] | [], + i : InterfaceTypeDefinition[1] | [] ] ) )->map(t | pair($t.name->toOne(), $t))->newMap(); @@ -51,12 +74,13 @@ function meta::external::query::graphQL::binding::toPure::sdl::graphQLTypeSystem let builtInputAndOperationTypesByName = $doc.definitions->map(def | $def->match( [ - o : ObjectTypeDefinition[1] | if($o.name->in($operationTypes), | $o->buildPureType($allShellTypesByName), | []), - i : InputObjectTypeDefinition[1] | $i->buildPureType($allShellTypesByName), + o : ObjectTypeDefinition[1] | if($o.name->in($operationTypes), | $o->buildPureType($allShellTypesByName, $graphQLTypesByName), | []), + i : InputObjectTypeDefinition[1] | $i->buildPureType($allShellTypesByName, $graphQLTypesByName), e : EnumTypeDefinition[1] | [], s : SchemaDefinition[1] | [], d : DirectiveDefinition[1] | [], - s : ScalarTypeDefinition[1] | [] + s : ScalarTypeDefinition[1] | [], + i : InterfaceTypeDefinition[1] | [] ] ) )->map(t | pair($t.name->toOne(), $t))->newMap(); @@ -110,45 +134,73 @@ function meta::external::query::graphQL::binding::toPure::buildTransientPackageF $package->split('::')->fold({a,b|^Package(name = $a, package=$b)}, ^Package()); } -function <> meta::external::query::graphQL::binding::toPure::sdl::buildPureType(graphQLType: meta::external::query::graphQL::metamodel::sdl::typeSystem::Type[1], shellTypesByName: Map[1]) : meta::pure::metamodel::type::Type[1] +function <> meta::external::query::graphQL::binding::toPure::sdl::buildPureType(graphQLType: meta::external::query::graphQL::metamodel::sdl::typeSystem::Type[1], shellTypesByName: Map[1], graphQLTypesByName: Map[1]) : meta::pure::metamodel::type::Type[*] { $graphQLType->match( [ o : ObjectTypeDefinition[1] | let shellType = $shellTypesByName->get($o.name)->toOne(); - let properties = $o.fields->map(f | - let fieldTypeMultiplicityAndName = $f.type->extractPureMultiplicityAndTypeName(); - let fieldType = $shellTypesByName->get($fieldTypeMultiplicityAndName.second); - assert($fieldType->isNotEmpty(), 'Unable to find type ' + $fieldTypeMultiplicityAndName.second); - // Has arguments -- wil be qualified property - let fieldVariableExpressions = $f.argumentDefinitions->map(a | - let argumentMultiplicityAndName = $a.type->extractPureMultiplicityAndTypeName(); - let argumentType = $shellTypesByName->get($argumentMultiplicityAndName.second); - assert($argumentType->isNotEmpty(), 'Unable to find type ' + $argumentMultiplicityAndName.second); - ^VariableExpression(name = $a.name, multiplicity = $argumentMultiplicityAndName.first, genericType = ^GenericType(rawType = $argumentType->toOne())); - ); - if ($fieldVariableExpressions->isEmpty(), - | - meta::pure::functions::meta::newProperty($f.name, ^GenericType(rawType = $shellType), ^GenericType(rawType = $fieldType->toOne()), $fieldTypeMultiplicityAndName.first), - | - newQualifiedProperty($f.name, ^GenericType(rawType = $shellType), ^GenericType(rawType = $fieldType->toOne()), $fieldTypeMultiplicityAndName.first, $fieldVariableExpressions); - ); - ); - $shellType->mutateAdd('properties', $properties->filter(p | $p->instanceOf(Property))); - $shellType->mutateAdd('qualifiedProperties', $properties->filter(p | $p->instanceOf(QualifiedProperty)));, + if ($shellType->cast(@Class).properties->isNotEmpty(), + | [], + | let allGeneralizations = $shellType->hierarchicalAllGeneralizations(); + let builtGeneralizations = $allGeneralizations->map(c | buildPureType($graphQLTypesByName->get($c.name->toOne())->toOne(), $shellTypesByName, $graphQLTypesByName)); + let generalizationProps = $allGeneralizations->filter(t | $t->instanceOf(Class))->map(t | $t->cast(@Class)).properties.name; + let properties = $o.fields->map(f | + if ($generalizationProps->contains($f.name), + | [], + | let fieldTypeMultiplicityAndName = $f.type->extractPureMultiplicityAndTypeName(); + let fieldType = $shellTypesByName->get($fieldTypeMultiplicityAndName.second); + assert($fieldType->isNotEmpty(), 'Unable to find type ' + $fieldTypeMultiplicityAndName.second); + // Has arguments -- wil be qualified property + let fieldVariableExpressions = $f.argumentDefinitions->map(a | + let argumentMultiplicityAndName = $a.type->extractPureMultiplicityAndTypeName(); + let argumentType = $shellTypesByName->get($argumentMultiplicityAndName.second); + assert($argumentType->isNotEmpty(), 'Unable to find type ' + $argumentMultiplicityAndName.second); + ^VariableExpression(name = $a.name, multiplicity = $argumentMultiplicityAndName.first, genericType = ^GenericType(rawType = $argumentType->toOne())); + ); + if ($fieldVariableExpressions->isEmpty(), + | + meta::pure::functions::meta::newProperty($f.name, ^GenericType(rawType = $shellType), ^GenericType(rawType = $fieldType->toOne()), $fieldTypeMultiplicityAndName.first), + | + newQualifiedProperty($f.name, ^GenericType(rawType = $shellType), ^GenericType(rawType = $fieldType->toOne()), $fieldTypeMultiplicityAndName.first, $fieldVariableExpressions); + ); + ); + ); + $shellType->mutateAdd('properties', $properties->filter(p | $p->instanceOf(Property))); + $shellType->mutateAdd('qualifiedProperties', $properties->filter(p | $p->instanceOf(QualifiedProperty)))->concatenate($builtGeneralizations); + );, i : InputObjectTypeDefinition[1] | let shellType = $shellTypesByName->get($i.name)->toOne(); - let properties = $i.fields->map(f | - let fieldTypeMultiplicityAndName = $f.type->extractPureMultiplicityAndTypeName(); - let fieldType = $shellTypesByName->get($fieldTypeMultiplicityAndName.second); - assert($fieldType->isNotEmpty(), 'Unable to find type ' + $fieldTypeMultiplicityAndName.second); - meta::pure::functions::meta::newProperty($f.name, ^GenericType(rawType = $shellType), ^GenericType(rawType = $fieldType->toOne()), $fieldTypeMultiplicityAndName.first); + if ($shellType->cast(@Class).properties->isNotEmpty(), + | [], + | let allGeneralizations = $shellType->hierarchicalAllGeneralizations(); + let builtGeneralizations = $allGeneralizations->map(c | buildPureType($graphQLTypesByName->get($c.name->toOne())->toOne(), $shellTypesByName, $graphQLTypesByName)); + let generalizationProps = $allGeneralizations->filter(t | $t->instanceOf(Class))->map(t | $t->cast(@Class)).properties.name; + let properties = $i.fields->map(f | + if ($generalizationProps->contains($f.name), + | [], + | let fieldTypeMultiplicityAndName = $f.type->extractPureMultiplicityAndTypeName(); + let fieldType = $shellTypesByName->get($fieldTypeMultiplicityAndName.second); + assert($fieldType->isNotEmpty(), 'Unable to find type ' + $fieldTypeMultiplicityAndName.second); + meta::pure::functions::meta::newProperty($f.name, ^GenericType(rawType = $shellType), ^GenericType(rawType = $fieldType->toOne()), $fieldTypeMultiplicityAndName.first); + ); + ); + $shellType->mutateAdd('properties', $properties)->concatenate($builtGeneralizations); ); - $shellType->mutateAdd('properties', $properties); ] ) } +function <> meta::external::query::graphQL::binding::toPure::sdl::buildHierarchy(graphQLTypeName: String[1], graphQLTypeDirectives: Directive[*], allShellTypesByName: Map[1]): Nil[0] +{ + let extendedClassNames = $graphQLTypeDirectives->filter(d | $d.name == hierarchyDirective().name)->map(hd | $hd.arguments->filter(a | $a.name == 'class').value->cast(@StringValue).value->toOne()); + let thisClass = $allShellTypesByName->get($graphQLTypeName)->toOne(); + let generalizations = $extendedClassNames->map(n | ^Generalization(specific = $thisClass, general = ^GenericType(rawType = $allShellTypesByName->get($n)->toOne()))); + if ($generalizations->isEmpty(), | $thisClass->mutateAdd('generalizations', ^Generalization(specific = $thisClass, general = ^GenericType(rawType = Any))), | $thisClass->mutateAdd('generalizations', $generalizations)); + $extendedClassNames->map(n | $allShellTypesByName->get($n)->toOne()->mutateAdd('specializations', $generalizations)); + []; +} + function <> meta::external::query::graphQL::binding::toPure::sdl::extractPureMultiplicityAndTypeName(typeReference: TypeReference[1]): Pair[1] { $typeReference @@ -166,11 +218,17 @@ function meta::external::query::graphQL::binding::toPure::isTypeCompatible(one: | if ($one->instanceOf(PrimitiveType) || $one->instanceOf(Enumeration), | $one == $two, - | $one->cast(@Class).properties->sortBy(p | $p.name->toOne()) - ->zip($two->cast(@Class).properties->sortBy(p | $p.name->toOne())) - ->map(pair | $pair.first->isPropertyCompatible($pair.second)) - ->distinct() - ->equal([true]) + | let oneGeneralizations = $one->validGeneralizations()->sort(); + let twoGeneralizations = $two->validGeneralizations()->sort(); + let matchedGeneralizations = $oneGeneralizations->zip($twoGeneralizations)->map(pair | $pair.first->isTypeCompatible($pair.second))->distinct(); + + $oneGeneralizations->size() == $twoGeneralizations->size() + && ($matchedGeneralizations->isEmpty() || $matchedGeneralizations->equal([true])) + && $one->cast(@Class).properties->sortBy(p | $p.name->toOne()) + ->zip($two->cast(@Class).properties->sortBy(p | $p.name->toOne())) + ->map(pair | $pair.first->isPropertyCompatible($pair.second)) + ->distinct() + ->equal([true]); ), | false ) diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/serialization/serialization.pure b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/serialization/serialization.pure index fa5f9d06da6..754b68e5c5c 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/serialization/serialization.pure +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/src/main/resources/core_external_query_graphql/serialization/serialization.pure @@ -75,7 +75,7 @@ function meta::external::query::graphQL::serialization::graphQLtoString(type: Un function meta::external::query::graphQL::serialization::graphQLtoString(type: ObjectTypeDefinition[1]):String[1] { - 'type ' + $type.name + $type.directives->graphQLtoString() + if ($type.implements->isEmpty(),|'',|' implements '+$type.implements->joinStrings(' & ')) + ' {\n'+ + 'type ' + $type.name + if ($type.implements->isEmpty(),|'',|' implements '+$type.implements->joinStrings(' & ')) + $type.directives->graphQLtoString() + ' {\n'+ $type.fields->map(f|' ' + $f->graphQLtoString())->joinStrings('\n') + '\n}' } @@ -94,7 +94,7 @@ function meta::external::query::graphQL::serialization::graphQLtoString(field: F function meta::external::query::graphQL::serialization::graphQLtoString(type: InterfaceTypeDefinition[1]):String[1] { - 'interface ' + $type.name+' {\n' + + 'interface ' + $type.name+ if($type.implements->isEmpty(),|'',|' implements '+$type.implements->joinStrings(' & ')) + ' {\n' + $type.fields->map(f|' ' + $f->graphQLtoString())->joinStrings('\n') + '\n}' } From ca472778b2878d620ee9d40c43a30824055024a7 Mon Sep 17 00:00:00 2001 From: Mohammed Ibrahim Date: Thu, 26 Oct 2023 15:57:03 -0400 Subject: [PATCH 48/80] Add service loader files (#2410) * rename method * Function activation cleanup * rollback file changes * Change spark keywords * Change spark keywords * Fix test * Add Primitive Type to Open APi Generator * Add byte * Snowflake deployment changes * Snowflake deployment changes * Use identity instead of Profiles * checkstyles * Minor fixes * Minor fix * Add serviceloader files * update CODEOWNERS --- CODEOWNERS | 1 + ...ngine.protocol.functionActivator.metamodel.FunctionActivator | 1 + .../snowflakeApp/deployment/SnowflakeDeploymentManager.java | 2 +- ...ngine.protocol.functionActivator.metamodel.FunctionActivator | 1 + 4 files changed, 4 insertions(+), 1 deletion(-) create mode 100644 legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/src/main/resources/META-INF/services/org.finos.legend.engine.protocol.functionActivator.metamodel.FunctionActivator create mode 100644 legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/resources/META-INF/services/org.finos.legend.engine.protocol.functionActivator.metamodel.FunctionActivator diff --git a/CODEOWNERS b/CODEOWNERS index feb7e32fc2b..13e84bd3873 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -33,6 +33,7 @@ /legend-engine-xts-service/** @finos/legend-engine-maintainers /legend-engine-xts-serviceStore/** @finos/legend-engine-maintainers /legend-engine-xts-snowflakeApp/** @finos/legend-engine-maintainers +/legend-engine-xts-hostedService/** @finos/legend-engine-maintainers /legend-engine-xts-sql/** @finos/legend-engine-maintainers /legend-engine-xts-text/** @finos/legend-engine-maintainers /legend-engine-xts-xml/** @finos/legend-engine-maintainers diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/src/main/resources/META-INF/services/org.finos.legend.engine.protocol.functionActivator.metamodel.FunctionActivator b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/src/main/resources/META-INF/services/org.finos.legend.engine.protocol.functionActivator.metamodel.FunctionActivator new file mode 100644 index 00000000000..85fed0b96b3 --- /dev/null +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/src/main/resources/META-INF/services/org.finos.legend.engine.protocol.functionActivator.metamodel.FunctionActivator @@ -0,0 +1 @@ +org.finos.legend.engine.protocol.hostedService.metamodel.HostedService \ No newline at end of file diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeDeploymentManager.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeDeploymentManager.java index 9b4eb750b8d..c46427adaea 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeDeploymentManager.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeDeploymentManager.java @@ -72,7 +72,7 @@ public boolean canDeploy(FunctionActivatorArtifact artifact) @Override public SnowflakeDeploymentResult deploy(Identity identity, SnowflakeAppArtifact artifact) { - return new SnowflakeDeploymentResult("",true); + return deploy(identity, artifact, Lists.mutable.empty()); } @Override diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/resources/META-INF/services/org.finos.legend.engine.protocol.functionActivator.metamodel.FunctionActivator b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/resources/META-INF/services/org.finos.legend.engine.protocol.functionActivator.metamodel.FunctionActivator new file mode 100644 index 00000000000..a6668cefc25 --- /dev/null +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/src/main/resources/META-INF/services/org.finos.legend.engine.protocol.functionActivator.metamodel.FunctionActivator @@ -0,0 +1 @@ +org.finos.legend.engine.protocol.snowflakeApp.metamodel.SnowflakeApp \ No newline at end of file From 0b21b21dc98b232ffde5254fe37ebf3c6ddc64df Mon Sep 17 00:00:00 2001 From: "Sherjan, Haroon" <35983762+haroonsherjan@users.noreply.github.com> Date: Thu, 26 Oct 2023 18:27:39 -0700 Subject: [PATCH 49/80] Instantiate dummy database if user passes string as element (#2411) --- .../toPureGraph/HelperRuntimeBuilder.java | 22 +++++-------------- .../runner/mapping/MappingTestRunner.java | 4 ++-- .../mapping/extension/MappingTestRunner.java | 5 ++--- ...erRelationalDatabaseConnectionBuilder.java | 2 +- 4 files changed, 10 insertions(+), 23 deletions(-) diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/HelperRuntimeBuilder.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/HelperRuntimeBuilder.java index 792570cc0af..c10e4d4d7b9 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/HelperRuntimeBuilder.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/src/main/java/org/finos/legend/engine/language/pure/compiler/toPureGraph/HelperRuntimeBuilder.java @@ -126,7 +126,7 @@ public static void buildEngineRuntime(EngineRuntime engineRuntime, Root_meta_cor Root_meta_core_runtime_ConnectionStore connectionStore = new Root_meta_core_runtime_ConnectionStore_Impl("") ._connection(connection) - ._element(getElement(storePointer.path, storePointer.sourceInformation, context)); + ._element(getStore(storePointer.path, storePointer.sourceInformation, context)); pureRuntime._connectionStoresAdd(connectionStore); }); }); @@ -155,7 +155,7 @@ public static void buildEngineRuntime(EngineRuntime engineRuntime, Root_meta_cor connection.accept(new ConnectionSecondPassBuilder(context, pureConnection)); final Root_meta_core_runtime_ConnectionStore connectionStore = new Root_meta_core_runtime_ConnectionStore_Impl("", null, context.pureModel.getClass("meta::core::runtime::ConnectionStore")) ._connection(pureConnection) - ._element(getElement(storeConnections.store.path, storeConnections.store.sourceInformation, context)); + ._element(getStore(storeConnections.store.path, storeConnections.store.sourceInformation, context)); pureRuntime._connectionStoresAdd(connectionStore); }); @@ -222,7 +222,7 @@ public static Root_meta_core_runtime_Runtime buildPureRuntime(Runtime runtime, C connection.accept(new ConnectionSecondPassBuilder(context, pureConnection)); final Root_meta_core_runtime_ConnectionStore connectionStore = new Root_meta_core_runtime_ConnectionStore_Impl("", null, context.pureModel.getClass("meta::core::runtime::ConnectionStore")) ._connection(pureConnection) - ._element(getElement(connection.element, connection.sourceInformation, context)); + ._element(getStore(connection.element, connection.sourceInformation, context)); pureRuntime._connectionStoresAdd(connectionStore); }); return pureRuntime; @@ -238,23 +238,11 @@ else if (runtime instanceof RuntimePointer) throw new UnsupportedOperationException(); } - public static Object getElement(String element, SourceInformation sourceInformation, CompileContext context) + public static Object getStore(String element, SourceInformation sourceInformation, CompileContext context) { return element.equals("ModelStore") ? new Root_meta_external_store_model_ModelStore_Impl("", null, context.pureModel.getClass("meta::external::store::model::ModelStore")) - : resolveElementSafe(element, sourceInformation, context); - } - - private static Object resolveElementSafe(String element, SourceInformation sourceInformation, CompileContext context) - { - try - { - return context.resolveStore(element, sourceInformation); - } - catch (EngineException e) - { - return element; - } + : context.resolveStore(element, sourceInformation); } /** diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/src/main/java/org/finos/legend/engine/test/runner/mapping/MappingTestRunner.java b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/src/main/java/org/finos/legend/engine/test/runner/mapping/MappingTestRunner.java index 81fb2474bcc..e402ce14b76 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/src/main/java/org/finos/legend/engine/test/runner/mapping/MappingTestRunner.java +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/src/main/java/org/finos/legend/engine/test/runner/mapping/MappingTestRunner.java @@ -60,7 +60,7 @@ import java.util.*; import java.util.function.Consumer; -import static org.finos.legend.engine.language.pure.compiler.toPureGraph.HelperRuntimeBuilder.getElement; +import static org.finos.legend.engine.language.pure.compiler.toPureGraph.HelperRuntimeBuilder.getStore; @Deprecated public class MappingTestRunner @@ -102,7 +102,7 @@ public void setupTestData() CompileContext context = this.pureModel.getContext(); Root_meta_core_runtime_ConnectionStore connectionStore = new Root_meta_core_runtime_ConnectionStore_Impl("") ._connection(conn.accept(connectionVisitor)) - ._element(getElement(conn.element, conn.elementSourceInformation, context)); + ._element(getStore(conn.element, conn.elementSourceInformation, context)); this.runtime._connectionStoresAdd(connectionStore); }); } diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/src/main/java/org/finos/legend/engine/testable/mapping/extension/MappingTestRunner.java b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/src/main/java/org/finos/legend/engine/testable/mapping/extension/MappingTestRunner.java index 52e11c1d323..89c8d97ed58 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/src/main/java/org/finos/legend/engine/testable/mapping/extension/MappingTestRunner.java +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/src/main/java/org/finos/legend/engine/testable/mapping/extension/MappingTestRunner.java @@ -19,7 +19,6 @@ import org.eclipse.collections.api.tuple.Pair; import org.eclipse.collections.impl.tuple.Tuples; import org.eclipse.collections.impl.utility.ListIterate; -import org.finos.legend.engine.language.pure.compiler.toPureGraph.CompileContext; import org.finos.legend.engine.language.pure.compiler.toPureGraph.ConnectionFirstPassBuilder; import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; import org.finos.legend.engine.plan.execution.PlanExecutor; @@ -57,7 +56,7 @@ import java.util.stream.Collectors; import static org.finos.legend.engine.language.pure.compiler.toPureGraph.HelperModelBuilder.getElementFullPath; -import static org.finos.legend.engine.language.pure.compiler.toPureGraph.HelperRuntimeBuilder.getElement; +import static org.finos.legend.engine.language.pure.compiler.toPureGraph.HelperRuntimeBuilder.getStore; public class MappingTestRunner implements TestRunner { @@ -142,7 +141,7 @@ private TestResult executeMappingTest(MappingTest mappingTest, MappingTestRunne Connection conn = connection.getOne(); Root_meta_core_runtime_ConnectionStore connectionStore = new Root_meta_core_runtime_ConnectionStore_Impl("") ._connection(conn.accept(context.getConnectionVisitor())) - ._element(getElement(conn.element, conn.elementSourceInformation, context.getPureModel().getContext())); + ._element(getStore(conn.element, conn.elementSourceInformation, context.getPureModel().getContext())); runtime._connectionStoresAdd(connectionStore); }); handleGenerationOfPlan(connections.stream().map(Pair::getOne).collect(Collectors.toList()), runtime, context); 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/HelperRelationalDatabaseConnectionBuilder.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/HelperRelationalDatabaseConnectionBuilder.java index c1476ad4b91..059003133ec 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/HelperRelationalDatabaseConnectionBuilder.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/HelperRelationalDatabaseConnectionBuilder.java @@ -51,7 +51,7 @@ public static void addDatabaseConnectionProperties(Root_meta_external_store_rela } catch (RuntimeException e) { - new Root_meta_relational_metamodel_Database_Impl(element)._name(element); + context.pureModel.storesIndex.putIfAbsent(element, new Root_meta_relational_metamodel_Database_Impl(element)._name(element)); } } From 27ff539b60858511b5a2b12db0610449986d4220 Mon Sep 17 00:00:00 2001 From: mrudula-gs <89876341+mrudula-gs@users.noreply.github.com> Date: Fri, 27 Oct 2023 13:06:33 -0400 Subject: [PATCH 50/80] Mark org as Pure Reserved Keyword (#2387) Set org as a Reserved keyword --- .../core_protocol_generation/generation.pure | 8 +++++- .../store/m2m/tests/legend/constraints.pure | 25 ++++++++++++++++++- .../generation/conventions.pure | 15 +++++++---- .../metamodel.pure | 10 ++++++++ 4 files changed, 51 insertions(+), 7 deletions(-) diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/src/main/resources/core_protocol_generation/generation.pure b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/src/main/resources/core_protocol_generation/generation.pure index ed2a6a417fa..83e534eebb8 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/src/main/resources/core_protocol_generation/generation.pure +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/src/main/resources/core_protocol_generation/generation.pure @@ -513,12 +513,18 @@ function meta::protocols::generation::java::conventions(purePackage:String[1], j | '.' + $packageStr; ); pair( - $c->identifier($package), + javaIdentifier($package), $c->identifier($x.name->toOne())->toUpperFirstCharacter()->toOne() );} ); } +function <> meta::protocols::generation::java::javaIdentifier(name: String[1]):String[1] +{ + let keywordMap = javaKeywords()->buildKeywordReplacementMap(); + $name->sanitizeIdentifier($keywordMap); +} + function meta::protocols::generation::java::addProvidedTypesFromDependencies(conventions: Conventions[1], dependencies: Configuration[*]): Conventions[1] { $dependencies->fold({config: Configuration[1], c1: Conventions[1] | diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/constraints.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/constraints.pure index 5655669e235..f82278765af 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/constraints.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/store/m2m/tests/legend/constraints.pure @@ -63,6 +63,26 @@ meta::pure::mapping::modelToModel::test::alloy::constraints::testQueryOnTypeWith assert(jsonEquivalent('{"name":"FirmX"}'->parseJSON(), $result.values->toOne()->parseJSON())); } +function <> +{ serverVersion.start='v1_19_0' } +meta::pure::mapping::modelToModel::test::alloy::constraints::testGraphFetchWithPackageConflictingPropertyName():Boolean[1] +{ + let result = execute( |Firm.all()->graphFetchChecked(#{Firm {organization} }#)->serialize(#{Firm {organization} }#), + m2mconstraintmapping1, + ^Runtime( + connectionStores = ^ConnectionStore( + element=^ModelStore(), + connection= ^JsonModelConnection( + class=_Firm, + url='data:application/json,{"name":"FirmX","org":"orgA"}' + ) + ) + ), + meta::pure::extension::defaultExtensions() + ); + assert(jsonEquivalent('{"defects":[{"path":[],"enforcementLevel":"Error","ruleType":"ClassConstraint","externalId":null,"id":"0","ruleDefinerPath":"meta::pure::mapping::modelToModel::test::alloy::constraints::Firm","message":"Constraint :[0] violated in the Class Firm"}],"source":{"defects":[],"source":{"number":1,"record":"{\\"name\\":\\"FirmX\\",\\"org\\":\\"orgA\\"}"},"value":{"org":"orgA","employees":[]}},"value":{"organization":"orgA"}}'->parseJSON(), $result.values->toOne()->parseJSON())); +} + function <> { serverVersion.start='v1_19_0' } meta::pure::mapping::modelToModel::test::alloy::constraints::testQueryOnSourceTypeWithFailingConstraintSucceedsWithConstraintsDisabled():Boolean[1] @@ -386,6 +406,7 @@ Class meta::pure::mapping::modelToModel::test::alloy::constraints::Firm { name: String[1]; employees: meta::pure::mapping::modelToModel::test::alloy::constraints::Person[*]; + organization: String[1]; } Class meta::pure::mapping::modelToModel::test::alloy::constraints::Firm2 @@ -403,6 +424,7 @@ Class meta::pure::mapping::modelToModel::test::alloy::constraints::_Firm { name: String[1]; employees:meta::pure::mapping::modelToModel::test::alloy::constraints::_Person[*]; + org: String[1]; } Class meta::pure::mapping::modelToModel::test::alloy::constraints::_Firm2 @@ -680,7 +702,8 @@ Mapping meta::pure::mapping::modelToModel::test::alloy::constraints::m2mconstrai { ~src meta::pure::mapping::modelToModel::test::alloy::constraints::_Firm name: $src.name, - employees: $src.employees + employees: $src.employees, + organization: $src.org } meta::pure::mapping::modelToModel::test::alloy::constraints::Person: Pure diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/src/main/resources/core_external_language_java/generation/conventions.pure b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/src/main/resources/core_external_language_java/generation/conventions.pure index cd9b5d2d9b8..099831f1ae1 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/src/main/resources/core_external_language_java/generation/conventions.pure +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/src/main/resources/core_external_language_java/generation/conventions.pure @@ -1038,13 +1038,18 @@ function meta::external::language::java::transform::newConventions(extensions : function <> meta::external::language::java::transform::buildIdentifierFactory():Function<{String[1]->String[1]}>[1] { - let keywordMap = buildJavaKeywordReplacementMap(); + let keywordMap = buildReservedKeywordReplacementMap(); {name:String[1] | $name->sanitizeIdentifier($keywordMap)}; } -function <> meta::external::language::java::transform::buildJavaKeywordReplacementMap():Map[1] +function <> meta::external::language::java::transform::buildReservedKeywordReplacementMap():Map[1] { - javaKeywords()->map(kw | pair($kw, '_' + $kw))->newMap() + reservedKeywords()->buildKeywordReplacementMap() +} + +function meta::external::language::java::transform::buildKeywordReplacementMap(Keywords: String[*]):Map[1] +{ + $Keywords->map(kw | pair($kw, '_' + $kw))->newMap() } function meta::external::language::java::transform::setBasePackageName(conventions:Conventions[1], name:String[1]): Conventions[1] @@ -1265,7 +1270,7 @@ function meta::external::language::java::transform::sanitizeIdentifier(name: Str function meta::external::language::java::transform::sanitizeIdentifier(name: String[1]): String[1] { - $name->sanitizeIdentifier(buildJavaKeywordReplacementMap()) + $name->sanitizeIdentifier(buildReservedKeywordReplacementMap()) } function <> meta::external::language::java::transform::replaceIllegalSymbols(symbol: String[1]): String[1] @@ -1293,7 +1298,7 @@ function meta::external::language::java::transform::sanitizeJavaKeywords(name: S function meta::external::language::java::transform::sanitizeJavaKeywords(name: String[1]): String[1] { - $name->sanitizeJavaKeywords(buildJavaKeywordReplacementMap()); + $name->sanitizeJavaKeywords(buildReservedKeywordReplacementMap()); } function <> meta::external::language::java::transform::startsWithNumber(s: String[1]): Boolean[1] diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/src/main/resources/core_external_language_java/metamodel.pure b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/src/main/resources/core_external_language_java/metamodel.pure index d41a89a0d0e..9ce339c3451 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/src/main/resources/core_external_language_java/metamodel.pure +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/src/main/resources/core_external_language_java/metamodel.pure @@ -799,6 +799,16 @@ function meta::external::language::java::metamodel::javaKeywords(): String[*] ]; } +function meta::external::language::java::metamodel::modelPropertyKeywords(): String[*] +{ + ['com', 'org']; +} + +function meta::external::language::java::metamodel::reservedKeywords(): String[*] +{ + javaKeywords()->concatenate(modelPropertyKeywords()); +} + function meta::external::language::java::metamodel::isJavaLang(pkg: meta::external::language::java::metamodel::Package[1]):Boolean[1] { $pkg.name == 'lang' From 4d620e40b74b93ed9d52d827e3bb5272cc452d93 Mon Sep 17 00:00:00 2001 From: gs-jp1 <80327721+gs-jp1@users.noreply.github.com> Date: Mon, 30 Oct 2023 10:01:25 +0000 Subject: [PATCH 51/80] Legend SQl - add new source providers (#2413) --- .../legend-engine-server/pom.xml | 16 ++ .../finos/legend/engine/server/Server.java | 20 +- .../pom.xml | 74 +++++ .../query/sql/api/sources/SQLContext.java | 31 +++ .../query/sql/api/sources/SQLSource.java | 42 +++ .../sql/api/sources/SQLSourceArgument.java | 29 ++ .../sql/api/sources/SQLSourceProvider.java | 15 +- .../api/sources/SQLSourceResolvedContext.java | 59 ++++ .../query/sql/api/sources/TableSource.java | 7 +- .../sql/api/sources/TableSourceArgument.java | 72 +++++ .../query/sql/providers/core}/SQLContext.java | 16 +- .../query/sql/providers/core}/SQLSource.java | 8 +- .../providers/core}/SQLSourceArgument.java | 2 +- .../sql/providers/core/SQLSourceProvider.java | 39 +++ .../core}/SQLSourceResolvedContext.java | 2 +- .../query/sql/providers/core/TableSource.java | 114 ++++++++ .../providers/core}/TableSourceArgument.java | 2 +- .../pom.xml | 84 ++++++ .../RelationalStoreSQLSourceProvider.java | 89 +++++++ .../TestRelationalStoreSQLSourceProvider.java | 227 ++++++++++++++++ ....from.extension.PureGrammarParserExtension | 1 + .../src/test/resources/pmcd.pure | 45 ++++ .../pom.xml | 97 +++++++ .../LegendServiceSQLSourceProvider.java | 120 +++++++++ .../TestLegendServiceSQLSourceProvider.java | 194 ++++++++++++++ ....from.extension.PureGrammarParserExtension | 1 + .../src/test/resources/pmcd.pure | 125 +++++++++ .../pom.xml | 159 +++++++++++ .../AbstractLegendStoreSQLSourceProvider.java | 83 ++++++ .../shared/FunctionSQLSourceProvider.java | 104 ++++++++ .../project/ProjectCoordinateLoader.java | 252 ++++++++++++++++++ .../project/ProjectCoordinateWrapper.java | 137 ++++++++++ .../project/ProjectResolvedContext.java | 45 ++++ .../shared/utils/SQLProviderUtils.java | 83 ++++++ .../providers/shared/utils/TraceUtils.java | 72 +++++ ...tractTestLegendStoreSQLSourceProvider.java | 109 ++++++++ .../shared/SQLSourceProviderTestUtils.java | 79 ++++++ .../shared/TestFunctionSQLSourceProvider.java | 181 +++++++++++++ .../src/test/resources/function-pmcd.pure | 22 ++ .../legend-engine-xt-sql-providers/pom.xml | 35 +++ .../legend-engine-xt-sql-query/pom.xml | 4 + .../engine/query/sql/api/SQLExecutor.java | 27 +- .../{sources => }/SQLSourceTranslator.java | 5 +- .../{sources => }/TableSourceExtractor.java | 4 +- .../query/sql/api/execute/SqlExecute.java | 10 +- .../TableSourceExtractorTest.java | 5 +- .../{sources => }/TestSQLSourceProvider.java | 9 +- .../query/sql/api/execute/SqlExecuteTest.java | 2 +- legend-engine-xts-sql/pom.xml | 1 + pom.xml | 26 ++ 50 files changed, 2931 insertions(+), 54 deletions(-) create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLContext.java create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSource.java create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSourceArgument.java rename legend-engine-xts-sql/{legend-engine-xt-sql-query => legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core}/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSourceProvider.java (68%) create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSourceResolvedContext.java rename legend-engine-xts-sql/{legend-engine-xt-sql-query => legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core}/src/main/java/org/finos/legend/engine/query/sql/api/sources/TableSource.java (95%) create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/api/sources/TableSourceArgument.java rename legend-engine-xts-sql/{legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources => legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core}/SQLContext.java (72%) rename legend-engine-xts-sql/{legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources => legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core}/SQLSource.java (88%) rename legend-engine-xts-sql/{legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources => legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core}/SQLSourceArgument.java (94%) create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core/SQLSourceProvider.java rename legend-engine-xts-sql/{legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources => legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core}/SQLSourceResolvedContext.java (96%) create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core/TableSource.java rename legend-engine-xts-sql/{legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources => legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core}/TableSourceArgument.java (96%) create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/src/main/java/org/finos/legend/engine/query/sql/providers/RelationalStoreSQLSourceProvider.java create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/src/test/java/org/finos/legend/engine/query/sql/providers/TestRelationalStoreSQLSourceProvider.java create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/src/test/resources/META-INF/services/org.finos.legend.engine.language.pure.grammar.from.extension.PureGrammarParserExtension create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/src/test/resources/pmcd.pure create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/src/main/java/org/finos/legend/engine/query/sql/providers/LegendServiceSQLSourceProvider.java create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/src/test/java/org/finos/legend/engine/query/sql/providers/TestLegendServiceSQLSourceProvider.java create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/src/test/resources/META-INF/services/org.finos.legend.engine.language.pure.grammar.from.extension.PureGrammarParserExtension create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/src/test/resources/pmcd.pure create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/AbstractLegendStoreSQLSourceProvider.java create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/FunctionSQLSourceProvider.java create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/project/ProjectCoordinateLoader.java create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/project/ProjectCoordinateWrapper.java create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/project/ProjectResolvedContext.java create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/utils/SQLProviderUtils.java create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/utils/TraceUtils.java create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/test/java/org/finos/legend/engine/query/sql/providers/shared/AbstractTestLegendStoreSQLSourceProvider.java create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/test/java/org/finos/legend/engine/query/sql/providers/shared/SQLSourceProviderTestUtils.java create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/test/java/org/finos/legend/engine/query/sql/providers/shared/TestFunctionSQLSourceProvider.java create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/test/resources/function-pmcd.pure create mode 100644 legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml rename legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/{sources => }/SQLSourceTranslator.java (96%) rename legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/{sources => }/TableSourceExtractor.java (98%) rename legend-engine-xts-sql/legend-engine-xt-sql-query/src/test/java/org/finos/legend/engine/query/sql/api/{sources => }/TableSourceExtractorTest.java (94%) rename legend-engine-xts-sql/legend-engine-xt-sql-query/src/test/java/org/finos/legend/engine/query/sql/api/{sources => }/TestSQLSourceProvider.java (89%) diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index 6e94374f2f3..b2fac3d4e69 100644 --- a/legend-engine-config/legend-engine-server/pom.xml +++ b/legend-engine-config/legend-engine-server/pom.xml @@ -610,6 +610,22 @@ org.finos.legend.engine legend-engine-xt-sql-query + + org.finos.legend.engine + legend-engine-xt-sql-providers-relationalStore + + + org.finos.legend.engine + legend-engine-xt-sql-providers-service + + + org.finos.legend.engine + legend-engine-xt-sql-providers-core + + + org.finos.legend.engine + legend-engine-xt-sql-providers-shared + org.finos.legend.engine legend-engine-test-data-generation diff --git a/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java b/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java index 1568eefd55f..932921641d7 100644 --- a/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java +++ b/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java @@ -82,6 +82,8 @@ import org.finos.legend.engine.external.shared.format.model.api.ExternalFormats; import org.finos.legend.engine.functionActivator.api.FunctionActivatorAPI; import org.finos.legend.engine.generation.artifact.api.ArtifactGenerationExtensionApi; +import org.finos.legend.engine.language.hostedService.api.HostedServiceService; +import org.finos.legend.engine.language.hostedService.deployment.HostedServiceDeploymentConfiguration; import org.finos.legend.engine.language.pure.compiler.api.Compile; import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; import org.finos.legend.engine.language.pure.grammar.api.grammarToJson.GrammarToJson; @@ -95,6 +97,8 @@ import org.finos.legend.engine.language.pure.modelManager.ModelManager; import org.finos.legend.engine.language.pure.modelManager.sdlc.SDLCLoader; import org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalElementAPI; +import org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppService; +import org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeAppDeploymentConfiguration; import org.finos.legend.engine.plan.execution.PlanExecutor; import org.finos.legend.engine.plan.execution.api.ExecutePlanLegacy; import org.finos.legend.engine.plan.execution.api.ExecutePlanStrategic; @@ -120,19 +124,20 @@ import org.finos.legend.engine.plan.execution.stores.service.plugin.ServiceStoreExecutor; import org.finos.legend.engine.plan.execution.stores.service.plugin.ServiceStoreExecutorBuilder; import org.finos.legend.engine.plan.generation.extension.PlanGeneratorExtension; -import org.finos.legend.engine.language.hostedService.api.HostedServiceService; -import org.finos.legend.engine.language.hostedService.deployment.HostedServiceDeploymentConfiguration; import org.finos.legend.engine.protocol.pure.v1.PureProtocolObjectMapperFactory; import org.finos.legend.engine.protocol.pure.v1.model.PureProtocol; -import org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppService; -import org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeAppDeploymentConfiguration; import org.finos.legend.engine.pure.code.core.PureCoreExtensionLoader; import org.finos.legend.engine.query.graphQL.api.debug.GraphQLDebug; import org.finos.legend.engine.query.graphQL.api.execute.GraphQLExecute; import org.finos.legend.engine.query.graphQL.api.grammar.GraphQLGrammar; import org.finos.legend.engine.query.pure.api.Execute; +import org.finos.legend.engine.query.sql.api.SQLExecutor; import org.finos.legend.engine.query.sql.api.execute.SqlExecute; import org.finos.legend.engine.query.sql.api.grammar.SqlGrammar; +import org.finos.legend.engine.query.sql.providers.LegendServiceSQLSourceProvider; +import org.finos.legend.engine.query.sql.providers.RelationalStoreSQLSourceProvider; +import org.finos.legend.engine.query.sql.providers.shared.FunctionSQLSourceProvider; +import org.finos.legend.engine.query.sql.providers.shared.project.ProjectCoordinateLoader; import org.finos.legend.engine.server.core.ServerShared; import org.finos.legend.engine.server.core.api.CurrentUser; import org.finos.legend.engine.server.core.api.Info; @@ -388,7 +393,12 @@ public void run(T serverConfiguration, Environment environment) environment.jersey().register(new GraphQLDebug(modelManager, serverConfiguration.metadataserver, routerExtensions)); // SQL - environment.jersey().register(new SqlExecute(modelManager, planExecutor, routerExtensions, FastList.newListWith(), generatorExtensions.flatCollect(PlanGeneratorExtension::getExtraPlanTransformers))); + ProjectCoordinateLoader projectCoordinateLoader = new ProjectCoordinateLoader(modelManager, serverConfiguration.metadataserver.getSdlc()); + environment.jersey().register(new SqlExecute(new SQLExecutor(modelManager, planExecutor, routerExtensions, FastList.newListWith( + new RelationalStoreSQLSourceProvider(projectCoordinateLoader), + new FunctionSQLSourceProvider(projectCoordinateLoader), + new LegendServiceSQLSourceProvider(projectCoordinateLoader)), + generatorExtensions.flatCollect(PlanGeneratorExtension::getExtraPlanTransformers)))); environment.jersey().register(new SqlGrammar()); // Service diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml new file mode 100644 index 00000000000..93b8286a1f9 --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml @@ -0,0 +1,74 @@ + + + + + + org.finos.legend.engine + legend-engine-xt-sql-providers + 4.32.1-SNAPSHOT + + 4.0.0 + + legend-engine-xt-sql-providers-core + jar + Legend Engine - XT - SQL - Providers - Core + + + + + + org.finos.legend.engine + legend-engine-protocol-pure + + + org.finos.legend.engine + legend-engine-xt-sql-protocol + + + + + + org.eclipse.collections + eclipse-collections-api + + + org.eclipse.collections + eclipse-collections + + + + + + org.pac4j + pac4j-core + + + + + org.apache.commons + commons-lang3 + + + + + junit + junit + test + + + + \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLContext.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLContext.java new file mode 100644 index 00000000000..5f87c8476d0 --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLContext.java @@ -0,0 +1,31 @@ +// Copyright 2023 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.query.sql.api.sources; + +import org.finos.legend.engine.protocol.sql.metamodel.Node; + +/** + * @deprecated + * Use {@link org.finos.legend.engine.query.sql.providers.core.SQLContext} + */ +@Deprecated +public class SQLContext extends org.finos.legend.engine.query.sql.providers.core.SQLContext +{ + public SQLContext(Node query) + { + super(query); + } +} diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSource.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSource.java new file mode 100644 index 00000000000..005acd21d37 --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSource.java @@ -0,0 +1,42 @@ +// Copyright 2023 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.query.sql.api.sources; + +import org.eclipse.collections.impl.utility.ListIterate; +import org.finos.legend.engine.protocol.pure.v1.model.executionOption.ExecutionOption; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.runtime.Runtime; +import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.raw.Lambda; +import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.raw.executionContext.ExecutionContext; + +import java.util.List; + +/** + * @deprecated + * Use {@link org.finos.legend.engine.query.sql.providers.core.SQLSource} + */ +@Deprecated +public class SQLSource extends org.finos.legend.engine.query.sql.providers.core.SQLSource +{ + public SQLSource(String type, Lambda func, String mapping, Runtime runtime, List executionOptions, List key) + { + this(type, func, mapping, runtime, executionOptions, null, key); + } + + public SQLSource(String type, Lambda func, String mapping, Runtime runtime, List executionOptions, ExecutionContext executionContext, List key) + { + super(type, func, mapping, runtime, executionOptions, executionContext, ListIterate.collect(key, k -> new org.finos.legend.engine.query.sql.providers.core.SQLSourceArgument(k.getName(), k.getIndex(), k.getValue()))); + } +} \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSourceArgument.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSourceArgument.java new file mode 100644 index 00000000000..d0caf9a8470 --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSourceArgument.java @@ -0,0 +1,29 @@ +// Copyright 2023 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.query.sql.api.sources; + +/** + * @deprecated + * Use {@link org.finos.legend.engine.query.sql.providers.core.SQLSourceArgument} + */ +@Deprecated +public class SQLSourceArgument extends org.finos.legend.engine.query.sql.providers.core.SQLSourceArgument +{ + public SQLSourceArgument(String name, Integer index, Object value) + { + super(name, index, value); + } +} \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSourceProvider.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSourceProvider.java similarity index 68% rename from legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSourceProvider.java rename to legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSourceProvider.java index 325a88a3caf..398618954b2 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSourceProvider.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSourceProvider.java @@ -15,14 +15,11 @@ package org.finos.legend.engine.query.sql.api.sources; -import org.eclipse.collections.api.list.MutableList; -import org.pac4j.core.profile.CommonProfile; - -import java.util.List; - -public interface SQLSourceProvider +/** + * @deprecated + * Use {@link org.finos.legend.engine.query.sql.providers.core.SQLSourceProvider} + */ +@Deprecated +public interface SQLSourceProvider extends org.finos.legend.engine.query.sql.providers.core.SQLSourceProvider { - String getType(); - - SQLSourceResolvedContext resolve(List sources, SQLContext context, MutableList profiles); } \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSourceResolvedContext.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSourceResolvedContext.java new file mode 100644 index 00000000000..97b82595f39 --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSourceResolvedContext.java @@ -0,0 +1,59 @@ +// Copyright 2023 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.query.sql.api.sources; + +import org.eclipse.collections.impl.list.mutable.FastList; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContext; + +import java.util.List; + +/** + * @deprecated + * Use {@link org.finos.legend.engine.query.sql.providers.core.SQLSourceResolvedContext} + */ +@Deprecated +public class SQLSourceResolvedContext +{ + private final List pureModelContexts; + private final List sources; + + public SQLSourceResolvedContext(PureModelContext pureModelContext, List sources) + { + this(FastList.newListWith(pureModelContext), sources); + } + + public SQLSourceResolvedContext(List pureModelContexts, List sources) + { + this.pureModelContexts = pureModelContexts != null ? pureModelContexts : FastList.newList(); + this.sources = sources; + } + + @Deprecated + public PureModelContext getPureModelContext() + { + return pureModelContexts.get(0); + } + + public List getPureModelContexts() + { + return pureModelContexts; + } + + public List getSources() + { + return sources; + } +} diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/TableSource.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/api/sources/TableSource.java similarity index 95% rename from legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/TableSource.java rename to legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/api/sources/TableSource.java index 80dcc2ff5ea..ecad910e973 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/TableSource.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/api/sources/TableSource.java @@ -24,6 +24,11 @@ import java.util.List; import java.util.Optional; +/** + * @deprecated + * Use {@link org.finos.legend.engine.query.sql.providers.core.TableSource} + */ +@Deprecated public class TableSource { private final String type; @@ -81,4 +86,4 @@ public String toString() { return ToStringBuilder.reflectionToString(this); } -} +} \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/api/sources/TableSourceArgument.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/api/sources/TableSourceArgument.java new file mode 100644 index 00000000000..2fb04368443 --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/api/sources/TableSourceArgument.java @@ -0,0 +1,72 @@ +// Copyright 2023 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.query.sql.api.sources; + +import org.apache.commons.lang3.builder.EqualsBuilder; +import org.apache.commons.lang3.builder.HashCodeBuilder; +import org.apache.commons.lang3.builder.ToStringBuilder; + +/** + * @deprecated + * Use {@link org.finos.legend.engine.query.sql.providers.core.TableSourceArgument} + */ +@Deprecated +public class TableSourceArgument +{ + private final String name; + private final Object value; + private final Integer index; + + public TableSourceArgument(String name, Integer index, Object value) + { + this.name = name; + this.value = value; + this.index = index; + } + + public String getName() + { + return name; + } + + public Integer getIndex() + { + return index; + } + + public Object getValue() + { + return value; + } + + @Override + public boolean equals(Object o) + { + return EqualsBuilder.reflectionEquals(this, o); + } + + @Override + public int hashCode() + { + return HashCodeBuilder.reflectionHashCode(this); + } + + @Override + public String toString() + { + return ToStringBuilder.reflectionToString(this); + } +} \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLContext.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core/SQLContext.java similarity index 72% rename from legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLContext.java rename to legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core/SQLContext.java index b7588f5b78c..e75c93dee21 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLContext.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core/SQLContext.java @@ -13,23 +13,21 @@ // limitations under the License. // -package org.finos.legend.engine.query.sql.api.sources; +package org.finos.legend.engine.query.sql.providers.core; import org.finos.legend.engine.protocol.sql.metamodel.Node; -import java.util.Map; - public class SQLContext { private final Node query; - private final Map> arguments; - public SQLContext( - Node query, - Map> arguments - ) + public SQLContext(Node query) { this.query = query; - this.arguments = arguments; + } + + public Node getQuery() + { + return query; } } diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSource.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core/SQLSource.java similarity index 88% rename from legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSource.java rename to legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core/SQLSource.java index 44a9d8e6e56..3fc08a71e1c 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSource.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core/SQLSource.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.engine.query.sql.api.sources; +package org.finos.legend.engine.query.sql.providers.core; import org.finos.legend.engine.protocol.pure.v1.model.executionOption.ExecutionOption; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.runtime.Runtime; @@ -33,12 +33,6 @@ public class SQLSource private final ExecutionContext executionContext; private final List key; - @Deprecated - public SQLSource(String type, Lambda func, String mapping, Runtime runtime, List executionOptions, List key) - { - this(type, func, mapping, runtime, executionOptions, null, key); - } - public SQLSource(String type, Lambda func, String mapping, Runtime runtime, List executionOptions, ExecutionContext executionContext, List key) { this.type = type; diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSourceArgument.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core/SQLSourceArgument.java similarity index 94% rename from legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSourceArgument.java rename to legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core/SQLSourceArgument.java index 41a952f2e83..60f94fc0db1 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSourceArgument.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core/SQLSourceArgument.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.engine.query.sql.api.sources; +package org.finos.legend.engine.query.sql.providers.core; public class SQLSourceArgument { diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core/SQLSourceProvider.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core/SQLSourceProvider.java new file mode 100644 index 00000000000..9bc416ef803 --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core/SQLSourceProvider.java @@ -0,0 +1,39 @@ +// Copyright 2023 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.query.sql.providers.core; + +import org.eclipse.collections.api.list.MutableList; +import org.pac4j.core.profile.CommonProfile; + +import java.util.List; + +public interface SQLSourceProvider +{ + String getType(); + + //TODO remove default impl + default SQLSourceResolvedContext resolve(List sources, SQLContext context, MutableList profiles) + { + return null; + } + + //TODO remove default impl + @Deprecated + default org.finos.legend.engine.query.sql.api.sources.SQLSourceResolvedContext resolve(List sources, org.finos.legend.engine.query.sql.api.sources.SQLContext context, MutableList profiles) + { + return null; + } +} \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSourceResolvedContext.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core/SQLSourceResolvedContext.java similarity index 96% rename from legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSourceResolvedContext.java rename to legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core/SQLSourceResolvedContext.java index 959bd70ce1f..f1852c7e2b1 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSourceResolvedContext.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core/SQLSourceResolvedContext.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.engine.query.sql.api.sources; +package org.finos.legend.engine.query.sql.providers.core; import org.eclipse.collections.impl.list.mutable.FastList; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContext; diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core/TableSource.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core/TableSource.java new file mode 100644 index 00000000000..880982335dc --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core/TableSource.java @@ -0,0 +1,114 @@ +// Copyright 2023 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.query.sql.providers.core; + +import org.apache.commons.lang3.builder.EqualsBuilder; +import org.apache.commons.lang3.builder.HashCodeBuilder; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.eclipse.collections.impl.utility.ListIterate; + +import java.util.Collections; +import java.util.List; +import java.util.Optional; + +public class TableSource +{ + private final String type; + private final List arguments; + + public TableSource(String type, List arguments) + { + this.type = type; + this.arguments = arguments == null ? Collections.emptyList() : arguments; + } + + public String getType() + { + return type; + } + + public List getArguments() + { + return this.arguments; + } + + //get named argument, or default to index + public TableSourceArgument getArgument(String name, int index) + { + return getArgument(name, index, true); + } + + public TableSourceArgument getArgument(String name, int index, boolean required) + { + Optional found = getNamedArgument(name); + return found.orElseGet(() -> + { + if (this.arguments.size() > index && index >= 0) + { + return this.arguments.get(index); + } + if (required) + { + throw new IllegalArgumentException("'" + name + "' parameter is required"); + } + else + { + return null; + } + }); + } + + public Optional getNamedArgument(String name) + { + return ListIterate.select(this.arguments, a -> name.equals(a.getName())).getFirstOptional(); + } + + public T getArgumentValueAs(String name, int index, Class type, boolean required) + { + TableSourceArgument argument = getArgument(name, index, required); + + if (!required && argument == null) + { + return null; + } + Object value = argument.getValue(); + + if (type.isInstance(value)) + { + return (T) value; + } + + throw new IllegalArgumentException("Argument of name '" + name + "' or index '" + index + "' is not of type " + type.getName()); + } + + @Override + public boolean equals(Object o) + { + return EqualsBuilder.reflectionEquals(this, o); + } + + @Override + public int hashCode() + { + return HashCodeBuilder.reflectionHashCode(this); + } + + @Override + public String toString() + { + return ToStringBuilder.reflectionToString(this); + } +} diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/TableSourceArgument.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core/TableSourceArgument.java similarity index 96% rename from legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/TableSourceArgument.java rename to legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core/TableSourceArgument.java index 58bbe1bd904..28f4e3b86c2 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/TableSourceArgument.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/src/main/java/org/finos/legend/engine/query/sql/providers/core/TableSourceArgument.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.engine.query.sql.api.sources; +package org.finos.legend.engine.query.sql.providers.core; import org.apache.commons.lang3.builder.EqualsBuilder; import org.apache.commons.lang3.builder.HashCodeBuilder; diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml new file mode 100644 index 00000000000..1651e8868f1 --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml @@ -0,0 +1,84 @@ + + + + + + org.finos.legend.engine + legend-engine-xt-sql-providers + 4.32.1-SNAPSHOT + + 4.0.0 + + legend-engine-xt-sql-providers-relationalStore + jar + Legend Engine - XT - SQL - Providers - Relational Store + + + + + org.finos.legend.engine + legend-engine-xt-sql-providers-core + + + org.finos.legend.engine + legend-engine-xt-sql-providers-shared + + + org.finos.legend.engine + legend-engine-xt-relationalStore-protocol + + + org.finos.legend.engine + legend-engine-protocol-pure + + + + + + org.eclipse.collections + eclipse-collections-api + + + org.eclipse.collections + eclipse-collections + + + + + + junit + junit + test + + + org.mockito + mockito-core + + + org.finos.legend.engine + legend-engine-xt-sql-providers-shared + test-jar + test + + + org.finos.legend.engine + legend-engine-xt-relationalStore-grammar + test + + + + \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/src/main/java/org/finos/legend/engine/query/sql/providers/RelationalStoreSQLSourceProvider.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/src/main/java/org/finos/legend/engine/query/sql/providers/RelationalStoreSQLSourceProvider.java new file mode 100644 index 00000000000..38b7d14d0ec --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/src/main/java/org/finos/legend/engine/query/sql/providers/RelationalStoreSQLSourceProvider.java @@ -0,0 +1,89 @@ +// Copyright 2023 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.query.sql.providers; + +import org.eclipse.collections.impl.list.mutable.FastList; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.ConnectionPointer; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.PackageableConnection; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.runtime.LegacyRuntime; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.model.Database; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.model.Schema; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.model.Table; +import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.raw.Lambda; +import org.finos.legend.engine.query.sql.providers.core.SQLSource; +import org.finos.legend.engine.query.sql.providers.core.SQLSourceArgument; +import org.finos.legend.engine.query.sql.providers.core.TableSource; +import org.finos.legend.engine.query.sql.providers.shared.AbstractLegendStoreSQLSourceProvider; +import org.finos.legend.engine.query.sql.providers.shared.project.ProjectCoordinateLoader; +import org.finos.legend.engine.query.sql.providers.shared.utils.SQLProviderUtils; + +import java.util.Collections; +import java.util.List; + +/** + * This class serves for handling the **relationalStore** source type + *

+ * Sample Select statement + * select * from relationalStore(connection => 'my::Connection', store => 'my::Store', schema => 'schema1', table => 'table1', coordinates => 'com.gs:proj1:1.0.0') + * select * from relationalStore(connection => 'my::Connection', store => 'my::Store', schema => 'schema1', table => 'table1', project => 'PROD-12345', workspace => 'myworkspace') + * select * from relationalStore(connection => 'my::Connection', store => 'my::Store', schema => 'schema1', table => 'table1', project => 'PROD-12345', groupWorkspace => 'myworkspace') + */ +public class RelationalStoreSQLSourceProvider extends AbstractLegendStoreSQLSourceProvider +{ + + private static final String TYPE = "relationalStore"; + private static final String ARG_SCHEMA = "schema"; + private static final String ARG_TABLE = "table"; + + public RelationalStoreSQLSourceProvider(ProjectCoordinateLoader projectCoordinateLoader) + { + super(Database.class, projectCoordinateLoader); + } + + @Override + public String getType() + { + return TYPE; + } + + @Override + protected SQLSource createSource(TableSource source, Database store, PackageableConnection connection, List keys, PureModelContextData pmcd) + { + String schemaName = source.getArgumentValueAs(ARG_SCHEMA, -1, String.class, true); + String tableName = source.getArgumentValueAs(ARG_TABLE, -1, String.class, true); + + Lambda lambda = tableToTDS(store, schemaName, tableName); + + ConnectionPointer connectionPtr = new ConnectionPointer(); + connectionPtr.connection = connection.getPath(); + + LegacyRuntime runtime = new LegacyRuntime(); + runtime.connections = FastList.newListWith(connectionPtr); + + Collections.addAll(keys, new SQLSourceArgument(ARG_SCHEMA, null, schemaName), new SQLSourceArgument(ARG_TABLE, null, tableName)); + + return new SQLSource(TYPE, lambda, null, runtime, null, null, keys); + } + + public static Lambda tableToTDS(Database database, String schemaName, String tableName) + { + Schema schema = SQLProviderUtils.extractElement("schema", database.schemas, s -> SQLProviderUtils.equalsEscaped(s.name, schemaName)); + Table table = SQLProviderUtils.extractElement("table", schema.tables, t -> SQLProviderUtils.equalsEscaped(t.name, tableName)); + + return SQLProviderUtils.tableToTDS(database.getPath(), schema.name, table.name); + } +} \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/src/test/java/org/finos/legend/engine/query/sql/providers/TestRelationalStoreSQLSourceProvider.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/src/test/java/org/finos/legend/engine/query/sql/providers/TestRelationalStoreSQLSourceProvider.java new file mode 100644 index 00000000000..c99585700bb --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/src/test/java/org/finos/legend/engine/query/sql/providers/TestRelationalStoreSQLSourceProvider.java @@ -0,0 +1,227 @@ +// Copyright 2023 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.query.sql.providers; + +import org.eclipse.collections.impl.list.mutable.FastList; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContext; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextPointer; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.ConnectionPointer; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.runtime.LegacyRuntime; +import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.raw.Lambda; +import org.finos.legend.engine.query.sql.providers.core.SQLSource; +import org.finos.legend.engine.query.sql.providers.core.SQLSourceArgument; +import org.finos.legend.engine.query.sql.providers.core.SQLSourceProvider; +import org.finos.legend.engine.query.sql.providers.core.SQLSourceResolvedContext; +import org.finos.legend.engine.query.sql.providers.core.TableSource; +import org.finos.legend.engine.query.sql.providers.core.TableSourceArgument; +import org.finos.legend.engine.query.sql.providers.shared.AbstractTestLegendStoreSQLSourceProvider; +import org.finos.legend.engine.query.sql.providers.shared.SQLSourceProviderTestUtils; +import org.finos.legend.engine.query.sql.providers.shared.project.ProjectCoordinateLoader; +import org.finos.legend.engine.query.sql.providers.shared.project.ProjectCoordinateWrapper; +import org.finos.legend.engine.query.sql.providers.shared.project.ProjectResolvedContext; +import org.finos.legend.engine.query.sql.providers.shared.utils.SQLProviderUtils; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; + +import java.util.List; + +import static org.finos.legend.engine.query.sql.providers.shared.SQLSourceProviderTestUtils.loadPureModelContextFromResource; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.when; + +@RunWith(MockitoJUnitRunner.class) +public class TestRelationalStoreSQLSourceProvider extends AbstractTestLegendStoreSQLSourceProvider +{ + private static final String CONNECTION_NAME = "simple::store::DB::H2Connection"; + + @Mock + private ProjectCoordinateLoader projectCoordinateLoader; + + private RelationalStoreSQLSourceProvider provider; + + @Before + public void setup() + { + provider = new RelationalStoreSQLSourceProvider(projectCoordinateLoader); + } + + @Override + protected SQLSourceProvider getProvider() + { + return provider; + } + + @Override + protected ProjectCoordinateLoader getProjectCoordinateLoader() + { + return projectCoordinateLoader; + } + + @Test + public void testType() + { + Assert.assertEquals("relationalStore", provider.getType()); + } + + @Test + public void testMissingSchema() + { + TableSource tableSource = new TableSource("relationalStore", FastList.newListWith( + new TableSourceArgument("store", null, "simple::store::DBForSQL"), + new TableSourceArgument("coordinates", null, "group:artifact:version"), + new TableSourceArgument("connection", null, CONNECTION_NAME))); + + testError(tableSource, ProjectCoordinateWrapper.coordinates("group:artifact:version"), "'schema' parameter is required"); + } + + @Test + public void testMissingTable() + { + TableSource tableSource = new TableSource("relationalStore", FastList.newListWith( + new TableSourceArgument("store", null, "simple::store::DBForSQL"), + new TableSourceArgument("schema", null, "nonexistent"), + new TableSourceArgument("connection", null, CONNECTION_NAME), + new TableSourceArgument("coordinates", null, "group:artifact:version"))); + + testError(tableSource, ProjectCoordinateWrapper.coordinates("group:artifact:version"), "'table' parameter is required"); + } + + @Test + public void testDatabaseFoundSchemaNotFound() + { + testNotFound("nonexistent", "nonexistent", "No element found for 'schema'"); + } + + @Test + public void testDatabaseFoundSchemaFoundTableNotFound() + { + testNotFound("DBSchema", "nonexistent", "No element found for 'table'"); + } + + @Test + public void testSingleFromCoordinates() + { + testSuccess( + ProjectCoordinateWrapper.coordinates("group:artifact:version"), + new PureModelContextPointer(), + FastList.newListWith(new TableSourceArgument("coordinates", null, "group:artifact:version")), + FastList.newListWith(new SQLSourceArgument("coordinates", null, "group:artifact:version"))); + + } + + @Test + public void testSingleFromProjectWorkspace() + { + testSuccess( + ProjectCoordinateWrapper.workspace("proj1", "ws1"), + new PureModelContextPointer(), + FastList.newListWith( + new TableSourceArgument("project", null, "proj1"), + new TableSourceArgument("workspace", null, "ws1")), + FastList.newListWith( + new SQLSourceArgument("project", null, "proj1"), + new SQLSourceArgument("workspace", null, "ws1") + ) + ); + } + + @Test + public void testSingleFromProjectGroupWorkspace() + { + testSuccess( + ProjectCoordinateWrapper.groupWorkspace("proj1", "ws1"), + new PureModelContextPointer(), + FastList.newListWith( + new TableSourceArgument("project", null, "proj1"), + new TableSourceArgument("groupWorkspace", null, "ws1")), + FastList.newListWith( + new SQLSourceArgument("project", null, "proj1"), + new SQLSourceArgument("groupWorkspace", null, "ws1") + ) + ); + } + + private void testNotFound(String schema, String table, String error) + { + PureModelContextData pmcd = loadPureModelContextFromResource("pmcd.pure", this.getClass()); + when(projectCoordinateLoader.resolve(eq(ProjectCoordinateWrapper.coordinates("group:artifact:version")), any())).thenReturn(new ProjectResolvedContext(pmcd, pmcd)); + + TableSource tableSource = new TableSource("relationalStore", FastList.newListWith( + new TableSourceArgument("store", null, "simple::store::DBForSQL"), + new TableSourceArgument("connection", null, CONNECTION_NAME), + new TableSourceArgument("schema", null, schema), + new TableSourceArgument("table", null, table), + new TableSourceArgument("coordinates", null, "group:artifact:version"))); + + testError(tableSource, error); + } + + private void testError(TableSource tableSource, ProjectCoordinateWrapper projectCoordinateWrapper, String error) + { + PureModelContextData pmcd = loadPureModelContextFromResource("pmcd.pure", this.getClass()); + when(projectCoordinateLoader.resolve(eq(projectCoordinateWrapper), any())).thenReturn(new ProjectResolvedContext(pmcd, pmcd)); + + testError(tableSource, error); + } + + private void testSuccess(ProjectCoordinateWrapper projectCoordinateWrapper, PureModelContext expectedContext, List tableSourceKeys, List sourceKeys) + { + PureModelContextData pmcd = loadPureModelContextFromResource("pmcd.pure", this.getClass()); + when(projectCoordinateLoader.resolve(eq(projectCoordinateWrapper), any())).thenReturn(new ProjectResolvedContext(expectedContext, pmcd)); + + String databaseName = "simple::store::DBForSQL"; + String schemaName = "DBSchema"; + String tableName = "FIRM_TABLE"; + + TableSource tablesource = new TableSource("relationalStore", FastList.newListWith( + new TableSourceArgument("store", null, databaseName), + new TableSourceArgument("schema", null, schemaName), + new TableSourceArgument("table", null, tableName), + new TableSourceArgument("connection", null, CONNECTION_NAME)).withAll(tableSourceKeys) + ); + + List keys = FastList.newListWith( + new SQLSourceArgument("store", null, databaseName), + new SQLSourceArgument("connection", null, CONNECTION_NAME)) + .withAll(sourceKeys) + .with(new SQLSourceArgument("schema", null, schemaName)) + .with(new SQLSourceArgument("table", null, tableName)); + + SQLSourceResolvedContext result = provider.resolve(FastList.newListWith(tablesource), null, FastList.newList()); + + Lambda lambda = SQLProviderUtils.tableToTDS(databaseName, schemaName, tableName); + + ConnectionPointer connectionPtr = new ConnectionPointer(); + connectionPtr.connection = CONNECTION_NAME; + + LegacyRuntime runtime = new LegacyRuntime(); + runtime.connections = FastList.newListWith(connectionPtr); + + SQLSource expected = new SQLSource("relationalStore", lambda, null, runtime, null, null, keys); + + //ASSERT + Assert.assertEquals(FastList.newListWith(expectedContext), result.getPureModelContexts()); + Assert.assertEquals(1, result.getSources().size()); + + SQLSourceProviderTestUtils.assertLogicalEquality(expected, result.getSources().get(0)); + } +} \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/src/test/resources/META-INF/services/org.finos.legend.engine.language.pure.grammar.from.extension.PureGrammarParserExtension b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/src/test/resources/META-INF/services/org.finos.legend.engine.language.pure.grammar.from.extension.PureGrammarParserExtension new file mode 100644 index 00000000000..14ee6d447b1 --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/src/test/resources/META-INF/services/org.finos.legend.engine.language.pure.grammar.from.extension.PureGrammarParserExtension @@ -0,0 +1 @@ +org.finos.legend.engine.language.pure.grammar.from.RelationalGrammarParserExtension \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/src/test/resources/pmcd.pure b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/src/test/resources/pmcd.pure new file mode 100644 index 00000000000..948018fa779 --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/src/test/resources/pmcd.pure @@ -0,0 +1,45 @@ +###Relational +Database simple::store::DBForSQL +( + Schema DBSchema + ( + Table FIRM_TABLE + ( + ID INTEGER PRIMARY KEY, + LEGAL_NAME VARCHAR(100) + ) + + Table PERSON_TABLE + ( + ID INTEGER PRIMARY KEY, + FIRST_NAME VARCHAR(100), + LAST_NAME VARCHAR(100), + FIRM_ID INTEGER + ) + ) +) + +###Connection +RelationalDatabaseConnection simple::store::DB::H2Connection{ + store: simple::store::DB; + type: H2; + specification: LocalH2{ + testDataSetupSqls: [ + 'DROP TABLE IF EXISTS PERSON_TABLE;', + 'CREATE TABLE PERSON_TABLE(ID INT PRIMARY KEY, FIRST_NAME VARCHAR(100), LAST_NAME VARCHAR(100), FIRM_ID INT);', + 'INSERT INTO PERSON_TABLE(ID,FIRST_NAME,LAST_NAME,FIRM_ID) VALUES (1,\'Peter\',\'Smith\',1);', + 'INSERT INTO PERSON_TABLE(ID,FIRST_NAME,LAST_NAME,FIRM_ID) VALUES (2,\'John\',\'Johnson\',1);', + 'INSERT INTO PERSON_TABLE(ID,FIRST_NAME,LAST_NAME,FIRM_ID) VALUES (3,\'John\',\'Hill\',1);', + 'INSERT INTO PERSON_TABLE(ID,FIRST_NAME,LAST_NAME,FIRM_ID) VALUES (4,\'Anthony\',\'Allen\',1)', + 'INSERT INTO PERSON_TABLE(ID,FIRST_NAME,LAST_NAME,FIRM_ID) VALUES (5,\'Fabrice\',\'Roberts\',2)', + 'INSERT INTO PERSON_TABLE(ID,FIRST_NAME,LAST_NAME,FIRM_ID) VALUES (6,\'Oliver\',\'Hill\',3)', + 'INSERT INTO PERSON_TABLE(ID,FIRST_NAME,LAST_NAME,FIRM_ID) VALUES (7,\'David\',\'Harris\',3)', + 'DROP TABLE IF EXISTS FIRM_TABLE;', + 'CREATE TABLE FIRM_TABLE(ID INT PRIMARY KEY, LEGAL_NAME VARCHAR(100));', + 'INSERT INTO FIRM_TABLE(ID,LEGAL_NAME) VALUES (1,\'Firm X\');', + 'INSERT INTO FIRM_TABLE(ID,LEGAL_NAME) VALUES (2,\'Firm A\');', + 'INSERT INTO FIRM_TABLE(ID,LEGAL_NAME) VALUES (3,\'Firm B\');' + ]; + }; + auth: DefaultH2; +} \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml new file mode 100644 index 00000000000..f34c9ce12a6 --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml @@ -0,0 +1,97 @@ + + + + + + org.finos.legend.engine + legend-engine-xt-sql-providers + 4.32.1-SNAPSHOT + + 4.0.0 + + legend-engine-xt-sql-providers-service + jar + Legend Engine - XT - SQL - Providers - Service + + + + + + org.finos.legend.engine + legend-engine-xt-sql-providers-core + + + org.finos.legend.engine + legend-engine-xt-sql-providers-shared + + + org.finos.legend.engine + legend-engine-language-pure-dsl-service + + + org.finos.legend.engine + legend-engine-protocol-pure + + + org.finos.legend.engine + legend-engine-shared-core + + + + + + org.eclipse.collections + eclipse-collections-api + + + org.eclipse.collections + eclipse-collections + + + + + + org.pac4j + pac4j-core + + + + + + junit + junit + test + + + org.mockito + mockito-core + + + org.finos.legend.engine + legend-engine-xt-sql-providers-shared + test-jar + test + + + org.finos.legend.engine + legend-engine-xt-relationalStore-grammar + test + + + + + \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/src/main/java/org/finos/legend/engine/query/sql/providers/LegendServiceSQLSourceProvider.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/src/main/java/org/finos/legend/engine/query/sql/providers/LegendServiceSQLSourceProvider.java new file mode 100644 index 00000000000..ada0258cda0 --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/src/main/java/org/finos/legend/engine/query/sql/providers/LegendServiceSQLSourceProvider.java @@ -0,0 +1,120 @@ +// Copyright 2023 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.query.sql.providers; + +import org.eclipse.collections.api.list.MutableList; +import org.eclipse.collections.api.tuple.Pair; +import org.eclipse.collections.impl.list.mutable.FastList; +import org.eclipse.collections.impl.tuple.Tuples; +import org.eclipse.collections.impl.utility.ListIterate; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContext; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.service.KeyedExecutionParameter; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.service.PureMultiExecution; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.service.PureSingleExecution; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.service.Service; +import org.finos.legend.engine.query.sql.providers.core.SQLContext; +import org.finos.legend.engine.query.sql.providers.core.SQLSource; +import org.finos.legend.engine.query.sql.providers.core.SQLSourceArgument; +import org.finos.legend.engine.query.sql.providers.core.SQLSourceProvider; +import org.finos.legend.engine.query.sql.providers.core.SQLSourceResolvedContext; +import org.finos.legend.engine.query.sql.providers.core.TableSource; +import org.finos.legend.engine.query.sql.providers.shared.project.ProjectCoordinateLoader; +import org.finos.legend.engine.query.sql.providers.shared.project.ProjectCoordinateWrapper; +import org.finos.legend.engine.query.sql.providers.shared.project.ProjectResolvedContext; +import org.finos.legend.engine.query.sql.providers.shared.utils.SQLProviderUtils; +import org.finos.legend.engine.shared.core.operational.errorManagement.EngineException; +import org.pac4j.core.profile.CommonProfile; + +import java.util.List; +import java.util.Optional; + +/** + * This class serves for handling the **service** source type + *

+ * Sample Select statement + * select * from service('/my/service', coordinates => 'com.gs:proj1:1.0.0') + * select * from service('/my/service', project => 'PROD-12345', workspace => 'myWorkspace') + * select * from service('/my/service', project => 'PROD-12345', groupWorkspace => 'myGroupWorkspace') + */ +public class LegendServiceSQLSourceProvider implements SQLSourceProvider +{ + private static final String PATTERN = "pattern"; + private static final String SERVICE = "service"; + + private final ProjectCoordinateLoader projectCoordinateLoader; + + public LegendServiceSQLSourceProvider(ProjectCoordinateLoader projectCoordinateLoader) + { + this.projectCoordinateLoader = projectCoordinateLoader; + } + + @Override + public String getType() + { + return SERVICE; + } + + @Override + public SQLSourceResolvedContext resolve(List sources, SQLContext context, MutableList profiles) + { + MutableList> resolved = ListIterate.collect(sources, source -> + { + String pattern = source.getArgumentValueAs(PATTERN, 0, String.class, true); + ProjectCoordinateWrapper projectCoordinateWrapper = ProjectCoordinateWrapper.extractFromTableSource(source); + + ProjectResolvedContext resolvedProject = projectCoordinateLoader.resolve(projectCoordinateWrapper, profiles); + + Service service = SQLProviderUtils.extractElement("service", Service.class, resolvedProject.getData(), s -> pattern.equals(s.pattern)); + FastList keys = FastList.newListWith(new SQLSourceArgument(PATTERN, 0, pattern)); + projectCoordinateWrapper.addProjectCoordinatesAsSQLSourceArguments(keys); + SQLSource resolvedSource; + + if (service.execution instanceof PureSingleExecution) + { + resolvedSource = from((PureSingleExecution) service.execution, keys); + } + else if (service.execution instanceof PureMultiExecution) + { + resolvedSource = from((PureMultiExecution) service.execution, source, keys); + } + else + { + throw new EngineException("Execution Type Unsupported"); + } + + return Tuples.pair(resolvedSource, resolvedProject.getContext()); + }); + + return new SQLSourceResolvedContext(resolved.collect(Pair::getTwo), resolved.collect(Pair::getOne)); + } + + private SQLSource from(PureSingleExecution pse, List keys) + { + return new SQLSource(SERVICE, pse.func, pse.mapping, pse.runtime, pse.executionOptions, null, keys); + } + + private SQLSource from(PureMultiExecution pme, TableSource source, List keys) + { + String key = (String) source.getArgument(pme.executionKey, -1).getValue(); + Optional optional = ListIterate.select(pme.executionParameters, e -> e.key.equals(key)).getFirstOptional(); + + KeyedExecutionParameter execution = optional.orElseThrow(() -> new IllegalArgumentException("No execution found for key " + key)); + + keys.add(new SQLSourceArgument(pme.executionKey, null, key)); + + return new SQLSource(SERVICE, pme.func, execution.mapping, execution.runtime, execution.executionOptions, null, keys); + } +} \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/src/test/java/org/finos/legend/engine/query/sql/providers/TestLegendServiceSQLSourceProvider.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/src/test/java/org/finos/legend/engine/query/sql/providers/TestLegendServiceSQLSourceProvider.java new file mode 100644 index 00000000000..3a6a8759df3 --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/src/test/java/org/finos/legend/engine/query/sql/providers/TestLegendServiceSQLSourceProvider.java @@ -0,0 +1,194 @@ +// Copyright 2023 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.query.sql.providers; + +import org.eclipse.collections.api.block.function.Function; +import org.eclipse.collections.api.block.procedure.Procedure; +import org.eclipse.collections.impl.list.mutable.FastList; +import org.eclipse.collections.impl.utility.ListIterate; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextPointer; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.service.KeyedExecutionParameter; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.service.PureMultiExecution; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.service.PureSingleExecution; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.service.Service; +import org.finos.legend.engine.query.sql.providers.core.SQLSource; +import org.finos.legend.engine.query.sql.providers.core.SQLSourceArgument; +import org.finos.legend.engine.query.sql.providers.core.SQLSourceResolvedContext; +import org.finos.legend.engine.query.sql.providers.core.TableSource; +import org.finos.legend.engine.query.sql.providers.core.TableSourceArgument; +import org.finos.legend.engine.query.sql.providers.shared.project.ProjectCoordinateLoader; +import org.finos.legend.engine.query.sql.providers.shared.project.ProjectCoordinateWrapper; +import org.finos.legend.engine.query.sql.providers.shared.project.ProjectResolvedContext; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; + +import static org.finos.legend.engine.query.sql.providers.shared.SQLSourceProviderTestUtils.assertLogicalEquality; +import static org.finos.legend.engine.query.sql.providers.shared.SQLSourceProviderTestUtils.loadPureModelContextFromResource; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.any; +import static org.mockito.Mockito.when; + +@RunWith(MockitoJUnitRunner.class) +public class TestLegendServiceSQLSourceProvider +{ + @Mock + private ProjectCoordinateLoader projectCoordinateLoader; + + private LegendServiceSQLSourceProvider provider; + + @Before + public void setup() + { + provider = new LegendServiceSQLSourceProvider(projectCoordinateLoader); + } + + @Test + public void testType() + { + Assert.assertEquals("service", provider.getType()); + } + + public void testSingleService(String pattern, TableSource table, Procedure pmcdSupplier, Function expectedFunc) + { + PureModelContextData pmcd = loadPureModelContextFromResource("pmcd.pure", this.getClass()); + + Service service = ListIterate.select(pmcd.getElementsOfType(Service.class), s -> s.pattern.equals(pattern)).getOnly(); + PureSingleExecution execution = (PureSingleExecution) service.execution; + + pmcdSupplier.accept(pmcd); + + SQLSource expected = expectedFunc.apply(execution); + + SQLSourceResolvedContext resolved = provider.resolve(FastList.newListWith(table), null, FastList.newList()); + Assert.assertNotNull(resolved.getPureModelContext()); + Assert.assertEquals(1, resolved.getSources().size()); + + assertLogicalEquality(expected, resolved.getSources().get(0)); + } + + @Test + public void testSingleServicePatternAndCoordinates() + { + String pattern = "/people"; + TableSource table = new TableSource("service", FastList.newListWith( + new TableSourceArgument("pattern", 0, pattern), + new TableSourceArgument("coordinates", null, "group:artifact:version") + )); + + testSingleService(pattern, table, pmcd -> + { + PureModelContextPointer pointer = new PureModelContextPointer(); + when(projectCoordinateLoader.resolve(eq(ProjectCoordinateWrapper.coordinates("group:artifact:version")), any())).thenReturn(new ProjectResolvedContext(pointer, pmcd)); + }, execution -> new SQLSource("service", execution.func, execution.mapping, execution.runtime, execution.executionOptions, null, FastList.newListWith( + new SQLSourceArgument("pattern", 0, pattern), + new SQLSourceArgument("coordinates", null, "group:artifact:version") + ))); + } + + @Test + public void testMultiServicePatternAndCoordinates() + { + String pattern = "/people/{key}"; + PureModelContextData pmcd = loadPureModelContextFromResource("pmcd.pure", this.getClass()); + + + PureModelContextPointer pointer = new PureModelContextPointer(); + when(projectCoordinateLoader.resolve(eq(ProjectCoordinateWrapper.coordinates("group:artifact:version")), any())).thenReturn(new ProjectResolvedContext(pointer, pmcd)); + + Service service = ListIterate.select(pmcd.getElementsOfType(Service.class), s -> s.pattern.equals(pattern)).getOnly(); + PureMultiExecution multi = (PureMultiExecution) service.execution; + KeyedExecutionParameter execution = multi.executionParameters.get(1); + + + TableSource table = new TableSource("service", FastList.newListWith( + new TableSourceArgument("pattern", 0, pattern), + new TableSourceArgument("key", null, "k2"), + new TableSourceArgument("coordinates", null, "group:artifact:version") + )); + + SQLSource expected = new SQLSource("service", multi.func, execution.mapping, execution.runtime, execution.executionOptions, null, FastList.newListWith( + new SQLSourceArgument("pattern", 0, pattern), + new SQLSourceArgument("coordinates", null, "group:artifact:version"), + new SQLSourceArgument("key", null, "k2") + )); + + SQLSourceResolvedContext resolved = provider.resolve(FastList.newListWith(table), null, FastList.newList()); + Assert.assertEquals(FastList.newListWith(pointer), resolved.getPureModelContexts()); + Assert.assertEquals(1, resolved.getSources().size()); + + assertLogicalEquality(expected, resolved.getSources().get(0)); + } + + @Test + public void testSingleServicePatternPatternAndWorkspace() + { + String pattern = "/people"; + TableSource table = new TableSource("service", FastList.newListWith( + new TableSourceArgument("pattern", 0, pattern), + new TableSourceArgument("project", null, "p1"), + new TableSourceArgument("workspace", null, "ws") + )); + + testSingleService(pattern, table, pmcd -> + when(projectCoordinateLoader.resolve(eq(ProjectCoordinateWrapper.workspace("p1", "ws")), any())).thenReturn(new ProjectResolvedContext(pmcd, pmcd)), + execution -> new SQLSource("service", execution.func, execution.mapping, execution.runtime, execution.executionOptions, null, FastList.newListWith( + new SQLSourceArgument("pattern", 0, pattern), + new SQLSourceArgument("project", null, "p1"), + new SQLSourceArgument("workspace", null, "ws") + ))); + + } + + @Test + public void testSingleServicePatternPatternAndGroupWorkspace() + { + String pattern = "/people"; + TableSource table = new TableSource("service", FastList.newListWith( + new TableSourceArgument("pattern", 0, pattern), + new TableSourceArgument("project", null, "p1"), + new TableSourceArgument("groupWorkspace", null, "gws") + )); + + testSingleService(pattern, table, pmcd -> + when(projectCoordinateLoader.resolve(eq(ProjectCoordinateWrapper.groupWorkspace("p1", "gws")), any())).thenReturn(new ProjectResolvedContext(pmcd, pmcd)), + execution -> new SQLSource("service", execution.func, execution.mapping, execution.runtime, execution.executionOptions, null, FastList.newListWith( + new SQLSourceArgument("pattern", 0, pattern), + new SQLSourceArgument("project", null, "p1"), + new SQLSourceArgument("groupWorkspace", null, "gws") + ))); + + } + + @Test + public void testNoServiceFound() + { + PureModelContextData pmcd = loadPureModelContextFromResource("pmcd.pure", this.getClass()); + when(projectCoordinateLoader.resolve(eq(ProjectCoordinateWrapper.workspace("p1", "ws")), any())).thenReturn(new ProjectResolvedContext(pmcd, pmcd)); + + TableSource table = new TableSource("service", FastList.newListWith( + new TableSourceArgument("pattern", 0, "notfound"), + new TableSourceArgument("project", null, "p1"), + new TableSourceArgument("workspace", null, "ws") + )); + IllegalArgumentException exception = Assert.assertThrows("Should throw given no service found", IllegalArgumentException.class, () -> provider.resolve(FastList.newListWith(table), null, FastList.newList())); + Assert.assertEquals("No element found for 'service'", exception.getMessage()); + } +} \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/src/test/resources/META-INF/services/org.finos.legend.engine.language.pure.grammar.from.extension.PureGrammarParserExtension b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/src/test/resources/META-INF/services/org.finos.legend.engine.language.pure.grammar.from.extension.PureGrammarParserExtension new file mode 100644 index 00000000000..14ee6d447b1 --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/src/test/resources/META-INF/services/org.finos.legend.engine.language.pure.grammar.from.extension.PureGrammarParserExtension @@ -0,0 +1 @@ +org.finos.legend.engine.language.pure.grammar.from.RelationalGrammarParserExtension \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/src/test/resources/pmcd.pure b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/src/test/resources/pmcd.pure new file mode 100644 index 00000000000..fa96a3b66fb --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/src/test/resources/pmcd.pure @@ -0,0 +1,125 @@ +###Pure +import simple::model::*; + +Class simple::model::Person +{ + firstName: String[1]; + lastName: String[1]; +} + +###Relational +Database simple::store::DB +( + Table PERSON_TABLE + ( + FIRST_NAME VARCHAR(100), + LAST_NAME VARCHAR(100) + ) +) + +###Mapping +import simple::model::*; +import simple::store::*; + +Mapping simple::mapping::Mapping +( + Person : Relational + { + firstName: [DB]PERSON_TABLE.FIRST_NAME, + lastName: [DB]PERSON_TABLE.LAST_NAME + } +) + +Mapping simple::mapping::Mapping2 +( + Person : Relational + { + firstName: [DB]PERSON_TABLE.FIRST_NAME, + lastName: [DB]PERSON_TABLE.LAST_NAME + } +) + +###Runtime +Runtime simple::runtime::Runtime +{ + mappings : + [ + simple::mapping::Mapping + ]; + connections : + [ + simple::store::DB : + [ + connection_1 : #{ + RelationalDatabaseConnection { + store: simple::store::DB; + type: H2; + specification: LocalH2{ + testDataSetupSqls: [ + 'DROP TABLE IF EXISTS PERSON_TABLE;', + 'CREATE TABLE PERSON_TABLE(ID INT PRIMARY KEY, FIRST_NAME VARCHAR(100), LAST_NAME VARCHAR(100), FIRM_ID INT);', + 'INSERT INTO PERSON_TABLE(ID,FIRST_NAME,LAST_NAME,FIRM_ID) VALUES (1,\'Peter\',\'Smith\',1);' + ]; + }; + auth: DefaultH2; + } + }# + ] + ]; +} + +###Service +Service simple::service::PeopleService +{ + pattern: '/people'; + owners: + [ + 'person1', + 'person2' + ]; + documentation: ''; + autoActivateUpdates: true; + execution: Single + { + query: {| + simple::model::Person.all()->project([ + col(x | $x.firstName, 'first name'), + col(x | $x.lastName, 'last name') + ]) + }; + mapping: simple::mapping::Mapping; + runtime: simple::runtime::Runtime; + } +} + +Service simple::service::MultiExecutionService +{ + pattern: '/people/{key}'; + owners: + [ + 'person1', + 'person2' + ]; + documentation: ''; + autoActivateUpdates: true; + execution: Multi + { + query: {| + simple::model::Person.all()->project([ + col(x | $x.firstName, 'first name'), + col(x | $x.lastName, 'last name') + ]) + }; + key: 'key'; + executions['k1']: + { + mapping: simple::mapping::Mapping; + runtime: simple::runtime::Runtime; + } + executions['k2']: + { + mapping: simple::mapping::Mapping2; + runtime: simple::runtime::Runtime; + } + } +} \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml new file mode 100644 index 00000000000..25e0e30f21e --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml @@ -0,0 +1,159 @@ + + + + + + org.finos.legend.engine + legend-engine-xt-sql-providers + 4.32.1-SNAPSHOT + + 4.0.0 + + legend-engine-xt-sql-providers-shared + jar + Legend Engine - XT - SQL - Providers - Shared + + + + + org.apache.maven.plugins + maven-jar-plugin + + + + test-jar + + + + + + + + + + + javax.ws.rs + javax.ws.rs-api + + + + + org.finos.legend.engine + legend-engine-protocol-pure + + + org.finos.legend.engine + legend-engine-xt-sql-providers-core + + + org.finos.legend.engine + legend-engine-language-pure-modelManager-sdlc + + + org.finos.legend.engine + legend-engine-language-pure-grammar + + + org.finos.legend.engine + legend-engine-language-pure-modelManager + + + org.finos.legend.engine + legend-engine-shared-core + + + + + + + org.eclipse.collections + eclipse-collections-api + + + org.eclipse.collections + eclipse-collections + + + + + + org.apache.httpcomponents + httpclient + + + org.apache.httpcomponents + httpcore + + + + + + org.pac4j + pac4j-core + + + + + + com.fasterxml.jackson.core + jackson-core + + + com.fasterxml.jackson.core + jackson-databind + + + com.fasterxml.jackson.core + jackson-annotations + + + + + + io.opentracing + opentracing-util + + + io.opentracing + opentracing-api + + + + + org.apache.commons + commons-lang3 + + + + + junit + junit + test + + + org.mockito + mockito-core + test + + + commons-io + commons-io + test + + + + \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/AbstractLegendStoreSQLSourceProvider.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/AbstractLegendStoreSQLSourceProvider.java new file mode 100644 index 00000000000..c55a8bfad34 --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/AbstractLegendStoreSQLSourceProvider.java @@ -0,0 +1,83 @@ +// Copyright 2023 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.query.sql.providers.shared; + +import org.eclipse.collections.api.list.MutableList; +import org.eclipse.collections.impl.list.mutable.FastList; +import org.eclipse.collections.impl.utility.ListIterate; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContext; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.PackageableConnection; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.Store; +import org.finos.legend.engine.query.sql.providers.core.SQLContext; +import org.finos.legend.engine.query.sql.providers.core.SQLSource; +import org.finos.legend.engine.query.sql.providers.core.SQLSourceArgument; +import org.finos.legend.engine.query.sql.providers.core.SQLSourceProvider; +import org.finos.legend.engine.query.sql.providers.core.SQLSourceResolvedContext; +import org.finos.legend.engine.query.sql.providers.core.TableSource; +import org.finos.legend.engine.query.sql.providers.shared.project.ProjectCoordinateLoader; +import org.finos.legend.engine.query.sql.providers.shared.project.ProjectCoordinateWrapper; +import org.finos.legend.engine.query.sql.providers.shared.project.ProjectResolvedContext; +import org.finos.legend.engine.query.sql.providers.shared.utils.SQLProviderUtils; +import org.pac4j.core.profile.CommonProfile; + +import java.util.List; + +public abstract class AbstractLegendStoreSQLSourceProvider implements SQLSourceProvider +{ + + private static final String ARG_CONNECTION = "connection"; + private static final String ARG_STORE = "store"; + + private final Class storeType; + private final ProjectCoordinateLoader projectCoordinateLoader; + + public AbstractLegendStoreSQLSourceProvider(Class storeType, ProjectCoordinateLoader projectCoordinateLoader) + { + this.storeType = storeType; + this.projectCoordinateLoader = projectCoordinateLoader; + } + + protected abstract SQLSource createSource(TableSource source, T store, PackageableConnection connection, List keys, PureModelContextData pmcd); + + @Override + public SQLSourceResolvedContext resolve(List sources, SQLContext context, MutableList profiles) + { + List contexts = FastList.newList(); + List sqlSources = FastList.newList(); + + ListIterate.forEach(sources, source -> + { + ProjectCoordinateWrapper projectCoordinateWrapper = ProjectCoordinateWrapper.extractFromTableSource(source); + ProjectResolvedContext resolved = projectCoordinateLoader.resolve(projectCoordinateWrapper, profiles); + + String storeName = source.getArgumentValueAs(ARG_STORE, -1, String.class, true); + String connectionName = source.getArgumentValueAs(ARG_CONNECTION, -1, String.class, true); + + T store = SQLProviderUtils.extractElement(ARG_STORE, this.storeType, resolved.getData(), s -> storeName.equals(s.getPath())); + PackageableConnection connection = SQLProviderUtils.extractElement(ARG_CONNECTION, PackageableConnection.class, resolved.getData(), c -> connectionName.equals(c.getPath())); + + List keys = FastList.newListWith(new SQLSourceArgument(ARG_STORE, null, storeName), new SQLSourceArgument(ARG_CONNECTION, null, connectionName)); + projectCoordinateWrapper.addProjectCoordinatesAsSQLSourceArguments(keys); + + sqlSources.add(createSource(source, store, connection, keys, resolved.getData())); + + contexts.add(resolved.getContext()); + }); + + return new SQLSourceResolvedContext(contexts, sqlSources); + } +} \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/FunctionSQLSourceProvider.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/FunctionSQLSourceProvider.java new file mode 100644 index 00000000000..7c2a3312601 --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/FunctionSQLSourceProvider.java @@ -0,0 +1,104 @@ +// Copyright 2023 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.query.sql.providers.shared; + +import org.eclipse.collections.api.factory.Sets; +import org.eclipse.collections.api.list.MutableList; +import org.eclipse.collections.api.set.ImmutableSet; +import org.eclipse.collections.api.tuple.Pair; +import org.eclipse.collections.impl.list.mutable.FastList; +import org.eclipse.collections.impl.tuple.Tuples; +import org.eclipse.collections.impl.utility.ListIterate; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContext; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.Function; +import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.raw.Lambda; +import org.finos.legend.engine.query.sql.providers.core.SQLContext; +import org.finos.legend.engine.query.sql.providers.core.SQLSource; +import org.finos.legend.engine.query.sql.providers.core.SQLSourceArgument; +import org.finos.legend.engine.query.sql.providers.core.SQLSourceProvider; +import org.finos.legend.engine.query.sql.providers.core.SQLSourceResolvedContext; +import org.finos.legend.engine.query.sql.providers.core.TableSource; +import org.finos.legend.engine.query.sql.providers.shared.project.ProjectCoordinateLoader; +import org.finos.legend.engine.query.sql.providers.shared.project.ProjectCoordinateWrapper; +import org.finos.legend.engine.query.sql.providers.shared.project.ProjectResolvedContext; +import org.finos.legend.engine.query.sql.providers.shared.utils.SQLProviderUtils; +import org.finos.legend.engine.shared.core.operational.errorManagement.EngineException; +import org.pac4j.core.profile.CommonProfile; + +import java.util.List; + +/** + * This class serves for handling the **function** source type + *

+ * Sample Select statement + * select * from func('my::func__TabularDataSet_1_', coordinates => 'com.gs:proj1:1.0.0') + * select * from func('my::func__TabularDataSet_1_', project => 'PROD-12345', workspace => 'myWorkspace') + * select * from func('my::func__TabularDataSet_1_', project => 'PROD-12345', groupWorkspace => 'myGroupWorkspace') + * select * from func('my::func_String_1__TabularDataSet_1_', project => 'PROD-12345', groupWorkspace => 'myGroupWorkspace', myParam => 'abc') + */ +public class FunctionSQLSourceProvider implements SQLSourceProvider +{ + + private static final String FUNCTION = "func"; + private static final String PATH = "path"; + + private static final ImmutableSet TABULAR_TYPES = Sets.immutable.of( + "meta::pure::tds::TabularDataSet" + ); + + private final ProjectCoordinateLoader projectCoordinateLoader; + + public FunctionSQLSourceProvider(ProjectCoordinateLoader projectCoordinateLoader) + { + this.projectCoordinateLoader = projectCoordinateLoader; + } + + @Override + public String getType() + { + return FUNCTION; + } + + @Override + public SQLSourceResolvedContext resolve(List sources, SQLContext context, MutableList profiles) + { + MutableList> resolved = ListIterate.collect(sources, source -> + { + String path = source.getArgumentValueAs(PATH, 0, String.class, true); + ProjectCoordinateWrapper projectCoordinateWrapper = ProjectCoordinateWrapper.extractFromTableSource(source); + + ProjectResolvedContext resolvedProject = projectCoordinateLoader.resolve(projectCoordinateWrapper, profiles); + + Function function = SQLProviderUtils.extractElement("function", Function.class, resolvedProject.getData(), f -> path.equals(f.getPath())); + + if (!TABULAR_TYPES.contains(function.returnType)) + { + throw new EngineException("Function " + path + " does not return Tabular data type"); + } + + Lambda lambda = new Lambda(); + lambda.parameters = function.parameters; + lambda.body = function.body; + + List keys = FastList.newListWith(new SQLSourceArgument(PATH, 0, path)); + projectCoordinateWrapper.addProjectCoordinatesAsSQLSourceArguments(keys); + + return Tuples.pair(new SQLSource(getType(), lambda, null, null, FastList.newList(), null, keys), resolvedProject.getContext()); + }); + + return new SQLSourceResolvedContext(resolved.collect(Pair::getTwo), resolved.collect(Pair::getOne)); + } +} \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/project/ProjectCoordinateLoader.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/project/ProjectCoordinateLoader.java new file mode 100644 index 00000000000..95aa2f04a02 --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/project/ProjectCoordinateLoader.java @@ -0,0 +1,252 @@ +// Copyright 2023 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.query.sql.providers.shared.project; + +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; +import com.fasterxml.jackson.annotation.JsonProperty; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.http.StatusLine; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.BasicCookieStore; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.util.EntityUtils; +import org.eclipse.collections.api.block.function.Function; +import org.eclipse.collections.api.list.MutableList; +import org.finos.legend.engine.language.pure.modelManager.ModelManager; +import org.finos.legend.engine.language.pure.modelManager.sdlc.SDLCLoader; +import org.finos.legend.engine.language.pure.modelManager.sdlc.configuration.ServerConnectionConfiguration; +import org.finos.legend.engine.protocol.pure.PureClientVersions; +import org.finos.legend.engine.protocol.pure.v1.model.context.AlloySDLC; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextPointer; +import org.finos.legend.engine.query.sql.providers.shared.utils.TraceUtils; +import org.finos.legend.engine.shared.core.ObjectMapperFactory; +import org.finos.legend.engine.shared.core.kerberos.HttpClientBuilder; +import org.finos.legend.engine.shared.core.kerberos.ProfileManagerHelper; +import org.finos.legend.engine.shared.core.operational.errorManagement.EngineException; +import org.finos.legend.engine.shared.core.operational.logs.LoggingEventType; +import org.pac4j.core.profile.CommonProfile; + +import javax.security.auth.Subject; +import javax.ws.rs.core.Response; +import java.security.PrivilegedAction; +import java.util.List; +import java.util.Optional; + +public class ProjectCoordinateLoader +{ + private static final ObjectMapper OBJECT_MAPPER = ObjectMapperFactory.getNewStandardObjectMapperWithPureProtocolExtensionSupports(); + + private final ModelManager modelManager; + private final ServerConnectionConfiguration sdlcServerConfig; + private final Function, CloseableHttpClient> httpClientProvider; + + public ProjectCoordinateLoader(ModelManager modelManager, ServerConnectionConfiguration sdlcServerConfig) + { + this(modelManager, sdlcServerConfig, profiles -> (CloseableHttpClient) HttpClientBuilder.getHttpClient(new BasicCookieStore())); + } + + public ProjectCoordinateLoader(ModelManager modelManager, ServerConnectionConfiguration sdlcServerConfig, Function, CloseableHttpClient> httpClientProvider) + { + this.modelManager = modelManager; + this.sdlcServerConfig = sdlcServerConfig; + this.httpClientProvider = httpClientProvider; + } + + public ProjectResolvedContext resolve(ProjectCoordinateWrapper projectCoordinateWrapper, MutableList profiles) + { + return resolve(projectCoordinateWrapper, true, profiles); + } + + public ProjectResolvedContext resolve(ProjectCoordinateWrapper projectCoordinateWrapper, boolean required, MutableList profiles) + { + Optional coordinates = projectCoordinateWrapper.getCoordinates(); + if (coordinates.isPresent()) + { + PureModelContextPointer pointer = pointerFromCoordinates(coordinates.get()); + + PureModelContextData pmcd = modelManager.loadData(pointer, PureClientVersions.production, profiles); + + return new ProjectResolvedContext(pointer, pmcd); + } + Optional project = projectCoordinateWrapper.getProject(); + if (project.isPresent()) + { + Optional workspace = projectCoordinateWrapper.getWorkspace(); + Optional groupWorkspace = projectCoordinateWrapper.getGroupWorkspace(); + String workspaceId = workspace.orElseGet(groupWorkspace::get); + boolean isGroup = groupWorkspace.isPresent(); + String projectId = project.get(); + + PureModelContextData pmcd = loadProjectPureModelContextData(projectId, workspaceId, isGroup, profiles); + + return new ProjectResolvedContext(pmcd, pmcd); + } + + if (required) + { + throw new EngineException("project/workspace or coordinates must be supplied"); + } + + return null; + } + + private PureModelContextPointer pointerFromCoordinates(String coordinates) + { + AlloySDLC sdlc = new AlloySDLC(); + enrichCoordinates(sdlc, coordinates); + PureModelContextPointer pointer = new PureModelContextPointer(); + pointer.sdlcInfo = sdlc; + return pointer; + } + + private void enrichCoordinates(AlloySDLC alloySDLC, String coordinates) + { + String[] parts = coordinates.split(":"); + if (parts.length != 3) + { + throw new IllegalArgumentException("Invalid coordinates on service " + coordinates); + } + + alloySDLC.groupId = parts[0]; + alloySDLC.artifactId = parts[1]; + alloySDLC.version = parts[2]; + } + + private PureModelContextData loadProjectPureModelContextData(String project, String workspace, boolean isGroup, MutableList profiles) + { + return doAs(ProfileManagerHelper.extractSubject(profiles), () -> + { + String url = String.format("%s/api/projects/%s/%s/%s/pureModelContextData", sdlcServerConfig.getBaseUrl(), project, isGroup ? "groupWorkspaces" : "workspaces", workspace); + PureModelContextData projectPMCD = SDLCLoader.loadMetadataFromHTTPURL(profiles, LoggingEventType.METADATA_REQUEST_ALLOY_PROJECT_START, LoggingEventType.METADATA_REQUEST_ALLOY_PROJECT_STOP, url, httpClientProvider); + PureModelContextData dependencyPMCD = getSDLCDependenciesPMCD(project, workspace, isGroup, profiles); + + return projectPMCD.combine(dependencyPMCD); + }); + } + + private PureModelContextData getSDLCDependenciesPMCD(String project, String workspace, boolean isGroup, MutableList profiles) + { + return TraceUtils.trace("Get SDLC Dependencies", span -> + { + + span.setTag("project", project); + span.setTag("workspace", workspace); + span.setTag("group", isGroup); + + if (sdlcServerConfig == null) + { + throw new EngineException("SDLC Server configuration must be supplied"); + } + try (CloseableHttpClient client = this.httpClientProvider.apply(profiles)) + { + String url = String.format("%s/api/projects/%s/%s/%s/revisions/HEAD/upstreamProjects", + sdlcServerConfig.getBaseUrl(), + project, + isGroup ? "groupWorkspaces" : "workspaces", + workspace); + + try (CloseableHttpResponse response = client.execute(new HttpGet(url))) + { + StatusLine status = response.getStatusLine(); + if (!Response.Status.Family.familyOf(status.getStatusCode()).equals(Response.Status.Family.SUCCESSFUL)) + { + throw new RuntimeException(String.format("Status Code: %s\nReason: %s\nMessage: %s", + status.getStatusCode(), status.getReasonPhrase(), "Error fetching from " + url)); + } + + List dependencies = OBJECT_MAPPER.readValue(EntityUtils.toString(response.getEntity()), new TypeReference>() + { + }); + PureModelContextData.Builder builder = PureModelContextData.newBuilder(); + dependencies.forEach(dependency -> + { + try + { + builder.addPureModelContextData(loadProjectData(profiles, dependency.getGroupId(), dependency.getArtifactId(), dependency.versionId)); + } + catch (Exception e) + { + throw new RuntimeException(e); + } + }); + builder.removeDuplicates(); + return builder.build(); + } + } + catch (Exception e) + { + throw new RuntimeException(e); + } + }); + } + + private PureModelContextData loadProjectData(MutableList profiles, String groupId, String artifactId, String versionId) + { + return TraceUtils.trace("Loading Project Data", span -> + { + + span.setTag("groupId", groupId); + span.setTag("artifactId", artifactId); + span.setTag("versionId", versionId); + + Subject subject = ProfileManagerHelper.extractSubject(profiles); + PureModelContextPointer pointer = new PureModelContextPointer(); + AlloySDLC sdlcInfo = new AlloySDLC(); + sdlcInfo.groupId = groupId; + sdlcInfo.artifactId = artifactId; + sdlcInfo.version = versionId; + pointer.sdlcInfo = sdlcInfo; + + return doAs(subject, () -> this.modelManager.loadData(pointer, PureClientVersions.production, profiles)); + }); + } + + private T doAs(Subject subject, PrivilegedAction action) + { + return subject != null ? Subject.doAs(subject, action) : action.run(); + } + + @JsonIgnoreProperties(ignoreUnknown = true) + private static class SDLCProjectDependency + { + private final String projectId; + private final String versionId; + + public SDLCProjectDependency(@JsonProperty("projectId") String projectId, @JsonProperty("versionId") String versionId) + { + this.projectId = projectId; + this.versionId = versionId; + } + + public String getGroupId() + { + return projectId.split(":")[0]; + } + + public String getArtifactId() + { + return projectId.split(":")[1]; + } + + public String getVersionId() + { + return versionId; + } + } +} \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/project/ProjectCoordinateWrapper.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/project/ProjectCoordinateWrapper.java new file mode 100644 index 00000000000..76e453291c0 --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/project/ProjectCoordinateWrapper.java @@ -0,0 +1,137 @@ +// Copyright 2023 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.query.sql.providers.shared.project; + +import org.apache.commons.lang3.builder.EqualsBuilder; +import org.apache.commons.lang3.builder.HashCodeBuilder; +import org.finos.legend.engine.query.sql.providers.core.SQLSourceArgument; +import org.finos.legend.engine.query.sql.providers.core.TableSource; + +import java.util.List; +import java.util.Optional; + +public class ProjectCoordinateWrapper +{ + + private static final String ARG_COORDINATES = "coordinates"; + private static final String ARG_PROJECT = "project"; + private static final String ARG_WORKSPACE = "workspace"; + private static final String ARG_GROUP_WORKSPACE = "groupWorkspace"; + + private final Optional coordinates; + private final Optional project; + private final Optional workspace; + private final Optional groupWorkspace; + + private ProjectCoordinateWrapper(Optional coordinates, Optional project, Optional workspace, Optional groupWorkspace) + { + this.coordinates = coordinates; + this.project = project; + this.workspace = workspace; + this.groupWorkspace = groupWorkspace; + } + + public static ProjectCoordinateWrapper coordinates(String coordinates) + { + return new ProjectCoordinateWrapper(Optional.of(coordinates), Optional.empty(), Optional.empty(), Optional.empty()); + } + + public static ProjectCoordinateWrapper workspace(String project, String workspace) + { + return new ProjectCoordinateWrapper(Optional.empty(), Optional.of(project), Optional.of(workspace), Optional.empty()); + } + + public static ProjectCoordinateWrapper groupWorkspace(String project, String groupWorkspace) + { + return new ProjectCoordinateWrapper(Optional.empty(), Optional.of(project), Optional.empty(), Optional.of(groupWorkspace)); + } + + public static ProjectCoordinateWrapper extractFromTableSource(TableSource source) + { + return extractFromTableSource(source, true); + } + + public static ProjectCoordinateWrapper extractFromTableSource(TableSource source, boolean required) + { + Optional coordinates = Optional.ofNullable(source.getArgumentValueAs(ARG_COORDINATES, -1, String.class, false)); + Optional project = Optional.ofNullable(source.getArgumentValueAs(ARG_PROJECT, -1, String.class, false)); + Optional workspace = Optional.ofNullable(source.getArgumentValueAs(ARG_WORKSPACE, -1, String.class, false)); + Optional groupWorkspace = Optional.ofNullable(source.getArgumentValueAs(ARG_GROUP_WORKSPACE, -1, String.class, false)); + + validateArguments(coordinates, project, workspace, groupWorkspace, required); + + return new ProjectCoordinateWrapper(coordinates, project, workspace, groupWorkspace); + } + + public void addProjectCoordinatesAsSQLSourceArguments(List keys) + { + coordinates.ifPresent(value -> keys.add(new SQLSourceArgument(ARG_COORDINATES, null, value))); + project.ifPresent(value -> keys.add(new SQLSourceArgument(ARG_PROJECT, null, value))); + workspace.ifPresent(value -> keys.add(new SQLSourceArgument(ARG_WORKSPACE, null, value))); + groupWorkspace.ifPresent(value -> keys.add(new SQLSourceArgument(ARG_GROUP_WORKSPACE, null, value))); + } + + private static void validateArguments(Optional coordinates, Optional project, Optional workspace, Optional groupWorkspace, boolean required) + { + if (coordinates.isPresent() && (project.isPresent() || workspace.isPresent() || groupWorkspace.isPresent())) + { + throw new IllegalArgumentException("cannot mix coordinates with project/workspace"); + } + if (project.isPresent() && !(workspace.isPresent() || groupWorkspace.isPresent())) + { + throw new IllegalArgumentException("workspace/group workspace must be supplied if loading from project"); + } + + if (required && !(coordinates.isPresent() || project.isPresent())) + { + throw new IllegalArgumentException("coordinates or project/workspace must be supplied"); + } + } + + + public Optional getCoordinates() + { + return coordinates; + } + + public Optional getProject() + { + return project; + } + + public Optional getWorkspace() + { + return workspace; + } + + public Optional getGroupWorkspace() + { + return groupWorkspace; + } + + @Override + public boolean equals(Object o) + { + return EqualsBuilder.reflectionEquals(this, o); + } + + @Override + public int hashCode() + { + return HashCodeBuilder.reflectionHashCode(this); + } + +} \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/project/ProjectResolvedContext.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/project/ProjectResolvedContext.java new file mode 100644 index 00000000000..8546465c896 --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/project/ProjectResolvedContext.java @@ -0,0 +1,45 @@ +// Copyright 2023 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.query.sql.providers.shared.project; + +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContext; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; + +/** + * This class acts as a holder for a ProjectCoordinateWrapper resolved data + */ +public class ProjectResolvedContext +{ + /** this will be the smallest unit possible, eg. a pointer instead of the full pmcd if available*/ + private final PureModelContext context; + private final PureModelContextData data; + + public ProjectResolvedContext(PureModelContext context, PureModelContextData data) + { + this.context = context; + this.data = data; + } + + public PureModelContext getContext() + { + return context; + } + + public PureModelContextData getData() + { + return data; + } +} diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/utils/SQLProviderUtils.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/utils/SQLProviderUtils.java new file mode 100644 index 00000000000..0e74abaf1ed --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/utils/SQLProviderUtils.java @@ -0,0 +1,83 @@ +// Copyright 2023 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.query.sql.providers.shared.utils; + +import org.eclipse.collections.api.list.MutableList; +import org.eclipse.collections.impl.list.mutable.FastList; +import org.eclipse.collections.impl.utility.ListIterate; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.PackageableElement; +import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.application.AppliedFunction; +import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.raw.CString; +import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.raw.Lambda; +import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.raw.PackageableElementPtr; + +import java.util.Collections; +import java.util.List; +import java.util.function.Predicate; + +public class SQLProviderUtils +{ + + public static T extractElement(String argumentName, Class type, PureModelContextData pmcd, Predicate predicate) + { + return extractElement(argumentName, pmcd.getElementsOfType(type), predicate); + } + + public static T extractElement(String argumentName, List list, Predicate predicate) + { + MutableList elements = ListIterate.select(list, + element -> predicate.test(element)); + + if (elements.isEmpty()) + { + throw new IllegalArgumentException("No element found for '" + argumentName + "'"); + } + + if (elements.size() > 1) + { + throw new IllegalArgumentException("Multiple elements found for '" + argumentName + "'"); + } + + return elements.getOnly(); + } + + public static Lambda tableToTDS(String databasePath, String schemaName, String tableName) + { + PackageableElementPtr databasePtr = new PackageableElementPtr(); + databasePtr.fullPath = databasePath; + + AppliedFunction tableReferenceFunc = new AppliedFunction(); + tableReferenceFunc.function = "tableReference"; + tableReferenceFunc.fControl = "tableReference_Database_1__String_1__String_1__Table_1_"; + tableReferenceFunc.parameters = FastList.newListWith(databasePtr, new CString(schemaName), new CString(tableName)); + + AppliedFunction tableToTdsFunc = new AppliedFunction(); + tableToTdsFunc.function = "tableToTDS"; + tableToTdsFunc.fControl = "tableToTDS_Table_1__TableTDS_1_"; + tableToTdsFunc.parameters = Collections.singletonList(tableReferenceFunc); + + Lambda lambda = new Lambda(); + lambda.body = Collections.singletonList(tableToTdsFunc); + + return lambda; + } + + public static boolean equalsEscaped(String value, String toMatch) + { + return value.equals(toMatch) || value.equals("\"" + toMatch + "\""); + } +} \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/utils/TraceUtils.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/utils/TraceUtils.java new file mode 100644 index 00000000000..baed8276557 --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/utils/TraceUtils.java @@ -0,0 +1,72 @@ +// Copyright 2023 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.query.sql.providers.shared.utils; + +import io.opentracing.Scope; +import io.opentracing.Span; +import io.opentracing.util.GlobalTracer; +import org.eclipse.collections.api.block.procedure.Procedure; + +import java.util.function.Function; +import java.util.function.Supplier; + +public class TraceUtils +{ + private static final String PREFIX = "Legend SQL: "; + + public static void trace(String name, Procedure procedure) + { + Span span = GlobalTracer.get().buildSpan(PREFIX + name).start(); + + try (Scope ignored = GlobalTracer.get().activateSpan(span)) + { + procedure.accept(span); + } + finally + { + span.finish(); + } + } + + public static T trace(String name, Supplier supplier) + { + + Span span = GlobalTracer.get().buildSpan(PREFIX + name).start(); + + try (Scope ignored = GlobalTracer.get().activateSpan(span)) + { + return supplier.get(); + } + finally + { + span.finish(); + } + } + + public static T trace(String name, Function supplier) + { + Span span = GlobalTracer.get().buildSpan(PREFIX + name).start(); + + try (Scope ignored = GlobalTracer.get().activateSpan(span)) + { + return supplier.apply(span); + } + finally + { + span.finish(); + } + } +} \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/test/java/org/finos/legend/engine/query/sql/providers/shared/AbstractTestLegendStoreSQLSourceProvider.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/test/java/org/finos/legend/engine/query/sql/providers/shared/AbstractTestLegendStoreSQLSourceProvider.java new file mode 100644 index 00000000000..80d8c9e2104 --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/test/java/org/finos/legend/engine/query/sql/providers/shared/AbstractTestLegendStoreSQLSourceProvider.java @@ -0,0 +1,109 @@ +// Copyright 2023 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.query.sql.providers.shared; + +import org.eclipse.collections.impl.list.mutable.FastList; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; +import org.finos.legend.engine.query.sql.providers.core.SQLSourceProvider; +import org.finos.legend.engine.query.sql.providers.core.TableSource; +import org.finos.legend.engine.query.sql.providers.core.TableSourceArgument; +import org.finos.legend.engine.query.sql.providers.shared.project.ProjectCoordinateLoader; +import org.finos.legend.engine.query.sql.providers.shared.project.ProjectResolvedContext; +import org.junit.Assert; +import org.junit.Test; + +import static org.finos.legend.engine.query.sql.providers.shared.SQLSourceProviderTestUtils.loadPureModelContextFromResource; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.when; + +public abstract class AbstractTestLegendStoreSQLSourceProvider +{ + @Test + public void testNoProjectOrCoordindates() + { + TableSource tableSource = new TableSource("store", FastList.newListWith( + new TableSourceArgument("store", null, "notfound")) + ); + + testError(tableSource, "coordinates or project/workspace must be supplied"); + } + + @Test + public void testMissingWorkspace() + { + TableSource tableSource = new TableSource("store", FastList.newListWith( + new TableSourceArgument("store", null, "notfound"), + new TableSourceArgument("project", null, "proj1")) + ); + + testError(tableSource, "workspace/group workspace must be supplied if loading from project"); + } + + @Test + public void testMixedCoordinatesWorkspace() + { + TableSource tableSource = new TableSource("store", FastList.newListWith( + new TableSourceArgument("store", null, "notfound"), + new TableSourceArgument("project", null, "proj1"), + new TableSourceArgument("coordinates", null, "group:artifact:version")) + ); + + testError(tableSource, "cannot mix coordinates with project/workspace"); + } + + @Test + public void testMissingStoreParams() + { + String connectionName = "simple::store::DB::H2Connection"; + + PureModelContextData pmcd = loadPureModelContextFromResource("pmcd.pure", this.getClass()); + when(getProjectCoordinateLoader().resolve(any(), any())).thenReturn(new ProjectResolvedContext(pmcd, pmcd)); + + TableSource table = new TableSource("relationalStore", FastList.newListWith( + new TableSourceArgument("coordinates", null, "group:artifact:version"), + new TableSourceArgument("connection", null, connectionName))); + + IllegalArgumentException exception = Assert.assertThrows("Should throw given no store found", IllegalArgumentException.class, () -> getProvider().resolve(FastList.newListWith(table), null, FastList.newList())); + Assert.assertEquals("'store' parameter is required", exception.getMessage()); + } + + @Test + public void testStoreNotFound() + { + when(getProjectCoordinateLoader().resolve(any(), any())).thenReturn(new ProjectResolvedContext(mock(PureModelContextData.class), mock(PureModelContextData.class))); + String connectionName = "simple::store::DB::H2Connection"; + + TableSource table = new TableSource("store", FastList.newListWith( + new TableSourceArgument("store", null, "simple::store::DBForSQL"), + new TableSourceArgument("connection", null, connectionName), + new TableSourceArgument("coordinates", null, "group:artifact:version"))); + + IllegalArgumentException exception = Assert.assertThrows("Should throw given no store found", IllegalArgumentException.class, () -> getProvider().resolve(FastList.newListWith(table), null, FastList.newList())); + Assert.assertEquals("No element found for 'store'", exception.getMessage()); + } + + protected void testError(TableSource tableSource, String error) + { + IllegalArgumentException exception = Assert.assertThrows("Should throw error", IllegalArgumentException.class, () -> getProvider().resolve(FastList.newListWith(tableSource), null, FastList.newList())); + Assert.assertEquals(error, exception.getMessage()); + } + + protected abstract SQLSourceProvider getProvider(); + + protected abstract ProjectCoordinateLoader getProjectCoordinateLoader(); + +} diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/test/java/org/finos/legend/engine/query/sql/providers/shared/SQLSourceProviderTestUtils.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/test/java/org/finos/legend/engine/query/sql/providers/shared/SQLSourceProviderTestUtils.java new file mode 100644 index 00000000000..ad318655867 --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/test/java/org/finos/legend/engine/query/sql/providers/shared/SQLSourceProviderTestUtils.java @@ -0,0 +1,79 @@ +// Copyright 2023 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.query.sql.providers.shared; + +import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.commons.io.IOUtils; +import org.finos.legend.engine.language.pure.grammar.from.PureGrammarParser; +import org.finos.legend.engine.protocol.pure.v1.PureProtocolObjectMapperFactory; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; +import org.junit.Assert; + +import java.io.IOException; +import java.util.Objects; + +public class SQLSourceProviderTestUtils +{ + + //TODO replace once equals method added in legend + public static void assertLogicalEquality(Object expected, Object actual) + { + try + { + ObjectMapper mapper = PureProtocolObjectMapperFactory.getNewObjectMapper(); + Assert.assertEquals( + mapper.writeValueAsString(expected), + mapper.writeValueAsString(actual)); + } + catch (JsonProcessingException e) + { + throw new RuntimeException(e); + } + } + + public static PureModelContextData loadPureModelContextFromResource(String resource, Class clazz) + { + String model = getResource(resource, clazz); + return PureModelContextData.newBuilder().withPureModelContextData(PureGrammarParser.newInstance().parseModel(model)).build(); + } + + public static String getResource(String resource, Class clazz) + { + try + { + return IOUtils.toString(Objects.requireNonNull(clazz.getClassLoader().getResourceAsStream(resource))); + } + catch (IOException e) + { + throw new RuntimeException(e); + } + } + + public static T loadFromResources(String resource, TypeReference typeReference, Class clazz) + { + String sources = getResource(resource, clazz); + try + { + return PureProtocolObjectMapperFactory.getNewObjectMapper().readValue(sources, typeReference); + } + catch (JsonProcessingException e) + { + throw new RuntimeException(e); + } + } +} \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/test/java/org/finos/legend/engine/query/sql/providers/shared/TestFunctionSQLSourceProvider.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/test/java/org/finos/legend/engine/query/sql/providers/shared/TestFunctionSQLSourceProvider.java new file mode 100644 index 00000000000..7b3f4e168dd --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/test/java/org/finos/legend/engine/query/sql/providers/shared/TestFunctionSQLSourceProvider.java @@ -0,0 +1,181 @@ +// Copyright 2023 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.query.sql.providers.shared; + +import org.eclipse.collections.impl.list.mutable.FastList; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContext; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextPointer; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.Function; +import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.raw.Lambda; +import org.finos.legend.engine.query.sql.providers.core.SQLSource; +import org.finos.legend.engine.query.sql.providers.core.SQLSourceArgument; +import org.finos.legend.engine.query.sql.providers.core.SQLSourceResolvedContext; +import org.finos.legend.engine.query.sql.providers.core.TableSource; +import org.finos.legend.engine.query.sql.providers.core.TableSourceArgument; +import org.finos.legend.engine.query.sql.providers.shared.project.ProjectCoordinateLoader; +import org.finos.legend.engine.query.sql.providers.shared.project.ProjectCoordinateWrapper; +import org.finos.legend.engine.query.sql.providers.shared.project.ProjectResolvedContext; +import org.finos.legend.engine.query.sql.providers.shared.utils.SQLProviderUtils; +import org.finos.legend.engine.shared.core.operational.errorManagement.EngineException; +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.junit.MockitoJUnitRunner; + +import static org.finos.legend.engine.query.sql.providers.shared.SQLSourceProviderTestUtils.loadPureModelContextFromResource; +import static org.mockito.ArgumentMatchers.any; +import static org.mockito.ArgumentMatchers.eq; +import static org.mockito.Mockito.when; + +@RunWith(MockitoJUnitRunner.class) +public class TestFunctionSQLSourceProvider +{ + @Mock + private ProjectCoordinateLoader projectCoordinateLoader; + + private FunctionSQLSourceProvider provider; + + @Before + public void setup() + { + this.provider = new FunctionSQLSourceProvider(projectCoordinateLoader); + } + + @Test + public void testType() + { + Assert.assertEquals("func", provider.getType()); + } + + @Test + public void testWorkspace() + { + String functionName = "simple::func::simpleFunction_String_MANY__TabularDataSet_1_"; + + ProjectCoordinateWrapper coordinates = ProjectCoordinateWrapper.workspace("proj1", "ws1"); + + PureModelContextData pmcd = loadPureModelContextFromResource("function-pmcd.pure", this.getClass()); + Function function = SQLProviderUtils.extractElement("function", pmcd.getElementsOfType(Function.class), f -> f.getPath().equals(functionName)); + + when(projectCoordinateLoader.resolve(eq(coordinates), any())).thenReturn(new ProjectResolvedContext(pmcd, pmcd)); + + TableSource tableSource = createTableSource(functionName, + new TableSourceArgument("project", null, "proj1"), + new TableSourceArgument("workspace", null, "ws1") + ); + + Lambda lambda = new Lambda(); + lambda.body = function.body; + lambda.parameters = function.parameters; + + SQLSource expected = new SQLSource("func", lambda, null, null, FastList.newList(), null, FastList.newListWith( + new SQLSourceArgument("path", 0, functionName), + new SQLSourceArgument("project", null, "proj1"), + new SQLSourceArgument("workspace", null, "ws1") + )); + + testSuccess(tableSource, pmcd, expected); + } + + @Test + public void testCoordinates() + { + String functionName = "simple::func::simpleFunction_String_MANY__TabularDataSet_1_"; + + ProjectCoordinateWrapper coordinates = ProjectCoordinateWrapper.coordinates("proj1:art:1.0.0"); + + PureModelContextData pmcd = loadPureModelContextFromResource("function-pmcd.pure", this.getClass()); + Function function = SQLProviderUtils.extractElement("function", pmcd.getElementsOfType(Function.class), f -> f.getPath().equals(functionName)); + PureModelContextPointer pointer = new PureModelContextPointer(); + + when(projectCoordinateLoader.resolve(eq(coordinates), any())).thenReturn(new ProjectResolvedContext(pointer, pmcd)); + + TableSource tableSource = createTableSource(functionName, + new TableSourceArgument("coordinates", null, "proj1:art:1.0.0") + ); + + Lambda lambda = new Lambda(); + lambda.body = function.body; + lambda.parameters = function.parameters; + + SQLSource expected = new SQLSource("func", lambda, null, null, FastList.newList(), null, FastList.newListWith( + new SQLSourceArgument("path", 0, functionName), + new SQLSourceArgument("coordinates", null, "proj1:art:1.0.0") + )); + + testSuccess(tableSource, pointer, expected); + } + + @Test + public void testNoProjectOrCoordinates() + { + TableSource tableSource = createTableSource("simple::func__TabularDataSet_1_"); + testException(tableSource, IllegalArgumentException.class, "coordinates or project/workspace must be supplied"); + } + + @Test + public void testNoWorkspaceWithProject() + { + TableSource tableSource = createTableSource("simple::func__TabularDataSet_1_", new TableSourceArgument("project", null, "proj1")); + testException(tableSource, IllegalArgumentException.class, "workspace/group workspace must be supplied if loading from project"); + } + + @Test + public void testNotTDSFunc() + { + String functionName = "simple::func::nonTdsFunction__String_1_"; + + ProjectCoordinateWrapper coordinates = ProjectCoordinateWrapper.coordinates("proj1:art:1.0.0"); + + PureModelContextData pmcd = loadPureModelContextFromResource("function-pmcd.pure", this.getClass()); + + when(projectCoordinateLoader.resolve(eq(coordinates), any())).thenReturn(new ProjectResolvedContext(pmcd, pmcd)); + + TableSource tableSource = createTableSource(functionName, + new TableSourceArgument("coordinates", null, "proj1:art:1.0.0") + ); + + testException(tableSource, EngineException.class, "Function " + functionName + " does not return Tabular data type"); + } + + private void testException(TableSource tableSource, Class throwable, String expected) + { + T exception = Assert.assertThrows("Should throw given no service found", throwable, () -> provider.resolve(FastList.newListWith(tableSource), null, FastList.newList())); + Assert.assertEquals(expected, exception.getMessage()); + } + + private void testSuccess(TableSource tableSource, PureModelContext expectedContext, SQLSource expected) + { + SQLSourceResolvedContext result = provider.resolve(FastList.newListWith(tableSource), null, FastList.newList()); + + //ASSERT + Assert.assertEquals(FastList.newListWith(expectedContext), result.getPureModelContexts()); + Assert.assertEquals(1, result.getSources().size()); + + SQLSourceProviderTestUtils.assertLogicalEquality(expected, result.getSources().get(0)); + } + + private final TableSource createTableSource(String func, TableSourceArgument... extraArguments) + { + return new TableSource("func", FastList.newListWith( + new TableSourceArgument(null, 0, func)).with(extraArguments) + ); + } +} + diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/test/resources/function-pmcd.pure b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/test/resources/function-pmcd.pure new file mode 100644 index 00000000000..fbeb18c1a2d --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/test/resources/function-pmcd.pure @@ -0,0 +1,22 @@ +###Pure +import simple::model::*; + +Class simple::model::Person +{ + firstName: String[1]; + lastName: String[1]; +} +function simple::func::simpleFunction(lastNames:String[*]):meta::pure::tds::TabularDataSet[1] +{ + simple::model::Person.all() + ->filter(p | $p.lastName->in($lastNames)) + ->project([ + col(x | $x.firstName, 'first name'), + col(x | $x.lastName, 'last name') + ]) +} + +function simple::func::nonTdsFunction():String[1] +{ + '' +} \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml new file mode 100644 index 00000000000..a5498551eed --- /dev/null +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml @@ -0,0 +1,35 @@ + + + + + org.finos.legend.engine + legend-engine-xts-sql + 4.32.1-SNAPSHOT + + 4.0.0 + + legend-engine-xt-sql-providers + pom + Legend Engine - XTS - SQL - Providers + + + legend-engine-xt-sql-providers-core + legend-engine-xt-sql-providers-shared + legend-engine-xt-sql-providers-relationalStore + legend-engine-xt-sql-providers-service + + \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml index c1e0cd03af2..f4b79ad6c04 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml @@ -96,6 +96,10 @@ org.finos.legend.engine legend-engine-xt-sql-compiler + + org.finos.legend.engine + legend-engine-xt-sql-providers-core + diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/SQLExecutor.java b/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/SQLExecutor.java index 798afbdf56b..58c3430da52 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/SQLExecutor.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/SQLExecutor.java @@ -47,13 +47,12 @@ import org.finos.legend.engine.protocol.sql.metamodel.Query; import org.finos.legend.engine.protocol.sql.schema.metamodel.MetamodelToProtocolTranslator; import org.finos.legend.engine.protocol.sql.schema.metamodel.Schema; -import org.finos.legend.engine.query.sql.api.sources.SQLContext; -import org.finos.legend.engine.query.sql.api.sources.SQLSource; -import org.finos.legend.engine.query.sql.api.sources.SQLSourceProvider; -import org.finos.legend.engine.query.sql.api.sources.SQLSourceResolvedContext; -import org.finos.legend.engine.query.sql.api.sources.SQLSourceTranslator; -import org.finos.legend.engine.query.sql.api.sources.TableSource; -import org.finos.legend.engine.query.sql.api.sources.TableSourceExtractor; +import org.finos.legend.engine.query.sql.providers.core.SQLContext; +import org.finos.legend.engine.query.sql.providers.core.SQLSource; +import org.finos.legend.engine.query.sql.providers.core.SQLSourceProvider; +import org.finos.legend.engine.query.sql.providers.core.SQLSourceResolvedContext; +import org.finos.legend.engine.query.sql.providers.core.TableSource; +import org.finos.legend.engine.query.sql.api.sources.TableSourceArgument; import org.finos.legend.engine.shared.core.ObjectMapperFactory; import org.finos.legend.engine.shared.core.operational.errorManagement.EngineException; import org.finos.legend.engine.shared.core.operational.logs.LogInfo; @@ -91,7 +90,8 @@ public class SQLExecutor private final Iterable transformers; private final MutableMap providers; - public SQLExecutor(ModelManager modelManager, PlanExecutor planExecutor, + public SQLExecutor(ModelManager modelManager, + PlanExecutor planExecutor, Function> routerExtensions, List providers, Iterable transformers) @@ -165,7 +165,7 @@ public SingleExecutionPlan plan(Query query, SQLContext context, MutableList profiles) { - SQLContext context = new SQLContext(query, Maps.mutable.of()); + SQLContext context = new SQLContext(query); return process(query, (t, pm, sources) -> { Root_meta_external_query_sql_schema_metamodel_Schema schema = core_external_query_sql_binding_fromPure_fromPure.Root_meta_external_query_sql_transformation_queryToPure_getSchema_SqlTransformContext_1__Schema_1_(t, pm.getExecutionSupport()); @@ -243,6 +243,15 @@ private Pair, PureModelContext> getSourcesAndModel(Query private SQLSourceResolvedContext resolve(MutableCollection tables, SQLContext context, SQLSourceProvider extension, MutableList profiles) { + //TODO remove deprecated flow + org.finos.legend.engine.query.sql.api.sources.SQLSourceResolvedContext resolved = extension.resolve(tables.collect(t -> new org.finos.legend.engine.query.sql.api.sources.TableSource(t.getType(), + ListIterate.collect(t.getArguments(), a -> new TableSourceArgument(a.getName(), a.getIndex(), a.getValue())))).toList(), new org.finos.legend.engine.query.sql.api.sources.SQLContext(context.getQuery()), profiles); + + if (resolved != null) + { + return new SQLSourceResolvedContext(resolved.getPureModelContexts(), ListIterate.collect(resolved.getSources(), s -> new SQLSource(s.getType(), s.getFunc(), s.getMapping(), s.getRuntime(), s.getExecutionOptions(), s.getExecutionContext(), s.getKey()))); + } + return extension.resolve(tables.toList(), context, profiles); } diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSourceTranslator.java b/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/SQLSourceTranslator.java similarity index 96% rename from legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSourceTranslator.java rename to legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/SQLSourceTranslator.java index ede0ac21bba..64ae7757879 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/SQLSourceTranslator.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/SQLSourceTranslator.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.engine.query.sql.api.sources; +package org.finos.legend.engine.query.sql.api; import org.eclipse.collections.api.RichIterable; import org.eclipse.collections.impl.list.mutable.FastList; @@ -25,6 +25,9 @@ import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; import org.finos.legend.engine.protocol.pure.v1.model.executionOption.ExecutionOption; import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.raw.executionContext.ExecutionContext; +import org.finos.legend.engine.query.sql.providers.core.SQLSource; +import org.finos.legend.engine.query.sql.providers.core.SQLSourceArgument; + import org.finos.legend.pure.generated.*; import java.util.Objects; diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/TableSourceExtractor.java b/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/TableSourceExtractor.java similarity index 98% rename from legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/TableSourceExtractor.java rename to legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/TableSourceExtractor.java index ad1dd23d4b4..5d05297574d 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/sources/TableSourceExtractor.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/TableSourceExtractor.java @@ -13,12 +13,14 @@ // limitations under the License. // -package org.finos.legend.engine.query.sql.api.sources; +package org.finos.legend.engine.query.sql.api; import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.factory.Sets; import org.eclipse.collections.impl.utility.ListIterate; import org.finos.legend.engine.protocol.sql.metamodel.*; +import org.finos.legend.engine.query.sql.providers.core.TableSource; +import org.finos.legend.engine.query.sql.providers.core.TableSourceArgument; import java.util.Collection; import java.util.Collections; diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/execute/SqlExecute.java b/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/execute/SqlExecute.java index 9d463443298..fca71827a75 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/execute/SqlExecute.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/execute/SqlExecute.java @@ -35,8 +35,8 @@ import org.finos.legend.engine.protocol.sql.metamodel.Query; import org.finos.legend.engine.protocol.sql.schema.metamodel.Schema; import org.finos.legend.engine.query.sql.api.SQLExecutor; -import org.finos.legend.engine.query.sql.api.sources.SQLContext; -import org.finos.legend.engine.query.sql.api.sources.SQLSourceProvider; +import org.finos.legend.engine.query.sql.providers.core.SQLContext; +import org.finos.legend.engine.query.sql.providers.core.SQLSourceProvider; import org.finos.legend.engine.shared.core.kerberos.ProfileManagerHelper; import org.finos.legend.engine.shared.core.operational.logs.LoggingEventType; import org.finos.legend.pure.generated.Root_meta_pure_extension_Extension; @@ -101,7 +101,7 @@ public Response executeSql(@Context HttpServletRequest request, Query query, @De @ApiParam(hidden = true) @Pac4JProfileManager ProfileManager pm, @Context UriInfo uriInfo) { MutableList profiles = ProfileManagerHelper.extractProfiles(pm); - SQLContext context = new SQLContext(query, Maps.mutable.of()); + SQLContext context = new SQLContext(query); Result result = this.executor.execute(query, request.getRemoteUser(), context, profiles); @@ -129,7 +129,7 @@ public Lambda generateLambda(@Context HttpServletRequest request, Query query, @ { MutableList profiles = ProfileManagerHelper.extractProfiles(pm); - SQLContext context = new SQLContext(query, Maps.mutable.of()); + SQLContext context = new SQLContext(query); return executor.lambda(query, context, profiles); } @@ -151,7 +151,7 @@ public ExecutionPlan generatePlan(@Context HttpServletRequest request, Query que { MutableList profiles = ProfileManagerHelper.extractProfiles(pm); - SQLContext context = new SQLContext(query, Maps.mutable.of()); + SQLContext context = new SQLContext(query); return this.executor.plan(query, context, profiles); } diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/test/java/org/finos/legend/engine/query/sql/api/sources/TableSourceExtractorTest.java b/legend-engine-xts-sql/legend-engine-xt-sql-query/src/test/java/org/finos/legend/engine/query/sql/api/TableSourceExtractorTest.java similarity index 94% rename from legend-engine-xts-sql/legend-engine-xt-sql-query/src/test/java/org/finos/legend/engine/query/sql/api/sources/TableSourceExtractorTest.java rename to legend-engine-xts-sql/legend-engine-xt-sql-query/src/test/java/org/finos/legend/engine/query/sql/api/TableSourceExtractorTest.java index 9df7972debf..b92133ae745 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/test/java/org/finos/legend/engine/query/sql/api/sources/TableSourceExtractorTest.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-query/src/test/java/org/finos/legend/engine/query/sql/api/TableSourceExtractorTest.java @@ -13,12 +13,14 @@ // limitations under the License. // -package org.finos.legend.engine.query.sql.api.sources; +package org.finos.legend.engine.query.sql.api; import org.eclipse.collections.api.factory.Sets; import org.eclipse.collections.impl.list.mutable.FastList; import org.finos.legend.engine.language.sql.grammar.from.SQLGrammarParser; import org.finos.legend.engine.protocol.sql.metamodel.Statement; +import org.finos.legend.engine.query.sql.providers.core.TableSource; +import org.finos.legend.engine.query.sql.providers.core.TableSourceArgument; import org.junit.Assert; import org.junit.Test; @@ -26,7 +28,6 @@ public class TableSourceExtractorTest { - private static final TableSource TABLE_1 = new TableSource("service", FastList.newListWith(new TableSourceArgument(null, 0, "table1"))); private static final TableSource TABLE_2 = new TableSource("service", FastList.newListWith(new TableSourceArgument(null, 0, "table2"))); diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/test/java/org/finos/legend/engine/query/sql/api/sources/TestSQLSourceProvider.java b/legend-engine-xts-sql/legend-engine-xt-sql-query/src/test/java/org/finos/legend/engine/query/sql/api/TestSQLSourceProvider.java similarity index 89% rename from legend-engine-xts-sql/legend-engine-xt-sql-query/src/test/java/org/finos/legend/engine/query/sql/api/sources/TestSQLSourceProvider.java rename to legend-engine-xts-sql/legend-engine-xt-sql-query/src/test/java/org/finos/legend/engine/query/sql/api/TestSQLSourceProvider.java index b09021383c9..eb5857cae0e 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/test/java/org/finos/legend/engine/query/sql/api/sources/TestSQLSourceProvider.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-query/src/test/java/org/finos/legend/engine/query/sql/api/TestSQLSourceProvider.java @@ -13,7 +13,7 @@ // limitations under the License. // -package org.finos.legend.engine.query.sql.api.sources; +package org.finos.legend.engine.query.sql.api; import org.eclipse.collections.api.LazyIterable; import org.eclipse.collections.api.list.MutableList; @@ -24,6 +24,13 @@ import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.service.PureSingleExecution; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.service.Service; +import org.finos.legend.engine.query.sql.api.sources.SQLSourceProvider; +import org.finos.legend.engine.query.sql.providers.core.SQLContext; +import org.finos.legend.engine.query.sql.providers.core.SQLSource; +import org.finos.legend.engine.query.sql.providers.core.SQLSourceArgument; +import org.finos.legend.engine.query.sql.providers.core.SQLSourceResolvedContext; +import org.finos.legend.engine.query.sql.providers.core.TableSource; +import org.finos.legend.engine.query.sql.providers.core.TableSourceArgument; import org.pac4j.core.profile.CommonProfile; import java.io.BufferedReader; diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/test/java/org/finos/legend/engine/query/sql/api/execute/SqlExecuteTest.java b/legend-engine-xts-sql/legend-engine-xt-sql-query/src/test/java/org/finos/legend/engine/query/sql/api/execute/SqlExecuteTest.java index 408501ec7c3..c2f383ee6e5 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/test/java/org/finos/legend/engine/query/sql/api/execute/SqlExecuteTest.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-query/src/test/java/org/finos/legend/engine/query/sql/api/execute/SqlExecuteTest.java @@ -39,7 +39,7 @@ import org.finos.legend.engine.pure.code.core.PureCoreExtensionLoader; import org.finos.legend.engine.query.sql.api.CatchAllExceptionMapper; import org.finos.legend.engine.query.sql.api.MockPac4jFeature; -import org.finos.legend.engine.query.sql.api.sources.TestSQLSourceProvider; +import org.finos.legend.engine.query.sql.api.TestSQLSourceProvider; import org.finos.legend.engine.shared.core.api.grammar.RenderStyle; import org.finos.legend.engine.shared.core.deployment.DeploymentMode; import org.glassfish.jersey.test.grizzly.GrizzlyWebTestContainerFactory; diff --git a/legend-engine-xts-sql/pom.xml b/legend-engine-xts-sql/pom.xml index b9297f87eee..6948a39c84a 100644 --- a/legend-engine-xts-sql/pom.xml +++ b/legend-engine-xts-sql/pom.xml @@ -34,6 +34,7 @@ legend-engine-xt-sql-grammar-integration legend-engine-xt-sql-postgres-server legend-engine-xt-sql-protocol + legend-engine-xt-sql-providers legend-engine-xt-sql-pure legend-engine-xt-sql-pure-metamodel legend-engine-xt-sql-query diff --git a/pom.xml b/pom.xml index 0c66a7c491d..306e50fa853 100644 --- a/pom.xml +++ b/pom.xml @@ -1995,6 +1995,32 @@ ${project.version} test-jar + + org.finos.legend.engine + legend-engine-xt-sql-providers-core + ${project.version} + + + org.finos.legend.engine + legend-engine-xt-sql-providers-shared + ${project.version} + + + org.finos.legend.engine + legend-engine-xt-sql-providers-shared + test-jar + ${project.version} + + + org.finos.legend.engine + legend-engine-xt-sql-providers-relationalStore + ${project.version} + + + org.finos.legend.engine + legend-engine-xt-sql-providers-service + ${project.version} + org.finos.legend.engine legend-engine-xt-sql-grammar-integration From 5437582614acf65e53104705f5c311818e4ef4bf Mon Sep 17 00:00:00 2001 From: Mohammed Ibrahim Date: Mon, 30 Oct 2023 18:04:24 -0400 Subject: [PATCH 52/80] Enable artifact generation (#2414) * rename method * Function activation cleanup * rollback file changes * Change spark keywords * Change spark keywords * Fix test * Add Primitive Type to Open APi Generator * Add byte * Enable Artifact generation * move artifact generator to new module --- .../pom.xml | 2 +- .../collection/generation/TestExtensions.java | 2 +- .../legend-engine-server/pom.xml | 4 + .../finos/legend/engine/server/Server.java | 2 +- .../legend-engine-xt-snowflakeApp-api/pom.xml | 29 +-- .../snowflakeApp/api/SnowflakeAppService.java | 19 +- ...ava => SnowflakeAppDeploymentManager.java} | 12 +- ...tion.extension.ArtifactGenerationExtension | 1 - .../pom.xml | 205 ++++++++++++++++++ .../generator}/SnowflakeAppArtifact.java | 5 +- ...owflakeAppArtifactGenerationExtension.java | 9 +- .../generator}/SnowflakeAppContent.java | 4 +- .../SnowflakeAppDeploymentConfiguration.java | 4 +- .../generator}/SnowflakeAppGenerator.java | 7 +- ...tion.extension.ArtifactGenerationExtension | 1 + legend-engine-xts-snowflakeApp/pom.xml | 1 + pom.xml | 6 +- 17 files changed, 246 insertions(+), 67 deletions(-) rename legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/{SnowflakeDeploymentManager.java => SnowflakeAppDeploymentManager.java} (93%) delete mode 100644 legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.dsl.generation.extension.ArtifactGenerationExtension create mode 100644 legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml rename legend-engine-xts-snowflakeApp/{legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment => legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator}/SnowflakeAppArtifact.java (83%) rename legend-engine-xts-snowflakeApp/{legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment => legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator}/SnowflakeAppArtifactGenerationExtension.java (89%) rename legend-engine-xts-snowflakeApp/{legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment => legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator}/SnowflakeAppContent.java (91%) rename legend-engine-xts-snowflakeApp/{legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment => legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator}/SnowflakeAppDeploymentConfiguration.java (90%) rename legend-engine-xts-snowflakeApp/{legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment => legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator}/SnowflakeAppGenerator.java (94%) create mode 100644 legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.dsl.generation.extension.ArtifactGenerationExtension diff --git a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml index 74a7252ac6b..5e51522a1e1 100644 --- a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml @@ -480,7 +480,7 @@ org.finos.legend.engine - legend-engine-xt-snowflakeApp-api + legend-engine-xt-snowflakeApp-generator diff --git a/legend-engine-config/legend-engine-extensions-collection-generation/src/test/java/org/finos/legend/engine/extensions/collection/generation/TestExtensions.java b/legend-engine-config/legend-engine-extensions-collection-generation/src/test/java/org/finos/legend/engine/extensions/collection/generation/TestExtensions.java index 672672554f7..38f93c3cddd 100644 --- a/legend-engine-config/legend-engine-extensions-collection-generation/src/test/java/org/finos/legend/engine/extensions/collection/generation/TestExtensions.java +++ b/legend-engine-config/legend-engine-extensions-collection-generation/src/test/java/org/finos/legend/engine/extensions/collection/generation/TestExtensions.java @@ -71,7 +71,7 @@ import org.finos.legend.engine.language.pure.grammar.to.DatabricksGrammarComposerExtension; import org.finos.legend.engine.language.pure.grammar.to.extension.PureGrammarComposerExtension; import org.finos.legend.engine.language.snowflakeApp.compiler.toPureGraph.SnowflakeAppCompilerExtension; -import org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeAppArtifactGenerationExtension; +import org.finos.legend.engine.language.snowflakeApp.generator.SnowflakeAppArtifactGenerationExtension; import org.finos.legend.engine.language.snowflakeApp.grammar.from.SnowflakeAppGrammarParserExtension; import org.finos.legend.engine.language.snowflakeApp.grammar.to.SnowflakeAppGrammarComposer; import org.finos.legend.engine.language.sql.grammar.integration.SQLGrammarParserExtension; diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index b2fac3d4e69..cbf93d9d009 100644 --- a/legend-engine-config/legend-engine-server/pom.xml +++ b/legend-engine-config/legend-engine-server/pom.xml @@ -333,6 +333,10 @@ org.finos.legend.engine legend-engine-xt-snowflakeApp-api + + org.finos.legend.engine + legend-engine-xt-snowflakeApp-generator + org.finos.legend.engine legend-engine-xt-hostedService-compiler diff --git a/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java b/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java index 932921641d7..25b1837bafe 100644 --- a/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java +++ b/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java @@ -98,7 +98,7 @@ import org.finos.legend.engine.language.pure.modelManager.sdlc.SDLCLoader; import org.finos.legend.engine.language.pure.relational.api.relationalElement.RelationalElementAPI; import org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppService; -import org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeAppDeploymentConfiguration; +import org.finos.legend.engine.language.snowflakeApp.generator.SnowflakeAppDeploymentConfiguration; import org.finos.legend.engine.plan.execution.PlanExecutor; import org.finos.legend.engine.plan.execution.api.ExecutePlanLegacy; import org.finos.legend.engine.plan.execution.api.ExecutePlanStrategic; diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml index f85d6c2e610..743ec94d482 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml @@ -29,10 +29,6 @@ - - org.finos.legend.pure - legend-pure-m3-core - @@ -60,10 +56,6 @@ org.finos.legend.engine legend-engine-xt-relationalStore-executionPlan - - org.finos.legend.engine - legend-engine-executionPlan-generation - org.finos.legend.engine legend-engine-shared-core @@ -80,10 +72,6 @@ org.finos.legend.engine legend-engine-xt-functionActivator-api - - org.finos.legend.engine - legend-engine-xt-relationalStore-pure - org.finos.legend.engine legend-engine-xt-relationalStore-protocol @@ -92,11 +80,6 @@ org.finos.legend.engine legend-engine-executionPlan-execution - - org.finos.legend.engine - legend-engine-pure-platform-java - - org.finos.legend.engine legend-engine-xt-snowflakeApp-pure @@ -107,13 +90,7 @@ org.finos.legend.engine - legend-engine-xt-snowflakeApp-compiler - runtime - - - org.finos.legend.engine - legend-engine-xt-snowflakeApp-grammar - runtime + legend-engine-xt-snowflakeApp-generator org.finos.legend.engine @@ -188,10 +165,6 @@ jersey-common test - - org.finos.legend.engine - legend-engine-language-pure-dsl-generation - diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/api/SnowflakeAppService.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/api/SnowflakeAppService.java index 9a830e5e85b..be91afe8b4d 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/api/SnowflakeAppService.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/api/SnowflakeAppService.java @@ -24,12 +24,12 @@ import org.finos.legend.engine.functionActivator.service.FunctionActivatorError; import org.finos.legend.engine.functionActivator.service.FunctionActivatorService; import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; -import org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeAppArtifact; -import org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeAppContent; -import org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeAppDeploymentConfiguration; -import org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeAppGenerator; -import org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeDeploymentManager; +import org.finos.legend.engine.language.snowflakeApp.generator.SnowflakeAppArtifact; +import org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeAppDeploymentManager; import org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeDeploymentResult; +import org.finos.legend.engine.language.snowflakeApp.generator.SnowflakeAppContent; +import org.finos.legend.engine.language.snowflakeApp.generator.SnowflakeAppDeploymentConfiguration; +import org.finos.legend.engine.language.snowflakeApp.generator.SnowflakeAppGenerator; import org.finos.legend.engine.plan.execution.PlanExecutor; import org.finos.legend.engine.plan.execution.stores.relational.config.TemporaryTestDbConfiguration; import org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector; @@ -39,32 +39,31 @@ import org.finos.legend.pure.generated.Root_meta_external_function_activator_FunctionActivator; import org.finos.legend.pure.generated.Root_meta_external_function_activator_snowflakeApp_SnowflakeApp; import org.finos.legend.pure.generated.Root_meta_pure_extension_Extension; -import org.pac4j.core.profile.CommonProfile; import java.util.List; public class SnowflakeAppService implements FunctionActivatorService { private ConnectionManagerSelector connectionManager; - private SnowflakeDeploymentManager snowflakeDeploymentManager; + private SnowflakeAppDeploymentManager snowflakeDeploymentManager; public SnowflakeAppService() { TemporaryTestDbConfiguration conf = new TemporaryTestDbConfiguration(); conf.port = Integer.parseInt(System.getProperty("h2ServerPort", "1234")); this.connectionManager = new ConnectionManagerSelector(conf, FastList.newList()); - this.snowflakeDeploymentManager = new SnowflakeDeploymentManager(new SnowflakeAppDeploymentTool(connectionManager)); + this.snowflakeDeploymentManager = new SnowflakeAppDeploymentManager(new SnowflakeAppDeploymentTool(connectionManager)); } public SnowflakeAppService(ConnectionManagerSelector connectionManager) { this.connectionManager = connectionManager; - this.snowflakeDeploymentManager = new SnowflakeDeploymentManager(new SnowflakeAppDeploymentTool(connectionManager)); + this.snowflakeDeploymentManager = new SnowflakeAppDeploymentManager(new SnowflakeAppDeploymentTool(connectionManager)); } public SnowflakeAppService(PlanExecutor executor) { - this.snowflakeDeploymentManager = new SnowflakeDeploymentManager(executor); + this.snowflakeDeploymentManager = new SnowflakeAppDeploymentManager(executor); } @Override diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeDeploymentManager.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppDeploymentManager.java similarity index 93% rename from legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeDeploymentManager.java rename to legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppDeploymentManager.java index c46427adaea..b7d86d2c4c1 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeDeploymentManager.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppDeploymentManager.java @@ -21,13 +21,15 @@ import org.finos.legend.engine.functionActivator.deployment.DeploymentManager; import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorArtifact; import org.finos.legend.engine.language.snowflakeApp.api.SnowflakeAppDeploymentTool; +import org.finos.legend.engine.language.snowflakeApp.generator.SnowflakeAppArtifact; +import org.finos.legend.engine.language.snowflakeApp.generator.SnowflakeAppDeploymentConfiguration; +import org.finos.legend.engine.language.snowflakeApp.generator.SnowflakeAppContent; import org.finos.legend.engine.plan.execution.PlanExecutor; import org.finos.legend.engine.plan.execution.stores.relational.connection.manager.ConnectionManagerSelector; import org.finos.legend.engine.plan.execution.stores.relational.plugin.RelationalStoreExecutor; import org.finos.legend.engine.plan.execution.stores.relational.plugin.RelationalStoreState; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.DatabaseConnection; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.RelationalDatabaseConnection; -import org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeAppDeploymentConfiguration; import org.finos.legend.engine.shared.core.identity.Identity; import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_authentication_SnowflakePublicAuthenticationStrategy; import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_SnowflakeDatasourceSpecification; @@ -42,9 +44,9 @@ import java.util.Map; -public class SnowflakeDeploymentManager implements DeploymentManager +public class SnowflakeAppDeploymentManager implements DeploymentManager { - private static final Logger LOGGER = LoggerFactory.getLogger(SnowflakeDeploymentManager.class); + private static final Logger LOGGER = LoggerFactory.getLogger(SnowflakeAppDeploymentManager.class); private SnowflakeAppDeploymentTool snowflakeAppDeploymentTool; private PlanExecutor planExecutor; @@ -52,12 +54,12 @@ public class SnowflakeDeploymentManager implements DeploymentManager c instanceof RelationalStoreExecutor).getFirst().getStoreState()).getRelationalExecutor().getConnectionManager(); diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.dsl.generation.extension.ArtifactGenerationExtension b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.dsl.generation.extension.ArtifactGenerationExtension deleted file mode 100644 index cc58504ac24..00000000000 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.dsl.generation.extension.ArtifactGenerationExtension +++ /dev/null @@ -1 +0,0 @@ -org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeAppArtifactGenerationExtension diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml new file mode 100644 index 00000000000..6b5f0a6b96e --- /dev/null +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml @@ -0,0 +1,205 @@ + + + + + + org.finos.legend.engine + legend-engine-xts-snowflakeApp + 4.32.1-SNAPSHOT + + 4.0.0 + + legend-engine-xt-snowflakeApp-generator + jar + Legend Engine - XT - Snowflake App - Generator + + + + + org.apache.maven.plugins + maven-dependency-plugin + + + dependency-analyze + + + + org.finos.legend.engine:legend-engine-xt-functionActivator-pure + org.finos.legend.engine:legend-engine-executionPlan-execution + + + + + + + + + + + org.finos.legend.pure + legend-pure-m3-core + + + + + + + + + + org.finos.legend.engine + legend-engine-language-pure-compiler + + + + + + + org.finos.legend.engine + legend-engine-pure-code-compiled-core + + + org.finos.legend.engine + legend-engine-pure-code-core-extension + + + + org.finos.legend.engine + legend-engine-executionPlan-generation + + + org.finos.legend.engine + legend-engine-shared-core + + + org.finos.legend.engine + legend-engine-xt-functionActivator-pure + + + org.finos.legend.engine + legend-engine-protocol-pure + + + org.finos.legend.engine + legend-engine-xt-functionActivator-api + + + org.finos.legend.engine + legend-engine-xt-relationalStore-pure + + + org.finos.legend.engine + legend-engine-xt-relationalStore-protocol + + + org.finos.legend.engine + legend-engine-executionPlan-execution + + + org.finos.legend.engine + legend-engine-pure-platform-java + + + + org.finos.legend.engine + legend-engine-xt-snowflakeApp-pure + + + org.finos.legend.engine + legend-engine-xt-snowflakeApp-protocol + + + org.finos.legend.engine + legend-engine-xt-snowflakeApp-compiler + runtime + + + org.finos.legend.engine + legend-engine-xt-snowflakeApp-grammar + runtime + + + org.finos.legend.engine + legend-engine-xt-relationalStore-snowflake-protocol + + + org.finos.legend.engine + legend-engine-xt-relationalStore-snowflake-pure + + + + + + + + + com.fasterxml.jackson.core + jackson-databind + + + + org.eclipse.collections + eclipse-collections-api + + + org.eclipse.collections + eclipse-collections + + + + + + org.slf4j + slf4j-api + + + + + + + + junit + junit + test + + + org.finos.legend.engine + legend-engine-xt-relationalStore-javaPlatformBinding-pure + test + + + org.finos.legend.engine + legend-engine-xt-relationalStore-grammar + test + + + org.finos.legend.engine + legend-engine-configuration + test + + + org.glassfish.jersey.core + jersey-common + test + + + org.finos.legend.engine + legend-engine-language-pure-dsl-generation + + + + diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppArtifact.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator/SnowflakeAppArtifact.java similarity index 83% rename from legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppArtifact.java rename to legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator/SnowflakeAppArtifact.java index b1080411d24..a2434df1c5c 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppArtifact.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator/SnowflakeAppArtifact.java @@ -12,11 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -package org.finos.legend.engine.language.snowflakeApp.deployment; +package org.finos.legend.engine.language.snowflakeApp.generator; -import org.eclipse.collections.api.RichIterable; -import org.eclipse.collections.api.factory.Lists; -import org.eclipse.collections.api.list.MutableList; import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorArtifact; public class SnowflakeAppArtifact extends FunctionActivatorArtifact diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppArtifactGenerationExtension.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator/SnowflakeAppArtifactGenerationExtension.java similarity index 89% rename from legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppArtifactGenerationExtension.java rename to legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator/SnowflakeAppArtifactGenerationExtension.java index c0d1f4aa5a2..b4f3fe98e60 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppArtifactGenerationExtension.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator/SnowflakeAppArtifactGenerationExtension.java @@ -13,7 +13,7 @@ // limitations under the License. -package org.finos.legend.engine.language.snowflakeApp.deployment; +package org.finos.legend.engine.language.snowflakeApp.generator; import com.fasterxml.jackson.databind.ObjectMapper; import org.eclipse.collections.api.RichIterable; @@ -22,9 +22,7 @@ import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; import org.finos.legend.engine.language.pure.dsl.generation.extension.Artifact; import org.finos.legend.engine.language.pure.dsl.generation.extension.ArtifactGenerationExtension; -import org.finos.legend.engine.protocol.pure.v1.model.context.AlloySDLC; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; -import org.finos.legend.engine.protocol.pure.v1.model.context.SDLC; import org.finos.legend.engine.pure.code.core.PureCoreExtensionLoader; import org.finos.legend.engine.shared.core.ObjectMapperFactory; import org.finos.legend.pure.generated.Root_meta_external_function_activator_snowflakeApp_SnowflakeApp; @@ -39,7 +37,7 @@ public class SnowflakeAppArtifactGenerationExtension implements ArtifactGenerati private static final ObjectMapper mapper = ObjectMapperFactory.getNewStandardObjectMapperWithPureProtocolExtensionSupports(); private static final Logger LOGGER = org.slf4j.LoggerFactory.getLogger(SnowflakeAppArtifactGenerationExtension.class); private static final String ROOT_PATH = "snowflakeApp"; - private static final String FILE_NAME = "snowflakeArtifact.json"; + private static final String FILE_NAME = "snowflakeAppArtifact.json"; @Override public String getKey() @@ -50,8 +48,7 @@ public String getKey() @Override public boolean canGenerate(PackageableElement element) { - return false; - // return element instanceof Root_meta_external_function_activator_snowflakeApp_SnowflakeApp; + return element instanceof Root_meta_external_function_activator_snowflakeApp_SnowflakeApp; } diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppContent.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator/SnowflakeAppContent.java similarity index 91% rename from legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppContent.java rename to legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator/SnowflakeAppContent.java index d8e69ee9437..3411b0e06b2 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppContent.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator/SnowflakeAppContent.java @@ -12,14 +12,12 @@ // See the License for the specific language governing permissions and // limitations under the License. -package org.finos.legend.engine.language.snowflakeApp.deployment; +package org.finos.legend.engine.language.snowflakeApp.generator; -import org.eclipse.collections.api.RichIterable; import org.eclipse.collections.api.factory.Lists; import org.eclipse.collections.api.list.MutableList; import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorDeploymentContent; import org.finos.legend.engine.protocol.pure.v1.model.context.AlloySDLC; -import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.model.Database; import java.text.SimpleDateFormat; import java.util.Date; diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppDeploymentConfiguration.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator/SnowflakeAppDeploymentConfiguration.java similarity index 90% rename from legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppDeploymentConfiguration.java rename to legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator/SnowflakeAppDeploymentConfiguration.java index 29e823eee5b..871fbeef7be 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppDeploymentConfiguration.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator/SnowflakeAppDeploymentConfiguration.java @@ -12,14 +12,14 @@ // See the License for the specific language governing permissions and // limitations under the License. -package org.finos.legend.engine.language.snowflakeApp.deployment; +package org.finos.legend.engine.language.snowflakeApp.generator; import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorDeploymentConfiguration; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.RelationalDatabaseConnection; public class SnowflakeAppDeploymentConfiguration extends FunctionActivatorDeploymentConfiguration { - RelationalDatabaseConnection connection; + public RelationalDatabaseConnection connection; public SnowflakeAppDeploymentConfiguration(RelationalDatabaseConnection connection) { diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppGenerator.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator/SnowflakeAppGenerator.java similarity index 94% rename from legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppGenerator.java rename to legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator/SnowflakeAppGenerator.java index 7c5ecce3fbe..506c28d28df 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/src/main/java/org/finos/legend/engine/language/snowflakeApp/deployment/SnowflakeAppGenerator.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator/SnowflakeAppGenerator.java @@ -13,7 +13,7 @@ // limitations under the License. -package org.finos.legend.engine.language.snowflakeApp.deployment; +package org.finos.legend.engine.language.snowflakeApp.generator; import org.eclipse.collections.api.RichIterable; import org.eclipse.collections.api.block.function.Function; @@ -31,7 +31,6 @@ import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.authentication.SnowflakePublicAuthenticationStrategy; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.specification.SnowflakeDatasourceSpecification; import org.finos.legend.engine.protocol.snowflakeApp.metamodel.SnowflakeApp; -import org.finos.legend.engine.protocol.snowflakeApp.metamodel.SnowflakeAppDeploymentConfiguration; import org.finos.legend.pure.generated.*; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.FunctionDefinition; import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.PackageableFunction; @@ -61,8 +60,8 @@ public static SnowflakeAppArtifact generateArtifact(PureModel pureModel, Root_me .select(c -> c.getPath().equals(platform_pure_basics_meta_elementToPath.Root_meta_pure_functions_meta_elementToPath_PackageableElement_1__String_1_(activator, pureModel.getExecutionSupport()))) .getFirst(); connection = (RelationalDatabaseConnection) Lists.mutable.withAll(((PureModelContextData) inputModel).getElementsOfType(PackageableConnection.class)) - .select(c -> c.getPath().equals(((SnowflakeAppDeploymentConfiguration)protocolActivator.activationConfiguration).activationConnection.connection)).getFirst().connectionValue; - return new SnowflakeAppArtifact(content, new org.finos.legend.engine.language.snowflakeApp.deployment.SnowflakeAppDeploymentConfiguration(connection)); + .select(c -> c.getPath().equals(((org.finos.legend.engine.protocol.snowflakeApp.metamodel.SnowflakeAppDeploymentConfiguration)protocolActivator.activationConfiguration).activationConnection.connection)).getFirst().connectionValue; + return new SnowflakeAppArtifact(content, new SnowflakeAppDeploymentConfiguration(connection)); } return new SnowflakeAppArtifact(content); diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.dsl.generation.extension.ArtifactGenerationExtension b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.dsl.generation.extension.ArtifactGenerationExtension new file mode 100644 index 00000000000..550ecc294b9 --- /dev/null +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.dsl.generation.extension.ArtifactGenerationExtension @@ -0,0 +1 @@ +org.finos.legend.engine.language.snowflakeApp.generator.SnowflakeAppArtifactGenerationExtension diff --git a/legend-engine-xts-snowflakeApp/pom.xml b/legend-engine-xts-snowflakeApp/pom.xml index 92a05d2beb7..851ef2f7b8a 100644 --- a/legend-engine-xts-snowflakeApp/pom.xml +++ b/legend-engine-xts-snowflakeApp/pom.xml @@ -34,5 +34,6 @@ legend-engine-xt-snowflakeApp-grammar legend-engine-xt-snowflakeApp-protocol legend-engine-xt-snowflakeApp-pure + legend-engine-xt-snowflakeApp-generator \ No newline at end of file diff --git a/pom.xml b/pom.xml index 306e50fa853..06c01b3a95e 100644 --- a/pom.xml +++ b/pom.xml @@ -637,7 +637,11 @@ legend-engine-xt-snowflakeApp-api ${project.version} - + + org.finos.legend.engine + legend-engine-xt-snowflakeApp-generator + ${project.version} + org.finos.legend.engine legend-engine-xt-authentication-pure From dc46b1adca7ae09dcdef5bfcdab122c7096e6edf Mon Sep 17 00:00:00 2001 From: An Phi Date: Mon, 30 Oct 2023 20:44:37 -0400 Subject: [PATCH 53/80] fix CI build on master (#2417) --- .github/workflows/build.yml | 25 +++++++--- .github/workflows/code-quality.yml | 80 ++++++++++++++++++++++++++++++ 2 files changed, 99 insertions(+), 6 deletions(-) create mode 100644 .github/workflows/code-quality.yml diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index f220c8d77eb..c1a32c07ded 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -17,7 +17,6 @@ name: Build CI env: CI_DEPLOY_USERNAME: ${{ secrets.CI_DEPLOY_USERNAME }} CI_DEPLOY_PASSWORD: ${{ secrets.CI_DEPLOY_PASSWORD }} - SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} MAVEN_OPTS: "-Xmx6g" on: [push, pull_request] @@ -40,7 +39,19 @@ jobs: steps: - name: Checkout repo - uses: actions/checkout@v3 + uses: actions/checkout@v4 + + - name: Cache Maven dependencies + uses: actions/cache@v3 + env: + cache-name: cache-mvn-deps + with: + path: ~/.m2/repository + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-build-${{ env.cache-name }}- + ${{ runner.os }}-build- + ${{ runner.os }}- - name: Set up JDK uses: actions/setup-java@v1 @@ -68,13 +79,12 @@ jobs: with: theme: dark - - name: Build + Test + - name: Build (PR) if: github.ref != 'refs/heads/master' run: | mvn -B -e -DskipTests=true install - mvn -B -e surefire:test -DargLine="-XX:MaxRAMPercentage=70.0" -Dsurefire.reports.directory=${GITHUB_WORKSPACE}/surefire-reports-aggregate - - name: Build + Test + Maven Deploy + Sonar + Docker Snapshot + - name: Build (with Maven Deploy + Docker Snapshot) if: github.ref == 'refs/heads/master' env: DOCKER_USERNAME: finos @@ -86,7 +96,10 @@ jobs: # and can cause problem with some code generators # See https://github.com/finos/legend-engine/pull/924 run: | - mvn -B -e -DskipTests=true deploy -P docker-snapshot,sonar + mvn -B -e -DskipTests=true deploy -P docker-snapshot + + - name: Test + run: | mvn -B -e surefire:test -DargLine="-XX:MaxRAMPercentage=70.0" -Dsurefire.reports.directory=${GITHUB_WORKSPACE}/surefire-reports-aggregate - name: Upload Test Results diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml new file mode 100644 index 00000000000..617cf73fea4 --- /dev/null +++ b/.github/workflows/code-quality.yml @@ -0,0 +1,80 @@ +# Copyright 2022 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. + +name: Code Quality Check + +on: + # Analysis done to check for security and quality are often taken care of by vendor tools, such as SonarCloud, CodeQL, etc. + # We will not run these in PR pipelins for the following reasons: + # 1. In terms of quality checks, these analysis are often already covered by code checks (e.g. eslint) already set to run + # for PRs + # 2. Security checks are included meaning that these checks will have to go through a huge libraries of vulnerability checks + # from vendor, which could take up huge amount of time to run, which is not suitable to have in PR unless absolutely necessary. + # However, most of the problems detected by these checks are often security warnings and some other niche problems that we might + # or might not necessarily have to deal with (false positive, or belongs to test-only codepath) + push: + branches: + - master + +env: + SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} + MAVEN_OPTS: "-Xmx6g" + +# Cancel running jobs from previous pipelines of the same workflow on PR to save resource when commits are pushed quickly +# NOTE: we don't want this behavior on default branch +# See https://stackoverflow.com/a/68422069 +concurrency: + group: ${{ github.ref == 'refs/heads/master' && format('ci-default-branch-{0}-{1}', github.sha, github.workflow) || format('ci-pr-{0}-{1}', github.ref, github.workflow) }} + cancel-in-progress: true + +jobs: + sonar-code-check: + name: Sonar Code Quality Check + # NOTE: we cannot run this action in PR anyway because secrets are not accessible from forks + # See https://portal.productboard.com/sonarsource/1-sonarcloud/c/50-sonarcloud-analyzes-external-pull-request + # See https://community.sonarsource.com/t/github-action-ci-build-fail-with-set-the-sonar-token-env-variable/38997 + if: github.repository == 'finos/legend-engine' + # NOTE: larger runner is required to run this build + runs-on: ubuntu-latest-4-cores + + steps: + - name: Checkout repo + uses: actions/checkout@v4 + + - name: Cache Maven dependencies + uses: actions/cache@v3 + env: + cache-name: cache-mvn-deps + with: + path: ~/.m2/repository + key: ${{ runner.os }}-build-${{ env.cache-name }}-${{ hashFiles('**/pom.xml') }} + restore-keys: | + ${{ runner.os }}-build-${{ env.cache-name }}- + ${{ runner.os }}-build- + ${{ runner.os }}- + + - name: Set up JDK + uses: actions/setup-java@v1 + with: + java-version: 11 + + - name: Check Java version + run: java -version + + - name: Download deps and plugins + run: mvn de.qaware.maven:go-offline-maven-plugin:resolve-dependencies + + - name: Check Code Quality + run: | + mvn -B -e -DskipTests=true install -P sonar From 016aeeea059422066a4c6a661d586bc731904449 Mon Sep 17 00:00:00 2001 From: FINOS Administrator <37706051+finos-admin@users.noreply.github.com> Date: Tue, 31 Oct 2023 06:39:52 +0000 Subject: [PATCH 54/80] [maven-release-plugin] prepare release legend-engine-4.33.0 --- legend-engine-application-query/pom.xml | 2 +- legend-engine-config/legend-engine-configuration/pom.xml | 2 +- .../legend-engine-connection-integration-tests/pom.xml | 2 +- .../legend-engine-extensions-collection-execution/pom.xml | 2 +- .../legend-engine-extensions-collection-generation/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-server-integration-tests/pom.xml | 2 +- .../legend-engine-server-support-core/pom.xml | 2 +- legend-engine-config/legend-engine-server/pom.xml | 2 +- legend-engine-config/pom.xml | 2 +- .../legend-engine-executionPlan-dependencies/pom.xml | 2 +- .../legend-engine-executionPlan-execution-api/pom.xml | 2 +- .../legend-engine-executionPlan-execution-authorizer/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-executionPlan-execution/pom.xml | 2 +- .../legend-engine-external-shared-format-runtime/pom.xml | 2 +- .../legend-engine-core-executionPlan-execution/pom.xml | 2 +- .../legend-engine-executionPlan-generation/pom.xml | 2 +- .../legend-engine-core-executionPlan-generation/pom.xml | 2 +- .../legend-engine-external-shared-format-model/pom.xml | 2 +- .../legend-engine-language-pure-compiler-api/pom.xml | 2 +- .../legend-engine-language-pure-compiler/pom.xml | 2 +- .../legend-engine-language-pure-grammar-api/pom.xml | 2 +- .../legend-engine-language-pure-grammar/pom.xml | 2 +- .../legend-engine-language-pure-modelManager-sdlc/pom.xml | 2 +- .../legend-engine-language-pure-modelManager/pom.xml | 2 +- .../legend-engine-protocol-api/pom.xml | 2 +- .../legend-engine-protocol-generation-pure/pom.xml | 2 +- .../legend-engine-protocol-generation/pom.xml | 2 +- .../legend-engine-protocol-pure/pom.xml | 2 +- .../legend-engine-protocol/pom.xml | 2 +- legend-engine-core/legend-engine-core-language-pure/pom.xml | 2 +- .../legend-engine-query-pure/pom.xml | 2 +- legend-engine-core/legend-engine-core-query-pure/pom.xml | 2 +- .../legend-engine-shared-core/pom.xml | 2 +- .../legend-engine-shared-javaCompiler/pom.xml | 2 +- legend-engine-core/legend-engine-core-shared/pom.xml | 2 +- .../legend-engine-test-data-generation/pom.xml | 2 +- .../legend-engine-test-runner-mapping/pom.xml | 2 +- .../legend-engine-test-runner-shared/pom.xml | 2 +- .../legend-engine-test-server-shared/pom.xml | 2 +- .../legend-engine-core-test/legend-engine-testable/pom.xml | 2 +- legend-engine-core/legend-engine-core-test/pom.xml | 2 +- legend-engine-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-functions/pom.xml | 2 +- .../legend-engine-pure-code-core-extension/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-code/pom.xml | 2 +- .../legend-engine-pure-ide-light-metadata-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-ide/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-diagram-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-graph-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-mapping-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-path-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-json-java/pom.xml | 2 +- .../legend-engine-pure-platform-java/pom.xml | 2 +- .../legend-engine-pure-platform-store-relational-java/pom.xml | 2 +- .../legend-engine-pure-platform-modular-generation/pom.xml | 2 +- .../legend-engine-pure-runtime-compiler/pom.xml | 2 +- .../legend-engine-pure-runtime-execution/pom.xml | 2 +- .../legend-engine-pure-runtime-extensions/pom.xml | 2 +- .../legend-engine-xt-java-runtime-compiler/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-runtime/pom.xml | 2 +- legend-engine-pure/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-api/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-binding/pom.xml | 2 +- .../legend-engine-xt-analytics-class-api/pom.xml | 2 +- .../legend-engine-xt-analytics-class-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-class/pom.xml | 2 +- .../legend-engine-xt-analytics-function-api/pom.xml | 2 +- .../legend-engine-xt-analytics-function-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-function/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-api/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-lineage/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-api/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-protocol/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-mapping/pom.xml | 2 +- .../legend-engine-xt-analytics-search-generation/pom.xml | 2 +- .../legend-engine-xt-analytics-search-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-search/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement-api/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement/pom.xml | 2 +- .../legend-engine-xts-analytics-store/pom.xml | 2 +- legend-engine-xts-analytics/pom.xml | 2 +- legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml | 2 +- .../legend-engine-xt-arrow-runtime/pom.xml | 2 +- legend-engine-xts-arrow/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-protocol/pom.xml | 2 +- .../legend-engine-xt-authentication-pure/pom.xml | 2 +- legend-engine-xts-authentication/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro/pom.xml | 2 +- legend-engine-xts-avro/pom.xml | 2 +- .../legend-engine-xt-changetoken-compiler/pom.xml | 2 +- .../legend-engine-xt-changetoken-pure/pom.xml | 2 +- legend-engine-xts-changetoken/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml | 2 +- legend-engine-xts-daml/pom.xml | 2 +- .../legend-engine-xt-data-push-server/pom.xml | 2 +- legend-engine-xts-data-push/pom.xml | 2 +- .../legend-engine-xt-data-space-api/pom.xml | 2 +- .../legend-engine-xt-data-space-compiler/pom.xml | 2 +- .../legend-engine-xt-data-space-generation/pom.xml | 2 +- .../legend-engine-xt-data-space-grammar/pom.xml | 2 +- .../legend-engine-xt-data-space-protocol/pom.xml | 2 +- .../legend-engine-xt-data-space-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-data-space-pure/pom.xml | 2 +- legend-engine-xts-data-space/pom.xml | 2 +- .../legend-engine-xt-diagram-api/pom.xml | 2 +- .../legend-engine-xt-diagram-compiler/pom.xml | 2 +- .../legend-engine-xt-diagram-grammar/pom.xml | 2 +- .../legend-engine-xt-diagram-protocol/pom.xml | 2 +- .../legend-engine-xt-diagram-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-diagram-pure/pom.xml | 2 +- legend-engine-xts-diagram/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-grammar/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-protocol/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-executionPlan-test/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-protocol-utils/pom.xml | 2 +- .../pom.xml | 2 +- legend-engine-xts-elasticsearch/pom.xml | 2 +- .../legend-engine-xt-flatdata-driver-bloomberg/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-flatdata-model/pom.xml | 2 +- .../legend-engine-xt-flatdata-pure/pom.xml | 2 +- .../legend-engine-xt-flatdata-runtime/pom.xml | 2 +- .../legend-engine-xt-flatdata-shared/pom.xml | 2 +- legend-engine-xts-flatdata/pom.xml | 2 +- .../legend-engine-xt-functionActivator-api/pom.xml | 2 +- .../legend-engine-xt-functionActivator-protocol/pom.xml | 2 +- .../legend-engine-xt-functionActivator-pure/pom.xml | 2 +- legend-engine-xts-functionActivator/pom.xml | 2 +- .../legend-engine-external-shared/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation/pom.xml | 2 +- .../legend-engine-xt-artifact-generation-api/pom.xml | 2 +- legend-engine-xts-generation/pom.xml | 2 +- .../legend-engine-xt-graphQL-compiler/pom.xml | 4 ++-- .../legend-engine-xt-graphQL-grammar-integration/pom.xml | 2 +- .../legend-engine-xt-graphQL-grammar/pom.xml | 2 +- .../legend-engine-xt-graphQL-protocol/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure/pom.xml | 2 +- .../legend-engine-xt-graphQL-query/pom.xml | 2 +- .../legend-engine-xt-graphQL-relational-extension/pom.xml | 2 +- legend-engine-xts-graphQL/pom.xml | 2 +- .../legend-engine-xt-haskell-grammar/pom.xml | 2 +- .../legend-engine-xt-haskell-protocol/pom.xml | 2 +- .../legend-engine-xt-haskell-pure/pom.xml | 2 +- legend-engine-xts-haskell/pom.xml | 2 +- .../legend-engine-xt-hostedService-api/pom.xml | 2 +- .../legend-engine-xt-hostedService-compiler/pom.xml | 2 +- .../legend-engine-xt-hostedService-generation/pom.xml | 2 +- .../legend-engine-xt-hostedService-grammar/pom.xml | 2 +- .../legend-engine-xt-hostedService-protocol/pom.xml | 2 +- .../legend-engine-xt-hostedService-pure/pom.xml | 2 +- legend-engine-xts-hostedService/pom.xml | 2 +- .../legend-engine-xt-iceberg-pure/pom.xml | 2 +- .../legend-engine-xt-iceberg-test-support/pom.xml | 2 +- legend-engine-xts-iceberg/pom.xml | 2 +- .../legend-engine-external-language-java/pom.xml | 2 +- .../legend-engine-xt-javaGeneration-featureBased-pure/pom.xml | 2 +- .../legend-engine-xt-javaGeneration-pure/pom.xml | 2 +- .../legend-engine-xt-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-java/pom.xml | 2 +- .../legend-engine-external-format-jsonSchema/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-pure/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-test/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-model/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml | 2 +- legend-engine-xts-json/pom.xml | 2 +- .../legend-engine-xt-mastery-grammar/pom.xml | 2 +- .../legend-engine-xt-mastery-protocol/pom.xml | 2 +- .../legend-engine-xt-mastery-pure/pom.xml | 2 +- legend-engine-xts-mastery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml | 2 +- legend-engine-xts-mongodb/pom.xml | 2 +- .../legend-engine-xt-morphir-pure/pom.xml | 2 +- legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml | 2 +- legend-engine-xts-morphir/pom.xml | 2 +- .../legend-engine-xt-openapi-generation/pom.xml | 2 +- .../legend-engine-xt-openapi-pure/pom.xml | 2 +- legend-engine-xts-openapi/pom.xml | 2 +- .../legend-engine-xt-persistence-api/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-component/pom.xml | 2 +- .../legend-engine-xt-persistence-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-test-runner/pom.xml | 2 +- legend-engine-xts-persistence/pom.xml | 2 +- .../legend-engine-xt-protobuf-grammar/pom.xml | 2 +- .../legend-engine-xt-protobuf-protocol/pom.xml | 2 +- .../legend-engine-xt-protobuf-pure/pom.xml | 2 +- legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml | 4 ++-- legend-engine-xts-protobuf/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-analytics/pom.xml | 2 +- .../legend-engine-xt-relationalStore-connection/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-reports/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-server/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino/pom.xml | 2 +- .../legend-engine-xt-relationalStore-dbExtension/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-executionPlan/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-api/pom.xml | 2 +- .../legend-engine-xt-relationalStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-generation/pom.xml | 2 +- legend-engine-xts-relationalStore/pom.xml | 2 +- .../legend-engine-xt-relationalai-pure/pom.xml | 2 +- legend-engine-xts-relationalai/pom.xml | 2 +- .../legend-engine-xt-rosetta-pure/pom.xml | 2 +- legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml | 2 +- legend-engine-xts-rosetta/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-execution/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service/pom.xml | 2 +- .../legend-engine-service-post-validation-runner/pom.xml | 2 +- .../legend-engine-services-model-api/pom.xml | 2 +- .../legend-engine-services-model/pom.xml | 2 +- .../legend-engine-test-runner-service/pom.xml | 2 +- legend-engine-xts-service/pom.xml | 2 +- .../legend-engine-xt-serviceStore-executionPlan/pom.xml | 2 +- .../legend-engine-xt-serviceStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-serviceStore-protocol/pom.xml | 2 +- .../legend-engine-xt-serviceStore-pure/pom.xml | 2 +- legend-engine-xts-serviceStore/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-api/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-compiler/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-generator/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-grammar/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-protocol/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-pure/pom.xml | 2 +- legend-engine-xts-snowflakeApp/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml | 2 +- .../legend-engine-xt-sql-grammar-integration/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml | 2 +- .../legend-engine-xt-sql-postgres-server/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml | 2 +- .../legend-engine-xt-sql-providers-core/pom.xml | 2 +- .../legend-engine-xt-sql-providers-relationalStore/pom.xml | 2 +- .../legend-engine-xt-sql-providers-service/pom.xml | 2 +- .../legend-engine-xt-sql-providers-shared/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml | 2 +- .../legend-engine-xt-sql-pure-metamodel/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml | 2 +- legend-engine-xts-sql/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml | 2 +- .../legend-engine-xt-text-pure-metamodel/pom.xml | 2 +- legend-engine-xts-text/pom.xml | 2 +- .../legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml | 2 +- legend-engine-xts-xml/pom.xml | 2 +- pom.xml | 4 ++-- 381 files changed, 384 insertions(+), 384 deletions(-) diff --git a/legend-engine-application-query/pom.xml b/legend-engine-application-query/pom.xml index a5644d49a5d..ae183e6003a 100644 --- a/legend-engine-application-query/pom.xml +++ b/legend-engine-application-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-application-query diff --git a/legend-engine-config/legend-engine-configuration/pom.xml b/legend-engine-config/legend-engine-configuration/pom.xml index 19b085a060c..48968c40f30 100644 --- a/legend-engine-config/legend-engine-configuration/pom.xml +++ b/legend-engine-config/legend-engine-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-configuration diff --git a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml index e8b2a4156e3..af34cccde2a 100644 --- a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-connection-integration-tests diff --git a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml index b13cd3058fb..fd4155d26be 100644 --- a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml index 5e51522a1e1..8e9d50b9a58 100644 --- a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml index f860a58d691..a18a1456718 100644 --- a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml +++ b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-config/legend-engine-server-integration-tests/pom.xml b/legend-engine-config/legend-engine-server-integration-tests/pom.xml index b92093ed2fb..40c1552cddd 100644 --- a/legend-engine-config/legend-engine-server-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-server-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-server-integration-tests diff --git a/legend-engine-config/legend-engine-server-support-core/pom.xml b/legend-engine-config/legend-engine-server-support-core/pom.xml index 29959d07831..40b6990d646 100644 --- a/legend-engine-config/legend-engine-server-support-core/pom.xml +++ b/legend-engine-config/legend-engine-server-support-core/pom.xml @@ -3,7 +3,7 @@ legend-engine-config org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index cbf93d9d009..14f9982768d 100644 --- a/legend-engine-config/legend-engine-server/pom.xml +++ b/legend-engine-config/legend-engine-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-server diff --git a/legend-engine-config/pom.xml b/legend-engine-config/pom.xml index f3cdfd4a74c..25607bf76a7 100644 --- a/legend-engine-config/pom.xml +++ b/legend-engine-config/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml index 6c91f276510..0ca6d0d868f 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-executionPlan-dependencies diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml index 0c2a2cee499..ed0d9f7cb0d 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-executionPlan-execution-api diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml index 1210baadae3..753d3e0c372 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-core-executionPlan-execution org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml index ec312791f98..4002a7b55de 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-executionPlan-execution-store-inMemory diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml index 2850f59dfd2..0c61f98bd8b 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-executionPlan-execution diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml index a5102224d6c..cfe619e461f 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml index 5cae8208813..8c8233948dd 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml index 945bffaefe6..9a9c4e4432b 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-generation - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml index c57a58439a4..69a4bf4b123 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml index 00c9263a2ce..61adeb6553c 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml index 8f65a7cd6bb..2c13c33be5d 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-language-pure-compiler-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml index aca4bf1dc65..f9241968398 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-language-pure-compiler diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml index ca8ab38350f..5c8984b4d3a 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-language-pure-grammar-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml index ea064956592..4db5156be3f 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-language-pure-grammar diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml index 3137cbabb3a..45cdacf0974 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-language-pure-modelManager-sdlc diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml index b0ff121784f..f70f4a52f49 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-language-pure-modelManager diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml index f0d06addb59..02d1eadc97d 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-protocol-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml index 13abe3f5e6f..b321455606c 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-protocol-generation-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml index 93c6220db52..ea9665b3315 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-protocol-generation diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml index 71aa64d49f5..d672e8aa3eb 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-protocol-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml index 3222c5f3767..6d729d3a4c3 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-protocol diff --git a/legend-engine-core/legend-engine-core-language-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/pom.xml index 0897b6cb4e3..1ff905f63da 100644 --- a/legend-engine-core/legend-engine-core-language-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml index 7cc07a0c3f1..f30086ca230 100644 --- a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-query-pure - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-query-pure diff --git a/legend-engine-core/legend-engine-core-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/pom.xml index 1f0f2e790de..1e7f826a6b1 100644 --- a/legend-engine-core/legend-engine-core-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml index 75001d41b25..fe286ad24d0 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-shared-core diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml index d9a7fc82689..498a8577695 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-shared-javaCompiler diff --git a/legend-engine-core/legend-engine-core-shared/pom.xml b/legend-engine-core/legend-engine-core-shared/pom.xml index a674da193be..7fd26b349a4 100644 --- a/legend-engine-core/legend-engine-core-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml index d7286cac2cd..ec7b64b7548 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-core-test - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml index 96f215753bc..00c4c115546 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml index 9d19e01a47e..d89899d6fdb 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-test-runner-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml index eed9506b68f..bfbbc725240 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-test-server-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml index 7d455c55c97..2cd19c89002 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-testable diff --git a/legend-engine-core/legend-engine-core-test/pom.xml b/legend-engine-core/legend-engine-core-test/pom.xml index eabebcd002a..996bdddf891 100644 --- a/legend-engine-core/legend-engine-core-test/pom.xml +++ b/legend-engine-core/legend-engine-core-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-core/pom.xml b/legend-engine-core/pom.xml index b2c14141b16..4d04d56e897 100644 --- a/legend-engine-core/pom.xml +++ b/legend-engine-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml index b51cee8d273..8e336b29da4 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.32.1-SNAPSHOT + 4.33.0 legend-engine-pure-code-compiled-core diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml index cafc8094775..ef2f0d8eb85 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.32.1-SNAPSHOT + 4.33.0 legend-engine-pure-code-compiled-functions diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml index 7fa3a90ac59..7cb0a066840 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.32.1-SNAPSHOT + 4.33.0 legend-engine-pure-code-core-extension diff --git a/legend-engine-pure/legend-engine-pure-code/pom.xml b/legend-engine-pure/legend-engine-pure-code/pom.xml index fcf48b09e5d..b6ed0ba61ac 100644 --- a/legend-engine-pure/legend-engine-pure-code/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml index 4d7ef4be307..974fa25fe0e 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml index eccd598d078..b6dc6449678 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml index 17a0b4aefdf..6b328b130d6 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/pom.xml b/legend-engine-pure/legend-engine-pure-ide/pom.xml index fe62d799f87..c641e0caafd 100644 --- a/legend-engine-pure/legend-engine-pure-ide/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml index 3e69a6bdf58..983ad39caf6 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.32.1-SNAPSHOT + 4.33.0 legend-engine-pure-platform-dsl-diagram-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml index 336a660b58a..f2e265528f0 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.32.1-SNAPSHOT + 4.33.0 legend-engine-pure-platform-dsl-graph-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml index a6bb9845859..1fcb8d19e8a 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.32.1-SNAPSHOT + 4.33.0 legend-engine-pure-platform-dsl-mapping-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml index cf4adf171aa..457d936d23f 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.32.1-SNAPSHOT + 4.33.0 legend-engine-pure-platform-dsl-path-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml index b2e106b6fd1..787a659e494 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.32.1-SNAPSHOT + 4.33.0 legend-engine-pure-platform-functions-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml index 8f9acf9465b..2b78e7f8d7e 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.32.1-SNAPSHOT + 4.33.0 legend-engine-pure-platform-functions-json-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml index 36fd4464f5b..853db83c4da 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.32.1-SNAPSHOT + 4.33.0 legend-engine-pure-platform-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml index 78d84ca6879..00bbb1fc49b 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.32.1-SNAPSHOT + 4.33.0 legend-engine-pure-platform-store-relational-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml index ff3867b33eb..06f93137a7c 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml index 523ae9a2a96..b0a5a77f39e 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml index 0385771f6ca..9494ba05da9 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml index 51ad8bec715..f475048da9c 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml index 752fc2e25bc..1c08978f4e7 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.32.1-SNAPSHOT + 4.33.0 legend-engine-xt-java-runtime-compiler diff --git a/legend-engine-pure/legend-engine-pure-runtime/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/pom.xml index 6a851e58074..1916e5e4ead 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-pure/pom.xml b/legend-engine-pure/pom.xml index 644726cea75..74ab9f2f43d 100644 --- a/legend-engine-pure/pom.xml +++ b/legend-engine-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml index aa2b8da6975..ad670679de7 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml index 1e0af19bad8..da4314e0586 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml index 37a5cbfbda1..ace612bb751 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml index 3dd304e3490..9f6ad20c0d9 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml index cfce69a9758..eaacd9cce60 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml index 1c1f5539889..8a7217e2dc3 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml index d5d303dac6e..e43dbceb9fc 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml index f645ad5f1f5..7d662ee1e7f 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml index bbc6593b0b6..33cba8c8172 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml index 51b4a91ff31..c9e7ce04c1b 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml index 2d1a0fb8727..35253e57e80 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml index dd62aee9f06..78008fe01b9 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml index 9e81fbb0417..1715552bb67 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 Legend Engine - XT - Analytics - Mapping - API diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml index 2a2f2f46698..43935521906 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-mapping - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 Legend Engine - XT - Analytics - Mapping - Protocol diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml index 42c581d3582..523619d26a7 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml index dc4f11e89ef..08f9d16127a 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml index 8a2cef1d5ef..50d778d24c3 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-search - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml index 8d556d18a90..65c41f778cd 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-search org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml index 1ea29707898..d06e340c2ca 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml index bda221c6705..5f7e0280eed 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-xt-analytics-store-entitlement-api diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml index 21d5ba85b04..f42528d0f9b 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml index 8ea1c598453..0ce26abbc1e 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-analytics/pom.xml b/legend-engine-xts-analytics/pom.xml index 9f1109bd3cb..cc7c94bd307 100644 --- a/legend-engine-xts-analytics/pom.xml +++ b/legend-engine-xts-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml index 03b2e282a85..a0f71aeb47f 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml index 0b0db2cf8ba..a720d02432e 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-arrow/pom.xml b/legend-engine-xts-arrow/pom.xml index 242bd3bae07..cc7e3663e4b 100644 --- a/legend-engine-xts-arrow/pom.xml +++ b/legend-engine-xts-arrow/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 legend-engine-xts-arrow diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml index e0d1268d796..e3991f89a98 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml index d60499a7b02..9c7b1679720 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml index 9f76cb56a53..0706ff8eed9 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml index 88ecd494b67..e92e62143bc 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml index 21d94edcf1e..7082395a274 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml index 5e4d86a9054..4652a73d7a0 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml index c532fd18084..c0dd9b3b81f 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-authentication/pom.xml b/legend-engine-xts-authentication/pom.xml index 2e6ece66d89..3b116d8e4ca 100644 --- a/legend-engine-xts-authentication/pom.xml +++ b/legend-engine-xts-authentication/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml index da269d7de3f..fa718c31fb6 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml index de3143e9cab..a373e2bed0d 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-avro/pom.xml b/legend-engine-xts-avro/pom.xml index 933307d3023..7f9d4ce5962 100644 --- a/legend-engine-xts-avro/pom.xml +++ b/legend-engine-xts-avro/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml index 435dcb74a7b..8dfcc2cc3d3 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-changetoken org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml index 100dc295cf2..7a3792dbc02 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-changetoken - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-changetoken/pom.xml b/legend-engine-xts-changetoken/pom.xml index e9202e6ce65..18a167313be 100644 --- a/legend-engine-xts-changetoken/pom.xml +++ b/legend-engine-xts-changetoken/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml index 9a96c23c453..62e0b1952c6 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml index 5074517e363..af371afb68a 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml index 6ae80cd45ce..a15b6262577 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-daml/pom.xml b/legend-engine-xts-daml/pom.xml index cb7c3d4f020..1cdfbaf98a4 100644 --- a/legend-engine-xts-daml/pom.xml +++ b/legend-engine-xts-daml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml index 56b7c7bd560..a8badd1d097 100644 --- a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml +++ b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-data-push org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-data-push/pom.xml b/legend-engine-xts-data-push/pom.xml index 76051500d88..5cd35d370b4 100644 --- a/legend-engine-xts-data-push/pom.xml +++ b/legend-engine-xts-data-push/pom.xml @@ -3,7 +3,7 @@ legend-engine org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml index e561a5e2d4f..3a8cf134ca7 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml index f8ab50a0fcf..01d116b2989 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-data-space org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml index dfb0bddab8f..214d6d7a689 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml index edb773f3c75..5a15f0153c5 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml index b4deaaee9be..d8c0ca6efa8 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml index e49d93e638e..0250d467dd0 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml index d8be092ea06..356edc43e65 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-data-space/pom.xml b/legend-engine-xts-data-space/pom.xml index be7c0003a17..d323258dd75 100644 --- a/legend-engine-xts-data-space/pom.xml +++ b/legend-engine-xts-data-space/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml index 7c1c7f9f9f6..a79a755a59f 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml index a95dccd3e25..2900ca7efbb 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-diagram org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml index 472d0806b10..0440a4cb343 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml index a1d12eb2859..28f1d7e8c90 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml index 38858e9b4b1..2748afaa8ef 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml index f7d11554ee3..fd64625dc96 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-diagram/pom.xml b/legend-engine-xts-diagram/pom.xml index 30b4dad81c6..0d89795257e 100644 --- a/legend-engine-xts-diagram/pom.xml +++ b/legend-engine-xts-diagram/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml index 95eb5b30e0d..bd1e6e1af86 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml index 9c3afc01ca7..b7e952268a3 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml index b71e66b3195..81485ba77f6 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml index f5e1fff78db..327e0ea4d4d 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml index 92317a1d9fa..62d026d207c 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml index 1a9c94f58ed..3356dafd733 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.32.1-SNAPSHOT + 4.33.0 legend-engine-xt-elasticsearch-protocol-utils diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml index 9132e7e2ace..a01f8715ed8 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/pom.xml b/legend-engine-xts-elasticsearch/pom.xml index 71811023ad8..316e84c9653 100644 --- a/legend-engine-xts-elasticsearch/pom.xml +++ b/legend-engine-xts-elasticsearch/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml index ca6d92e88b7..fc58b2b234b 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-flatdata org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml index 2ce3ee6188a..4646d2ecc57 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml index 15743a9a12a..fcf91526bdc 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml index 2608aad24b6..131fcbe745a 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml index 0ae45f6c61e..fae886862b0 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml index 7a11ca9f632..9d336d4bbc5 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml index 0b4c1bc13dc..372da049e19 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-flatdata/pom.xml b/legend-engine-xts-flatdata/pom.xml index 6e1065054e1..89a765fe6d5 100644 --- a/legend-engine-xts-flatdata/pom.xml +++ b/legend-engine-xts-flatdata/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml index 8cd5d554c3e..6516d29bc70 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml index ce19c12348c..62a52cf4b3f 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml index 9390cc74c2a..8eb25fb7e1d 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-functionActivator/pom.xml b/legend-engine-xts-functionActivator/pom.xml index 55c5943d834..a11ff366f3b 100644 --- a/legend-engine-xts-functionActivator/pom.xml +++ b/legend-engine-xts-functionActivator/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml index fa7cbd3981e..c05776a4e10 100644 --- a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml +++ b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml index b9c46315d9d..491bc8efe5d 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml index fcc6340f2c1..db29521976a 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-language-pure-dsl-generation diff --git a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml index cde9e7c2f37..b96ca39395c 100644 --- a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml +++ b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-generation org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-generation/pom.xml b/legend-engine-xts-generation/pom.xml index 4b8f2f5b637..1b4be501997 100644 --- a/legend-engine-xts-generation/pom.xml +++ b/legend-engine-xts-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml index d34644934c3..7c7ba0a2f04 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 @@ -73,7 +73,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.32.1-SNAPSHOT + 4.33.0 org.finos.legend.pure diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml index 9d90f50016d..bc02c3252e3 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml index 54f1645b576..e31e63b43f6 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml index b61c227ba4e..fc78c7b88d8 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml index 8c951cada22..6cc569d6556 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml index 7974680f5b0..274217713ec 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml index f093ec9f128..990d9377da8 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml index e22db607ac2..1c3cd896be3 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-graphQL/pom.xml b/legend-engine-xts-graphQL/pom.xml index e448b626519..cd53544ce01 100644 --- a/legend-engine-xts-graphQL/pom.xml +++ b/legend-engine-xts-graphQL/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml index 98523bd142f..f119d09d0d6 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml index 2b74a5f133f..f191e75fdfe 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml index 72397413fe1..52d778f599f 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-haskell/pom.xml b/legend-engine-xts-haskell/pom.xml index 163105a0bce..3b0e1810951 100644 --- a/legend-engine-xts-haskell/pom.xml +++ b/legend-engine-xts-haskell/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml index 3403eebb2b1..6a5dec0ec7f 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml index e813b1fd989..9998615f4f1 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml index 2f2f655497e..b4e0ef5d3be 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml index d56a41cd2c0..2546c472104 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml index b04ec33d513..46797665270 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml index df59aa04e05..6ea9ff96819 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-hostedService/pom.xml b/legend-engine-xts-hostedService/pom.xml index bd432585b6b..dbae258a6b2 100644 --- a/legend-engine-xts-hostedService/pom.xml +++ b/legend-engine-xts-hostedService/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml index 3b8a9040b9e..d5857273e46 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml index 3e981c3c934..7e970d9729e 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-iceberg/pom.xml b/legend-engine-xts-iceberg/pom.xml index 5a0a130aedd..17b5e00a3a7 100644 --- a/legend-engine-xts-iceberg/pom.xml +++ b/legend-engine-xts-iceberg/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml index 13312566e13..beb898a43fa 100644 --- a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml +++ b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml index 50c295c9cbc..8ba3ca00812 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml index c398240c537..1032776c80d 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml index 7db3c8bb05f..df7e4381868 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-java/pom.xml b/legend-engine-xts-java/pom.xml index f4ecc30945a..3fb9be351f7 100644 --- a/legend-engine-xts-java/pom.xml +++ b/legend-engine-xts-java/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml index 66b7c3bd864..1d74e2e61c9 100644 --- a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml +++ b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml index 9bdf6b11d7c..f7986ba3151 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml index c00f6bbe83b..e49bdcc5570 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml index da634985f6d..399d81cb12e 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml index 6ab776881cd..0c87d406208 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml index 53b9699d5a2..f812fd75a41 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-json/pom.xml b/legend-engine-xts-json/pom.xml index f7f05218ab6..37dd506211e 100644 --- a/legend-engine-xts-json/pom.xml +++ b/legend-engine-xts-json/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml index c06b7dd9ebb..4f507afbfd9 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-mastery org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml index c05f13ee744..6cef114e707 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml index 1f113512bde..343df86c551 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-mastery/pom.xml b/legend-engine-xts-mastery/pom.xml index a9ed29d1635..8c3853ff7dc 100644 --- a/legend-engine-xts-mastery/pom.xml +++ b/legend-engine-xts-mastery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml index 2f10d87be78..4238afa5e99 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml index 7a78503c94c..c251953e0f6 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.32.1-SNAPSHOT + 4.33.0 legend-engine-xt-nonrelationalStore-mongodb-executionPlan diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml index 7aad8f265c9..a390fa6a9b9 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.32.1-SNAPSHOT + 4.33.0 legend-engine-xt-nonrelationalStore-mongodb-grammar-integration diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml index 13796b13157..324c58a7477 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.32.1-SNAPSHOT + 4.33.0 legend-engine-xt-nonrelationalStore-mongodb-grammar diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml index 6fb4d43b4ab..52051a11e5f 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.32.1-SNAPSHOT + 4.33.0 legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml index ac178f01934..a110b34a17c 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.32.1-SNAPSHOT + 4.33.0 legend-engine-xt-nonrelationalStore-mongodb-protocol diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml index fb363441515..381be0c9ce5 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.32.1-SNAPSHOT + 4.33.0 legend-engine-xt-nonrelationalStore-mongodb-pure diff --git a/legend-engine-xts-mongodb/pom.xml b/legend-engine-xts-mongodb/pom.xml index 9e098bf5b0d..ac8b056eeb8 100644 --- a/legend-engine-xts-mongodb/pom.xml +++ b/legend-engine-xts-mongodb/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml index 8619cf357fe..ce0a4c078cf 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-morphir - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml index 6aeaf7a15e1..bf80be3b579 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-morphir org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-morphir/pom.xml b/legend-engine-xts-morphir/pom.xml index 1e554be7668..99b79f874a8 100644 --- a/legend-engine-xts-morphir/pom.xml +++ b/legend-engine-xts-morphir/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml index f3ee40368da..a6f4417f1cf 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.32.1-SNAPSHOT + 4.33.0 legend-engine-xt-openapi-generation diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml index 89b2ca01ded..3539be6f697 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.32.1-SNAPSHOT + 4.33.0 legend-engine-xt-openapi-pure diff --git a/legend-engine-xts-openapi/pom.xml b/legend-engine-xts-openapi/pom.xml index 2f9cffd4dc1..1a21bdea496 100644 --- a/legend-engine-xts-openapi/pom.xml +++ b/legend-engine-xts-openapi/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml index c19a4c7ec0b..4d55d0a11cc 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml index 47b492dbe0c..8bb9c4c0a61 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml index 5426cab9210..0829008aa7e 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml index bba93ab206e..1820f773722 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml index 0cdec007df2..6863fafce5e 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml index 79909146efd..c3e41d39f45 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml index 86c331c2263..22e6e8e7e6f 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml index 998b7567af8..221769e2d27 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml index bab1efb8874..0afd6032b41 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml index 2c78e852fdf..c1c95bce77d 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml index 631f58c585b..66315aa898a 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml index ddbe1e3431e..677a3db9df6 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml index a98253b12b6..92488cb205c 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml index 29dfea691f4..86ddef34184 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml index 308dea15132..829dfae05de 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml index 7c6f4c0c516..fd88d53500d 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml index 5d660f97d43..ac34b0b2c3c 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml index 1a7c1bd7bda..031dab6af9e 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml index 606b708d0f2..227a7742c6b 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml index 162a1b0e3c5..346faa98011 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml index 71af3c9ac2a..95a53c70969 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-persistence/pom.xml b/legend-engine-xts-persistence/pom.xml index b438b169025..b350411772f 100644 --- a/legend-engine-xts-persistence/pom.xml +++ b/legend-engine-xts-persistence/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml index 12292f5e5d2..bbcc93f3276 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-xt-protobuf-grammar diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml index 4516e69fa0b..a7ac8829b42 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-xt-protobuf-protocol diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml index 05fe28adcf3..461e5785233 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml index f6e8a518ee4..387e2cd6024 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 @@ -57,7 +57,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.32.1-SNAPSHOT + 4.33.0 org.finos.legend.pure diff --git a/legend-engine-xts-protobuf/pom.xml b/legend-engine-xts-protobuf/pom.xml index 4a4241f2955..94ac25f1828 100644 --- a/legend-engine-xts-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml index dd036aabade..40a66a04d6c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml index 3d1355e1a0d..69ebb210db0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml index 91fae8f4668..144b753ced8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml index a02a3111a95..d2f1e6156b3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml index 0bf4f64c441..10408bad5d6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml index 3b449ef884b..82817744884 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml index b3747e68f50..9edbba79444 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml index 8743d43226b..1abc10e7a9f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml index 28e889f26a1..ef0f509ee06 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml index 92c900c899d..9805fc570b5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml index 4d4ca89a640..1d0c1fb00a9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-bigquery org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml index 5995b72d51c..58871d0d1a1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml index 956161185bf..36dde78acfe 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml index 6bf0cb36e03..5dcc9f1cd02 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml index 772eb8eebd3..779d11b1ea0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml index ab117934571..811e0c16321 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml index 81e894dd1b7..49929f4a539 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml index f82546b0207..72775401cf5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml index 4266d8e7fc8..8c3b0a13679 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml index 4bdb231f29d..3fc1300b80f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml index 0236a5704f7..ff6736d2efc 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml index e9810e038c3..0bd938bdfce 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml index 5eee2575af5..e1b120765f0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-dbExtension org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml index 69a735cf579..4bc7e99f46c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-hive - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml index d771fc231d0..c9834682e26 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml index 806be46c5f8..18defaf0f84 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml index 90c49a13f5d..97aa783eb98 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-memsql org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml index c55623b1adb..cacfe0a5ab6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.32.1-SNAPSHOT + 4.33.0 legend-engine-xt-relationalStore-memsql-execution diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml index b50fbb9c384..a721d15a31a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.32.1-SNAPSHOT + 4.33.0 legend-engine-xt-relationalStore-memsql-pure diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml index 6c59e3b3798..5197efcd5c8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml index a74494a1a6e..2ac617e28a6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml index 08d34b2d2b7..0a4cd16d0cd 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml index 2c0295f7306..66313ba82b8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml index df533361f06..5d9593581b8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml index d2017fa2ad4..28a7ee93990 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml index 12feefb3d03..3dfb828f5ee 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml index d0ad6061fc3..85f45bd644c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-presto - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml index 76b70da91f5..e57f29a7b2a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml index 20fb01d5f9f..d4b5aefe35a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml index b2c9dd23ef8..e8e35d5226f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml index 3fa7c830dfb..231e9b064f5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml index f319632f4e2..d2282c410d7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml index a8684018722..07f7e3ef0c9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml index e0c9170f489..609f3f2b68f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml index 903c4c38542..a29bc55add7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml index b9dad684373..c16c675f6e3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml index d5fd3a87cbe..d967c166dfc 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml index 17d450ecb30..deb3cf18aac 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml index 0309ecd6134..d3b6ae3ba9c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml index 9398b2bbf95..6b52870d6fe 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml index 65b54b5b365..a50dc3fabe9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml index c08de9ba64c..3a257d08966 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml index 164a7e43103..0ff04f90a42 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml index eab19ddc209..c7250e8fe36 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml index 930b2638ae7..8e053a64735 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml index 3e947a3ca19..06dc016d389 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml index 5620a78b37f..b8bd8e9e1ab 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml index 3214a07efac..b1d4d4c623d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml index 1de244ccd5b..dbb67b8db29 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sparksql - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml index 00836ab26b1..8fe6ef5dee9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml index a904b9b33f5..b3be1ac02cc 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml index 972c410cb17..d41a6570fe0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-xt-relationalStore-sqlserver-execution-tests diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml index a8139e8cdfd..072b9022bfb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml index 1efb477f179..bc541ec5aef 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml index 38140532577..cfa022cc2ef 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml index 863cdc1c7bc..fead76887aa 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybase - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml index 04ba83b1069..a41304570d7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml index 617c7b119cd..4b723fa2c9d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybaseiq - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml index fd350fd8ed5..b34dcc4d17c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml index 861d1ac7aa1..9035e47c226 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-xt-relationalStore-test-reports diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml index 4e5172262ce..23c62281305 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-xt-relationalStore-test-server diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml index 01192b31507..f6d8926f8d4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml index a209baae6cc..04ee252e1e1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml index da17a73dc1e..c3233cf6510 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml index a8595f21513..4c27de9032c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml index df813c99f7c..907fcf409bf 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml index a27208fa210..bde85b4655a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml index f8df50ce175..c2627cee138 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml index 6cb2cf613b4..17ecdc5f308 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml index df6199ea357..8475f68fc2d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml index cd3a70b279b..465f817b157 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication-default diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml index 8d6660293c6..d06b3d91208 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml index 6be48f969bc..1fd2f2d0993 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 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 4209282b241..d485a5836d8 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 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 ab6fe96e9b0..bf564d4a20c 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml index d2c2d61ae7f..2c3f34c8815 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml index b4508ff6709..3814c54102a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml index b4d2ccddf9f..23dcaf9d83a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml index 3cfed4a48ea..f8752d776a5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml index 75fbe5a77b7..6a5026434c5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml index dff071bd52d..1df748edc4c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml index a53578648a4..3b43ad11a69 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml index fa6e862a6fb..7303220dbeb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml index afb2ae401d0..b69151bcf99 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/pom.xml b/legend-engine-xts-relationalStore/pom.xml index 717b5eb81b1..cd65b664723 100644 --- a/legend-engine-xts-relationalStore/pom.xml +++ b/legend-engine-xts-relationalStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml index 5810fc8444d..0c741d3007a 100644 --- a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalai - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-relationalai/pom.xml b/legend-engine-xts-relationalai/pom.xml index 6fb2ce4665d..6519a6672e3 100644 --- a/legend-engine-xts-relationalai/pom.xml +++ b/legend-engine-xts-relationalai/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml index 6ddbd23f1ce..a5f5b0fcfa5 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml index f1c2e39d2d5..71ed4e0ed4f 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-rosetta/pom.xml b/legend-engine-xts-rosetta/pom.xml index 04301fa5f9d..064e161521b 100644 --- a/legend-engine-xts-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml index f241ee59173..d9eb719b2fa 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-language-pure-dsl-service-execution diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml index c96cdee527e..b02eaace504 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml index 8ccff22469a..742488cb7a5 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml index e1d12871634..d43dbfcd041 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-language-pure-dsl-service diff --git a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml index a3ca2dd87f4..22d18d1cf4c 100644 --- a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml +++ b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml index 9e1e310814f..7805230aa9f 100644 --- a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-services-model-api diff --git a/legend-engine-xts-service/legend-engine-services-model/pom.xml b/legend-engine-xts-service/legend-engine-services-model/pom.xml index be3873faca2..18a421fa020 100644 --- a/legend-engine-xts-service/legend-engine-services-model/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 legend-engine-services-model diff --git a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml index a9dbf9de247..d64c4a7de88 100644 --- a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-service/pom.xml b/legend-engine-xts-service/pom.xml index 1f3dbdf3bc2..8be01da7932 100644 --- a/legend-engine-xts-service/pom.xml +++ b/legend-engine-xts-service/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml index ceda5491fff..b515307cf71 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml index c85b9726cd5..b60d7881b42 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml index d679c93eeee..a3c17e2ad92 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml index 67b7c08f389..dd54aff28ac 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml index a3cb3d91f2c..f975d248a74 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-serviceStore/pom.xml b/legend-engine-xts-serviceStore/pom.xml index 0e3742c8240..14145b60393 100644 --- a/legend-engine-xts-serviceStore/pom.xml +++ b/legend-engine-xts-serviceStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml index 743ec94d482..bb45e62c95b 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml index e4338792cb7..c6060c7212a 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-snowflakeApp org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml index 6b5f0a6b96e..76a34cc0ad3 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml index ee6d48b026f..b74c90d8f04 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml index 44ba7e492a3..995931176fd 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml index 180449a04c2..020630427c9 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/pom.xml b/legend-engine-xts-snowflakeApp/pom.xml index 851ef2f7b8a..64b234cca36 100644 --- a/legend-engine-xts-snowflakeApp/pom.xml +++ b/legend-engine-xts-snowflakeApp/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml index 2b47b85f498..b54ac2de67d 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml index 77abaf653c1..a1e470fee0d 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml index fd4200aa96f..f0863359cc5 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml index 755b3aef202..c8980a1a08b 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-sql org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml index 6b4295071a4..7a13f9fb92e 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml index 93b8286a1f9..d82da49c6cc 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml index 1651e8868f1..5670b8787aa 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml index f34c9ce12a6..95bdacc75af 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml index 25e0e30f21e..02f04698b20 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml index a5498551eed..84aab38ee6c 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml index c75d9c9073a..8e63653c7ad 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml index 8e344b7b3c5..4f345934645 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml index f4b79ad6c04..c89e4522714 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-sql/pom.xml b/legend-engine-xts-sql/pom.xml index 6948a39c84a..6a55be28e9d 100644 --- a/legend-engine-xts-sql/pom.xml +++ b/legend-engine-xts-sql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml index 0f3f8adcec6..0c3a3ff24bf 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-text org.finos.legend.engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml index c287fc5642e..b1da2eca937 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml index 5bfd598aea5..221d16ca004 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml index 867ed175c09..67a53691dbb 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-text/pom.xml b/legend-engine-xts-text/pom.xml index 61d1359d0b4..8317bf28f4c 100644 --- a/legend-engine-xts-text/pom.xml +++ b/legend-engine-xts-text/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml index b46994939a5..e1647663023 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml index d95936aef22..78bb0f9474b 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml index 72e70b7d74c..26c972dcb7a 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml index 4d2f71269e9..3876b1c9a64 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml index 84eb12e2a7b..e77b82664bd 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/legend-engine-xts-xml/pom.xml b/legend-engine-xts-xml/pom.xml index 9bd279755df..48b3497612c 100644 --- a/legend-engine-xts-xml/pom.xml +++ b/legend-engine-xts-xml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 4.0.0 diff --git a/pom.xml b/pom.xml index 06c01b3a95e..e7dbda01145 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ Legend Engine org.finos.legend.engine legend-engine - 4.32.1-SNAPSHOT + 4.33.0 pom @@ -228,7 +228,7 @@ scm:git:https://github.com/finos/legend-engine - HEAD + legend-engine-4.33.0 From 34189f4a2bf3e253fb771ceae42325a90cffcd76 Mon Sep 17 00:00:00 2001 From: FINOS Administrator <37706051+finos-admin@users.noreply.github.com> Date: Tue, 31 Oct 2023 06:39:56 +0000 Subject: [PATCH 55/80] [maven-release-plugin] prepare for next development iteration --- legend-engine-application-query/pom.xml | 2 +- legend-engine-config/legend-engine-configuration/pom.xml | 2 +- .../legend-engine-connection-integration-tests/pom.xml | 2 +- .../legend-engine-extensions-collection-execution/pom.xml | 2 +- .../legend-engine-extensions-collection-generation/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-server-integration-tests/pom.xml | 2 +- .../legend-engine-server-support-core/pom.xml | 2 +- legend-engine-config/legend-engine-server/pom.xml | 2 +- legend-engine-config/pom.xml | 2 +- .../legend-engine-executionPlan-dependencies/pom.xml | 2 +- .../legend-engine-executionPlan-execution-api/pom.xml | 2 +- .../legend-engine-executionPlan-execution-authorizer/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-executionPlan-execution/pom.xml | 2 +- .../legend-engine-external-shared-format-runtime/pom.xml | 2 +- .../legend-engine-core-executionPlan-execution/pom.xml | 2 +- .../legend-engine-executionPlan-generation/pom.xml | 2 +- .../legend-engine-core-executionPlan-generation/pom.xml | 2 +- .../legend-engine-external-shared-format-model/pom.xml | 2 +- .../legend-engine-language-pure-compiler-api/pom.xml | 2 +- .../legend-engine-language-pure-compiler/pom.xml | 2 +- .../legend-engine-language-pure-grammar-api/pom.xml | 2 +- .../legend-engine-language-pure-grammar/pom.xml | 2 +- .../legend-engine-language-pure-modelManager-sdlc/pom.xml | 2 +- .../legend-engine-language-pure-modelManager/pom.xml | 2 +- .../legend-engine-protocol-api/pom.xml | 2 +- .../legend-engine-protocol-generation-pure/pom.xml | 2 +- .../legend-engine-protocol-generation/pom.xml | 2 +- .../legend-engine-protocol-pure/pom.xml | 2 +- .../legend-engine-protocol/pom.xml | 2 +- legend-engine-core/legend-engine-core-language-pure/pom.xml | 2 +- .../legend-engine-query-pure/pom.xml | 2 +- legend-engine-core/legend-engine-core-query-pure/pom.xml | 2 +- .../legend-engine-shared-core/pom.xml | 2 +- .../legend-engine-shared-javaCompiler/pom.xml | 2 +- legend-engine-core/legend-engine-core-shared/pom.xml | 2 +- .../legend-engine-test-data-generation/pom.xml | 2 +- .../legend-engine-test-runner-mapping/pom.xml | 2 +- .../legend-engine-test-runner-shared/pom.xml | 2 +- .../legend-engine-test-server-shared/pom.xml | 2 +- .../legend-engine-core-test/legend-engine-testable/pom.xml | 2 +- legend-engine-core/legend-engine-core-test/pom.xml | 2 +- legend-engine-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-functions/pom.xml | 2 +- .../legend-engine-pure-code-core-extension/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-code/pom.xml | 2 +- .../legend-engine-pure-ide-light-metadata-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-ide/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-diagram-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-graph-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-mapping-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-path-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-json-java/pom.xml | 2 +- .../legend-engine-pure-platform-java/pom.xml | 2 +- .../legend-engine-pure-platform-store-relational-java/pom.xml | 2 +- .../legend-engine-pure-platform-modular-generation/pom.xml | 2 +- .../legend-engine-pure-runtime-compiler/pom.xml | 2 +- .../legend-engine-pure-runtime-execution/pom.xml | 2 +- .../legend-engine-pure-runtime-extensions/pom.xml | 2 +- .../legend-engine-xt-java-runtime-compiler/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-runtime/pom.xml | 2 +- legend-engine-pure/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-api/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-binding/pom.xml | 2 +- .../legend-engine-xt-analytics-class-api/pom.xml | 2 +- .../legend-engine-xt-analytics-class-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-class/pom.xml | 2 +- .../legend-engine-xt-analytics-function-api/pom.xml | 2 +- .../legend-engine-xt-analytics-function-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-function/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-api/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-lineage/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-api/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-protocol/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-mapping/pom.xml | 2 +- .../legend-engine-xt-analytics-search-generation/pom.xml | 2 +- .../legend-engine-xt-analytics-search-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-search/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement-api/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement/pom.xml | 2 +- .../legend-engine-xts-analytics-store/pom.xml | 2 +- legend-engine-xts-analytics/pom.xml | 2 +- legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml | 2 +- .../legend-engine-xt-arrow-runtime/pom.xml | 2 +- legend-engine-xts-arrow/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-protocol/pom.xml | 2 +- .../legend-engine-xt-authentication-pure/pom.xml | 2 +- legend-engine-xts-authentication/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro/pom.xml | 2 +- legend-engine-xts-avro/pom.xml | 2 +- .../legend-engine-xt-changetoken-compiler/pom.xml | 2 +- .../legend-engine-xt-changetoken-pure/pom.xml | 2 +- legend-engine-xts-changetoken/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml | 2 +- legend-engine-xts-daml/pom.xml | 2 +- .../legend-engine-xt-data-push-server/pom.xml | 2 +- legend-engine-xts-data-push/pom.xml | 2 +- .../legend-engine-xt-data-space-api/pom.xml | 2 +- .../legend-engine-xt-data-space-compiler/pom.xml | 2 +- .../legend-engine-xt-data-space-generation/pom.xml | 2 +- .../legend-engine-xt-data-space-grammar/pom.xml | 2 +- .../legend-engine-xt-data-space-protocol/pom.xml | 2 +- .../legend-engine-xt-data-space-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-data-space-pure/pom.xml | 2 +- legend-engine-xts-data-space/pom.xml | 2 +- .../legend-engine-xt-diagram-api/pom.xml | 2 +- .../legend-engine-xt-diagram-compiler/pom.xml | 2 +- .../legend-engine-xt-diagram-grammar/pom.xml | 2 +- .../legend-engine-xt-diagram-protocol/pom.xml | 2 +- .../legend-engine-xt-diagram-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-diagram-pure/pom.xml | 2 +- legend-engine-xts-diagram/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-grammar/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-protocol/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-executionPlan-test/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-protocol-utils/pom.xml | 2 +- .../pom.xml | 2 +- legend-engine-xts-elasticsearch/pom.xml | 2 +- .../legend-engine-xt-flatdata-driver-bloomberg/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-flatdata-model/pom.xml | 2 +- .../legend-engine-xt-flatdata-pure/pom.xml | 2 +- .../legend-engine-xt-flatdata-runtime/pom.xml | 2 +- .../legend-engine-xt-flatdata-shared/pom.xml | 2 +- legend-engine-xts-flatdata/pom.xml | 2 +- .../legend-engine-xt-functionActivator-api/pom.xml | 2 +- .../legend-engine-xt-functionActivator-protocol/pom.xml | 2 +- .../legend-engine-xt-functionActivator-pure/pom.xml | 2 +- legend-engine-xts-functionActivator/pom.xml | 2 +- .../legend-engine-external-shared/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation/pom.xml | 2 +- .../legend-engine-xt-artifact-generation-api/pom.xml | 2 +- legend-engine-xts-generation/pom.xml | 2 +- .../legend-engine-xt-graphQL-compiler/pom.xml | 4 ++-- .../legend-engine-xt-graphQL-grammar-integration/pom.xml | 2 +- .../legend-engine-xt-graphQL-grammar/pom.xml | 2 +- .../legend-engine-xt-graphQL-protocol/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure/pom.xml | 2 +- .../legend-engine-xt-graphQL-query/pom.xml | 2 +- .../legend-engine-xt-graphQL-relational-extension/pom.xml | 2 +- legend-engine-xts-graphQL/pom.xml | 2 +- .../legend-engine-xt-haskell-grammar/pom.xml | 2 +- .../legend-engine-xt-haskell-protocol/pom.xml | 2 +- .../legend-engine-xt-haskell-pure/pom.xml | 2 +- legend-engine-xts-haskell/pom.xml | 2 +- .../legend-engine-xt-hostedService-api/pom.xml | 2 +- .../legend-engine-xt-hostedService-compiler/pom.xml | 2 +- .../legend-engine-xt-hostedService-generation/pom.xml | 2 +- .../legend-engine-xt-hostedService-grammar/pom.xml | 2 +- .../legend-engine-xt-hostedService-protocol/pom.xml | 2 +- .../legend-engine-xt-hostedService-pure/pom.xml | 2 +- legend-engine-xts-hostedService/pom.xml | 2 +- .../legend-engine-xt-iceberg-pure/pom.xml | 2 +- .../legend-engine-xt-iceberg-test-support/pom.xml | 2 +- legend-engine-xts-iceberg/pom.xml | 2 +- .../legend-engine-external-language-java/pom.xml | 2 +- .../legend-engine-xt-javaGeneration-featureBased-pure/pom.xml | 2 +- .../legend-engine-xt-javaGeneration-pure/pom.xml | 2 +- .../legend-engine-xt-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-java/pom.xml | 2 +- .../legend-engine-external-format-jsonSchema/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-pure/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-test/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-model/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml | 2 +- legend-engine-xts-json/pom.xml | 2 +- .../legend-engine-xt-mastery-grammar/pom.xml | 2 +- .../legend-engine-xt-mastery-protocol/pom.xml | 2 +- .../legend-engine-xt-mastery-pure/pom.xml | 2 +- legend-engine-xts-mastery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml | 2 +- legend-engine-xts-mongodb/pom.xml | 2 +- .../legend-engine-xt-morphir-pure/pom.xml | 2 +- legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml | 2 +- legend-engine-xts-morphir/pom.xml | 2 +- .../legend-engine-xt-openapi-generation/pom.xml | 2 +- .../legend-engine-xt-openapi-pure/pom.xml | 2 +- legend-engine-xts-openapi/pom.xml | 2 +- .../legend-engine-xt-persistence-api/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-component/pom.xml | 2 +- .../legend-engine-xt-persistence-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-test-runner/pom.xml | 2 +- legend-engine-xts-persistence/pom.xml | 2 +- .../legend-engine-xt-protobuf-grammar/pom.xml | 2 +- .../legend-engine-xt-protobuf-protocol/pom.xml | 2 +- .../legend-engine-xt-protobuf-pure/pom.xml | 2 +- legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml | 4 ++-- legend-engine-xts-protobuf/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-analytics/pom.xml | 2 +- .../legend-engine-xt-relationalStore-connection/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-reports/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-server/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino/pom.xml | 2 +- .../legend-engine-xt-relationalStore-dbExtension/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-executionPlan/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-api/pom.xml | 2 +- .../legend-engine-xt-relationalStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-generation/pom.xml | 2 +- legend-engine-xts-relationalStore/pom.xml | 2 +- .../legend-engine-xt-relationalai-pure/pom.xml | 2 +- legend-engine-xts-relationalai/pom.xml | 2 +- .../legend-engine-xt-rosetta-pure/pom.xml | 2 +- legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml | 2 +- legend-engine-xts-rosetta/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-execution/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service/pom.xml | 2 +- .../legend-engine-service-post-validation-runner/pom.xml | 2 +- .../legend-engine-services-model-api/pom.xml | 2 +- .../legend-engine-services-model/pom.xml | 2 +- .../legend-engine-test-runner-service/pom.xml | 2 +- legend-engine-xts-service/pom.xml | 2 +- .../legend-engine-xt-serviceStore-executionPlan/pom.xml | 2 +- .../legend-engine-xt-serviceStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-serviceStore-protocol/pom.xml | 2 +- .../legend-engine-xt-serviceStore-pure/pom.xml | 2 +- legend-engine-xts-serviceStore/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-api/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-compiler/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-generator/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-grammar/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-protocol/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-pure/pom.xml | 2 +- legend-engine-xts-snowflakeApp/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml | 2 +- .../legend-engine-xt-sql-grammar-integration/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml | 2 +- .../legend-engine-xt-sql-postgres-server/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml | 2 +- .../legend-engine-xt-sql-providers-core/pom.xml | 2 +- .../legend-engine-xt-sql-providers-relationalStore/pom.xml | 2 +- .../legend-engine-xt-sql-providers-service/pom.xml | 2 +- .../legend-engine-xt-sql-providers-shared/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml | 2 +- .../legend-engine-xt-sql-pure-metamodel/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml | 2 +- legend-engine-xts-sql/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml | 2 +- .../legend-engine-xt-text-pure-metamodel/pom.xml | 2 +- legend-engine-xts-text/pom.xml | 2 +- .../legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml | 2 +- legend-engine-xts-xml/pom.xml | 2 +- pom.xml | 4 ++-- 381 files changed, 384 insertions(+), 384 deletions(-) diff --git a/legend-engine-application-query/pom.xml b/legend-engine-application-query/pom.xml index ae183e6003a..26000406885 100644 --- a/legend-engine-application-query/pom.xml +++ b/legend-engine-application-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-application-query diff --git a/legend-engine-config/legend-engine-configuration/pom.xml b/legend-engine-config/legend-engine-configuration/pom.xml index 48968c40f30..7d2c013e450 100644 --- a/legend-engine-config/legend-engine-configuration/pom.xml +++ b/legend-engine-config/legend-engine-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-configuration diff --git a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml index af34cccde2a..582cb46c6f7 100644 --- a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-connection-integration-tests diff --git a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml index fd4155d26be..bdd93df67c4 100644 --- a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml index 8e9d50b9a58..85a768db163 100644 --- a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml index a18a1456718..50127300190 100644 --- a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml +++ b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-server-integration-tests/pom.xml b/legend-engine-config/legend-engine-server-integration-tests/pom.xml index 40c1552cddd..b0ea8848e0a 100644 --- a/legend-engine-config/legend-engine-server-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-server-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-server-integration-tests diff --git a/legend-engine-config/legend-engine-server-support-core/pom.xml b/legend-engine-config/legend-engine-server-support-core/pom.xml index 40b6990d646..de83a29d0ea 100644 --- a/legend-engine-config/legend-engine-server-support-core/pom.xml +++ b/legend-engine-config/legend-engine-server-support-core/pom.xml @@ -3,7 +3,7 @@ legend-engine-config org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index 14f9982768d..cc7824ad154 100644 --- a/legend-engine-config/legend-engine-server/pom.xml +++ b/legend-engine-config/legend-engine-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-server diff --git a/legend-engine-config/pom.xml b/legend-engine-config/pom.xml index 25607bf76a7..cdcfe386eba 100644 --- a/legend-engine-config/pom.xml +++ b/legend-engine-config/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml index 0ca6d0d868f..a79550961f5 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-executionPlan-dependencies diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml index ed0d9f7cb0d..07dc527c3f4 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-executionPlan-execution-api diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml index 753d3e0c372..9d90fc27705 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-core-executionPlan-execution org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml index 4002a7b55de..48ea9fc47d7 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-executionPlan-execution-store-inMemory diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml index 0c61f98bd8b..6e39e80191e 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-executionPlan-execution diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml index cfe619e461f..648da74beab 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml index 8c8233948dd..0737afcef53 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml index 9a9c4e4432b..0683b2b7fca 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-generation - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml index 69a4bf4b123..99a5835826f 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml index 61adeb6553c..59470c76671 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml index 2c13c33be5d..b682e015173 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-language-pure-compiler-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml index f9241968398..f0b94440067 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-language-pure-compiler diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml index 5c8984b4d3a..98231c2f610 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-language-pure-grammar-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml index 4db5156be3f..4fce2e8207e 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-language-pure-grammar diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml index 45cdacf0974..fdabf9d88fe 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-language-pure-modelManager-sdlc diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml index f70f4a52f49..f455073521f 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-language-pure-modelManager diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml index 02d1eadc97d..d861faacb8c 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-protocol-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml index b321455606c..a65d484afc2 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-protocol-generation-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml index ea9665b3315..992ce08cd77 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-protocol-generation diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml index d672e8aa3eb..1e075abf39d 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-protocol-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml index 6d729d3a4c3..843da7d0e9c 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-protocol diff --git a/legend-engine-core/legend-engine-core-language-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/pom.xml index 1ff905f63da..998079b72c8 100644 --- a/legend-engine-core/legend-engine-core-language-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml index f30086ca230..7fe1843028e 100644 --- a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-query-pure - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-query-pure diff --git a/legend-engine-core/legend-engine-core-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/pom.xml index 1e7f826a6b1..d6a5d172e18 100644 --- a/legend-engine-core/legend-engine-core-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml index fe286ad24d0..c41880ebeeb 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-shared-core diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml index 498a8577695..98afdc3d6e3 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-shared-javaCompiler diff --git a/legend-engine-core/legend-engine-core-shared/pom.xml b/legend-engine-core/legend-engine-core-shared/pom.xml index 7fd26b349a4..9097e9677ec 100644 --- a/legend-engine-core/legend-engine-core-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml index ec7b64b7548..9cd32cef4cc 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml index 00c4c115546..f2896ebe8ea 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml index d89899d6fdb..9c6e24f46aa 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-test-runner-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml index bfbbc725240..04c1c9a41de 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-test-server-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml index 2cd19c89002..59bd37d1a60 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-testable diff --git a/legend-engine-core/legend-engine-core-test/pom.xml b/legend-engine-core/legend-engine-core-test/pom.xml index 996bdddf891..6780de076c2 100644 --- a/legend-engine-core/legend-engine-core-test/pom.xml +++ b/legend-engine-core/legend-engine-core-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/pom.xml b/legend-engine-core/pom.xml index 4d04d56e897..b34bd0e4d88 100644 --- a/legend-engine-core/pom.xml +++ b/legend-engine-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml index 8e336b29da4..882dfd719dc 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.33.0 + 4.33.1-SNAPSHOT legend-engine-pure-code-compiled-core diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml index ef2f0d8eb85..6063369eb12 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.33.0 + 4.33.1-SNAPSHOT legend-engine-pure-code-compiled-functions diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml index 7cb0a066840..99e06bc951f 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.33.0 + 4.33.1-SNAPSHOT legend-engine-pure-code-core-extension diff --git a/legend-engine-pure/legend-engine-pure-code/pom.xml b/legend-engine-pure/legend-engine-pure-code/pom.xml index b6ed0ba61ac..e7a6d8b4f41 100644 --- a/legend-engine-pure/legend-engine-pure-code/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml index 974fa25fe0e..032f8a245dc 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml index b6dc6449678..e994b4c68e8 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml index 6b328b130d6..1d74d1d5839 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/pom.xml b/legend-engine-pure/legend-engine-pure-ide/pom.xml index c641e0caafd..9f205bed581 100644 --- a/legend-engine-pure/legend-engine-pure-ide/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml index 983ad39caf6..f5ad5cee25d 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.0 + 4.33.1-SNAPSHOT legend-engine-pure-platform-dsl-diagram-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml index f2e265528f0..1abdcfe301c 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.0 + 4.33.1-SNAPSHOT legend-engine-pure-platform-dsl-graph-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml index 1fcb8d19e8a..c88cf8c6d13 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.0 + 4.33.1-SNAPSHOT legend-engine-pure-platform-dsl-mapping-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml index 457d936d23f..4f745b569e2 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.0 + 4.33.1-SNAPSHOT legend-engine-pure-platform-dsl-path-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml index 787a659e494..7eb81e35e27 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.0 + 4.33.1-SNAPSHOT legend-engine-pure-platform-functions-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml index 2b78e7f8d7e..a6f05cd8fb9 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.0 + 4.33.1-SNAPSHOT legend-engine-pure-platform-functions-json-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml index 853db83c4da..9d9bdf7c46c 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.0 + 4.33.1-SNAPSHOT legend-engine-pure-platform-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml index 00bbb1fc49b..ca5c625101a 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.0 + 4.33.1-SNAPSHOT legend-engine-pure-platform-store-relational-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml index 06f93137a7c..5e8e43ca91c 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml index b0a5a77f39e..1e2317373f3 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml index 9494ba05da9..eb94324ebf0 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml index f475048da9c..58536ec1f86 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml index 1c08978f4e7..f578c3a19a2 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.33.0 + 4.33.1-SNAPSHOT legend-engine-xt-java-runtime-compiler diff --git a/legend-engine-pure/legend-engine-pure-runtime/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/pom.xml index 1916e5e4ead..c68b4c6b06f 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/pom.xml b/legend-engine-pure/pom.xml index 74ab9f2f43d..38eadd82891 100644 --- a/legend-engine-pure/pom.xml +++ b/legend-engine-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml index ad670679de7..6aa9256c513 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml index da4314e0586..e78fd1c1b23 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml index ace612bb751..729acc00b57 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml index 9f6ad20c0d9..bdccc55998b 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml index eaacd9cce60..6057108d99a 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml index 8a7217e2dc3..0aa9e6bb383 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml index e43dbceb9fc..4ea5a90d679 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml index 7d662ee1e7f..b9706c5cf39 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml index 33cba8c8172..7fe70f17ec4 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml index c9e7ce04c1b..fd270f00f28 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml index 35253e57e80..7fbca6bd66d 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml index 78008fe01b9..e0fec0343a9 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml index 1715552bb67..cdb005c8aa3 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 Legend Engine - XT - Analytics - Mapping - API diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml index 43935521906..f7821e7c59a 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-mapping - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 Legend Engine - XT - Analytics - Mapping - Protocol diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml index 523619d26a7..bbe8c6cc8b3 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml index 08f9d16127a..765d4901f72 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml index 50d778d24c3..4efbacfc569 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-search - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml index 65c41f778cd..b7e593e65a5 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-search org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml index d06e340c2ca..40a0d553679 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml index 5f7e0280eed..e3be8e1073a 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-xt-analytics-store-entitlement-api diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml index f42528d0f9b..10dada5b20e 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml index 0ce26abbc1e..7c810af1476 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/pom.xml b/legend-engine-xts-analytics/pom.xml index cc7c94bd307..639c1a3e306 100644 --- a/legend-engine-xts-analytics/pom.xml +++ b/legend-engine-xts-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml index a0f71aeb47f..875bf11456a 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml index a720d02432e..2c70074bcd8 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-arrow/pom.xml b/legend-engine-xts-arrow/pom.xml index cc7e3663e4b..34eeaf10de8 100644 --- a/legend-engine-xts-arrow/pom.xml +++ b/legend-engine-xts-arrow/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT legend-engine-xts-arrow diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml index e3991f89a98..99248843348 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml index 9c7b1679720..af720cb09dd 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml index 0706ff8eed9..bf1caaa969b 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml index e92e62143bc..7078d286475 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml index 7082395a274..8a35704683c 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml index 4652a73d7a0..eb1ad26a652 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml index c0dd9b3b81f..52338d7f423 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/pom.xml b/legend-engine-xts-authentication/pom.xml index 3b116d8e4ca..55511295261 100644 --- a/legend-engine-xts-authentication/pom.xml +++ b/legend-engine-xts-authentication/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml index fa718c31fb6..6c667af74e0 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml index a373e2bed0d..b2bfa0cfa03 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-avro/pom.xml b/legend-engine-xts-avro/pom.xml index 7f9d4ce5962..5132739df88 100644 --- a/legend-engine-xts-avro/pom.xml +++ b/legend-engine-xts-avro/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml index 8dfcc2cc3d3..59d4a413c6d 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-changetoken org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml index 7a3792dbc02..331165a319c 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-changetoken - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-changetoken/pom.xml b/legend-engine-xts-changetoken/pom.xml index 18a167313be..1a0d9081b09 100644 --- a/legend-engine-xts-changetoken/pom.xml +++ b/legend-engine-xts-changetoken/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml index 62e0b1952c6..eed8e9e7724 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml index af371afb68a..decdfbe305b 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml index a15b6262577..420d9f9ed2b 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/pom.xml b/legend-engine-xts-daml/pom.xml index 1cdfbaf98a4..32965d06f66 100644 --- a/legend-engine-xts-daml/pom.xml +++ b/legend-engine-xts-daml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml index a8badd1d097..2e149fba332 100644 --- a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml +++ b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-data-push org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-push/pom.xml b/legend-engine-xts-data-push/pom.xml index 5cd35d370b4..0167ebddffe 100644 --- a/legend-engine-xts-data-push/pom.xml +++ b/legend-engine-xts-data-push/pom.xml @@ -3,7 +3,7 @@ legend-engine org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml index 3a8cf134ca7..d0bfc1b74a2 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml index 01d116b2989..ec565f22741 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-data-space org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml index 214d6d7a689..e086af6d57f 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml index 5a15f0153c5..5c31e9e667a 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml index d8c0ca6efa8..26c13106288 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml index 0250d467dd0..974c9d7a8af 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml index 356edc43e65..0ca74c63719 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/pom.xml b/legend-engine-xts-data-space/pom.xml index d323258dd75..4ca00cbd542 100644 --- a/legend-engine-xts-data-space/pom.xml +++ b/legend-engine-xts-data-space/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml index a79a755a59f..538e6913392 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml index 2900ca7efbb..2fa2c002cd0 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-diagram org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml index 0440a4cb343..e2e4203db28 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml index 28f1d7e8c90..49c568b32ef 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml index 2748afaa8ef..1b9311e35fc 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml index fd64625dc96..117509fe754 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/pom.xml b/legend-engine-xts-diagram/pom.xml index 0d89795257e..0b1d22da8e6 100644 --- a/legend-engine-xts-diagram/pom.xml +++ b/legend-engine-xts-diagram/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml index bd1e6e1af86..feaa25e8d20 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml index b7e952268a3..78c2d59f2eb 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml index 81485ba77f6..a959e87ef70 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml index 327e0ea4d4d..a13fd594e74 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml index 62d026d207c..9c767b56970 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml index 3356dafd733..d7eff45d677 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.0 + 4.33.1-SNAPSHOT legend-engine-xt-elasticsearch-protocol-utils diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml index a01f8715ed8..8f5110034ef 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/pom.xml b/legend-engine-xts-elasticsearch/pom.xml index 316e84c9653..e46831ba858 100644 --- a/legend-engine-xts-elasticsearch/pom.xml +++ b/legend-engine-xts-elasticsearch/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml index fc58b2b234b..8415510e480 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-flatdata org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml index 4646d2ecc57..bb55ad674c4 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml index fcf91526bdc..1cf9a7762bc 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml index 131fcbe745a..08168924d51 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml index fae886862b0..edfd3627505 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml index 9d336d4bbc5..89721aaeefd 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml index 372da049e19..eccf616b157 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/pom.xml b/legend-engine-xts-flatdata/pom.xml index 89a765fe6d5..e734dc1e4f0 100644 --- a/legend-engine-xts-flatdata/pom.xml +++ b/legend-engine-xts-flatdata/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml index 6516d29bc70..3862217925b 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml index 62a52cf4b3f..ac485004fc5 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml index 8eb25fb7e1d..ee7413db698 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/pom.xml b/legend-engine-xts-functionActivator/pom.xml index a11ff366f3b..241e6052c64 100644 --- a/legend-engine-xts-functionActivator/pom.xml +++ b/legend-engine-xts-functionActivator/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml index c05776a4e10..f6aeba0697e 100644 --- a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml +++ b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml index 491bc8efe5d..995f2fceb0c 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml index db29521976a..159e4b0f707 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-language-pure-dsl-generation diff --git a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml index b96ca39395c..8e0bc0cbcf3 100644 --- a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml +++ b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-generation org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/pom.xml b/legend-engine-xts-generation/pom.xml index 1b4be501997..736e82e5496 100644 --- a/legend-engine-xts-generation/pom.xml +++ b/legend-engine-xts-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml index 7c7ba0a2f04..d085ba2b415 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 @@ -73,7 +73,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.33.0 + 4.33.1-SNAPSHOT org.finos.legend.pure diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml index bc02c3252e3..fceab60178b 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml index e31e63b43f6..ba1659781fe 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml index fc78c7b88d8..bf27a9df678 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml index 6cc569d6556..5bd9fd86f2c 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml index 274217713ec..2e3686d9920 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml index 990d9377da8..03daec94ee2 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml index 1c3cd896be3..821157f516b 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/pom.xml b/legend-engine-xts-graphQL/pom.xml index cd53544ce01..9e2f450b733 100644 --- a/legend-engine-xts-graphQL/pom.xml +++ b/legend-engine-xts-graphQL/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml index f119d09d0d6..a3d38279b44 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml index f191e75fdfe..5f404dfabf0 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml index 52d778f599f..5bad70b8ba1 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/pom.xml b/legend-engine-xts-haskell/pom.xml index 3b0e1810951..be5101f462d 100644 --- a/legend-engine-xts-haskell/pom.xml +++ b/legend-engine-xts-haskell/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml index 6a5dec0ec7f..b2fc229384a 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml index 9998615f4f1..6c8c0536fbb 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml index b4e0ef5d3be..65073ce414e 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml index 2546c472104..1ecaff22567 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml index 46797665270..43666877f8d 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml index 6ea9ff96819..897f0d887df 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/pom.xml b/legend-engine-xts-hostedService/pom.xml index dbae258a6b2..8e6d73257ff 100644 --- a/legend-engine-xts-hostedService/pom.xml +++ b/legend-engine-xts-hostedService/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml index d5857273e46..edf71dada88 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml index 7e970d9729e..c155feedfb6 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-iceberg/pom.xml b/legend-engine-xts-iceberg/pom.xml index 17b5e00a3a7..0143883c633 100644 --- a/legend-engine-xts-iceberg/pom.xml +++ b/legend-engine-xts-iceberg/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml index beb898a43fa..d3433187a65 100644 --- a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml +++ b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml index 8ba3ca00812..71a192b9bfb 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml index 1032776c80d..6a92f8e4ae2 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml index df7e4381868..d3dd35deac6 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/pom.xml b/legend-engine-xts-java/pom.xml index 3fb9be351f7..7f00b20a8cc 100644 --- a/legend-engine-xts-java/pom.xml +++ b/legend-engine-xts-java/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml index 1d74e2e61c9..d7c677f3806 100644 --- a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml +++ b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml index f7986ba3151..e69d8c1eb06 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml index e49bdcc5570..aeb964ddaac 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml index 399d81cb12e..0751b4c44e4 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml index 0c87d406208..913feb5b3a8 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml index f812fd75a41..9fd72a01887 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/pom.xml b/legend-engine-xts-json/pom.xml index 37dd506211e..7a40ad25a78 100644 --- a/legend-engine-xts-json/pom.xml +++ b/legend-engine-xts-json/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml index 4f507afbfd9..66d822bf71c 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-mastery org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml index 6cef114e707..0d9c2c71b7d 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml index 343df86c551..3031b4a90fe 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/pom.xml b/legend-engine-xts-mastery/pom.xml index 8c3853ff7dc..472cccac107 100644 --- a/legend-engine-xts-mastery/pom.xml +++ b/legend-engine-xts-mastery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml index 4238afa5e99..6ec9db72672 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml index c251953e0f6..353a89b88c6 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.0 + 4.33.1-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-executionPlan diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml index a390fa6a9b9..1054a2d3285 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.0 + 4.33.1-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-grammar-integration diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml index 324c58a7477..1f10b7da6dd 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.0 + 4.33.1-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-grammar diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml index 52051a11e5f..18adb43eac0 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.0 + 4.33.1-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml index a110b34a17c..a746d4d2555 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.0 + 4.33.1-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-protocol diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml index 381be0c9ce5..557d73b9822 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.0 + 4.33.1-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-pure diff --git a/legend-engine-xts-mongodb/pom.xml b/legend-engine-xts-mongodb/pom.xml index ac8b056eeb8..48cabbe1224 100644 --- a/legend-engine-xts-mongodb/pom.xml +++ b/legend-engine-xts-mongodb/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml index ce0a4c078cf..7d059868f3f 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-morphir - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml index bf80be3b579..15369a9df5c 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-morphir org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-morphir/pom.xml b/legend-engine-xts-morphir/pom.xml index 99b79f874a8..0fcf1361d82 100644 --- a/legend-engine-xts-morphir/pom.xml +++ b/legend-engine-xts-morphir/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml index a6f4417f1cf..1142d0c820a 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.33.0 + 4.33.1-SNAPSHOT legend-engine-xt-openapi-generation diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml index 3539be6f697..930ac3bb003 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.33.0 + 4.33.1-SNAPSHOT legend-engine-xt-openapi-pure diff --git a/legend-engine-xts-openapi/pom.xml b/legend-engine-xts-openapi/pom.xml index 1a21bdea496..5adc3adef52 100644 --- a/legend-engine-xts-openapi/pom.xml +++ b/legend-engine-xts-openapi/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml index 4d55d0a11cc..c8123f8533b 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml index 8bb9c4c0a61..6d8c36c895f 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml index 0829008aa7e..8e9f402b664 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml index 1820f773722..435f72dbf5e 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml index 6863fafce5e..2805640d256 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml index c3e41d39f45..204c368714a 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml index 22e6e8e7e6f..7499e3bf9a9 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml index 221769e2d27..ab4cfac8842 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml index 0afd6032b41..3d675a03bdb 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml index c1c95bce77d..67c9d90ffc4 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml index 66315aa898a..8b413ed74e1 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml index 677a3db9df6..82196c67b29 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml index 92488cb205c..d52d98cfb8e 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml index 86ddef34184..88bf7f585d2 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml index 829dfae05de..60b325907b9 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml index fd88d53500d..5614425ce24 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml index ac34b0b2c3c..9d4970e1871 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml index 031dab6af9e..d3b9d36fc02 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml index 227a7742c6b..07a3f8a0373 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml index 346faa98011..62bd97d3382 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml index 95a53c70969..70dd22b5e82 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/pom.xml b/legend-engine-xts-persistence/pom.xml index b350411772f..28053286931 100644 --- a/legend-engine-xts-persistence/pom.xml +++ b/legend-engine-xts-persistence/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml index bbcc93f3276..b67814c81f3 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-xt-protobuf-grammar diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml index a7ac8829b42..0d9dc15ba56 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-xt-protobuf-protocol diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml index 461e5785233..9bd6299bb4f 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml index 387e2cd6024..7eb488e1e35 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 @@ -57,7 +57,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.33.0 + 4.33.1-SNAPSHOT org.finos.legend.pure diff --git a/legend-engine-xts-protobuf/pom.xml b/legend-engine-xts-protobuf/pom.xml index 94ac25f1828..c45d7113ea0 100644 --- a/legend-engine-xts-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml index 40a66a04d6c..c624bace32d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml index 69ebb210db0..a83c567657f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml index 144b753ced8..d3d96b1046c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml index d2f1e6156b3..a656f94577d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml index 10408bad5d6..5bb2bce6264 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml index 82817744884..0e55f9d9529 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml index 9edbba79444..6ab2b7b38e3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml index 1abc10e7a9f..dfd3f090af1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml index ef0f509ee06..cd88e469d27 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml index 9805fc570b5..ce5c659701c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml index 1d0c1fb00a9..b7b1909739d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-bigquery org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml index 58871d0d1a1..bbc2c2c6d5f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml index 36dde78acfe..47b14410cd9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml index 5dcc9f1cd02..94562c0b0c1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml index 779d11b1ea0..4e45a4cb12b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml index 811e0c16321..c6d04689c4d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml index 49929f4a539..2ca9bc7f94e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml index 72775401cf5..f1e55065757 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml index 8c3b0a13679..53b25eb605d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml index 3fc1300b80f..b9a9d5e2abe 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml index ff6736d2efc..711174db32f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml index 0bd938bdfce..85dfcba4117 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml index e1b120765f0..070ec4cf332 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-dbExtension org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml index 4bc7e99f46c..cf27088aec8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-hive - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml index c9834682e26..626cd9db26c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml index 18defaf0f84..ee9787d46ac 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml index 97aa783eb98..bf217c9df65 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-memsql org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml index cacfe0a5ab6..f2c0e0cef0f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.33.0 + 4.33.1-SNAPSHOT legend-engine-xt-relationalStore-memsql-execution diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml index a721d15a31a..e140e54710f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.33.0 + 4.33.1-SNAPSHOT legend-engine-xt-relationalStore-memsql-pure diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml index 5197efcd5c8..22485e974bb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml index 2ac617e28a6..33096c645a0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml index 0a4cd16d0cd..afabbf450c6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml index 66313ba82b8..7a980c91b0d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml index 5d9593581b8..0d8cdbc34ea 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml index 28a7ee93990..5814eb78832 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml index 3dfb828f5ee..df74f2e4f6a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml index 85f45bd644c..10f51da9e72 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-presto - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml index e57f29a7b2a..ca589719938 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml index d4b5aefe35a..baf52530e3c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml index e8e35d5226f..e4401c68482 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml index 231e9b064f5..4f9a07e2464 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml index d2282c410d7..e91eaea6fb1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml index 07f7e3ef0c9..88414c20a27 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml index 609f3f2b68f..0faba791087 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml index a29bc55add7..6203654fd90 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml index c16c675f6e3..49bc97050d7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml index d967c166dfc..ab906d30002 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml index deb3cf18aac..82d4ddfae0e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml index d3b6ae3ba9c..ed439a37329 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml index 6b52870d6fe..c8f188260a8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml index a50dc3fabe9..f23e0c26383 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml index 3a257d08966..4b5efa5b0a1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml index 0ff04f90a42..422309e4cb5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml index c7250e8fe36..cd101865b70 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml index 8e053a64735..de32344cf86 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml index 06dc016d389..e824119407f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml index b8bd8e9e1ab..f4550aa8136 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml index b1d4d4c623d..70a63bb4a3a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml index dbb67b8db29..08b7534873f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sparksql - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml index 8fe6ef5dee9..2c3cbddfab1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml index b3be1ac02cc..1cf0497792a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml index d41a6570fe0..4b5045399ec 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-sqlserver-execution-tests diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml index 072b9022bfb..58cabec072e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml index bc541ec5aef..50d2e9c6ae2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml index cfa022cc2ef..8dc3178e90f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml index fead76887aa..775f43a23c7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybase - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml index a41304570d7..1094117c02b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml index 4b723fa2c9d..e5684ff4da1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybaseiq - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml index b34dcc4d17c..1402c7259a6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml index 9035e47c226..08579e59417 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-test-reports diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml index 23c62281305..fa1dbf88de7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-test-server diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml index f6d8926f8d4..154b57c5363 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml index 04ee252e1e1..d13586411a7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml index c3233cf6510..4e2990c20f5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml index 4c27de9032c..0fadc3e6685 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml index 907fcf409bf..86f775c8d1d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml index bde85b4655a..ad64ce4fcde 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml index c2627cee138..b9880fb23ef 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml index 17ecdc5f308..8b49770ce32 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml index 8475f68fc2d..c60263ae322 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml index 465f817b157..616afe51d79 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication-default diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml index d06b3d91208..5bf9e860977 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml index 1fd2f2d0993..7321fb3357e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 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 d485a5836d8..eefb5a57bc2 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 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 bf564d4a20c..ad6da7847e0 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml index 2c3f34c8815..b4a855b1aef 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml index 3814c54102a..3f664e19525 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml index 23dcaf9d83a..cc3c93183b1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml index f8752d776a5..d6a850cc434 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml index 6a5026434c5..249aa5fcdd1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml index 1df748edc4c..f4263e2d1b2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml index 3b43ad11a69..844ff850971 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml index 7303220dbeb..1a30a494654 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml index b69151bcf99..5d46d88f683 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/pom.xml b/legend-engine-xts-relationalStore/pom.xml index cd65b664723..904c5ae6d27 100644 --- a/legend-engine-xts-relationalStore/pom.xml +++ b/legend-engine-xts-relationalStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml index 0c741d3007a..b06832f4d56 100644 --- a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalai - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalai/pom.xml b/legend-engine-xts-relationalai/pom.xml index 6519a6672e3..12fd7fa6dd0 100644 --- a/legend-engine-xts-relationalai/pom.xml +++ b/legend-engine-xts-relationalai/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml index a5f5b0fcfa5..dfd1358eea4 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml index 71ed4e0ed4f..5d2538a4178 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-rosetta/pom.xml b/legend-engine-xts-rosetta/pom.xml index 064e161521b..753b983e745 100644 --- a/legend-engine-xts-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml index d9eb719b2fa..38b4a827dfd 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-language-pure-dsl-service-execution diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml index b02eaace504..dcd73a2594b 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml index 742488cb7a5..6c8dcecc458 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml index d43dbfcd041..ec564480948 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-language-pure-dsl-service diff --git a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml index 22d18d1cf4c..2e000822f5a 100644 --- a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml +++ b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml index 7805230aa9f..ca10adc2cb3 100644 --- a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-services-model-api diff --git a/legend-engine-xts-service/legend-engine-services-model/pom.xml b/legend-engine-xts-service/legend-engine-services-model/pom.xml index 18a421fa020..27cb0a41e9c 100644 --- a/legend-engine-xts-service/legend-engine-services-model/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 legend-engine-services-model diff --git a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml index d64c4a7de88..fa53cf8e3cb 100644 --- a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/pom.xml b/legend-engine-xts-service/pom.xml index 8be01da7932..20fd818dcf2 100644 --- a/legend-engine-xts-service/pom.xml +++ b/legend-engine-xts-service/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml index b515307cf71..c94beeefb6a 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml index b60d7881b42..843b58d9dcc 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml index a3c17e2ad92..71cdd1d1b90 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml index dd54aff28ac..1f2e5fa7bb9 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml index f975d248a74..8b9499dc1d4 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/pom.xml b/legend-engine-xts-serviceStore/pom.xml index 14145b60393..61c5a4d98cf 100644 --- a/legend-engine-xts-serviceStore/pom.xml +++ b/legend-engine-xts-serviceStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml index bb45e62c95b..30f4ebf2010 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml index c6060c7212a..de6b98c7af8 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-snowflakeApp org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml index 76a34cc0ad3..24baaabff56 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml index b74c90d8f04..db204e07a04 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml index 995931176fd..e789dba57cc 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml index 020630427c9..64ce866e475 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/pom.xml b/legend-engine-xts-snowflakeApp/pom.xml index 64b234cca36..65c52a05a94 100644 --- a/legend-engine-xts-snowflakeApp/pom.xml +++ b/legend-engine-xts-snowflakeApp/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml index b54ac2de67d..4f707580cf1 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml index a1e470fee0d..52f30301956 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml index f0863359cc5..4b942133fa5 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml index c8980a1a08b..5734d8b23b5 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-sql org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml index 7a13f9fb92e..500ec35d9db 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml index d82da49c6cc..a97e23df7bb 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml index 5670b8787aa..8a6657ec38c 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml index 95bdacc75af..7171813cc48 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml index 02f04698b20..a35260ca7ff 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml index 84aab38ee6c..3c82125302e 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml index 8e63653c7ad..60d6c5ec9c6 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml index 4f345934645..856abb2b5f0 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml index c89e4522714..bcd49fa29e7 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/pom.xml b/legend-engine-xts-sql/pom.xml index 6a55be28e9d..cb3a0231fe6 100644 --- a/legend-engine-xts-sql/pom.xml +++ b/legend-engine-xts-sql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml index 0c3a3ff24bf..493f45c1209 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-text org.finos.legend.engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml index b1da2eca937..5e941362587 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml index 221d16ca004..da2e0f26dea 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml index 67a53691dbb..74a99649c84 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/pom.xml b/legend-engine-xts-text/pom.xml index 8317bf28f4c..ffd698922ad 100644 --- a/legend-engine-xts-text/pom.xml +++ b/legend-engine-xts-text/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml index e1647663023..3ab06298db7 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml index 78bb0f9474b..02cddbe2a6d 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml index 26c972dcb7a..485bbf2e299 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml index 3876b1c9a64..6dd6d4bc903 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml index e77b82664bd..edbbe5ea66b 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/pom.xml b/legend-engine-xts-xml/pom.xml index 48b3497612c..fefaf0418bf 100644 --- a/legend-engine-xts-xml/pom.xml +++ b/legend-engine-xts-xml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT 4.0.0 diff --git a/pom.xml b/pom.xml index e7dbda01145..7fbc16bfd5b 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ Legend Engine org.finos.legend.engine legend-engine - 4.33.0 + 4.33.1-SNAPSHOT pom @@ -228,7 +228,7 @@ scm:git:https://github.com/finos/legend-engine - legend-engine-4.33.0 + HEAD From 1b75767707f975ff9405d6ef10e7e138e211e646 Mon Sep 17 00:00:00 2001 From: kkns-gs <130357874+kkns-gs@users.noreply.github.com> Date: Tue, 31 Oct 2023 20:45:18 +0530 Subject: [PATCH 56/80] Connection equality added for relational database connections - legend using equality key based checks (#2418) Tests added for athena, databricks, snowflake, bigquery and generic (cherry picked from commit 1039d488414697dea27b644cf6bd2d52f3009443) Post processor comparison changed to look at sequence and type only. A future release will look to introduce an equality check function into a post processor which can be explicitly coded and used as it is impractical to add equality keys to all possible post processor hierarchies --- .../core_relational_athena.definition.json | 2 +- .../connection/connectionEqualityTest.pure | 46 ++++++++ .../relational/connection/metamodel.pure | 6 +- ...st_Pure_Relational_ConnectionEquality.java | 31 ++++++ .../core_relational_bigquery.definition.json | 2 +- .../connection/bigQuerySpecification.pure | 8 +- .../connection/connectionEqualityTest.pure | 46 ++++++++ ...st_Pure_Relational_ConnectionEquality.java | 31 ++++++ ...core_relational_databricks.definition.json | 2 +- .../connection/connectionEqualityTest.pure | 47 ++++++++ .../relational/connection/metamodel.pure | 8 +- ...st_Pure_Relational_ConnectionEquality.java | 31 ++++++ ...core_relational___dbtype__.definition.json | 2 +- .../connection/connectionEqualityTest.pure | 47 ++++++++ ...st_Pure_Relational_ConnectionEquality.java | 31 ++++++ .../relational/connection/metamodel.pure | 12 +- .../core_relational_snowflake.definition.json | 2 +- .../connection/connectionEqualityTest.pure | 48 ++++++++ .../relational/connection/metamodel.pure | 26 ++--- ...st_Pure_Relational_ConnectionEquality.java | 31 ++++++ .../connection/spannerSpecification.pure | 10 +- .../relational/contract/storeContract.pure | 38 +++++++ .../connection/authenticationStrategy.pure | 17 ++- .../connection/datasourceSpecification.pure | 17 +-- .../tests/testRelationalExtension.pure | 105 +++++++++++++++++- 25 files changed, 587 insertions(+), 59 deletions(-) create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/connection/connectionEqualityTest.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/runtime/connection/connectionEqualityTest.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/connection/connectionEqualityTest.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__/relational/connection/connectionEqualityTest.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/connection/connectionEqualityTest.pure create mode 100644 legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena.definition.json b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena.definition.json index 4199d545c10..e78ea742726 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena.definition.json +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena.definition.json @@ -1,6 +1,6 @@ { "name": "core_relational_athena", - "pattern": "(meta::relational::functions::sqlQueryToString::athena|meta::relational::tests::sqlQueryToString::athena|meta::pure::alloy::connections|meta::external::store::relational::runtime|meta::protocols::pure)(::.*)?", + "pattern": "(meta::relational::functions::sqlQueryToString::athena|meta::relational::tests::sqlQueryToString::athena|meta::pure::alloy::connections|meta::external::store::relational::runtime|meta::protocols::pure|meta::relational::tests::connEquality)(::.*)?", "dependencies": [ "platform", "platform_functions", diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/connection/connectionEqualityTest.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/connection/connectionEqualityTest.pure new file mode 100644 index 00000000000..85071259587 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/connection/connectionEqualityTest.pure @@ -0,0 +1,46 @@ +// 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. + +import meta::relational::metamodel::execute::tests::*; +import meta::external::store::relational::runtime::*; +import meta::pure::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::testConnectionEqualityAllSameAthena() : Boolean[1] +{ + let c1 = ^RelationalDatabaseConnection( + + type = DatabaseType.Athena, + datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::AthenaDatasourceSpecification(awsRegion='awsR', s3OutputLocation='s3OL', databaseName='db'), + authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::ApiTokenAuthenticationStrategy(apiToken='token') + ); + + let c2 = ^RelationalDatabaseConnection( + + type = DatabaseType.Athena, + datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::AthenaDatasourceSpecification(awsRegion='awsR', s3OutputLocation='s3OL', databaseName='db'), + authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::ApiTokenAuthenticationStrategy(apiToken='token') + ); + + assert(runRelationalRouterExtensionConnectionEquality($c1, $c2)); + +} + diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/connection/metamodel.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/connection/metamodel.pure index 5af0eea4fad..3d5185442bd 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/connection/metamodel.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/main/resources/core_relational_athena/relational/connection/metamodel.pure @@ -14,7 +14,7 @@ Class meta::pure::alloy::connections::alloy::specification::AthenaDatasourceSpecification extends meta::pure::alloy::connections::alloy::specification::DatasourceSpecification { - awsRegion: String[1]; - s3OutputLocation: String[1]; - databaseName: String[1]; + <> awsRegion: String[1]; + <> s3OutputLocation: String[1]; + <> databaseName: String[1]; } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java new file mode 100644 index 00000000000..c072278365f --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java @@ -0,0 +1,31 @@ +// Copyright 2022 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 junit.framework.TestSuite; +import org.finos.legend.pure.m3.execution.test.PureTestBuilder; +import org.finos.legend.pure.m3.execution.test.TestCollection; +import org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport; +import org.finos.legend.pure.runtime.java.compiled.testHelper.PureTestBuilderCompiled; + +public class Test_Pure_Relational_ConnectionEquality +{ + public static TestSuite suite() + { + String testPackage = "meta::relational::tests::connEquality"; + CompiledExecutionSupport executionSupport = PureTestBuilderCompiled.getClassLoaderExecutionSupport(); + return PureTestBuilderCompiled.buildSuite(TestCollection.collectTests(testPackage, executionSupport.getProcessorSupport(), ci -> PureTestBuilder.satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport); + } +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery.definition.json b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery.definition.json index c1f607ba686..5b06468c642 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery.definition.json +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery.definition.json @@ -1,6 +1,6 @@ { "name": "core_relational_bigquery", - "pattern": "(meta::relational::functions::sqlQueryToString::bigQuery|meta::relational::tests::sqlQueryToString::bigQuery|meta::relational::bigQuery::tests|meta::pure::alloy::connections|meta::external::store::relational::runtime|meta::protocols::pure)(::.*)?", + "pattern": "(meta::relational::functions::sqlQueryToString::bigQuery|meta::relational::tests::sqlQueryToString::bigQuery|meta::relational::bigQuery::tests|meta::pure::alloy::connections|meta::external::store::relational::runtime|meta::protocols::pure|meta::relational::tests::connEquality)(::.*)?", "dependencies": [ "platform", "platform_functions", diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/runtime/connection/bigQuerySpecification.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/runtime/connection/bigQuerySpecification.pure index 2a26ad1a66c..b2fd2efd681 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/runtime/connection/bigQuerySpecification.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/runtime/connection/bigQuerySpecification.pure @@ -14,8 +14,8 @@ Class meta::pure::alloy::connections::alloy::specification::BigQueryDatasourceSpecification extends meta::pure::alloy::connections::alloy::specification::DatasourceSpecification { - projectId:String[1]; - defaultDataset:String[1]; - proxyHost: String[0..1]; - proxyPort: String[0..1]; + <> projectId:String[1]; + <> defaultDataset:String[1]; + <> proxyHost: String[0..1]; + <> proxyPort: String[0..1]; } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/runtime/connection/connectionEqualityTest.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/runtime/connection/connectionEqualityTest.pure new file mode 100644 index 00000000000..1a3cbd31418 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/main/resources/core_relational_bigquery/relational/runtime/connection/connectionEqualityTest.pure @@ -0,0 +1,46 @@ +// 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. + +import meta::relational::metamodel::execute::tests::*; +import meta::external::store::relational::runtime::*; +import meta::pure::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::testConnectionEqualityAllSameBigQuery() : Boolean[1] +{ + let c1 = ^RelationalDatabaseConnection( + + type = DatabaseType.Snowflake, + datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::BigQueryDatasourceSpecification(projectId='project', defaultDataset='defDs', proxyHost='ph', proxyPort='8080'), + authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::ApiTokenAuthenticationStrategy(apiToken='token') + ); + + let c2 = ^RelationalDatabaseConnection( + + type = DatabaseType.Snowflake, + datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::BigQueryDatasourceSpecification(projectId='project', defaultDataset='defDs', proxyHost='ph', proxyPort='8080'), + authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::ApiTokenAuthenticationStrategy(apiToken='token') + ); + + assert(runRelationalRouterExtensionConnectionEquality($c1, $c2)); + +} + diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java new file mode 100644 index 00000000000..c072278365f --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java @@ -0,0 +1,31 @@ +// Copyright 2022 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 junit.framework.TestSuite; +import org.finos.legend.pure.m3.execution.test.PureTestBuilder; +import org.finos.legend.pure.m3.execution.test.TestCollection; +import org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport; +import org.finos.legend.pure.runtime.java.compiled.testHelper.PureTestBuilderCompiled; + +public class Test_Pure_Relational_ConnectionEquality +{ + public static TestSuite suite() + { + String testPackage = "meta::relational::tests::connEquality"; + CompiledExecutionSupport executionSupport = PureTestBuilderCompiled.getClassLoaderExecutionSupport(); + return PureTestBuilderCompiled.buildSuite(TestCollection.collectTests(testPackage, executionSupport.getProcessorSupport(), ci -> PureTestBuilder.satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport); + } +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks.definition.json b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks.definition.json index 878f243e236..9f1b5e9e0ba 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks.definition.json +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks.definition.json @@ -1,5 +1,5 @@ { "name" : "core_relational_databricks", - "pattern" : "(meta::relational::functions::sqlQueryToString::databricks|meta::relational::tests::sqlQueryToString::databricks|meta::relational::databricks::tests|meta::relational::tests::functions::sqlstring::databricks|meta::pure::alloy::connections|meta::protocols::pure)(::.*)?", + "pattern" : "(meta::relational::functions::sqlQueryToString::databricks|meta::relational::tests::sqlQueryToString::databricks|meta::relational::tests::connEquality|meta::relational::databricks::tests|meta::relational::tests::functions::sqlstring::databricks|meta::pure::alloy::connections|meta::protocols::pure)(::.*)?", "dependencies" : ["platform", "platform_functions", "platform_store_relational", "platform_dsl_mapping", "core_functions", "core", "core_relational"] } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/connection/connectionEqualityTest.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/connection/connectionEqualityTest.pure new file mode 100644 index 00000000000..d60490a6cf9 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/connection/connectionEqualityTest.pure @@ -0,0 +1,47 @@ +// 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. + +import meta::relational::metamodel::execute::tests::*; +import meta::external::store::relational::runtime::*; +import meta::pure::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::testConnectionEqualityAllSameDataBricks() : Boolean[1] +{ + let c1 = ^RelationalDatabaseConnection( + + type = DatabaseType.Databricks, + datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::DatabricksDatasourceSpecification(hostname='host', port='8080', protocol='http', httpPath='http://path'), + authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::ApiTokenAuthenticationStrategy(apiToken='token') + ); + + let c2 = ^RelationalDatabaseConnection( + + type = DatabaseType.Databricks, + datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::DatabricksDatasourceSpecification(hostname='host', port='8080', protocol='http', httpPath='http://path'), + authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::ApiTokenAuthenticationStrategy(apiToken='token') + ); + + assert(runRelationalRouterExtensionConnectionEquality($c1, $c2)); + +} + + diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/connection/metamodel.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/connection/metamodel.pure index 6c3138786f6..fec225e36c7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/connection/metamodel.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/main/resources/core_relational_databricks/relational/connection/metamodel.pure @@ -14,8 +14,8 @@ Class meta::pure::alloy::connections::alloy::specification::DatabricksDatasourceSpecification extends meta::pure::alloy::connections::alloy::specification::DatasourceSpecification { - hostname:String[1]; - port:String[1]; - protocol:String[1]; - httpPath:String[1]; + <> hostname:String[1]; + <> port:String[1]; + <> protocol:String[1]; + <> httpPath:String[1]; } \ No newline at end of file diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java new file mode 100644 index 00000000000..c072278365f --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java @@ -0,0 +1,31 @@ +// Copyright 2022 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 junit.framework.TestSuite; +import org.finos.legend.pure.m3.execution.test.PureTestBuilder; +import org.finos.legend.pure.m3.execution.test.TestCollection; +import org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport; +import org.finos.legend.pure.runtime.java.compiled.testHelper.PureTestBuilderCompiled; + +public class Test_Pure_Relational_ConnectionEquality +{ + public static TestSuite suite() + { + String testPackage = "meta::relational::tests::connEquality"; + CompiledExecutionSupport executionSupport = PureTestBuilderCompiled.getClassLoaderExecutionSupport(); + return PureTestBuilderCompiled.buildSuite(TestCollection.collectTests(testPackage, executionSupport.getProcessorSupport(), ci -> PureTestBuilder.satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport); + } +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__.definition.json b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__.definition.json index 2c16a1c0f72..7be070a1dbf 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__.definition.json +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__.definition.json @@ -1,5 +1,5 @@ { "name" : "core_relational_${dbtype}", - "pattern" : "(meta::relational::functions::sqlQueryToString::${dbType}|meta::relational::tests::sqlQueryToString::${dbType}|meta::pure::alloy::connections|meta::external::store::relational::runtime|meta::protocols::pure)(::.*)?", + "pattern" : "(meta::relational::functions::sqlQueryToString::${dbType}|meta::relational::tests::sqlQueryToString::${dbType}|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_relational"] } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__/relational/connection/connectionEqualityTest.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__/relational/connection/connectionEqualityTest.pure new file mode 100644 index 00000000000..84b2d65cd54 --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/main/resources/core_relational___dbtype__/relational/connection/connectionEqualityTest.pure @@ -0,0 +1,47 @@ +// 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. + +import meta::relational::metamodel::execute::tests::*; +import meta::external::store::relational::runtime::*; +import meta::pure::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::testConnectionEqualityAllSame__dbtype__() : Boolean[1] +{ + let c1 = ^RelationalDatabaseConnection( + + type = DatabaseType.__dbtype__, + datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::__dbtype__DatasourceSpecification(), + authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::ApiTokenAuthenticationStrategy(apiToken='token') + ); + + let c2 = ^RelationalDatabaseConnection( + + type = DatabaseType.Snowflake, + datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::BigQueryDatasourceSpecification(projectId='project', defaultDataset='defDs', proxyHost='ph', proxyPort='8080'), + authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::ApiTokenAuthenticationStrategy(apiToken='token') + ); + + assert(runRelationalRouterExtensionConnectionEquality($c1, $c2)); + +} + diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java new file mode 100644 index 00000000000..c072278365f --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/src/main/resources/archetype-resources/legend-engine-xt-relationalStore-__dbtype__-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java @@ -0,0 +1,31 @@ +// Copyright 2022 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 junit.framework.TestSuite; +import org.finos.legend.pure.m3.execution.test.PureTestBuilder; +import org.finos.legend.pure.m3.execution.test.TestCollection; +import org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport; +import org.finos.legend.pure.runtime.java.compiled.testHelper.PureTestBuilderCompiled; + +public class Test_Pure_Relational_ConnectionEquality +{ + public static TestSuite suite() + { + String testPackage = "meta::relational::tests::connEquality"; + CompiledExecutionSupport executionSupport = PureTestBuilderCompiled.getClassLoaderExecutionSupport(); + return PureTestBuilderCompiled.buildSuite(TestCollection.collectTests(testPackage, executionSupport.getProcessorSupport(), ci -> PureTestBuilder.satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport); + } +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/connection/metamodel.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/connection/metamodel.pure index e7f45966730..49c2e1c7f73 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/connection/metamodel.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/src/main/resources/core_relational_redshift/relational/connection/metamodel.pure @@ -14,10 +14,10 @@ Class {doc.doc ='Specification for the AWS redshift database'} meta::pure::legend::connections::legend::specification::RedshiftDatasourceSpecification extends meta::pure::alloy::connections::alloy::specification::DatasourceSpecification { - {doc.doc ='clusterID'} clusterID:String[1]; - {doc.doc ='The aws region'} region:String[1]; - {doc.doc ='the full host url'} host:String[1]; - {doc.doc ='database name'} databaseName:String[1]; - {doc.doc ='port'} port:Integer[1]; - {doc.doc ='Optional URL used for redshift service execution'} endpointURL:String[0..1]; + <> {doc.doc ='clusterID'} clusterID:String[1]; + <> {doc.doc ='The aws region'} region:String[1]; + <> {doc.doc ='the full host url'} host:String[1]; + <> {doc.doc ='database name'} databaseName:String[1]; + <> {doc.doc ='port'} port:Integer[1]; + <> {doc.doc ='Optional URL used for redshift service execution'} endpointURL: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-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake.definition.json b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake.definition.json index 26e2977f5f2..c0aa332c785 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake.definition.json +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake.definition.json @@ -1,5 +1,5 @@ { "name" : "core_relational_snowflake", - "pattern" : "(meta::relational::functions::sqlQueryToString::snowflake|meta::relational::tests::sqlQueryToString::snowflake|meta::relational::tests::sqlToString::snowflake|meta::pure::executionPlan::tests::snowflake|meta::relational::tests::projection::snowflake|meta::relational::tests::query::snowflake|meta::relational::tests::tds::snowflake|meta::relational::tests::mapping::function::snowflake|meta::relational::tests::postProcessor::snowflake|meta::pure::alloy::connections|meta::protocols::pure)(::.*)?", + "pattern" : "(meta::relational::functions::sqlQueryToString::snowflake|meta::relational::tests::connEquality|meta::relational::tests::sqlQueryToString::snowflake|meta::relational::tests::sqlToString::snowflake|meta::pure::executionPlan::tests::snowflake|meta::relational::tests::projection::snowflake|meta::relational::tests::query::snowflake|meta::relational::tests::tds::snowflake|meta::relational::tests::mapping::function::snowflake|meta::relational::tests::postProcessor::snowflake|meta::pure::alloy::connections|meta::protocols::pure)(::.*)?", "dependencies" : ["platform", "platform_functions", "platform_store_relational", "platform_dsl_mapping", "core_functions", "core", "core_relational"] } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/connection/connectionEqualityTest.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/connection/connectionEqualityTest.pure new file mode 100644 index 00000000000..d0600c577db --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/connection/connectionEqualityTest.pure @@ -0,0 +1,48 @@ +// 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. + +import meta::relational::metamodel::execute::tests::*; +import meta::external::store::relational::runtime::*; +import meta::pure::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::testConnectionEqualityAllSameSnowflake() : Boolean[1] +{ + let c1 = ^RelationalDatabaseConnection( + + type = DatabaseType.Snowflake, + datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::SnowflakeDatasourceSpecification(accountName='account', region='region', warehouseName='wh', databaseName='db'), + authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::SnowflakePublicAuthenticationStrategy(privateKeyVaultReference='pkvr', publicUserName ='public', passPhraseVaultReference='ppVR') + ); + + let c2 = ^RelationalDatabaseConnection( + + type = DatabaseType.Snowflake, + datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::SnowflakeDatasourceSpecification(accountName='account', region='region', warehouseName='wh', databaseName='db'), + authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::SnowflakePublicAuthenticationStrategy(privateKeyVaultReference='pkvr', publicUserName ='public', passPhraseVaultReference='ppVR') + ); + + assert(runRelationalRouterExtensionConnectionEquality($c1, $c2)); + +} + diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/connection/metamodel.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/connection/metamodel.pure index 5cd3bff5dbb..19fb053d8f0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/connection/metamodel.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/connection/metamodel.pure @@ -19,28 +19,28 @@ Enum meta::pure::alloy::connections::alloy::specification::SnowflakeAccountType Class meta::pure::alloy::connections::alloy::specification::SnowflakeDatasourceSpecification extends meta::pure::alloy::connections::alloy::specification::DatasourceSpecification { - accountName:String[1]; - region:String[1]; - warehouseName:String[1]; - databaseName:String[1]; - role:String[0..1]; + <> accountName:String[1]; + <> region:String[1]; + <> warehouseName:String[1]; + <> databaseName:String[1]; + <> role:String[0..1]; proxyHost:String[0..1]; proxyPort:String[0..1]; nonProxyHosts:String[0..1]; - accountType: meta::pure::alloy::connections::alloy::specification::SnowflakeAccountType[0..1]; - organization:String[0..1]; - cloudType:String[0..1]; + <> accountType: meta::pure::alloy::connections::alloy::specification::SnowflakeAccountType[0..1]; + <> organization:String[0..1]; + <> cloudType:String[0..1]; - quotedIdentifiersIgnoreCase:Boolean[0..1]; - enableQueryTags: Boolean[0..1]; + <> quotedIdentifiersIgnoreCase:Boolean[0..1]; + <> enableQueryTags: Boolean[0..1]; } Class meta::pure::alloy::connections::alloy::authentication::SnowflakePublicAuthenticationStrategy extends meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy { - privateKeyVaultReference:String[1]; - passPhraseVaultReference:String[1]; - publicUserName:String[1]; + <> privateKeyVaultReference:String[1]; + <> passPhraseVaultReference:String[1]; + <> publicUserName:String[1]; } diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java new file mode 100644 index 00000000000..c072278365f --- /dev/null +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/test/java/org/finos/legend/pure/code/core/Test_Pure_Relational_ConnectionEquality.java @@ -0,0 +1,31 @@ +// Copyright 2022 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 junit.framework.TestSuite; +import org.finos.legend.pure.m3.execution.test.PureTestBuilder; +import org.finos.legend.pure.m3.execution.test.TestCollection; +import org.finos.legend.pure.runtime.java.compiled.execution.CompiledExecutionSupport; +import org.finos.legend.pure.runtime.java.compiled.testHelper.PureTestBuilderCompiled; + +public class Test_Pure_Relational_ConnectionEquality +{ + public static TestSuite suite() + { + String testPackage = "meta::relational::tests::connEquality"; + CompiledExecutionSupport executionSupport = PureTestBuilderCompiled.getClassLoaderExecutionSupport(); + return PureTestBuilderCompiled.buildSuite(TestCollection.collectTests(testPackage, executionSupport.getProcessorSupport(), ci -> PureTestBuilder.satisfiesConditions(ci, executionSupport.getProcessorSupport())), executionSupport); + } +} diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner/relational/runtime/connection/spannerSpecification.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner/relational/runtime/connection/spannerSpecification.pure index fd243423c9e..42aec568886 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner/relational/runtime/connection/spannerSpecification.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/src/main/resources/core_relational_spanner/relational/runtime/connection/spannerSpecification.pure @@ -14,9 +14,9 @@ Class meta::pure::alloy::connections::alloy::specification::SpannerDatasourceSpecification extends meta::pure::alloy::connections::alloy::specification::DatasourceSpecification { - projectId:String[1]; - instanceId:String[1]; - databaseId:String[1]; - proxyHost: String[0..1]; - proxyPort: Integer[0..1]; + <> projectId:String[1]; + <> instanceId:String[1]; + <> databaseId:String[1]; + <> proxyHost: String[0..1]; + <> proxyPort: Integer[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/contract/storeContract.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/contract/storeContract.pure index 02d0c0c75f3..bd9037fccfc 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/contract/storeContract.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/contract/storeContract.pure @@ -12,6 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. +import meta::relational::contract::*; import meta::pure::router::metamodel::*; import meta::pure::router::systemMapping::tests::*; import meta::relational::mapping::*; @@ -43,6 +44,20 @@ function meta::relational::contract::relationalStoreContract():StoreContract[1] planGraphFetchExecution = meta::relational::contract::planGraphFetchExecution_StoreMappingLocalGraphFetchExecutionNodeGenerationInput_1__LocalGraphFetchExecutionNode_1_, planCrossGraphFetchExecution = meta::relational::contract::planCrossGraphFetchExecution_StoreMappingCrossLocalGraphFetchExecutionNodeGenerationInput_1__LocalGraphFetchExecutionNode_1_, + connectionEquality = { b : Connection [1] | + [ + d: RelationalDatabaseConnection[1]| + let bAsRDB = $b->cast(@RelationalDatabaseConnection); + // connection element is the store name and we dont compare those + let comparison = $d.type == $bAsRDB.type && + $d.timeZone == $bAsRDB.timeZone && + $d.quoteIdentifiers == $bAsRDB.quoteIdentifiers && + $d.datasourceSpecification == $bAsRDB.datasourceSpecification && + compareObjectsWithPossiblyNoProperties($d.authenticationStrategy,$bAsRDB.authenticationStrategy) && + postProcessorsMatch($d.postProcessors, $bAsRDB.postProcessors); + ] + }, + supports = meta::relational::contract::supports_FunctionExpression_1__Boolean_1_, supportsStreamFunction = meta::relational::contract::supportsStream_FunctionExpression_1__Boolean_1_, shouldStopRouting = [ @@ -226,6 +241,29 @@ function meta::relational::contract::planExecution(sq:meta::pure::mapping::Store ); } +function meta::relational::contract::postProcessorsMatch(postProcessors1: meta::pure::alloy::connections::PostProcessor[*], postProcessors2: meta::pure::alloy::connections::PostProcessor[*]): Boolean[1] +{ + (($postProcessors1->isEmpty() && $postProcessors2->isEmpty()) + || ($postProcessors1->size() == $postProcessors2->size() + // for now we do a simple type and sequence comparison of the post processors and they should match for equality + && $postProcessors1->zip($postProcessors2)->map( postProcessorPair| + $postProcessorPair.first->type() == $postProcessorPair.second->type() + // && - TODO implement some kind of equality interface in a post processor which is called here and implemented + // by post processors which would like to process equality with other attributes besides type + )->distinct()->remove(true)->isEmpty())) +} + +function meta::relational::contract::compareObjectsWithPossiblyNoProperties(obj1: Any[1], obj2: Any[1]): Boolean[1] +{ + let propertyCountForObj1 = $obj1->type()->cast(@Class)->hierarchicalProperties()->size(); + let propertyCountForObj2 = $obj2->type()->cast(@Class)->hierarchicalProperties()->size(); + + if($propertyCountForObj1 == 0 && $propertyCountForObj2 == 0 + ,| true + ,| $obj1 == $obj2 + ); +} + function meta::relational::contract::planGraphFetchExecution(input: StoreMappingLocalGraphFetchExecutionNodeGenerationInput[1]): LocalGraphFetchExecutionNode[1] { meta::relational::graphFetch::executionPlan::planRootGraphFetchExecutionRelational($input.storeQuery, $input.ext, $input.clusteredTree, $input.orderedPaths, $input.mapping, $input.runtime, $input.exeCtx, $input.enableConstraints, $input.checked, $input.extensions, $input.debug) 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/authenticationStrategy.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/runtime/connection/authenticationStrategy.pure index cea7442a70b..46f7b8f2500 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/runtime/connection/authenticationStrategy.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/runtime/connection/authenticationStrategy.pure @@ -23,23 +23,22 @@ Class <> meta::pure::alloy::connections::alloy::authent Class meta::pure::alloy::connections::alloy::authentication::DelegatedKerberosAuthenticationStrategy extends meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy { - serverPrincipal: String[0..1]; + <> serverPrincipal: String[0..1]; } Class {doc.doc = 'Authentication using a middle tier user/password'} meta::pure::alloy::connections::alloy::authentication::MiddleTierUserNamePasswordAuthenticationStrategy extends meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy { - {doc.doc = 'Username/pasword vault reference'} - vaultReference: String[1]; + <> {doc.doc = 'Username/pasword vault reference'} vaultReference: String[1]; } Class meta::pure::alloy::connections::alloy::authentication::UserNamePasswordAuthenticationStrategy extends meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy { - baseVaultReference: String[0..1]; - userNameVaultReference: String[1]; - passwordVaultReference: String[1]; + <> baseVaultReference: String[0..1]; + <> userNameVaultReference: String[1]; + <> passwordVaultReference: String[1]; } Class meta::pure::alloy::connections::alloy::authentication::GCPApplicationDefaultCredentialsAuthenticationStrategy extends meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy @@ -52,7 +51,7 @@ Class meta::pure::alloy::connections::alloy::authentication::DefaultH2Authentica Class meta::pure::alloy::connections::alloy::authentication::ApiTokenAuthenticationStrategy extends meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy { - apiToken:String[1]; + <> apiToken:String[1]; } Class meta::pure::alloy::connections::alloy::authentication::TestDatabaseAuthenticationStrategy extends meta::pure::alloy::connections::alloy::authentication::DefaultH2AuthenticationStrategy @@ -61,6 +60,6 @@ Class meta::pure::alloy::connections::alloy::authentication::TestDatabaseAuthent Class meta::pure::alloy::connections::alloy::authentication::GCPWorkloadIdentityFederationAuthenticationStrategy extends meta::pure::alloy::connections::alloy::authentication::AuthenticationStrategy { - serviceAccountEmail : String[1]; - additionalGcpScopes: String[*]; + <> serviceAccountEmail : String[1]; + <> additionalGcpScopes: String[*]; } \ No newline at end of file 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 cc96e0c03b0..0eec4ed5d67 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 @@ -18,20 +18,21 @@ Class <> meta::pure::alloy::connections::alloy::specific Class meta::pure::alloy::connections::alloy::specification::StaticDatasourceSpecification extends meta::pure::alloy::connections::alloy::specification::DatasourceSpecification { - host: String[1]; - port: Integer[1]; - databaseName: String[1]; + <> host: String[1]; + <> port: Integer[1]; + <> databaseName: String[1]; } Class meta::pure::alloy::connections::alloy::specification::EmbeddedH2DatasourceSpecification extends meta::pure::alloy::connections::alloy::specification::DatasourceSpecification { - databaseName:String[1]; - directory:String[1]; - autoServerMode:Boolean[1]; + <> databaseName:String[1]; + <> directory:String[1]; + <> autoServerMode:Boolean[1]; + } Class meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification extends meta::pure::alloy::connections::alloy::specification::DatasourceSpecification { - testDataSetupCsv:String[0..1]; - testDataSetupSqls:String[*]; + <> testDataSetupCsv:String[0..1]; + <> testDataSetupSqls:String[*]; } 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 e3c3e81bbab..b8cdc73fc60 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 @@ -12,10 +12,8 @@ // See the License for the specific language governing permissions and // limitations under the License. -import meta::core::runtime::*; import meta::relational::metamodel::execute::tests::*; import meta::pure::alloy::connections::*; -import meta::external::store::relational::runtime::*; import meta::pure::runtime::*; import meta::core::runtime::*; import meta::relational::translation::*; @@ -28,6 +26,109 @@ import meta::relational::metamodel::execute::*; import meta::relational::metamodel::*; import meta::pure::mapping::*; +function meta::relational::metamodel::execute::tests::runRelationalRouterExtensionConnectionEquality(c1: RelationalDatabaseConnection[1], + c2: RelationalDatabaseConnection[1]) : Boolean[1] +{ + let extensions = meta::relational::extension::relationalExtensions().routerExtensions(); + $c1->match( + $extensions.connectionEquality->map(e | $e->eval($c2))->concatenate([ + a:Connection[1] | true + ])->toOneMany()); +} + +function <> meta::relational::metamodel::execute::tests::testConnectionEqualityAllSameStatic() : Boolean[1] +{ + let c1 = ^RelationalDatabaseConnection( + type = DatabaseType.SybaseIQ, + datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::StaticDatasourceSpecification(host='host', port=8080, databaseName='db'), + authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::DefaultH2AuthenticationStrategy() + ); + + let c2 = ^RelationalDatabaseConnection( + type = DatabaseType.SybaseIQ, + datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::StaticDatasourceSpecification(host='host', port=8080, databaseName='db'), + authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::DefaultH2AuthenticationStrategy() + ); + + assert(runRelationalRouterExtensionConnectionEquality($c1, $c2)); + +} + +function <> meta::relational::metamodel::execute::tests::testConnectionEqualityAllButOnePropertySame() : Boolean[1] +{ + let c1 = ^RelationalDatabaseConnection( + type = DatabaseType.Snowflake, + datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::StaticDatasourceSpecification(host='host', port=8090, databaseName='db'), + authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::DefaultH2AuthenticationStrategy() + ); + + let c2 = ^RelationalDatabaseConnection( + type = DatabaseType.Snowflake, + datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::StaticDatasourceSpecification(host='host', port=8080, databaseName='db'), + authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::ApiTokenAuthenticationStrategy(apiToken='token') + ); + + assert(!runRelationalRouterExtensionConnectionEquality($c1, $c2)); + +} + +function <> meta::relational::metamodel::execute::tests::testConnectionEqualityTypeDiff() : Boolean[1] +{ + let c1 = ^RelationalDatabaseConnection( + type = DatabaseType.H2, + datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification(), + authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::DefaultH2AuthenticationStrategy() + ); + + let c2 = ^RelationalDatabaseConnection( + type = DatabaseType.Snowflake, + datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::StaticDatasourceSpecification(host='host', port=8080, databaseName='db'), + authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::ApiTokenAuthenticationStrategy(apiToken='token') + ); + + + assert(!runRelationalRouterExtensionConnectionEquality($c1, $c2)); + +} + + +function <> meta::relational::metamodel::execute::tests::testConnectionEqualityTypeSameSpecDiff() : Boolean[1] +{ + let c1 = ^RelationalDatabaseConnection( + type = DatabaseType.H2, + datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification(), + authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::DefaultH2AuthenticationStrategy() + ); + + let c2 = ^RelationalDatabaseConnection( + type = DatabaseType.H2, + datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification(testDataSetupCsv='something'), + authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::DefaultH2AuthenticationStrategy() + ); + + + assert(!runRelationalRouterExtensionConnectionEquality($c1, $c2)); + +} + +function <> meta::relational::metamodel::execute::tests::testConnectionEqualityTypeSpecSameAuthDiff() : Boolean[1] +{ + let c1 = ^RelationalDatabaseConnection( + type = DatabaseType.H2, + datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification(), + authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::DefaultH2AuthenticationStrategy() + ); + + let c2 = ^RelationalDatabaseConnection( + type = DatabaseType.H2, + datasourceSpecification = ^meta::pure::alloy::connections::alloy::specification::LocalH2DatasourceSpecification(), + authenticationStrategy = ^meta::pure::alloy::connections::alloy::authentication::ApiTokenAuthenticationStrategy(apiToken='token') + ); + + + assert(!runRelationalRouterExtensionConnectionEquality($c1, $c2)); + +} function <> meta::relational::metamodel::execute::tests::testExecuteInDbToTDS() : Boolean[1] { From 3abde76bc1154beb246edcf50255df5170cb2b13 Mon Sep 17 00:00:00 2001 From: An Phi Date: Tue, 31 Oct 2023 11:27:55 -0400 Subject: [PATCH 57/80] allow manual trigger of Sonar code quality check (#2422) --- .github/workflows/code-quality.yml | 18 ++++++------------ 1 file changed, 6 insertions(+), 12 deletions(-) diff --git a/.github/workflows/code-quality.yml b/.github/workflows/code-quality.yml index 617cf73fea4..d7eab549541 100644 --- a/.github/workflows/code-quality.yml +++ b/.github/workflows/code-quality.yml @@ -14,18 +14,12 @@ name: Code Quality Check -on: - # Analysis done to check for security and quality are often taken care of by vendor tools, such as SonarCloud, CodeQL, etc. - # We will not run these in PR pipelins for the following reasons: - # 1. In terms of quality checks, these analysis are often already covered by code checks (e.g. eslint) already set to run - # for PRs - # 2. Security checks are included meaning that these checks will have to go through a huge libraries of vulnerability checks - # from vendor, which could take up huge amount of time to run, which is not suitable to have in PR unless absolutely necessary. - # However, most of the problems detected by these checks are often security warnings and some other niche problems that we might - # or might not necessarily have to deal with (false positive, or belongs to test-only codepath) - push: - branches: - - master +on: [workflow_dispatch] + # NOTE: currently, this is failing, we need further investigation to fix this build, for now, we will + # disable this code quality check to save resource + # push: + # branches: + # - master env: SONAR_TOKEN: ${{ secrets.SONAR_TOKEN }} From 88e0ce3cace166e33b2ff5d654cc19b2e26f3846 Mon Sep 17 00:00:00 2001 From: "Sherjan, Haroon" <35983762+haroonsherjan@users.noreply.github.com> Date: Tue, 31 Oct 2023 17:55:46 -0700 Subject: [PATCH 58/80] Repackage XmlDataRecord and JsonDataRecord (#2423) --- .../src/main/resources/core/pure/mapping/modelToModel.pure | 4 ++-- .../mongodbStoreLegendJavaPlatformBindingExtension.pure | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/mapping/modelToModel.pure b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/mapping/modelToModel.pure index f2e97ad2f94..8a670e34456 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/mapping/modelToModel.pure +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/src/main/resources/core/pure/mapping/modelToModel.pure @@ -63,7 +63,7 @@ Class meta::external::store::model::JsonModelConnection extends PureModelConnect url : String[1]; } -Class meta::external::store::model::JsonDataRecord +Class meta::pure::mapping::modelToModel::JsonDataRecord { number : Integer[1]; record : String[1]; @@ -75,7 +75,7 @@ Class meta::external::store::model::XmlModelConnection extends PureModelConnecti url : String[1]; } -Class meta::external::store::model::XmlDataRecord +Class meta::pure::mapping::modelToModel::XmlDataRecord { number : Integer[1]; record : String[1]; diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/src/main/resources/core_nonrelational_mongodb_java_platform_binding/mongodbStoreLegendJavaPlatformBindingExtension.pure b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/src/main/resources/core_nonrelational_mongodb_java_platform_binding/mongodbStoreLegendJavaPlatformBindingExtension.pure index 9a3211907d3..0bde751a8c5 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/src/main/resources/core_nonrelational_mongodb_java_platform_binding/mongodbStoreLegendJavaPlatformBindingExtension.pure +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/src/main/resources/core_nonrelational_mongodb_java_platform_binding/mongodbStoreLegendJavaPlatformBindingExtension.pure @@ -237,7 +237,7 @@ function meta::external::store::mongodb::executionPlan::platformBinding::legendJ let contextWithNodeInfo = $context->addNodeInfo($nodeInfo); let resolvedModel = $node.binding.modelUnit->resolve(); - let updatedTypeInfo = $context.typeInfos->addForClassWithAllProperties(meta::external::store::model::JsonDataRecord) + let updatedTypeInfo = $context.typeInfos->addForClassWithAllProperties(meta::pure::mapping::modelToModel::JsonDataRecord) ->map(ti| if($node.tree->isEmpty(),| $ti->addForClass($class)->addConstraints($class),| $ti->addForGraphFetchTree($node.tree->toOne())->addConstraintsForGraphFetchTree($node.tree->toOne()))); let newTypeInfos = if($externalFormatJavaBindingDescriptor.internalizeDescriptor.internalizePreparator->isNotEmpty(), @@ -390,7 +390,7 @@ function <> meta::external::store::mongodb::executionPlan::platf let sourceRead = $pureClass->readMethodName($conv); let ioEx = j_parameter(javaIOException(), 'e'); let jThis = j_this($proto); - let recordType = $conv->className(meta::external::store::model::JsonDataRecord); + let recordType = $conv->className(meta::pure::mapping::modelToModel::JsonDataRecord); let json = j_variable(javaString(), 'json'); let recordNumber = j_variable(javaLong(), 'recordNumber'); let source = j_variable($recordType, 'source'); From 1ab7a9d8a62dd0dbde0c207c15e3f93b11c0350c Mon Sep 17 00:00:00 2001 From: gs-jp1 <80327721+gs-jp1@users.noreply.github.com> Date: Wed, 1 Nov 2023 09:26:45 +0000 Subject: [PATCH 59/80] Legend SQL - use engine runtime for relational store provider (#2421) --- .../RelationalStoreSQLSourceProvider.java | 14 +++------ .../TestRelationalStoreSQLSourceProvider.java | 12 ++------ .../shared/utils/SQLProviderUtils.java | 29 +++++++++++++++++++ .../engine/query/sql/api/SQLExecutor.java | 4 +-- 4 files changed, 38 insertions(+), 21 deletions(-) diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/src/main/java/org/finos/legend/engine/query/sql/providers/RelationalStoreSQLSourceProvider.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/src/main/java/org/finos/legend/engine/query/sql/providers/RelationalStoreSQLSourceProvider.java index 38b7d14d0ec..c6334569552 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/src/main/java/org/finos/legend/engine/query/sql/providers/RelationalStoreSQLSourceProvider.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/src/main/java/org/finos/legend/engine/query/sql/providers/RelationalStoreSQLSourceProvider.java @@ -15,11 +15,9 @@ package org.finos.legend.engine.query.sql.providers; -import org.eclipse.collections.impl.list.mutable.FastList; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; -import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.ConnectionPointer; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.PackageableConnection; -import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.runtime.LegacyRuntime; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.runtime.EngineRuntime; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.model.Database; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.model.Schema; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.model.Table; @@ -67,19 +65,15 @@ protected SQLSource createSource(TableSource source, Database store, Packageable String tableName = source.getArgumentValueAs(ARG_TABLE, -1, String.class, true); Lambda lambda = tableToTDS(store, schemaName, tableName); - - ConnectionPointer connectionPtr = new ConnectionPointer(); - connectionPtr.connection = connection.getPath(); - - LegacyRuntime runtime = new LegacyRuntime(); - runtime.connections = FastList.newListWith(connectionPtr); + EngineRuntime runtime = SQLProviderUtils.createRuntime(connection.getPath(), store.getPath()); Collections.addAll(keys, new SQLSourceArgument(ARG_SCHEMA, null, schemaName), new SQLSourceArgument(ARG_TABLE, null, tableName)); return new SQLSource(TYPE, lambda, null, runtime, null, null, keys); } - public static Lambda tableToTDS(Database database, String schemaName, String tableName) + + protected static Lambda tableToTDS(Database database, String schemaName, String tableName) { Schema schema = SQLProviderUtils.extractElement("schema", database.schemas, s -> SQLProviderUtils.equalsEscaped(s.name, schemaName)); Table table = SQLProviderUtils.extractElement("table", schema.tables, t -> SQLProviderUtils.equalsEscaped(t.name, tableName)); diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/src/test/java/org/finos/legend/engine/query/sql/providers/TestRelationalStoreSQLSourceProvider.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/src/test/java/org/finos/legend/engine/query/sql/providers/TestRelationalStoreSQLSourceProvider.java index c99585700bb..b220a030028 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/src/test/java/org/finos/legend/engine/query/sql/providers/TestRelationalStoreSQLSourceProvider.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/src/test/java/org/finos/legend/engine/query/sql/providers/TestRelationalStoreSQLSourceProvider.java @@ -20,14 +20,9 @@ import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextPointer; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.ConnectionPointer; -import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.runtime.LegacyRuntime; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.runtime.EngineRuntime; import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.raw.Lambda; -import org.finos.legend.engine.query.sql.providers.core.SQLSource; -import org.finos.legend.engine.query.sql.providers.core.SQLSourceArgument; -import org.finos.legend.engine.query.sql.providers.core.SQLSourceProvider; -import org.finos.legend.engine.query.sql.providers.core.SQLSourceResolvedContext; -import org.finos.legend.engine.query.sql.providers.core.TableSource; -import org.finos.legend.engine.query.sql.providers.core.TableSourceArgument; +import org.finos.legend.engine.query.sql.providers.core.*; import org.finos.legend.engine.query.sql.providers.shared.AbstractTestLegendStoreSQLSourceProvider; import org.finos.legend.engine.query.sql.providers.shared.SQLSourceProviderTestUtils; import org.finos.legend.engine.query.sql.providers.shared.project.ProjectCoordinateLoader; @@ -213,8 +208,7 @@ private void testSuccess(ProjectCoordinateWrapper projectCoordinateWrapper, Pure ConnectionPointer connectionPtr = new ConnectionPointer(); connectionPtr.connection = CONNECTION_NAME; - LegacyRuntime runtime = new LegacyRuntime(); - runtime.connections = FastList.newListWith(connectionPtr); + EngineRuntime runtime = SQLProviderUtils.createRuntime(CONNECTION_NAME, databaseName); SQLSource expected = new SQLSource("relationalStore", lambda, null, runtime, null, null, keys); diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/utils/SQLProviderUtils.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/utils/SQLProviderUtils.java index 0e74abaf1ed..7c95523c763 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/utils/SQLProviderUtils.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/utils/SQLProviderUtils.java @@ -18,8 +18,14 @@ import org.eclipse.collections.api.list.MutableList; import org.eclipse.collections.impl.list.mutable.FastList; import org.eclipse.collections.impl.utility.ListIterate; +import org.finos.legend.engine.protocol.pure.v1.model.context.PackageableElementPointer; +import org.finos.legend.engine.protocol.pure.v1.model.context.PackageableElementType; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.PackageableElement; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.ConnectionPointer; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.runtime.EngineRuntime; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.runtime.IdentifiedConnection; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.runtime.StoreConnections; import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.application.AppliedFunction; import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.raw.CString; import org.finos.legend.engine.protocol.pure.v1.model.valueSpecification.raw.Lambda; @@ -80,4 +86,27 @@ public static boolean equalsEscaped(String value, String toMatch) { return value.equals(toMatch) || value.equals("\"" + toMatch + "\""); } + + public static EngineRuntime createRuntime(String connection, String store) + { + ConnectionPointer connectionPtr = new ConnectionPointer(); + connectionPtr.connection = connection; + + PackageableElementPointer storePointer = new PackageableElementPointer(); + storePointer.path = store; + storePointer.type = PackageableElementType.STORE; + + IdentifiedConnection identifiedConnection = new IdentifiedConnection(); + identifiedConnection.id = "connection1"; + identifiedConnection.connection = connectionPtr; + + StoreConnections storeConnection = new StoreConnections(); + storeConnection.store = storePointer; + storeConnection.storeConnections = FastList.newListWith(identifiedConnection); + + EngineRuntime runtime = new EngineRuntime(); + runtime.connections = FastList.newListWith(storeConnection); + + return runtime; + } } \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/SQLExecutor.java b/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/SQLExecutor.java index 58c3430da52..674ec37df36 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/SQLExecutor.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-query/src/main/java/org/finos/legend/engine/query/sql/api/SQLExecutor.java @@ -88,7 +88,7 @@ public class SQLExecutor private final PlanExecutor planExecutor; private final Function> routerExtensions; private final Iterable transformers; - private final MutableMap providers; + private final MutableMap providers; public SQLExecutor(ModelManager modelManager, PlanExecutor planExecutor, @@ -216,7 +216,7 @@ private Pair, PureModelContext> getSourcesAndModel(Query if (!schemasValid) { - throw new IllegalArgumentException("Unsupported schema types " + String.join(", ", grouped.keySet().select(k -> !providers.containsKey(k)))); + throw new IllegalArgumentException("Unsupported schema types [" + String.join(", ", grouped.keySet().select(k -> !providers.containsKey(k))) + "], supported types: [" + String.join(", ", providers.keySet()) + "]"); } RichIterable resolved = grouped.keySet().collect(k -> resolve(grouped.get(k), context, providers.get(k), profiles)); From c5e7e387ed30611fbac2d0a9f1c3a8c069557100 Mon Sep 17 00:00:00 2001 From: FINOS Administrator <37706051+finos-admin@users.noreply.github.com> Date: Wed, 1 Nov 2023 13:25:14 +0000 Subject: [PATCH 60/80] [maven-release-plugin] prepare release legend-engine-4.34.1 --- legend-engine-application-query/pom.xml | 2 +- legend-engine-config/legend-engine-configuration/pom.xml | 2 +- .../legend-engine-connection-integration-tests/pom.xml | 2 +- .../legend-engine-extensions-collection-execution/pom.xml | 2 +- .../legend-engine-extensions-collection-generation/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-server-integration-tests/pom.xml | 2 +- .../legend-engine-server-support-core/pom.xml | 2 +- legend-engine-config/legend-engine-server/pom.xml | 2 +- legend-engine-config/pom.xml | 2 +- .../legend-engine-executionPlan-dependencies/pom.xml | 2 +- .../legend-engine-executionPlan-execution-api/pom.xml | 2 +- .../legend-engine-executionPlan-execution-authorizer/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-executionPlan-execution/pom.xml | 2 +- .../legend-engine-external-shared-format-runtime/pom.xml | 2 +- .../legend-engine-core-executionPlan-execution/pom.xml | 2 +- .../legend-engine-executionPlan-generation/pom.xml | 2 +- .../legend-engine-core-executionPlan-generation/pom.xml | 2 +- .../legend-engine-external-shared-format-model/pom.xml | 2 +- .../legend-engine-language-pure-compiler-api/pom.xml | 2 +- .../legend-engine-language-pure-compiler/pom.xml | 2 +- .../legend-engine-language-pure-grammar-api/pom.xml | 2 +- .../legend-engine-language-pure-grammar/pom.xml | 2 +- .../legend-engine-language-pure-modelManager-sdlc/pom.xml | 2 +- .../legend-engine-language-pure-modelManager/pom.xml | 2 +- .../legend-engine-protocol-api/pom.xml | 2 +- .../legend-engine-protocol-generation-pure/pom.xml | 2 +- .../legend-engine-protocol-generation/pom.xml | 2 +- .../legend-engine-protocol-pure/pom.xml | 2 +- .../legend-engine-protocol/pom.xml | 2 +- legend-engine-core/legend-engine-core-language-pure/pom.xml | 2 +- .../legend-engine-query-pure/pom.xml | 2 +- legend-engine-core/legend-engine-core-query-pure/pom.xml | 2 +- .../legend-engine-shared-core/pom.xml | 2 +- .../legend-engine-shared-javaCompiler/pom.xml | 2 +- legend-engine-core/legend-engine-core-shared/pom.xml | 2 +- .../legend-engine-test-data-generation/pom.xml | 2 +- .../legend-engine-test-runner-mapping/pom.xml | 2 +- .../legend-engine-test-runner-shared/pom.xml | 2 +- .../legend-engine-test-server-shared/pom.xml | 2 +- .../legend-engine-core-test/legend-engine-testable/pom.xml | 2 +- legend-engine-core/legend-engine-core-test/pom.xml | 2 +- legend-engine-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-functions/pom.xml | 2 +- .../legend-engine-pure-code-core-extension/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-code/pom.xml | 2 +- .../legend-engine-pure-ide-light-metadata-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-ide/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-diagram-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-graph-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-mapping-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-path-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-json-java/pom.xml | 2 +- .../legend-engine-pure-platform-java/pom.xml | 2 +- .../legend-engine-pure-platform-store-relational-java/pom.xml | 2 +- .../legend-engine-pure-platform-modular-generation/pom.xml | 2 +- .../legend-engine-pure-runtime-compiler/pom.xml | 2 +- .../legend-engine-pure-runtime-execution/pom.xml | 2 +- .../legend-engine-pure-runtime-extensions/pom.xml | 2 +- .../legend-engine-xt-java-runtime-compiler/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-runtime/pom.xml | 2 +- legend-engine-pure/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-api/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-binding/pom.xml | 2 +- .../legend-engine-xt-analytics-class-api/pom.xml | 2 +- .../legend-engine-xt-analytics-class-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-class/pom.xml | 2 +- .../legend-engine-xt-analytics-function-api/pom.xml | 2 +- .../legend-engine-xt-analytics-function-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-function/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-api/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-lineage/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-api/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-protocol/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-mapping/pom.xml | 2 +- .../legend-engine-xt-analytics-search-generation/pom.xml | 2 +- .../legend-engine-xt-analytics-search-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-search/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement-api/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement/pom.xml | 2 +- .../legend-engine-xts-analytics-store/pom.xml | 2 +- legend-engine-xts-analytics/pom.xml | 2 +- legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml | 2 +- .../legend-engine-xt-arrow-runtime/pom.xml | 2 +- legend-engine-xts-arrow/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-protocol/pom.xml | 2 +- .../legend-engine-xt-authentication-pure/pom.xml | 2 +- legend-engine-xts-authentication/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro/pom.xml | 2 +- legend-engine-xts-avro/pom.xml | 2 +- .../legend-engine-xt-changetoken-compiler/pom.xml | 2 +- .../legend-engine-xt-changetoken-pure/pom.xml | 2 +- legend-engine-xts-changetoken/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml | 2 +- legend-engine-xts-daml/pom.xml | 2 +- .../legend-engine-xt-data-push-server/pom.xml | 2 +- legend-engine-xts-data-push/pom.xml | 2 +- .../legend-engine-xt-data-space-api/pom.xml | 2 +- .../legend-engine-xt-data-space-compiler/pom.xml | 2 +- .../legend-engine-xt-data-space-generation/pom.xml | 2 +- .../legend-engine-xt-data-space-grammar/pom.xml | 2 +- .../legend-engine-xt-data-space-protocol/pom.xml | 2 +- .../legend-engine-xt-data-space-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-data-space-pure/pom.xml | 2 +- legend-engine-xts-data-space/pom.xml | 2 +- .../legend-engine-xt-diagram-api/pom.xml | 2 +- .../legend-engine-xt-diagram-compiler/pom.xml | 2 +- .../legend-engine-xt-diagram-grammar/pom.xml | 2 +- .../legend-engine-xt-diagram-protocol/pom.xml | 2 +- .../legend-engine-xt-diagram-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-diagram-pure/pom.xml | 2 +- legend-engine-xts-diagram/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-grammar/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-protocol/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-executionPlan-test/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-protocol-utils/pom.xml | 2 +- .../pom.xml | 2 +- legend-engine-xts-elasticsearch/pom.xml | 2 +- .../legend-engine-xt-flatdata-driver-bloomberg/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-flatdata-model/pom.xml | 2 +- .../legend-engine-xt-flatdata-pure/pom.xml | 2 +- .../legend-engine-xt-flatdata-runtime/pom.xml | 2 +- .../legend-engine-xt-flatdata-shared/pom.xml | 2 +- legend-engine-xts-flatdata/pom.xml | 2 +- .../legend-engine-xt-functionActivator-api/pom.xml | 2 +- .../legend-engine-xt-functionActivator-protocol/pom.xml | 2 +- .../legend-engine-xt-functionActivator-pure/pom.xml | 2 +- legend-engine-xts-functionActivator/pom.xml | 2 +- .../legend-engine-external-shared/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation/pom.xml | 2 +- .../legend-engine-xt-artifact-generation-api/pom.xml | 2 +- legend-engine-xts-generation/pom.xml | 2 +- .../legend-engine-xt-graphQL-compiler/pom.xml | 4 ++-- .../legend-engine-xt-graphQL-grammar-integration/pom.xml | 2 +- .../legend-engine-xt-graphQL-grammar/pom.xml | 2 +- .../legend-engine-xt-graphQL-protocol/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure/pom.xml | 2 +- .../legend-engine-xt-graphQL-query/pom.xml | 2 +- .../legend-engine-xt-graphQL-relational-extension/pom.xml | 2 +- legend-engine-xts-graphQL/pom.xml | 2 +- .../legend-engine-xt-haskell-grammar/pom.xml | 2 +- .../legend-engine-xt-haskell-protocol/pom.xml | 2 +- .../legend-engine-xt-haskell-pure/pom.xml | 2 +- legend-engine-xts-haskell/pom.xml | 2 +- .../legend-engine-xt-hostedService-api/pom.xml | 2 +- .../legend-engine-xt-hostedService-compiler/pom.xml | 2 +- .../legend-engine-xt-hostedService-generation/pom.xml | 2 +- .../legend-engine-xt-hostedService-grammar/pom.xml | 2 +- .../legend-engine-xt-hostedService-protocol/pom.xml | 2 +- .../legend-engine-xt-hostedService-pure/pom.xml | 2 +- legend-engine-xts-hostedService/pom.xml | 2 +- .../legend-engine-xt-iceberg-pure/pom.xml | 2 +- .../legend-engine-xt-iceberg-test-support/pom.xml | 2 +- legend-engine-xts-iceberg/pom.xml | 2 +- .../legend-engine-external-language-java/pom.xml | 2 +- .../legend-engine-xt-javaGeneration-featureBased-pure/pom.xml | 2 +- .../legend-engine-xt-javaGeneration-pure/pom.xml | 2 +- .../legend-engine-xt-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-java/pom.xml | 2 +- .../legend-engine-external-format-jsonSchema/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-pure/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-test/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-model/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml | 2 +- legend-engine-xts-json/pom.xml | 2 +- .../legend-engine-xt-mastery-grammar/pom.xml | 2 +- .../legend-engine-xt-mastery-protocol/pom.xml | 2 +- .../legend-engine-xt-mastery-pure/pom.xml | 2 +- legend-engine-xts-mastery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml | 2 +- legend-engine-xts-mongodb/pom.xml | 2 +- .../legend-engine-xt-morphir-pure/pom.xml | 2 +- legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml | 2 +- legend-engine-xts-morphir/pom.xml | 2 +- .../legend-engine-xt-openapi-generation/pom.xml | 2 +- .../legend-engine-xt-openapi-pure/pom.xml | 2 +- legend-engine-xts-openapi/pom.xml | 2 +- .../legend-engine-xt-persistence-api/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-component/pom.xml | 2 +- .../legend-engine-xt-persistence-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-test-runner/pom.xml | 2 +- legend-engine-xts-persistence/pom.xml | 2 +- .../legend-engine-xt-protobuf-grammar/pom.xml | 2 +- .../legend-engine-xt-protobuf-protocol/pom.xml | 2 +- .../legend-engine-xt-protobuf-pure/pom.xml | 2 +- legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml | 4 ++-- legend-engine-xts-protobuf/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-analytics/pom.xml | 2 +- .../legend-engine-xt-relationalStore-connection/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-reports/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-server/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino/pom.xml | 2 +- .../legend-engine-xt-relationalStore-dbExtension/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-executionPlan/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-api/pom.xml | 2 +- .../legend-engine-xt-relationalStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-generation/pom.xml | 2 +- legend-engine-xts-relationalStore/pom.xml | 2 +- .../legend-engine-xt-relationalai-pure/pom.xml | 2 +- legend-engine-xts-relationalai/pom.xml | 2 +- .../legend-engine-xt-rosetta-pure/pom.xml | 2 +- legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml | 2 +- legend-engine-xts-rosetta/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-execution/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service/pom.xml | 2 +- .../legend-engine-service-post-validation-runner/pom.xml | 2 +- .../legend-engine-services-model-api/pom.xml | 2 +- .../legend-engine-services-model/pom.xml | 2 +- .../legend-engine-test-runner-service/pom.xml | 2 +- legend-engine-xts-service/pom.xml | 2 +- .../legend-engine-xt-serviceStore-executionPlan/pom.xml | 2 +- .../legend-engine-xt-serviceStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-serviceStore-protocol/pom.xml | 2 +- .../legend-engine-xt-serviceStore-pure/pom.xml | 2 +- legend-engine-xts-serviceStore/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-api/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-compiler/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-generator/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-grammar/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-protocol/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-pure/pom.xml | 2 +- legend-engine-xts-snowflakeApp/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml | 2 +- .../legend-engine-xt-sql-grammar-integration/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml | 2 +- .../legend-engine-xt-sql-postgres-server/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml | 2 +- .../legend-engine-xt-sql-providers-core/pom.xml | 2 +- .../legend-engine-xt-sql-providers-relationalStore/pom.xml | 2 +- .../legend-engine-xt-sql-providers-service/pom.xml | 2 +- .../legend-engine-xt-sql-providers-shared/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml | 2 +- .../legend-engine-xt-sql-pure-metamodel/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml | 2 +- legend-engine-xts-sql/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml | 2 +- .../legend-engine-xt-text-pure-metamodel/pom.xml | 2 +- legend-engine-xts-text/pom.xml | 2 +- .../legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml | 2 +- legend-engine-xts-xml/pom.xml | 2 +- pom.xml | 4 ++-- 381 files changed, 384 insertions(+), 384 deletions(-) diff --git a/legend-engine-application-query/pom.xml b/legend-engine-application-query/pom.xml index 26000406885..f3f9ce54406 100644 --- a/legend-engine-application-query/pom.xml +++ b/legend-engine-application-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-application-query diff --git a/legend-engine-config/legend-engine-configuration/pom.xml b/legend-engine-config/legend-engine-configuration/pom.xml index 7d2c013e450..1e99fa115d2 100644 --- a/legend-engine-config/legend-engine-configuration/pom.xml +++ b/legend-engine-config/legend-engine-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-configuration diff --git a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml index 582cb46c6f7..aa21451a549 100644 --- a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-connection-integration-tests diff --git a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml index bdd93df67c4..14117fceaac 100644 --- a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml index 85a768db163..e8dc0dba737 100644 --- a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml index 50127300190..1ddf32aaee8 100644 --- a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml +++ b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-config/legend-engine-server-integration-tests/pom.xml b/legend-engine-config/legend-engine-server-integration-tests/pom.xml index b0ea8848e0a..215edddcaeb 100644 --- a/legend-engine-config/legend-engine-server-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-server-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-server-integration-tests diff --git a/legend-engine-config/legend-engine-server-support-core/pom.xml b/legend-engine-config/legend-engine-server-support-core/pom.xml index de83a29d0ea..aeef2affd32 100644 --- a/legend-engine-config/legend-engine-server-support-core/pom.xml +++ b/legend-engine-config/legend-engine-server-support-core/pom.xml @@ -3,7 +3,7 @@ legend-engine-config org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index cc7824ad154..f04b84f716d 100644 --- a/legend-engine-config/legend-engine-server/pom.xml +++ b/legend-engine-config/legend-engine-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-server diff --git a/legend-engine-config/pom.xml b/legend-engine-config/pom.xml index cdcfe386eba..7d4230e5607 100644 --- a/legend-engine-config/pom.xml +++ b/legend-engine-config/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml index a79550961f5..53592be706d 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-executionPlan-dependencies diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml index 07dc527c3f4..9db1ded4abe 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-executionPlan-execution-api diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml index 9d90fc27705..3ed67c53a45 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-core-executionPlan-execution org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml index 48ea9fc47d7..a7bdd2b6aec 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-executionPlan-execution-store-inMemory diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml index 6e39e80191e..12e7456efcc 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-executionPlan-execution diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml index 648da74beab..14d9b051c97 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml index 0737afcef53..f00f3d79674 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml index 0683b2b7fca..1bc1b5eacbc 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-generation - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml index 99a5835826f..6ed90b73360 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml index 59470c76671..6c63ecd82af 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml index b682e015173..cd59cd162aa 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-language-pure-compiler-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml index f0b94440067..1aa37dd1919 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-language-pure-compiler diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml index 98231c2f610..feb745f72b1 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-language-pure-grammar-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml index 4fce2e8207e..ca9f80cb234 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-language-pure-grammar diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml index fdabf9d88fe..658e135d9e6 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-language-pure-modelManager-sdlc diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml index f455073521f..7fc8ca92a64 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-language-pure-modelManager diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml index d861faacb8c..5b99eba871c 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-protocol-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml index a65d484afc2..d80ef747710 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-protocol-generation-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml index 992ce08cd77..c906ad78dba 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-protocol-generation diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml index 1e075abf39d..bc86c3ee9c6 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-protocol-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml index 843da7d0e9c..31147ec4669 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-protocol diff --git a/legend-engine-core/legend-engine-core-language-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/pom.xml index 998079b72c8..323280e33a9 100644 --- a/legend-engine-core/legend-engine-core-language-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml index 7fe1843028e..705b8cb3f00 100644 --- a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-query-pure - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-query-pure diff --git a/legend-engine-core/legend-engine-core-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/pom.xml index d6a5d172e18..e66a21efecf 100644 --- a/legend-engine-core/legend-engine-core-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml index c41880ebeeb..afa99509df3 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-shared-core diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml index 98afdc3d6e3..40a627ba3a3 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-shared-javaCompiler diff --git a/legend-engine-core/legend-engine-core-shared/pom.xml b/legend-engine-core/legend-engine-core-shared/pom.xml index 9097e9677ec..ab26986cb81 100644 --- a/legend-engine-core/legend-engine-core-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml index 9cd32cef4cc..dc8d3d8d01d 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml index f2896ebe8ea..b89262ed394 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml index 9c6e24f46aa..e75e48b76fe 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-test-runner-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml index 04c1c9a41de..e8b3d1a40a8 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-test-server-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml index 59bd37d1a60..375bf0e92c5 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-testable diff --git a/legend-engine-core/legend-engine-core-test/pom.xml b/legend-engine-core/legend-engine-core-test/pom.xml index 6780de076c2..863e012c147 100644 --- a/legend-engine-core/legend-engine-core-test/pom.xml +++ b/legend-engine-core/legend-engine-core-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-core/pom.xml b/legend-engine-core/pom.xml index b34bd0e4d88..c0baad77c08 100644 --- a/legend-engine-core/pom.xml +++ b/legend-engine-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml index 882dfd719dc..4a585d4d251 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.33.1-SNAPSHOT + 4.34.1 legend-engine-pure-code-compiled-core diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml index 6063369eb12..1ad26ac024f 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.33.1-SNAPSHOT + 4.34.1 legend-engine-pure-code-compiled-functions diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml index 99e06bc951f..36d81bbab45 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.33.1-SNAPSHOT + 4.34.1 legend-engine-pure-code-core-extension diff --git a/legend-engine-pure/legend-engine-pure-code/pom.xml b/legend-engine-pure/legend-engine-pure-code/pom.xml index e7a6d8b4f41..3cc21c1cfb1 100644 --- a/legend-engine-pure/legend-engine-pure-code/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml index 032f8a245dc..597f38d2ae6 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml index e994b4c68e8..3019eb0e1a1 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml index 1d74d1d5839..e59498120b5 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/pom.xml b/legend-engine-pure/legend-engine-pure-ide/pom.xml index 9f205bed581..a8be63ab98b 100644 --- a/legend-engine-pure/legend-engine-pure-ide/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml index f5ad5cee25d..daa999d667b 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.1-SNAPSHOT + 4.34.1 legend-engine-pure-platform-dsl-diagram-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml index 1abdcfe301c..f4f5145b383 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.1-SNAPSHOT + 4.34.1 legend-engine-pure-platform-dsl-graph-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml index c88cf8c6d13..cf2a2ffd9fe 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.1-SNAPSHOT + 4.34.1 legend-engine-pure-platform-dsl-mapping-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml index 4f745b569e2..48896f15c45 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.1-SNAPSHOT + 4.34.1 legend-engine-pure-platform-dsl-path-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml index 7eb81e35e27..1ed8cb1e2d9 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.1-SNAPSHOT + 4.34.1 legend-engine-pure-platform-functions-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml index a6f05cd8fb9..842c6d912d6 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.1-SNAPSHOT + 4.34.1 legend-engine-pure-platform-functions-json-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml index 9d9bdf7c46c..8289204ccf3 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.1-SNAPSHOT + 4.34.1 legend-engine-pure-platform-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml index ca5c625101a..9b15a210166 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.1-SNAPSHOT + 4.34.1 legend-engine-pure-platform-store-relational-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml index 5e8e43ca91c..fcbf5ad294f 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml index 1e2317373f3..7bb159a4d76 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml index eb94324ebf0..e23c6630cb5 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml index 58536ec1f86..04a3ac01891 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml index f578c3a19a2..850a576c711 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.33.1-SNAPSHOT + 4.34.1 legend-engine-xt-java-runtime-compiler diff --git a/legend-engine-pure/legend-engine-pure-runtime/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/pom.xml index c68b4c6b06f..6240431cc76 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-pure/pom.xml b/legend-engine-pure/pom.xml index 38eadd82891..c08af8cc536 100644 --- a/legend-engine-pure/pom.xml +++ b/legend-engine-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml index 6aa9256c513..13c220579ec 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml index e78fd1c1b23..65027cd6d7b 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml index 729acc00b57..47b2ebeabf0 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml index bdccc55998b..79c5694c7ee 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml index 6057108d99a..471224f25b5 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml index 0aa9e6bb383..b982886e2f1 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml index 4ea5a90d679..e0e193f99d1 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml index b9706c5cf39..375fb2f02af 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml index 7fe70f17ec4..041eb591b18 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml index fd270f00f28..51be7dc89c6 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml index 7fbca6bd66d..ca7ce1da64c 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml index e0fec0343a9..9289b4639fb 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml index cdb005c8aa3..e2a69b6dff7 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 Legend Engine - XT - Analytics - Mapping - API diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml index f7821e7c59a..4c415d90e94 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-mapping - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 Legend Engine - XT - Analytics - Mapping - Protocol diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml index bbe8c6cc8b3..38ab1b5bdf9 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml index 765d4901f72..398c84273c7 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml index 4efbacfc569..1e0429b5361 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-search - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml index b7e593e65a5..e7d67cb0b6c 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-search org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml index 40a0d553679..0295b5751e8 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml index e3be8e1073a..9132da7c322 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-xt-analytics-store-entitlement-api diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml index 10dada5b20e..0c9ab51f06a 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml index 7c810af1476..ea16e55a84b 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-analytics/pom.xml b/legend-engine-xts-analytics/pom.xml index 639c1a3e306..274deb7744f 100644 --- a/legend-engine-xts-analytics/pom.xml +++ b/legend-engine-xts-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml index 875bf11456a..45f0b5b4969 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml index 2c70074bcd8..fa5823f2ce8 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-arrow/pom.xml b/legend-engine-xts-arrow/pom.xml index 34eeaf10de8..c3fc7856f44 100644 --- a/legend-engine-xts-arrow/pom.xml +++ b/legend-engine-xts-arrow/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 legend-engine-xts-arrow diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml index 99248843348..f6f47946376 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml index af720cb09dd..66403863a12 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml index bf1caaa969b..cc58e11f7d0 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml index 7078d286475..db1cc06546c 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml index 8a35704683c..cf122115309 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml index eb1ad26a652..f050d4a0825 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml index 52338d7f423..f2f2fd9cf91 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-authentication/pom.xml b/legend-engine-xts-authentication/pom.xml index 55511295261..6adaf6604cf 100644 --- a/legend-engine-xts-authentication/pom.xml +++ b/legend-engine-xts-authentication/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml index 6c667af74e0..6a5d66825f1 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml index b2bfa0cfa03..54ccdee39e6 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-avro/pom.xml b/legend-engine-xts-avro/pom.xml index 5132739df88..0a641885eca 100644 --- a/legend-engine-xts-avro/pom.xml +++ b/legend-engine-xts-avro/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml index 59d4a413c6d..f9ec94d7e89 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-changetoken org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml index 331165a319c..45fddd35b5c 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-changetoken - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-changetoken/pom.xml b/legend-engine-xts-changetoken/pom.xml index 1a0d9081b09..4e55d16c0ac 100644 --- a/legend-engine-xts-changetoken/pom.xml +++ b/legend-engine-xts-changetoken/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml index eed8e9e7724..0cf4bb94213 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml index decdfbe305b..d18a6b26d4c 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml index 420d9f9ed2b..2a9d850a36c 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-daml/pom.xml b/legend-engine-xts-daml/pom.xml index 32965d06f66..c1e807dc8b9 100644 --- a/legend-engine-xts-daml/pom.xml +++ b/legend-engine-xts-daml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml index 2e149fba332..1677ededdbb 100644 --- a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml +++ b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-data-push org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-data-push/pom.xml b/legend-engine-xts-data-push/pom.xml index 0167ebddffe..9576dfffc79 100644 --- a/legend-engine-xts-data-push/pom.xml +++ b/legend-engine-xts-data-push/pom.xml @@ -3,7 +3,7 @@ legend-engine org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml index d0bfc1b74a2..0db8bdbee92 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml index ec565f22741..250a3648f43 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-data-space org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml index e086af6d57f..babf77f7e18 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml index 5c31e9e667a..bd4938753ee 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml index 26c13106288..6193c1f6872 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml index 974c9d7a8af..4ddbd89ebc2 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml index 0ca74c63719..90d72b0e35b 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-data-space/pom.xml b/legend-engine-xts-data-space/pom.xml index 4ca00cbd542..6cad5d55574 100644 --- a/legend-engine-xts-data-space/pom.xml +++ b/legend-engine-xts-data-space/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml index 538e6913392..45cdf7c6001 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml index 2fa2c002cd0..4c533666716 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-diagram org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml index e2e4203db28..9037f4d0b8e 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml index 49c568b32ef..cdf1acaff79 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml index 1b9311e35fc..238b91ad506 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml index 117509fe754..d9066636dbf 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-diagram/pom.xml b/legend-engine-xts-diagram/pom.xml index 0b1d22da8e6..02fe623d945 100644 --- a/legend-engine-xts-diagram/pom.xml +++ b/legend-engine-xts-diagram/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml index feaa25e8d20..750edde8905 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml index 78c2d59f2eb..78b7cdee3a8 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml index a959e87ef70..4dae2084fc8 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml index a13fd594e74..e94f87e95a5 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml index 9c767b56970..d510a9e97e8 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml index d7eff45d677..9406a62bf42 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.1-SNAPSHOT + 4.34.1 legend-engine-xt-elasticsearch-protocol-utils diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml index 8f5110034ef..540e498f011 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-elasticsearch/pom.xml b/legend-engine-xts-elasticsearch/pom.xml index e46831ba858..0630902960b 100644 --- a/legend-engine-xts-elasticsearch/pom.xml +++ b/legend-engine-xts-elasticsearch/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml index 8415510e480..051818eaed2 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-flatdata org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml index bb55ad674c4..56370fcc471 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml index 1cf9a7762bc..efd8831b9ca 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml index 08168924d51..618cb22dfed 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml index edfd3627505..47ad0e3484f 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml index 89721aaeefd..d40fef9e20c 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml index eccf616b157..aa12842e7e6 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-flatdata/pom.xml b/legend-engine-xts-flatdata/pom.xml index e734dc1e4f0..3c25d9a6586 100644 --- a/legend-engine-xts-flatdata/pom.xml +++ b/legend-engine-xts-flatdata/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml index 3862217925b..1b325aefb1d 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml index ac485004fc5..df7fde8ebc9 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml index ee7413db698..db31850e32f 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-functionActivator/pom.xml b/legend-engine-xts-functionActivator/pom.xml index 241e6052c64..71cce1e6504 100644 --- a/legend-engine-xts-functionActivator/pom.xml +++ b/legend-engine-xts-functionActivator/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml index f6aeba0697e..77478dec518 100644 --- a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml +++ b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml index 995f2fceb0c..f34f21a10e3 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml index 159e4b0f707..0446f64739d 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-language-pure-dsl-generation diff --git a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml index 8e0bc0cbcf3..a758abddb20 100644 --- a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml +++ b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-generation org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-generation/pom.xml b/legend-engine-xts-generation/pom.xml index 736e82e5496..fd04448857d 100644 --- a/legend-engine-xts-generation/pom.xml +++ b/legend-engine-xts-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml index d085ba2b415..9d27026856c 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 @@ -73,7 +73,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.33.1-SNAPSHOT + 4.34.1 org.finos.legend.pure diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml index fceab60178b..6cc0b7477fc 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml index ba1659781fe..6fe60a8ba29 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml index bf27a9df678..65a397613b3 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml index 5bd9fd86f2c..a39f1b7871a 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml index 2e3686d9920..d5644f80de1 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml index 03daec94ee2..f8e4bec22a5 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml index 821157f516b..4191dee436d 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-graphQL/pom.xml b/legend-engine-xts-graphQL/pom.xml index 9e2f450b733..619f8ab5415 100644 --- a/legend-engine-xts-graphQL/pom.xml +++ b/legend-engine-xts-graphQL/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml index a3d38279b44..9abcde7b867 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml index 5f404dfabf0..c774819f2dc 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml index 5bad70b8ba1..eff083836b3 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-haskell/pom.xml b/legend-engine-xts-haskell/pom.xml index be5101f462d..3da9230e8ab 100644 --- a/legend-engine-xts-haskell/pom.xml +++ b/legend-engine-xts-haskell/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml index b2fc229384a..e20f74eb3df 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml index 6c8c0536fbb..cedd4d33dfa 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml index 65073ce414e..55815d6ec10 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml index 1ecaff22567..f012812a42f 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml index 43666877f8d..a3fd5f90dca 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml index 897f0d887df..ebb42d08617 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-hostedService/pom.xml b/legend-engine-xts-hostedService/pom.xml index 8e6d73257ff..59dd16ecfaf 100644 --- a/legend-engine-xts-hostedService/pom.xml +++ b/legend-engine-xts-hostedService/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml index edf71dada88..4438ed97dbe 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml index c155feedfb6..d49a94c1fbc 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-iceberg/pom.xml b/legend-engine-xts-iceberg/pom.xml index 0143883c633..00e2b99dbc1 100644 --- a/legend-engine-xts-iceberg/pom.xml +++ b/legend-engine-xts-iceberg/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml index d3433187a65..ade13582131 100644 --- a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml +++ b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml index 71a192b9bfb..fa13740e7d4 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml index 6a92f8e4ae2..b9a04d2f54e 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml index d3dd35deac6..9f2a4c523eb 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-java/pom.xml b/legend-engine-xts-java/pom.xml index 7f00b20a8cc..cd3af0f17d0 100644 --- a/legend-engine-xts-java/pom.xml +++ b/legend-engine-xts-java/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml index d7c677f3806..706243c2cfc 100644 --- a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml +++ b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml index e69d8c1eb06..3cdf59babe1 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml index aeb964ddaac..c62542d3f34 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml index 0751b4c44e4..e1ec35d436a 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml index 913feb5b3a8..169502cceda 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml index 9fd72a01887..f2660761f74 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-json/pom.xml b/legend-engine-xts-json/pom.xml index 7a40ad25a78..58945337b55 100644 --- a/legend-engine-xts-json/pom.xml +++ b/legend-engine-xts-json/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml index 66d822bf71c..a4a6e86b4a5 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-mastery org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml index 0d9c2c71b7d..086a1bc825a 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml index 3031b4a90fe..278482e77cf 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-mastery/pom.xml b/legend-engine-xts-mastery/pom.xml index 472cccac107..a76375a73a4 100644 --- a/legend-engine-xts-mastery/pom.xml +++ b/legend-engine-xts-mastery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml index 6ec9db72672..c49ae7852bc 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml index 353a89b88c6..0c5d2588c96 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.1-SNAPSHOT + 4.34.1 legend-engine-xt-nonrelationalStore-mongodb-executionPlan diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml index 1054a2d3285..87ed42c8d04 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.1-SNAPSHOT + 4.34.1 legend-engine-xt-nonrelationalStore-mongodb-grammar-integration diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml index 1f10b7da6dd..0a907471488 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.1-SNAPSHOT + 4.34.1 legend-engine-xt-nonrelationalStore-mongodb-grammar diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml index 18adb43eac0..d0364870cb8 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.1-SNAPSHOT + 4.34.1 legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml index a746d4d2555..a248b952e1b 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.1-SNAPSHOT + 4.34.1 legend-engine-xt-nonrelationalStore-mongodb-protocol diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml index 557d73b9822..23c1702fc16 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.1-SNAPSHOT + 4.34.1 legend-engine-xt-nonrelationalStore-mongodb-pure diff --git a/legend-engine-xts-mongodb/pom.xml b/legend-engine-xts-mongodb/pom.xml index 48cabbe1224..a798829e985 100644 --- a/legend-engine-xts-mongodb/pom.xml +++ b/legend-engine-xts-mongodb/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml index 7d059868f3f..6e6ec624a1a 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-morphir - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml index 15369a9df5c..f81bf7df804 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-morphir org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-morphir/pom.xml b/legend-engine-xts-morphir/pom.xml index 0fcf1361d82..b426c30bd51 100644 --- a/legend-engine-xts-morphir/pom.xml +++ b/legend-engine-xts-morphir/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml index 1142d0c820a..324ad116b25 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.33.1-SNAPSHOT + 4.34.1 legend-engine-xt-openapi-generation diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml index 930ac3bb003..cd026ecd3ca 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.33.1-SNAPSHOT + 4.34.1 legend-engine-xt-openapi-pure diff --git a/legend-engine-xts-openapi/pom.xml b/legend-engine-xts-openapi/pom.xml index 5adc3adef52..401d892368f 100644 --- a/legend-engine-xts-openapi/pom.xml +++ b/legend-engine-xts-openapi/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml index c8123f8533b..f24b78f03e0 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml index 6d8c36c895f..9e28b1f7009 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml index 8e9f402b664..d95244e0695 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml index 435f72dbf5e..556eacf860b 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml index 2805640d256..f87543a5237 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml index 204c368714a..7022a181098 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml index 7499e3bf9a9..5226e559a9a 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml index ab4cfac8842..b8d08a1f838 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml index 3d675a03bdb..c01136dd691 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml index 67c9d90ffc4..14ace231e62 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml index 8b413ed74e1..10a8ee19e5d 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml index 82196c67b29..41320cff530 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml index d52d98cfb8e..731072d44f6 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml index 88bf7f585d2..93d662593be 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml index 60b325907b9..180600a718d 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml index 5614425ce24..bfa6d6d8bfc 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml index 9d4970e1871..7d7e5158152 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml index d3b9d36fc02..229733d49c8 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml index 07a3f8a0373..87e6b2d5dc7 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml index 62bd97d3382..a8eef31ade7 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml index 70dd22b5e82..3e9651d1cb0 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-persistence/pom.xml b/legend-engine-xts-persistence/pom.xml index 28053286931..c0d90475bdb 100644 --- a/legend-engine-xts-persistence/pom.xml +++ b/legend-engine-xts-persistence/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml index b67814c81f3..43ce55b65be 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-xt-protobuf-grammar diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml index 0d9dc15ba56..35b5279106c 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-xt-protobuf-protocol diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml index 9bd6299bb4f..006c9d2bb52 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml index 7eb488e1e35..5ef6279058e 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 @@ -57,7 +57,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.33.1-SNAPSHOT + 4.34.1 org.finos.legend.pure diff --git a/legend-engine-xts-protobuf/pom.xml b/legend-engine-xts-protobuf/pom.xml index c45d7113ea0..198332d1d49 100644 --- a/legend-engine-xts-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml index c624bace32d..f2ca8cb30cf 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml index a83c567657f..9a778d2692f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml index d3d96b1046c..eb5166d3561 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml index a656f94577d..f3706ee4e5c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml index 5bb2bce6264..d4b77bf5d89 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml index 0e55f9d9529..3fdf78eafd6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml index 6ab2b7b38e3..7bddec5b75c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml index dfd3f090af1..3a8a205a9aa 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml index cd88e469d27..67126544ab0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml index ce5c659701c..ee31f048779 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml index b7b1909739d..5a8e77b1e92 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-bigquery org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml index bbc2c2c6d5f..a930601fb2d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml index 47b14410cd9..07f4fa94c8d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml index 94562c0b0c1..3975f115ffb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml index 4e45a4cb12b..20d5ccdda51 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml index c6d04689c4d..e9661c0546e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml index 2ca9bc7f94e..7836c64436a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml index f1e55065757..e5cc46a5da2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml index 53b25eb605d..ec3e6a7c6a1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml index b9a9d5e2abe..ae96dfd6c16 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml index 711174db32f..c1ffda3396e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml index 85dfcba4117..c1135bcecb3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml index 070ec4cf332..5b907046080 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-dbExtension org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml index cf27088aec8..517edecdb90 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-hive - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml index 626cd9db26c..2fd0a097be4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml index ee9787d46ac..da61c359393 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml index bf217c9df65..5fa9c008a15 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-memsql org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml index f2c0e0cef0f..64c2a1f8e87 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.33.1-SNAPSHOT + 4.34.1 legend-engine-xt-relationalStore-memsql-execution diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml index e140e54710f..cbd8f7b065c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.33.1-SNAPSHOT + 4.34.1 legend-engine-xt-relationalStore-memsql-pure diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml index 22485e974bb..d56cee98745 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml index 33096c645a0..1060fa57854 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml index afabbf450c6..03d171e8987 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml index 7a980c91b0d..499a1404df9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml index 0d8cdbc34ea..91fcfcbcf58 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml index 5814eb78832..ca823211bea 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml index df74f2e4f6a..b7d02ac908e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml index 10f51da9e72..d6c8febb7ab 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-presto - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml index ca589719938..1ce2a160a70 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml index baf52530e3c..ab0f12a8db7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml index e4401c68482..be9feddbb2d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml index 4f9a07e2464..966b2355927 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml index e91eaea6fb1..7eb476c3b66 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml index 88414c20a27..09458b0f1ab 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml index 0faba791087..1e003bf1b13 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml index 6203654fd90..4fa673ad0c8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml index 49bc97050d7..7075f23510a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml index ab906d30002..aac3a462c1c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml index 82d4ddfae0e..9b11a211388 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml index ed439a37329..d0e40c52270 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml index c8f188260a8..2c1b21d3446 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml index f23e0c26383..4dde9804dce 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml index 4b5efa5b0a1..47f095b8e7c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml index 422309e4cb5..3ee8aea58a0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml index cd101865b70..fc019e32697 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml index de32344cf86..72821139a84 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml index e824119407f..b81bc263a9f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml index f4550aa8136..0e2cd46bf8e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml index 70a63bb4a3a..f83415d9640 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml index 08b7534873f..1f45729a9ab 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sparksql - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml index 2c3cbddfab1..a05292ad0fe 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml index 1cf0497792a..88b9e692eca 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml index 4b5045399ec..3253f51b4f5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-xt-relationalStore-sqlserver-execution-tests diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml index 58cabec072e..496fd09ac3f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml index 50d2e9c6ae2..c62eac564ba 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml index 8dc3178e90f..5c9937e3092 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml index 775f43a23c7..3ec932f1c0f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybase - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml index 1094117c02b..0eec4768d26 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml index e5684ff4da1..8580d106d52 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybaseiq - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml index 1402c7259a6..7cfab2a8ded 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml index 08579e59417..f42d088dbad 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-xt-relationalStore-test-reports diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml index fa1dbf88de7..6f277ba5306 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-xt-relationalStore-test-server diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml index 154b57c5363..505935313a5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml index d13586411a7..a034fc8f3bb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml index 4e2990c20f5..a66055ad3b0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml index 0fadc3e6685..b4fed2682b3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml index 86f775c8d1d..fa78e17683a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml index ad64ce4fcde..6e8a5d903e4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml index b9880fb23ef..bd5f50269f7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml index 8b49770ce32..af9b1e58631 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml index c60263ae322..64984fde965 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml index 616afe51d79..c6bd9e95625 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication-default diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml index 5bf9e860977..187bf5690cb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml index 7321fb3357e..c21e8c654d5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 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 eefb5a57bc2..6b5d18ccc0f 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 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 ad6da7847e0..e070143d443 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml index b4a855b1aef..45a8ab25342 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml index 3f664e19525..f16224e2f90 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml index cc3c93183b1..a80c79c2843 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml index d6a850cc434..773e1db8b5a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml index 249aa5fcdd1..5bdf2c91285 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml index f4263e2d1b2..56269698c47 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml index 844ff850971..5dbd92e1d96 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml index 1a30a494654..03d6cbb7f85 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml index 5d46d88f683..319123b7e23 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalStore/pom.xml b/legend-engine-xts-relationalStore/pom.xml index 904c5ae6d27..f058d0357f2 100644 --- a/legend-engine-xts-relationalStore/pom.xml +++ b/legend-engine-xts-relationalStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml index b06832f4d56..deb584c6fe9 100644 --- a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalai - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-relationalai/pom.xml b/legend-engine-xts-relationalai/pom.xml index 12fd7fa6dd0..c0b697142bf 100644 --- a/legend-engine-xts-relationalai/pom.xml +++ b/legend-engine-xts-relationalai/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml index dfd1358eea4..8aca57a8d78 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml index 5d2538a4178..d1f30c809c5 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-rosetta/pom.xml b/legend-engine-xts-rosetta/pom.xml index 753b983e745..f759b14d6e9 100644 --- a/legend-engine-xts-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml index 38b4a827dfd..c25798e1550 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-language-pure-dsl-service-execution diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml index dcd73a2594b..65b70279849 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml index 6c8dcecc458..d3139fd8c08 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml index ec564480948..beaf414e8ab 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-language-pure-dsl-service diff --git a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml index 2e000822f5a..ca8dc32481e 100644 --- a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml +++ b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml index ca10adc2cb3..87c37d41c7a 100644 --- a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-services-model-api diff --git a/legend-engine-xts-service/legend-engine-services-model/pom.xml b/legend-engine-xts-service/legend-engine-services-model/pom.xml index 27cb0a41e9c..83e0ee0ed34 100644 --- a/legend-engine-xts-service/legend-engine-services-model/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 legend-engine-services-model diff --git a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml index fa53cf8e3cb..2c814592407 100644 --- a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-service/pom.xml b/legend-engine-xts-service/pom.xml index 20fd818dcf2..99451f4e478 100644 --- a/legend-engine-xts-service/pom.xml +++ b/legend-engine-xts-service/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml index c94beeefb6a..e0e1e2b8132 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml index 843b58d9dcc..a41119a0d14 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml index 71cdd1d1b90..0164d2afe50 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml index 1f2e5fa7bb9..b81d108f581 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml index 8b9499dc1d4..ad98d48052a 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-serviceStore/pom.xml b/legend-engine-xts-serviceStore/pom.xml index 61c5a4d98cf..c943764b681 100644 --- a/legend-engine-xts-serviceStore/pom.xml +++ b/legend-engine-xts-serviceStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml index 30f4ebf2010..4cd8f17d96c 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml index de6b98c7af8..c924cb0d8ff 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-snowflakeApp org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml index 24baaabff56..ed0b9b55966 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml index db204e07a04..42051e39c57 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml index e789dba57cc..4c30369e964 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml index 64ce866e475..5cb235d296b 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/pom.xml b/legend-engine-xts-snowflakeApp/pom.xml index 65c52a05a94..ea78ba31ccf 100644 --- a/legend-engine-xts-snowflakeApp/pom.xml +++ b/legend-engine-xts-snowflakeApp/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml index 4f707580cf1..5ed6ae1c22c 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml index 52f30301956..654f18e60c9 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml index 4b942133fa5..1bbc2c00db2 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml index 5734d8b23b5..148393d74f8 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-sql org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml index 500ec35d9db..b94fe49d588 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml index a97e23df7bb..75d9f215c19 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml index 8a6657ec38c..a9f65c2f4e9 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml index 7171813cc48..83e9586672d 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml index a35260ca7ff..a29c9010e8f 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml index 3c82125302e..71d35895e58 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml index 60d6c5ec9c6..845a8b930b8 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml index 856abb2b5f0..8498ada4f26 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml index bcd49fa29e7..fedf3945f10 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-sql/pom.xml b/legend-engine-xts-sql/pom.xml index cb3a0231fe6..1f2ce94162a 100644 --- a/legend-engine-xts-sql/pom.xml +++ b/legend-engine-xts-sql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml index 493f45c1209..354aaa93470 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-text org.finos.legend.engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml index 5e941362587..886605fcb14 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml index da2e0f26dea..b576db0dafa 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml index 74a99649c84..8b1dacc0793 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-text/pom.xml b/legend-engine-xts-text/pom.xml index ffd698922ad..b9c01f14094 100644 --- a/legend-engine-xts-text/pom.xml +++ b/legend-engine-xts-text/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml index 3ab06298db7..9e69c5352da 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml index 02cddbe2a6d..ff8c7b8f0f0 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml index 485bbf2e299..40cf21087fa 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml index 6dd6d4bc903..dd82a8d57d6 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml index edbbe5ea66b..898b81e8082 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/legend-engine-xts-xml/pom.xml b/legend-engine-xts-xml/pom.xml index fefaf0418bf..9eb7721b78a 100644 --- a/legend-engine-xts-xml/pom.xml +++ b/legend-engine-xts-xml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 4.0.0 diff --git a/pom.xml b/pom.xml index 7fbc16bfd5b..49a13f1b164 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ Legend Engine org.finos.legend.engine legend-engine - 4.33.1-SNAPSHOT + 4.34.1 pom @@ -228,7 +228,7 @@ scm:git:https://github.com/finos/legend-engine - HEAD + legend-engine-4.34.1 From 3c5083b667f19db35dc14c7841bbb75fc20b1eb5 Mon Sep 17 00:00:00 2001 From: FINOS Administrator <37706051+finos-admin@users.noreply.github.com> Date: Wed, 1 Nov 2023 13:25:19 +0000 Subject: [PATCH 61/80] [maven-release-plugin] prepare for next development iteration --- legend-engine-application-query/pom.xml | 2 +- legend-engine-config/legend-engine-configuration/pom.xml | 2 +- .../legend-engine-connection-integration-tests/pom.xml | 2 +- .../legend-engine-extensions-collection-execution/pom.xml | 2 +- .../legend-engine-extensions-collection-generation/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-server-integration-tests/pom.xml | 2 +- .../legend-engine-server-support-core/pom.xml | 2 +- legend-engine-config/legend-engine-server/pom.xml | 2 +- legend-engine-config/pom.xml | 2 +- .../legend-engine-executionPlan-dependencies/pom.xml | 2 +- .../legend-engine-executionPlan-execution-api/pom.xml | 2 +- .../legend-engine-executionPlan-execution-authorizer/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-executionPlan-execution/pom.xml | 2 +- .../legend-engine-external-shared-format-runtime/pom.xml | 2 +- .../legend-engine-core-executionPlan-execution/pom.xml | 2 +- .../legend-engine-executionPlan-generation/pom.xml | 2 +- .../legend-engine-core-executionPlan-generation/pom.xml | 2 +- .../legend-engine-external-shared-format-model/pom.xml | 2 +- .../legend-engine-language-pure-compiler-api/pom.xml | 2 +- .../legend-engine-language-pure-compiler/pom.xml | 2 +- .../legend-engine-language-pure-grammar-api/pom.xml | 2 +- .../legend-engine-language-pure-grammar/pom.xml | 2 +- .../legend-engine-language-pure-modelManager-sdlc/pom.xml | 2 +- .../legend-engine-language-pure-modelManager/pom.xml | 2 +- .../legend-engine-protocol-api/pom.xml | 2 +- .../legend-engine-protocol-generation-pure/pom.xml | 2 +- .../legend-engine-protocol-generation/pom.xml | 2 +- .../legend-engine-protocol-pure/pom.xml | 2 +- .../legend-engine-protocol/pom.xml | 2 +- legend-engine-core/legend-engine-core-language-pure/pom.xml | 2 +- .../legend-engine-query-pure/pom.xml | 2 +- legend-engine-core/legend-engine-core-query-pure/pom.xml | 2 +- .../legend-engine-shared-core/pom.xml | 2 +- .../legend-engine-shared-javaCompiler/pom.xml | 2 +- legend-engine-core/legend-engine-core-shared/pom.xml | 2 +- .../legend-engine-test-data-generation/pom.xml | 2 +- .../legend-engine-test-runner-mapping/pom.xml | 2 +- .../legend-engine-test-runner-shared/pom.xml | 2 +- .../legend-engine-test-server-shared/pom.xml | 2 +- .../legend-engine-core-test/legend-engine-testable/pom.xml | 2 +- legend-engine-core/legend-engine-core-test/pom.xml | 2 +- legend-engine-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-functions/pom.xml | 2 +- .../legend-engine-pure-code-core-extension/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-code/pom.xml | 2 +- .../legend-engine-pure-ide-light-metadata-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-ide/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-diagram-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-graph-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-mapping-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-path-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-json-java/pom.xml | 2 +- .../legend-engine-pure-platform-java/pom.xml | 2 +- .../legend-engine-pure-platform-store-relational-java/pom.xml | 2 +- .../legend-engine-pure-platform-modular-generation/pom.xml | 2 +- .../legend-engine-pure-runtime-compiler/pom.xml | 2 +- .../legend-engine-pure-runtime-execution/pom.xml | 2 +- .../legend-engine-pure-runtime-extensions/pom.xml | 2 +- .../legend-engine-xt-java-runtime-compiler/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-runtime/pom.xml | 2 +- legend-engine-pure/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-api/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-binding/pom.xml | 2 +- .../legend-engine-xt-analytics-class-api/pom.xml | 2 +- .../legend-engine-xt-analytics-class-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-class/pom.xml | 2 +- .../legend-engine-xt-analytics-function-api/pom.xml | 2 +- .../legend-engine-xt-analytics-function-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-function/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-api/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-lineage/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-api/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-protocol/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-mapping/pom.xml | 2 +- .../legend-engine-xt-analytics-search-generation/pom.xml | 2 +- .../legend-engine-xt-analytics-search-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-search/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement-api/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement/pom.xml | 2 +- .../legend-engine-xts-analytics-store/pom.xml | 2 +- legend-engine-xts-analytics/pom.xml | 2 +- legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml | 2 +- .../legend-engine-xt-arrow-runtime/pom.xml | 2 +- legend-engine-xts-arrow/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-protocol/pom.xml | 2 +- .../legend-engine-xt-authentication-pure/pom.xml | 2 +- legend-engine-xts-authentication/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro/pom.xml | 2 +- legend-engine-xts-avro/pom.xml | 2 +- .../legend-engine-xt-changetoken-compiler/pom.xml | 2 +- .../legend-engine-xt-changetoken-pure/pom.xml | 2 +- legend-engine-xts-changetoken/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml | 2 +- legend-engine-xts-daml/pom.xml | 2 +- .../legend-engine-xt-data-push-server/pom.xml | 2 +- legend-engine-xts-data-push/pom.xml | 2 +- .../legend-engine-xt-data-space-api/pom.xml | 2 +- .../legend-engine-xt-data-space-compiler/pom.xml | 2 +- .../legend-engine-xt-data-space-generation/pom.xml | 2 +- .../legend-engine-xt-data-space-grammar/pom.xml | 2 +- .../legend-engine-xt-data-space-protocol/pom.xml | 2 +- .../legend-engine-xt-data-space-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-data-space-pure/pom.xml | 2 +- legend-engine-xts-data-space/pom.xml | 2 +- .../legend-engine-xt-diagram-api/pom.xml | 2 +- .../legend-engine-xt-diagram-compiler/pom.xml | 2 +- .../legend-engine-xt-diagram-grammar/pom.xml | 2 +- .../legend-engine-xt-diagram-protocol/pom.xml | 2 +- .../legend-engine-xt-diagram-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-diagram-pure/pom.xml | 2 +- legend-engine-xts-diagram/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-grammar/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-protocol/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-executionPlan-test/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-protocol-utils/pom.xml | 2 +- .../pom.xml | 2 +- legend-engine-xts-elasticsearch/pom.xml | 2 +- .../legend-engine-xt-flatdata-driver-bloomberg/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-flatdata-model/pom.xml | 2 +- .../legend-engine-xt-flatdata-pure/pom.xml | 2 +- .../legend-engine-xt-flatdata-runtime/pom.xml | 2 +- .../legend-engine-xt-flatdata-shared/pom.xml | 2 +- legend-engine-xts-flatdata/pom.xml | 2 +- .../legend-engine-xt-functionActivator-api/pom.xml | 2 +- .../legend-engine-xt-functionActivator-protocol/pom.xml | 2 +- .../legend-engine-xt-functionActivator-pure/pom.xml | 2 +- legend-engine-xts-functionActivator/pom.xml | 2 +- .../legend-engine-external-shared/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation/pom.xml | 2 +- .../legend-engine-xt-artifact-generation-api/pom.xml | 2 +- legend-engine-xts-generation/pom.xml | 2 +- .../legend-engine-xt-graphQL-compiler/pom.xml | 4 ++-- .../legend-engine-xt-graphQL-grammar-integration/pom.xml | 2 +- .../legend-engine-xt-graphQL-grammar/pom.xml | 2 +- .../legend-engine-xt-graphQL-protocol/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure/pom.xml | 2 +- .../legend-engine-xt-graphQL-query/pom.xml | 2 +- .../legend-engine-xt-graphQL-relational-extension/pom.xml | 2 +- legend-engine-xts-graphQL/pom.xml | 2 +- .../legend-engine-xt-haskell-grammar/pom.xml | 2 +- .../legend-engine-xt-haskell-protocol/pom.xml | 2 +- .../legend-engine-xt-haskell-pure/pom.xml | 2 +- legend-engine-xts-haskell/pom.xml | 2 +- .../legend-engine-xt-hostedService-api/pom.xml | 2 +- .../legend-engine-xt-hostedService-compiler/pom.xml | 2 +- .../legend-engine-xt-hostedService-generation/pom.xml | 2 +- .../legend-engine-xt-hostedService-grammar/pom.xml | 2 +- .../legend-engine-xt-hostedService-protocol/pom.xml | 2 +- .../legend-engine-xt-hostedService-pure/pom.xml | 2 +- legend-engine-xts-hostedService/pom.xml | 2 +- .../legend-engine-xt-iceberg-pure/pom.xml | 2 +- .../legend-engine-xt-iceberg-test-support/pom.xml | 2 +- legend-engine-xts-iceberg/pom.xml | 2 +- .../legend-engine-external-language-java/pom.xml | 2 +- .../legend-engine-xt-javaGeneration-featureBased-pure/pom.xml | 2 +- .../legend-engine-xt-javaGeneration-pure/pom.xml | 2 +- .../legend-engine-xt-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-java/pom.xml | 2 +- .../legend-engine-external-format-jsonSchema/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-pure/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-test/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-model/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml | 2 +- legend-engine-xts-json/pom.xml | 2 +- .../legend-engine-xt-mastery-grammar/pom.xml | 2 +- .../legend-engine-xt-mastery-protocol/pom.xml | 2 +- .../legend-engine-xt-mastery-pure/pom.xml | 2 +- legend-engine-xts-mastery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml | 2 +- legend-engine-xts-mongodb/pom.xml | 2 +- .../legend-engine-xt-morphir-pure/pom.xml | 2 +- legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml | 2 +- legend-engine-xts-morphir/pom.xml | 2 +- .../legend-engine-xt-openapi-generation/pom.xml | 2 +- .../legend-engine-xt-openapi-pure/pom.xml | 2 +- legend-engine-xts-openapi/pom.xml | 2 +- .../legend-engine-xt-persistence-api/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-component/pom.xml | 2 +- .../legend-engine-xt-persistence-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-test-runner/pom.xml | 2 +- legend-engine-xts-persistence/pom.xml | 2 +- .../legend-engine-xt-protobuf-grammar/pom.xml | 2 +- .../legend-engine-xt-protobuf-protocol/pom.xml | 2 +- .../legend-engine-xt-protobuf-pure/pom.xml | 2 +- legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml | 4 ++-- legend-engine-xts-protobuf/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-analytics/pom.xml | 2 +- .../legend-engine-xt-relationalStore-connection/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-reports/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-server/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino/pom.xml | 2 +- .../legend-engine-xt-relationalStore-dbExtension/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-executionPlan/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-api/pom.xml | 2 +- .../legend-engine-xt-relationalStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-generation/pom.xml | 2 +- legend-engine-xts-relationalStore/pom.xml | 2 +- .../legend-engine-xt-relationalai-pure/pom.xml | 2 +- legend-engine-xts-relationalai/pom.xml | 2 +- .../legend-engine-xt-rosetta-pure/pom.xml | 2 +- legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml | 2 +- legend-engine-xts-rosetta/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-execution/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service/pom.xml | 2 +- .../legend-engine-service-post-validation-runner/pom.xml | 2 +- .../legend-engine-services-model-api/pom.xml | 2 +- .../legend-engine-services-model/pom.xml | 2 +- .../legend-engine-test-runner-service/pom.xml | 2 +- legend-engine-xts-service/pom.xml | 2 +- .../legend-engine-xt-serviceStore-executionPlan/pom.xml | 2 +- .../legend-engine-xt-serviceStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-serviceStore-protocol/pom.xml | 2 +- .../legend-engine-xt-serviceStore-pure/pom.xml | 2 +- legend-engine-xts-serviceStore/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-api/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-compiler/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-generator/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-grammar/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-protocol/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-pure/pom.xml | 2 +- legend-engine-xts-snowflakeApp/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml | 2 +- .../legend-engine-xt-sql-grammar-integration/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml | 2 +- .../legend-engine-xt-sql-postgres-server/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml | 2 +- .../legend-engine-xt-sql-providers-core/pom.xml | 2 +- .../legend-engine-xt-sql-providers-relationalStore/pom.xml | 2 +- .../legend-engine-xt-sql-providers-service/pom.xml | 2 +- .../legend-engine-xt-sql-providers-shared/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml | 2 +- .../legend-engine-xt-sql-pure-metamodel/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml | 2 +- legend-engine-xts-sql/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml | 2 +- .../legend-engine-xt-text-pure-metamodel/pom.xml | 2 +- legend-engine-xts-text/pom.xml | 2 +- .../legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml | 2 +- legend-engine-xts-xml/pom.xml | 2 +- pom.xml | 4 ++-- 381 files changed, 384 insertions(+), 384 deletions(-) diff --git a/legend-engine-application-query/pom.xml b/legend-engine-application-query/pom.xml index f3f9ce54406..bb03aeb5ee2 100644 --- a/legend-engine-application-query/pom.xml +++ b/legend-engine-application-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-application-query diff --git a/legend-engine-config/legend-engine-configuration/pom.xml b/legend-engine-config/legend-engine-configuration/pom.xml index 1e99fa115d2..28df6ed94c6 100644 --- a/legend-engine-config/legend-engine-configuration/pom.xml +++ b/legend-engine-config/legend-engine-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-configuration diff --git a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml index aa21451a549..edf71c58e3f 100644 --- a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-connection-integration-tests diff --git a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml index 14117fceaac..4ffa2eabe4b 100644 --- a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml index e8dc0dba737..a3d511b7b07 100644 --- a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml index 1ddf32aaee8..dd432220182 100644 --- a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml +++ b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-server-integration-tests/pom.xml b/legend-engine-config/legend-engine-server-integration-tests/pom.xml index 215edddcaeb..78d0408d4e6 100644 --- a/legend-engine-config/legend-engine-server-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-server-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-server-integration-tests diff --git a/legend-engine-config/legend-engine-server-support-core/pom.xml b/legend-engine-config/legend-engine-server-support-core/pom.xml index aeef2affd32..4672695fad1 100644 --- a/legend-engine-config/legend-engine-server-support-core/pom.xml +++ b/legend-engine-config/legend-engine-server-support-core/pom.xml @@ -3,7 +3,7 @@ legend-engine-config org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index f04b84f716d..b956012a347 100644 --- a/legend-engine-config/legend-engine-server/pom.xml +++ b/legend-engine-config/legend-engine-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-server diff --git a/legend-engine-config/pom.xml b/legend-engine-config/pom.xml index 7d4230e5607..d2a3324423d 100644 --- a/legend-engine-config/pom.xml +++ b/legend-engine-config/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml index 53592be706d..55ac3a9c503 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-executionPlan-dependencies diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml index 9db1ded4abe..c9c0dbf6e5c 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-executionPlan-execution-api diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml index 3ed67c53a45..a9f13d8503c 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-core-executionPlan-execution org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml index a7bdd2b6aec..a6cbac2a685 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-executionPlan-execution-store-inMemory diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml index 12e7456efcc..33d9f870f0f 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-executionPlan-execution diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml index 14d9b051c97..8dd99fc7531 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml index f00f3d79674..e89238ef348 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml index 1bc1b5eacbc..fcc8b919d03 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-generation - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml index 6ed90b73360..9f49d0c382b 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml index 6c63ecd82af..6816c6cd8c9 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml index cd59cd162aa..fa22a8877fe 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-language-pure-compiler-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml index 1aa37dd1919..6def711cfca 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-language-pure-compiler diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml index feb745f72b1..fc82c75821a 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-language-pure-grammar-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml index ca9f80cb234..e4a8e7c7e26 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-language-pure-grammar diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml index 658e135d9e6..e947e4c14a9 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-language-pure-modelManager-sdlc diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml index 7fc8ca92a64..169aa247d37 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-language-pure-modelManager diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml index 5b99eba871c..85e060ad736 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-protocol-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml index d80ef747710..83e038d9dcb 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-protocol-generation-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml index c906ad78dba..b03eb557810 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-protocol-generation diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml index bc86c3ee9c6..c68b16ee420 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-protocol-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml index 31147ec4669..50a72d4fc9b 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-protocol diff --git a/legend-engine-core/legend-engine-core-language-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/pom.xml index 323280e33a9..12cf6f35ad7 100644 --- a/legend-engine-core/legend-engine-core-language-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml index 705b8cb3f00..a9cb1c73fec 100644 --- a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-query-pure - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-query-pure diff --git a/legend-engine-core/legend-engine-core-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/pom.xml index e66a21efecf..eb6b21db161 100644 --- a/legend-engine-core/legend-engine-core-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml index afa99509df3..e6ae93d4fb8 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-shared-core diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml index 40a627ba3a3..7cd8db7b16e 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-shared-javaCompiler diff --git a/legend-engine-core/legend-engine-core-shared/pom.xml b/legend-engine-core/legend-engine-core-shared/pom.xml index ab26986cb81..d076e9be43f 100644 --- a/legend-engine-core/legend-engine-core-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml index dc8d3d8d01d..d632c7b18fb 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-core-test - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml index b89262ed394..2ab5c167e6a 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml index e75e48b76fe..7a67995a73d 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-test-runner-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml index e8b3d1a40a8..43fc2d7bb3b 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-test-server-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml index 375bf0e92c5..34a087e998c 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-testable diff --git a/legend-engine-core/legend-engine-core-test/pom.xml b/legend-engine-core/legend-engine-core-test/pom.xml index 863e012c147..d2844d6e885 100644 --- a/legend-engine-core/legend-engine-core-test/pom.xml +++ b/legend-engine-core/legend-engine-core-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/pom.xml b/legend-engine-core/pom.xml index c0baad77c08..0388b26a58f 100644 --- a/legend-engine-core/pom.xml +++ b/legend-engine-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml index 4a585d4d251..71750718aab 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.34.1 + 4.34.2-SNAPSHOT legend-engine-pure-code-compiled-core diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml index 1ad26ac024f..17efeac2ad8 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.34.1 + 4.34.2-SNAPSHOT legend-engine-pure-code-compiled-functions diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml index 36d81bbab45..598064a2d19 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.34.1 + 4.34.2-SNAPSHOT legend-engine-pure-code-core-extension diff --git a/legend-engine-pure/legend-engine-pure-code/pom.xml b/legend-engine-pure/legend-engine-pure-code/pom.xml index 3cc21c1cfb1..16ad1c6862a 100644 --- a/legend-engine-pure/legend-engine-pure-code/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml index 597f38d2ae6..ce1a469418d 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml index 3019eb0e1a1..aa70200bdb6 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml index e59498120b5..849c0127d1e 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/pom.xml b/legend-engine-pure/legend-engine-pure-ide/pom.xml index a8be63ab98b..0f208b65f40 100644 --- a/legend-engine-pure/legend-engine-pure-ide/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml index daa999d667b..8f027731596 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.34.1 + 4.34.2-SNAPSHOT legend-engine-pure-platform-dsl-diagram-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml index f4f5145b383..71756065ccc 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.34.1 + 4.34.2-SNAPSHOT legend-engine-pure-platform-dsl-graph-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml index cf2a2ffd9fe..08f1f0b9d1f 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.34.1 + 4.34.2-SNAPSHOT legend-engine-pure-platform-dsl-mapping-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml index 48896f15c45..627ee4c54ad 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.34.1 + 4.34.2-SNAPSHOT legend-engine-pure-platform-dsl-path-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml index 1ed8cb1e2d9..43e7320f396 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.34.1 + 4.34.2-SNAPSHOT legend-engine-pure-platform-functions-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml index 842c6d912d6..e95f15cd329 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.34.1 + 4.34.2-SNAPSHOT legend-engine-pure-platform-functions-json-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml index 8289204ccf3..ae2ed781a8c 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.34.1 + 4.34.2-SNAPSHOT legend-engine-pure-platform-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml index 9b15a210166..b07befaa647 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.34.1 + 4.34.2-SNAPSHOT legend-engine-pure-platform-store-relational-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml index fcbf5ad294f..2b33d896c2a 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml index 7bb159a4d76..c67558d55f0 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml index e23c6630cb5..f1ce433cf1c 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml index 04a3ac01891..3be4e37ebbd 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml index 850a576c711..69d9d1ab679 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.34.1 + 4.34.2-SNAPSHOT legend-engine-xt-java-runtime-compiler diff --git a/legend-engine-pure/legend-engine-pure-runtime/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/pom.xml index 6240431cc76..99f97c7e42e 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/pom.xml b/legend-engine-pure/pom.xml index c08af8cc536..ec63d9c6b7f 100644 --- a/legend-engine-pure/pom.xml +++ b/legend-engine-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml index 13c220579ec..c19fe07dc66 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml index 65027cd6d7b..d4bbf88e30f 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml index 47b2ebeabf0..554d50f5e71 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml index 79c5694c7ee..f735c4cf446 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml index 471224f25b5..ffd3366f8ea 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml index b982886e2f1..05041b75097 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml index e0e193f99d1..a20e12e77e3 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml index 375fb2f02af..f3fb4d388e0 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml index 041eb591b18..14435322a81 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml index 51be7dc89c6..72f78c6fdcb 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml index ca7ce1da64c..f5e18582cb3 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml index 9289b4639fb..b4dc00c3375 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml index e2a69b6dff7..2912444ec73 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 Legend Engine - XT - Analytics - Mapping - API diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml index 4c415d90e94..e76beea31ab 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-mapping - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 Legend Engine - XT - Analytics - Mapping - Protocol diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml index 38ab1b5bdf9..60a224801a7 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml index 398c84273c7..54fb9222af3 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml index 1e0429b5361..4c3f58f2cf4 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-search - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml index e7d67cb0b6c..6f0180ee944 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-search org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml index 0295b5751e8..5afadce0431 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml index 9132da7c322..932149d70ac 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-xt-analytics-store-entitlement-api diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml index 0c9ab51f06a..ebdb001fe31 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml index ea16e55a84b..0a9c1f1041d 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/pom.xml b/legend-engine-xts-analytics/pom.xml index 274deb7744f..df613251e4c 100644 --- a/legend-engine-xts-analytics/pom.xml +++ b/legend-engine-xts-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml index 45f0b5b4969..5dbb1ad043e 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml index fa5823f2ce8..498a3f7bbbc 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-arrow/pom.xml b/legend-engine-xts-arrow/pom.xml index c3fc7856f44..e10e29cd679 100644 --- a/legend-engine-xts-arrow/pom.xml +++ b/legend-engine-xts-arrow/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT legend-engine-xts-arrow diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml index f6f47946376..176059f064d 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml index 66403863a12..08435a5190b 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml index cc58e11f7d0..2757b26f6c2 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml index db1cc06546c..e3555bdef9f 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml index cf122115309..31dfa1e7fed 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml index f050d4a0825..fdda2c6301c 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml index f2f2fd9cf91..bd92da2aaee 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/pom.xml b/legend-engine-xts-authentication/pom.xml index 6adaf6604cf..f96b26771ca 100644 --- a/legend-engine-xts-authentication/pom.xml +++ b/legend-engine-xts-authentication/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml index 6a5d66825f1..e5f3d1fd34f 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml index 54ccdee39e6..78157a27480 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-avro/pom.xml b/legend-engine-xts-avro/pom.xml index 0a641885eca..273ce5d87e2 100644 --- a/legend-engine-xts-avro/pom.xml +++ b/legend-engine-xts-avro/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml index f9ec94d7e89..5db0877760c 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-changetoken org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml index 45fddd35b5c..45ff2855bdb 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-changetoken - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-changetoken/pom.xml b/legend-engine-xts-changetoken/pom.xml index 4e55d16c0ac..a2e4a4ac76d 100644 --- a/legend-engine-xts-changetoken/pom.xml +++ b/legend-engine-xts-changetoken/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml index 0cf4bb94213..fb30d6a3b5f 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml index d18a6b26d4c..a012dd4e7a6 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml index 2a9d850a36c..19642e9d150 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/pom.xml b/legend-engine-xts-daml/pom.xml index c1e807dc8b9..5b309d91201 100644 --- a/legend-engine-xts-daml/pom.xml +++ b/legend-engine-xts-daml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml index 1677ededdbb..daaae62fa44 100644 --- a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml +++ b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-data-push org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-push/pom.xml b/legend-engine-xts-data-push/pom.xml index 9576dfffc79..bc5d8afed41 100644 --- a/legend-engine-xts-data-push/pom.xml +++ b/legend-engine-xts-data-push/pom.xml @@ -3,7 +3,7 @@ legend-engine org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml index 0db8bdbee92..35dca704572 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml index 250a3648f43..b0af5015980 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-data-space org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml index babf77f7e18..76dd3d368ae 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml index bd4938753ee..876d162b1a9 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml index 6193c1f6872..367268e4090 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml index 4ddbd89ebc2..1bfca53a76e 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml index 90d72b0e35b..60feb7e0d8d 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/pom.xml b/legend-engine-xts-data-space/pom.xml index 6cad5d55574..26d5c4e28c2 100644 --- a/legend-engine-xts-data-space/pom.xml +++ b/legend-engine-xts-data-space/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml index 45cdf7c6001..cdb2b253885 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml index 4c533666716..883c2a525a9 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-diagram org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml index 9037f4d0b8e..62bb2233340 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml index cdf1acaff79..7b559833057 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml index 238b91ad506..2319fd9a30a 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml index d9066636dbf..6f66ee57078 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/pom.xml b/legend-engine-xts-diagram/pom.xml index 02fe623d945..55804f0b426 100644 --- a/legend-engine-xts-diagram/pom.xml +++ b/legend-engine-xts-diagram/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml index 750edde8905..b4738b877c5 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml index 78b7cdee3a8..452a57caa50 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml index 4dae2084fc8..f41da9a5f4b 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml index e94f87e95a5..6dd387ded48 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml index d510a9e97e8..bf5335edb08 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml index 9406a62bf42..5e504864620 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.34.1 + 4.34.2-SNAPSHOT legend-engine-xt-elasticsearch-protocol-utils diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml index 540e498f011..21c0cbdef18 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/pom.xml b/legend-engine-xts-elasticsearch/pom.xml index 0630902960b..eba00d176a1 100644 --- a/legend-engine-xts-elasticsearch/pom.xml +++ b/legend-engine-xts-elasticsearch/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml index 051818eaed2..bc277182be8 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-flatdata org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml index 56370fcc471..c4ba691eda0 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml index efd8831b9ca..849cfed2052 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml index 618cb22dfed..3d6b15a5306 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml index 47ad0e3484f..7960f5ea2c7 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml index d40fef9e20c..70bbbd67d43 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml index aa12842e7e6..6a7e31b96cb 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/pom.xml b/legend-engine-xts-flatdata/pom.xml index 3c25d9a6586..01bd7c06fab 100644 --- a/legend-engine-xts-flatdata/pom.xml +++ b/legend-engine-xts-flatdata/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml index 1b325aefb1d..ed702934641 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml index df7fde8ebc9..f9081a35cfe 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml index db31850e32f..1ce1fd60bae 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/pom.xml b/legend-engine-xts-functionActivator/pom.xml index 71cce1e6504..7011743576d 100644 --- a/legend-engine-xts-functionActivator/pom.xml +++ b/legend-engine-xts-functionActivator/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml index 77478dec518..efb54c1d3ce 100644 --- a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml +++ b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml index f34f21a10e3..9e192cc7881 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml index 0446f64739d..3b8f51acaa3 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-language-pure-dsl-generation diff --git a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml index a758abddb20..9ecaab33957 100644 --- a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml +++ b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-generation org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/pom.xml b/legend-engine-xts-generation/pom.xml index fd04448857d..ea4615dcb10 100644 --- a/legend-engine-xts-generation/pom.xml +++ b/legend-engine-xts-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml index 9d27026856c..ae2aa682389 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 @@ -73,7 +73,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.34.1 + 4.34.2-SNAPSHOT org.finos.legend.pure diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml index 6cc0b7477fc..8dbb63dcf29 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml index 6fe60a8ba29..12d7947dead 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml index 65a397613b3..fa5a01d7b5a 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml index a39f1b7871a..158200fbe02 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml index d5644f80de1..5dcab0fc003 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml index f8e4bec22a5..fa4bbd5c308 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml index 4191dee436d..297a5373b3a 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/pom.xml b/legend-engine-xts-graphQL/pom.xml index 619f8ab5415..5639104e595 100644 --- a/legend-engine-xts-graphQL/pom.xml +++ b/legend-engine-xts-graphQL/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml index 9abcde7b867..27645b56fb3 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml index c774819f2dc..3f931523f69 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml index eff083836b3..e56bde1d93c 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/pom.xml b/legend-engine-xts-haskell/pom.xml index 3da9230e8ab..3422a664b87 100644 --- a/legend-engine-xts-haskell/pom.xml +++ b/legend-engine-xts-haskell/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml index e20f74eb3df..25f4981983e 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml index cedd4d33dfa..7a7aec68fbf 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml index 55815d6ec10..4191bcca8e6 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml index f012812a42f..717a12fb278 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml index a3fd5f90dca..01b951754a8 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml index ebb42d08617..2d5878eb187 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/pom.xml b/legend-engine-xts-hostedService/pom.xml index 59dd16ecfaf..dd80e9bb97d 100644 --- a/legend-engine-xts-hostedService/pom.xml +++ b/legend-engine-xts-hostedService/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml index 4438ed97dbe..c9f0d92f300 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml index d49a94c1fbc..61824652559 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-iceberg/pom.xml b/legend-engine-xts-iceberg/pom.xml index 00e2b99dbc1..6e3b4e0f443 100644 --- a/legend-engine-xts-iceberg/pom.xml +++ b/legend-engine-xts-iceberg/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml index ade13582131..0675e30f64e 100644 --- a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml +++ b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml index fa13740e7d4..6097b5217b2 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml index b9a04d2f54e..a49c23ac0f2 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml index 9f2a4c523eb..e51e2999ee0 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/pom.xml b/legend-engine-xts-java/pom.xml index cd3af0f17d0..9c61d325582 100644 --- a/legend-engine-xts-java/pom.xml +++ b/legend-engine-xts-java/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml index 706243c2cfc..e6f9d0fec3e 100644 --- a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml +++ b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml index 3cdf59babe1..6be9ef6423c 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml index c62542d3f34..d6c97fad62f 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml index e1ec35d436a..f0a5a7657a1 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml index 169502cceda..aaca2170491 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml index f2660761f74..e078f10ef8c 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/pom.xml b/legend-engine-xts-json/pom.xml index 58945337b55..1364eb3cd6d 100644 --- a/legend-engine-xts-json/pom.xml +++ b/legend-engine-xts-json/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml index a4a6e86b4a5..b1b0cdf44c6 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-mastery org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml index 086a1bc825a..dfa6c67a863 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml index 278482e77cf..0e8acdf9680 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/pom.xml b/legend-engine-xts-mastery/pom.xml index a76375a73a4..2501c957014 100644 --- a/legend-engine-xts-mastery/pom.xml +++ b/legend-engine-xts-mastery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml index c49ae7852bc..a109a7b0965 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml index 0c5d2588c96..ccef420ecd6 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.34.1 + 4.34.2-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-executionPlan diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml index 87ed42c8d04..f18893fe567 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.34.1 + 4.34.2-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-grammar-integration diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml index 0a907471488..d4ed80b9178 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.34.1 + 4.34.2-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-grammar diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml index d0364870cb8..456f8d9546e 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.34.1 + 4.34.2-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml index a248b952e1b..4b96adac284 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.34.1 + 4.34.2-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-protocol diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml index 23c1702fc16..456ab15b9d4 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.34.1 + 4.34.2-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-pure diff --git a/legend-engine-xts-mongodb/pom.xml b/legend-engine-xts-mongodb/pom.xml index a798829e985..970c19b78ce 100644 --- a/legend-engine-xts-mongodb/pom.xml +++ b/legend-engine-xts-mongodb/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml index 6e6ec624a1a..3cbb795de6a 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-morphir - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml index f81bf7df804..08f9db8693c 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-morphir org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-morphir/pom.xml b/legend-engine-xts-morphir/pom.xml index b426c30bd51..2fe4a02c33a 100644 --- a/legend-engine-xts-morphir/pom.xml +++ b/legend-engine-xts-morphir/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml index 324ad116b25..acffcb67688 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.34.1 + 4.34.2-SNAPSHOT legend-engine-xt-openapi-generation diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml index cd026ecd3ca..f64462a2770 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.34.1 + 4.34.2-SNAPSHOT legend-engine-xt-openapi-pure diff --git a/legend-engine-xts-openapi/pom.xml b/legend-engine-xts-openapi/pom.xml index 401d892368f..4175d65c431 100644 --- a/legend-engine-xts-openapi/pom.xml +++ b/legend-engine-xts-openapi/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml index f24b78f03e0..5c3bb925c3a 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml index 9e28b1f7009..dd30da91eaa 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml index d95244e0695..5f3a18d7343 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml index 556eacf860b..89f0044ba5f 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml index f87543a5237..303efa2780c 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml index 7022a181098..701391db906 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml index 5226e559a9a..922722140cd 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml index b8d08a1f838..6b07ec83b8f 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml index c01136dd691..a1f9861c439 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml index 14ace231e62..9cc6502f88c 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml index 10a8ee19e5d..efd5c916a1e 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml index 41320cff530..cdb37b9e1d2 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml index 731072d44f6..f47b6a09a11 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml index 93d662593be..44b9077327f 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml index 180600a718d..b86263b24f8 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml index bfa6d6d8bfc..a5710eab6c6 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml index 7d7e5158152..447135f9360 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml index 229733d49c8..265ba3bb79c 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml index 87e6b2d5dc7..8c7b13e5f5d 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml index a8eef31ade7..3ae6100ca42 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml index 3e9651d1cb0..9c3abf0541d 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/pom.xml b/legend-engine-xts-persistence/pom.xml index c0d90475bdb..bd0732f6bae 100644 --- a/legend-engine-xts-persistence/pom.xml +++ b/legend-engine-xts-persistence/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml index 43ce55b65be..07bae6f1ef6 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-xt-protobuf-grammar diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml index 35b5279106c..81edd675181 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-xt-protobuf-protocol diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml index 006c9d2bb52..adc9737d3c0 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml index 5ef6279058e..e31dae2ba31 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 @@ -57,7 +57,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.34.1 + 4.34.2-SNAPSHOT org.finos.legend.pure diff --git a/legend-engine-xts-protobuf/pom.xml b/legend-engine-xts-protobuf/pom.xml index 198332d1d49..932a85cc8c1 100644 --- a/legend-engine-xts-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml index f2ca8cb30cf..22dc8b6a38c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml index 9a778d2692f..c706d1014ed 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml index eb5166d3561..5794092a5a8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml index f3706ee4e5c..93e9f025d61 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml index d4b77bf5d89..a88c927dcd7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml index 3fdf78eafd6..e0104604d8a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml index 7bddec5b75c..9c3a6a035af 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml index 3a8a205a9aa..6f08aad911b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml index 67126544ab0..43cd120c643 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml index ee31f048779..d43833aa9af 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml index 5a8e77b1e92..6eb4711dd55 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-bigquery org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml index a930601fb2d..3d2b5d5fa8e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml index 07f4fa94c8d..4aa435f76ef 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml index 3975f115ffb..89a90ce6092 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml index 20d5ccdda51..c5a57509ae5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml index e9661c0546e..b0969b2202e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml index 7836c64436a..46a5980a376 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml index e5cc46a5da2..f434dd81b5a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml index ec3e6a7c6a1..aa53fa5a6e7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml index ae96dfd6c16..fd07d4448b7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml index c1ffda3396e..2d507e9cf60 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml index c1135bcecb3..6696de16099 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml index 5b907046080..af5b5316ca3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-dbExtension org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml index 517edecdb90..35d99c04b6b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-hive - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml index 2fd0a097be4..26fbe53ff0e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml index da61c359393..9ace4ba2e61 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml index 5fa9c008a15..14ce374f6f9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-memsql org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml index 64c2a1f8e87..e2361489d45 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.34.1 + 4.34.2-SNAPSHOT legend-engine-xt-relationalStore-memsql-execution diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml index cbd8f7b065c..5d6bfab576b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.34.1 + 4.34.2-SNAPSHOT legend-engine-xt-relationalStore-memsql-pure diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml index d56cee98745..a4b85de836c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml index 1060fa57854..dda873a163a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml index 03d171e8987..31703a543db 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml index 499a1404df9..84d3450f4e9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml index 91fcfcbcf58..04848ea989a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml index ca823211bea..c10710743f3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml index b7d02ac908e..0e19d4ac42d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml index d6c8febb7ab..1445f2a1b6c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-presto - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml index 1ce2a160a70..ac3310122a8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml index ab0f12a8db7..3834fc37f5c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml index be9feddbb2d..56bd7949863 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml index 966b2355927..b4e886ad1ed 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml index 7eb476c3b66..72df8bc5f6f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml index 09458b0f1ab..8283b234d75 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml index 1e003bf1b13..e7dc6de6bcb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml index 4fa673ad0c8..8227dcf08a9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml index 7075f23510a..5a037b3385b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml index aac3a462c1c..f5fa96b4745 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml index 9b11a211388..5226e93cdaf 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml index d0e40c52270..04e7a6f1de9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml index 2c1b21d3446..5a6de5666ac 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml index 4dde9804dce..8505d1eebe6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml index 47f095b8e7c..8998bcf3956 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml index 3ee8aea58a0..e0b5e772d8d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml index fc019e32697..5d817896b11 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml index 72821139a84..cc2b70ab94e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml index b81bc263a9f..5c9107f15a0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml index 0e2cd46bf8e..f489d8d5f22 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml index f83415d9640..855ba3a4951 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml index 1f45729a9ab..2751affe9c0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sparksql - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml index a05292ad0fe..45aa1f7a424 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml index 88b9e692eca..0b2d6ccd85c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml index 3253f51b4f5..665c58e8493 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-sqlserver-execution-tests diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml index 496fd09ac3f..897efda6cab 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml index c62eac564ba..8d6ea28be47 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml index 5c9937e3092..6e25023b3a1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml index 3ec932f1c0f..64bd64b5043 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybase - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml index 0eec4768d26..05fa2cbb498 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml index 8580d106d52..5f867ac0678 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybaseiq - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml index 7cfab2a8ded..61ed2c19250 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml index f42d088dbad..a0e45d4f3fe 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-test-reports diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml index 6f277ba5306..a67e3dc632f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-test-server diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml index 505935313a5..658128af42d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml index a034fc8f3bb..80d4a46450f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml index a66055ad3b0..12a016a4b16 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml index b4fed2682b3..9aede18cfd9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml index fa78e17683a..79acf0270a8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml index 6e8a5d903e4..d6545751c25 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml index bd5f50269f7..cea9a457628 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml index af9b1e58631..746b0abf1f8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml index 64984fde965..027b5b30b6a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml index c6bd9e95625..365d7a11182 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication-default diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml index 187bf5690cb..728c56f8290 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml index c21e8c654d5..42e652184cc 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 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 6b5d18ccc0f..fe8c73080f8 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 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 e070143d443..f82a7146615 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml index 45a8ab25342..614aa421120 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml index f16224e2f90..1491b98bf11 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml index a80c79c2843..c432609ca4a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml index 773e1db8b5a..70d89245141 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml index 5bdf2c91285..e4777eca645 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml index 56269698c47..74adbdcdab4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml index 5dbd92e1d96..116ffec5cec 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml index 03d6cbb7f85..80668370e39 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml index 319123b7e23..280966f1b33 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/pom.xml b/legend-engine-xts-relationalStore/pom.xml index f058d0357f2..23ee3fc4c36 100644 --- a/legend-engine-xts-relationalStore/pom.xml +++ b/legend-engine-xts-relationalStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml index deb584c6fe9..59757930f41 100644 --- a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalai - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalai/pom.xml b/legend-engine-xts-relationalai/pom.xml index c0b697142bf..30fb21ce312 100644 --- a/legend-engine-xts-relationalai/pom.xml +++ b/legend-engine-xts-relationalai/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml index 8aca57a8d78..82f6e2ecaeb 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml index d1f30c809c5..27d7898c2b0 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-rosetta/pom.xml b/legend-engine-xts-rosetta/pom.xml index f759b14d6e9..c9992a4520c 100644 --- a/legend-engine-xts-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml index c25798e1550..0acceb67ad9 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-language-pure-dsl-service-execution diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml index 65b70279849..e5752c9752c 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml index d3139fd8c08..1f5d6181c36 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml index beaf414e8ab..48001cd11a0 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-language-pure-dsl-service diff --git a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml index ca8dc32481e..7c5117bd2ce 100644 --- a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml +++ b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml index 87c37d41c7a..ed65c2ec2f2 100644 --- a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-services-model-api diff --git a/legend-engine-xts-service/legend-engine-services-model/pom.xml b/legend-engine-xts-service/legend-engine-services-model/pom.xml index 83e0ee0ed34..542bedd5061 100644 --- a/legend-engine-xts-service/legend-engine-services-model/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 legend-engine-services-model diff --git a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml index 2c814592407..4b442a736e6 100644 --- a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/pom.xml b/legend-engine-xts-service/pom.xml index 99451f4e478..bb22fc14e94 100644 --- a/legend-engine-xts-service/pom.xml +++ b/legend-engine-xts-service/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml index e0e1e2b8132..959c165b502 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml index a41119a0d14..01630596b70 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml index 0164d2afe50..15109846211 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml index b81d108f581..d60b06ab76e 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml index ad98d48052a..7b20f9f2b11 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/pom.xml b/legend-engine-xts-serviceStore/pom.xml index c943764b681..f11a7a7ddfe 100644 --- a/legend-engine-xts-serviceStore/pom.xml +++ b/legend-engine-xts-serviceStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml index 4cd8f17d96c..011c3413f1d 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml index c924cb0d8ff..89d57229a16 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-snowflakeApp org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml index ed0b9b55966..daca162fb29 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml index 42051e39c57..9222e195fb3 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml index 4c30369e964..922e151970d 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml index 5cb235d296b..641a58b438f 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/pom.xml b/legend-engine-xts-snowflakeApp/pom.xml index ea78ba31ccf..e7bfbfb1a5a 100644 --- a/legend-engine-xts-snowflakeApp/pom.xml +++ b/legend-engine-xts-snowflakeApp/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml index 5ed6ae1c22c..29c10f7c956 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml index 654f18e60c9..b9e747548fd 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml index 1bbc2c00db2..5e993d4f8f4 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml index 148393d74f8..62287e979d3 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-sql org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml index b94fe49d588..aa8defd68e7 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml index 75d9f215c19..99d8891a361 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml index a9f65c2f4e9..ad2d483e49b 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml index 83e9586672d..91e169462bd 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml index a29c9010e8f..591e4d54429 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml index 71d35895e58..cd332de6f3c 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml index 845a8b930b8..3c956cec836 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml index 8498ada4f26..5dc87160c3e 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml index fedf3945f10..448c1f7eef6 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/pom.xml b/legend-engine-xts-sql/pom.xml index 1f2ce94162a..f1491eafea8 100644 --- a/legend-engine-xts-sql/pom.xml +++ b/legend-engine-xts-sql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml index 354aaa93470..21d83822fa9 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-text org.finos.legend.engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml index 886605fcb14..753e325b409 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml index b576db0dafa..92655091d54 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml index 8b1dacc0793..60eaeb47d22 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/pom.xml b/legend-engine-xts-text/pom.xml index b9c01f14094..d343ca72437 100644 --- a/legend-engine-xts-text/pom.xml +++ b/legend-engine-xts-text/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml index 9e69c5352da..3223f121878 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml index ff8c7b8f0f0..5840af32033 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml index 40cf21087fa..47bbdc5c08a 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml index dd82a8d57d6..94688cbd4ce 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml index 898b81e8082..3c5d6d8167e 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/pom.xml b/legend-engine-xts-xml/pom.xml index 9eb7721b78a..fb71e32539d 100644 --- a/legend-engine-xts-xml/pom.xml +++ b/legend-engine-xts-xml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT 4.0.0 diff --git a/pom.xml b/pom.xml index 49a13f1b164..193a972c958 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ Legend Engine org.finos.legend.engine legend-engine - 4.34.1 + 4.34.2-SNAPSHOT pom @@ -228,7 +228,7 @@ scm:git:https://github.com/finos/legend-engine - legend-engine-4.34.1 + HEAD From 68b9a0953b39a81d97657f34b6493c95ed0b837b Mon Sep 17 00:00:00 2001 From: gs-jp1 <80327721+gs-jp1@users.noreply.github.com> Date: Wed, 1 Nov 2023 14:39:06 +0000 Subject: [PATCH 62/80] Legend SQL - fix orderby on extend column (#2426) --- .../binding/fromPure/fromPure.pure | 13 +++++++----- .../binding/fromPure/tests/testTranspile.pure | 20 +++++++++++++++++++ 2 files changed, 28 insertions(+), 5 deletions(-) diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/fromPure.pure b/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/fromPure.pure index 0c15c50e26e..abd47b01d01 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/fromPure.pure +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/fromPure.pure @@ -242,11 +242,12 @@ function <> meta::external::query::sql::transformation::queryToP //need to subnest the context let fromContext = if ($from.root || $from.name == $context.name, | $from, | ^$context(contexts = ^$from(contexts = []), expression = $from.expression)); + let projection = $querySpec.select->processProjection($querySpec.groupBy, $querySpec.having, $querySpec.orderBy.sortKey, $querySpec.where->processWhere($fromContext)); let query = $querySpec.limit->processLimitOffset($querySpec.offset, - $querySpec.orderBy->processOrderBy($querySpec.select.selectItems, - $querySpec.having->processHaving($querySpec.select, - $querySpec.select->processProjection($querySpec.groupBy, $querySpec.having, $querySpec.orderBy.sortKey, $querySpec.where->processWhere($fromContext)) + $querySpec.orderBy->processOrderBy($projection.second.selectItems, + $querySpec.having->processHaving($projection.second, + $projection.first ) ) ); @@ -312,7 +313,7 @@ function <> meta::external::query::sql::transformation::queryToP } -function <> meta::external::query::sql::transformation::queryToPure::processProjection(originalSelect: Select[1], groupBy: meta::external::query::sql::metamodel::Expression[*], having:meta::external::query::sql::metamodel::Expression[0..1], orderBy:meta::external::query::sql::metamodel::Expression[*], context: SqlTransformContext[1]): SqlTransformContext[1] +function <> meta::external::query::sql::transformation::queryToPure::processProjection(originalSelect: Select[1], groupBy: meta::external::query::sql::metamodel::Expression[*], having:meta::external::query::sql::metamodel::Expression[0..1], orderBy:meta::external::query::sql::metamodel::Expression[*], context: SqlTransformContext[1]): Pair[1] { debug('processProjection', $context.debug); @@ -377,7 +378,7 @@ function <> meta::external::query::sql::transformation::queryToP | appendTdsFunc($olapGroupBy, distinct_TabularDataSet_1__TabularDataSet_1_, []), | $olapGroupBy); - ^$context(expression = $distinctExp, aliases = $aliases); + pair(^$context(expression = $distinctExp, aliases = $aliases), $select); } function <> meta::external::query::sql::transformation::queryToPure::extractColumnNameFromExpression(expression:meta::external::query::sql::metamodel::Expression[1], selectItems: SelectItem[*], context: SqlTransformContext[1]):String[1] @@ -890,6 +891,7 @@ function <> meta::external::query::sql::transformation::queryToP function <> meta::external::query::sql::transformation::queryToPure::processOrderBy(sortItems: meta::external::query::sql::metamodel::SortItem[*], selectItems:SelectItem[*], context: SqlTransformContext[1]): SqlTransformContext[1] { debug('processOrderBy', $context.debug); + let sortInformation = $sortItems->map(si| createSortItemFunction($si, $selectItems, $context)); let newExp = if ($sortInformation->isEmpty(), @@ -909,6 +911,7 @@ function <> meta::external::query::sql::transformation::queryToP assert($si.nullOrdering == SortItemNullOrdering.UNDEFINED, 'null ordering type not yet supported'); let column = extractColumnNameFromExpression($si.sortKey, $selectItems, $context); + let sortFunc = [ pair(SortItemOrdering.ASCENDING, asc_String_1__SortInformation_1_), pair(SortItemOrdering.DESCENDING, desc_String_1__SortInformation_1_) diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/tests/testTranspile.pure b/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/tests/testTranspile.pure index a2dbd301beb..51b191d6194 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/tests/testTranspile.pure +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/tests/testTranspile.pure @@ -480,6 +480,26 @@ function <> meta::external::query::sql::transformation::queryToPure:: }) } +function <> meta::external::query::sql::transformation::queryToPure::tests::testOrderByWithExtendAlias():Boolean[1] +{ + test( + 'SELECT Calc AS Calc, Calc AS Calc2 FROM (select 1 AS Calc from service."/service/service1") GROUP BY 1 ORDER BY 1, Calc2 ASC', + + {| FlatInput.all()->project( + [ x | $x.booleanIn, x | $x.integerIn, x | $x.floatIn, x | $x.decimalIn, x | $x.strictDateIn, x | $x.dateTimeIn, x | $x.stringIn ], + [ 'Boolean', 'Integer', 'Float', 'Decimal', 'StrictDate', 'DateTime', 'String' ]) + ->project(col(row:TDSRow[1] | 1, 'Calc')) + ->extend([ + col(row:TDSRow[1] | $row.getInteger('Calc'), 'Calc_1'), + col(row:TDSRow[1] | $row.getInteger('Calc'), 'Calc2') + ]) + ->restrict(['Calc_1', 'Calc2']) + ->distinct() + ->sort([asc('Calc_1'), asc('Calc2')]) + ->renameColumns(pair('Calc_1', 'Calc')) + }) +} + //WHERE function <> meta::external::query::sql::transformation::queryToPure::tests::testWhere():Boolean[1] { From 819c85c1d8555a11d9acd601b2418b262c17a0df Mon Sep 17 00:00:00 2001 From: FINOS Administrator <37706051+finos-admin@users.noreply.github.com> Date: Wed, 1 Nov 2023 17:12:08 +0000 Subject: [PATCH 63/80] [maven-release-plugin] prepare release legend-engine-4.33.2 --- legend-engine-application-query/pom.xml | 2 +- legend-engine-config/legend-engine-configuration/pom.xml | 2 +- .../legend-engine-connection-integration-tests/pom.xml | 2 +- .../legend-engine-extensions-collection-execution/pom.xml | 2 +- .../legend-engine-extensions-collection-generation/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-server-integration-tests/pom.xml | 2 +- .../legend-engine-server-support-core/pom.xml | 2 +- legend-engine-config/legend-engine-server/pom.xml | 2 +- legend-engine-config/pom.xml | 2 +- .../legend-engine-executionPlan-dependencies/pom.xml | 2 +- .../legend-engine-executionPlan-execution-api/pom.xml | 2 +- .../legend-engine-executionPlan-execution-authorizer/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-executionPlan-execution/pom.xml | 2 +- .../legend-engine-external-shared-format-runtime/pom.xml | 2 +- .../legend-engine-core-executionPlan-execution/pom.xml | 2 +- .../legend-engine-executionPlan-generation/pom.xml | 2 +- .../legend-engine-core-executionPlan-generation/pom.xml | 2 +- .../legend-engine-external-shared-format-model/pom.xml | 2 +- .../legend-engine-language-pure-compiler-api/pom.xml | 2 +- .../legend-engine-language-pure-compiler/pom.xml | 2 +- .../legend-engine-language-pure-grammar-api/pom.xml | 2 +- .../legend-engine-language-pure-grammar/pom.xml | 2 +- .../legend-engine-language-pure-modelManager-sdlc/pom.xml | 2 +- .../legend-engine-language-pure-modelManager/pom.xml | 2 +- .../legend-engine-protocol-api/pom.xml | 2 +- .../legend-engine-protocol-generation-pure/pom.xml | 2 +- .../legend-engine-protocol-generation/pom.xml | 2 +- .../legend-engine-protocol-pure/pom.xml | 2 +- .../legend-engine-protocol/pom.xml | 2 +- legend-engine-core/legend-engine-core-language-pure/pom.xml | 2 +- .../legend-engine-query-pure/pom.xml | 2 +- legend-engine-core/legend-engine-core-query-pure/pom.xml | 2 +- .../legend-engine-shared-core/pom.xml | 2 +- .../legend-engine-shared-javaCompiler/pom.xml | 2 +- legend-engine-core/legend-engine-core-shared/pom.xml | 2 +- .../legend-engine-test-data-generation/pom.xml | 2 +- .../legend-engine-test-runner-mapping/pom.xml | 2 +- .../legend-engine-test-runner-shared/pom.xml | 2 +- .../legend-engine-test-server-shared/pom.xml | 2 +- .../legend-engine-core-test/legend-engine-testable/pom.xml | 2 +- legend-engine-core/legend-engine-core-test/pom.xml | 2 +- legend-engine-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-functions/pom.xml | 2 +- .../legend-engine-pure-code-core-extension/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-code/pom.xml | 2 +- .../legend-engine-pure-ide-light-metadata-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-ide/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-diagram-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-graph-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-mapping-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-path-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-json-java/pom.xml | 2 +- .../legend-engine-pure-platform-java/pom.xml | 2 +- .../legend-engine-pure-platform-store-relational-java/pom.xml | 2 +- .../legend-engine-pure-platform-modular-generation/pom.xml | 2 +- .../legend-engine-pure-runtime-compiler/pom.xml | 2 +- .../legend-engine-pure-runtime-execution/pom.xml | 2 +- .../legend-engine-pure-runtime-extensions/pom.xml | 2 +- .../legend-engine-xt-java-runtime-compiler/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-runtime/pom.xml | 2 +- legend-engine-pure/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-api/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-binding/pom.xml | 2 +- .../legend-engine-xt-analytics-class-api/pom.xml | 2 +- .../legend-engine-xt-analytics-class-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-class/pom.xml | 2 +- .../legend-engine-xt-analytics-function-api/pom.xml | 2 +- .../legend-engine-xt-analytics-function-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-function/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-api/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-lineage/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-api/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-protocol/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-mapping/pom.xml | 2 +- .../legend-engine-xt-analytics-search-generation/pom.xml | 2 +- .../legend-engine-xt-analytics-search-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-search/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement-api/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement/pom.xml | 2 +- .../legend-engine-xts-analytics-store/pom.xml | 2 +- legend-engine-xts-analytics/pom.xml | 2 +- legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml | 2 +- .../legend-engine-xt-arrow-runtime/pom.xml | 2 +- legend-engine-xts-arrow/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-protocol/pom.xml | 2 +- .../legend-engine-xt-authentication-pure/pom.xml | 2 +- legend-engine-xts-authentication/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro/pom.xml | 2 +- legend-engine-xts-avro/pom.xml | 2 +- .../legend-engine-xt-changetoken-compiler/pom.xml | 2 +- .../legend-engine-xt-changetoken-pure/pom.xml | 2 +- legend-engine-xts-changetoken/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml | 2 +- legend-engine-xts-daml/pom.xml | 2 +- .../legend-engine-xt-data-push-server/pom.xml | 2 +- legend-engine-xts-data-push/pom.xml | 2 +- .../legend-engine-xt-data-space-api/pom.xml | 2 +- .../legend-engine-xt-data-space-compiler/pom.xml | 2 +- .../legend-engine-xt-data-space-generation/pom.xml | 2 +- .../legend-engine-xt-data-space-grammar/pom.xml | 2 +- .../legend-engine-xt-data-space-protocol/pom.xml | 2 +- .../legend-engine-xt-data-space-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-data-space-pure/pom.xml | 2 +- legend-engine-xts-data-space/pom.xml | 2 +- .../legend-engine-xt-diagram-api/pom.xml | 2 +- .../legend-engine-xt-diagram-compiler/pom.xml | 2 +- .../legend-engine-xt-diagram-grammar/pom.xml | 2 +- .../legend-engine-xt-diagram-protocol/pom.xml | 2 +- .../legend-engine-xt-diagram-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-diagram-pure/pom.xml | 2 +- legend-engine-xts-diagram/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-grammar/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-protocol/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-executionPlan-test/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-protocol-utils/pom.xml | 2 +- .../pom.xml | 2 +- legend-engine-xts-elasticsearch/pom.xml | 2 +- .../legend-engine-xt-flatdata-driver-bloomberg/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-flatdata-model/pom.xml | 2 +- .../legend-engine-xt-flatdata-pure/pom.xml | 2 +- .../legend-engine-xt-flatdata-runtime/pom.xml | 2 +- .../legend-engine-xt-flatdata-shared/pom.xml | 2 +- legend-engine-xts-flatdata/pom.xml | 2 +- .../legend-engine-xt-functionActivator-api/pom.xml | 2 +- .../legend-engine-xt-functionActivator-protocol/pom.xml | 2 +- .../legend-engine-xt-functionActivator-pure/pom.xml | 2 +- legend-engine-xts-functionActivator/pom.xml | 2 +- .../legend-engine-external-shared/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation/pom.xml | 2 +- .../legend-engine-xt-artifact-generation-api/pom.xml | 2 +- legend-engine-xts-generation/pom.xml | 2 +- .../legend-engine-xt-graphQL-compiler/pom.xml | 4 ++-- .../legend-engine-xt-graphQL-grammar-integration/pom.xml | 2 +- .../legend-engine-xt-graphQL-grammar/pom.xml | 2 +- .../legend-engine-xt-graphQL-protocol/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure/pom.xml | 2 +- .../legend-engine-xt-graphQL-query/pom.xml | 2 +- .../legend-engine-xt-graphQL-relational-extension/pom.xml | 2 +- legend-engine-xts-graphQL/pom.xml | 2 +- .../legend-engine-xt-haskell-grammar/pom.xml | 2 +- .../legend-engine-xt-haskell-protocol/pom.xml | 2 +- .../legend-engine-xt-haskell-pure/pom.xml | 2 +- legend-engine-xts-haskell/pom.xml | 2 +- .../legend-engine-xt-hostedService-api/pom.xml | 2 +- .../legend-engine-xt-hostedService-compiler/pom.xml | 2 +- .../legend-engine-xt-hostedService-generation/pom.xml | 2 +- .../legend-engine-xt-hostedService-grammar/pom.xml | 2 +- .../legend-engine-xt-hostedService-protocol/pom.xml | 2 +- .../legend-engine-xt-hostedService-pure/pom.xml | 2 +- legend-engine-xts-hostedService/pom.xml | 2 +- .../legend-engine-xt-iceberg-pure/pom.xml | 2 +- .../legend-engine-xt-iceberg-test-support/pom.xml | 2 +- legend-engine-xts-iceberg/pom.xml | 2 +- .../legend-engine-external-language-java/pom.xml | 2 +- .../legend-engine-xt-javaGeneration-featureBased-pure/pom.xml | 2 +- .../legend-engine-xt-javaGeneration-pure/pom.xml | 2 +- .../legend-engine-xt-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-java/pom.xml | 2 +- .../legend-engine-external-format-jsonSchema/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-pure/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-test/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-model/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml | 2 +- legend-engine-xts-json/pom.xml | 2 +- .../legend-engine-xt-mastery-grammar/pom.xml | 2 +- .../legend-engine-xt-mastery-protocol/pom.xml | 2 +- .../legend-engine-xt-mastery-pure/pom.xml | 2 +- legend-engine-xts-mastery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml | 2 +- legend-engine-xts-mongodb/pom.xml | 2 +- .../legend-engine-xt-morphir-pure/pom.xml | 2 +- legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml | 2 +- legend-engine-xts-morphir/pom.xml | 2 +- .../legend-engine-xt-openapi-generation/pom.xml | 2 +- .../legend-engine-xt-openapi-pure/pom.xml | 2 +- legend-engine-xts-openapi/pom.xml | 2 +- .../legend-engine-xt-persistence-api/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-component/pom.xml | 2 +- .../legend-engine-xt-persistence-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-test-runner/pom.xml | 2 +- legend-engine-xts-persistence/pom.xml | 2 +- .../legend-engine-xt-protobuf-grammar/pom.xml | 2 +- .../legend-engine-xt-protobuf-protocol/pom.xml | 2 +- .../legend-engine-xt-protobuf-pure/pom.xml | 2 +- legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml | 4 ++-- legend-engine-xts-protobuf/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-analytics/pom.xml | 2 +- .../legend-engine-xt-relationalStore-connection/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-reports/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-server/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino/pom.xml | 2 +- .../legend-engine-xt-relationalStore-dbExtension/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-executionPlan/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-api/pom.xml | 2 +- .../legend-engine-xt-relationalStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-generation/pom.xml | 2 +- legend-engine-xts-relationalStore/pom.xml | 2 +- .../legend-engine-xt-relationalai-pure/pom.xml | 2 +- legend-engine-xts-relationalai/pom.xml | 2 +- .../legend-engine-xt-rosetta-pure/pom.xml | 2 +- legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml | 2 +- legend-engine-xts-rosetta/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-execution/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service/pom.xml | 2 +- .../legend-engine-service-post-validation-runner/pom.xml | 2 +- .../legend-engine-services-model-api/pom.xml | 2 +- .../legend-engine-services-model/pom.xml | 2 +- .../legend-engine-test-runner-service/pom.xml | 2 +- legend-engine-xts-service/pom.xml | 2 +- .../legend-engine-xt-serviceStore-executionPlan/pom.xml | 2 +- .../legend-engine-xt-serviceStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-serviceStore-protocol/pom.xml | 2 +- .../legend-engine-xt-serviceStore-pure/pom.xml | 2 +- legend-engine-xts-serviceStore/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-api/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-compiler/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-generator/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-grammar/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-protocol/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-pure/pom.xml | 2 +- legend-engine-xts-snowflakeApp/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml | 2 +- .../legend-engine-xt-sql-grammar-integration/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml | 2 +- .../legend-engine-xt-sql-postgres-server/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml | 2 +- .../legend-engine-xt-sql-providers-core/pom.xml | 2 +- .../legend-engine-xt-sql-providers-relationalStore/pom.xml | 2 +- .../legend-engine-xt-sql-providers-service/pom.xml | 2 +- .../legend-engine-xt-sql-providers-shared/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml | 2 +- .../legend-engine-xt-sql-pure-metamodel/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml | 2 +- legend-engine-xts-sql/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml | 2 +- .../legend-engine-xt-text-pure-metamodel/pom.xml | 2 +- legend-engine-xts-text/pom.xml | 2 +- .../legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml | 2 +- legend-engine-xts-xml/pom.xml | 2 +- pom.xml | 4 ++-- 381 files changed, 384 insertions(+), 384 deletions(-) diff --git a/legend-engine-application-query/pom.xml b/legend-engine-application-query/pom.xml index bb03aeb5ee2..5407a6554be 100644 --- a/legend-engine-application-query/pom.xml +++ b/legend-engine-application-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-application-query diff --git a/legend-engine-config/legend-engine-configuration/pom.xml b/legend-engine-config/legend-engine-configuration/pom.xml index 28df6ed94c6..9b7a38f49f0 100644 --- a/legend-engine-config/legend-engine-configuration/pom.xml +++ b/legend-engine-config/legend-engine-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-configuration diff --git a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml index edf71c58e3f..46b92ea2f80 100644 --- a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-connection-integration-tests diff --git a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml index 4ffa2eabe4b..1da04e1df3e 100644 --- a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml index a3d511b7b07..da796488c6f 100644 --- a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml index dd432220182..984b64cc697 100644 --- a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml +++ b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-config/legend-engine-server-integration-tests/pom.xml b/legend-engine-config/legend-engine-server-integration-tests/pom.xml index 78d0408d4e6..b7ac53715c2 100644 --- a/legend-engine-config/legend-engine-server-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-server-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-server-integration-tests diff --git a/legend-engine-config/legend-engine-server-support-core/pom.xml b/legend-engine-config/legend-engine-server-support-core/pom.xml index 4672695fad1..9674ce5e2e9 100644 --- a/legend-engine-config/legend-engine-server-support-core/pom.xml +++ b/legend-engine-config/legend-engine-server-support-core/pom.xml @@ -3,7 +3,7 @@ legend-engine-config org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index b956012a347..aafdfc6d2ab 100644 --- a/legend-engine-config/legend-engine-server/pom.xml +++ b/legend-engine-config/legend-engine-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-server diff --git a/legend-engine-config/pom.xml b/legend-engine-config/pom.xml index d2a3324423d..9906ed4d014 100644 --- a/legend-engine-config/pom.xml +++ b/legend-engine-config/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml index 55ac3a9c503..96bfd69166f 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-executionPlan-dependencies diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml index c9c0dbf6e5c..dae4714f1e6 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-executionPlan-execution-api diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml index a9f13d8503c..e5801d2b5f5 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-core-executionPlan-execution org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml index a6cbac2a685..9d4cf5ef3b2 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-executionPlan-execution-store-inMemory diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml index 33d9f870f0f..c44c34a9256 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-executionPlan-execution diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml index 8dd99fc7531..d4143d51b37 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml index e89238ef348..ea3c726f232 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml index fcc8b919d03..c86a00be802 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-generation - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml index 9f49d0c382b..079f0ab4890 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml index 6816c6cd8c9..a08aff8e2ff 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml index fa22a8877fe..9133ea34198 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-language-pure-compiler-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml index 6def711cfca..386bd44cb57 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-language-pure-compiler diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml index fc82c75821a..05952761210 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-language-pure-grammar-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml index e4a8e7c7e26..9189273d932 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-language-pure-grammar diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml index e947e4c14a9..7f5eb11a222 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-language-pure-modelManager-sdlc diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml index 169aa247d37..e1f12121d0e 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-language-pure-modelManager diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml index 85e060ad736..20d6e42991b 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-protocol-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml index 83e038d9dcb..566bc97e976 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-protocol-generation-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml index b03eb557810..a28f03fc424 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-protocol-generation diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml index c68b16ee420..a7a4fa0c06b 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-protocol-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml index 50a72d4fc9b..efe110cb281 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-protocol diff --git a/legend-engine-core/legend-engine-core-language-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/pom.xml index 12cf6f35ad7..7abc87d4766 100644 --- a/legend-engine-core/legend-engine-core-language-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml index a9cb1c73fec..ba4dd22343c 100644 --- a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-query-pure - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-query-pure diff --git a/legend-engine-core/legend-engine-core-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/pom.xml index eb6b21db161..2556d69f704 100644 --- a/legend-engine-core/legend-engine-core-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml index e6ae93d4fb8..31600dd3a18 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-shared-core diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml index 7cd8db7b16e..5183365cdfd 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-shared-javaCompiler diff --git a/legend-engine-core/legend-engine-core-shared/pom.xml b/legend-engine-core/legend-engine-core-shared/pom.xml index d076e9be43f..df557830421 100644 --- a/legend-engine-core/legend-engine-core-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml index d632c7b18fb..559fe1132eb 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-core-test - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml index 2ab5c167e6a..43af66582f2 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml index 7a67995a73d..27b228aec8b 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-test-runner-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml index 43fc2d7bb3b..f12992fe688 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-test-server-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml index 34a087e998c..cce7e5a954e 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-testable diff --git a/legend-engine-core/legend-engine-core-test/pom.xml b/legend-engine-core/legend-engine-core-test/pom.xml index d2844d6e885..76e4619f693 100644 --- a/legend-engine-core/legend-engine-core-test/pom.xml +++ b/legend-engine-core/legend-engine-core-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-core/pom.xml b/legend-engine-core/pom.xml index 0388b26a58f..ddfa5258b97 100644 --- a/legend-engine-core/pom.xml +++ b/legend-engine-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml index 71750718aab..3a7111a1879 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.34.2-SNAPSHOT + 4.33.2 legend-engine-pure-code-compiled-core diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml index 17efeac2ad8..eb03d8f9ff1 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.34.2-SNAPSHOT + 4.33.2 legend-engine-pure-code-compiled-functions diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml index 598064a2d19..45373bf5289 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.34.2-SNAPSHOT + 4.33.2 legend-engine-pure-code-core-extension diff --git a/legend-engine-pure/legend-engine-pure-code/pom.xml b/legend-engine-pure/legend-engine-pure-code/pom.xml index 16ad1c6862a..783309378ae 100644 --- a/legend-engine-pure/legend-engine-pure-code/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml index ce1a469418d..a280f921c6e 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml index aa70200bdb6..99899f1dc09 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml index 849c0127d1e..fceaf1a6090 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/pom.xml b/legend-engine-pure/legend-engine-pure-ide/pom.xml index 0f208b65f40..e6b39152d06 100644 --- a/legend-engine-pure/legend-engine-pure-ide/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml index 8f027731596..2ed0c31fdf2 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.34.2-SNAPSHOT + 4.33.2 legend-engine-pure-platform-dsl-diagram-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml index 71756065ccc..c7fd112f253 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.34.2-SNAPSHOT + 4.33.2 legend-engine-pure-platform-dsl-graph-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml index 08f1f0b9d1f..0bcd89edd12 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.34.2-SNAPSHOT + 4.33.2 legend-engine-pure-platform-dsl-mapping-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml index 627ee4c54ad..72868a5c80d 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.34.2-SNAPSHOT + 4.33.2 legend-engine-pure-platform-dsl-path-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml index 43e7320f396..0f3d3f6246f 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.34.2-SNAPSHOT + 4.33.2 legend-engine-pure-platform-functions-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml index e95f15cd329..5ca17b37e89 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.34.2-SNAPSHOT + 4.33.2 legend-engine-pure-platform-functions-json-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml index ae2ed781a8c..abf6afe94e3 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.34.2-SNAPSHOT + 4.33.2 legend-engine-pure-platform-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml index b07befaa647..10fdc515fe2 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.34.2-SNAPSHOT + 4.33.2 legend-engine-pure-platform-store-relational-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml index 2b33d896c2a..1466e788b2d 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml index c67558d55f0..b10f800d53a 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml index f1ce433cf1c..43f2b8b4746 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml index 3be4e37ebbd..d4dacb504c8 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml index 69d9d1ab679..b7cc0be4356 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.34.2-SNAPSHOT + 4.33.2 legend-engine-xt-java-runtime-compiler diff --git a/legend-engine-pure/legend-engine-pure-runtime/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/pom.xml index 99f97c7e42e..8e077c18c4e 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-pure/pom.xml b/legend-engine-pure/pom.xml index ec63d9c6b7f..50c641929f3 100644 --- a/legend-engine-pure/pom.xml +++ b/legend-engine-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml index c19fe07dc66..33e156407c6 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml index d4bbf88e30f..1c768db0310 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml index 554d50f5e71..c6698bd17c1 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml index f735c4cf446..728e9b14be5 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml index ffd3366f8ea..4d6ddff6549 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml index 05041b75097..e315a4b1643 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml index a20e12e77e3..f378625a57b 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml index f3fb4d388e0..198b754c510 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml index 14435322a81..dc4be27adc6 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml index 72f78c6fdcb..93ecf70e262 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml index f5e18582cb3..ba4c3bdc4cb 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml index b4dc00c3375..f79b54361f7 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml index 2912444ec73..db8653e9045 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 Legend Engine - XT - Analytics - Mapping - API diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml index e76beea31ab..4c498e02cf6 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-mapping - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 Legend Engine - XT - Analytics - Mapping - Protocol diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml index 60a224801a7..4a34e0a6143 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml index 54fb9222af3..1e2b53a9140 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml index 4c3f58f2cf4..d6c741e19ba 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-search - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml index 6f0180ee944..dc51259c57f 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-search org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml index 5afadce0431..411e1781701 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml index 932149d70ac..ccea5f6d942 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-xt-analytics-store-entitlement-api diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml index ebdb001fe31..adb065a6629 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml index 0a9c1f1041d..3e3e94f9099 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-analytics/pom.xml b/legend-engine-xts-analytics/pom.xml index df613251e4c..e7d43e3ab7d 100644 --- a/legend-engine-xts-analytics/pom.xml +++ b/legend-engine-xts-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml index 5dbb1ad043e..fe6f61b43de 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml index 498a3f7bbbc..a709d5c042e 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-arrow/pom.xml b/legend-engine-xts-arrow/pom.xml index e10e29cd679..0a49289760b 100644 --- a/legend-engine-xts-arrow/pom.xml +++ b/legend-engine-xts-arrow/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 legend-engine-xts-arrow diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml index 176059f064d..1145a796466 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml index 08435a5190b..b3d2721d5f2 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml index 2757b26f6c2..5ffaf3e2c44 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml index e3555bdef9f..77831c31095 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml index 31dfa1e7fed..3de0d2c5881 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml index fdda2c6301c..d2cfd46f5fd 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml index bd92da2aaee..0981ccd67b0 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-authentication/pom.xml b/legend-engine-xts-authentication/pom.xml index f96b26771ca..172db71455d 100644 --- a/legend-engine-xts-authentication/pom.xml +++ b/legend-engine-xts-authentication/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml index e5f3d1fd34f..ccd0356a2bf 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml index 78157a27480..525053abcee 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-avro/pom.xml b/legend-engine-xts-avro/pom.xml index 273ce5d87e2..5114eb7f0b4 100644 --- a/legend-engine-xts-avro/pom.xml +++ b/legend-engine-xts-avro/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml index 5db0877760c..c496c7f0990 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-changetoken org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml index 45ff2855bdb..3e293b71ccc 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-changetoken - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-changetoken/pom.xml b/legend-engine-xts-changetoken/pom.xml index a2e4a4ac76d..31be607f37f 100644 --- a/legend-engine-xts-changetoken/pom.xml +++ b/legend-engine-xts-changetoken/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml index fb30d6a3b5f..c513df340cd 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml index a012dd4e7a6..889150a65a5 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml index 19642e9d150..9787714c95c 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-daml/pom.xml b/legend-engine-xts-daml/pom.xml index 5b309d91201..7add6d92227 100644 --- a/legend-engine-xts-daml/pom.xml +++ b/legend-engine-xts-daml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml index daaae62fa44..d1c9fbfaa9c 100644 --- a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml +++ b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-data-push org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-data-push/pom.xml b/legend-engine-xts-data-push/pom.xml index bc5d8afed41..1576080bf73 100644 --- a/legend-engine-xts-data-push/pom.xml +++ b/legend-engine-xts-data-push/pom.xml @@ -3,7 +3,7 @@ legend-engine org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml index 35dca704572..466f89237c1 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml index b0af5015980..4e22b10c2a5 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-data-space org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml index 76dd3d368ae..57c0db2c287 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml index 876d162b1a9..ab48f595d92 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml index 367268e4090..33dcb66133c 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml index 1bfca53a76e..ea320566122 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml index 60feb7e0d8d..7dbec46f113 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-data-space/pom.xml b/legend-engine-xts-data-space/pom.xml index 26d5c4e28c2..84f4fd52533 100644 --- a/legend-engine-xts-data-space/pom.xml +++ b/legend-engine-xts-data-space/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml index cdb2b253885..bad507a841b 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml index 883c2a525a9..2a7e1e4e7de 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-diagram org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml index 62bb2233340..4ae296d6adc 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml index 7b559833057..7a02ae02f91 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml index 2319fd9a30a..42a36378a53 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml index 6f66ee57078..895057cd69f 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-diagram/pom.xml b/legend-engine-xts-diagram/pom.xml index 55804f0b426..846d460f754 100644 --- a/legend-engine-xts-diagram/pom.xml +++ b/legend-engine-xts-diagram/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml index b4738b877c5..99e6184da7f 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml index 452a57caa50..6e0ec5cc582 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml index f41da9a5f4b..2a408df8fff 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml index 6dd387ded48..6ed8ee2fa3a 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml index bf5335edb08..8f678e1af44 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml index 5e504864620..ad2622992ad 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.34.2-SNAPSHOT + 4.33.2 legend-engine-xt-elasticsearch-protocol-utils diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml index 21c0cbdef18..d2522d05671 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-elasticsearch/pom.xml b/legend-engine-xts-elasticsearch/pom.xml index eba00d176a1..465f3170d49 100644 --- a/legend-engine-xts-elasticsearch/pom.xml +++ b/legend-engine-xts-elasticsearch/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml index bc277182be8..c425dd00f56 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-flatdata org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml index c4ba691eda0..231c997c2c4 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml index 849cfed2052..a4d018effec 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml index 3d6b15a5306..7ef956a586a 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml index 7960f5ea2c7..e37cb33b484 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml index 70bbbd67d43..b3ed38f3a71 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml index 6a7e31b96cb..b216cd3ccda 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-flatdata/pom.xml b/legend-engine-xts-flatdata/pom.xml index 01bd7c06fab..125ef2f4246 100644 --- a/legend-engine-xts-flatdata/pom.xml +++ b/legend-engine-xts-flatdata/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml index ed702934641..06549e38b32 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml index f9081a35cfe..88eb6799c1b 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml index 1ce1fd60bae..8e53c87fc42 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-functionActivator/pom.xml b/legend-engine-xts-functionActivator/pom.xml index 7011743576d..d9767da741b 100644 --- a/legend-engine-xts-functionActivator/pom.xml +++ b/legend-engine-xts-functionActivator/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml index efb54c1d3ce..a864d1e1112 100644 --- a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml +++ b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml index 9e192cc7881..c47090f3f14 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml index 3b8f51acaa3..f40a7dae950 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-language-pure-dsl-generation diff --git a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml index 9ecaab33957..915da4ee525 100644 --- a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml +++ b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-generation org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-generation/pom.xml b/legend-engine-xts-generation/pom.xml index ea4615dcb10..585b222dd6f 100644 --- a/legend-engine-xts-generation/pom.xml +++ b/legend-engine-xts-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml index ae2aa682389..875c2232929 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 @@ -73,7 +73,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.34.2-SNAPSHOT + 4.33.2 org.finos.legend.pure diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml index 8dbb63dcf29..43fa4251260 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml index 12d7947dead..dfcc1463a87 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml index fa5a01d7b5a..88476653912 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml index 158200fbe02..bee63292822 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml index 5dcab0fc003..81ee48c9eae 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml index fa4bbd5c308..25bfd1de9ab 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml index 297a5373b3a..25107d56750 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-graphQL/pom.xml b/legend-engine-xts-graphQL/pom.xml index 5639104e595..7013434a8b1 100644 --- a/legend-engine-xts-graphQL/pom.xml +++ b/legend-engine-xts-graphQL/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml index 27645b56fb3..cd6e5cfc4ec 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml index 3f931523f69..4aef22eed9f 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml index e56bde1d93c..746fba9c084 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-haskell/pom.xml b/legend-engine-xts-haskell/pom.xml index 3422a664b87..81286c6b604 100644 --- a/legend-engine-xts-haskell/pom.xml +++ b/legend-engine-xts-haskell/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml index 25f4981983e..a9bdbb4f6f7 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml index 7a7aec68fbf..3e4ffefc518 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml index 4191bcca8e6..d9030947b03 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml index 717a12fb278..65b569463fd 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml index 01b951754a8..5bdcbaa2ccf 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml index 2d5878eb187..4f8831938e9 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-hostedService/pom.xml b/legend-engine-xts-hostedService/pom.xml index dd80e9bb97d..420ab82e04b 100644 --- a/legend-engine-xts-hostedService/pom.xml +++ b/legend-engine-xts-hostedService/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml index c9f0d92f300..b592c006fb9 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml index 61824652559..552d1f2f892 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-iceberg/pom.xml b/legend-engine-xts-iceberg/pom.xml index 6e3b4e0f443..877ae2dea2e 100644 --- a/legend-engine-xts-iceberg/pom.xml +++ b/legend-engine-xts-iceberg/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml index 0675e30f64e..a3ec6489364 100644 --- a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml +++ b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml index 6097b5217b2..f8213fdd8de 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml index a49c23ac0f2..652340db273 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml index e51e2999ee0..31be948394b 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-java/pom.xml b/legend-engine-xts-java/pom.xml index 9c61d325582..b6255e760ac 100644 --- a/legend-engine-xts-java/pom.xml +++ b/legend-engine-xts-java/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml index e6f9d0fec3e..bdc5203257c 100644 --- a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml +++ b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml index 6be9ef6423c..e03488825dd 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml index d6c97fad62f..d2e3148f285 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml index f0a5a7657a1..cb63e84300d 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml index aaca2170491..30a21041338 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml index e078f10ef8c..45866b2727b 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-json/pom.xml b/legend-engine-xts-json/pom.xml index 1364eb3cd6d..6908856abde 100644 --- a/legend-engine-xts-json/pom.xml +++ b/legend-engine-xts-json/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml index b1b0cdf44c6..f517251ce36 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-mastery org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml index dfa6c67a863..8bf59704247 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml index 0e8acdf9680..d1307809001 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-mastery/pom.xml b/legend-engine-xts-mastery/pom.xml index 2501c957014..50babf54d21 100644 --- a/legend-engine-xts-mastery/pom.xml +++ b/legend-engine-xts-mastery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml index a109a7b0965..dacb0f8d136 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml index ccef420ecd6..dd5113ce6ee 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.34.2-SNAPSHOT + 4.33.2 legend-engine-xt-nonrelationalStore-mongodb-executionPlan diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml index f18893fe567..36afda8f6cc 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.34.2-SNAPSHOT + 4.33.2 legend-engine-xt-nonrelationalStore-mongodb-grammar-integration diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml index d4ed80b9178..2e76373ddc6 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.34.2-SNAPSHOT + 4.33.2 legend-engine-xt-nonrelationalStore-mongodb-grammar diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml index 456f8d9546e..2ff2c2e9c4c 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.34.2-SNAPSHOT + 4.33.2 legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml index 4b96adac284..a7606cf58cc 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.34.2-SNAPSHOT + 4.33.2 legend-engine-xt-nonrelationalStore-mongodb-protocol diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml index 456ab15b9d4..c05c90c478a 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.34.2-SNAPSHOT + 4.33.2 legend-engine-xt-nonrelationalStore-mongodb-pure diff --git a/legend-engine-xts-mongodb/pom.xml b/legend-engine-xts-mongodb/pom.xml index 970c19b78ce..82f6f1d99d3 100644 --- a/legend-engine-xts-mongodb/pom.xml +++ b/legend-engine-xts-mongodb/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml index 3cbb795de6a..09f6697f59a 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-morphir - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml index 08f9db8693c..7d76f891d77 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-morphir org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-morphir/pom.xml b/legend-engine-xts-morphir/pom.xml index 2fe4a02c33a..86d6bedd0d5 100644 --- a/legend-engine-xts-morphir/pom.xml +++ b/legend-engine-xts-morphir/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml index acffcb67688..42858f85de6 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.34.2-SNAPSHOT + 4.33.2 legend-engine-xt-openapi-generation diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml index f64462a2770..1d2265c561e 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.34.2-SNAPSHOT + 4.33.2 legend-engine-xt-openapi-pure diff --git a/legend-engine-xts-openapi/pom.xml b/legend-engine-xts-openapi/pom.xml index 4175d65c431..5c35b08c7ba 100644 --- a/legend-engine-xts-openapi/pom.xml +++ b/legend-engine-xts-openapi/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml index 5c3bb925c3a..eb9e705df4d 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml index dd30da91eaa..7c57861a07d 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml index 5f3a18d7343..2efbfb14301 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml index 89f0044ba5f..51b63c2f528 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml index 303efa2780c..217d04776fa 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml index 701391db906..b3ba2247a86 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml index 922722140cd..9b3d4a38fc8 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml index 6b07ec83b8f..8d02e12b93c 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml index a1f9861c439..7affc690063 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml index 9cc6502f88c..306d32cef19 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml index efd5c916a1e..db56154c5ec 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml index cdb37b9e1d2..bcd6e1b1b23 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml index f47b6a09a11..782f87f3242 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml index 44b9077327f..f3277f15afb 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml index b86263b24f8..499e0b2f1f5 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml index a5710eab6c6..6223e04955c 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml index 447135f9360..fc9c77daf24 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml index 265ba3bb79c..bf4005e37be 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml index 8c7b13e5f5d..170ac9a4ad1 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml index 3ae6100ca42..c2f3117a998 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml index 9c3abf0541d..9325361f7ce 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-persistence/pom.xml b/legend-engine-xts-persistence/pom.xml index bd0732f6bae..be7c11c99b0 100644 --- a/legend-engine-xts-persistence/pom.xml +++ b/legend-engine-xts-persistence/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml index 07bae6f1ef6..fe6994fd334 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-xt-protobuf-grammar diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml index 81edd675181..19630cd4824 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-xt-protobuf-protocol diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml index adc9737d3c0..e8507eaeb76 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml index e31dae2ba31..c997e8bce33 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 @@ -57,7 +57,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.34.2-SNAPSHOT + 4.33.2 org.finos.legend.pure diff --git a/legend-engine-xts-protobuf/pom.xml b/legend-engine-xts-protobuf/pom.xml index 932a85cc8c1..b9a5fc0eb90 100644 --- a/legend-engine-xts-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml index 22dc8b6a38c..e3aa511af53 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml index c706d1014ed..3e28ca20b59 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml index 5794092a5a8..685d9d71cf0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml index 93e9f025d61..3784d2a6f18 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml index a88c927dcd7..72e7c942bdd 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml index e0104604d8a..1da911927cf 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml index 9c3a6a035af..489d618f68a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml index 6f08aad911b..b2ee9797fce 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml index 43cd120c643..056178267cf 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml index d43833aa9af..e321183aa45 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml index 6eb4711dd55..b7f330afe33 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-bigquery org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml index 3d2b5d5fa8e..2e0c539798a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml index 4aa435f76ef..f08b49c7507 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml index 89a90ce6092..e0a36a62b0c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml index c5a57509ae5..a15f0d73249 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml index b0969b2202e..5839a4b7f0d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml index 46a5980a376..3e4b1c7329b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml index f434dd81b5a..2daa28f49ac 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml index aa53fa5a6e7..4a411fcbce3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml index fd07d4448b7..06d5d1699b2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml index 2d507e9cf60..6469cbca0f2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml index 6696de16099..1ba3b3886ac 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml index af5b5316ca3..1e023a0d0d4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-dbExtension org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml index 35d99c04b6b..b72b3593b17 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-hive - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml index 26fbe53ff0e..056e563c16f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml index 9ace4ba2e61..ce992cf34fe 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml index 14ce374f6f9..59677a7916d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-memsql org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml index e2361489d45..7aac28cb014 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.34.2-SNAPSHOT + 4.33.2 legend-engine-xt-relationalStore-memsql-execution diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml index 5d6bfab576b..ecd0a946715 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.34.2-SNAPSHOT + 4.33.2 legend-engine-xt-relationalStore-memsql-pure diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml index a4b85de836c..e1349df60e8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml index dda873a163a..c4e8a6cefb0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml index 31703a543db..8f7360b4f0b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml index 84d3450f4e9..3ad27a4cf7f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml index 04848ea989a..934d1081223 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml index c10710743f3..12cb196c1d7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml index 0e19d4ac42d..442c1e4f748 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml index 1445f2a1b6c..ec2d61bd944 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-presto - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml index ac3310122a8..8b182c63d22 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml index 3834fc37f5c..019503fcdd8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml index 56bd7949863..a23eefe7e0b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml index b4e886ad1ed..7fe440c77b0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml index 72df8bc5f6f..c173432f748 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml index 8283b234d75..40c9647e7ad 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml index e7dc6de6bcb..e244c5e88f3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml index 8227dcf08a9..e26ad94a517 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml index 5a037b3385b..3f9f0db954c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml index f5fa96b4745..df3cf292329 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml index 5226e93cdaf..88108723eb4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml index 04e7a6f1de9..c9d1f54e3c3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml index 5a6de5666ac..b109727c917 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml index 8505d1eebe6..11841bf5125 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml index 8998bcf3956..22db46bb109 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml index e0b5e772d8d..67bf678edcb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml index 5d817896b11..26ec698df43 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml index cc2b70ab94e..0e08e4131a8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml index 5c9107f15a0..879e3fb0029 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml index f489d8d5f22..66559644286 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml index 855ba3a4951..204aa7f5b03 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml index 2751affe9c0..9a9e2871729 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sparksql - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml index 45aa1f7a424..278065ffa22 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml index 0b2d6ccd85c..b29fcb42ba9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml index 665c58e8493..bc31122036b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-xt-relationalStore-sqlserver-execution-tests diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml index 897efda6cab..85d7997d08a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml index 8d6ea28be47..2877a97d195 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml index 6e25023b3a1..d3076b27f1a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml index 64bd64b5043..b6980b787f2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybase - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml index 05fa2cbb498..70b13e4defd 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml index 5f867ac0678..0d3e466da6a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybaseiq - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml index 61ed2c19250..cc1db741774 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml index a0e45d4f3fe..2c39da4678e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-xt-relationalStore-test-reports diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml index a67e3dc632f..b260bb8a841 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-xt-relationalStore-test-server diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml index 658128af42d..7c972c0f02b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml index 80d4a46450f..65847fb62ec 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml index 12a016a4b16..dc11d77fad2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml index 9aede18cfd9..13a88fadd9a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml index 79acf0270a8..6ecae9f3606 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml index d6545751c25..c71ed131e74 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml index cea9a457628..7cb34f456cc 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml index 746b0abf1f8..46bef8bb949 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml index 027b5b30b6a..96316a82963 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml index 365d7a11182..20fff2a98b8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication-default diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml index 728c56f8290..f3ce6be15c3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml index 42e652184cc..3206c47d3c7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 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 fe8c73080f8..1625520a3c6 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 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 f82a7146615..eabdc35c359 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml index 614aa421120..7a6932f37c6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml index 1491b98bf11..c648c3a4665 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml index c432609ca4a..f291f057b1f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml index 70d89245141..a76384346fe 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml index e4777eca645..f76efe90997 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml index 74adbdcdab4..2fc739b0696 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml index 116ffec5cec..1a5b181ad09 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml index 80668370e39..bae389b5932 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml index 280966f1b33..91fe3566d5a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalStore/pom.xml b/legend-engine-xts-relationalStore/pom.xml index 23ee3fc4c36..a87e72fa614 100644 --- a/legend-engine-xts-relationalStore/pom.xml +++ b/legend-engine-xts-relationalStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml index 59757930f41..d7aa334bf45 100644 --- a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalai - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-relationalai/pom.xml b/legend-engine-xts-relationalai/pom.xml index 30fb21ce312..5f665334472 100644 --- a/legend-engine-xts-relationalai/pom.xml +++ b/legend-engine-xts-relationalai/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml index 82f6e2ecaeb..2c40a5a6c73 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml index 27d7898c2b0..a9557df153d 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-rosetta/pom.xml b/legend-engine-xts-rosetta/pom.xml index c9992a4520c..4b67161f981 100644 --- a/legend-engine-xts-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml index 0acceb67ad9..b858f74f8ac 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-language-pure-dsl-service-execution diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml index e5752c9752c..feefb7dbbfd 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml index 1f5d6181c36..ead392858a6 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml index 48001cd11a0..789ccb39975 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-language-pure-dsl-service diff --git a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml index 7c5117bd2ce..d40d5e8eb3b 100644 --- a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml +++ b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml index ed65c2ec2f2..ec8c9985c4f 100644 --- a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-services-model-api diff --git a/legend-engine-xts-service/legend-engine-services-model/pom.xml b/legend-engine-xts-service/legend-engine-services-model/pom.xml index 542bedd5061..5a39880b8f2 100644 --- a/legend-engine-xts-service/legend-engine-services-model/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 legend-engine-services-model diff --git a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml index 4b442a736e6..6793ef626f9 100644 --- a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-service/pom.xml b/legend-engine-xts-service/pom.xml index bb22fc14e94..73212b146e5 100644 --- a/legend-engine-xts-service/pom.xml +++ b/legend-engine-xts-service/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml index 959c165b502..0fb6082171e 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml index 01630596b70..1d17b5e944c 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml index 15109846211..cdfd569cd0f 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml index d60b06ab76e..475a02e3a29 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml index 7b20f9f2b11..31c5add376e 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-serviceStore/pom.xml b/legend-engine-xts-serviceStore/pom.xml index f11a7a7ddfe..f71eb559bd8 100644 --- a/legend-engine-xts-serviceStore/pom.xml +++ b/legend-engine-xts-serviceStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml index 011c3413f1d..bb8e21da501 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml index 89d57229a16..058886989f3 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-snowflakeApp org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml index daca162fb29..11535568ec7 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml index 9222e195fb3..01d711206c9 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml index 922e151970d..91eea620cca 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml index 641a58b438f..900df67e1f6 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/pom.xml b/legend-engine-xts-snowflakeApp/pom.xml index e7bfbfb1a5a..f6c2522427f 100644 --- a/legend-engine-xts-snowflakeApp/pom.xml +++ b/legend-engine-xts-snowflakeApp/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml index 29c10f7c956..939d3b7f9e0 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml index b9e747548fd..3e9bcf53030 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml index 5e993d4f8f4..51de443a724 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml index 62287e979d3..0b17ba02802 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-sql org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml index aa8defd68e7..77bdd13c4f9 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml index 99d8891a361..ee39a3a3633 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml index ad2d483e49b..95703b6758b 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml index 91e169462bd..249826685dd 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml index 591e4d54429..1efa5df0f77 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml index cd332de6f3c..77294b664f0 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml index 3c956cec836..d79f34875db 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml index 5dc87160c3e..c0cea96ada7 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml index 448c1f7eef6..2e89fe65def 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-sql/pom.xml b/legend-engine-xts-sql/pom.xml index f1491eafea8..e19e13f9fe3 100644 --- a/legend-engine-xts-sql/pom.xml +++ b/legend-engine-xts-sql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml index 21d83822fa9..ccc2b5a599a 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-text org.finos.legend.engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml index 753e325b409..9481130b2c5 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml index 92655091d54..48e22f2db62 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml index 60eaeb47d22..fcd4247b342 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-text/pom.xml b/legend-engine-xts-text/pom.xml index d343ca72437..52f5b99d0ee 100644 --- a/legend-engine-xts-text/pom.xml +++ b/legend-engine-xts-text/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml index 3223f121878..cfe98572773 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml index 5840af32033..348c7abc53e 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml index 47bbdc5c08a..9f185fc6fab 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml index 94688cbd4ce..e1c1a408ac8 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml index 3c5d6d8167e..db84f56c336 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/legend-engine-xts-xml/pom.xml b/legend-engine-xts-xml/pom.xml index fb71e32539d..e6910530ceb 100644 --- a/legend-engine-xts-xml/pom.xml +++ b/legend-engine-xts-xml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 4.0.0 diff --git a/pom.xml b/pom.xml index 193a972c958..5ce5d59fd47 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ Legend Engine org.finos.legend.engine legend-engine - 4.34.2-SNAPSHOT + 4.33.2 pom @@ -228,7 +228,7 @@ scm:git:https://github.com/finos/legend-engine - HEAD + legend-engine-4.33.2 From 3542341de35b16ee08fcf00ce305f41b9cc161d3 Mon Sep 17 00:00:00 2001 From: FINOS Administrator <37706051+finos-admin@users.noreply.github.com> Date: Wed, 1 Nov 2023 17:12:12 +0000 Subject: [PATCH 64/80] [maven-release-plugin] prepare for next development iteration --- legend-engine-application-query/pom.xml | 2 +- legend-engine-config/legend-engine-configuration/pom.xml | 2 +- .../legend-engine-connection-integration-tests/pom.xml | 2 +- .../legend-engine-extensions-collection-execution/pom.xml | 2 +- .../legend-engine-extensions-collection-generation/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-server-integration-tests/pom.xml | 2 +- .../legend-engine-server-support-core/pom.xml | 2 +- legend-engine-config/legend-engine-server/pom.xml | 2 +- legend-engine-config/pom.xml | 2 +- .../legend-engine-executionPlan-dependencies/pom.xml | 2 +- .../legend-engine-executionPlan-execution-api/pom.xml | 2 +- .../legend-engine-executionPlan-execution-authorizer/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-executionPlan-execution/pom.xml | 2 +- .../legend-engine-external-shared-format-runtime/pom.xml | 2 +- .../legend-engine-core-executionPlan-execution/pom.xml | 2 +- .../legend-engine-executionPlan-generation/pom.xml | 2 +- .../legend-engine-core-executionPlan-generation/pom.xml | 2 +- .../legend-engine-external-shared-format-model/pom.xml | 2 +- .../legend-engine-language-pure-compiler-api/pom.xml | 2 +- .../legend-engine-language-pure-compiler/pom.xml | 2 +- .../legend-engine-language-pure-grammar-api/pom.xml | 2 +- .../legend-engine-language-pure-grammar/pom.xml | 2 +- .../legend-engine-language-pure-modelManager-sdlc/pom.xml | 2 +- .../legend-engine-language-pure-modelManager/pom.xml | 2 +- .../legend-engine-protocol-api/pom.xml | 2 +- .../legend-engine-protocol-generation-pure/pom.xml | 2 +- .../legend-engine-protocol-generation/pom.xml | 2 +- .../legend-engine-protocol-pure/pom.xml | 2 +- .../legend-engine-protocol/pom.xml | 2 +- legend-engine-core/legend-engine-core-language-pure/pom.xml | 2 +- .../legend-engine-query-pure/pom.xml | 2 +- legend-engine-core/legend-engine-core-query-pure/pom.xml | 2 +- .../legend-engine-shared-core/pom.xml | 2 +- .../legend-engine-shared-javaCompiler/pom.xml | 2 +- legend-engine-core/legend-engine-core-shared/pom.xml | 2 +- .../legend-engine-test-data-generation/pom.xml | 2 +- .../legend-engine-test-runner-mapping/pom.xml | 2 +- .../legend-engine-test-runner-shared/pom.xml | 2 +- .../legend-engine-test-server-shared/pom.xml | 2 +- .../legend-engine-core-test/legend-engine-testable/pom.xml | 2 +- legend-engine-core/legend-engine-core-test/pom.xml | 2 +- legend-engine-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-functions/pom.xml | 2 +- .../legend-engine-pure-code-core-extension/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-code/pom.xml | 2 +- .../legend-engine-pure-ide-light-metadata-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-ide/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-diagram-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-graph-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-mapping-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-path-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-json-java/pom.xml | 2 +- .../legend-engine-pure-platform-java/pom.xml | 2 +- .../legend-engine-pure-platform-store-relational-java/pom.xml | 2 +- .../legend-engine-pure-platform-modular-generation/pom.xml | 2 +- .../legend-engine-pure-runtime-compiler/pom.xml | 2 +- .../legend-engine-pure-runtime-execution/pom.xml | 2 +- .../legend-engine-pure-runtime-extensions/pom.xml | 2 +- .../legend-engine-xt-java-runtime-compiler/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-runtime/pom.xml | 2 +- legend-engine-pure/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-api/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-binding/pom.xml | 2 +- .../legend-engine-xt-analytics-class-api/pom.xml | 2 +- .../legend-engine-xt-analytics-class-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-class/pom.xml | 2 +- .../legend-engine-xt-analytics-function-api/pom.xml | 2 +- .../legend-engine-xt-analytics-function-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-function/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-api/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-lineage/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-api/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-protocol/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-mapping/pom.xml | 2 +- .../legend-engine-xt-analytics-search-generation/pom.xml | 2 +- .../legend-engine-xt-analytics-search-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-search/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement-api/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement/pom.xml | 2 +- .../legend-engine-xts-analytics-store/pom.xml | 2 +- legend-engine-xts-analytics/pom.xml | 2 +- legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml | 2 +- .../legend-engine-xt-arrow-runtime/pom.xml | 2 +- legend-engine-xts-arrow/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-protocol/pom.xml | 2 +- .../legend-engine-xt-authentication-pure/pom.xml | 2 +- legend-engine-xts-authentication/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro/pom.xml | 2 +- legend-engine-xts-avro/pom.xml | 2 +- .../legend-engine-xt-changetoken-compiler/pom.xml | 2 +- .../legend-engine-xt-changetoken-pure/pom.xml | 2 +- legend-engine-xts-changetoken/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml | 2 +- legend-engine-xts-daml/pom.xml | 2 +- .../legend-engine-xt-data-push-server/pom.xml | 2 +- legend-engine-xts-data-push/pom.xml | 2 +- .../legend-engine-xt-data-space-api/pom.xml | 2 +- .../legend-engine-xt-data-space-compiler/pom.xml | 2 +- .../legend-engine-xt-data-space-generation/pom.xml | 2 +- .../legend-engine-xt-data-space-grammar/pom.xml | 2 +- .../legend-engine-xt-data-space-protocol/pom.xml | 2 +- .../legend-engine-xt-data-space-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-data-space-pure/pom.xml | 2 +- legend-engine-xts-data-space/pom.xml | 2 +- .../legend-engine-xt-diagram-api/pom.xml | 2 +- .../legend-engine-xt-diagram-compiler/pom.xml | 2 +- .../legend-engine-xt-diagram-grammar/pom.xml | 2 +- .../legend-engine-xt-diagram-protocol/pom.xml | 2 +- .../legend-engine-xt-diagram-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-diagram-pure/pom.xml | 2 +- legend-engine-xts-diagram/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-grammar/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-protocol/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-executionPlan-test/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-protocol-utils/pom.xml | 2 +- .../pom.xml | 2 +- legend-engine-xts-elasticsearch/pom.xml | 2 +- .../legend-engine-xt-flatdata-driver-bloomberg/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-flatdata-model/pom.xml | 2 +- .../legend-engine-xt-flatdata-pure/pom.xml | 2 +- .../legend-engine-xt-flatdata-runtime/pom.xml | 2 +- .../legend-engine-xt-flatdata-shared/pom.xml | 2 +- legend-engine-xts-flatdata/pom.xml | 2 +- .../legend-engine-xt-functionActivator-api/pom.xml | 2 +- .../legend-engine-xt-functionActivator-protocol/pom.xml | 2 +- .../legend-engine-xt-functionActivator-pure/pom.xml | 2 +- legend-engine-xts-functionActivator/pom.xml | 2 +- .../legend-engine-external-shared/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation/pom.xml | 2 +- .../legend-engine-xt-artifact-generation-api/pom.xml | 2 +- legend-engine-xts-generation/pom.xml | 2 +- .../legend-engine-xt-graphQL-compiler/pom.xml | 4 ++-- .../legend-engine-xt-graphQL-grammar-integration/pom.xml | 2 +- .../legend-engine-xt-graphQL-grammar/pom.xml | 2 +- .../legend-engine-xt-graphQL-protocol/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure/pom.xml | 2 +- .../legend-engine-xt-graphQL-query/pom.xml | 2 +- .../legend-engine-xt-graphQL-relational-extension/pom.xml | 2 +- legend-engine-xts-graphQL/pom.xml | 2 +- .../legend-engine-xt-haskell-grammar/pom.xml | 2 +- .../legend-engine-xt-haskell-protocol/pom.xml | 2 +- .../legend-engine-xt-haskell-pure/pom.xml | 2 +- legend-engine-xts-haskell/pom.xml | 2 +- .../legend-engine-xt-hostedService-api/pom.xml | 2 +- .../legend-engine-xt-hostedService-compiler/pom.xml | 2 +- .../legend-engine-xt-hostedService-generation/pom.xml | 2 +- .../legend-engine-xt-hostedService-grammar/pom.xml | 2 +- .../legend-engine-xt-hostedService-protocol/pom.xml | 2 +- .../legend-engine-xt-hostedService-pure/pom.xml | 2 +- legend-engine-xts-hostedService/pom.xml | 2 +- .../legend-engine-xt-iceberg-pure/pom.xml | 2 +- .../legend-engine-xt-iceberg-test-support/pom.xml | 2 +- legend-engine-xts-iceberg/pom.xml | 2 +- .../legend-engine-external-language-java/pom.xml | 2 +- .../legend-engine-xt-javaGeneration-featureBased-pure/pom.xml | 2 +- .../legend-engine-xt-javaGeneration-pure/pom.xml | 2 +- .../legend-engine-xt-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-java/pom.xml | 2 +- .../legend-engine-external-format-jsonSchema/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-pure/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-test/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-model/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml | 2 +- legend-engine-xts-json/pom.xml | 2 +- .../legend-engine-xt-mastery-grammar/pom.xml | 2 +- .../legend-engine-xt-mastery-protocol/pom.xml | 2 +- .../legend-engine-xt-mastery-pure/pom.xml | 2 +- legend-engine-xts-mastery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml | 2 +- legend-engine-xts-mongodb/pom.xml | 2 +- .../legend-engine-xt-morphir-pure/pom.xml | 2 +- legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml | 2 +- legend-engine-xts-morphir/pom.xml | 2 +- .../legend-engine-xt-openapi-generation/pom.xml | 2 +- .../legend-engine-xt-openapi-pure/pom.xml | 2 +- legend-engine-xts-openapi/pom.xml | 2 +- .../legend-engine-xt-persistence-api/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-component/pom.xml | 2 +- .../legend-engine-xt-persistence-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-test-runner/pom.xml | 2 +- legend-engine-xts-persistence/pom.xml | 2 +- .../legend-engine-xt-protobuf-grammar/pom.xml | 2 +- .../legend-engine-xt-protobuf-protocol/pom.xml | 2 +- .../legend-engine-xt-protobuf-pure/pom.xml | 2 +- legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml | 4 ++-- legend-engine-xts-protobuf/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-analytics/pom.xml | 2 +- .../legend-engine-xt-relationalStore-connection/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-reports/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-server/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino/pom.xml | 2 +- .../legend-engine-xt-relationalStore-dbExtension/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-executionPlan/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-api/pom.xml | 2 +- .../legend-engine-xt-relationalStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-generation/pom.xml | 2 +- legend-engine-xts-relationalStore/pom.xml | 2 +- .../legend-engine-xt-relationalai-pure/pom.xml | 2 +- legend-engine-xts-relationalai/pom.xml | 2 +- .../legend-engine-xt-rosetta-pure/pom.xml | 2 +- legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml | 2 +- legend-engine-xts-rosetta/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-execution/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service/pom.xml | 2 +- .../legend-engine-service-post-validation-runner/pom.xml | 2 +- .../legend-engine-services-model-api/pom.xml | 2 +- .../legend-engine-services-model/pom.xml | 2 +- .../legend-engine-test-runner-service/pom.xml | 2 +- legend-engine-xts-service/pom.xml | 2 +- .../legend-engine-xt-serviceStore-executionPlan/pom.xml | 2 +- .../legend-engine-xt-serviceStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-serviceStore-protocol/pom.xml | 2 +- .../legend-engine-xt-serviceStore-pure/pom.xml | 2 +- legend-engine-xts-serviceStore/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-api/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-compiler/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-generator/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-grammar/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-protocol/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-pure/pom.xml | 2 +- legend-engine-xts-snowflakeApp/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml | 2 +- .../legend-engine-xt-sql-grammar-integration/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml | 2 +- .../legend-engine-xt-sql-postgres-server/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml | 2 +- .../legend-engine-xt-sql-providers-core/pom.xml | 2 +- .../legend-engine-xt-sql-providers-relationalStore/pom.xml | 2 +- .../legend-engine-xt-sql-providers-service/pom.xml | 2 +- .../legend-engine-xt-sql-providers-shared/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml | 2 +- .../legend-engine-xt-sql-pure-metamodel/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml | 2 +- legend-engine-xts-sql/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml | 2 +- .../legend-engine-xt-text-pure-metamodel/pom.xml | 2 +- legend-engine-xts-text/pom.xml | 2 +- .../legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml | 2 +- legend-engine-xts-xml/pom.xml | 2 +- pom.xml | 4 ++-- 381 files changed, 384 insertions(+), 384 deletions(-) diff --git a/legend-engine-application-query/pom.xml b/legend-engine-application-query/pom.xml index 5407a6554be..276a2170734 100644 --- a/legend-engine-application-query/pom.xml +++ b/legend-engine-application-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-application-query diff --git a/legend-engine-config/legend-engine-configuration/pom.xml b/legend-engine-config/legend-engine-configuration/pom.xml index 9b7a38f49f0..091aec4ceb1 100644 --- a/legend-engine-config/legend-engine-configuration/pom.xml +++ b/legend-engine-config/legend-engine-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-configuration diff --git a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml index 46b92ea2f80..f9533b4ec16 100644 --- a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-connection-integration-tests diff --git a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml index 1da04e1df3e..1f68efc06c7 100644 --- a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml index da796488c6f..99f94f07bf6 100644 --- a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml index 984b64cc697..735b10be984 100644 --- a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml +++ b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-server-integration-tests/pom.xml b/legend-engine-config/legend-engine-server-integration-tests/pom.xml index b7ac53715c2..e3030afe2a6 100644 --- a/legend-engine-config/legend-engine-server-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-server-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-server-integration-tests diff --git a/legend-engine-config/legend-engine-server-support-core/pom.xml b/legend-engine-config/legend-engine-server-support-core/pom.xml index 9674ce5e2e9..4ac1cc9e087 100644 --- a/legend-engine-config/legend-engine-server-support-core/pom.xml +++ b/legend-engine-config/legend-engine-server-support-core/pom.xml @@ -3,7 +3,7 @@ legend-engine-config org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index aafdfc6d2ab..1cf2eba5520 100644 --- a/legend-engine-config/legend-engine-server/pom.xml +++ b/legend-engine-config/legend-engine-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-server diff --git a/legend-engine-config/pom.xml b/legend-engine-config/pom.xml index 9906ed4d014..05cdcfe52df 100644 --- a/legend-engine-config/pom.xml +++ b/legend-engine-config/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml index 96bfd69166f..007abc81a3b 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-executionPlan-dependencies diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml index dae4714f1e6..801f9158ac8 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-executionPlan-execution-api diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml index e5801d2b5f5..dada7e1b997 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-core-executionPlan-execution org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml index 9d4cf5ef3b2..88e3723d7b8 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-executionPlan-execution-store-inMemory diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml index c44c34a9256..a4a68c5719a 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-executionPlan-execution diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml index d4143d51b37..85ee086953a 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml index ea3c726f232..0b1a5607c13 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml index c86a00be802..6bfe55333e0 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-generation - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml index 079f0ab4890..910a0d5446f 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml index a08aff8e2ff..2648964ce4e 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml index 9133ea34198..da8a1280021 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-language-pure-compiler-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml index 386bd44cb57..d9a9d1ee0fb 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-language-pure-compiler diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml index 05952761210..eaa49ae0fc4 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-language-pure-grammar-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml index 9189273d932..fc058f7e987 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-language-pure-grammar diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml index 7f5eb11a222..9a09819f703 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-language-pure-modelManager-sdlc diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml index e1f12121d0e..c1f18807b6d 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-language-pure-modelManager diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml index 20d6e42991b..dec94801a4f 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-protocol-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml index 566bc97e976..9d47ed6f6cf 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-protocol-generation-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml index a28f03fc424..29bea90b1a3 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-protocol-generation diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml index a7a4fa0c06b..6fef14690e8 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-protocol-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml index efe110cb281..c8a0c8d7a31 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-protocol diff --git a/legend-engine-core/legend-engine-core-language-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/pom.xml index 7abc87d4766..3020fb3f661 100644 --- a/legend-engine-core/legend-engine-core-language-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml index ba4dd22343c..116a841a683 100644 --- a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-query-pure - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-query-pure diff --git a/legend-engine-core/legend-engine-core-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/pom.xml index 2556d69f704..cb133d91bb7 100644 --- a/legend-engine-core/legend-engine-core-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml index 31600dd3a18..9e009c23fb8 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-shared-core diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml index 5183365cdfd..f4932e8d604 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-shared-javaCompiler diff --git a/legend-engine-core/legend-engine-core-shared/pom.xml b/legend-engine-core/legend-engine-core-shared/pom.xml index df557830421..0cfb9a7be0f 100644 --- a/legend-engine-core/legend-engine-core-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml index 559fe1132eb..c4476e6b311 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml index 43af66582f2..5a0c7b1a74e 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml index 27b228aec8b..9c36fac5ea1 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-test-runner-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml index f12992fe688..4422c35937a 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-test-server-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml index cce7e5a954e..3d5f5dd5b17 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-testable diff --git a/legend-engine-core/legend-engine-core-test/pom.xml b/legend-engine-core/legend-engine-core-test/pom.xml index 76e4619f693..f608dd8460b 100644 --- a/legend-engine-core/legend-engine-core-test/pom.xml +++ b/legend-engine-core/legend-engine-core-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/pom.xml b/legend-engine-core/pom.xml index ddfa5258b97..ea53132e840 100644 --- a/legend-engine-core/pom.xml +++ b/legend-engine-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml index 3a7111a1879..87ddb546be9 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.33.2 + 4.33.3-SNAPSHOT legend-engine-pure-code-compiled-core diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml index eb03d8f9ff1..4cc6222b929 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.33.2 + 4.33.3-SNAPSHOT legend-engine-pure-code-compiled-functions diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml index 45373bf5289..aff8f4a2101 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.33.2 + 4.33.3-SNAPSHOT legend-engine-pure-code-core-extension diff --git a/legend-engine-pure/legend-engine-pure-code/pom.xml b/legend-engine-pure/legend-engine-pure-code/pom.xml index 783309378ae..65cffbda3e5 100644 --- a/legend-engine-pure/legend-engine-pure-code/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml index a280f921c6e..4c416358a0d 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml index 99899f1dc09..7576f052b8f 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml index fceaf1a6090..61991f8692e 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/pom.xml b/legend-engine-pure/legend-engine-pure-ide/pom.xml index e6b39152d06..8aa756c02af 100644 --- a/legend-engine-pure/legend-engine-pure-ide/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml index 2ed0c31fdf2..41459d18a30 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.2 + 4.33.3-SNAPSHOT legend-engine-pure-platform-dsl-diagram-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml index c7fd112f253..798b14212f3 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.2 + 4.33.3-SNAPSHOT legend-engine-pure-platform-dsl-graph-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml index 0bcd89edd12..f3cab9cf6ca 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.2 + 4.33.3-SNAPSHOT legend-engine-pure-platform-dsl-mapping-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml index 72868a5c80d..057811e17e2 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.2 + 4.33.3-SNAPSHOT legend-engine-pure-platform-dsl-path-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml index 0f3d3f6246f..630f922731e 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.2 + 4.33.3-SNAPSHOT legend-engine-pure-platform-functions-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml index 5ca17b37e89..08076e53be5 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.2 + 4.33.3-SNAPSHOT legend-engine-pure-platform-functions-json-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml index abf6afe94e3..ca903aadf69 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.2 + 4.33.3-SNAPSHOT legend-engine-pure-platform-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml index 10fdc515fe2..d0a72cc1c40 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.2 + 4.33.3-SNAPSHOT legend-engine-pure-platform-store-relational-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml index 1466e788b2d..d5f696ace78 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml index b10f800d53a..cf2d2b1bbe9 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml index 43f2b8b4746..11c33be957f 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml index d4dacb504c8..334f0bdf0dc 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml index b7cc0be4356..07dd117d110 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.33.2 + 4.33.3-SNAPSHOT legend-engine-xt-java-runtime-compiler diff --git a/legend-engine-pure/legend-engine-pure-runtime/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/pom.xml index 8e077c18c4e..2c09a8a7e6e 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/pom.xml b/legend-engine-pure/pom.xml index 50c641929f3..b4c9539c54e 100644 --- a/legend-engine-pure/pom.xml +++ b/legend-engine-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml index 33e156407c6..f726109b536 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml index 1c768db0310..b79bc30fd9b 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml index c6698bd17c1..55c77b858e8 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml index 728e9b14be5..9f04b98b22e 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml index 4d6ddff6549..92ef562cda7 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml index e315a4b1643..e5f160b6743 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml index f378625a57b..dc4ea1cdb22 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml index 198b754c510..af9f8397951 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml index dc4be27adc6..601e8778ba7 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml index 93ecf70e262..92b9b641c23 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml index ba4c3bdc4cb..e590e39f9f4 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml index f79b54361f7..8683f8f0e9f 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml index db8653e9045..68660218660 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 Legend Engine - XT - Analytics - Mapping - API diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml index 4c498e02cf6..60eff48637c 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-mapping - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 Legend Engine - XT - Analytics - Mapping - Protocol diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml index 4a34e0a6143..472993f6cc4 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml index 1e2b53a9140..63d3a5aeddd 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml index d6c741e19ba..5e8a6327092 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-search - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml index dc51259c57f..f98a5f2aaff 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-search org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml index 411e1781701..f0fdb0d744f 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml index ccea5f6d942..277f985c712 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-xt-analytics-store-entitlement-api diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml index adb065a6629..b4bae91158a 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml index 3e3e94f9099..ad2f26ae69c 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/pom.xml b/legend-engine-xts-analytics/pom.xml index e7d43e3ab7d..e1285f9d632 100644 --- a/legend-engine-xts-analytics/pom.xml +++ b/legend-engine-xts-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml index fe6f61b43de..9c8c4cea993 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml index a709d5c042e..194a9b91b65 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-arrow/pom.xml b/legend-engine-xts-arrow/pom.xml index 0a49289760b..f7e34b601a3 100644 --- a/legend-engine-xts-arrow/pom.xml +++ b/legend-engine-xts-arrow/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT legend-engine-xts-arrow diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml index 1145a796466..35859cbfba0 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml index b3d2721d5f2..16758c6f285 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml index 5ffaf3e2c44..078618fd67f 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml index 77831c31095..6e1ba673faf 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml index 3de0d2c5881..76c5268dd84 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml index d2cfd46f5fd..eb1534564e5 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml index 0981ccd67b0..acdccf7bc92 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/pom.xml b/legend-engine-xts-authentication/pom.xml index 172db71455d..d3c647fdcb2 100644 --- a/legend-engine-xts-authentication/pom.xml +++ b/legend-engine-xts-authentication/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml index ccd0356a2bf..6b1e0610f45 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml index 525053abcee..6bf4acee4cc 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-avro/pom.xml b/legend-engine-xts-avro/pom.xml index 5114eb7f0b4..2d4569a351a 100644 --- a/legend-engine-xts-avro/pom.xml +++ b/legend-engine-xts-avro/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml index c496c7f0990..0a91a952a38 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-changetoken org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml index 3e293b71ccc..49b2296f466 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-changetoken - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-changetoken/pom.xml b/legend-engine-xts-changetoken/pom.xml index 31be607f37f..893baff639b 100644 --- a/legend-engine-xts-changetoken/pom.xml +++ b/legend-engine-xts-changetoken/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml index c513df340cd..1de6e33c65c 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml index 889150a65a5..97650598df6 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml index 9787714c95c..651d3c8d600 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/pom.xml b/legend-engine-xts-daml/pom.xml index 7add6d92227..1c5a38b0a91 100644 --- a/legend-engine-xts-daml/pom.xml +++ b/legend-engine-xts-daml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml index d1c9fbfaa9c..2bad33f96e3 100644 --- a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml +++ b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-data-push org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-push/pom.xml b/legend-engine-xts-data-push/pom.xml index 1576080bf73..27c2972c5a4 100644 --- a/legend-engine-xts-data-push/pom.xml +++ b/legend-engine-xts-data-push/pom.xml @@ -3,7 +3,7 @@ legend-engine org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml index 466f89237c1..e9009086e76 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml index 4e22b10c2a5..21b2882a9a2 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-data-space org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml index 57c0db2c287..ddd00b68d5e 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml index ab48f595d92..a8ab164dd9b 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml index 33dcb66133c..698258aa7c7 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml index ea320566122..ec6336b6e9b 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml index 7dbec46f113..a0ed6dc7819 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/pom.xml b/legend-engine-xts-data-space/pom.xml index 84f4fd52533..42ff0728e34 100644 --- a/legend-engine-xts-data-space/pom.xml +++ b/legend-engine-xts-data-space/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml index bad507a841b..6e8b7f6226e 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml index 2a7e1e4e7de..97062a1acd5 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-diagram org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml index 4ae296d6adc..42cc90de18c 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml index 7a02ae02f91..2a2c188aa64 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml index 42a36378a53..6dc51b6a5d0 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml index 895057cd69f..c7cdff6178a 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/pom.xml b/legend-engine-xts-diagram/pom.xml index 846d460f754..ed116041594 100644 --- a/legend-engine-xts-diagram/pom.xml +++ b/legend-engine-xts-diagram/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml index 99e6184da7f..43d703e8543 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml index 6e0ec5cc582..6c510ca6c55 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml index 2a408df8fff..9e725622612 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml index 6ed8ee2fa3a..1b26a2dd831 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml index 8f678e1af44..c0992371f54 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml index ad2622992ad..63cf13905e9 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.2 + 4.33.3-SNAPSHOT legend-engine-xt-elasticsearch-protocol-utils diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml index d2522d05671..b7e245dc184 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/pom.xml b/legend-engine-xts-elasticsearch/pom.xml index 465f3170d49..df2508360bd 100644 --- a/legend-engine-xts-elasticsearch/pom.xml +++ b/legend-engine-xts-elasticsearch/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml index c425dd00f56..0826286226b 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-flatdata org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml index 231c997c2c4..92e906749a9 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml index a4d018effec..9d8224e63ef 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml index 7ef956a586a..78fb36bdfe9 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml index e37cb33b484..0a8f3454857 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml index b3ed38f3a71..1e6cfe2823b 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml index b216cd3ccda..80972cf3683 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/pom.xml b/legend-engine-xts-flatdata/pom.xml index 125ef2f4246..d79677f40f4 100644 --- a/legend-engine-xts-flatdata/pom.xml +++ b/legend-engine-xts-flatdata/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml index 06549e38b32..315f9990874 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml index 88eb6799c1b..0053552e56e 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml index 8e53c87fc42..2714c814bca 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/pom.xml b/legend-engine-xts-functionActivator/pom.xml index d9767da741b..8a7b21fa078 100644 --- a/legend-engine-xts-functionActivator/pom.xml +++ b/legend-engine-xts-functionActivator/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml index a864d1e1112..1279df3c2a7 100644 --- a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml +++ b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml index c47090f3f14..a937bd902be 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml index f40a7dae950..14db2e54ef8 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-language-pure-dsl-generation diff --git a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml index 915da4ee525..03c2c9551c2 100644 --- a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml +++ b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-generation org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/pom.xml b/legend-engine-xts-generation/pom.xml index 585b222dd6f..f30258915e9 100644 --- a/legend-engine-xts-generation/pom.xml +++ b/legend-engine-xts-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml index 875c2232929..308355c0ca2 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 @@ -73,7 +73,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.33.2 + 4.33.3-SNAPSHOT org.finos.legend.pure diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml index 43fa4251260..c84408aa16d 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml index dfcc1463a87..f45ff2c78ff 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml index 88476653912..0b0183a4221 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml index bee63292822..3cedddf46e1 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml index 81ee48c9eae..459d756f1ff 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml index 25bfd1de9ab..52db1b9fb95 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml index 25107d56750..5a6d9d2f0dc 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/pom.xml b/legend-engine-xts-graphQL/pom.xml index 7013434a8b1..c07ffc9f940 100644 --- a/legend-engine-xts-graphQL/pom.xml +++ b/legend-engine-xts-graphQL/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml index cd6e5cfc4ec..c83cfea8ae3 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml index 4aef22eed9f..e09844e1819 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml index 746fba9c084..50a6cc31c84 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/pom.xml b/legend-engine-xts-haskell/pom.xml index 81286c6b604..5579be4e1ac 100644 --- a/legend-engine-xts-haskell/pom.xml +++ b/legend-engine-xts-haskell/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml index a9bdbb4f6f7..02159e8c4ef 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml index 3e4ffefc518..f3fcd37e63e 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml index d9030947b03..ead31450995 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml index 65b569463fd..630e2e5d34f 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml index 5bdcbaa2ccf..5b6537558ae 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml index 4f8831938e9..4f9a284bd5c 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/pom.xml b/legend-engine-xts-hostedService/pom.xml index 420ab82e04b..66102a5785f 100644 --- a/legend-engine-xts-hostedService/pom.xml +++ b/legend-engine-xts-hostedService/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml index b592c006fb9..833fce8130e 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml index 552d1f2f892..ba159478667 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-iceberg/pom.xml b/legend-engine-xts-iceberg/pom.xml index 877ae2dea2e..5fd0c74526c 100644 --- a/legend-engine-xts-iceberg/pom.xml +++ b/legend-engine-xts-iceberg/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml index a3ec6489364..2b6b248f08e 100644 --- a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml +++ b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml index f8213fdd8de..7faad9958c1 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml index 652340db273..592b634ad26 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml index 31be948394b..26c60635051 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/pom.xml b/legend-engine-xts-java/pom.xml index b6255e760ac..f3397440064 100644 --- a/legend-engine-xts-java/pom.xml +++ b/legend-engine-xts-java/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml index bdc5203257c..5a3a32ea9e0 100644 --- a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml +++ b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml index e03488825dd..f2caf272686 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml index d2e3148f285..76f3edcb4d8 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml index cb63e84300d..b25390e4719 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml index 30a21041338..1bdcca08fe1 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml index 45866b2727b..bf944e18425 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/pom.xml b/legend-engine-xts-json/pom.xml index 6908856abde..2d977bc31ce 100644 --- a/legend-engine-xts-json/pom.xml +++ b/legend-engine-xts-json/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml index f517251ce36..22afacd56c2 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-mastery org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml index 8bf59704247..5fc600c6330 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml index d1307809001..83b49a0da73 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/pom.xml b/legend-engine-xts-mastery/pom.xml index 50babf54d21..4d081f0646c 100644 --- a/legend-engine-xts-mastery/pom.xml +++ b/legend-engine-xts-mastery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml index dacb0f8d136..cb848c5b0e7 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml index dd5113ce6ee..01f88869fb2 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.2 + 4.33.3-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-executionPlan diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml index 36afda8f6cc..b2e4f4c2647 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.2 + 4.33.3-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-grammar-integration diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml index 2e76373ddc6..1ab8bdd03a4 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.2 + 4.33.3-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-grammar diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml index 2ff2c2e9c4c..b503e66c136 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.2 + 4.33.3-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml index a7606cf58cc..5f60e2fa2f6 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.2 + 4.33.3-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-protocol diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml index c05c90c478a..f948a3aabe3 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.2 + 4.33.3-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-pure diff --git a/legend-engine-xts-mongodb/pom.xml b/legend-engine-xts-mongodb/pom.xml index 82f6f1d99d3..2a931a03132 100644 --- a/legend-engine-xts-mongodb/pom.xml +++ b/legend-engine-xts-mongodb/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml index 09f6697f59a..5c396eaa91b 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-morphir - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml index 7d76f891d77..e999556c626 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-morphir org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-morphir/pom.xml b/legend-engine-xts-morphir/pom.xml index 86d6bedd0d5..796a609b69e 100644 --- a/legend-engine-xts-morphir/pom.xml +++ b/legend-engine-xts-morphir/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml index 42858f85de6..a263f694314 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.33.2 + 4.33.3-SNAPSHOT legend-engine-xt-openapi-generation diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml index 1d2265c561e..068326ae273 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.33.2 + 4.33.3-SNAPSHOT legend-engine-xt-openapi-pure diff --git a/legend-engine-xts-openapi/pom.xml b/legend-engine-xts-openapi/pom.xml index 5c35b08c7ba..3297d2ebd66 100644 --- a/legend-engine-xts-openapi/pom.xml +++ b/legend-engine-xts-openapi/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml index eb9e705df4d..712f03f7fc5 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml index 7c57861a07d..97ca93f538b 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml index 2efbfb14301..14f023bcdee 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml index 51b63c2f528..dd7f18f5afb 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml index 217d04776fa..7c0a817dd79 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml index b3ba2247a86..a960958a8b7 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml index 9b3d4a38fc8..83f3b5116c1 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml index 8d02e12b93c..6066f0e2fb1 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml index 7affc690063..7ba9f828d81 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml index 306d32cef19..c50d59c7dfe 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml index db56154c5ec..34710f34243 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml index bcd6e1b1b23..aca54ad6176 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml index 782f87f3242..3491c5daaaa 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml index f3277f15afb..3b2e316c8aa 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml index 499e0b2f1f5..6782031ef56 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml index 6223e04955c..8cfdea0adbf 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml index fc9c77daf24..355868e2328 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml index bf4005e37be..db9a1b967db 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml index 170ac9a4ad1..28a066b8378 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml index c2f3117a998..8397a78ccd2 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml index 9325361f7ce..881fe61f6d7 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/pom.xml b/legend-engine-xts-persistence/pom.xml index be7c11c99b0..1e71361ff4f 100644 --- a/legend-engine-xts-persistence/pom.xml +++ b/legend-engine-xts-persistence/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml index fe6994fd334..88be2704f6e 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-xt-protobuf-grammar diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml index 19630cd4824..62a0eb6f928 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-xt-protobuf-protocol diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml index e8507eaeb76..f11035532e7 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml index c997e8bce33..46b9b195a2a 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 @@ -57,7 +57,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.33.2 + 4.33.3-SNAPSHOT org.finos.legend.pure diff --git a/legend-engine-xts-protobuf/pom.xml b/legend-engine-xts-protobuf/pom.xml index b9a5fc0eb90..a5178d6653e 100644 --- a/legend-engine-xts-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml index e3aa511af53..6633e45dafe 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml index 3e28ca20b59..2023af4cfe4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml index 685d9d71cf0..07a4e7ba1d9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml index 3784d2a6f18..19827d1122d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml index 72e7c942bdd..00d78977fee 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml index 1da911927cf..53e963731aa 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml index 489d618f68a..eb55f178f60 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml index b2ee9797fce..2eacdbd8ab9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml index 056178267cf..09fb3ef0414 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml index e321183aa45..30cbe4e2e4f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml index b7f330afe33..5b8659dce5e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-bigquery org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml index 2e0c539798a..ec5a0f2198d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml index f08b49c7507..151d8a51cb3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml index e0a36a62b0c..84e7d721226 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml index a15f0d73249..28992f6a067 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml index 5839a4b7f0d..a8147eb76de 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml index 3e4b1c7329b..2c04678aa30 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml index 2daa28f49ac..c7744226a58 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml index 4a411fcbce3..08ce5919f43 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml index 06d5d1699b2..aa74d37dc4a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml index 6469cbca0f2..c063c7a76fb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml index 1ba3b3886ac..991636067b7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml index 1e023a0d0d4..8733a6b3902 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-dbExtension org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml index b72b3593b17..58a125d6db3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-hive - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml index 056e563c16f..3d008f7e041 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml index ce992cf34fe..a4cae974288 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml index 59677a7916d..15ad4372d9e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-memsql org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml index 7aac28cb014..4aa966a937e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.33.2 + 4.33.3-SNAPSHOT legend-engine-xt-relationalStore-memsql-execution diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml index ecd0a946715..2ccb2cc7410 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.33.2 + 4.33.3-SNAPSHOT legend-engine-xt-relationalStore-memsql-pure diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml index e1349df60e8..7ce98612d1e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml index c4e8a6cefb0..398019481af 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml index 8f7360b4f0b..b0d7df0665d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml index 3ad27a4cf7f..e99b52a2324 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml index 934d1081223..5d73a9ca58a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml index 12cb196c1d7..8d3d184e616 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml index 442c1e4f748..eb87fab8ecd 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml index ec2d61bd944..118015c3f3d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-presto - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml index 8b182c63d22..91058c00492 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml index 019503fcdd8..05f5e8c5c8b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml index a23eefe7e0b..b8b02b5ba49 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml index 7fe440c77b0..282dbd8836d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml index c173432f748..7d837ecfb7f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml index 40c9647e7ad..cad37235ef4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml index e244c5e88f3..41363281b61 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml index e26ad94a517..01779b82456 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml index 3f9f0db954c..d8687482a61 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml index df3cf292329..e8fcd5ea447 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml index 88108723eb4..4485940bae1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml index c9d1f54e3c3..8aba95148f6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml index b109727c917..73b7b38f070 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml index 11841bf5125..2c458a56ff1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml index 22db46bb109..6b1afbffdb2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml index 67bf678edcb..1d67c32180a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml index 26ec698df43..563ddb13038 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml index 0e08e4131a8..d8551ba9fa6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml index 879e3fb0029..cacaea0a781 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml index 66559644286..654724c236d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml index 204aa7f5b03..9679d9a7f0c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml index 9a9e2871729..25cc8bc5ff6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sparksql - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml index 278065ffa22..e670b090e71 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml index b29fcb42ba9..287f8f18501 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml index bc31122036b..76e06257a63 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-sqlserver-execution-tests diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml index 85d7997d08a..522f71d7487 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml index 2877a97d195..808fdedfbcd 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml index d3076b27f1a..9deed99a342 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml index b6980b787f2..cfccaf30020 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybase - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml index 70b13e4defd..0ae1b436398 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml index 0d3e466da6a..36e182d9855 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybaseiq - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml index cc1db741774..706a30b6c58 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml index 2c39da4678e..7678f14a121 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-test-reports diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml index b260bb8a841..f70171516bd 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-test-server diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml index 7c972c0f02b..7c8761bdc3c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml index 65847fb62ec..f20d4f66e31 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml index dc11d77fad2..161a7fb12d7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml index 13a88fadd9a..d8e4f4a6364 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml index 6ecae9f3606..f849805f603 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml index c71ed131e74..0b997bd3232 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml index 7cb34f456cc..7796609e78d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml index 46bef8bb949..b8180c5cd81 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml index 96316a82963..8eabb430b50 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml index 20fff2a98b8..8690a1c51d3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication-default diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml index f3ce6be15c3..d18438bd175 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml index 3206c47d3c7..ab00e8d8529 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 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 1625520a3c6..0ccaeb4fed8 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 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 eabdc35c359..886c7488500 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml index 7a6932f37c6..cd667d9c399 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml index c648c3a4665..52254623f46 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml index f291f057b1f..0f3e07e9829 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml index a76384346fe..c77916dfc1c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml index f76efe90997..da20bd5896b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml index 2fc739b0696..3f3267b91d2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml index 1a5b181ad09..38bad3053c3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml index bae389b5932..66f45f26578 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml index 91fe3566d5a..209b40fbc74 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/pom.xml b/legend-engine-xts-relationalStore/pom.xml index a87e72fa614..5ef3724b648 100644 --- a/legend-engine-xts-relationalStore/pom.xml +++ b/legend-engine-xts-relationalStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml index d7aa334bf45..bb942cfc8c9 100644 --- a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalai - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalai/pom.xml b/legend-engine-xts-relationalai/pom.xml index 5f665334472..24573cb5c2d 100644 --- a/legend-engine-xts-relationalai/pom.xml +++ b/legend-engine-xts-relationalai/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml index 2c40a5a6c73..84ce2e6d6b7 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml index a9557df153d..17ec7efe18a 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-rosetta/pom.xml b/legend-engine-xts-rosetta/pom.xml index 4b67161f981..9296ef45662 100644 --- a/legend-engine-xts-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml index b858f74f8ac..20c7f2f7c2d 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-language-pure-dsl-service-execution diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml index feefb7dbbfd..0207b929c21 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml index ead392858a6..0f5582428ad 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml index 789ccb39975..982758bf5a8 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-language-pure-dsl-service diff --git a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml index d40d5e8eb3b..14df536d416 100644 --- a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml +++ b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml index ec8c9985c4f..f34a9f011ea 100644 --- a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-services-model-api diff --git a/legend-engine-xts-service/legend-engine-services-model/pom.xml b/legend-engine-xts-service/legend-engine-services-model/pom.xml index 5a39880b8f2..ae48934b5b4 100644 --- a/legend-engine-xts-service/legend-engine-services-model/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 legend-engine-services-model diff --git a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml index 6793ef626f9..29bd6c6aea6 100644 --- a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/pom.xml b/legend-engine-xts-service/pom.xml index 73212b146e5..c07e896a5bb 100644 --- a/legend-engine-xts-service/pom.xml +++ b/legend-engine-xts-service/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml index 0fb6082171e..556bb092fe3 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml index 1d17b5e944c..1b2daf82aae 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml index cdfd569cd0f..1124d3482ac 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml index 475a02e3a29..9a26edd5993 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml index 31c5add376e..b0405806667 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/pom.xml b/legend-engine-xts-serviceStore/pom.xml index f71eb559bd8..35db9fa1a0f 100644 --- a/legend-engine-xts-serviceStore/pom.xml +++ b/legend-engine-xts-serviceStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml index bb8e21da501..5ebd9f161f7 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml index 058886989f3..22f1a7f107d 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-snowflakeApp org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml index 11535568ec7..00d2f2e8c12 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml index 01d711206c9..b72ce92a9e2 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml index 91eea620cca..3f463f665ae 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml index 900df67e1f6..efca288c498 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/pom.xml b/legend-engine-xts-snowflakeApp/pom.xml index f6c2522427f..95dd7724a80 100644 --- a/legend-engine-xts-snowflakeApp/pom.xml +++ b/legend-engine-xts-snowflakeApp/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml index 939d3b7f9e0..91c277f76bf 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml index 3e9bcf53030..583ee4a7071 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml index 51de443a724..1d2ebc914af 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml index 0b17ba02802..8cc311eb4ea 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-sql org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml index 77bdd13c4f9..1ed331e781a 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml index ee39a3a3633..a855103b784 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml index 95703b6758b..8a0f8e9c9da 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml index 249826685dd..50690bcf082 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml index 1efa5df0f77..b7a739223ab 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml index 77294b664f0..9e40685506e 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml index d79f34875db..29bd1fdd4a5 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml index c0cea96ada7..cd6d990069e 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml index 2e89fe65def..8b133e64584 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/pom.xml b/legend-engine-xts-sql/pom.xml index e19e13f9fe3..4c510d06424 100644 --- a/legend-engine-xts-sql/pom.xml +++ b/legend-engine-xts-sql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml index ccc2b5a599a..b0bf9524ce1 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-text org.finos.legend.engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml index 9481130b2c5..1d269fdcee9 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml index 48e22f2db62..81a44be8675 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml index fcd4247b342..cec0df9a4a8 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/pom.xml b/legend-engine-xts-text/pom.xml index 52f5b99d0ee..e2d983b0e27 100644 --- a/legend-engine-xts-text/pom.xml +++ b/legend-engine-xts-text/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml index cfe98572773..baa0b0cfd34 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml index 348c7abc53e..d6153eed621 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml index 9f185fc6fab..0a939d3acd1 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml index e1c1a408ac8..b5b97f7100d 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml index db84f56c336..c01173ccad6 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/pom.xml b/legend-engine-xts-xml/pom.xml index e6910530ceb..fea4ff60005 100644 --- a/legend-engine-xts-xml/pom.xml +++ b/legend-engine-xts-xml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT 4.0.0 diff --git a/pom.xml b/pom.xml index 5ce5d59fd47..a35741e5ad2 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ Legend Engine org.finos.legend.engine legend-engine - 4.33.2 + 4.33.3-SNAPSHOT pom @@ -228,7 +228,7 @@ scm:git:https://github.com/finos/legend-engine - legend-engine-4.33.2 + HEAD From 6b2dc2ae8f80ab3567bc086196ae92a6ab98592a Mon Sep 17 00:00:00 2001 From: gs-jp1 <80327721+gs-jp1@users.noreply.github.com> Date: Wed, 1 Nov 2023 18:05:07 +0000 Subject: [PATCH 65/80] SQL - add support for decimal tds accessor (#2427) --- .../relational/pureToSQLQuery/pureToSQLQuery.pure | 2 +- .../relational/tds/tests/testTDSFilter.pure | 7 +++++++ 2 files changed, 8 insertions(+), 1 deletion(-) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/pureToSQLQuery.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/pureToSQLQuery.pure index fd9b0210b53..c638d3eac5c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/pureToSQLQuery.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/pureToSQLQuery.pure @@ -841,7 +841,7 @@ function meta::relational::functions::pureToSqlQuery::processQualifiedPropertyFu function meta::relational::functions::pureToSqlQuery::tdsQualifier(fe:FunctionExpression[1], operation:SelectWithCursor[1], vars:Map[1], state:State[1], extensions:Extension[*]):OperationWithParentPropertyMapping[1] { - let tdsProperties = ['getNumber', 'getInteger', 'getString', 'getFloat', 'getDate', 'getBoolean', 'getEnum', 'getDateTime', 'getStrictDate', 'isNull', 'isNotNull']; + let tdsProperties = ['getNumber', 'getInteger', 'getString', 'getFloat', 'getDate', 'getDecimal', 'getBoolean', 'getEnum', 'getDateTime', 'getStrictDate', 'isNull', 'isNotNull']; let funcName = $fe.func.functionName->toOne(); let valid = $tdsProperties->contains($funcName); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSFilter.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSFilter.pure index 6931d67c444..93aabe30d04 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSFilter.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSFilter.pure @@ -47,6 +47,13 @@ function <> meta::relational::tests::tds::tdsFilter::testFilterOnEnum assertEquals('select "root".NAME as "name", "root".TYPE as "type" from addressTable as "root" where "root".TYPE = 1', $result->sqlRemoveFormatting()); } +function <> meta::relational::tests::tds::tdsFilter::testFilterOnDecimal():Boolean[1] +{ + let result = execute(|Person.all()->project(col(p | 1.0d, 'decimal'))->filter({l|$l.getDecimal('decimal') == 2.0d}), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); + assertSize($result.values.rows, 0); + assertEquals('select 1.0 as "decimal" from personTable as "root" where 1.0 = 2.0', $result->sqlRemoveFormatting()); +} + function <> meta::relational::tests::tds::tdsFilter::testFilterTwoExpressions():Boolean[1] { let result = execute(|Person.all()->project([p | $p.firstName, p | $p.lastName], ['first', 'last'])->filter({r | $r.getString('first') == 'John' && $r.getString('last') == 'Johnson'}), simpleRelationalMapping, testRuntime(), meta::relational::extension::relationalExtensions()); From fcd855592525ff4db18c2b90def9f41f3d6ef9c0 Mon Sep 17 00:00:00 2001 From: FINOS Administrator <37706051+finos-admin@users.noreply.github.com> Date: Wed, 1 Nov 2023 22:29:37 +0000 Subject: [PATCH 66/80] [maven-release-plugin] prepare release legend-engine-4.33.3 --- legend-engine-application-query/pom.xml | 2 +- legend-engine-config/legend-engine-configuration/pom.xml | 2 +- .../legend-engine-connection-integration-tests/pom.xml | 2 +- .../legend-engine-extensions-collection-execution/pom.xml | 2 +- .../legend-engine-extensions-collection-generation/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-server-integration-tests/pom.xml | 2 +- .../legend-engine-server-support-core/pom.xml | 2 +- legend-engine-config/legend-engine-server/pom.xml | 2 +- legend-engine-config/pom.xml | 2 +- .../legend-engine-executionPlan-dependencies/pom.xml | 2 +- .../legend-engine-executionPlan-execution-api/pom.xml | 2 +- .../legend-engine-executionPlan-execution-authorizer/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-executionPlan-execution/pom.xml | 2 +- .../legend-engine-external-shared-format-runtime/pom.xml | 2 +- .../legend-engine-core-executionPlan-execution/pom.xml | 2 +- .../legend-engine-executionPlan-generation/pom.xml | 2 +- .../legend-engine-core-executionPlan-generation/pom.xml | 2 +- .../legend-engine-external-shared-format-model/pom.xml | 2 +- .../legend-engine-language-pure-compiler-api/pom.xml | 2 +- .../legend-engine-language-pure-compiler/pom.xml | 2 +- .../legend-engine-language-pure-grammar-api/pom.xml | 2 +- .../legend-engine-language-pure-grammar/pom.xml | 2 +- .../legend-engine-language-pure-modelManager-sdlc/pom.xml | 2 +- .../legend-engine-language-pure-modelManager/pom.xml | 2 +- .../legend-engine-protocol-api/pom.xml | 2 +- .../legend-engine-protocol-generation-pure/pom.xml | 2 +- .../legend-engine-protocol-generation/pom.xml | 2 +- .../legend-engine-protocol-pure/pom.xml | 2 +- .../legend-engine-protocol/pom.xml | 2 +- legend-engine-core/legend-engine-core-language-pure/pom.xml | 2 +- .../legend-engine-query-pure/pom.xml | 2 +- legend-engine-core/legend-engine-core-query-pure/pom.xml | 2 +- .../legend-engine-shared-core/pom.xml | 2 +- .../legend-engine-shared-javaCompiler/pom.xml | 2 +- legend-engine-core/legend-engine-core-shared/pom.xml | 2 +- .../legend-engine-test-data-generation/pom.xml | 2 +- .../legend-engine-test-runner-mapping/pom.xml | 2 +- .../legend-engine-test-runner-shared/pom.xml | 2 +- .../legend-engine-test-server-shared/pom.xml | 2 +- .../legend-engine-core-test/legend-engine-testable/pom.xml | 2 +- legend-engine-core/legend-engine-core-test/pom.xml | 2 +- legend-engine-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-functions/pom.xml | 2 +- .../legend-engine-pure-code-core-extension/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-code/pom.xml | 2 +- .../legend-engine-pure-ide-light-metadata-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-ide/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-diagram-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-graph-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-mapping-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-path-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-json-java/pom.xml | 2 +- .../legend-engine-pure-platform-java/pom.xml | 2 +- .../legend-engine-pure-platform-store-relational-java/pom.xml | 2 +- .../legend-engine-pure-platform-modular-generation/pom.xml | 2 +- .../legend-engine-pure-runtime-compiler/pom.xml | 2 +- .../legend-engine-pure-runtime-execution/pom.xml | 2 +- .../legend-engine-pure-runtime-extensions/pom.xml | 2 +- .../legend-engine-xt-java-runtime-compiler/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-runtime/pom.xml | 2 +- legend-engine-pure/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-api/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-binding/pom.xml | 2 +- .../legend-engine-xt-analytics-class-api/pom.xml | 2 +- .../legend-engine-xt-analytics-class-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-class/pom.xml | 2 +- .../legend-engine-xt-analytics-function-api/pom.xml | 2 +- .../legend-engine-xt-analytics-function-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-function/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-api/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-lineage/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-api/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-protocol/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-mapping/pom.xml | 2 +- .../legend-engine-xt-analytics-search-generation/pom.xml | 2 +- .../legend-engine-xt-analytics-search-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-search/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement-api/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement/pom.xml | 2 +- .../legend-engine-xts-analytics-store/pom.xml | 2 +- legend-engine-xts-analytics/pom.xml | 2 +- legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml | 2 +- .../legend-engine-xt-arrow-runtime/pom.xml | 2 +- legend-engine-xts-arrow/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-protocol/pom.xml | 2 +- .../legend-engine-xt-authentication-pure/pom.xml | 2 +- legend-engine-xts-authentication/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro/pom.xml | 2 +- legend-engine-xts-avro/pom.xml | 2 +- .../legend-engine-xt-changetoken-compiler/pom.xml | 2 +- .../legend-engine-xt-changetoken-pure/pom.xml | 2 +- legend-engine-xts-changetoken/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml | 2 +- legend-engine-xts-daml/pom.xml | 2 +- .../legend-engine-xt-data-push-server/pom.xml | 2 +- legend-engine-xts-data-push/pom.xml | 2 +- .../legend-engine-xt-data-space-api/pom.xml | 2 +- .../legend-engine-xt-data-space-compiler/pom.xml | 2 +- .../legend-engine-xt-data-space-generation/pom.xml | 2 +- .../legend-engine-xt-data-space-grammar/pom.xml | 2 +- .../legend-engine-xt-data-space-protocol/pom.xml | 2 +- .../legend-engine-xt-data-space-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-data-space-pure/pom.xml | 2 +- legend-engine-xts-data-space/pom.xml | 2 +- .../legend-engine-xt-diagram-api/pom.xml | 2 +- .../legend-engine-xt-diagram-compiler/pom.xml | 2 +- .../legend-engine-xt-diagram-grammar/pom.xml | 2 +- .../legend-engine-xt-diagram-protocol/pom.xml | 2 +- .../legend-engine-xt-diagram-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-diagram-pure/pom.xml | 2 +- legend-engine-xts-diagram/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-grammar/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-protocol/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-executionPlan-test/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-protocol-utils/pom.xml | 2 +- .../pom.xml | 2 +- legend-engine-xts-elasticsearch/pom.xml | 2 +- .../legend-engine-xt-flatdata-driver-bloomberg/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-flatdata-model/pom.xml | 2 +- .../legend-engine-xt-flatdata-pure/pom.xml | 2 +- .../legend-engine-xt-flatdata-runtime/pom.xml | 2 +- .../legend-engine-xt-flatdata-shared/pom.xml | 2 +- legend-engine-xts-flatdata/pom.xml | 2 +- .../legend-engine-xt-functionActivator-api/pom.xml | 2 +- .../legend-engine-xt-functionActivator-protocol/pom.xml | 2 +- .../legend-engine-xt-functionActivator-pure/pom.xml | 2 +- legend-engine-xts-functionActivator/pom.xml | 2 +- .../legend-engine-external-shared/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation/pom.xml | 2 +- .../legend-engine-xt-artifact-generation-api/pom.xml | 2 +- legend-engine-xts-generation/pom.xml | 2 +- .../legend-engine-xt-graphQL-compiler/pom.xml | 4 ++-- .../legend-engine-xt-graphQL-grammar-integration/pom.xml | 2 +- .../legend-engine-xt-graphQL-grammar/pom.xml | 2 +- .../legend-engine-xt-graphQL-protocol/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure/pom.xml | 2 +- .../legend-engine-xt-graphQL-query/pom.xml | 2 +- .../legend-engine-xt-graphQL-relational-extension/pom.xml | 2 +- legend-engine-xts-graphQL/pom.xml | 2 +- .../legend-engine-xt-haskell-grammar/pom.xml | 2 +- .../legend-engine-xt-haskell-protocol/pom.xml | 2 +- .../legend-engine-xt-haskell-pure/pom.xml | 2 +- legend-engine-xts-haskell/pom.xml | 2 +- .../legend-engine-xt-hostedService-api/pom.xml | 2 +- .../legend-engine-xt-hostedService-compiler/pom.xml | 2 +- .../legend-engine-xt-hostedService-generation/pom.xml | 2 +- .../legend-engine-xt-hostedService-grammar/pom.xml | 2 +- .../legend-engine-xt-hostedService-protocol/pom.xml | 2 +- .../legend-engine-xt-hostedService-pure/pom.xml | 2 +- legend-engine-xts-hostedService/pom.xml | 2 +- .../legend-engine-xt-iceberg-pure/pom.xml | 2 +- .../legend-engine-xt-iceberg-test-support/pom.xml | 2 +- legend-engine-xts-iceberg/pom.xml | 2 +- .../legend-engine-external-language-java/pom.xml | 2 +- .../legend-engine-xt-javaGeneration-featureBased-pure/pom.xml | 2 +- .../legend-engine-xt-javaGeneration-pure/pom.xml | 2 +- .../legend-engine-xt-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-java/pom.xml | 2 +- .../legend-engine-external-format-jsonSchema/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-pure/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-test/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-model/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml | 2 +- legend-engine-xts-json/pom.xml | 2 +- .../legend-engine-xt-mastery-grammar/pom.xml | 2 +- .../legend-engine-xt-mastery-protocol/pom.xml | 2 +- .../legend-engine-xt-mastery-pure/pom.xml | 2 +- legend-engine-xts-mastery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml | 2 +- legend-engine-xts-mongodb/pom.xml | 2 +- .../legend-engine-xt-morphir-pure/pom.xml | 2 +- legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml | 2 +- legend-engine-xts-morphir/pom.xml | 2 +- .../legend-engine-xt-openapi-generation/pom.xml | 2 +- .../legend-engine-xt-openapi-pure/pom.xml | 2 +- legend-engine-xts-openapi/pom.xml | 2 +- .../legend-engine-xt-persistence-api/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-component/pom.xml | 2 +- .../legend-engine-xt-persistence-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-test-runner/pom.xml | 2 +- legend-engine-xts-persistence/pom.xml | 2 +- .../legend-engine-xt-protobuf-grammar/pom.xml | 2 +- .../legend-engine-xt-protobuf-protocol/pom.xml | 2 +- .../legend-engine-xt-protobuf-pure/pom.xml | 2 +- legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml | 4 ++-- legend-engine-xts-protobuf/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-analytics/pom.xml | 2 +- .../legend-engine-xt-relationalStore-connection/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-reports/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-server/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino/pom.xml | 2 +- .../legend-engine-xt-relationalStore-dbExtension/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-executionPlan/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-api/pom.xml | 2 +- .../legend-engine-xt-relationalStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-generation/pom.xml | 2 +- legend-engine-xts-relationalStore/pom.xml | 2 +- .../legend-engine-xt-relationalai-pure/pom.xml | 2 +- legend-engine-xts-relationalai/pom.xml | 2 +- .../legend-engine-xt-rosetta-pure/pom.xml | 2 +- legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml | 2 +- legend-engine-xts-rosetta/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-execution/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service/pom.xml | 2 +- .../legend-engine-service-post-validation-runner/pom.xml | 2 +- .../legend-engine-services-model-api/pom.xml | 2 +- .../legend-engine-services-model/pom.xml | 2 +- .../legend-engine-test-runner-service/pom.xml | 2 +- legend-engine-xts-service/pom.xml | 2 +- .../legend-engine-xt-serviceStore-executionPlan/pom.xml | 2 +- .../legend-engine-xt-serviceStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-serviceStore-protocol/pom.xml | 2 +- .../legend-engine-xt-serviceStore-pure/pom.xml | 2 +- legend-engine-xts-serviceStore/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-api/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-compiler/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-generator/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-grammar/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-protocol/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-pure/pom.xml | 2 +- legend-engine-xts-snowflakeApp/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml | 2 +- .../legend-engine-xt-sql-grammar-integration/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml | 2 +- .../legend-engine-xt-sql-postgres-server/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml | 2 +- .../legend-engine-xt-sql-providers-core/pom.xml | 2 +- .../legend-engine-xt-sql-providers-relationalStore/pom.xml | 2 +- .../legend-engine-xt-sql-providers-service/pom.xml | 2 +- .../legend-engine-xt-sql-providers-shared/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml | 2 +- .../legend-engine-xt-sql-pure-metamodel/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml | 2 +- legend-engine-xts-sql/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml | 2 +- .../legend-engine-xt-text-pure-metamodel/pom.xml | 2 +- legend-engine-xts-text/pom.xml | 2 +- .../legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml | 2 +- legend-engine-xts-xml/pom.xml | 2 +- pom.xml | 4 ++-- 381 files changed, 384 insertions(+), 384 deletions(-) diff --git a/legend-engine-application-query/pom.xml b/legend-engine-application-query/pom.xml index 276a2170734..af100a6cf52 100644 --- a/legend-engine-application-query/pom.xml +++ b/legend-engine-application-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-application-query diff --git a/legend-engine-config/legend-engine-configuration/pom.xml b/legend-engine-config/legend-engine-configuration/pom.xml index 091aec4ceb1..1a01eb81928 100644 --- a/legend-engine-config/legend-engine-configuration/pom.xml +++ b/legend-engine-config/legend-engine-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-configuration diff --git a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml index f9533b4ec16..6dcd91ac065 100644 --- a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-connection-integration-tests diff --git a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml index 1f68efc06c7..68c5e55ca3d 100644 --- a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml index 99f94f07bf6..90c9f29ae25 100644 --- a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml index 735b10be984..201353ecf89 100644 --- a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml +++ b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-config/legend-engine-server-integration-tests/pom.xml b/legend-engine-config/legend-engine-server-integration-tests/pom.xml index e3030afe2a6..d329c36e807 100644 --- a/legend-engine-config/legend-engine-server-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-server-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-server-integration-tests diff --git a/legend-engine-config/legend-engine-server-support-core/pom.xml b/legend-engine-config/legend-engine-server-support-core/pom.xml index 4ac1cc9e087..3faaef66949 100644 --- a/legend-engine-config/legend-engine-server-support-core/pom.xml +++ b/legend-engine-config/legend-engine-server-support-core/pom.xml @@ -3,7 +3,7 @@ legend-engine-config org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index 1cf2eba5520..088f437877a 100644 --- a/legend-engine-config/legend-engine-server/pom.xml +++ b/legend-engine-config/legend-engine-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-server diff --git a/legend-engine-config/pom.xml b/legend-engine-config/pom.xml index 05cdcfe52df..cf7364c961d 100644 --- a/legend-engine-config/pom.xml +++ b/legend-engine-config/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml index 007abc81a3b..480e9952b8e 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-executionPlan-dependencies diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml index 801f9158ac8..d1ee9a696d4 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-executionPlan-execution-api diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml index dada7e1b997..ac316129822 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-core-executionPlan-execution org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml index 88e3723d7b8..3a360331ad2 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-executionPlan-execution-store-inMemory diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml index a4a68c5719a..2d570f554ba 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-executionPlan-execution diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml index 85ee086953a..68ceecb088e 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml index 0b1a5607c13..b4a5636702a 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml index 6bfe55333e0..5831fb0e831 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-generation - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml index 910a0d5446f..785e344c6dd 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml index 2648964ce4e..31fae9ec421 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml index da8a1280021..f23d0faa90d 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-language-pure-compiler-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml index d9a9d1ee0fb..f6bb053ea0d 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-language-pure-compiler diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml index eaa49ae0fc4..ae27516843c 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-language-pure-grammar-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml index fc058f7e987..bc8719036a3 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-language-pure-grammar diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml index 9a09819f703..3e704a2d37c 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-language-pure-modelManager-sdlc diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml index c1f18807b6d..85bedfd1824 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-language-pure-modelManager diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml index dec94801a4f..676f9cdd159 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-protocol-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml index 9d47ed6f6cf..fd7f0851f9c 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-protocol-generation-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml index 29bea90b1a3..0419f4db9dc 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-protocol-generation diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml index 6fef14690e8..f91d1597449 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-protocol-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml index c8a0c8d7a31..c06134e0810 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-protocol diff --git a/legend-engine-core/legend-engine-core-language-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/pom.xml index 3020fb3f661..a6ad5499b56 100644 --- a/legend-engine-core/legend-engine-core-language-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml index 116a841a683..10ceedde011 100644 --- a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-query-pure - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-query-pure diff --git a/legend-engine-core/legend-engine-core-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/pom.xml index cb133d91bb7..96dec1d43c7 100644 --- a/legend-engine-core/legend-engine-core-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml index 9e009c23fb8..4cc08e75715 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-shared-core diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml index f4932e8d604..284992cf4a7 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-shared-javaCompiler diff --git a/legend-engine-core/legend-engine-core-shared/pom.xml b/legend-engine-core/legend-engine-core-shared/pom.xml index 0cfb9a7be0f..ef4c1b09952 100644 --- a/legend-engine-core/legend-engine-core-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml index c4476e6b311..f1ddebde92a 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml index 5a0c7b1a74e..67e2f116da4 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml index 9c36fac5ea1..755ac0828c2 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-test-runner-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml index 4422c35937a..79c6ab61d93 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-test-server-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml index 3d5f5dd5b17..c5f2302eff8 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-testable diff --git a/legend-engine-core/legend-engine-core-test/pom.xml b/legend-engine-core/legend-engine-core-test/pom.xml index f608dd8460b..c8d041a825e 100644 --- a/legend-engine-core/legend-engine-core-test/pom.xml +++ b/legend-engine-core/legend-engine-core-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-core/pom.xml b/legend-engine-core/pom.xml index ea53132e840..ca5303af1ef 100644 --- a/legend-engine-core/pom.xml +++ b/legend-engine-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml index 87ddb546be9..9d497e52185 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.33.3-SNAPSHOT + 4.33.3 legend-engine-pure-code-compiled-core diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml index 4cc6222b929..2c9ae42b127 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.33.3-SNAPSHOT + 4.33.3 legend-engine-pure-code-compiled-functions diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml index aff8f4a2101..fbc580be7e8 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.33.3-SNAPSHOT + 4.33.3 legend-engine-pure-code-core-extension diff --git a/legend-engine-pure/legend-engine-pure-code/pom.xml b/legend-engine-pure/legend-engine-pure-code/pom.xml index 65cffbda3e5..1e336b8d4b9 100644 --- a/legend-engine-pure/legend-engine-pure-code/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml index 4c416358a0d..923f9a90599 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml index 7576f052b8f..9478aff009d 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml index 61991f8692e..16ae9172eb9 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/pom.xml b/legend-engine-pure/legend-engine-pure-ide/pom.xml index 8aa756c02af..207fbd9f7dc 100644 --- a/legend-engine-pure/legend-engine-pure-ide/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml index 41459d18a30..7481c23928f 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.3-SNAPSHOT + 4.33.3 legend-engine-pure-platform-dsl-diagram-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml index 798b14212f3..7a429c699fe 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.3-SNAPSHOT + 4.33.3 legend-engine-pure-platform-dsl-graph-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml index f3cab9cf6ca..2e2c4bf6ad3 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.3-SNAPSHOT + 4.33.3 legend-engine-pure-platform-dsl-mapping-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml index 057811e17e2..1bec931aae9 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.3-SNAPSHOT + 4.33.3 legend-engine-pure-platform-dsl-path-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml index 630f922731e..6dda7826020 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.3-SNAPSHOT + 4.33.3 legend-engine-pure-platform-functions-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml index 08076e53be5..7b87f2f2adb 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.3-SNAPSHOT + 4.33.3 legend-engine-pure-platform-functions-json-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml index ca903aadf69..392ea927639 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.3-SNAPSHOT + 4.33.3 legend-engine-pure-platform-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml index d0a72cc1c40..9e661e1b0af 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.3-SNAPSHOT + 4.33.3 legend-engine-pure-platform-store-relational-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml index d5f696ace78..cd8f99bc655 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml index cf2d2b1bbe9..840ac91c060 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml index 11c33be957f..ccd112a2a66 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml index 334f0bdf0dc..f27dc0b36a6 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml index 07dd117d110..cb217692398 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.33.3-SNAPSHOT + 4.33.3 legend-engine-xt-java-runtime-compiler diff --git a/legend-engine-pure/legend-engine-pure-runtime/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/pom.xml index 2c09a8a7e6e..0037edb1267 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-pure/pom.xml b/legend-engine-pure/pom.xml index b4c9539c54e..535570a86ec 100644 --- a/legend-engine-pure/pom.xml +++ b/legend-engine-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml index f726109b536..0620e176891 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml index b79bc30fd9b..a64f1cd2e57 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml index 55c77b858e8..161578c2031 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml index 9f04b98b22e..bb18a501b9c 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml index 92ef562cda7..74a02578fac 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml index e5f160b6743..0d674292abe 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml index dc4ea1cdb22..86b98dc998c 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml index af9f8397951..b792df12a30 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml index 601e8778ba7..9d98661f845 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml index 92b9b641c23..26b7e3e1391 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml index e590e39f9f4..5698548d5d5 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml index 8683f8f0e9f..f549862b8bf 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml index 68660218660..74ff9ca045b 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 Legend Engine - XT - Analytics - Mapping - API diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml index 60eff48637c..cc0b1ff4c10 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-mapping - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 Legend Engine - XT - Analytics - Mapping - Protocol diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml index 472993f6cc4..820f5f05079 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml index 63d3a5aeddd..bd12fa257e2 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml index 5e8a6327092..e801c3fad8a 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-search - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml index f98a5f2aaff..eb9cbaeeafe 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-search org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml index f0fdb0d744f..167f5019a91 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml index 277f985c712..6a278feb19c 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-xt-analytics-store-entitlement-api diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml index b4bae91158a..50093aa1f69 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml index ad2f26ae69c..7b176b0d9a7 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-analytics/pom.xml b/legend-engine-xts-analytics/pom.xml index e1285f9d632..1704ffe9aee 100644 --- a/legend-engine-xts-analytics/pom.xml +++ b/legend-engine-xts-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml index 9c8c4cea993..df71aae2132 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml index 194a9b91b65..e7790378f1d 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-arrow/pom.xml b/legend-engine-xts-arrow/pom.xml index f7e34b601a3..f87da82874d 100644 --- a/legend-engine-xts-arrow/pom.xml +++ b/legend-engine-xts-arrow/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 legend-engine-xts-arrow diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml index 35859cbfba0..9f35d5b4889 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml index 16758c6f285..dc4a96158e9 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml index 078618fd67f..b12d58f0bca 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml index 6e1ba673faf..0405828b686 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml index 76c5268dd84..6f05e934b33 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml index eb1534564e5..e190a1724f5 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml index acdccf7bc92..6ec8da4a3a2 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-authentication/pom.xml b/legend-engine-xts-authentication/pom.xml index d3c647fdcb2..e085f51332e 100644 --- a/legend-engine-xts-authentication/pom.xml +++ b/legend-engine-xts-authentication/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml index 6b1e0610f45..e29a1db405c 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml index 6bf4acee4cc..e31fca84527 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-avro/pom.xml b/legend-engine-xts-avro/pom.xml index 2d4569a351a..5849d2b02f9 100644 --- a/legend-engine-xts-avro/pom.xml +++ b/legend-engine-xts-avro/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml index 0a91a952a38..94eb2d514e1 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-changetoken org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml index 49b2296f466..819711b75b2 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-changetoken - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-changetoken/pom.xml b/legend-engine-xts-changetoken/pom.xml index 893baff639b..1a8906ab8a9 100644 --- a/legend-engine-xts-changetoken/pom.xml +++ b/legend-engine-xts-changetoken/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml index 1de6e33c65c..0d32b89c09f 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml index 97650598df6..a9a1b7a4359 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml index 651d3c8d600..e047f10f916 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-daml/pom.xml b/legend-engine-xts-daml/pom.xml index 1c5a38b0a91..bc24620b52b 100644 --- a/legend-engine-xts-daml/pom.xml +++ b/legend-engine-xts-daml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml index 2bad33f96e3..08edd9c37f3 100644 --- a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml +++ b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-data-push org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-data-push/pom.xml b/legend-engine-xts-data-push/pom.xml index 27c2972c5a4..c91e44dee8d 100644 --- a/legend-engine-xts-data-push/pom.xml +++ b/legend-engine-xts-data-push/pom.xml @@ -3,7 +3,7 @@ legend-engine org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml index e9009086e76..07906a8d10f 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml index 21b2882a9a2..1b8e1245104 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-data-space org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml index ddd00b68d5e..b3594c0ffef 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml index a8ab164dd9b..0198f4e2ae8 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml index 698258aa7c7..dddb6035618 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml index ec6336b6e9b..af0b3b81051 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml index a0ed6dc7819..a3f60ea0a12 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-data-space/pom.xml b/legend-engine-xts-data-space/pom.xml index 42ff0728e34..4c96fb4280e 100644 --- a/legend-engine-xts-data-space/pom.xml +++ b/legend-engine-xts-data-space/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml index 6e8b7f6226e..fd6f0e2393c 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml index 97062a1acd5..7b802a5d54b 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-diagram org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml index 42cc90de18c..e6fb831ddcd 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml index 2a2c188aa64..808b77c4b05 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml index 6dc51b6a5d0..00c390e97a5 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml index c7cdff6178a..1040e188aac 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-diagram/pom.xml b/legend-engine-xts-diagram/pom.xml index ed116041594..4bd1348a469 100644 --- a/legend-engine-xts-diagram/pom.xml +++ b/legend-engine-xts-diagram/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml index 43d703e8543..81f6e4a0d9d 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml index 6c510ca6c55..b3cc84e6e5c 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml index 9e725622612..bd9d4496fa5 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml index 1b26a2dd831..2f3a15369e8 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml index c0992371f54..1bdbf0c710a 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml index 63cf13905e9..4f5684b781b 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.3-SNAPSHOT + 4.33.3 legend-engine-xt-elasticsearch-protocol-utils diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml index b7e245dc184..f2905807f14 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-elasticsearch/pom.xml b/legend-engine-xts-elasticsearch/pom.xml index df2508360bd..73512be7ef5 100644 --- a/legend-engine-xts-elasticsearch/pom.xml +++ b/legend-engine-xts-elasticsearch/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml index 0826286226b..5ab1f20dd7c 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-flatdata org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml index 92e906749a9..b51bb382acf 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml index 9d8224e63ef..33b55717cdd 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml index 78fb36bdfe9..e0286ab9ef2 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml index 0a8f3454857..3300234efe6 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml index 1e6cfe2823b..c40a651a369 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml index 80972cf3683..202dfd69f02 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-flatdata/pom.xml b/legend-engine-xts-flatdata/pom.xml index d79677f40f4..b00681f8ead 100644 --- a/legend-engine-xts-flatdata/pom.xml +++ b/legend-engine-xts-flatdata/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml index 315f9990874..065ba3fc5c9 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml index 0053552e56e..7c674254600 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml index 2714c814bca..dd587e9f2a3 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-functionActivator/pom.xml b/legend-engine-xts-functionActivator/pom.xml index 8a7b21fa078..2b7870da363 100644 --- a/legend-engine-xts-functionActivator/pom.xml +++ b/legend-engine-xts-functionActivator/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml index 1279df3c2a7..403fb7de055 100644 --- a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml +++ b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml index a937bd902be..df2c0ff6631 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml index 14db2e54ef8..465993d79bf 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-language-pure-dsl-generation diff --git a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml index 03c2c9551c2..99f9edf2aa3 100644 --- a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml +++ b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-generation org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-generation/pom.xml b/legend-engine-xts-generation/pom.xml index f30258915e9..f36db6da156 100644 --- a/legend-engine-xts-generation/pom.xml +++ b/legend-engine-xts-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml index 308355c0ca2..6f7348caf1c 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 @@ -73,7 +73,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.33.3-SNAPSHOT + 4.33.3 org.finos.legend.pure diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml index c84408aa16d..e9a356d8256 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml index f45ff2c78ff..23d4bebb93f 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml index 0b0183a4221..f86ae415d58 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml index 3cedddf46e1..f62ff9c9ef4 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml index 459d756f1ff..63b9c8e543c 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml index 52db1b9fb95..07b5fed4567 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml index 5a6d9d2f0dc..e15c6f54214 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-graphQL/pom.xml b/legend-engine-xts-graphQL/pom.xml index c07ffc9f940..16a5116d6c6 100644 --- a/legend-engine-xts-graphQL/pom.xml +++ b/legend-engine-xts-graphQL/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml index c83cfea8ae3..3ded6116976 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml index e09844e1819..09619908672 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml index 50a6cc31c84..e6f416e7eaa 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-haskell/pom.xml b/legend-engine-xts-haskell/pom.xml index 5579be4e1ac..a1a2cb0f67b 100644 --- a/legend-engine-xts-haskell/pom.xml +++ b/legend-engine-xts-haskell/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml index 02159e8c4ef..9b765f73ee0 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml index f3fcd37e63e..bc4e9c2bc43 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml index ead31450995..d790eb92073 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml index 630e2e5d34f..ac9bbbfbd17 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml index 5b6537558ae..9dcd34d8459 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml index 4f9a284bd5c..a74a225f146 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-hostedService/pom.xml b/legend-engine-xts-hostedService/pom.xml index 66102a5785f..136b9f7499d 100644 --- a/legend-engine-xts-hostedService/pom.xml +++ b/legend-engine-xts-hostedService/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml index 833fce8130e..07a61e3c760 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml index ba159478667..9f7a482ef13 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-iceberg/pom.xml b/legend-engine-xts-iceberg/pom.xml index 5fd0c74526c..7f54d7c0aec 100644 --- a/legend-engine-xts-iceberg/pom.xml +++ b/legend-engine-xts-iceberg/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml index 2b6b248f08e..bbe76eebb4c 100644 --- a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml +++ b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml index 7faad9958c1..c3a2dc6fee8 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml index 592b634ad26..490b63880e8 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml index 26c60635051..b0809d27378 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-java/pom.xml b/legend-engine-xts-java/pom.xml index f3397440064..c2ea97d83b7 100644 --- a/legend-engine-xts-java/pom.xml +++ b/legend-engine-xts-java/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml index 5a3a32ea9e0..10d7126118b 100644 --- a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml +++ b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml index f2caf272686..5c2209502d3 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml index 76f3edcb4d8..10db532f163 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml index b25390e4719..8dce3b541ae 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml index 1bdcca08fe1..5f4cc60beea 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml index bf944e18425..c8d964aa61d 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-json/pom.xml b/legend-engine-xts-json/pom.xml index 2d977bc31ce..dcf02e68437 100644 --- a/legend-engine-xts-json/pom.xml +++ b/legend-engine-xts-json/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml index 22afacd56c2..c82e66dafc0 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-mastery org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml index 5fc600c6330..66242a28c1c 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml index 83b49a0da73..2beb574c5f5 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-mastery/pom.xml b/legend-engine-xts-mastery/pom.xml index 4d081f0646c..26ed7d44bc0 100644 --- a/legend-engine-xts-mastery/pom.xml +++ b/legend-engine-xts-mastery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml index cb848c5b0e7..1a3aaae75ab 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml index 01f88869fb2..dbabfb6901c 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.3-SNAPSHOT + 4.33.3 legend-engine-xt-nonrelationalStore-mongodb-executionPlan diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml index b2e4f4c2647..da493279eca 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.3-SNAPSHOT + 4.33.3 legend-engine-xt-nonrelationalStore-mongodb-grammar-integration diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml index 1ab8bdd03a4..8b9be0fd13b 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.3-SNAPSHOT + 4.33.3 legend-engine-xt-nonrelationalStore-mongodb-grammar diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml index b503e66c136..1f1804520d3 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.3-SNAPSHOT + 4.33.3 legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml index 5f60e2fa2f6..e75fe2cc927 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.3-SNAPSHOT + 4.33.3 legend-engine-xt-nonrelationalStore-mongodb-protocol diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml index f948a3aabe3..25793fb869d 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.3-SNAPSHOT + 4.33.3 legend-engine-xt-nonrelationalStore-mongodb-pure diff --git a/legend-engine-xts-mongodb/pom.xml b/legend-engine-xts-mongodb/pom.xml index 2a931a03132..f66a45e1e2e 100644 --- a/legend-engine-xts-mongodb/pom.xml +++ b/legend-engine-xts-mongodb/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml index 5c396eaa91b..746c9f886cb 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-morphir - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml index e999556c626..5dae3ec183f 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-morphir org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-morphir/pom.xml b/legend-engine-xts-morphir/pom.xml index 796a609b69e..db0d1d8436a 100644 --- a/legend-engine-xts-morphir/pom.xml +++ b/legend-engine-xts-morphir/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml index a263f694314..e156dc0a171 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.33.3-SNAPSHOT + 4.33.3 legend-engine-xt-openapi-generation diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml index 068326ae273..b90349c2087 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.33.3-SNAPSHOT + 4.33.3 legend-engine-xt-openapi-pure diff --git a/legend-engine-xts-openapi/pom.xml b/legend-engine-xts-openapi/pom.xml index 3297d2ebd66..de8c4d48503 100644 --- a/legend-engine-xts-openapi/pom.xml +++ b/legend-engine-xts-openapi/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml index 712f03f7fc5..1462b3d4e48 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml index 97ca93f538b..636e49e3d95 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml index 14f023bcdee..c41c6420a8b 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml index dd7f18f5afb..b2e68f4cb4f 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml index 7c0a817dd79..ca28b0a8760 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml index a960958a8b7..98f8aef33ac 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml index 83f3b5116c1..14739e87930 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml index 6066f0e2fb1..d7725743add 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml index 7ba9f828d81..2a515e2ad70 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml index c50d59c7dfe..550efb7653a 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml index 34710f34243..6061fc862f0 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml index aca54ad6176..184a9c52211 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml index 3491c5daaaa..4fee726a36b 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml index 3b2e316c8aa..4b44aad28f7 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml index 6782031ef56..70ab80eb0c5 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml index 8cfdea0adbf..8b560ccd92f 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml index 355868e2328..668d3cb82c3 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml index db9a1b967db..f1fdcbb50d4 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml index 28a066b8378..00f9a406307 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml index 8397a78ccd2..d3d664621ed 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml index 881fe61f6d7..00edb63f46a 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-persistence/pom.xml b/legend-engine-xts-persistence/pom.xml index 1e71361ff4f..3bd3ca335ad 100644 --- a/legend-engine-xts-persistence/pom.xml +++ b/legend-engine-xts-persistence/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml index 88be2704f6e..4f0e074ae51 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-xt-protobuf-grammar diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml index 62a0eb6f928..90ba607017b 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-xt-protobuf-protocol diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml index f11035532e7..700a68982e7 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml index 46b9b195a2a..e413644a73c 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 @@ -57,7 +57,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.33.3-SNAPSHOT + 4.33.3 org.finos.legend.pure diff --git a/legend-engine-xts-protobuf/pom.xml b/legend-engine-xts-protobuf/pom.xml index a5178d6653e..214e6153c8d 100644 --- a/legend-engine-xts-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml index 6633e45dafe..10063218cba 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml index 2023af4cfe4..d97c119182a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml index 07a4e7ba1d9..a6965109290 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml index 19827d1122d..249d9c75b90 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml index 00d78977fee..2db81ead11a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml index 53e963731aa..cfe563a1aeb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml index eb55f178f60..8780c4a32ca 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml index 2eacdbd8ab9..1d43ad35357 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml index 09fb3ef0414..d409361835a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml index 30cbe4e2e4f..8df047419c3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml index 5b8659dce5e..ea7a4b2bc3a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-bigquery org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml index ec5a0f2198d..4cf7754e56f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml index 151d8a51cb3..ecff9193228 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml index 84e7d721226..5240d7ba0d1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml index 28992f6a067..bc3475894aa 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml index a8147eb76de..d1fdf678a94 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml index 2c04678aa30..9ec2973cdcb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml index c7744226a58..64df2e0ac73 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml index 08ce5919f43..acb7578ff76 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml index aa74d37dc4a..af7804319dc 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml index c063c7a76fb..3d3082ae76a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml index 991636067b7..af8dd68b9e5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml index 8733a6b3902..783e4b083e8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-dbExtension org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml index 58a125d6db3..c8b65f04bd8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-hive - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml index 3d008f7e041..2d485a8327f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml index a4cae974288..ad715e41c2f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml index 15ad4372d9e..d5af3deab16 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-memsql org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml index 4aa966a937e..70d14396dd0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.33.3-SNAPSHOT + 4.33.3 legend-engine-xt-relationalStore-memsql-execution diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml index 2ccb2cc7410..44f76f2b3be 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.33.3-SNAPSHOT + 4.33.3 legend-engine-xt-relationalStore-memsql-pure diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml index 7ce98612d1e..b56f1c25cce 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml index 398019481af..25cb6de4721 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml index b0d7df0665d..9d2cf18b20e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml index e99b52a2324..73f4ace91be 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml index 5d73a9ca58a..0be091911b3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml index 8d3d184e616..5398d937537 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml index eb87fab8ecd..ad63479597c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml index 118015c3f3d..660e7155514 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-presto - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml index 91058c00492..93b50551714 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml index 05f5e8c5c8b..7d0f3f46f34 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml index b8b02b5ba49..182fbf20ee1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml index 282dbd8836d..8756b3417f2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml index 7d837ecfb7f..9ba94e92371 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml index cad37235ef4..9694a613b82 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml index 41363281b61..ebb4fc40fa0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml index 01779b82456..3841e2deb95 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml index d8687482a61..54987864d47 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml index e8fcd5ea447..ed3b2aaff2a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml index 4485940bae1..2b0dbf3c30a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml index 8aba95148f6..a5cbbcf3e00 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml index 73b7b38f070..1c8f861f6e9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml index 2c458a56ff1..403ade2475e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml index 6b1afbffdb2..817bbfe0e4d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml index 1d67c32180a..f8bb232907c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml index 563ddb13038..4f4dd8cb062 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml index d8551ba9fa6..d8675cb508f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml index cacaea0a781..afb6fb780f7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml index 654724c236d..6fd1af21f15 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml index 9679d9a7f0c..f711279c23e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml index 25cc8bc5ff6..f01e2cefc84 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sparksql - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml index e670b090e71..13e6be441a1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml index 287f8f18501..ad51c355808 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml index 76e06257a63..946050627be 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-xt-relationalStore-sqlserver-execution-tests diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml index 522f71d7487..e91bfa89cfe 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml index 808fdedfbcd..f1f451f0399 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml index 9deed99a342..855d20e9ecd 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml index cfccaf30020..16b5198c156 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybase - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml index 0ae1b436398..792a2b70005 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml index 36e182d9855..78b01d8af76 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybaseiq - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml index 706a30b6c58..09fc6280478 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml index 7678f14a121..7e60c5057f7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-xt-relationalStore-test-reports diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml index f70171516bd..3083f641e96 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-xt-relationalStore-test-server diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml index 7c8761bdc3c..f0ce361b7ad 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml index f20d4f66e31..8fac22432f9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml index 161a7fb12d7..744e236f385 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml index d8e4f4a6364..d695fb254dd 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml index f849805f603..d0a52b4604c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml index 0b997bd3232..bd584121b9e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml index 7796609e78d..9c8a245885b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml index b8180c5cd81..186cd72a791 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml index 8eabb430b50..4d15065d89d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml index 8690a1c51d3..2755bede01f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication-default diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml index d18438bd175..ab88069ffa1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml index ab00e8d8529..1086a42df1b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 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 0ccaeb4fed8..076e77c6c90 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 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 886c7488500..5139377535a 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml index cd667d9c399..3a51d812490 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml index 52254623f46..be2c1da5f9f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml index 0f3e07e9829..ea568c97b40 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml index c77916dfc1c..fcf60385384 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml index da20bd5896b..46c00ab3743 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml index 3f3267b91d2..2a6e67adad3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml index 38bad3053c3..f5c2d8e0fd4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml index 66f45f26578..7242d201502 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml index 209b40fbc74..6360705ede4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalStore/pom.xml b/legend-engine-xts-relationalStore/pom.xml index 5ef3724b648..5e0af34b8df 100644 --- a/legend-engine-xts-relationalStore/pom.xml +++ b/legend-engine-xts-relationalStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml index bb942cfc8c9..317b096639a 100644 --- a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalai - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-relationalai/pom.xml b/legend-engine-xts-relationalai/pom.xml index 24573cb5c2d..9cd768fe724 100644 --- a/legend-engine-xts-relationalai/pom.xml +++ b/legend-engine-xts-relationalai/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml index 84ce2e6d6b7..4e7676b2377 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml index 17ec7efe18a..b54bc174f51 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-rosetta/pom.xml b/legend-engine-xts-rosetta/pom.xml index 9296ef45662..f297feeb4a4 100644 --- a/legend-engine-xts-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml index 20c7f2f7c2d..9ac39668be8 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-language-pure-dsl-service-execution diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml index 0207b929c21..2eb59ebb159 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml index 0f5582428ad..5f24b745a37 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml index 982758bf5a8..3256fce6305 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-language-pure-dsl-service diff --git a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml index 14df536d416..68f6c1588a4 100644 --- a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml +++ b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml index f34a9f011ea..ffd663dff79 100644 --- a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-services-model-api diff --git a/legend-engine-xts-service/legend-engine-services-model/pom.xml b/legend-engine-xts-service/legend-engine-services-model/pom.xml index ae48934b5b4..e1d68719711 100644 --- a/legend-engine-xts-service/legend-engine-services-model/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 legend-engine-services-model diff --git a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml index 29bd6c6aea6..5e52264376d 100644 --- a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-service/pom.xml b/legend-engine-xts-service/pom.xml index c07e896a5bb..cc0d4261287 100644 --- a/legend-engine-xts-service/pom.xml +++ b/legend-engine-xts-service/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml index 556bb092fe3..468986bcdde 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml index 1b2daf82aae..75a52a170f8 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml index 1124d3482ac..18fedb66eb0 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml index 9a26edd5993..7d7f128ecdd 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml index b0405806667..2bae6a84d49 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-serviceStore/pom.xml b/legend-engine-xts-serviceStore/pom.xml index 35db9fa1a0f..75acf7db995 100644 --- a/legend-engine-xts-serviceStore/pom.xml +++ b/legend-engine-xts-serviceStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml index 5ebd9f161f7..87ad9a20fce 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml index 22f1a7f107d..07fe692e6ea 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-snowflakeApp org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml index 00d2f2e8c12..422321945dd 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml index b72ce92a9e2..0324486ee6c 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml index 3f463f665ae..d8bfcfa5677 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml index efca288c498..8cef3021325 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/pom.xml b/legend-engine-xts-snowflakeApp/pom.xml index 95dd7724a80..b39efdd2e9e 100644 --- a/legend-engine-xts-snowflakeApp/pom.xml +++ b/legend-engine-xts-snowflakeApp/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml index 91c277f76bf..a099ff98ca0 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml index 583ee4a7071..53a71f0abac 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml index 1d2ebc914af..817435246e1 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml index 8cc311eb4ea..fa3615f5b72 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-sql org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml index 1ed331e781a..bbe8e240dd9 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml index a855103b784..629dcd9a5d7 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml index 8a0f8e9c9da..86c887534cb 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml index 50690bcf082..dc4d0451cf7 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml index b7a739223ab..b771564f5ae 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml index 9e40685506e..37bdb18cccb 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml index 29bd1fdd4a5..977f2190b13 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml index cd6d990069e..4b90fe384b7 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml index 8b133e64584..830c13a0c2c 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-sql/pom.xml b/legend-engine-xts-sql/pom.xml index 4c510d06424..593385cb74f 100644 --- a/legend-engine-xts-sql/pom.xml +++ b/legend-engine-xts-sql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml index b0bf9524ce1..b775cc982ee 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-text org.finos.legend.engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml index 1d269fdcee9..2a82f4342db 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml index 81a44be8675..686b6faf322 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml index cec0df9a4a8..65b4b5519cd 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-text/pom.xml b/legend-engine-xts-text/pom.xml index e2d983b0e27..64751c830c7 100644 --- a/legend-engine-xts-text/pom.xml +++ b/legend-engine-xts-text/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml index baa0b0cfd34..c34345530e1 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml index d6153eed621..9daaf948c1e 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml index 0a939d3acd1..f1c7868a58d 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml index b5b97f7100d..8e57a246dd7 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml index c01173ccad6..f226d9baf94 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/legend-engine-xts-xml/pom.xml b/legend-engine-xts-xml/pom.xml index fea4ff60005..7860f314868 100644 --- a/legend-engine-xts-xml/pom.xml +++ b/legend-engine-xts-xml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 4.0.0 diff --git a/pom.xml b/pom.xml index a35741e5ad2..4e29dd7bd9a 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ Legend Engine org.finos.legend.engine legend-engine - 4.33.3-SNAPSHOT + 4.33.3 pom @@ -228,7 +228,7 @@ scm:git:https://github.com/finos/legend-engine - HEAD + legend-engine-4.33.3 From 1358bcf73180f8e54849c9d34d5504d9173c8d50 Mon Sep 17 00:00:00 2001 From: FINOS Administrator <37706051+finos-admin@users.noreply.github.com> Date: Wed, 1 Nov 2023 22:29:42 +0000 Subject: [PATCH 67/80] [maven-release-plugin] prepare for next development iteration --- legend-engine-application-query/pom.xml | 2 +- legend-engine-config/legend-engine-configuration/pom.xml | 2 +- .../legend-engine-connection-integration-tests/pom.xml | 2 +- .../legend-engine-extensions-collection-execution/pom.xml | 2 +- .../legend-engine-extensions-collection-generation/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-server-integration-tests/pom.xml | 2 +- .../legend-engine-server-support-core/pom.xml | 2 +- legend-engine-config/legend-engine-server/pom.xml | 2 +- legend-engine-config/pom.xml | 2 +- .../legend-engine-executionPlan-dependencies/pom.xml | 2 +- .../legend-engine-executionPlan-execution-api/pom.xml | 2 +- .../legend-engine-executionPlan-execution-authorizer/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-executionPlan-execution/pom.xml | 2 +- .../legend-engine-external-shared-format-runtime/pom.xml | 2 +- .../legend-engine-core-executionPlan-execution/pom.xml | 2 +- .../legend-engine-executionPlan-generation/pom.xml | 2 +- .../legend-engine-core-executionPlan-generation/pom.xml | 2 +- .../legend-engine-external-shared-format-model/pom.xml | 2 +- .../legend-engine-language-pure-compiler-api/pom.xml | 2 +- .../legend-engine-language-pure-compiler/pom.xml | 2 +- .../legend-engine-language-pure-grammar-api/pom.xml | 2 +- .../legend-engine-language-pure-grammar/pom.xml | 2 +- .../legend-engine-language-pure-modelManager-sdlc/pom.xml | 2 +- .../legend-engine-language-pure-modelManager/pom.xml | 2 +- .../legend-engine-protocol-api/pom.xml | 2 +- .../legend-engine-protocol-generation-pure/pom.xml | 2 +- .../legend-engine-protocol-generation/pom.xml | 2 +- .../legend-engine-protocol-pure/pom.xml | 2 +- .../legend-engine-protocol/pom.xml | 2 +- legend-engine-core/legend-engine-core-language-pure/pom.xml | 2 +- .../legend-engine-query-pure/pom.xml | 2 +- legend-engine-core/legend-engine-core-query-pure/pom.xml | 2 +- .../legend-engine-shared-core/pom.xml | 2 +- .../legend-engine-shared-javaCompiler/pom.xml | 2 +- legend-engine-core/legend-engine-core-shared/pom.xml | 2 +- .../legend-engine-test-data-generation/pom.xml | 2 +- .../legend-engine-test-runner-mapping/pom.xml | 2 +- .../legend-engine-test-runner-shared/pom.xml | 2 +- .../legend-engine-test-server-shared/pom.xml | 2 +- .../legend-engine-core-test/legend-engine-testable/pom.xml | 2 +- legend-engine-core/legend-engine-core-test/pom.xml | 2 +- legend-engine-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-functions/pom.xml | 2 +- .../legend-engine-pure-code-core-extension/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-code/pom.xml | 2 +- .../legend-engine-pure-ide-light-metadata-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-ide/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-diagram-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-graph-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-mapping-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-path-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-json-java/pom.xml | 2 +- .../legend-engine-pure-platform-java/pom.xml | 2 +- .../legend-engine-pure-platform-store-relational-java/pom.xml | 2 +- .../legend-engine-pure-platform-modular-generation/pom.xml | 2 +- .../legend-engine-pure-runtime-compiler/pom.xml | 2 +- .../legend-engine-pure-runtime-execution/pom.xml | 2 +- .../legend-engine-pure-runtime-extensions/pom.xml | 2 +- .../legend-engine-xt-java-runtime-compiler/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-runtime/pom.xml | 2 +- legend-engine-pure/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-api/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-binding/pom.xml | 2 +- .../legend-engine-xt-analytics-class-api/pom.xml | 2 +- .../legend-engine-xt-analytics-class-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-class/pom.xml | 2 +- .../legend-engine-xt-analytics-function-api/pom.xml | 2 +- .../legend-engine-xt-analytics-function-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-function/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-api/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-lineage/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-api/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-protocol/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-mapping/pom.xml | 2 +- .../legend-engine-xt-analytics-search-generation/pom.xml | 2 +- .../legend-engine-xt-analytics-search-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-search/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement-api/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement/pom.xml | 2 +- .../legend-engine-xts-analytics-store/pom.xml | 2 +- legend-engine-xts-analytics/pom.xml | 2 +- legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml | 2 +- .../legend-engine-xt-arrow-runtime/pom.xml | 2 +- legend-engine-xts-arrow/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-protocol/pom.xml | 2 +- .../legend-engine-xt-authentication-pure/pom.xml | 2 +- legend-engine-xts-authentication/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro/pom.xml | 2 +- legend-engine-xts-avro/pom.xml | 2 +- .../legend-engine-xt-changetoken-compiler/pom.xml | 2 +- .../legend-engine-xt-changetoken-pure/pom.xml | 2 +- legend-engine-xts-changetoken/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml | 2 +- legend-engine-xts-daml/pom.xml | 2 +- .../legend-engine-xt-data-push-server/pom.xml | 2 +- legend-engine-xts-data-push/pom.xml | 2 +- .../legend-engine-xt-data-space-api/pom.xml | 2 +- .../legend-engine-xt-data-space-compiler/pom.xml | 2 +- .../legend-engine-xt-data-space-generation/pom.xml | 2 +- .../legend-engine-xt-data-space-grammar/pom.xml | 2 +- .../legend-engine-xt-data-space-protocol/pom.xml | 2 +- .../legend-engine-xt-data-space-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-data-space-pure/pom.xml | 2 +- legend-engine-xts-data-space/pom.xml | 2 +- .../legend-engine-xt-diagram-api/pom.xml | 2 +- .../legend-engine-xt-diagram-compiler/pom.xml | 2 +- .../legend-engine-xt-diagram-grammar/pom.xml | 2 +- .../legend-engine-xt-diagram-protocol/pom.xml | 2 +- .../legend-engine-xt-diagram-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-diagram-pure/pom.xml | 2 +- legend-engine-xts-diagram/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-grammar/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-protocol/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-executionPlan-test/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-protocol-utils/pom.xml | 2 +- .../pom.xml | 2 +- legend-engine-xts-elasticsearch/pom.xml | 2 +- .../legend-engine-xt-flatdata-driver-bloomberg/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-flatdata-model/pom.xml | 2 +- .../legend-engine-xt-flatdata-pure/pom.xml | 2 +- .../legend-engine-xt-flatdata-runtime/pom.xml | 2 +- .../legend-engine-xt-flatdata-shared/pom.xml | 2 +- legend-engine-xts-flatdata/pom.xml | 2 +- .../legend-engine-xt-functionActivator-api/pom.xml | 2 +- .../legend-engine-xt-functionActivator-protocol/pom.xml | 2 +- .../legend-engine-xt-functionActivator-pure/pom.xml | 2 +- legend-engine-xts-functionActivator/pom.xml | 2 +- .../legend-engine-external-shared/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation/pom.xml | 2 +- .../legend-engine-xt-artifact-generation-api/pom.xml | 2 +- legend-engine-xts-generation/pom.xml | 2 +- .../legend-engine-xt-graphQL-compiler/pom.xml | 4 ++-- .../legend-engine-xt-graphQL-grammar-integration/pom.xml | 2 +- .../legend-engine-xt-graphQL-grammar/pom.xml | 2 +- .../legend-engine-xt-graphQL-protocol/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure/pom.xml | 2 +- .../legend-engine-xt-graphQL-query/pom.xml | 2 +- .../legend-engine-xt-graphQL-relational-extension/pom.xml | 2 +- legend-engine-xts-graphQL/pom.xml | 2 +- .../legend-engine-xt-haskell-grammar/pom.xml | 2 +- .../legend-engine-xt-haskell-protocol/pom.xml | 2 +- .../legend-engine-xt-haskell-pure/pom.xml | 2 +- legend-engine-xts-haskell/pom.xml | 2 +- .../legend-engine-xt-hostedService-api/pom.xml | 2 +- .../legend-engine-xt-hostedService-compiler/pom.xml | 2 +- .../legend-engine-xt-hostedService-generation/pom.xml | 2 +- .../legend-engine-xt-hostedService-grammar/pom.xml | 2 +- .../legend-engine-xt-hostedService-protocol/pom.xml | 2 +- .../legend-engine-xt-hostedService-pure/pom.xml | 2 +- legend-engine-xts-hostedService/pom.xml | 2 +- .../legend-engine-xt-iceberg-pure/pom.xml | 2 +- .../legend-engine-xt-iceberg-test-support/pom.xml | 2 +- legend-engine-xts-iceberg/pom.xml | 2 +- .../legend-engine-external-language-java/pom.xml | 2 +- .../legend-engine-xt-javaGeneration-featureBased-pure/pom.xml | 2 +- .../legend-engine-xt-javaGeneration-pure/pom.xml | 2 +- .../legend-engine-xt-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-java/pom.xml | 2 +- .../legend-engine-external-format-jsonSchema/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-pure/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-test/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-model/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml | 2 +- legend-engine-xts-json/pom.xml | 2 +- .../legend-engine-xt-mastery-grammar/pom.xml | 2 +- .../legend-engine-xt-mastery-protocol/pom.xml | 2 +- .../legend-engine-xt-mastery-pure/pom.xml | 2 +- legend-engine-xts-mastery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml | 2 +- legend-engine-xts-mongodb/pom.xml | 2 +- .../legend-engine-xt-morphir-pure/pom.xml | 2 +- legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml | 2 +- legend-engine-xts-morphir/pom.xml | 2 +- .../legend-engine-xt-openapi-generation/pom.xml | 2 +- .../legend-engine-xt-openapi-pure/pom.xml | 2 +- legend-engine-xts-openapi/pom.xml | 2 +- .../legend-engine-xt-persistence-api/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-component/pom.xml | 2 +- .../legend-engine-xt-persistence-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-test-runner/pom.xml | 2 +- legend-engine-xts-persistence/pom.xml | 2 +- .../legend-engine-xt-protobuf-grammar/pom.xml | 2 +- .../legend-engine-xt-protobuf-protocol/pom.xml | 2 +- .../legend-engine-xt-protobuf-pure/pom.xml | 2 +- legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml | 4 ++-- legend-engine-xts-protobuf/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-analytics/pom.xml | 2 +- .../legend-engine-xt-relationalStore-connection/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-reports/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-server/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino/pom.xml | 2 +- .../legend-engine-xt-relationalStore-dbExtension/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-executionPlan/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-api/pom.xml | 2 +- .../legend-engine-xt-relationalStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-generation/pom.xml | 2 +- legend-engine-xts-relationalStore/pom.xml | 2 +- .../legend-engine-xt-relationalai-pure/pom.xml | 2 +- legend-engine-xts-relationalai/pom.xml | 2 +- .../legend-engine-xt-rosetta-pure/pom.xml | 2 +- legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml | 2 +- legend-engine-xts-rosetta/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-execution/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service/pom.xml | 2 +- .../legend-engine-service-post-validation-runner/pom.xml | 2 +- .../legend-engine-services-model-api/pom.xml | 2 +- .../legend-engine-services-model/pom.xml | 2 +- .../legend-engine-test-runner-service/pom.xml | 2 +- legend-engine-xts-service/pom.xml | 2 +- .../legend-engine-xt-serviceStore-executionPlan/pom.xml | 2 +- .../legend-engine-xt-serviceStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-serviceStore-protocol/pom.xml | 2 +- .../legend-engine-xt-serviceStore-pure/pom.xml | 2 +- legend-engine-xts-serviceStore/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-api/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-compiler/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-generator/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-grammar/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-protocol/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-pure/pom.xml | 2 +- legend-engine-xts-snowflakeApp/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml | 2 +- .../legend-engine-xt-sql-grammar-integration/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml | 2 +- .../legend-engine-xt-sql-postgres-server/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml | 2 +- .../legend-engine-xt-sql-providers-core/pom.xml | 2 +- .../legend-engine-xt-sql-providers-relationalStore/pom.xml | 2 +- .../legend-engine-xt-sql-providers-service/pom.xml | 2 +- .../legend-engine-xt-sql-providers-shared/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml | 2 +- .../legend-engine-xt-sql-pure-metamodel/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml | 2 +- legend-engine-xts-sql/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml | 2 +- .../legend-engine-xt-text-pure-metamodel/pom.xml | 2 +- legend-engine-xts-text/pom.xml | 2 +- .../legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml | 2 +- legend-engine-xts-xml/pom.xml | 2 +- pom.xml | 4 ++-- 381 files changed, 384 insertions(+), 384 deletions(-) diff --git a/legend-engine-application-query/pom.xml b/legend-engine-application-query/pom.xml index af100a6cf52..5698f6e3883 100644 --- a/legend-engine-application-query/pom.xml +++ b/legend-engine-application-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-application-query diff --git a/legend-engine-config/legend-engine-configuration/pom.xml b/legend-engine-config/legend-engine-configuration/pom.xml index 1a01eb81928..a9c6779d47c 100644 --- a/legend-engine-config/legend-engine-configuration/pom.xml +++ b/legend-engine-config/legend-engine-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-configuration diff --git a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml index 6dcd91ac065..09502dfbe5b 100644 --- a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-connection-integration-tests diff --git a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml index 68c5e55ca3d..77b926980e8 100644 --- a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml index 90c9f29ae25..f7e14d61d48 100644 --- a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml index 201353ecf89..2126d45d85d 100644 --- a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml +++ b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-server-integration-tests/pom.xml b/legend-engine-config/legend-engine-server-integration-tests/pom.xml index d329c36e807..8562b6238d5 100644 --- a/legend-engine-config/legend-engine-server-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-server-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-server-integration-tests diff --git a/legend-engine-config/legend-engine-server-support-core/pom.xml b/legend-engine-config/legend-engine-server-support-core/pom.xml index 3faaef66949..069f42b12fd 100644 --- a/legend-engine-config/legend-engine-server-support-core/pom.xml +++ b/legend-engine-config/legend-engine-server-support-core/pom.xml @@ -3,7 +3,7 @@ legend-engine-config org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index 088f437877a..c05ca8de673 100644 --- a/legend-engine-config/legend-engine-server/pom.xml +++ b/legend-engine-config/legend-engine-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-server diff --git a/legend-engine-config/pom.xml b/legend-engine-config/pom.xml index cf7364c961d..eebb77a4599 100644 --- a/legend-engine-config/pom.xml +++ b/legend-engine-config/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml index 480e9952b8e..7ada44141c3 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-executionPlan-dependencies diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml index d1ee9a696d4..cbe2c01a7c4 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-executionPlan-execution-api diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml index ac316129822..d015152427a 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-core-executionPlan-execution org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml index 3a360331ad2..1841009e353 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-executionPlan-execution-store-inMemory diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml index 2d570f554ba..40215158c04 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-executionPlan-execution diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml index 68ceecb088e..d66c3ccda24 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml index b4a5636702a..e276fb630ed 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml index 5831fb0e831..7bbc72d5b28 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-generation - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml index 785e344c6dd..a73e4a74c74 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml index 31fae9ec421..09aaaab53de 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml index f23d0faa90d..b29c758a5fa 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-language-pure-compiler-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml index f6bb053ea0d..cbd07ed2c11 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-language-pure-compiler diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml index ae27516843c..fa8c0d42909 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-language-pure-grammar-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml index bc8719036a3..07dc18ca1c8 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-language-pure-grammar diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml index 3e704a2d37c..3f39c739f8f 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-language-pure-modelManager-sdlc diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml index 85bedfd1824..d8e9cedfa91 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-language-pure-modelManager diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml index 676f9cdd159..1a2d1286fcb 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-protocol-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml index fd7f0851f9c..d40654ff592 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-protocol-generation-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml index 0419f4db9dc..8bbbeb6dfb4 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-protocol-generation diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml index f91d1597449..390d74a8856 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-protocol-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml index c06134e0810..82c4d87e0c4 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-protocol diff --git a/legend-engine-core/legend-engine-core-language-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/pom.xml index a6ad5499b56..1e54c7e499e 100644 --- a/legend-engine-core/legend-engine-core-language-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml index 10ceedde011..28ea6790340 100644 --- a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-query-pure - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-query-pure diff --git a/legend-engine-core/legend-engine-core-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/pom.xml index 96dec1d43c7..b99c4cfcac2 100644 --- a/legend-engine-core/legend-engine-core-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml index 4cc08e75715..7354dbf2001 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-shared-core diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml index 284992cf4a7..f13da9ccd81 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-shared-javaCompiler diff --git a/legend-engine-core/legend-engine-core-shared/pom.xml b/legend-engine-core/legend-engine-core-shared/pom.xml index ef4c1b09952..ab133b7cb26 100644 --- a/legend-engine-core/legend-engine-core-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml index f1ddebde92a..1954d19fdfe 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml index 67e2f116da4..8f1fdd780f4 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml index 755ac0828c2..3d2ce2178eb 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-test-runner-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml index 79c6ab61d93..ae0247375b2 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-test-server-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml index c5f2302eff8..a6b002d586c 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-testable diff --git a/legend-engine-core/legend-engine-core-test/pom.xml b/legend-engine-core/legend-engine-core-test/pom.xml index c8d041a825e..7c348039986 100644 --- a/legend-engine-core/legend-engine-core-test/pom.xml +++ b/legend-engine-core/legend-engine-core-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/pom.xml b/legend-engine-core/pom.xml index ca5303af1ef..fd0ea888d22 100644 --- a/legend-engine-core/pom.xml +++ b/legend-engine-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml index 9d497e52185..ac39ba6b3b0 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.33.3 + 4.33.4-SNAPSHOT legend-engine-pure-code-compiled-core diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml index 2c9ae42b127..60b745103b1 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.33.3 + 4.33.4-SNAPSHOT legend-engine-pure-code-compiled-functions diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml index fbc580be7e8..57596627d3e 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.33.3 + 4.33.4-SNAPSHOT legend-engine-pure-code-core-extension diff --git a/legend-engine-pure/legend-engine-pure-code/pom.xml b/legend-engine-pure/legend-engine-pure-code/pom.xml index 1e336b8d4b9..be85042bf1c 100644 --- a/legend-engine-pure/legend-engine-pure-code/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml index 923f9a90599..134256fd821 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml index 9478aff009d..72253cb4cfb 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml index 16ae9172eb9..91d34caf0b4 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/pom.xml b/legend-engine-pure/legend-engine-pure-ide/pom.xml index 207fbd9f7dc..33e45c9c0da 100644 --- a/legend-engine-pure/legend-engine-pure-ide/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml index 7481c23928f..7162278821e 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.3 + 4.33.4-SNAPSHOT legend-engine-pure-platform-dsl-diagram-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml index 7a429c699fe..9efd8fa47df 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.3 + 4.33.4-SNAPSHOT legend-engine-pure-platform-dsl-graph-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml index 2e2c4bf6ad3..d2ced50ed5c 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.3 + 4.33.4-SNAPSHOT legend-engine-pure-platform-dsl-mapping-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml index 1bec931aae9..44e3b8492ff 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.3 + 4.33.4-SNAPSHOT legend-engine-pure-platform-dsl-path-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml index 6dda7826020..af66351df3f 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.3 + 4.33.4-SNAPSHOT legend-engine-pure-platform-functions-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml index 7b87f2f2adb..91075829031 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.3 + 4.33.4-SNAPSHOT legend-engine-pure-platform-functions-json-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml index 392ea927639..60f3f0e594b 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.3 + 4.33.4-SNAPSHOT legend-engine-pure-platform-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml index 9e661e1b0af..8bb4e93975c 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.3 + 4.33.4-SNAPSHOT legend-engine-pure-platform-store-relational-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml index cd8f99bc655..985e6a3a249 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml index 840ac91c060..717bc7dd760 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml index ccd112a2a66..e963734b894 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml index f27dc0b36a6..ddbc112476f 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml index cb217692398..ccb8b58c376 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.33.3 + 4.33.4-SNAPSHOT legend-engine-xt-java-runtime-compiler diff --git a/legend-engine-pure/legend-engine-pure-runtime/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/pom.xml index 0037edb1267..ead2823e7cc 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/pom.xml b/legend-engine-pure/pom.xml index 535570a86ec..1cf10fb1dd4 100644 --- a/legend-engine-pure/pom.xml +++ b/legend-engine-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml index 0620e176891..13db111ba25 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml index a64f1cd2e57..f5ba6210e11 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml index 161578c2031..98a02273bad 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml index bb18a501b9c..08ce31edef9 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml index 74a02578fac..e6962226db1 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml index 0d674292abe..9f988176d6e 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml index 86b98dc998c..939703b15e0 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml index b792df12a30..e939184d5ac 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml index 9d98661f845..a72e1269a9a 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml index 26b7e3e1391..3144dfe9e68 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml index 5698548d5d5..dd1758e213f 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml index f549862b8bf..2b8001b4edb 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml index 74ff9ca045b..9718c2bc377 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 Legend Engine - XT - Analytics - Mapping - API diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml index cc0b1ff4c10..8da86829c22 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-mapping - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 Legend Engine - XT - Analytics - Mapping - Protocol diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml index 820f5f05079..fcf1576d360 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml index bd12fa257e2..ba1cbb8030b 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml index e801c3fad8a..ed6acb843eb 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-search - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml index eb9cbaeeafe..37a32ba92b2 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-search org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml index 167f5019a91..f23f9374d5a 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml index 6a278feb19c..abf2450bd73 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-xt-analytics-store-entitlement-api diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml index 50093aa1f69..e30c35154dd 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml index 7b176b0d9a7..e4579390600 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/pom.xml b/legend-engine-xts-analytics/pom.xml index 1704ffe9aee..d899fda7a78 100644 --- a/legend-engine-xts-analytics/pom.xml +++ b/legend-engine-xts-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml index df71aae2132..76760095b29 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml index e7790378f1d..faf524aa7a4 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-arrow/pom.xml b/legend-engine-xts-arrow/pom.xml index f87da82874d..d6b7e00c248 100644 --- a/legend-engine-xts-arrow/pom.xml +++ b/legend-engine-xts-arrow/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT legend-engine-xts-arrow diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml index 9f35d5b4889..e8ab269e236 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml index dc4a96158e9..eb36b3bda86 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml index b12d58f0bca..a7c08b7b089 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml index 0405828b686..08090a0f355 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml index 6f05e934b33..09476e8bb55 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml index e190a1724f5..6566bd01c2a 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml index 6ec8da4a3a2..a8d63fd250a 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/pom.xml b/legend-engine-xts-authentication/pom.xml index e085f51332e..2e962f282ac 100644 --- a/legend-engine-xts-authentication/pom.xml +++ b/legend-engine-xts-authentication/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml index e29a1db405c..a62b7e40359 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml index e31fca84527..92c6e61ed22 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-avro/pom.xml b/legend-engine-xts-avro/pom.xml index 5849d2b02f9..95379a853a1 100644 --- a/legend-engine-xts-avro/pom.xml +++ b/legend-engine-xts-avro/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml index 94eb2d514e1..6b452b26de5 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-changetoken org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml index 819711b75b2..2eaf951f528 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-changetoken - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-changetoken/pom.xml b/legend-engine-xts-changetoken/pom.xml index 1a8906ab8a9..847b26f2051 100644 --- a/legend-engine-xts-changetoken/pom.xml +++ b/legend-engine-xts-changetoken/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml index 0d32b89c09f..9785fbbe442 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml index a9a1b7a4359..9b49c559dce 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml index e047f10f916..f92a4ddaaee 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/pom.xml b/legend-engine-xts-daml/pom.xml index bc24620b52b..aec012acf8d 100644 --- a/legend-engine-xts-daml/pom.xml +++ b/legend-engine-xts-daml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml index 08edd9c37f3..b3028bee098 100644 --- a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml +++ b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-data-push org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-push/pom.xml b/legend-engine-xts-data-push/pom.xml index c91e44dee8d..08900fb651c 100644 --- a/legend-engine-xts-data-push/pom.xml +++ b/legend-engine-xts-data-push/pom.xml @@ -3,7 +3,7 @@ legend-engine org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml index 07906a8d10f..2a7abd33481 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml index 1b8e1245104..db69af8ff29 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-data-space org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml index b3594c0ffef..7646588bad9 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml index 0198f4e2ae8..41c7de55e42 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml index dddb6035618..6935f6f54eb 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml index af0b3b81051..044e12e56d9 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml index a3f60ea0a12..5209787fe83 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/pom.xml b/legend-engine-xts-data-space/pom.xml index 4c96fb4280e..069cf5be9ff 100644 --- a/legend-engine-xts-data-space/pom.xml +++ b/legend-engine-xts-data-space/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml index fd6f0e2393c..3e042197477 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml index 7b802a5d54b..8b0b079eb93 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-diagram org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml index e6fb831ddcd..723dc980074 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml index 808b77c4b05..41b5ae547f5 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml index 00c390e97a5..c074ef423d0 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml index 1040e188aac..aed738774fd 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/pom.xml b/legend-engine-xts-diagram/pom.xml index 4bd1348a469..c9ec75ac3e5 100644 --- a/legend-engine-xts-diagram/pom.xml +++ b/legend-engine-xts-diagram/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml index 81f6e4a0d9d..ff3166d6131 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml index b3cc84e6e5c..8fa19eef2c8 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml index bd9d4496fa5..087b355401a 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml index 2f3a15369e8..682f9646bae 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml index 1bdbf0c710a..ecad3f87045 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml index 4f5684b781b..53eb73b817f 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.3 + 4.33.4-SNAPSHOT legend-engine-xt-elasticsearch-protocol-utils diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml index f2905807f14..69730a1b32c 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/pom.xml b/legend-engine-xts-elasticsearch/pom.xml index 73512be7ef5..be2a23e2b78 100644 --- a/legend-engine-xts-elasticsearch/pom.xml +++ b/legend-engine-xts-elasticsearch/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml index 5ab1f20dd7c..32b19c8542b 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-flatdata org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml index b51bb382acf..7c0b5bd4ad4 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml index 33b55717cdd..cbbf79f6418 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml index e0286ab9ef2..e12d16f68a1 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml index 3300234efe6..baf212d1f80 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml index c40a651a369..76e519f769e 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml index 202dfd69f02..4cf11332275 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/pom.xml b/legend-engine-xts-flatdata/pom.xml index b00681f8ead..b5ba278e089 100644 --- a/legend-engine-xts-flatdata/pom.xml +++ b/legend-engine-xts-flatdata/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml index 065ba3fc5c9..67e04d18a48 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml index 7c674254600..1953e5d2107 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml index dd587e9f2a3..ec8686c8736 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/pom.xml b/legend-engine-xts-functionActivator/pom.xml index 2b7870da363..7676521ddb8 100644 --- a/legend-engine-xts-functionActivator/pom.xml +++ b/legend-engine-xts-functionActivator/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml index 403fb7de055..1ad28a7b4ce 100644 --- a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml +++ b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml index df2c0ff6631..6eda0725574 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml index 465993d79bf..8d7982d63dc 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-language-pure-dsl-generation diff --git a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml index 99f9edf2aa3..b01598e59eb 100644 --- a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml +++ b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-generation org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/pom.xml b/legend-engine-xts-generation/pom.xml index f36db6da156..666cd577bd1 100644 --- a/legend-engine-xts-generation/pom.xml +++ b/legend-engine-xts-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml index 6f7348caf1c..60d1314e096 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 @@ -73,7 +73,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.33.3 + 4.33.4-SNAPSHOT org.finos.legend.pure diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml index e9a356d8256..7b88bb0c293 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml index 23d4bebb93f..8b3779c9dd6 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml index f86ae415d58..dbd4b4ac9c0 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml index f62ff9c9ef4..1dfc2372750 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml index 63b9c8e543c..79b8c24e953 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml index 07b5fed4567..b0658f041ff 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml index e15c6f54214..d9598fbefbf 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/pom.xml b/legend-engine-xts-graphQL/pom.xml index 16a5116d6c6..1abc77d2a00 100644 --- a/legend-engine-xts-graphQL/pom.xml +++ b/legend-engine-xts-graphQL/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml index 3ded6116976..b4b231b388f 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml index 09619908672..19d50fdf526 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml index e6f416e7eaa..f1df51df4bb 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/pom.xml b/legend-engine-xts-haskell/pom.xml index a1a2cb0f67b..bf03e0ff577 100644 --- a/legend-engine-xts-haskell/pom.xml +++ b/legend-engine-xts-haskell/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml index 9b765f73ee0..eb5331cbbf5 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml index bc4e9c2bc43..aacb1a20dec 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml index d790eb92073..e060d604bc9 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml index ac9bbbfbd17..f68010c24e3 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml index 9dcd34d8459..918bf4c84ae 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml index a74a225f146..148d21a77ec 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/pom.xml b/legend-engine-xts-hostedService/pom.xml index 136b9f7499d..e1ed6bb35da 100644 --- a/legend-engine-xts-hostedService/pom.xml +++ b/legend-engine-xts-hostedService/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml index 07a61e3c760..b73dc7f309e 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml index 9f7a482ef13..dc24fba78b6 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-iceberg/pom.xml b/legend-engine-xts-iceberg/pom.xml index 7f54d7c0aec..459c324f342 100644 --- a/legend-engine-xts-iceberg/pom.xml +++ b/legend-engine-xts-iceberg/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml index bbe76eebb4c..212f4197c3c 100644 --- a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml +++ b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml index c3a2dc6fee8..8cf964b9edb 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml index 490b63880e8..2f49636c242 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml index b0809d27378..e8ad66714f2 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/pom.xml b/legend-engine-xts-java/pom.xml index c2ea97d83b7..6a6518e8b42 100644 --- a/legend-engine-xts-java/pom.xml +++ b/legend-engine-xts-java/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml index 10d7126118b..2fcc71b65f6 100644 --- a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml +++ b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml index 5c2209502d3..26e19952de1 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml index 10db532f163..e18be1e82d7 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml index 8dce3b541ae..d51f0f312a3 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml index 5f4cc60beea..f14269073d3 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml index c8d964aa61d..3c11cc43b24 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/pom.xml b/legend-engine-xts-json/pom.xml index dcf02e68437..796b6a66e70 100644 --- a/legend-engine-xts-json/pom.xml +++ b/legend-engine-xts-json/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml index c82e66dafc0..881ab632297 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-mastery org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml index 66242a28c1c..3d79499bdf2 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml index 2beb574c5f5..a9bc1117908 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/pom.xml b/legend-engine-xts-mastery/pom.xml index 26ed7d44bc0..9cafa5fa407 100644 --- a/legend-engine-xts-mastery/pom.xml +++ b/legend-engine-xts-mastery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml index 1a3aaae75ab..31555dac727 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml index dbabfb6901c..29865d0d1a8 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.3 + 4.33.4-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-executionPlan diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml index da493279eca..c1286e79468 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.3 + 4.33.4-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-grammar-integration diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml index 8b9be0fd13b..f1568435103 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.3 + 4.33.4-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-grammar diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml index 1f1804520d3..d2953bd503e 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.3 + 4.33.4-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml index e75fe2cc927..f947e1b5392 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.3 + 4.33.4-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-protocol diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml index 25793fb869d..35b98aa790f 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.3 + 4.33.4-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-pure diff --git a/legend-engine-xts-mongodb/pom.xml b/legend-engine-xts-mongodb/pom.xml index f66a45e1e2e..68a2b42254d 100644 --- a/legend-engine-xts-mongodb/pom.xml +++ b/legend-engine-xts-mongodb/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml index 746c9f886cb..987ef98e98e 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-morphir - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml index 5dae3ec183f..0d7ee0eece4 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-morphir org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-morphir/pom.xml b/legend-engine-xts-morphir/pom.xml index db0d1d8436a..3447598dd95 100644 --- a/legend-engine-xts-morphir/pom.xml +++ b/legend-engine-xts-morphir/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml index e156dc0a171..53b68a28c5b 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.33.3 + 4.33.4-SNAPSHOT legend-engine-xt-openapi-generation diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml index b90349c2087..e997d88c157 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.33.3 + 4.33.4-SNAPSHOT legend-engine-xt-openapi-pure diff --git a/legend-engine-xts-openapi/pom.xml b/legend-engine-xts-openapi/pom.xml index de8c4d48503..6066b7a9f1f 100644 --- a/legend-engine-xts-openapi/pom.xml +++ b/legend-engine-xts-openapi/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml index 1462b3d4e48..8d52ec4b0fc 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml index 636e49e3d95..1cad7b9decd 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml index c41c6420a8b..10e4b702d03 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml index b2e68f4cb4f..81a469fef5d 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml index ca28b0a8760..93506b1cd33 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml index 98f8aef33ac..05fb72a8a62 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml index 14739e87930..949dbc89512 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml index d7725743add..4a9a0a0ce41 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml index 2a515e2ad70..4eb135d39cc 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml index 550efb7653a..c5e289cc612 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml index 6061fc862f0..a93a809bba1 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml index 184a9c52211..490988bcbaa 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml index 4fee726a36b..2aba607d137 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml index 4b44aad28f7..f6849069b5f 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml index 70ab80eb0c5..38910f585b7 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml index 8b560ccd92f..20b2da8267c 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml index 668d3cb82c3..8b345be77b9 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml index f1fdcbb50d4..c929c321a35 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml index 00f9a406307..ed311b19dee 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml index d3d664621ed..22d37f75b3e 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml index 00edb63f46a..24ea78c8303 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/pom.xml b/legend-engine-xts-persistence/pom.xml index 3bd3ca335ad..3d9ffe5156a 100644 --- a/legend-engine-xts-persistence/pom.xml +++ b/legend-engine-xts-persistence/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml index 4f0e074ae51..02429439d50 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-xt-protobuf-grammar diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml index 90ba607017b..abd1c3dcc58 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-xt-protobuf-protocol diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml index 700a68982e7..5280116bf61 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml index e413644a73c..8bbda6b2c38 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 @@ -57,7 +57,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.33.3 + 4.33.4-SNAPSHOT org.finos.legend.pure diff --git a/legend-engine-xts-protobuf/pom.xml b/legend-engine-xts-protobuf/pom.xml index 214e6153c8d..aa1c9f39800 100644 --- a/legend-engine-xts-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml index 10063218cba..dcee2170ee9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml index d97c119182a..3cb59be60ac 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml index a6965109290..10a99958bb4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml index 249d9c75b90..cbbade3f86a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml index 2db81ead11a..a942f6f14f8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml index cfe563a1aeb..cbf3ebe43a5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml index 8780c4a32ca..3ded0a42b2e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml index 1d43ad35357..2affe2e5b79 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml index d409361835a..e1fa27dd9be 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml index 8df047419c3..09629102271 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml index ea7a4b2bc3a..12731400eee 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-bigquery org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml index 4cf7754e56f..244cd9adc61 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml index ecff9193228..52a204e5e82 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml index 5240d7ba0d1..e43940651a8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml index bc3475894aa..b2c9caa51dd 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml index d1fdf678a94..1467404d276 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml index 9ec2973cdcb..c58c6660926 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml index 64df2e0ac73..a7056589a2d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml index acb7578ff76..a3ff3f3eeb4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml index af7804319dc..8816f268f88 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml index 3d3082ae76a..c86f3cbadf8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml index af8dd68b9e5..629285d7f34 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml index 783e4b083e8..4c68a30b38c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-dbExtension org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml index c8b65f04bd8..14ba45fa8ad 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-hive - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml index 2d485a8327f..38a9fe259a8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml index ad715e41c2f..c71ffa8360f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml index d5af3deab16..d1d53045742 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-memsql org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml index 70d14396dd0..3c883c61075 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.33.3 + 4.33.4-SNAPSHOT legend-engine-xt-relationalStore-memsql-execution diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml index 44f76f2b3be..8de440cbb33 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.33.3 + 4.33.4-SNAPSHOT legend-engine-xt-relationalStore-memsql-pure diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml index b56f1c25cce..fb8ea456aaa 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml index 25cb6de4721..6f63b5536e4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml index 9d2cf18b20e..878df7d155c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml index 73f4ace91be..2d7f3b9fbd1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml index 0be091911b3..ec348f9fc13 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml index 5398d937537..bd5b385fca0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml index ad63479597c..2cb02cd49a1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml index 660e7155514..5fdafb602a0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-presto - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml index 93b50551714..a2f2b3cb146 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml index 7d0f3f46f34..30fefe8ffda 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml index 182fbf20ee1..d7782cb2a62 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml index 8756b3417f2..f52dda796f5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml index 9ba94e92371..fa1332173ca 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml index 9694a613b82..c9c2fae148e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml index ebb4fc40fa0..dd3afab9ef2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml index 3841e2deb95..dd874c15995 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml index 54987864d47..68e8dc5bf9e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml index ed3b2aaff2a..c66fd0e8733 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml index 2b0dbf3c30a..08c0c8cd74f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml index a5cbbcf3e00..35e6db76c3c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml index 1c8f861f6e9..e53ce17dee0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml index 403ade2475e..969c415ec2b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml index 817bbfe0e4d..f655229ee58 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml index f8bb232907c..f6150bb8141 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml index 4f4dd8cb062..8ab63e1d522 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml index d8675cb508f..0852ce3eb22 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml index afb6fb780f7..ce5cae98d83 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml index 6fd1af21f15..73762a464fa 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml index f711279c23e..0e7a4088051 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml index f01e2cefc84..8e95e45d11d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sparksql - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml index 13e6be441a1..c533b43af6d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml index ad51c355808..ac0a25d33ea 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml index 946050627be..1d84a3bca51 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-sqlserver-execution-tests diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml index e91bfa89cfe..3d4270e6e9e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml index f1f451f0399..b1fb1606e37 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml index 855d20e9ecd..781474a1e0b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml index 16b5198c156..36196b15d20 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybase - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml index 792a2b70005..918ac5fd294 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml index 78b01d8af76..37f7874d4b3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybaseiq - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml index 09fc6280478..5fc48ad2d45 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml index 7e60c5057f7..9eeb1b88416 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-test-reports diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml index 3083f641e96..f8777873ead 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-test-server diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml index f0ce361b7ad..bb95a930235 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml index 8fac22432f9..e96d26abc2f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml index 744e236f385..38bc56a038f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml index d695fb254dd..afc9b959512 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml index d0a52b4604c..db256529489 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml index bd584121b9e..c1e41dff192 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml index 9c8a245885b..e93da19cb2e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml index 186cd72a791..0b95d18b011 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml index 4d15065d89d..903ac711b38 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml index 2755bede01f..64e7e5a708c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication-default diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml index ab88069ffa1..f952888432c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml index 1086a42df1b..07e42cb1568 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 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 076e77c6c90..35557952161 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 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 5139377535a..c8ae3c7a870 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml index 3a51d812490..082d068df74 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml index be2c1da5f9f..c60b0cf2838 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml index ea568c97b40..3aa15ebc655 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml index fcf60385384..b7285aef5ae 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml index 46c00ab3743..750806ef69b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml index 2a6e67adad3..c7b6b1cb303 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml index f5c2d8e0fd4..78313a87f17 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml index 7242d201502..2dd9dd76c12 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml index 6360705ede4..f60c627e964 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/pom.xml b/legend-engine-xts-relationalStore/pom.xml index 5e0af34b8df..15e70f3a851 100644 --- a/legend-engine-xts-relationalStore/pom.xml +++ b/legend-engine-xts-relationalStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml index 317b096639a..bad1fa668b6 100644 --- a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalai - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalai/pom.xml b/legend-engine-xts-relationalai/pom.xml index 9cd768fe724..f7f851c757f 100644 --- a/legend-engine-xts-relationalai/pom.xml +++ b/legend-engine-xts-relationalai/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml index 4e7676b2377..430ad539f53 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml index b54bc174f51..66cbaf73abe 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-rosetta/pom.xml b/legend-engine-xts-rosetta/pom.xml index f297feeb4a4..14a4b25cf77 100644 --- a/legend-engine-xts-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml index 9ac39668be8..68a07ec3ba2 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-language-pure-dsl-service-execution diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml index 2eb59ebb159..3251add46da 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml index 5f24b745a37..11c169bdf1d 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml index 3256fce6305..d3343bee171 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-language-pure-dsl-service diff --git a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml index 68f6c1588a4..c1df8d5a3ea 100644 --- a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml +++ b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml index ffd663dff79..26462f674f7 100644 --- a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-services-model-api diff --git a/legend-engine-xts-service/legend-engine-services-model/pom.xml b/legend-engine-xts-service/legend-engine-services-model/pom.xml index e1d68719711..5e61206916b 100644 --- a/legend-engine-xts-service/legend-engine-services-model/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 legend-engine-services-model diff --git a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml index 5e52264376d..316a245f8a3 100644 --- a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/pom.xml b/legend-engine-xts-service/pom.xml index cc0d4261287..3a6af1e63ee 100644 --- a/legend-engine-xts-service/pom.xml +++ b/legend-engine-xts-service/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml index 468986bcdde..17c13266d6c 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml index 75a52a170f8..ab9ce52a55b 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml index 18fedb66eb0..f4714f3e59e 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml index 7d7f128ecdd..8eef2c48058 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml index 2bae6a84d49..baeef799d97 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/pom.xml b/legend-engine-xts-serviceStore/pom.xml index 75acf7db995..ac5eebc7cec 100644 --- a/legend-engine-xts-serviceStore/pom.xml +++ b/legend-engine-xts-serviceStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml index 87ad9a20fce..464fab8edd6 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml index 07fe692e6ea..1789b0f264c 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-snowflakeApp org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml index 422321945dd..3ee46e394aa 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml index 0324486ee6c..869d4e178d4 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml index d8bfcfa5677..1a8b801af0c 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml index 8cef3021325..625c6efdfb6 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/pom.xml b/legend-engine-xts-snowflakeApp/pom.xml index b39efdd2e9e..69d243cc80e 100644 --- a/legend-engine-xts-snowflakeApp/pom.xml +++ b/legend-engine-xts-snowflakeApp/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml index a099ff98ca0..3594c3b9bc9 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml index 53a71f0abac..31ca6632e73 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml index 817435246e1..600c67a2169 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml index fa3615f5b72..1823f11ef40 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-sql org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml index bbe8e240dd9..60e52b6664d 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml index 629dcd9a5d7..c3061b674c7 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml index 86c887534cb..05213d2848f 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml index dc4d0451cf7..4a866fe5572 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml index b771564f5ae..89e599470e4 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml index 37bdb18cccb..b81a21a2b8b 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml index 977f2190b13..4142ea8843d 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml index 4b90fe384b7..467d27ea1ef 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml index 830c13a0c2c..9bb83cdb53a 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/pom.xml b/legend-engine-xts-sql/pom.xml index 593385cb74f..caecadff58c 100644 --- a/legend-engine-xts-sql/pom.xml +++ b/legend-engine-xts-sql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml index b775cc982ee..c21ef38414c 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-text org.finos.legend.engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml index 2a82f4342db..55b4bf74df2 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml index 686b6faf322..4d8e4f93121 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml index 65b4b5519cd..c5e057b41ea 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/pom.xml b/legend-engine-xts-text/pom.xml index 64751c830c7..bbd5eef5282 100644 --- a/legend-engine-xts-text/pom.xml +++ b/legend-engine-xts-text/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml index c34345530e1..3b764f778d5 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml index 9daaf948c1e..df9a649f26b 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml index f1c7868a58d..55c1fd1ca5d 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml index 8e57a246dd7..b12b9e47441 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml index f226d9baf94..a33aaa2cfc9 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/pom.xml b/legend-engine-xts-xml/pom.xml index 7860f314868..c34341196dc 100644 --- a/legend-engine-xts-xml/pom.xml +++ b/legend-engine-xts-xml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT 4.0.0 diff --git a/pom.xml b/pom.xml index 4e29dd7bd9a..3ab9f265e70 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ Legend Engine org.finos.legend.engine legend-engine - 4.33.3 + 4.33.4-SNAPSHOT pom @@ -228,7 +228,7 @@ scm:git:https://github.com/finos/legend-engine - legend-engine-4.33.3 + HEAD From 432217c66b0d678c1c5d6cfe2534c8ecfbcc75fe Mon Sep 17 00:00:00 2001 From: siaka-Akash <109946032+siaka-Akash@users.noreply.github.com> Date: Thu, 2 Nov 2023 18:27:04 +0530 Subject: [PATCH 68/80] Fix sqlGeneration for filters without aliases in relational queries (#2406) --- .../tests/projection/testFilters.pure | 28 ++++++++ .../pureToSQLQuery/pureToSQLQuery.pure | 5 +- .../mapping/innerJoin/testIsolation.pure | 14 +++- .../mapping/innerJoin/testIsolationSetUp.pure | 43 +++++++++++-- .../mapping/join/advancedRelationalSetUp.pure | 64 ++++++++++++++++++- 5 files changed, 145 insertions(+), 9 deletions(-) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testFilters.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testFilters.pure index 05e294b03b3..d317a10f9e4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testFilters.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/functions/tests/projection/testFilters.pure @@ -90,3 +90,31 @@ function <> meta::relational::tests::projection::filter::isolation::t assertEquals(['Firm X, UK', 'Firm X, Europe', 'Firm X, Europe', 'Firm X, Europe', 'Firm A, Europe', 'Firm B, Europe', 'Firm C, Europe'],$tds.rows->map(r|$r.values->makeString(', '))); assertEquals('select "root".LEGALNAME as "legalName", case when ("firmpersonbridgetable_0".ADDRESSID = 1 or "addresstable_0".ID = 1) then \'UK\' else \'Europe\' end as "addressName" from firmTable as "root" left outer join (select "firmpersonbridgetable_1".FIRM_ID as FIRM_ID, "persontable_0".ADDRESSID as ADDRESSID from firmPersonBridgeTable as "firmpersonbridgetable_1" inner join personTable as "persontable_0" on ("persontable_0".ID = "firmpersonbridgetable_1".PERSON_ID)) as "firmpersonbridgetable_0" on ("root".ID = "firmpersonbridgetable_0".FIRM_ID) left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "root".ADDRESSID)', $result->sqlRemoveFormatting()); } + +// Filters having no table alias like 'Smith' = 'Smith' +function <> meta::relational::tests::projection::filter::isolation::testIsolationOfFiltersWithoutAlias():Boolean[1] +{ + let result1 = execute(|Firm.all()->project([f|$f.employeeByLastName('Smith').address.name, f | $f.employeeByLastName('Smith').firstName],['address', 'employeeFirstName']), meta::relational::tests::mapping::join::model::mapping::MappingWithLiteral, testRuntime(), meta::relational::extension::relationalExtensions()); + let result2 = execute(|Firm.all()->project([f|$f.employeeByLastName('Roberts').address.name, f | $f.employeeByLastName('Roberts').firstName],['address', 'employeeFirstName']), meta::relational::tests::mapping::join::model::mapping::MappingWithLiteral, testRuntime(), meta::relational::extension::relationalExtensions()); + let result3 = execute(|Firm.all()->project([f|$f.employeeByLastName('Roberts').address.name, f | $f.employeeByLastName('Smith').firstName],['address', 'employeeFirstName']), meta::relational::tests::mapping::join::model::mapping::MappingWithLiteral, testRuntime(), meta::relational::extension::relationalExtensions()); + + let tds1 = $result1.values->at(0); + assertEquals(['Hoboken, Peter', 'New York, John', 'New York, John', 'New York, Anthony', 'San Fransisco, Fabrice', 'Hong Kong, Oliver', 'New York, David'], $tds1.rows->map(r|$r.values->makeString(', '))); + assertEquals('select "addresstable_0".NAME as "address", "persontable_0".FIRSTNAME as "employeeFirstName" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID and \'Smith\' = \'Smith\') left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "persontable_0".ADDRESSID)', $result1->sqlRemoveFormatting()); + + let tds2 = $result2.values->at(0); + assertEquals(['TDSNull, TDSNull', 'TDSNull, TDSNull', 'TDSNull, TDSNull', 'TDSNull, TDSNull'], $tds2.rows->map(r|$r.values->makeString(', '))); + assertEquals('select "addresstable_0".NAME as "address", "persontable_0".FIRSTNAME as "employeeFirstName" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID and \'Smith\' = \'Roberts\') left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "persontable_0".ADDRESSID)', $result2->sqlRemoveFormatting()); + + let tds3 = $result3.values->at(0); + assertEquals(['TDSNull, Peter', 'TDSNull, John', 'TDSNull, John', 'TDSNull, Anthony', 'TDSNull, Fabrice', 'TDSNull, Oliver', 'TDSNull, David'], $tds3.rows->map(r|$r.values->makeString(', '))); + assertEquals('select "addresstable_0".NAME as "address", "persontable_1".FIRSTNAME as "employeeFirstName" from firmTable as "root" left outer join personTable as "persontable_0" on ("root".ID = "persontable_0".FIRMID and \'Smith\' = \'Roberts\') left outer join addressTable as "addresstable_0" on ("addresstable_0".ID = "persontable_0".ADDRESSID) left outer join personTable as "persontable_1" on ("root".ID = "persontable_1".FIRMID and \'Smith\' = \'Smith\')', $result3->sqlRemoveFormatting()); +} + +function <> meta::relational::tests::projection::filter::lessThanEqual::testIsolationOfFiltersWithoutAliasWithChainedJoins():Boolean[1] +{ + let result = execute(|Trade.all()->project([t | $t.id, t| $t.product.synonymByType(ProductSynonymType.CUSIP).name, t| $t.product.synonymByType(ProductSynonymType.ISIN).name], ['tradeId','SynonyName1', 'SynonymName2']), meta::relational::tests::mapping::join::model::mapping::MappingWithLiteral, testRuntime(), meta::relational::extension::relationalExtensions()); + let tds = $result.values->at(0); + assertEquals(['1, CUSIP1, TDSNull', '1, ISIN1, TDSNull', '2, CUSIP1, TDSNull', '2, ISIN1, TDSNull', '3, CUSIP2, TDSNull', '3, ISIN2, TDSNull', '4, CUSIP2, TDSNull', '4, ISIN2, TDSNull', '5, CUSIP2, TDSNull', '5, ISIN2, TDSNull', '6, CUSIP3, TDSNull', '6, ISIN3, TDSNull', '7, CUSIP3, TDSNull', '7, ISIN3, TDSNull', '8, CUSIP3, TDSNull', '8, ISIN3, TDSNull', '9, CUSIP3, TDSNull', '9, ISIN3, TDSNull', '10, CUSIP3, TDSNull', '10, ISIN3, TDSNull', '11, TDSNull, TDSNull'], $tds.rows->map(r|$r.values->makeString(', '))); + assertEquals('select "root".ID as "tradeId", "synonymtable_0".NAME as "SynonyName1", "synonymtable_2".NAME as "SynonymName2" from tradeTable as "root" left outer join productSchema.productTable as "producttable_0" on ("root".prodId = "producttable_0".ID) left outer join (select "synonymtable_1".PRODID as PRODID, "synonymtable_1".NAME as NAME from productSchema.synonymTable as "synonymtable_1" where \'CUSIP\' = \'CUSIP\') as "synonymtable_0" on ("synonymtable_0".PRODID = "producttable_0".ID) left outer join (select "synonymtable_1".PRODID as PRODID, "synonymtable_1".NAME as NAME from productSchema.synonymTable as "synonymtable_1" where \'CUSIP\' = \'ISIN\') as "synonymtable_2" on ("synonymtable_2".PRODID = "producttable_0".ID)', $result->sqlRemoveFormatting()); +} \ No newline at end of file diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/pureToSQLQuery.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/pureToSQLQuery.pure index c638d3eac5c..89a0d1341aa 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/pureToSQLQuery.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/pureToSQLQuery/pureToSQLQuery.pure @@ -5872,7 +5872,10 @@ function meta::relational::functions::pureToSqlQuery::findBestNodeToIsolate(sele { let joinThreads = ^List(values=$select.data)->buildThreads(); - let aliasesWithConstraints = $select.savedFilteringOperation.second->extractTableAliasColumns().alias->removeDuplicates(); + //For filters having aliases like a.x = 'y' fetch aliases from relationalOperationalElement and for filters without aliases like 'x' = 'x' fetch aliases from the treeNode. + let aliasesWithConstraints = $select.savedFilteringOperation->map(x | let aliasFromFilters = $x.second->extractTableAliasColumns().alias; + if($aliasFromFilters->isNotEmpty(), |$aliasFromFilters, | $x.first.alias); + )->removeDuplicates(); let filterThreadsWithAllConditions = $joinThreads->filter(thread| $thread->matchAllAliases($aliasesWithConstraints)); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/innerJoin/testIsolation.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/innerJoin/testIsolation.pure index 42d7b405c64..eedf74d4616 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/innerJoin/testIsolation.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/innerJoin/testIsolation.pure @@ -21,13 +21,21 @@ function <> meta::relational::tests::mapping::innerjoin::iso } function <> meta::relational::tests::mapping::innerjoin::isolation::testIsolationOfInnerJoins():Any[*] { - let func = {| Car.all()->filter(c|$c.org.publicAncestor.name != 'GSorg2' - && $c.org.publicAncestor.name->contains('GSorg') - && $c.org.publicAncestor.name->contains('toReturn') + let func = {| Car.all()->filter(c|$c.org.privateAncestor.name != 'GSorg2' + && $c.org.privateAncestor.name->contains('GSorg') + && $c.org.privateAncestor.name->contains('toReturn') )->project([col(c|$c.id, 'Id'), col(c|$c.type, 'type')])}; let result = execute($func,AutoMapping,autoMobileRuntime(), meta::relational::extension::relationalExtensions()); assertEquals([ 3, 'Mercedes3'],$result.values.rows->map(r|$r.values)); assertSize($result.values.rows, 1); assertEquals('select "root".vehicleId as "Id", "root".type as "type" from AutomobileTable as "root" left outer join AutomobileTable as "automobiletable_1" on ("root".vehicleId = "automobiletable_1".vehicleId and "root".orgId < 100) left outer join (select "autoancestor_1".childId as childId, "autoancestor_2".orgName as orgName from AutoAncestor as "autoancestor_1" left outer join (select "autoancestor_2".parentId as parentId, "automobiletable_2".orgName as orgName from AutoAncestor as "autoancestor_2" inner join AutomobileTable as "automobiletable_2" on ("autoancestor_2".parentId = "automobiletable_2".orgId and case when "automobiletable_2".orgtype = \'public\' then \'N\' else \'Y\' end = \'Y\')) as "autoancestor_2" on ("autoancestor_1".parentId = "autoancestor_2".parentId)) as "autoancestor_0" on ("automobiletable_1".orgId = "autoancestor_0".childId) left outer join (select "autoancestor_4".childId as childId, "automobiletable_3".orgName as orgName from AutoAncestor as "autoancestor_4" inner join AutomobileTable as "automobiletable_3" on ("autoancestor_4".parentId = "automobiletable_3".orgId) where case when "automobiletable_3".orgtype = \'public\' then \'N\' else \'Y\' end = \'Y\') as "autoancestor_3" on ("automobiletable_1".orgId = "autoancestor_3".childId) where ((("autoancestor_3".orgName <> \'GSorg2\' OR "autoancestor_3".orgName is null) and ("autoancestor_0".orgName is not null and "autoancestor_3".orgName like \'%GSorg%\')) and ("autoancestor_0".orgName is not null and "autoancestor_3".orgName like \'%toReturn%\'))',$result->sqlRemoveFormatting()); +} +function <> meta::relational::tests::mapping::innerjoin::isolation::testIsolationForFiltersWithoutAliasAndInnerJoins():Any[*] +{ + let func = {| Car.all()->project([col(c|$c.org.privateAncestor.name, 'privateAncestorName'), col(c|$c.org.publicAncestor.name, 'publicAncestorName')])}; + let result = execute($func,MappingWithConstant,autoMobileRuntime(), meta::relational::extension::relationalExtensions()); + let tds = $result.values->at(0); + assertEquals(['GSorg4, TDSNull', 'GSorg3, TDSNull', 'GSorgtoReturn, TDSNull', 'TDSNull, TDSNull'], $tds.rows->map(r|$r.values->makeString(', '))); + assertEquals('select "autoancestor_0".orgName as "privateAncestorName", "autoancestor_2".orgName as "publicAncestorName" from AutomobileTable as "root" left outer join AutomobileTable as "automobiletable_1" on ("root".vehicleId = "automobiletable_1".vehicleId and "root".orgId < 100) left outer join (select "autoancestor_1".childId as childId, "automobiletable_2".orgName as orgName from AutoAncestor as "autoancestor_1" inner join AutomobileTable as "automobiletable_2" on ("autoancestor_1".parentId = "automobiletable_2".orgId) where \'Y\' = \'Y\') as "autoancestor_0" on ("automobiletable_1".orgId = "autoancestor_0".childId) left outer join (select "autoancestor_1".childId as childId, "automobiletable_2".orgName as orgName from AutoAncestor as "autoancestor_1" inner join AutomobileTable as "automobiletable_2" on ("autoancestor_1".parentId = "automobiletable_2".orgId) where \'Y\' = \'N\') as "autoancestor_2" on ("automobiletable_1".orgId = "autoancestor_2".childId)',$result->sqlRemoveFormatting()); } \ No newline at end of file diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/innerJoin/testIsolationSetUp.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/innerJoin/testIsolationSetUp.pure index cb1c8d6ba7e..55a270578c8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/innerJoin/testIsolationSetUp.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/innerJoin/testIsolationSetUp.pure @@ -40,12 +40,17 @@ Class meta::relational::tests::mapping::innerjoin::isolation::AutomobileUnion isPrivate: String[0..1]; ancestors: AutomobileUnion[0..*]; children: AutomobileUnion[0..*]; - publicAncestor() + privateAncestor() { $this.ancestors->filter(a|$a.isPrivate =='Y')->toOne() }:AutomobileUnion[1]; - publicAncestor2() + publicAncestor() + { + $this.ancestors->filter(a|$a.isPrivate =='N')->toOne() + }:AutomobileUnion[1]; + + privateAncestor2() { $this.ancestors->filter(a|$a.isPrivate =='Y').name=='haha' || ($this.ancestors->filter(a|$a.isPrivate=='Y').name=='ahah') }: Boolean[1]; @@ -63,8 +68,8 @@ function meta::relational::tests::mapping::innerjoin::isolation::initAutomobileD executeInDb('Create Table AutomobileTable (vehicleId INT, type VARCHAR(20),orgId INT, orgName VARCHAR(40),orgtype VARCHAR(40));', $connection); executeInDb('insert into AutomobileTable (vehicleId, type, orgId,orgName,orgType) values (1, \'Mercedes1\',17,\'GSorgtoReturn\' ,\'private\');', $connection); executeInDb('insert into AutomobileTable (vehicleId, type, orgId,orgName,orgType) values (2, \'Mercedes2\',18,\'GSorgtoReturn2\' ,\'private\');', $connection); - executeInDb('insert into AutomobileTable (vehicleId, type, orgId,orgName,orgType) values (3, \'Mercedes3\',19,\'GSorg3\' ,\'public3\');', $connection); - executeInDb('insert into AutomobileTable (vehicleId, type, orgId,orgName,orgType) values (4, \'Mercedes4\',20,\'GSorg4\' ,\'public4\');', $connection); + executeInDb('insert into AutomobileTable (vehicleId, type, orgId,orgName,orgType) values (3, \'Mercedes3\',19,\'GSorg3\' ,\'public\');', $connection); + executeInDb('insert into AutomobileTable (vehicleId, type, orgId,orgName,orgType) values (4, \'Mercedes4\',20,\'GSorg4\' ,\'public\');', $connection); executeInDb('Drop table if exists AutoAncestor;', $connection); executeInDb('Create Table AutoAncestor (childId INT ,parentId INT);',$connection); @@ -118,6 +123,36 @@ Mapping meta::relational::tests::mapping::innerjoin::isolation::AutoMapping ) } +) + +###Mapping +import meta::relational::tests::mapping::innerjoin::isolation::*; +Mapping meta::relational::tests::mapping::innerjoin::isolation::MappingWithConstant +( + Car :Relational + { + scope([AutomobileDb]) + ( + type: AutomobileTable.type, + id: AutomobileTable.vehicleId, + org( + name: AutomobileTable.orgName, + isPrivate: 'Y', + ancestors: @ Auto_Auto > @Auto_Ancestor > (INNER)@AncestorAuto + ) + ) + } + + AutomobileUnion:Relational + { + scope([AutomobileDb]) + ( + name: AutomobileTable.orgName, + isPrivate: 'Y', + ancestors: @Auto_Ancestor > (INNER)@AncestorAuto + ) + } + ) ###Relational Database meta::relational::tests::mapping::innerjoin::isolation::AutomobileDb diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/join/advancedRelationalSetUp.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/join/advancedRelationalSetUp.pure index 11dd534456a..67c193dc1b0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/join/advancedRelationalSetUp.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tests/mapping/join/advancedRelationalSetUp.pure @@ -385,6 +385,68 @@ Mapping meta::relational::tests::mapping::join::model::mapping::JoinSchemaBWithS } ) +###Mapping +import meta::relational::tests::model::simple::*; +import meta::relational::tests::*; +Mapping meta::relational::tests::mapping::join::model::mapping::MappingWithLiteral +( + Person : Relational + { + scope([dbInc]) + ( + firstName : personTable.FIRSTNAME, + age : personTable.AGE + ), + scope([dbInc]default.personTable) + ( + lastName : 'Smith' + ), + firm : [dbInc]@Firm_Person, + address : [dbInc]@Address_Person, + locations : [dbInc]@Person_Location, + manager : [dbInc]@Person_Manager + } + + Firm : Relational + { + ~mainTable [dbInc] firmTable + legalName : [dbInc]firmTable.LEGALNAME, + employees : [dbInc]@Firm_Person, + address : [dbInc]@Address_Firm + } + + Address : Relational + { + name : [dbInc]addressTable.NAME, + street : [dbInc]addressTable.STREET, + comments : [dbInc]addressTable.COMMENTS + } + + Product : Relational + { + name : [db]productSchema.productTable.NAME, + synonyms : [db]@Product_Synonym + } + + ProductSynonymType: EnumerationMapping SynonymEnum + { + CUSIP: 'CUSIP', + ISIN: 'ISIN' + } + + Synonym : Relational + { + name : [db]productSchema.synonymTable.NAME, + type : EnumerationMapping SynonymEnum: 'CUSIP' + } + + Trade : Relational + { + id : [db]tradeTable.ID, + product : [db]@Trade_Product + } +) + ###Pure import meta::relational::tests::mapping::join::model::store::*; import meta::pure::profiles::*; @@ -494,4 +556,4 @@ function meta::relational::tests::mapping::join::model::store::createTablesAndFi executeInDb('insert into schemaB.PersonTable (id, firstName, LastName) values (4, \'Anthonye\', \'Anthony B\');', $connection); executeInDb('insert into schemaB.PersonTable (id, firstName, LastName) values (5, \'Oliver\', \'Oliver B\');', $connection); true; -} +} \ No newline at end of file From eb1358367597b0ded1134aed79083a83bbf76c44 Mon Sep 17 00:00:00 2001 From: Andrew Ormerod <49908208+aormerod-gs@users.noreply.github.com> Date: Fri, 3 Nov 2023 10:46:48 +0000 Subject: [PATCH 69/80] Add support for full outer join in TDS operations (#2428) --- .../dbSpecific/h2/h2Extension2_1_214.pure | 61 +++++++++++-------- .../sqlQueryToString/extensionDefaults.pure | 51 +++++++++++++++- .../core_relational/relational/tds/tds.pure | 6 +- .../relational/tds/tests/testTDSJoin.pure | 17 ++++++ .../binding/fromPure/fromPure.pure | 3 +- 5 files changed, 108 insertions(+), 30 deletions(-) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2Extension2_1_214.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2Extension2_1_214.pure index 599e8306737..57a0b21bdd0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2Extension2_1_214.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/dbSpecific/h2/h2Extension2_1_214.pure @@ -121,8 +121,6 @@ function <> meta::relational::functions::sqlQueryToString::h2::v let falsesList = ['n', '0', 'false']; let bitStr = $s->trim()->toLower(); - println('hello'); - let bitVal = if($bitStr->in($truesList), | 'true', | if($bitStr->in($falsesList), @@ -459,25 +457,32 @@ function <> meta::relational::functions::sqlQueryToString::h2::v extensions:Extension[*] ): String[1] { - let opStr = - if($s.filteringOperation->isEmpty(), - | '', - | $s.filteringOperation->map(s | $s->wrapH2Boolean($extensions)->processOperation($dbConfig, $format->indent(), ^$config(callingFromFilter = true), $extensions))->filter(s|$s != '')->joinStrings(' <||> ') - ); - let havingStr = - if($s.havingOperation->isEmpty(), - | '', - | $s.havingOperation->map(s|$s->wrapH2Boolean($extensions)->processOperation($dbConfig, $format->indent(), $config, $extensions))->filter(s|$s != '')->joinStrings(' <||> ') - ); + if($s.data.childrenData->match([jtn:JoinTreeNode[1]|$jtn.joinType == JoinType.FULL_OUTER, a:Any[*]|false]) , + | + // H2 doesn't support FULL_OUTER join, so we need to convert/emulate it so people can write unit tests... + $s->meta::relational::functions::sqlQueryToString::default::convertFullOuterJoinToLeftRightOuter()->processOperation($dbConfig, $format->indent(), $extensions); + , + | + let opStr = + if($s.filteringOperation->isEmpty(), + | '', + | $s.filteringOperation->map(s | $s->wrapH2Boolean($extensions)->processOperation($dbConfig, $format->indent(), ^$config(callingFromFilter = true), $extensions))->filter(s|$s != '')->joinStrings(' <||> ') + ); + let havingStr = + if($s.havingOperation->isEmpty(), + | '', + | $s.havingOperation->map(s|$s->wrapH2Boolean($extensions)->processOperation($dbConfig, $format->indent(), $config, $extensions))->filter(s|$s != '')->joinStrings(' <||> ') + ); - $format.separator + 'select ' + processTop($s, $format, $dbConfig, $extensions) + if($s.distinct == true,|'distinct ',|'') + - processSelectColumnsH2($s.columns, $dbConfig, $format->indent(), true, $extensions) + - if($s.data == [],|'',| ' ' + $format.separator + 'from ' + $s.data->toOne()->processJoinTreeNodeH2([], $dbConfig, $format->indent(), [], $extensions)) + - if (eq($opStr, ''), |'', | ' ' + $format.separator + 'where ' + $opStr) + - if ($s.groupBy->isEmpty(),|'',| ' ' + $format.separator + 'group by '+$s.groupBy->processGroupByColumns($dbConfig, $format->indent(), true, $extensions)->makeString(','))+ - if (eq($havingStr, ''), |'', | ' ' + $format.separator + 'having ' + $havingStr) + - if ($s.orderBy->isEmpty(),|'',| ' ' + $format.separator + 'order by '+ $s.orderBy->processOrderBy($dbConfig, $format->indent(), $config, $extensions)->makeString(','))+ - + processLimit($s, $dbConfig, $format, $extensions, [], processSliceOrDropForH2_SelectSQLQuery_1__Format_1__DbConfig_1__Extension_MANY__Any_1__String_1_); + $format.separator + 'select ' + processTop($s, $format, $dbConfig, $extensions) + if($s.distinct == true,|'distinct ',|'') + + processSelectColumnsH2($s.columns, $dbConfig, $format->indent(), true, $extensions) + + if($s.data == [],|'',| ' ' + $format.separator + 'from ' + $s.data->toOne()->processJoinTreeNodeH2([], $dbConfig, $format->indent(), [], $extensions)) + + if (eq($opStr, ''), |'', | ' ' + $format.separator + 'where ' + $opStr) + + if ($s.groupBy->isEmpty(),|'',| ' ' + $format.separator + 'group by '+$s.groupBy->processGroupByColumns($dbConfig, $format->indent(), true, $extensions)->makeString(','))+ + if (eq($havingStr, ''), |'', | ' ' + $format.separator + 'having ' + $havingStr) + + if ($s.orderBy->isEmpty(),|'',| ' ' + $format.separator + 'order by '+ $s.orderBy->processOrderBy($dbConfig, $format->indent(), $config, $extensions)->makeString(','))+ + + processLimit($s, $dbConfig, $format, $extensions, [], processSliceOrDropForH2_SelectSQLQuery_1__Format_1__DbConfig_1__Extension_MANY__Any_1__String_1_); + ); } /* @@ -599,6 +604,7 @@ function <> meta::relational::functions::sqlQueryToString::h2::v j:JoinTreeNode[1] | $j.join->otherTableFromAlias($parent->toOne()); ] ); + let val = $joinTreeNode->match( [ r:RootJoinTreeNode[1] | @@ -606,12 +612,19 @@ function <> meta::relational::functions::sqlQueryToString::h2::v ->map(a|^$a(name = '"' + $a.name + '"')) //Not sure why this is necessary, but it's retained to keep the generated SQL the same as previously (and does no real harm) ->processOperation($dbConfig, $format->indent(), $extensions), j:JoinTreeNode[1] | - if($j.joinType == JoinType.INNER,| ' ' + $format.separator() + 'inner join ',|if($j.joinType == JoinType.LEFT_OUTER,| ' ' + $format.separator() + 'left outer join ',| ' ' + $format.separator() + 'right outer join ')) + if($j.joinType == JoinType.FULL_OUTER, + | + // This should have been converted earlier to avoid a FULL_OUTER reaching this point + fail($j.joinType->toOne()->toString() + ' join not supported in H2'); ''; + , + | + $j.joinType->map(jt|$jt->meta::relational::functions::sqlQueryToString::default::processJoinType($dbConfig, $format, $extensions))->orElse('') + if ($j.lateral == true, | 'lateral ', | '') + $j.alias - ->map(a|^$a(name = '"' + $a.name + '"')) //Not sure why this is necessary, but it's retained to keep the generated SQL the same as previously (and does no real harm) - ->toOne()->processOperation($dbConfig, $format->indent(), $extensions) + $format.separator() - + ' ' + 'on (' + $j.join.operation->wrapH2Boolean($extensions)->processOperation($dbConfig, $format->indent(), ^Config(), $extensions) + ')';, + ->map(a|^$a(name = '"' + $a.name + '"')) //Not sure why this is necessary, but it's retained to keep the generated SQL the same as previously (and does no real harm) + ->toOne()->processOperation($dbConfig, $format->indent(), $extensions) + $format.separator() + + ' ' + 'on (' + $j.join.operation->wrapH2Boolean($extensions)->processOperation($dbConfig, $format->indent(), ^Config(), $extensions) + ')'; + ), a:Any[1] | '' ] ); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/extensionDefaults.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/extensionDefaults.pure index df3fb18604e..737a80b3f26 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/extensionDefaults.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/sqlQueryToString/extensionDefaults.pure @@ -297,9 +297,56 @@ function meta::relational::functions::sqlQueryToString::default::processSelectCo ); } +function meta::relational::functions::sqlQueryToString::default::convertFullOuterJoinToLeftRightOuter(s:SelectSQLQuery[1]) : RelationalOperationElement[1] +{ + // Emulate full outer join using a union of both a LEFT_OUTER and a RIGHT_OUTER join + // https://en.wikipedia.org/wiki/Join_(SQL)#Full_outer_join + // + // for the RIGHT_OUTER part of the query, we need to filter out rows successfully joined from the LHS (to avoid duplicates + // from the LEFT_OUTER query). Given we don't easily know the join keys / PK, we do this by adding a synthetic constant column to + // the LHS query and then filtering on where this synthetic key is null + + ^UnionAll( + queries = [ + ^$s(data = $s.data->map(d|^$d(childrenData = $d.childrenData->cast(@JoinTreeNode)->map(cd|^$cd(joinType = JoinType.LEFT_OUTER))))), + ^$s( + data = $s.data->map(d| + ^$d( + alias = $d.alias->map(a|^$a(relationalElement = $a.relationalElement->cast(@TdsSelectSqlQuery)->map(x|^$x(columns = $x.columns->concatenate(^Alias(name='"_lhsJoinValid_' + + $a.name, relationalElement=^Literal(value=1))))))), + childrenData = $d.childrenData->cast(@JoinTreeNode)->map(cd|^$cd(joinType = JoinType.RIGHT_OUTER)) + ) + ) + ) + ->map(newS| + ^$newS( + filteringOperation = ^DynaFunction(name = 'not', parameters = ^DynaFunction(name='equal', parameters=[^TableAliasColumn(alias=$newS.data.alias->toOne(),column=^Column(type=^meta::relational::metamodel::datatype::Integer(),name='"_lhsJoinValid_' + + $newS.data.alias.name)),^Literal(value=1)])) + ) + + ) + ] + ) +} + +function meta::relational::functions::sqlQueryToString::default::processJoinType(joinType:JoinType[1], dbConfig : DbConfig[1], format:Format[1], extensions:Extension[*]):String[1] +{ + if($joinType == JoinType.INNER, + | ' ' + $format.separator() + 'inner join ', + | if($joinType == JoinType.LEFT_OUTER, + | ' ' + $format.separator() + 'left outer join ', + | if($joinType == JoinType.RIGHT_OUTER, + | ' ' + $format.separator() + 'right outer join ', + | if($joinType == JoinType.FULL_OUTER, + | ' ' + $format.separator() + 'full outer join ', + | fail('Unsupported join type: ' + $joinType->toString()); ''; + ) + ) + ) + ) +} + function meta::relational::functions::sqlQueryToString::default::processJoinTreeNodeWithLateralJoinDefault(j:JoinTreeNode[1], dbConfig : DbConfig[1], format:Format[1], extensions:Extension[*]):String[1] { - if($j.joinType == JoinType.INNER,| ' ' + $format.separator() + 'inner join ',|if($j.joinType == JoinType.LEFT_OUTER,| ' ' + $format.separator() + 'left outer join ',| ' ' + $format.separator() + 'right outer join ')) + 'lateral ' + $j.joinType->map(jt|$jt->processJoinType($dbConfig, $format, $extensions))->orElse('') + 'lateral ' + $j.alias ->map(a|^$a(name = '"' + $a.name + '"')) //Not sure why this is necessary, but it's retained to keep the generated SQL the same as previously (and does no real harm) ->toOne()->processOperation($dbConfig, $format->indent(), $extensions) + $format.separator() @@ -323,7 +370,7 @@ function meta::relational::functions::sqlQueryToString::default::processJoinTree j:JoinTreeNode[1] | if($j.lateral == true, | $dbConfig.lateralJoinProcessor($j, $dbConfig, $format, $extensions), - | if($j.joinType == JoinType.INNER,| ' ' + $format.separator() + 'inner join ',|if($j.joinType == JoinType.LEFT_OUTER,| ' ' + $format.separator() + 'left outer join ',| ' ' + $format.separator() + 'right outer join ')) + | $j.joinType->map(jt|$jt->processJoinType($dbConfig, $format, $extensions))->orElse('') + $j.alias ->map(a|^$a(name = '"' + $a.name + '"')) //Not sure why this is necessary, but it's retained to keep the generated SQL the same as previously (and does no real harm) ->toOne()->processOperation($dbConfig, $format->indent(), $extensions) + $format.separator() diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tds.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tds.pure index 2a26e2edd82..cd6f0d18110 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tds.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tds.pure @@ -69,11 +69,11 @@ function let rows = if($type == JoinType.INNER || ($leftTdsRows->isNotEmpty() && $rightTdsRows->isNotEmpty()), | $leftTdsRows->map(r1|$rightTdsRows->map(r2|^TDSRow(values=concatenate($r1.values, $r2.values), parent=$res)));, | - if($type == JoinType.LEFT_OUTER, + if(($type == JoinType.LEFT_OUTER) || ($type == JoinType.FULL_OUTER && $rightTdsRows->isEmpty()), | $leftTdsRows->map(r1|^TDSRow(values=concatenate($r1.values, $requiredRightCols->map(c|^TDSNull())), parent=$res));, - | if($type == JoinType.RIGHT_OUTER, + | if(($type == JoinType.RIGHT_OUTER) || ($type == JoinType.FULL_OUTER && $leftTdsRows->isEmpty()), | $rightTdsRows->map(r2|^TDSRow(values=concatenate($requiredLeftCols->map(c|^TDSNull()), $r2.values), parent=$res)), - | fail('Unsupported join type ' + $type->makeString()); []; + | fail('Unsupported join type ' + $type->makeString()); []; ) ) ); diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSJoin.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSJoin.pure index e2ee749a5bb..f45e18b7c07 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSJoin.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/tds/tests/testTDSJoin.pure @@ -254,6 +254,23 @@ function <> meta::relational::tests::tds::tdsJoin::testRightOuterJoin '5,Roberts,2,Firm C,4', 'TDSNull,TDSNull,TDSNull,Firm A,2', 'TDSNull,TDSNull,TDSNull,Firm X,1'], $result.values.rows->map(r|$r.values->makeString(','))); } +function <> meta::relational::tests::tds::tdsJoin::testFullOuterJoinSimple():Boolean[1] +{ + let query = {| + testJoinTDS_Person.all()->project([#/testJoinTDS_Person/personID!personID#, #/testJoinTDS_Person/lastName!personName#, #/testJoinTDS_Person/employerID!eID#]) + ->join(testJoinTDS_Firm.all()->project([#/testJoinTDS_Firm/legalName!firmName#, #/testJoinTDS_Firm/firmID!fID#]), JoinType.FULL_OUTER, {a,b|($a.getInteger('eID') + 2) == $b.getInteger('fID');}) + ->sort(asc('personID')) + }; + + let result = execute($query, testJoinTDSMapping, testRuntime(), meta::relational::extension::relationalExtensions()); + + assertEquals([Integer , String, Integer, String, Integer], $result.values.columns.type); + assertSize($result.values.rows, 9); + assertSameElements(['1,Smith,1,Firm B,3', '2,Johnson,1,Firm B,3', '3,Hill,1,Firm B,3', '4,Allen,1,Firm B,3', + '5,Roberts,2,Firm C,4', '6,Hill,3,TDSNull,TDSNull', '7,Harris,4,TDSNull,TDSNull', + 'TDSNull,TDSNull,TDSNull,Firm A,2', 'TDSNull,TDSNull,TDSNull,Firm X,1'], $result.values.rows->map(r|$r.values->makeString(','))); +} + function <> meta::relational::tests::tds::tdsJoin::testInnerJoinConditionTrueUsingCol():Boolean[1] { let result = execute(|testJoinTDS_Person.all()->project([col(t|$t.personID,'personID'), col(t|$t.lastName,'personName'), col(t|$t.employerID,'eID')]) diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/fromPure.pure b/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/fromPure.pure index abd47b01d01..5d197636ec7 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/fromPure.pure +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure/src/main/resources/core_external_query_sql/binding/fromPure/fromPure.pure @@ -869,7 +869,8 @@ function <> meta::external::query::sql::transformation::queryToP pair(JoinType.LEFT, meta::relational::metamodel::join::JoinType.LEFT_OUTER), pair(JoinType.RIGHT, meta::relational::metamodel::join::JoinType.RIGHT_OUTER), pair(JoinType.INNER, meta::relational::metamodel::join::JoinType.INNER), - pair(JoinType.CROSS, meta::relational::metamodel::join::JoinType.INNER) + pair(JoinType.CROSS, meta::relational::metamodel::join::JoinType.INNER), + pair(JoinType.FULL, meta::relational::metamodel::join::JoinType.FULL_OUTER) ]->getValue($joinType); } From 4577691f3b717a770305ecaca03d267359131abd Mon Sep 17 00:00:00 2001 From: Babatunde Olagunju Date: Fri, 3 Nov 2023 11:02:34 +0000 Subject: [PATCH 70/80] fix mastery runtime composer (#2425) --- .../mastery/grammar/to/MasteryGrammarComposerExtension.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/grammar/to/MasteryGrammarComposerExtension.java b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/grammar/to/MasteryGrammarComposerExtension.java index 2cd206d3410..b59e2bc814b 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/grammar/to/MasteryGrammarComposerExtension.java +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/grammar/to/MasteryGrammarComposerExtension.java @@ -75,6 +75,7 @@ public List, PureGrammarComposerContext, List composableElements.addAll(ListIterate.selectInstancesOf(elements, MasterRecordDefinition.class)); composableElements.addAll(ListIterate.selectInstancesOf(elements, Connection.class)); composableElements.addAll(ListIterate.selectInstancesOf(elements, DataProvider.class)); + composableElements.addAll(ListIterate.selectInstancesOf(elements, MasteryRuntime.class)); return composableElements.isEmpty() ? null @@ -93,6 +94,10 @@ else if (element instanceof Connection) { return MasteryGrammarComposerExtension.renderConnection((Connection) element, context); } + else if (element instanceof MasteryRuntime) + { + return MasteryGrammarComposerExtension.renderMasteryRuntime((MasteryRuntime) element, context); + } throw new UnsupportedOperationException("Unsupported type " + element.getClass().getName()); }) .makeString("###" + MasteryParserExtension.NAME + "\n", "\n\n", ""), composableElements); From be3ff70dbe5ea2659b95d69d0f900f1084ebe77f Mon Sep 17 00:00:00 2001 From: Gayathri Rallapalle <87973126+gayathrir11@users.noreply.github.com> Date: Fri, 3 Nov 2023 21:35:33 +0530 Subject: [PATCH 71/80] Populate mappedEntityInfo when returnMappedEntityInfo flag is true (#2434) * Populate mappedEntityInfo when returnMappedEntityInfo flag is true * Update variable name --- .../modelCoverage/analyticsTest.pure | 40 +++++++++++++++++++ .../modelCoverage/mappedEntityBuilder.pure | 11 +++-- 2 files changed, 47 insertions(+), 4 deletions(-) diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/analyticsTest.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/analyticsTest.pure index 1df60231c2b..5a1cc6275a3 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/analyticsTest.pure +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/analyticsTest.pure @@ -20,6 +20,11 @@ function meta::analytics::mapping::modelCoverage::test::generateModelCoverageAna meta::analytics::mapping::modelCoverage::analyze($mapping, false, false, false); } +function meta::analytics::mapping::modelCoverage::test::generateModelCoverageAnalyticsWithMappedEntityInfo(mapping: Mapping[1]): MappingModelCoverageAnalysisResult[1] +{ + meta::analytics::mapping::modelCoverage::analyze($mapping, true, false, false); +} + // Relational function <> meta::analytics::mapping::modelCoverage::test::testSimpleRelationalMappingCoverage():Boolean[1] { @@ -111,6 +116,41 @@ function <> meta::analytics::mapping::modelCove assertContains($result.mappedEntities.path, 'meta::analytics::mapping::modelCoverage::test::Target_meta::analytics::mapping::modelCoverage::test::Source_autoMapped_shared'); } + +function <> meta::analytics::mapping::modelCoverage::test::testAutoMappedComplexPropertiesMappingCoverageWithMappedEntityInfo():Boolean[1] +{ + let grammar = 'Class meta::analytics::mapping::modelCoverage::test::Target\n'+ + '{\n'+ + ' tgtId: String[1];\n'+ + ' shared: meta::analytics::mapping::modelCoverage::test::Shared[1];\n'+ + '}\n'+ + 'Class meta::analytics::mapping::modelCoverage::test::Shared\n'+ + '{\n'+ + ' sharedId: String[1];\n'+ + '}\n'+ + 'Class meta::analytics::mapping::modelCoverage::test::Source\n'+ + '{\n'+ + ' srcId: String[1];\n'+ + ' shared: meta::analytics::mapping::modelCoverage::test::Shared[1];\n'+ + '}\n'+ + '###Mapping\n'+ + 'Mapping meta::analytics::mapping::modelCoverage::test::simpleAutoMappedMapping\n'+ + '(\n'+ + ' *meta::analytics::mapping::modelCoverage::test::Target:Pure\n'+ + ' {\n'+ + ' ~src meta::analytics::mapping::modelCoverage::test::Source\n'+ + ' tgtId: $src.srcId,\n'+ + ' shared: $src.shared\n'+ + ' }\n'+ + ')\n'; + let elements = meta::legend::compileLegendGrammar($grammar); + let autoMappedMapping = $elements->filter(e|$e->instanceOf(Mapping))->at(0)->cast(@Mapping); + let result = meta::analytics::mapping::modelCoverage::test::generateModelCoverageAnalyticsWithMappedEntityInfo($autoMappedMapping); + assert($result.mappedEntities->size() == 2); + assertContains($result.mappedEntities.path, 'meta::analytics::mapping::modelCoverage::test::Target_meta::analytics::mapping::modelCoverage::test::Source_autoMapped_shared'); + assert($result.mappedEntities->filter(m |$m.info->isNotEmpty())->size() == 2); +} + function <> meta::analytics::mapping::modelCoverage::test::testCyclicalAutoMappedComplexPropertiesMappingCoverage():Boolean[1] { let grammar = 'Class meta::analytics::mapping::modelCoverage::test::Target\n'+ diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/mappedEntityBuilder.pure b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/mappedEntityBuilder.pure index 4272359f4aa..387366be166 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/mappedEntityBuilder.pure +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/src/main/resources/core_analytics_mapping/modelCoverage/mappedEntityBuilder.pure @@ -301,9 +301,9 @@ function meta::analytics::mapping::modelCoverage::buildEntity( let srcClassPath = if($pureInstanceSetImplementation.srcClass->isNotEmpty(),|$pureInstanceSetImplementation.srcClass->toOne()->cast(@Class)->elementToPath(),|''); $targetClassPath + '_' + $srcClassPath;, |$pm.targetSetImplementationId); - processAutoMappedPropertyMapping($pm.property->cast(@AbstractProperty), $id + '_autoMapped_', $config, []);); + processAutoMappedPropertyMapping($pm.property->cast(@AbstractProperty), $id + '_autoMapped_', $isRootEntity, $config, []);); let autoMappedPrimitiveProperties = if($setImplementation->instanceOf(PureInstanceSetImplementation), - |buildAutoMappedProperty($class, if($setImplementation->cast(@PureInstanceSetImplementation).srcClass->isEmpty(),|[],|$setImplementation->cast(@PureInstanceSetImplementation).srcClass->cast(@Class)->toOne()), $properties, $config), + |buildAutoMappedProperty($class, if($setImplementation->cast(@PureInstanceSetImplementation).srcClass->isEmpty(),|[],|$setImplementation->cast(@PureInstanceSetImplementation).srcClass->cast(@Class)->toOne()), $properties, $isRootEntity, $config), |[]); buildEntity( $class, @@ -318,6 +318,7 @@ function meta::analytics::mapping::modelCoverage::buildEntity( function meta::analytics::mapping::modelCoverage::processAutoMappedPropertyMapping( property: AbstractProperty[1], prefix: String[1], + isRootEntity: Boolean[1], config: AnalysisConfiguration[1], visited: Pair, String>[*] ): AutoMappedHelperClass[1] @@ -344,8 +345,9 @@ function meta::analytics::mapping::modelCoverage::processAutoMappedPropertyMappi | ^MappedPropertyInfo(type = $property.genericType.rawType->toOne()->mapType(), multiplicity = $property.multiplicity->toOne()), | [])); let newVisited = $visited->concatenate([^Pair, String>(first = $property.genericType.rawType->toOne()->cast(@Class), second = $entityPath)]); - let children = $property.genericType.rawType->toOne()->cast(@Class).properties->map(p | $p->processAutoMappedPropertyMapping($entityPath + '_' , $config, $newVisited)); - let currentMappedEntity = ^MappedEntity(path=$entityPath, properties = $children->map(c|$c.mappedProperties)); + let propertyType = $property.genericType.rawType->toOne()->cast(@Class); + let children = $propertyType.properties->map(p | $p->processAutoMappedPropertyMapping($entityPath + '_' , $isRootEntity, $config, $newVisited)); + let currentMappedEntity = ^MappedEntity(path=$entityPath, properties = $children->map(c|$c.mappedProperties), info = if($config.returnMappedEntityInfo == true, | ^MappedEntityInfo(isRootEntity = $isRootEntity, classPath = $propertyType->elementToPath()), | [])); ^AutoMappedHelperClass(mappedProperties = [$entityMappedProp], mappedEntities=[$currentMappedEntity]->concatenate($children->map(c|$c.mappedEntities))); ); ) @@ -355,6 +357,7 @@ function meta::analytics::mapping::modelCoverage::buildAutoMappedProperty( class:Class[1], srcClass: Class[0..1], mappedProperties: MappedProperty[*], + isRootEntity: Boolean[1], config: AnalysisConfiguration[1] ): MappedProperty[*] { From c93d69aeb297a6ce026d2169f40e36b4712c5a28 Mon Sep 17 00:00:00 2001 From: An Phi Date: Fri, 3 Nov 2023 16:10:39 -0400 Subject: [PATCH 72/80] xt-sql: allow passing PAT when fetching PMCD from SDLC server (#2433) --- .../legend-engine-server/pom.xml | 4 ++ .../finos/legend/engine/server/Server.java | 22 +++++++--- .../engine/server/ServerConfiguration.java | 2 + .../pure/modelManager/sdlc/SDLCLoader.java | 40 +++++++++++++------ .../MetadataServerPac4jConfiguration.java | 26 ++++++++++++ ...ServerPrivateAccessTokenConfiguration.java | 20 ++++++++++ .../ServerConnectionConfiguration.java | 1 + .../pom.xml | 4 ++ .../project/ProjectCoordinateLoader.java | 32 ++++++++++++++- 9 files changed, 131 insertions(+), 20 deletions(-) create mode 100644 legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/src/main/java/org/finos/legend/engine/language/pure/modelManager/sdlc/configuration/MetadataServerPac4jConfiguration.java create mode 100644 legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/src/main/java/org/finos/legend/engine/language/pure/modelManager/sdlc/configuration/MetadataServerPrivateAccessTokenConfiguration.java diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index c05ca8de673..628bc64cd31 100644 --- a/legend-engine-config/legend-engine-server/pom.xml +++ b/legend-engine-config/legend-engine-server/pom.xml @@ -78,6 +78,10 @@ + + org.finos.legend.engine + legend-engine-server-support-core + org.finos.legend.engine legend-engine-pure-code-compiled-core diff --git a/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java b/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java index 25b1837bafe..d13bb16292c 100644 --- a/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java +++ b/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java @@ -31,6 +31,7 @@ import org.eclipse.collections.api.list.MutableList; import org.eclipse.collections.impl.list.mutable.FastList; import org.eclipse.collections.impl.utility.Iterate; +import org.eclipse.collections.impl.utility.LazyIterate; import org.eclipse.collections.impl.utility.ListIterate; import org.eclipse.jetty.server.session.SessionHandler; import org.eclipse.jetty.servlets.CrossOriginFilter; @@ -104,8 +105,6 @@ import org.finos.legend.engine.plan.execution.api.ExecutePlanStrategic; import org.finos.legend.engine.plan.execution.api.concurrent.ConcurrentExecutionNodeExecutorPoolInfo; import org.finos.legend.engine.plan.execution.api.concurrent.ParallelGraphFetchExecutionExecutorPoolInfo; -import org.finos.legend.engine.plan.execution.api.request.RequestContextHelper; -import org.finos.legend.engine.plan.execution.api.result.ResultManager; import org.finos.legend.engine.plan.execution.concurrent.ParallelGraphFetchExecutionExecutorPool; import org.finos.legend.engine.plan.execution.graphFetch.GraphFetchExecutionConfiguration; import org.finos.legend.engine.plan.execution.service.api.ServiceModelingApi; @@ -385,7 +384,7 @@ public void run(T serverConfiguration, Environment environment) environment.jersey().register(new ExecutePlanLegacy(planExecutor)); // Function Activator - environment.jersey().register(new FunctionActivatorAPI(modelManager,Lists.mutable.empty(), Lists.mutable.with(new SnowflakeAppService(planExecutor), new HostedServiceService()), routerExtensions)); + environment.jersey().register(new FunctionActivatorAPI(modelManager, Lists.mutable.empty(), Lists.mutable.with(new SnowflakeAppService(planExecutor), new HostedServiceService()), routerExtensions)); // GraphQL environment.jersey().register(new GraphQLGrammar()); @@ -432,7 +431,7 @@ public void run(T serverConfiguration, Environment environment) //TestData Generation environment.jersey().register(new TestDataGeneration(modelManager)); - enableCors(environment); + enableCors(environment, serverConfiguration); } // TODO: @akphi - this is temporary, rework when we find a better way to handle the initialization of connection factory from config or some external source. @@ -491,13 +490,24 @@ public void shutDown() throws Exception CollectorRegistry.defaultRegistry.clear(); } - private void enableCors(Environment environment) + private void enableCors(Environment environment, ServerConfiguration configuration) { + // Enable CORS FilterRegistration.Dynamic corsFilter = environment.servlets().addFilter("CORS", CrossOriginFilter.class); corsFilter.setInitParameter(CrossOriginFilter.ALLOWED_METHODS_PARAM, "GET,PUT,POST,DELETE,OPTIONS"); corsFilter.setInitParameter(CrossOriginFilter.ALLOWED_ORIGINS_PARAM, "*"); corsFilter.setInitParameter(CrossOriginFilter.ALLOWED_TIMING_ORIGINS_PARAM, "*"); - corsFilter.setInitParameter(CrossOriginFilter.ALLOWED_HEADERS_PARAM, "X-Requested-With,Content-Type,Accept,Origin,Access-Control-Allow-Credentials,x-b3-parentspanid,x-b3-sampled,x-b3-spanid,x-b3-traceid," + RequestContextHelper.LEGEND_REQUEST_ID + "," + RequestContextHelper.LEGEND_USE_PLAN_CACHE + "," + ResultManager.LEGEND_RESPONSE_FORMAT); + + if (configuration.cors != null && configuration.cors.getAllowedHeaders() != null) + { + corsFilter.setInitParameter(CrossOriginFilter.ALLOWED_HEADERS_PARAM, LazyIterate.adapt(configuration.cors.getAllowedHeaders()).makeString(",")); + } + else + { + // NOTE: this set of headers are kept as default for backward compatibility, the headers starting with prefix `x-` are meant for Zipkin + // client using SDLC server. We should consider using the CORS configuration and remove those from this default list. + corsFilter.setInitParameter(CrossOriginFilter.ALLOWED_HEADERS_PARAM, "X-Requested-With,Content-Type,Accept,Origin,Access-Control-Allow-Credentials,x-b3-parentspanid,x-b3-sampled,x-b3-spanid,x-b3-traceid"); + } corsFilter.setInitParameter(CrossOriginFilter.CHAIN_PREFLIGHT_PARAM, "false"); corsFilter.addMappingForUrlPatterns(EnumSet.of(DispatcherType.REQUEST), false, "*"); } diff --git a/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/ServerConfiguration.java b/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/ServerConfiguration.java index 470cfb23f50..05c5b69f965 100644 --- a/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/ServerConfiguration.java +++ b/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/ServerConfiguration.java @@ -23,6 +23,7 @@ import org.finos.legend.engine.server.core.configuration.DeploymentConfiguration; import org.finos.legend.engine.server.core.configuration.ErrorHandlingConfiguration; import org.finos.legend.engine.server.core.configuration.OpenTracingConfiguration; +import org.finos.legend.engine.server.support.server.config.CORSConfiguration; import org.finos.legend.engine.shared.core.vault.VaultConfiguration; import org.finos.legend.server.pac4j.LegendPac4jConfiguration; @@ -45,6 +46,7 @@ public class ServerConfiguration extends Configuration public GraphFetchExecutionConfiguration graphFetchExecutionConfiguration; public ErrorHandlingConfiguration errorhandlingconfiguration = new ErrorHandlingConfiguration(); public List activatorConfiguration; + public CORSConfiguration cors; /* This configuration has been deprecated in favor of the 'temporarytestdb' in RelationalExecutionConfiguration diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/src/main/java/org/finos/legend/engine/language/pure/modelManager/sdlc/SDLCLoader.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/src/main/java/org/finos/legend/engine/language/pure/modelManager/sdlc/SDLCLoader.java index c98d111985b..33ad3141890 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/src/main/java/org/finos/legend/engine/language/pure/modelManager/sdlc/SDLCLoader.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/src/main/java/org/finos/legend/engine/language/pure/modelManager/sdlc/SDLCLoader.java @@ -19,16 +19,11 @@ import io.opentracing.Span; import io.opentracing.tag.Tags; import io.opentracing.util.GlobalTracer; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.function.Function; -import java.util.function.Supplier; -import javax.security.auth.Subject; import org.apache.http.HttpEntity; import org.apache.http.HttpStatus; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; +import org.apache.http.client.methods.HttpRequestBase; import org.apache.http.impl.client.BasicCookieStore; import org.apache.http.impl.client.CloseableHttpClient; import org.apache.http.util.EntityUtils; @@ -59,6 +54,13 @@ import org.pac4j.core.profile.CommonProfile; import org.slf4j.Logger; +import javax.security.auth.Subject; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.function.Function; +import java.util.function.Supplier; + import static io.opentracing.propagation.Format.Builtin.HTTP_HEADERS; import static org.finos.legend.engine.shared.core.kerberos.ExecSubject.exec; @@ -234,6 +236,11 @@ public static PureModelContextData loadMetadataFromHTTPURL(MutableList pm, LoggingEventType startEvent, LoggingEventType stopEvent, String url, Function, CloseableHttpClient> httpClientProvider) + { + return loadMetadataFromHTTPURL(pm, startEvent, stopEvent, url, httpClientProvider, null); + } + + public static PureModelContextData loadMetadataFromHTTPURL(MutableList pm, LoggingEventType startEvent, LoggingEventType stopEvent, String url, Function, CloseableHttpClient> httpClientProvider, Function httpRequestProvider) { Scope scope = GlobalTracer.get().scopeManager().active(); CloseableHttpClient httpclient; @@ -260,15 +267,24 @@ public static PureModelContextData loadMetadataFromHTTPURL(MutableList "Engine was unable to load information from the Pure SDLC link"); LOGGER.info(new LogInfo(pm, stopEvent, (double) System.currentTimeMillis() - start).toString()); @@ -298,14 +314,14 @@ public static PureModelContextData loadMetadataFromHTTPURL(MutableListcommons-io test + + org.finos.legend.shared + legend-shared-pac4j-gitlab + \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/project/ProjectCoordinateLoader.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/project/ProjectCoordinateLoader.java index 95aa2f04a02..507692770eb 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/project/ProjectCoordinateLoader.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/project/ProjectCoordinateLoader.java @@ -19,16 +19,19 @@ import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; +import org.apache.http.HttpRequest; import org.apache.http.StatusLine; import org.apache.http.client.methods.CloseableHttpResponse; import org.apache.http.client.methods.HttpGet; import org.apache.http.impl.client.BasicCookieStore; import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.message.BasicHeader; import org.apache.http.util.EntityUtils; import org.eclipse.collections.api.block.function.Function; import org.eclipse.collections.api.list.MutableList; import org.finos.legend.engine.language.pure.modelManager.ModelManager; import org.finos.legend.engine.language.pure.modelManager.sdlc.SDLCLoader; +import org.finos.legend.engine.language.pure.modelManager.sdlc.configuration.MetadataServerPrivateAccessTokenConfiguration; import org.finos.legend.engine.language.pure.modelManager.sdlc.configuration.ServerConnectionConfiguration; import org.finos.legend.engine.protocol.pure.PureClientVersions; import org.finos.legend.engine.protocol.pure.v1.model.context.AlloySDLC; @@ -40,10 +43,12 @@ import org.finos.legend.engine.shared.core.kerberos.ProfileManagerHelper; import org.finos.legend.engine.shared.core.operational.errorManagement.EngineException; import org.finos.legend.engine.shared.core.operational.logs.LoggingEventType; +import org.finos.legend.server.pac4j.gitlab.GitlabPersonalAccessTokenProfile; import org.pac4j.core.profile.CommonProfile; import javax.security.auth.Subject; import javax.ws.rs.core.Response; +import java.net.URI; import java.security.PrivilegedAction; import java.util.List; import java.util.Optional; @@ -133,7 +138,21 @@ private PureModelContextData loadProjectPureModelContextData(String project, Str return doAs(ProfileManagerHelper.extractSubject(profiles), () -> { String url = String.format("%s/api/projects/%s/%s/%s/pureModelContextData", sdlcServerConfig.getBaseUrl(), project, isGroup ? "groupWorkspaces" : "workspaces", workspace); - PureModelContextData projectPMCD = SDLCLoader.loadMetadataFromHTTPURL(profiles, LoggingEventType.METADATA_REQUEST_ALLOY_PROJECT_START, LoggingEventType.METADATA_REQUEST_ALLOY_PROJECT_STOP, url, httpClientProvider); + PureModelContextData projectPMCD = SDLCLoader.loadMetadataFromHTTPURL(profiles, LoggingEventType.METADATA_REQUEST_ALLOY_PROJECT_START, LoggingEventType.METADATA_REQUEST_ALLOY_PROJECT_STOP, url, httpClientProvider, (String _url) -> + { + HttpGet httpRequest = new HttpGet(_url); + if (this.sdlcServerConfig.pac4j != null && this.sdlcServerConfig.pac4j instanceof MetadataServerPrivateAccessTokenConfiguration) + { + String patHeaderName = ((MetadataServerPrivateAccessTokenConfiguration) this.sdlcServerConfig.pac4j).accessTokenHeaderName; + MutableList patProfiles = profiles.selectInstancesOf(GitlabPersonalAccessTokenProfile.class); + if (patProfiles.getFirst() != null) + { + httpRequest = new HttpGet(String.format("%s?client_name=%s", _url, patProfiles.getFirst().getClientName())); + httpRequest.addHeader(new BasicHeader(patHeaderName, patProfiles.getFirst().getPersonalAccessToken())); + } + } + return httpRequest; + }); PureModelContextData dependencyPMCD = getSDLCDependenciesPMCD(project, workspace, isGroup, profiles); return projectPMCD.combine(dependencyPMCD); @@ -161,7 +180,16 @@ private PureModelContextData getSDLCDependenciesPMCD(String project, String work isGroup ? "groupWorkspaces" : "workspaces", workspace); - try (CloseableHttpResponse response = client.execute(new HttpGet(url))) + HttpGet httpRequest = new HttpGet(url); + String patHeaderName = ((MetadataServerPrivateAccessTokenConfiguration) this.sdlcServerConfig.pac4j).accessTokenHeaderName; + MutableList patProfiles = profiles.selectInstancesOf(GitlabPersonalAccessTokenProfile.class); + if (patProfiles.getFirst() != null) + { + httpRequest = new HttpGet(String.format("%s?client_name=%s", url, patProfiles.getFirst().getClientName())); + httpRequest.addHeader(new BasicHeader(patHeaderName, patProfiles.getFirst().getPersonalAccessToken())); + } + + try (CloseableHttpResponse response = client.execute(httpRequest)) { StatusLine status = response.getStatusLine(); if (!Response.Status.Family.familyOf(status.getStatusCode()).equals(Response.Status.Family.SUCCESSFUL)) From d67ece14c77d0aabdb0c1db485b2c07042c40c5d Mon Sep 17 00:00:00 2001 From: FINOS Administrator <37706051+finos-admin@users.noreply.github.com> Date: Fri, 3 Nov 2023 20:24:44 +0000 Subject: [PATCH 73/80] [maven-release-plugin] prepare release legend-engine-4.34.0 --- legend-engine-application-query/pom.xml | 2 +- legend-engine-config/legend-engine-configuration/pom.xml | 2 +- .../legend-engine-connection-integration-tests/pom.xml | 2 +- .../legend-engine-extensions-collection-execution/pom.xml | 2 +- .../legend-engine-extensions-collection-generation/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-server-integration-tests/pom.xml | 2 +- .../legend-engine-server-support-core/pom.xml | 2 +- legend-engine-config/legend-engine-server/pom.xml | 2 +- legend-engine-config/pom.xml | 2 +- .../legend-engine-executionPlan-dependencies/pom.xml | 2 +- .../legend-engine-executionPlan-execution-api/pom.xml | 2 +- .../legend-engine-executionPlan-execution-authorizer/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-executionPlan-execution/pom.xml | 2 +- .../legend-engine-external-shared-format-runtime/pom.xml | 2 +- .../legend-engine-core-executionPlan-execution/pom.xml | 2 +- .../legend-engine-executionPlan-generation/pom.xml | 2 +- .../legend-engine-core-executionPlan-generation/pom.xml | 2 +- .../legend-engine-external-shared-format-model/pom.xml | 2 +- .../legend-engine-language-pure-compiler-api/pom.xml | 2 +- .../legend-engine-language-pure-compiler/pom.xml | 2 +- .../legend-engine-language-pure-grammar-api/pom.xml | 2 +- .../legend-engine-language-pure-grammar/pom.xml | 2 +- .../legend-engine-language-pure-modelManager-sdlc/pom.xml | 2 +- .../legend-engine-language-pure-modelManager/pom.xml | 2 +- .../legend-engine-protocol-api/pom.xml | 2 +- .../legend-engine-protocol-generation-pure/pom.xml | 2 +- .../legend-engine-protocol-generation/pom.xml | 2 +- .../legend-engine-protocol-pure/pom.xml | 2 +- .../legend-engine-protocol/pom.xml | 2 +- legend-engine-core/legend-engine-core-language-pure/pom.xml | 2 +- .../legend-engine-query-pure/pom.xml | 2 +- legend-engine-core/legend-engine-core-query-pure/pom.xml | 2 +- .../legend-engine-shared-core/pom.xml | 2 +- .../legend-engine-shared-javaCompiler/pom.xml | 2 +- legend-engine-core/legend-engine-core-shared/pom.xml | 2 +- .../legend-engine-test-data-generation/pom.xml | 2 +- .../legend-engine-test-runner-mapping/pom.xml | 2 +- .../legend-engine-test-runner-shared/pom.xml | 2 +- .../legend-engine-test-server-shared/pom.xml | 2 +- .../legend-engine-core-test/legend-engine-testable/pom.xml | 2 +- legend-engine-core/legend-engine-core-test/pom.xml | 2 +- legend-engine-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-functions/pom.xml | 2 +- .../legend-engine-pure-code-core-extension/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-code/pom.xml | 2 +- .../legend-engine-pure-ide-light-metadata-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-ide/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-diagram-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-graph-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-mapping-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-path-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-json-java/pom.xml | 2 +- .../legend-engine-pure-platform-java/pom.xml | 2 +- .../legend-engine-pure-platform-store-relational-java/pom.xml | 2 +- .../legend-engine-pure-platform-modular-generation/pom.xml | 2 +- .../legend-engine-pure-runtime-compiler/pom.xml | 2 +- .../legend-engine-pure-runtime-execution/pom.xml | 2 +- .../legend-engine-pure-runtime-extensions/pom.xml | 2 +- .../legend-engine-xt-java-runtime-compiler/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-runtime/pom.xml | 2 +- legend-engine-pure/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-api/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-binding/pom.xml | 2 +- .../legend-engine-xt-analytics-class-api/pom.xml | 2 +- .../legend-engine-xt-analytics-class-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-class/pom.xml | 2 +- .../legend-engine-xt-analytics-function-api/pom.xml | 2 +- .../legend-engine-xt-analytics-function-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-function/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-api/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-lineage/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-api/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-protocol/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-mapping/pom.xml | 2 +- .../legend-engine-xt-analytics-search-generation/pom.xml | 2 +- .../legend-engine-xt-analytics-search-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-search/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement-api/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement/pom.xml | 2 +- .../legend-engine-xts-analytics-store/pom.xml | 2 +- legend-engine-xts-analytics/pom.xml | 2 +- legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml | 2 +- .../legend-engine-xt-arrow-runtime/pom.xml | 2 +- legend-engine-xts-arrow/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-protocol/pom.xml | 2 +- .../legend-engine-xt-authentication-pure/pom.xml | 2 +- legend-engine-xts-authentication/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro/pom.xml | 2 +- legend-engine-xts-avro/pom.xml | 2 +- .../legend-engine-xt-changetoken-compiler/pom.xml | 2 +- .../legend-engine-xt-changetoken-pure/pom.xml | 2 +- legend-engine-xts-changetoken/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml | 2 +- legend-engine-xts-daml/pom.xml | 2 +- .../legend-engine-xt-data-push-server/pom.xml | 2 +- legend-engine-xts-data-push/pom.xml | 2 +- .../legend-engine-xt-data-space-api/pom.xml | 2 +- .../legend-engine-xt-data-space-compiler/pom.xml | 2 +- .../legend-engine-xt-data-space-generation/pom.xml | 2 +- .../legend-engine-xt-data-space-grammar/pom.xml | 2 +- .../legend-engine-xt-data-space-protocol/pom.xml | 2 +- .../legend-engine-xt-data-space-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-data-space-pure/pom.xml | 2 +- legend-engine-xts-data-space/pom.xml | 2 +- .../legend-engine-xt-diagram-api/pom.xml | 2 +- .../legend-engine-xt-diagram-compiler/pom.xml | 2 +- .../legend-engine-xt-diagram-grammar/pom.xml | 2 +- .../legend-engine-xt-diagram-protocol/pom.xml | 2 +- .../legend-engine-xt-diagram-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-diagram-pure/pom.xml | 2 +- legend-engine-xts-diagram/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-grammar/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-protocol/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-executionPlan-test/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-protocol-utils/pom.xml | 2 +- .../pom.xml | 2 +- legend-engine-xts-elasticsearch/pom.xml | 2 +- .../legend-engine-xt-flatdata-driver-bloomberg/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-flatdata-model/pom.xml | 2 +- .../legend-engine-xt-flatdata-pure/pom.xml | 2 +- .../legend-engine-xt-flatdata-runtime/pom.xml | 2 +- .../legend-engine-xt-flatdata-shared/pom.xml | 2 +- legend-engine-xts-flatdata/pom.xml | 2 +- .../legend-engine-xt-functionActivator-api/pom.xml | 2 +- .../legend-engine-xt-functionActivator-protocol/pom.xml | 2 +- .../legend-engine-xt-functionActivator-pure/pom.xml | 2 +- legend-engine-xts-functionActivator/pom.xml | 2 +- .../legend-engine-external-shared/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation/pom.xml | 2 +- .../legend-engine-xt-artifact-generation-api/pom.xml | 2 +- legend-engine-xts-generation/pom.xml | 2 +- .../legend-engine-xt-graphQL-compiler/pom.xml | 4 ++-- .../legend-engine-xt-graphQL-grammar-integration/pom.xml | 2 +- .../legend-engine-xt-graphQL-grammar/pom.xml | 2 +- .../legend-engine-xt-graphQL-protocol/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure/pom.xml | 2 +- .../legend-engine-xt-graphQL-query/pom.xml | 2 +- .../legend-engine-xt-graphQL-relational-extension/pom.xml | 2 +- legend-engine-xts-graphQL/pom.xml | 2 +- .../legend-engine-xt-haskell-grammar/pom.xml | 2 +- .../legend-engine-xt-haskell-protocol/pom.xml | 2 +- .../legend-engine-xt-haskell-pure/pom.xml | 2 +- legend-engine-xts-haskell/pom.xml | 2 +- .../legend-engine-xt-hostedService-api/pom.xml | 2 +- .../legend-engine-xt-hostedService-compiler/pom.xml | 2 +- .../legend-engine-xt-hostedService-generation/pom.xml | 2 +- .../legend-engine-xt-hostedService-grammar/pom.xml | 2 +- .../legend-engine-xt-hostedService-protocol/pom.xml | 2 +- .../legend-engine-xt-hostedService-pure/pom.xml | 2 +- legend-engine-xts-hostedService/pom.xml | 2 +- .../legend-engine-xt-iceberg-pure/pom.xml | 2 +- .../legend-engine-xt-iceberg-test-support/pom.xml | 2 +- legend-engine-xts-iceberg/pom.xml | 2 +- .../legend-engine-external-language-java/pom.xml | 2 +- .../legend-engine-xt-javaGeneration-featureBased-pure/pom.xml | 2 +- .../legend-engine-xt-javaGeneration-pure/pom.xml | 2 +- .../legend-engine-xt-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-java/pom.xml | 2 +- .../legend-engine-external-format-jsonSchema/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-pure/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-test/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-model/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml | 2 +- legend-engine-xts-json/pom.xml | 2 +- .../legend-engine-xt-mastery-grammar/pom.xml | 2 +- .../legend-engine-xt-mastery-protocol/pom.xml | 2 +- .../legend-engine-xt-mastery-pure/pom.xml | 2 +- legend-engine-xts-mastery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml | 2 +- legend-engine-xts-mongodb/pom.xml | 2 +- .../legend-engine-xt-morphir-pure/pom.xml | 2 +- legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml | 2 +- legend-engine-xts-morphir/pom.xml | 2 +- .../legend-engine-xt-openapi-generation/pom.xml | 2 +- .../legend-engine-xt-openapi-pure/pom.xml | 2 +- legend-engine-xts-openapi/pom.xml | 2 +- .../legend-engine-xt-persistence-api/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-component/pom.xml | 2 +- .../legend-engine-xt-persistence-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-test-runner/pom.xml | 2 +- legend-engine-xts-persistence/pom.xml | 2 +- .../legend-engine-xt-protobuf-grammar/pom.xml | 2 +- .../legend-engine-xt-protobuf-protocol/pom.xml | 2 +- .../legend-engine-xt-protobuf-pure/pom.xml | 2 +- legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml | 4 ++-- legend-engine-xts-protobuf/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-analytics/pom.xml | 2 +- .../legend-engine-xt-relationalStore-connection/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-reports/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-server/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino/pom.xml | 2 +- .../legend-engine-xt-relationalStore-dbExtension/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-executionPlan/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-api/pom.xml | 2 +- .../legend-engine-xt-relationalStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-generation/pom.xml | 2 +- legend-engine-xts-relationalStore/pom.xml | 2 +- .../legend-engine-xt-relationalai-pure/pom.xml | 2 +- legend-engine-xts-relationalai/pom.xml | 2 +- .../legend-engine-xt-rosetta-pure/pom.xml | 2 +- legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml | 2 +- legend-engine-xts-rosetta/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-execution/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service/pom.xml | 2 +- .../legend-engine-service-post-validation-runner/pom.xml | 2 +- .../legend-engine-services-model-api/pom.xml | 2 +- .../legend-engine-services-model/pom.xml | 2 +- .../legend-engine-test-runner-service/pom.xml | 2 +- legend-engine-xts-service/pom.xml | 2 +- .../legend-engine-xt-serviceStore-executionPlan/pom.xml | 2 +- .../legend-engine-xt-serviceStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-serviceStore-protocol/pom.xml | 2 +- .../legend-engine-xt-serviceStore-pure/pom.xml | 2 +- legend-engine-xts-serviceStore/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-api/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-compiler/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-generator/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-grammar/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-protocol/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-pure/pom.xml | 2 +- legend-engine-xts-snowflakeApp/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml | 2 +- .../legend-engine-xt-sql-grammar-integration/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml | 2 +- .../legend-engine-xt-sql-postgres-server/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml | 2 +- .../legend-engine-xt-sql-providers-core/pom.xml | 2 +- .../legend-engine-xt-sql-providers-relationalStore/pom.xml | 2 +- .../legend-engine-xt-sql-providers-service/pom.xml | 2 +- .../legend-engine-xt-sql-providers-shared/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml | 2 +- .../legend-engine-xt-sql-pure-metamodel/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml | 2 +- legend-engine-xts-sql/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml | 2 +- .../legend-engine-xt-text-pure-metamodel/pom.xml | 2 +- legend-engine-xts-text/pom.xml | 2 +- .../legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml | 2 +- legend-engine-xts-xml/pom.xml | 2 +- pom.xml | 4 ++-- 381 files changed, 384 insertions(+), 384 deletions(-) diff --git a/legend-engine-application-query/pom.xml b/legend-engine-application-query/pom.xml index 5698f6e3883..d5826aad99d 100644 --- a/legend-engine-application-query/pom.xml +++ b/legend-engine-application-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-application-query diff --git a/legend-engine-config/legend-engine-configuration/pom.xml b/legend-engine-config/legend-engine-configuration/pom.xml index a9c6779d47c..4e3c2b59c09 100644 --- a/legend-engine-config/legend-engine-configuration/pom.xml +++ b/legend-engine-config/legend-engine-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-configuration diff --git a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml index 09502dfbe5b..0de96e6b461 100644 --- a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-connection-integration-tests diff --git a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml index 77b926980e8..7683e89f079 100644 --- a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml index f7e14d61d48..dd683046598 100644 --- a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml index 2126d45d85d..fcbcd63362d 100644 --- a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml +++ b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-config/legend-engine-server-integration-tests/pom.xml b/legend-engine-config/legend-engine-server-integration-tests/pom.xml index 8562b6238d5..93037718418 100644 --- a/legend-engine-config/legend-engine-server-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-server-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-server-integration-tests diff --git a/legend-engine-config/legend-engine-server-support-core/pom.xml b/legend-engine-config/legend-engine-server-support-core/pom.xml index 069f42b12fd..2bccc9dd276 100644 --- a/legend-engine-config/legend-engine-server-support-core/pom.xml +++ b/legend-engine-config/legend-engine-server-support-core/pom.xml @@ -3,7 +3,7 @@ legend-engine-config org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index 628bc64cd31..66131a5d854 100644 --- a/legend-engine-config/legend-engine-server/pom.xml +++ b/legend-engine-config/legend-engine-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-server diff --git a/legend-engine-config/pom.xml b/legend-engine-config/pom.xml index eebb77a4599..1a6002da0eb 100644 --- a/legend-engine-config/pom.xml +++ b/legend-engine-config/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml index 7ada44141c3..37e28de7955 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-executionPlan-dependencies diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml index cbe2c01a7c4..331bb4ecad2 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-executionPlan-execution-api diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml index d015152427a..b3442f4dc84 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-core-executionPlan-execution org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml index 1841009e353..18df82ef5c6 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-executionPlan-execution-store-inMemory diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml index 40215158c04..81332a94bc6 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-executionPlan-execution diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml index d66c3ccda24..f27229c6d6a 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml index e276fb630ed..dcad2511d88 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml index 7bbc72d5b28..91352b2cb80 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-generation - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml index a73e4a74c74..7166edc1431 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml index 09aaaab53de..97a959bd2ba 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml index b29c758a5fa..7b6b2074fcb 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-language-pure-compiler-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml index cbd07ed2c11..c18c41bb6bd 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-language-pure-compiler diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml index fa8c0d42909..89fcf0b5e4b 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-language-pure-grammar-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml index 07dc18ca1c8..56680d910d9 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-language-pure-grammar diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml index 3f39c739f8f..558992de3de 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-language-pure-modelManager-sdlc diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml index d8e9cedfa91..8d1dbdd3c0f 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-language-pure-modelManager diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml index 1a2d1286fcb..a22ee4f1a97 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-protocol-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml index d40654ff592..f3fd2a2364a 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-protocol-generation-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml index 8bbbeb6dfb4..caa5aeed06a 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-protocol-generation diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml index 390d74a8856..3628af9b567 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-protocol-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml index 82c4d87e0c4..a31e78a393e 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-protocol diff --git a/legend-engine-core/legend-engine-core-language-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/pom.xml index 1e54c7e499e..92bc3a1241e 100644 --- a/legend-engine-core/legend-engine-core-language-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml index 28ea6790340..369d270d188 100644 --- a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-query-pure - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-query-pure diff --git a/legend-engine-core/legend-engine-core-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/pom.xml index b99c4cfcac2..60363b2d902 100644 --- a/legend-engine-core/legend-engine-core-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml index 7354dbf2001..22b4f5dd8e4 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-shared-core diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml index f13da9ccd81..ce776150a1a 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-shared-javaCompiler diff --git a/legend-engine-core/legend-engine-core-shared/pom.xml b/legend-engine-core/legend-engine-core-shared/pom.xml index ab133b7cb26..89527d22fee 100644 --- a/legend-engine-core/legend-engine-core-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml index 1954d19fdfe..f2fdeabb415 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml index 8f1fdd780f4..d8efd43e542 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml index 3d2ce2178eb..7bca989ff21 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-test-runner-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml index ae0247375b2..17e7fd14a64 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-test-server-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml index a6b002d586c..442573c067c 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-testable diff --git a/legend-engine-core/legend-engine-core-test/pom.xml b/legend-engine-core/legend-engine-core-test/pom.xml index 7c348039986..e05193fb4ba 100644 --- a/legend-engine-core/legend-engine-core-test/pom.xml +++ b/legend-engine-core/legend-engine-core-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-core/pom.xml b/legend-engine-core/pom.xml index fd0ea888d22..d2d6e09772b 100644 --- a/legend-engine-core/pom.xml +++ b/legend-engine-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml index ac39ba6b3b0..978d7c8d6c0 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.33.4-SNAPSHOT + 4.34.0 legend-engine-pure-code-compiled-core diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml index 60b745103b1..98cece2b050 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.33.4-SNAPSHOT + 4.34.0 legend-engine-pure-code-compiled-functions diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml index 57596627d3e..443c382ff9f 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.33.4-SNAPSHOT + 4.34.0 legend-engine-pure-code-core-extension diff --git a/legend-engine-pure/legend-engine-pure-code/pom.xml b/legend-engine-pure/legend-engine-pure-code/pom.xml index be85042bf1c..d6d700f9bb0 100644 --- a/legend-engine-pure/legend-engine-pure-code/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml index 134256fd821..e2df5fc0b50 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml index 72253cb4cfb..08415e81845 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml index 91d34caf0b4..9c327ad518b 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/pom.xml b/legend-engine-pure/legend-engine-pure-ide/pom.xml index 33e45c9c0da..d21ea7c4e14 100644 --- a/legend-engine-pure/legend-engine-pure-ide/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml index 7162278821e..e1e933c042d 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.4-SNAPSHOT + 4.34.0 legend-engine-pure-platform-dsl-diagram-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml index 9efd8fa47df..621bdf4036c 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.4-SNAPSHOT + 4.34.0 legend-engine-pure-platform-dsl-graph-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml index d2ced50ed5c..8690d30ea8d 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.4-SNAPSHOT + 4.34.0 legend-engine-pure-platform-dsl-mapping-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml index 44e3b8492ff..159924bac03 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.4-SNAPSHOT + 4.34.0 legend-engine-pure-platform-dsl-path-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml index af66351df3f..6ffd66ac3fc 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.4-SNAPSHOT + 4.34.0 legend-engine-pure-platform-functions-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml index 91075829031..d5d2459db1b 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.4-SNAPSHOT + 4.34.0 legend-engine-pure-platform-functions-json-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml index 60f3f0e594b..8e567839565 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.4-SNAPSHOT + 4.34.0 legend-engine-pure-platform-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml index 8bb4e93975c..1d18d0aa3f8 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.33.4-SNAPSHOT + 4.34.0 legend-engine-pure-platform-store-relational-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml index 985e6a3a249..c7647febdfd 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml index 717bc7dd760..cbd020ff8c3 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml index e963734b894..e2f1c93d682 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml index ddbc112476f..57f476e709d 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml index ccb8b58c376..fe09ea7106e 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.33.4-SNAPSHOT + 4.34.0 legend-engine-xt-java-runtime-compiler diff --git a/legend-engine-pure/legend-engine-pure-runtime/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/pom.xml index ead2823e7cc..6c5012ccaf7 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-pure/pom.xml b/legend-engine-pure/pom.xml index 1cf10fb1dd4..229f60d34c8 100644 --- a/legend-engine-pure/pom.xml +++ b/legend-engine-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml index 13db111ba25..a7ad12a5738 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml index f5ba6210e11..1c784b75ccb 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml index 98a02273bad..e3f488218b6 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml index 08ce31edef9..f842e5cfcf9 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml index e6962226db1..5dafba55ec8 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml index 9f988176d6e..1da8a61464e 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml index 939703b15e0..26fd4756d5f 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml index e939184d5ac..83aeebb7902 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml index a72e1269a9a..ac4f8b9e7e9 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml index 3144dfe9e68..76915a92efa 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml index dd1758e213f..e7fd7629af5 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml index 2b8001b4edb..d5a94b8479d 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml index 9718c2bc377..5c461fd34cb 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 Legend Engine - XT - Analytics - Mapping - API diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml index 8da86829c22..0893efbf854 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-mapping - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 Legend Engine - XT - Analytics - Mapping - Protocol diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml index fcf1576d360..d31a0b72941 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml index ba1cbb8030b..199f88e30f1 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml index ed6acb843eb..e77fc429dcc 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-search - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml index 37a32ba92b2..59ad4b7b746 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-search org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml index f23f9374d5a..82d07ef7632 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml index abf2450bd73..d86d7858924 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-xt-analytics-store-entitlement-api diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml index e30c35154dd..3de12f86a96 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml index e4579390600..c4435637cbf 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-analytics/pom.xml b/legend-engine-xts-analytics/pom.xml index d899fda7a78..771657b732c 100644 --- a/legend-engine-xts-analytics/pom.xml +++ b/legend-engine-xts-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml index 76760095b29..3359bf9bb22 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml index faf524aa7a4..432e5229271 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-arrow/pom.xml b/legend-engine-xts-arrow/pom.xml index d6b7e00c248..bae143e0963 100644 --- a/legend-engine-xts-arrow/pom.xml +++ b/legend-engine-xts-arrow/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 legend-engine-xts-arrow diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml index e8ab269e236..51f73ec98b7 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml index eb36b3bda86..295923f4a3f 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml index a7c08b7b089..b67077b0324 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml index 08090a0f355..0e824ad0718 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml index 09476e8bb55..b39fdcfb21b 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml index 6566bd01c2a..c57c44380ad 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml index a8d63fd250a..a7ccecf9a01 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-authentication/pom.xml b/legend-engine-xts-authentication/pom.xml index 2e962f282ac..af97c6be5aa 100644 --- a/legend-engine-xts-authentication/pom.xml +++ b/legend-engine-xts-authentication/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml index a62b7e40359..c7e99cb35cd 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml index 92c6e61ed22..dcc6030ba09 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-avro/pom.xml b/legend-engine-xts-avro/pom.xml index 95379a853a1..ec90e43b5a6 100644 --- a/legend-engine-xts-avro/pom.xml +++ b/legend-engine-xts-avro/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml index 6b452b26de5..18d5f5fc2f2 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-changetoken org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml index 2eaf951f528..aaf4ccbd3b8 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-changetoken - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-changetoken/pom.xml b/legend-engine-xts-changetoken/pom.xml index 847b26f2051..bc5f6395c2d 100644 --- a/legend-engine-xts-changetoken/pom.xml +++ b/legend-engine-xts-changetoken/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml index 9785fbbe442..c5d7fc1165d 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml index 9b49c559dce..649d194ee75 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml index f92a4ddaaee..01b86efc425 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-daml/pom.xml b/legend-engine-xts-daml/pom.xml index aec012acf8d..ad271ffdd8e 100644 --- a/legend-engine-xts-daml/pom.xml +++ b/legend-engine-xts-daml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml index b3028bee098..735e8a1a9a4 100644 --- a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml +++ b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-data-push org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-data-push/pom.xml b/legend-engine-xts-data-push/pom.xml index 08900fb651c..9d3f23c292f 100644 --- a/legend-engine-xts-data-push/pom.xml +++ b/legend-engine-xts-data-push/pom.xml @@ -3,7 +3,7 @@ legend-engine org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml index 2a7abd33481..788490fe778 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml index db69af8ff29..6aeb2f9f985 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-data-space org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml index 7646588bad9..8b4c245df71 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml index 41c7de55e42..61968d13a62 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml index 6935f6f54eb..5119a5942df 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml index 044e12e56d9..ac9f29ef026 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml index 5209787fe83..b11dc88db62 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-data-space/pom.xml b/legend-engine-xts-data-space/pom.xml index 069cf5be9ff..b97238c934f 100644 --- a/legend-engine-xts-data-space/pom.xml +++ b/legend-engine-xts-data-space/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml index 3e042197477..3e79e1916ff 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml index 8b0b079eb93..8a7706a8b30 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-diagram org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml index 723dc980074..5037c29d00b 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml index 41b5ae547f5..281d1bb664d 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml index c074ef423d0..1e26bb3acd4 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml index aed738774fd..6e0bb37ad80 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-diagram/pom.xml b/legend-engine-xts-diagram/pom.xml index c9ec75ac3e5..88268661505 100644 --- a/legend-engine-xts-diagram/pom.xml +++ b/legend-engine-xts-diagram/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml index ff3166d6131..73a60542115 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml index 8fa19eef2c8..17ff77c4865 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml index 087b355401a..abe5b5ba15f 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml index 682f9646bae..f69bfb01804 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml index ecad3f87045..05833e3a4e9 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml index 53eb73b817f..b7f39198ba1 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.4-SNAPSHOT + 4.34.0 legend-engine-xt-elasticsearch-protocol-utils diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml index 69730a1b32c..d08499bbdd7 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-elasticsearch/pom.xml b/legend-engine-xts-elasticsearch/pom.xml index be2a23e2b78..75741e3aa57 100644 --- a/legend-engine-xts-elasticsearch/pom.xml +++ b/legend-engine-xts-elasticsearch/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml index 32b19c8542b..b314ff7b17c 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-flatdata org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml index 7c0b5bd4ad4..ab0d4d30705 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml index cbbf79f6418..733e16e3446 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml index e12d16f68a1..17649ab5bbc 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml index baf212d1f80..fb4c480795d 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml index 76e519f769e..e877c996bc3 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml index 4cf11332275..faf5e18fb43 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-flatdata/pom.xml b/legend-engine-xts-flatdata/pom.xml index b5ba278e089..30ab09598b9 100644 --- a/legend-engine-xts-flatdata/pom.xml +++ b/legend-engine-xts-flatdata/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml index 67e04d18a48..91ea6190856 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml index 1953e5d2107..164da8384e1 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml index ec8686c8736..b6c0e6e0c52 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-functionActivator/pom.xml b/legend-engine-xts-functionActivator/pom.xml index 7676521ddb8..7bffbdcd079 100644 --- a/legend-engine-xts-functionActivator/pom.xml +++ b/legend-engine-xts-functionActivator/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml index 1ad28a7b4ce..7eb773f13de 100644 --- a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml +++ b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml index 6eda0725574..4da845be2bb 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml index 8d7982d63dc..a50af796ef0 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-language-pure-dsl-generation diff --git a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml index b01598e59eb..66f573e4e10 100644 --- a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml +++ b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-generation org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-generation/pom.xml b/legend-engine-xts-generation/pom.xml index 666cd577bd1..6333b171f41 100644 --- a/legend-engine-xts-generation/pom.xml +++ b/legend-engine-xts-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml index 60d1314e096..3eb5258ba42 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 @@ -73,7 +73,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.33.4-SNAPSHOT + 4.34.0 org.finos.legend.pure diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml index 7b88bb0c293..2b39c8765e3 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml index 8b3779c9dd6..41e20ab3238 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml index dbd4b4ac9c0..accb9353b2a 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml index 1dfc2372750..78f28b9ac25 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml index 79b8c24e953..b93113de0b6 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml index b0658f041ff..444bdb62ef6 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml index d9598fbefbf..74ae8ec2246 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-graphQL/pom.xml b/legend-engine-xts-graphQL/pom.xml index 1abc77d2a00..fa54397e12a 100644 --- a/legend-engine-xts-graphQL/pom.xml +++ b/legend-engine-xts-graphQL/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml index b4b231b388f..72239992310 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml index 19d50fdf526..99518230c3e 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml index f1df51df4bb..6777a13252e 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-haskell/pom.xml b/legend-engine-xts-haskell/pom.xml index bf03e0ff577..961b6ed0910 100644 --- a/legend-engine-xts-haskell/pom.xml +++ b/legend-engine-xts-haskell/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml index eb5331cbbf5..7c79dd2c5b4 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml index aacb1a20dec..b7a911a500b 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml index e060d604bc9..15d2b93f8c1 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml index f68010c24e3..e361f6b81cf 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml index 918bf4c84ae..35221d1330b 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml index 148d21a77ec..ee9d2c21e4c 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-hostedService/pom.xml b/legend-engine-xts-hostedService/pom.xml index e1ed6bb35da..eaab1bea88b 100644 --- a/legend-engine-xts-hostedService/pom.xml +++ b/legend-engine-xts-hostedService/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml index b73dc7f309e..e20d4135a67 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml index dc24fba78b6..6efefe4ed0c 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-iceberg/pom.xml b/legend-engine-xts-iceberg/pom.xml index 459c324f342..48daff6d03c 100644 --- a/legend-engine-xts-iceberg/pom.xml +++ b/legend-engine-xts-iceberg/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml index 212f4197c3c..066ece9be26 100644 --- a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml +++ b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml index 8cf964b9edb..fadd7978851 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml index 2f49636c242..03ace1bfb6e 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml index e8ad66714f2..24b9e976ac8 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-java/pom.xml b/legend-engine-xts-java/pom.xml index 6a6518e8b42..dd34a6883cc 100644 --- a/legend-engine-xts-java/pom.xml +++ b/legend-engine-xts-java/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml index 2fcc71b65f6..a8808c76d46 100644 --- a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml +++ b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml index 26e19952de1..0e770a30caa 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml index e18be1e82d7..70ab675fb62 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml index d51f0f312a3..f420dd73d80 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml index f14269073d3..40df2c9d2e5 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml index 3c11cc43b24..c949a51d51b 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-json/pom.xml b/legend-engine-xts-json/pom.xml index 796b6a66e70..f17ce2090d3 100644 --- a/legend-engine-xts-json/pom.xml +++ b/legend-engine-xts-json/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml index 881ab632297..14da34f56fb 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-mastery org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml index 3d79499bdf2..b579866eb30 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml index a9bc1117908..247151b640b 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-mastery/pom.xml b/legend-engine-xts-mastery/pom.xml index 9cafa5fa407..bee164a08f7 100644 --- a/legend-engine-xts-mastery/pom.xml +++ b/legend-engine-xts-mastery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml index 31555dac727..5e0de4cce07 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml index 29865d0d1a8..d13a931a835 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.4-SNAPSHOT + 4.34.0 legend-engine-xt-nonrelationalStore-mongodb-executionPlan diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml index c1286e79468..884a753304e 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.4-SNAPSHOT + 4.34.0 legend-engine-xt-nonrelationalStore-mongodb-grammar-integration diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml index f1568435103..560cd266699 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.4-SNAPSHOT + 4.34.0 legend-engine-xt-nonrelationalStore-mongodb-grammar diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml index d2953bd503e..78ca67173de 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.4-SNAPSHOT + 4.34.0 legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml index f947e1b5392..701dcb3ec8f 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.4-SNAPSHOT + 4.34.0 legend-engine-xt-nonrelationalStore-mongodb-protocol diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml index 35b98aa790f..2fede1c78a7 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.33.4-SNAPSHOT + 4.34.0 legend-engine-xt-nonrelationalStore-mongodb-pure diff --git a/legend-engine-xts-mongodb/pom.xml b/legend-engine-xts-mongodb/pom.xml index 68a2b42254d..9f474cb4014 100644 --- a/legend-engine-xts-mongodb/pom.xml +++ b/legend-engine-xts-mongodb/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml index 987ef98e98e..0ceda4b4590 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-morphir - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml index 0d7ee0eece4..95b056ae8fb 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-morphir org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-morphir/pom.xml b/legend-engine-xts-morphir/pom.xml index 3447598dd95..1ade0f038a0 100644 --- a/legend-engine-xts-morphir/pom.xml +++ b/legend-engine-xts-morphir/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml index 53b68a28c5b..476a1f6950c 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.33.4-SNAPSHOT + 4.34.0 legend-engine-xt-openapi-generation diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml index e997d88c157..fe030ec1d85 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.33.4-SNAPSHOT + 4.34.0 legend-engine-xt-openapi-pure diff --git a/legend-engine-xts-openapi/pom.xml b/legend-engine-xts-openapi/pom.xml index 6066b7a9f1f..e03cfe9e5eb 100644 --- a/legend-engine-xts-openapi/pom.xml +++ b/legend-engine-xts-openapi/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml index 8d52ec4b0fc..8d69d66619a 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml index 1cad7b9decd..a276664ad99 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml index 10e4b702d03..5afc5c79292 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml index 81a469fef5d..79682e69db1 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml index 93506b1cd33..621168f8bc7 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml index 05fb72a8a62..95f9094289b 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml index 949dbc89512..2350e20a05b 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml index 4a9a0a0ce41..8484776e5a7 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml index 4eb135d39cc..e6b7a11990b 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml index c5e289cc612..0f5aee72a9c 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml index a93a809bba1..484c1680a2d 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml index 490988bcbaa..c9efd0dadcc 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml index 2aba607d137..4e31b258236 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml index f6849069b5f..dc2e5e1bf88 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml index 38910f585b7..062179db633 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml index 20b2da8267c..76440b8c251 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml index 8b345be77b9..019cd129214 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml index c929c321a35..db0fa19c6b9 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml index ed311b19dee..de23e30e202 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml index 22d37f75b3e..f76f721f796 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml index 24ea78c8303..af16e3c17d2 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-persistence/pom.xml b/legend-engine-xts-persistence/pom.xml index 3d9ffe5156a..a6a591f8152 100644 --- a/legend-engine-xts-persistence/pom.xml +++ b/legend-engine-xts-persistence/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml index 02429439d50..d9e45890a98 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-xt-protobuf-grammar diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml index abd1c3dcc58..bacf448c5fd 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-xt-protobuf-protocol diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml index 5280116bf61..b1fe6d7c7e9 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml index 8bbda6b2c38..fb2eb0cfb11 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 @@ -57,7 +57,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.33.4-SNAPSHOT + 4.34.0 org.finos.legend.pure diff --git a/legend-engine-xts-protobuf/pom.xml b/legend-engine-xts-protobuf/pom.xml index aa1c9f39800..d6333176dc2 100644 --- a/legend-engine-xts-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml index dcee2170ee9..c88fd041b82 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml index 3cb59be60ac..e7bb670b06b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml index 10a99958bb4..3e02d9a7b01 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml index cbbade3f86a..0f35d0ff81b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml index a942f6f14f8..86163c09459 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml index cbf3ebe43a5..c8590d14b26 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml index 3ded0a42b2e..d4891a19001 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml index 2affe2e5b79..4300d8adbe1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml index e1fa27dd9be..e71f67675eb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml index 09629102271..9b16486bcbf 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml index 12731400eee..77d9e32bc0a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-bigquery org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml index 244cd9adc61..6670fc752f6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml index 52a204e5e82..303c382aa5c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml index e43940651a8..9020803ef60 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml index b2c9caa51dd..e30f04d68c0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml index 1467404d276..3ca5feecea8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml index c58c6660926..143ed545455 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml index a7056589a2d..7b9e2a60e89 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml index a3ff3f3eeb4..90a93d8f42a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml index 8816f268f88..14131d710e6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml index c86f3cbadf8..8562de61161 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml index 629285d7f34..590a7992b74 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml index 4c68a30b38c..457775e951f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-dbExtension org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml index 14ba45fa8ad..0a8c501552c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-hive - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml index 38a9fe259a8..4e42a732fd1 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml index c71ffa8360f..01cf86229a8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml index d1d53045742..cf45fa019e3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-memsql org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml index 3c883c61075..b0f29989a8a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.33.4-SNAPSHOT + 4.34.0 legend-engine-xt-relationalStore-memsql-execution diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml index 8de440cbb33..d2aee145230 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.33.4-SNAPSHOT + 4.34.0 legend-engine-xt-relationalStore-memsql-pure diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml index fb8ea456aaa..8aa147e8c95 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml index 6f63b5536e4..f792a0a4e0d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml index 878df7d155c..c6b1546ae99 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml index 2d7f3b9fbd1..8b1bff3db11 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml index ec348f9fc13..1f00d8690e8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml index bd5b385fca0..343984fca5e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml index 2cb02cd49a1..ad98e170c86 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml index 5fdafb602a0..d06f539a5fc 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-presto - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml index a2f2b3cb146..86f207ca6cd 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml index 30fefe8ffda..69947a8dc12 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml index d7782cb2a62..7c932e9f3e7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml index f52dda796f5..09ae2def566 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml index fa1332173ca..ef34df70d86 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml index c9c2fae148e..36a44cb209a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml index dd3afab9ef2..a104f3e78d2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml index dd874c15995..7776ce3e0ae 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml index 68e8dc5bf9e..eaad7b1bb67 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml index c66fd0e8733..c1c1f3b9407 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml index 08c0c8cd74f..c90b76900d9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml index 35e6db76c3c..41090ceabfe 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml index e53ce17dee0..14d8413853f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml index 969c415ec2b..a714eb21b6b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml index f655229ee58..614e731d6bb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml index f6150bb8141..8aa7edccb12 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml index 8ab63e1d522..802c73f3839 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml index 0852ce3eb22..3c11ae7a1b2 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml index ce5cae98d83..35f4cdb985f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml index 73762a464fa..588c58816ff 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml index 0e7a4088051..f42aa0d31d9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml index 8e95e45d11d..829eb272c86 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sparksql - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml index c533b43af6d..1f558c851c6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml index ac0a25d33ea..243532ef194 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml index 1d84a3bca51..a6c15623c06 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-xt-relationalStore-sqlserver-execution-tests diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml index 3d4270e6e9e..0ee0c0ad13e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml index b1fb1606e37..c3837ceb9ac 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml index 781474a1e0b..c977cf3c81a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml index 36196b15d20..a8a5c59e507 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybase - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml index 918ac5fd294..515a97d8cf4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml index 37f7874d4b3..08b4e20e7f3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybaseiq - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml index 5fc48ad2d45..e579191bb68 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml index 9eeb1b88416..0a29b1c1a8d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-xt-relationalStore-test-reports diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml index f8777873ead..4f353127552 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-xt-relationalStore-test-server diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml index bb95a930235..d614d7d9229 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml index e96d26abc2f..8d3940653ad 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml index 38bc56a038f..8b8410c7ec7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml index afc9b959512..44582d07237 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml index db256529489..e1cdbaf825c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml index c1e41dff192..93df1e1448a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml index e93da19cb2e..c07a1f4b7e8 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml index 0b95d18b011..9c5d6296b2d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml index 903ac711b38..380fc58ca75 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml index 64e7e5a708c..f9fa1833403 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication-default diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml index f952888432c..7f981e96a83 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml index 07e42cb1568..d40fbec377b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 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 35557952161..8c76d707e88 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 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 c8ae3c7a870..9ba64b4f6ba 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml index 082d068df74..9bd024d7a07 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml index c60b0cf2838..fc1202b575b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml index 3aa15ebc655..278f47dd0ec 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml index b7285aef5ae..e5ee9293391 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml index 750806ef69b..b8b2463c2bb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml index c7b6b1cb303..274dc5ab1fb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml index 78313a87f17..622e5899634 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml index 2dd9dd76c12..e305cdf386a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml index f60c627e964..44c65eb020c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalStore/pom.xml b/legend-engine-xts-relationalStore/pom.xml index 15e70f3a851..0132c338916 100644 --- a/legend-engine-xts-relationalStore/pom.xml +++ b/legend-engine-xts-relationalStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml index bad1fa668b6..ada3bc077c8 100644 --- a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalai - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-relationalai/pom.xml b/legend-engine-xts-relationalai/pom.xml index f7f851c757f..8a1c88e7888 100644 --- a/legend-engine-xts-relationalai/pom.xml +++ b/legend-engine-xts-relationalai/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml index 430ad539f53..7fc8e732c73 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml index 66cbaf73abe..0a2a1013d6e 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-rosetta/pom.xml b/legend-engine-xts-rosetta/pom.xml index 14a4b25cf77..791603016e0 100644 --- a/legend-engine-xts-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml index 68a07ec3ba2..2568dab2095 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-language-pure-dsl-service-execution diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml index 3251add46da..ca80b47200b 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml index 11c169bdf1d..a524b73cead 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml index d3343bee171..e314972ac3d 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-language-pure-dsl-service diff --git a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml index c1df8d5a3ea..e7fe861f150 100644 --- a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml +++ b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml index 26462f674f7..7bca0256e4e 100644 --- a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-services-model-api diff --git a/legend-engine-xts-service/legend-engine-services-model/pom.xml b/legend-engine-xts-service/legend-engine-services-model/pom.xml index 5e61206916b..00dd82bd206 100644 --- a/legend-engine-xts-service/legend-engine-services-model/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 legend-engine-services-model diff --git a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml index 316a245f8a3..94e881f1335 100644 --- a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-service/pom.xml b/legend-engine-xts-service/pom.xml index 3a6af1e63ee..0754575b7ab 100644 --- a/legend-engine-xts-service/pom.xml +++ b/legend-engine-xts-service/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml index 17c13266d6c..08715ac78f1 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml index ab9ce52a55b..70a8ca8b2d4 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml index f4714f3e59e..eb941e720f6 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml index 8eef2c48058..7f58c7bf47a 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml index baeef799d97..f532e77c14e 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-serviceStore/pom.xml b/legend-engine-xts-serviceStore/pom.xml index ac5eebc7cec..8e8309b3481 100644 --- a/legend-engine-xts-serviceStore/pom.xml +++ b/legend-engine-xts-serviceStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml index 464fab8edd6..323e14e5006 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml index 1789b0f264c..3542ee83cbb 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-snowflakeApp org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml index 3ee46e394aa..91ecd4489e4 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml index 869d4e178d4..ecf48b7bd6f 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml index 1a8b801af0c..3dae55c3c05 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml index 625c6efdfb6..a31e20e5c48 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/pom.xml b/legend-engine-xts-snowflakeApp/pom.xml index 69d243cc80e..d297c4aaf82 100644 --- a/legend-engine-xts-snowflakeApp/pom.xml +++ b/legend-engine-xts-snowflakeApp/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml index 3594c3b9bc9..297f7a82781 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml index 31ca6632e73..08bc8f76dcd 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml index 600c67a2169..8102f841428 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml index 1823f11ef40..51728c2b531 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-sql org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml index 60e52b6664d..0df74bbf136 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml index c3061b674c7..ab75d718afe 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml index 05213d2848f..2dc7142f279 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml index 4a866fe5572..024897cb161 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml index ca544b2e2e7..dfc2468cda3 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml index b81a21a2b8b..8891e115947 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml index 4142ea8843d..e17dd355b03 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml index 467d27ea1ef..1c195554ad5 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml index 9bb83cdb53a..8d757d30a56 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-sql/pom.xml b/legend-engine-xts-sql/pom.xml index caecadff58c..63c2f56f0b5 100644 --- a/legend-engine-xts-sql/pom.xml +++ b/legend-engine-xts-sql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml index c21ef38414c..128cdca9ffa 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-text org.finos.legend.engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml index 55b4bf74df2..77d1c4770cb 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml index 4d8e4f93121..c496f5fbdac 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml index c5e057b41ea..8b39b66518a 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-text/pom.xml b/legend-engine-xts-text/pom.xml index bbd5eef5282..032bc1d74c8 100644 --- a/legend-engine-xts-text/pom.xml +++ b/legend-engine-xts-text/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml index 3b764f778d5..bcd43028720 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml index df9a649f26b..54d2f67eba3 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml index 55c1fd1ca5d..3240cda8da6 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml index b12b9e47441..862664c33ca 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml index a33aaa2cfc9..aa0645da396 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/legend-engine-xts-xml/pom.xml b/legend-engine-xts-xml/pom.xml index c34341196dc..69d864c9d77 100644 --- a/legend-engine-xts-xml/pom.xml +++ b/legend-engine-xts-xml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 4.0.0 diff --git a/pom.xml b/pom.xml index 3ab9f265e70..197e64d28d0 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ Legend Engine org.finos.legend.engine legend-engine - 4.33.4-SNAPSHOT + 4.34.0 pom @@ -228,7 +228,7 @@ scm:git:https://github.com/finos/legend-engine - HEAD + legend-engine-4.34.0 From acf1f6e68b9348b35ff0c57cdb094ee43bff4c7d Mon Sep 17 00:00:00 2001 From: FINOS Administrator <37706051+finos-admin@users.noreply.github.com> Date: Fri, 3 Nov 2023 20:24:48 +0000 Subject: [PATCH 74/80] [maven-release-plugin] prepare for next development iteration --- legend-engine-application-query/pom.xml | 2 +- legend-engine-config/legend-engine-configuration/pom.xml | 2 +- .../legend-engine-connection-integration-tests/pom.xml | 2 +- .../legend-engine-extensions-collection-execution/pom.xml | 2 +- .../legend-engine-extensions-collection-generation/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-server-integration-tests/pom.xml | 2 +- .../legend-engine-server-support-core/pom.xml | 2 +- legend-engine-config/legend-engine-server/pom.xml | 2 +- legend-engine-config/pom.xml | 2 +- .../legend-engine-executionPlan-dependencies/pom.xml | 2 +- .../legend-engine-executionPlan-execution-api/pom.xml | 2 +- .../legend-engine-executionPlan-execution-authorizer/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-executionPlan-execution/pom.xml | 2 +- .../legend-engine-external-shared-format-runtime/pom.xml | 2 +- .../legend-engine-core-executionPlan-execution/pom.xml | 2 +- .../legend-engine-executionPlan-generation/pom.xml | 2 +- .../legend-engine-core-executionPlan-generation/pom.xml | 2 +- .../legend-engine-external-shared-format-model/pom.xml | 2 +- .../legend-engine-language-pure-compiler-api/pom.xml | 2 +- .../legend-engine-language-pure-compiler/pom.xml | 2 +- .../legend-engine-language-pure-grammar-api/pom.xml | 2 +- .../legend-engine-language-pure-grammar/pom.xml | 2 +- .../legend-engine-language-pure-modelManager-sdlc/pom.xml | 2 +- .../legend-engine-language-pure-modelManager/pom.xml | 2 +- .../legend-engine-protocol-api/pom.xml | 2 +- .../legend-engine-protocol-generation-pure/pom.xml | 2 +- .../legend-engine-protocol-generation/pom.xml | 2 +- .../legend-engine-protocol-pure/pom.xml | 2 +- .../legend-engine-protocol/pom.xml | 2 +- legend-engine-core/legend-engine-core-language-pure/pom.xml | 2 +- .../legend-engine-query-pure/pom.xml | 2 +- legend-engine-core/legend-engine-core-query-pure/pom.xml | 2 +- .../legend-engine-shared-core/pom.xml | 2 +- .../legend-engine-shared-javaCompiler/pom.xml | 2 +- legend-engine-core/legend-engine-core-shared/pom.xml | 2 +- .../legend-engine-test-data-generation/pom.xml | 2 +- .../legend-engine-test-runner-mapping/pom.xml | 2 +- .../legend-engine-test-runner-shared/pom.xml | 2 +- .../legend-engine-test-server-shared/pom.xml | 2 +- .../legend-engine-core-test/legend-engine-testable/pom.xml | 2 +- legend-engine-core/legend-engine-core-test/pom.xml | 2 +- legend-engine-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-core/pom.xml | 2 +- .../legend-engine-pure-code-compiled-functions/pom.xml | 2 +- .../legend-engine-pure-code-core-extension/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-code/pom.xml | 2 +- .../legend-engine-pure-ide-light-metadata-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light-pure/pom.xml | 2 +- .../legend-engine-pure-ide-light/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-ide/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-diagram-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-graph-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-mapping-java/pom.xml | 2 +- .../legend-engine-pure-platform-dsl-path-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-java/pom.xml | 2 +- .../legend-engine-pure-platform-functions-json-java/pom.xml | 2 +- .../legend-engine-pure-platform-java/pom.xml | 2 +- .../legend-engine-pure-platform-store-relational-java/pom.xml | 2 +- .../legend-engine-pure-platform-modular-generation/pom.xml | 2 +- .../legend-engine-pure-runtime-compiler/pom.xml | 2 +- .../legend-engine-pure-runtime-execution/pom.xml | 2 +- .../legend-engine-pure-runtime-extensions/pom.xml | 2 +- .../legend-engine-xt-java-runtime-compiler/pom.xml | 2 +- legend-engine-pure/legend-engine-pure-runtime/pom.xml | 2 +- legend-engine-pure/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-api/pom.xml | 2 +- .../legend-engine-xt-analytics-binding-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-binding/pom.xml | 2 +- .../legend-engine-xt-analytics-class-api/pom.xml | 2 +- .../legend-engine-xt-analytics-class-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-class/pom.xml | 2 +- .../legend-engine-xt-analytics-function-api/pom.xml | 2 +- .../legend-engine-xt-analytics-function-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-function/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-api/pom.xml | 2 +- .../legend-engine-xt-analytics-lineage-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-lineage/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-api/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-protocol/pom.xml | 2 +- .../legend-engine-xt-analytics-mapping-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-mapping/pom.xml | 2 +- .../legend-engine-xt-analytics-search-generation/pom.xml | 2 +- .../legend-engine-xt-analytics-search-pure/pom.xml | 2 +- .../legend-engine-xts-analytics-search/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement-api/pom.xml | 2 +- .../legend-engine-xt-analytics-store-entitlement/pom.xml | 2 +- .../legend-engine-xts-analytics-store/pom.xml | 2 +- legend-engine-xts-analytics/pom.xml | 2 +- legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml | 2 +- .../legend-engine-xt-arrow-runtime/pom.xml | 2 +- legend-engine-xts-arrow/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-authentication-protocol/pom.xml | 2 +- .../legend-engine-xt-authentication-pure/pom.xml | 2 +- legend-engine-xts-authentication/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml | 2 +- legend-engine-xts-avro/legend-engine-xt-avro/pom.xml | 2 +- legend-engine-xts-avro/pom.xml | 2 +- .../legend-engine-xt-changetoken-compiler/pom.xml | 2 +- .../legend-engine-xt-changetoken-pure/pom.xml | 2 +- legend-engine-xts-changetoken/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml | 2 +- legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml | 2 +- legend-engine-xts-daml/pom.xml | 2 +- .../legend-engine-xt-data-push-server/pom.xml | 2 +- legend-engine-xts-data-push/pom.xml | 2 +- .../legend-engine-xt-data-space-api/pom.xml | 2 +- .../legend-engine-xt-data-space-compiler/pom.xml | 2 +- .../legend-engine-xt-data-space-generation/pom.xml | 2 +- .../legend-engine-xt-data-space-grammar/pom.xml | 2 +- .../legend-engine-xt-data-space-protocol/pom.xml | 2 +- .../legend-engine-xt-data-space-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-data-space-pure/pom.xml | 2 +- legend-engine-xts-data-space/pom.xml | 2 +- .../legend-engine-xt-diagram-api/pom.xml | 2 +- .../legend-engine-xt-diagram-compiler/pom.xml | 2 +- .../legend-engine-xt-diagram-grammar/pom.xml | 2 +- .../legend-engine-xt-diagram-protocol/pom.xml | 2 +- .../legend-engine-xt-diagram-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-diagram-pure/pom.xml | 2 +- legend-engine-xts-diagram/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-grammar/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-protocol/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-executionPlan-test/pom.xml | 2 +- .../legend-engine-xt-elasticsearch-protocol-utils/pom.xml | 2 +- .../pom.xml | 2 +- legend-engine-xts-elasticsearch/pom.xml | 2 +- .../legend-engine-xt-flatdata-driver-bloomberg/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-flatdata-model/pom.xml | 2 +- .../legend-engine-xt-flatdata-pure/pom.xml | 2 +- .../legend-engine-xt-flatdata-runtime/pom.xml | 2 +- .../legend-engine-xt-flatdata-shared/pom.xml | 2 +- legend-engine-xts-flatdata/pom.xml | 2 +- .../legend-engine-xt-functionActivator-api/pom.xml | 2 +- .../legend-engine-xt-functionActivator-protocol/pom.xml | 2 +- .../legend-engine-xt-functionActivator-pure/pom.xml | 2 +- legend-engine-xts-functionActivator/pom.xml | 2 +- .../legend-engine-external-shared/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-generation/pom.xml | 2 +- .../legend-engine-xt-artifact-generation-api/pom.xml | 2 +- legend-engine-xts-generation/pom.xml | 2 +- .../legend-engine-xt-graphQL-compiler/pom.xml | 4 ++-- .../legend-engine-xt-graphQL-grammar-integration/pom.xml | 2 +- .../legend-engine-xt-graphQL-grammar/pom.xml | 2 +- .../legend-engine-xt-graphQL-protocol/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure-metamodel/pom.xml | 2 +- .../legend-engine-xt-graphQL-pure/pom.xml | 2 +- .../legend-engine-xt-graphQL-query/pom.xml | 2 +- .../legend-engine-xt-graphQL-relational-extension/pom.xml | 2 +- legend-engine-xts-graphQL/pom.xml | 2 +- .../legend-engine-xt-haskell-grammar/pom.xml | 2 +- .../legend-engine-xt-haskell-protocol/pom.xml | 2 +- .../legend-engine-xt-haskell-pure/pom.xml | 2 +- legend-engine-xts-haskell/pom.xml | 2 +- .../legend-engine-xt-hostedService-api/pom.xml | 2 +- .../legend-engine-xt-hostedService-compiler/pom.xml | 2 +- .../legend-engine-xt-hostedService-generation/pom.xml | 2 +- .../legend-engine-xt-hostedService-grammar/pom.xml | 2 +- .../legend-engine-xt-hostedService-protocol/pom.xml | 2 +- .../legend-engine-xt-hostedService-pure/pom.xml | 2 +- legend-engine-xts-hostedService/pom.xml | 2 +- .../legend-engine-xt-iceberg-pure/pom.xml | 2 +- .../legend-engine-xt-iceberg-test-support/pom.xml | 2 +- legend-engine-xts-iceberg/pom.xml | 2 +- .../legend-engine-external-language-java/pom.xml | 2 +- .../legend-engine-xt-javaGeneration-featureBased-pure/pom.xml | 2 +- .../legend-engine-xt-javaGeneration-pure/pom.xml | 2 +- .../legend-engine-xt-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-java/pom.xml | 2 +- .../legend-engine-external-format-jsonSchema/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-pure/pom.xml | 2 +- .../legend-engine-xt-json-javaPlatformBinding-test/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-model/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml | 2 +- legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml | 2 +- legend-engine-xts-json/pom.xml | 2 +- .../legend-engine-xt-mastery-grammar/pom.xml | 2 +- .../legend-engine-xt-mastery-protocol/pom.xml | 2 +- .../legend-engine-xt-mastery-pure/pom.xml | 2 +- legend-engine-xts-mastery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml | 2 +- legend-engine-xts-mongodb/pom.xml | 2 +- .../legend-engine-xt-morphir-pure/pom.xml | 2 +- legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml | 2 +- legend-engine-xts-morphir/pom.xml | 2 +- .../legend-engine-xt-openapi-generation/pom.xml | 2 +- .../legend-engine-xt-openapi-pure/pom.xml | 2 +- legend-engine-xts-openapi/pom.xml | 2 +- .../legend-engine-xt-persistence-api/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-cloud-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-component/pom.xml | 2 +- .../legend-engine-xt-persistence-grammar/pom.xml | 2 +- .../legend-engine-xt-persistence-protocol/pom.xml | 2 +- .../legend-engine-xt-persistence-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-persistence-test-runner/pom.xml | 2 +- legend-engine-xts-persistence/pom.xml | 2 +- .../legend-engine-xt-protobuf-grammar/pom.xml | 2 +- .../legend-engine-xt-protobuf-protocol/pom.xml | 2 +- .../legend-engine-xt-protobuf-pure/pom.xml | 2 +- legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml | 4 ++-- legend-engine-xts-protobuf/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-analytics/pom.xml | 2 +- .../legend-engine-xt-relationalStore-connection/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-athena/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-bigquery/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-databricks/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-hive/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-memsql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres-pure/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-postgres/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-presto/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-redshift/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-snowflake/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-spanner/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sparksql/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sqlserver/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybase/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-sybaseiq/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-reports/pom.xml | 2 +- .../legend-engine-xt-relationalStore-test-server/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-grammar/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-trino/pom.xml | 2 +- .../legend-engine-xt-relationalStore-dbExtension/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-executionPlan/pom.xml | 2 +- .../pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-execution/pom.xml | 2 +- .../legend-engine-xt-relationalStore-api/pom.xml | 2 +- .../legend-engine-xt-relationalStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-relationalStore-protocol/pom.xml | 2 +- .../legend-engine-xt-relationalStore-pure/pom.xml | 2 +- .../legend-engine-xt-relationalStore-generation/pom.xml | 2 +- legend-engine-xts-relationalStore/pom.xml | 2 +- .../legend-engine-xt-relationalai-pure/pom.xml | 2 +- legend-engine-xts-relationalai/pom.xml | 2 +- .../legend-engine-xt-rosetta-pure/pom.xml | 2 +- legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml | 2 +- legend-engine-xts-rosetta/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-execution/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-language-pure-dsl-service-pure/pom.xml | 2 +- .../legend-engine-language-pure-dsl-service/pom.xml | 2 +- .../legend-engine-service-post-validation-runner/pom.xml | 2 +- .../legend-engine-services-model-api/pom.xml | 2 +- .../legend-engine-services-model/pom.xml | 2 +- .../legend-engine-test-runner-service/pom.xml | 2 +- legend-engine-xts-service/pom.xml | 2 +- .../legend-engine-xt-serviceStore-executionPlan/pom.xml | 2 +- .../legend-engine-xt-serviceStore-grammar/pom.xml | 2 +- .../pom.xml | 2 +- .../legend-engine-xt-serviceStore-protocol/pom.xml | 2 +- .../legend-engine-xt-serviceStore-pure/pom.xml | 2 +- legend-engine-xts-serviceStore/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-api/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-compiler/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-generator/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-grammar/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-protocol/pom.xml | 2 +- .../legend-engine-xt-snowflakeApp-pure/pom.xml | 2 +- legend-engine-xts-snowflakeApp/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml | 2 +- .../legend-engine-xt-sql-grammar-integration/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml | 2 +- .../legend-engine-xt-sql-postgres-server/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml | 2 +- .../legend-engine-xt-sql-providers-core/pom.xml | 2 +- .../legend-engine-xt-sql-providers-relationalStore/pom.xml | 2 +- .../legend-engine-xt-sql-providers-service/pom.xml | 2 +- .../legend-engine-xt-sql-providers-shared/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml | 2 +- .../legend-engine-xt-sql-pure-metamodel/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml | 2 +- legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml | 2 +- legend-engine-xts-sql/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml | 2 +- legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml | 2 +- .../legend-engine-xt-text-pure-metamodel/pom.xml | 2 +- legend-engine-xts-text/pom.xml | 2 +- .../legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml | 2 +- legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml | 2 +- legend-engine-xts-xml/pom.xml | 2 +- pom.xml | 4 ++-- 381 files changed, 384 insertions(+), 384 deletions(-) diff --git a/legend-engine-application-query/pom.xml b/legend-engine-application-query/pom.xml index d5826aad99d..66b28cd2a48 100644 --- a/legend-engine-application-query/pom.xml +++ b/legend-engine-application-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-application-query diff --git a/legend-engine-config/legend-engine-configuration/pom.xml b/legend-engine-config/legend-engine-configuration/pom.xml index 4e3c2b59c09..46873fb656a 100644 --- a/legend-engine-config/legend-engine-configuration/pom.xml +++ b/legend-engine-config/legend-engine-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-configuration diff --git a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml index 0de96e6b461..3c509769cb1 100644 --- a/legend-engine-config/legend-engine-connection-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-connection-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-connection-integration-tests diff --git a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml index 7683e89f079..5181af6a161 100644 --- a/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml index dd683046598..c55dba62e78 100644 --- a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml @@ -19,7 +19,7 @@ legend-engine-config org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml index fcbcd63362d..fc6fc2bdd51 100644 --- a/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml +++ b/legend-engine-config/legend-engine-pure-code-compiled-core-configuration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-server-integration-tests/pom.xml b/legend-engine-config/legend-engine-server-integration-tests/pom.xml index 93037718418..83e87e2a5fc 100644 --- a/legend-engine-config/legend-engine-server-integration-tests/pom.xml +++ b/legend-engine-config/legend-engine-server-integration-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-server-integration-tests diff --git a/legend-engine-config/legend-engine-server-support-core/pom.xml b/legend-engine-config/legend-engine-server-support-core/pom.xml index 2bccc9dd276..bd37ce086ec 100644 --- a/legend-engine-config/legend-engine-server-support-core/pom.xml +++ b/legend-engine-config/legend-engine-server-support-core/pom.xml @@ -3,7 +3,7 @@ legend-engine-config org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index 66131a5d854..db6965216d9 100644 --- a/legend-engine-config/legend-engine-server/pom.xml +++ b/legend-engine-config/legend-engine-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-config - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-server diff --git a/legend-engine-config/pom.xml b/legend-engine-config/pom.xml index 1a6002da0eb..4b6a8f7f746 100644 --- a/legend-engine-config/pom.xml +++ b/legend-engine-config/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml index 37e28de7955..2d7bb91733c 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-dependencies/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-executionPlan-dependencies diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml index 331bb4ecad2..e2eca98e74e 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-executionPlan-execution-api diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml index b3442f4dc84..fb08b1adaac 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-core-executionPlan-execution org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml index 18df82ef5c6..01af6d4ddeb 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution-store-inMemory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-executionPlan-execution-store-inMemory diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml index 81332a94bc6..a65dc510b1f 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-executionPlan-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-executionPlan-execution diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml index f27229c6d6a..3944ba492d7 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/legend-engine-external-shared-format-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-execution - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml index dcad2511d88..cbe12907980 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml index 91352b2cb80..00961ab4eab 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/legend-engine-executionPlan-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-executionPlan-generation - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml index 7166edc1431..a86efe9cad7 100644 --- a/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-executionPlan-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml index 97a959bd2ba..2af4f776626 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-external-shared-format-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml index 7b6b2074fcb..93a35c2a8d6 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-language-pure-compiler-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml index c18c41bb6bd..8074833a21d 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-language-pure-compiler diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml index 89fcf0b5e4b..5606d168070 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-language-pure-grammar-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml index 56680d910d9..bcbb253217f 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-language-pure-grammar diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml index 558992de3de..8ee22a2096a 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-language-pure-modelManager-sdlc diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml index 8d1dbdd3c0f..5d1415b9492 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-language-pure-modelManager diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml index a22ee4f1a97..365c17a40fd 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-protocol-api diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml index f3fd2a2364a..3e01006d64f 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-protocol-generation-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml index caa5aeed06a..8feef2563a1 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-protocol-generation diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml index 3628af9b567..9ccf1b4417b 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-protocol-pure diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml index a31e78a393e..6ba698e4b66 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-language-pure - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-protocol diff --git a/legend-engine-core/legend-engine-core-language-pure/pom.xml b/legend-engine-core/legend-engine-core-language-pure/pom.xml index 92bc3a1241e..5915185eeb0 100644 --- a/legend-engine-core/legend-engine-core-language-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml index 369d270d188..338af89a4f3 100644 --- a/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/legend-engine-query-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-query-pure - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-query-pure diff --git a/legend-engine-core/legend-engine-core-query-pure/pom.xml b/legend-engine-core/legend-engine-core-query-pure/pom.xml index 60363b2d902..03fa2ce9d06 100644 --- a/legend-engine-core/legend-engine-core-query-pure/pom.xml +++ b/legend-engine-core/legend-engine-core-query-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml index 22b4f5dd8e4..7be7af22d4f 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-shared-core diff --git a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml index ce776150a1a..11ae12bf87c 100644 --- a/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/legend-engine-shared-javaCompiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-shared - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-shared-javaCompiler diff --git a/legend-engine-core/legend-engine-core-shared/pom.xml b/legend-engine-core/legend-engine-core-shared/pom.xml index 89527d22fee..d6c833b43b5 100644 --- a/legend-engine-core/legend-engine-core-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-shared/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml index f2fdeabb415..c43fee97090 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-data-generation/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-core-test - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml index d8efd43e542..b4225fdbfad 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-mapping/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml index 7bca989ff21..f977611c946 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-runner-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-test-runner-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml index 17e7fd14a64..f21379a3b36 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-test-server-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-test-server-shared diff --git a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml index 442573c067c..3231e404706 100644 --- a/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml +++ b/legend-engine-core/legend-engine-core-test/legend-engine-testable/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-core-test - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-testable diff --git a/legend-engine-core/legend-engine-core-test/pom.xml b/legend-engine-core/legend-engine-core-test/pom.xml index e05193fb4ba..93965684367 100644 --- a/legend-engine-core/legend-engine-core-test/pom.xml +++ b/legend-engine-core/legend-engine-core-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-core - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-core/pom.xml b/legend-engine-core/pom.xml index d2d6e09772b..b42622856c6 100644 --- a/legend-engine-core/pom.xml +++ b/legend-engine-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml index 978d7c8d6c0..c12ac31efb8 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-core/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.34.0 + 4.34.1-SNAPSHOT legend-engine-pure-code-compiled-core diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml index 98cece2b050..8946f374ac7 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-compiled-functions/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.34.0 + 4.34.1-SNAPSHOT legend-engine-pure-code-compiled-functions diff --git a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml index 443c382ff9f..55b156210a9 100644 --- a/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/legend-engine-pure-code-core-extension/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-code - 4.34.0 + 4.34.1-SNAPSHOT legend-engine-pure-code-core-extension diff --git a/legend-engine-pure/legend-engine-pure-code/pom.xml b/legend-engine-pure/legend-engine-pure-code/pom.xml index d6d700f9bb0..c89ed743a65 100644 --- a/legend-engine-pure/legend-engine-pure-code/pom.xml +++ b/legend-engine-pure/legend-engine-pure-code/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml index e2df5fc0b50..18ca454b877 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-metadata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml index 08415e81845..aedad610858 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml index 9c327ad518b..b36d16938be 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-ide - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-ide/pom.xml b/legend-engine-pure/legend-engine-pure-ide/pom.xml index d21ea7c4e14..d8e4dcbf91d 100644 --- a/legend-engine-pure/legend-engine-pure-ide/pom.xml +++ b/legend-engine-pure/legend-engine-pure-ide/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml index e1e933c042d..bc661672f22 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-diagram-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.34.0 + 4.34.1-SNAPSHOT legend-engine-pure-platform-dsl-diagram-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml index 621bdf4036c..a88b990e14e 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-graph-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.34.0 + 4.34.1-SNAPSHOT legend-engine-pure-platform-dsl-graph-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml index 8690d30ea8d..02b5cd1c0ad 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-mapping-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.34.0 + 4.34.1-SNAPSHOT legend-engine-pure-platform-dsl-mapping-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml index 159924bac03..d26c271fd1b 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-dsl-path-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.34.0 + 4.34.1-SNAPSHOT legend-engine-pure-platform-dsl-path-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml index 6ffd66ac3fc..71496a0e912 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.34.0 + 4.34.1-SNAPSHOT legend-engine-pure-platform-functions-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml index d5d2459db1b..a0f04da1ef4 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-functions-json-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.34.0 + 4.34.1-SNAPSHOT legend-engine-pure-platform-functions-json-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml index 8e567839565..31ac4f40fe0 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.34.0 + 4.34.1-SNAPSHOT legend-engine-pure-platform-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml index 1d18d0aa3f8..ff629fc7a60 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/legend-engine-pure-platform-store-relational-java/pom.xml @@ -22,7 +22,7 @@ org.finos.legend.engine legend-engine-pure-platform-modular-generation - 4.34.0 + 4.34.1-SNAPSHOT legend-engine-pure-platform-store-relational-java diff --git a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml index c7647febdfd..aec2bed990a 100644 --- a/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml +++ b/legend-engine-pure/legend-engine-pure-platform-modular-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml index cbd020ff8c3..615218b7cd4 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml index e2f1c93d682..a9f229d0b14 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml index 57f476e709d..6bf0c59f0a8 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-pure-runtime-extensions/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml index fe09ea7106e..a884aeb524d 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/legend-engine-xt-java-runtime-compiler/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-pure-runtime - 4.34.0 + 4.34.1-SNAPSHOT legend-engine-xt-java-runtime-compiler diff --git a/legend-engine-pure/legend-engine-pure-runtime/pom.xml b/legend-engine-pure/legend-engine-pure-runtime/pom.xml index 6c5012ccaf7..ab0fa035d20 100644 --- a/legend-engine-pure/legend-engine-pure-runtime/pom.xml +++ b/legend-engine-pure/legend-engine-pure-runtime/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-pure - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-pure/pom.xml b/legend-engine-pure/pom.xml index 229f60d34c8..d6c43abe0ab 100644 --- a/legend-engine-pure/pom.xml +++ b/legend-engine-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml index a7ad12a5738..ecbd5cee09e 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml index 1c784b75ccb..a9f44be0309 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/legend-engine-xt-analytics-binding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-binding - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml index e3f488218b6..3b99d9ba560 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-binding/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml index f842e5cfcf9..a98c8650714 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml index 5dafba55ec8..17a220380c3 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/legend-engine-xt-analytics-class-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-class - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml index 1da8a61464e..33fb492dc53 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-class/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml index 26fd4756d5f..e698bba6b16 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml index 83aeebb7902..6601d5fb0fd 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/legend-engine-xt-analytics-function-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-function - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml index ac4f8b9e7e9..690eda2b5dc 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-function/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml index 76915a92efa..23ebdf5127a 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml index e7fd7629af5..9f849e99bbf 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/legend-engine-xt-analytics-lineage-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-lineage org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml index d5a94b8479d..f4f2de9bda2 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-lineage/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml index 5c461fd34cb..36c4110313f 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-api/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 Legend Engine - XT - Analytics - Mapping - API diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml index 0893efbf854..9c2f0650dd3 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-mapping - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 Legend Engine - XT - Analytics - Mapping - Protocol diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml index d31a0b72941..486aa6c0977 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/legend-engine-xt-analytics-mapping-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-analytics-mapping org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml index 199f88e30f1..f9a43f274ab 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-mapping/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml index e77fc429dcc..cda966164f8 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-analytics-search - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml index 59ad4b7b746..32d86e0364f 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/legend-engine-xt-analytics-search-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-search org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml index 82d07ef7632..38873fc1adf 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-search/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml index d86d7858924..f6358bf6d26 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-xt-analytics-store-entitlement-api diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml index 3de12f86a96..9b01cc97f89 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/legend-engine-xt-analytics-store-entitlement/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-analytics-store org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml index c4435637cbf..c7d507dad0f 100644 --- a/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml +++ b/legend-engine-xts-analytics/legend-engine-xts-analytics-store/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-analytics - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-analytics/pom.xml b/legend-engine-xts-analytics/pom.xml index 771657b732c..515b9cb8060 100644 --- a/legend-engine-xts-analytics/pom.xml +++ b/legend-engine-xts-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml index 3359bf9bb22..2d89adbce61 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml index 432e5229271..0e5f130d15f 100644 --- a/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml +++ b/legend-engine-xts-arrow/legend-engine-xt-arrow-runtime/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-arrow - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-arrow/pom.xml b/legend-engine-xts-arrow/pom.xml index bae143e0963..821211bd568 100644 --- a/legend-engine-xts-arrow/pom.xml +++ b/legend-engine-xts-arrow/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT legend-engine-xts-arrow diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml index 51f73ec98b7..7a5aecf9c49 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-connection-factory/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml index 295923f4a3f..9953ad18859 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml index b67077b0324..414e4e5e090 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml index 0e824ad0718..48a87f8d405 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-gcp-federation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml index b39fdcfb21b..db3b815af26 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-implementation-vault-aws/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml index c57c44380ad..6478bad89f0 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml index a7ccecf9a01..8c90ca23dbb 100644 --- a/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml +++ b/legend-engine-xts-authentication/legend-engine-xt-authentication-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-authentication - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-authentication/pom.xml b/legend-engine-xts-authentication/pom.xml index af97c6be5aa..2138d7b89c4 100644 --- a/legend-engine-xts-authentication/pom.xml +++ b/legend-engine-xts-authentication/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml index c7e99cb35cd..f7b7cc79e14 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml index dcc6030ba09..8141c7b8d2a 100644 --- a/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml +++ b/legend-engine-xts-avro/legend-engine-xt-avro/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-avro - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-avro/pom.xml b/legend-engine-xts-avro/pom.xml index ec90e43b5a6..cce850449c1 100644 --- a/legend-engine-xts-avro/pom.xml +++ b/legend-engine-xts-avro/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml index 18d5f5fc2f2..ff9d93aa810 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-compiler/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-changetoken org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml index aaf4ccbd3b8..e0837feed04 100644 --- a/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml +++ b/legend-engine-xts-changetoken/legend-engine-xt-changetoken-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-changetoken - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-changetoken/pom.xml b/legend-engine-xts-changetoken/pom.xml index bc5f6395c2d..caa9dcb7560 100644 --- a/legend-engine-xts-changetoken/pom.xml +++ b/legend-engine-xts-changetoken/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml index c5d7fc1165d..bf3f656c1e7 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml index 649d194ee75..aa4bf5a15f1 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-model/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml index 01b86efc425..f1d7a589da1 100644 --- a/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml +++ b/legend-engine-xts-daml/legend-engine-xt-daml-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-daml org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-daml/pom.xml b/legend-engine-xts-daml/pom.xml index ad271ffdd8e..8fc4ad344cf 100644 --- a/legend-engine-xts-daml/pom.xml +++ b/legend-engine-xts-daml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml index 735e8a1a9a4..d0c18550e1a 100644 --- a/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml +++ b/legend-engine-xts-data-push/legend-engine-xt-data-push-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-data-push org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-push/pom.xml b/legend-engine-xts-data-push/pom.xml index 9d3f23c292f..30d67567f58 100644 --- a/legend-engine-xts-data-push/pom.xml +++ b/legend-engine-xts-data-push/pom.xml @@ -3,7 +3,7 @@ legend-engine org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml index 788490fe778..1ae9abad535 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml index 6aeb2f9f985..761913c2e5a 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-data-space org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml index 8b4c245df71..c70179c67d4 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml index 61968d13a62..a776b960941 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml index 5119a5942df..eaaa5e63fba 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml index ac9f29ef026..9e3ccd5447e 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml index b11dc88db62..6b8f26000c5 100644 --- a/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml +++ b/legend-engine-xts-data-space/legend-engine-xt-data-space-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-data-space - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-data-space/pom.xml b/legend-engine-xts-data-space/pom.xml index b97238c934f..4d7143fdf3e 100644 --- a/legend-engine-xts-data-space/pom.xml +++ b/legend-engine-xts-data-space/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml index 3e79e1916ff..079d22aa98a 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml index 8a7706a8b30..93c8abd4a01 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-diagram org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml index 5037c29d00b..b869037b839 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml index 281d1bb664d..cef9a333981 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml index 1e26bb3acd4..fa2d5db44f5 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml index 6e0bb37ad80..8b8cfad28d3 100644 --- a/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml +++ b/legend-engine-xts-diagram/legend-engine-xt-diagram-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-diagram - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-diagram/pom.xml b/legend-engine-xts-diagram/pom.xml index 88268661505..507fd79b513 100644 --- a/legend-engine-xts-diagram/pom.xml +++ b/legend-engine-xts-diagram/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml index 73a60542115..3bd22ae2c2a 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml index 17ff77c4865..c0b9e5fa47f 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml index abe5b5ba15f..3d8d45f533c 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml index f69bfb01804..6e569bf2992 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-V7-pure-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml index 05833e3a4e9..57549c40b40 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml index b7f39198ba1..665d8826859 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-protocol-utils/pom.xml @@ -4,7 +4,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.34.0 + 4.34.1-SNAPSHOT legend-engine-xt-elasticsearch-protocol-utils diff --git a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml index d08499bbdd7..ca84e099a9d 100644 --- a/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml +++ b/legend-engine-xts-elasticsearch/legend-engine-xt-elasticsearch-pure-specification-metamodel/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-elasticsearch - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-elasticsearch/pom.xml b/legend-engine-xts-elasticsearch/pom.xml index 75741e3aa57..8f7a6722be8 100644 --- a/legend-engine-xts-elasticsearch/pom.xml +++ b/legend-engine-xts-elasticsearch/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml index b314ff7b17c..52d233ca52a 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-driver-bloomberg/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-flatdata org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml index ab0d4d30705..4c4e64a9495 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml index 733e16e3446..85aea6c697a 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml index 17649ab5bbc..d8eefd5e5e1 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml index fb4c480795d..ac1cdbc791b 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml index e877c996bc3..2c75be76d7b 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml index faf5e18fb43..608aa664b01 100644 --- a/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml +++ b/legend-engine-xts-flatdata/legend-engine-xt-flatdata-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-flatdata - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-flatdata/pom.xml b/legend-engine-xts-flatdata/pom.xml index 30ab09598b9..89c519f9b48 100644 --- a/legend-engine-xts-flatdata/pom.xml +++ b/legend-engine-xts-flatdata/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml index 91ea6190856..71cc4d7b485 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml index 164da8384e1..f627b210994 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml index b6c0e6e0c52..10d261a1dac 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-functionActivator - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-functionActivator/pom.xml b/legend-engine-xts-functionActivator/pom.xml index 7bffbdcd079..7c7812e5b27 100644 --- a/legend-engine-xts-functionActivator/pom.xml +++ b/legend-engine-xts-functionActivator/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml index 7eb773f13de..29b59866eb4 100644 --- a/legend-engine-xts-generation/legend-engine-external-shared/pom.xml +++ b/legend-engine-xts-generation/legend-engine-external-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml index 4da845be2bb..669bc495bfa 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml index a50af796ef0..4fb81564475 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-generation - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-language-pure-dsl-generation diff --git a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml index 66f573e4e10..1d2efaf0317 100644 --- a/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml +++ b/legend-engine-xts-generation/legend-engine-xt-artifact-generation-api/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-generation org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-generation/pom.xml b/legend-engine-xts-generation/pom.xml index 6333b171f41..e35180a198d 100644 --- a/legend-engine-xts-generation/pom.xml +++ b/legend-engine-xts-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml index 3eb5258ba42..3288ff290c5 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 @@ -73,7 +73,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.34.0 + 4.34.1-SNAPSHOT org.finos.legend.pure diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml index 2b39c8765e3..fae07ad8379 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml index 41e20ab3238..2dfc7f1f860 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml index accb9353b2a..90f0d63ce1a 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml index 78f28b9ac25..dba3e9faef8 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml index b93113de0b6..2c237856510 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml index 444bdb62ef6..87baf707ac8 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml index 74ae8ec2246..9ede46488c8 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-graphQL - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-graphQL/pom.xml b/legend-engine-xts-graphQL/pom.xml index fa54397e12a..96ff34d4933 100644 --- a/legend-engine-xts-graphQL/pom.xml +++ b/legend-engine-xts-graphQL/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml index 72239992310..815015cdeb8 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml index 99518230c3e..868fb4abba0 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-protocol/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml index 6777a13252e..f5abece1341 100644 --- a/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml +++ b/legend-engine-xts-haskell/legend-engine-xt-haskell-pure/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-haskell org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-haskell/pom.xml b/legend-engine-xts-haskell/pom.xml index 961b6ed0910..d014ccbf64b 100644 --- a/legend-engine-xts-haskell/pom.xml +++ b/legend-engine-xts-haskell/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml index 7c79dd2c5b4..041726cca2d 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml index b7a911a500b..33b28c04fc3 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml index 15d2b93f8c1..3fbb31b6c34 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml index e361f6b81cf..e4c6f68d664 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml index 35221d1330b..ca71579e3fd 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml index ee9d2c21e4c..d08bc17f48b 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-hostedService - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-hostedService/pom.xml b/legend-engine-xts-hostedService/pom.xml index eaab1bea88b..e757a4cfe7e 100644 --- a/legend-engine-xts-hostedService/pom.xml +++ b/legend-engine-xts-hostedService/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml index e20d4135a67..7e4af1c36ec 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml index 6efefe4ed0c..15be3b866fb 100644 --- a/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml +++ b/legend-engine-xts-iceberg/legend-engine-xt-iceberg-test-support/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-iceberg - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-iceberg/pom.xml b/legend-engine-xts-iceberg/pom.xml index 48daff6d03c..173cf1d26b3 100644 --- a/legend-engine-xts-iceberg/pom.xml +++ b/legend-engine-xts-iceberg/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml index 066ece9be26..603ba75de80 100644 --- a/legend-engine-xts-java/legend-engine-external-language-java/pom.xml +++ b/legend-engine-xts-java/legend-engine-external-language-java/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml index fadd7978851..145cf3c39e7 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-featureBased-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml index 03ace1bfb6e..df10b4e19b6 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaGeneration-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml index 24b9e976ac8..ce9e450a64c 100644 --- a/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-java/legend-engine-xt-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-java - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-java/pom.xml b/legend-engine-xts-java/pom.xml index dd34a6883cc..a69220bddf2 100644 --- a/legend-engine-xts-java/pom.xml +++ b/legend-engine-xts-java/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml index a8808c76d46..6d46ee362af 100644 --- a/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml +++ b/legend-engine-xts-json/legend-engine-external-format-jsonSchema/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml index 0e770a30caa..ef863974665 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml index 70ab675fb62..16bda37f4b6 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-javaPlatformBinding-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml index f420dd73d80..9c26c4b9735 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml index 40df2c9d2e5..2af71273828 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml index c949a51d51b..e3cc6adcd50 100644 --- a/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml +++ b/legend-engine-xts-json/legend-engine-xt-json-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-json - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-json/pom.xml b/legend-engine-xts-json/pom.xml index f17ce2090d3..a1fa99791e5 100644 --- a/legend-engine-xts-json/pom.xml +++ b/legend-engine-xts-json/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml index 14da34f56fb..42c21f37ab7 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-mastery org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml index b579866eb30..17f226e5ef7 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml index 247151b640b..011d9c20706 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mastery - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mastery/pom.xml b/legend-engine-xts-mastery/pom.xml index bee164a08f7..179d8eb4a48 100644 --- a/legend-engine-xts-mastery/pom.xml +++ b/legend-engine-xts-mastery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml index 5e0de4cce07..63e3166ecf0 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan-test/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml index d13a931a835..a1a4c47fa74 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-executionPlan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.34.0 + 4.34.1-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-executionPlan diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml index 884a753304e..43bfe330491 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar-integration/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.34.0 + 4.34.1-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-grammar-integration diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml index 560cd266699..23cb684e699 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.34.0 + 4.34.1-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-grammar diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml index 78ca67173de..68f947c5259 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.34.0 + 4.34.1-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-javaPlatformBinding-pure diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml index 701dcb3ec8f..4701141559c 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.34.0 + 4.34.1-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-protocol diff --git a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml index 2fede1c78a7..522a0209c22 100644 --- a/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml +++ b/legend-engine-xts-mongodb/legend-engine-xt-nonrelationalStore-mongodb-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-mongodb - 4.34.0 + 4.34.1-SNAPSHOT legend-engine-xt-nonrelationalStore-mongodb-pure diff --git a/legend-engine-xts-mongodb/pom.xml b/legend-engine-xts-mongodb/pom.xml index 9f474cb4014..d4712205dfb 100644 --- a/legend-engine-xts-mongodb/pom.xml +++ b/legend-engine-xts-mongodb/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml index 0ceda4b4590..0d0e93afa08 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-morphir - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml index 95b056ae8fb..d24fc33b8ce 100644 --- a/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml +++ b/legend-engine-xts-morphir/legend-engine-xt-morphir/pom.xml @@ -19,7 +19,7 @@ legend-engine-xts-morphir org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-morphir/pom.xml b/legend-engine-xts-morphir/pom.xml index 1ade0f038a0..bd2ea7036e0 100644 --- a/legend-engine-xts-morphir/pom.xml +++ b/legend-engine-xts-morphir/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml index 476a1f6950c..a6f0fd9bd3d 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-generation/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.34.0 + 4.34.1-SNAPSHOT legend-engine-xt-openapi-generation diff --git a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml index fe030ec1d85..7b7b6e45e73 100644 --- a/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml +++ b/legend-engine-xts-openapi/legend-engine-xt-openapi-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-openapi - 4.34.0 + 4.34.1-SNAPSHOT legend-engine-xt-openapi-pure diff --git a/legend-engine-xts-openapi/pom.xml b/legend-engine-xts-openapi/pom.xml index e03cfe9e5eb..42cf4bdd598 100644 --- a/legend-engine-xts-openapi/pom.xml +++ b/legend-engine-xts-openapi/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml index 8d69d66619a..43120175d2b 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml index a276664ad99..ed37549f07f 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml index 5afc5c79292..d8f9b5c2c90 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml index 79682e69db1..b1aee23faf2 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-cloud-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml index 621168f8bc7..9c47f3e5220 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-logical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml index 95f9094289b..a41f0094793 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-physical-plan/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml index 2350e20a05b..726e20c42a6 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-ansi/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml index 8484776e5a7..79dc89ceec0 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml index e6b7a11990b..f8e431082f5 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-core/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml index 0f5aee72a9c..43a4f7df7bc 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-h2/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml index 484c1680a2d..a6c19e69d95 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml index c9efd0dadcc..0744936f7e7 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml index 4e31b258236..4259469d64b 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/legend-engine-xt-persistence-component-relational-test/pom.xml @@ -15,7 +15,7 @@ org.finos.legend.engine legend-engine-xt-persistence-component - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml index dc2e5e1bf88..9cf92b68950 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-component/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml index 062179db633..41ef46a26e3 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml index 76440b8c251..3154555841a 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml index 019cd129214..93e060e8a7c 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml index db0fa19c6b9..2718132fd48 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-grammar/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml index de23e30e202..00eddc85fab 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml index f76f721f796..4d233d41e1b 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-target-relational-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml index af16e3c17d2..cbebca22a01 100644 --- a/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml +++ b/legend-engine-xts-persistence/legend-engine-xt-persistence-test-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-persistence - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-persistence/pom.xml b/legend-engine-xts-persistence/pom.xml index a6a591f8152..e2ed40d0fef 100644 --- a/legend-engine-xts-persistence/pom.xml +++ b/legend-engine-xts-persistence/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml index d9e45890a98..a1a85f572ee 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-xt-protobuf-grammar diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml index bacf448c5fd..f15407c3061 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-xt-protobuf-protocol diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml index b1fe6d7c7e9..68affbefe5f 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml index fb2eb0cfb11..d6b4de2ffe0 100644 --- a/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/legend-engine-xt-protobuf/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-protobuf - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 @@ -57,7 +57,7 @@ org.finos.legend.engine legend-engine-protocol-generation - 4.34.0 + 4.34.1-SNAPSHOT org.finos.legend.pure diff --git a/legend-engine-xts-protobuf/pom.xml b/legend-engine-xts-protobuf/pom.xml index d6333176dc2..97886b49538 100644 --- a/legend-engine-xts-protobuf/pom.xml +++ b/legend-engine-xts-protobuf/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml index c88fd041b82..be3259d0b8c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-analytics/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml index e7bb670b06b..196cd679096 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/legend-engine-xt-relationalStore-store-entitlement-pure/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-analytics org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml index 3e02d9a7b01..3863024c67e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-analytics/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml index 0f35d0ff81b..644380a4d7b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml index 86163c09459..d082876404c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution-tests/pom.xml @@ -3,7 +3,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml index c8590d14b26..a625ea68d51 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml index d4891a19001..585a4808d5b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml index 4300d8adbe1..33ff5d44898 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml index e71f67675eb..588b6e5b104 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/legend-engine-xt-relationalStore-athena-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-athena - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml index 9b16486bcbf..ef0100a0f23 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-athena/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml index 77d9e32bc0a..40a9c737371 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-bigquery org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml index 6670fc752f6..9ca48417b70 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml index 303c382aa5c..2b4b8a7ec8c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml index 9020803ef60..9d3c56a6e3a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml index e30f04d68c0..16353ae2b94 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/legend-engine-xt-relationalStore-bigquery-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-bigquery - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml index 3ca5feecea8..33769f69b67 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-bigquery/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml index 143ed545455..d437ce536d9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml index 7b9e2a60e89..68860ec5d06 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml index 90a93d8f42a..0ec441568c6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml index 14131d710e6..8710b999c1b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml index 8562de61161..c31f0190452 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/legend-engine-xt-relationalStore-databricks-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-databricks - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml index 590a7992b74..57e4243742c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-databricks/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml index 457775e951f..5798eaa773f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-dbExtension-archetype/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-dbExtension org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml index 0a8c501552c..45d5f1ab2af 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/legend-engine-xt-relationalStore-hive-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-hive - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml index 4e42a732fd1..e1930c9cbe5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-hive/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml index 01cf86229a8..c3399c5265e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml index cf45fa019e3..a5481392a8b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution-tests/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-memsql org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml index b0f29989a8a..512edef256c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.34.0 + 4.34.1-SNAPSHOT legend-engine-xt-relationalStore-memsql-execution diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml index d2aee145230..05ca5a8867f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/legend-engine-xt-relationalStore-memsql-pure/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-memsql - 4.34.0 + 4.34.1-SNAPSHOT legend-engine-xt-relationalStore-memsql-pure diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml index 8aa147e8c95..a3a334a453d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-memsql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml index f792a0a4e0d..c4213754310 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml index c6b1546ae99..3d21dfb2126 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml index 8b1bff3db11..662c6c6a989 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml index 1f00d8690e8..59ba7ca09b7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml index 343984fca5e..82756324b20 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/legend-engine-xt-relationalStore-postgres-test-support/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-postgres - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml index ad98e170c86..cafcf0ac9c3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-postgres/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml index d06f539a5fc..90ad2f3e1b3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/legend-engine-xt-relationalStore-presto-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-presto - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml index 86f207ca6cd..40fb3e94a28 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-presto/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml index 69947a8dc12..e026e569abf 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml index 7c932e9f3e7..52989a45c67 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml index 09ae2def566..cb7a57429a5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml index ef34df70d86..27a531a26a7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml index 36a44cb209a..8c3d3819d1d 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/legend-engine-xt-relationalStore-redshift-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-redshift - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml index a104f3e78d2..ce0e8a3642f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-redshift/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml index 7776ce3e0ae..628a88bbb7a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml index eaad7b1bb67..069bb812510 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml index c1c1f3b9407..fdc4d0845f9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml index c90b76900d9..fb5eccc2501 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml index 41090ceabfe..9ca00e8d7d5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml index 14d8413853f..ac4ab15bf82 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-snowflake - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml index a714eb21b6b..2c0065992d5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml index 614e731d6bb..e6ff412b97b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution-tests/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml index 8aa7edccb12..9798f394788 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-execution/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml index 802c73f3839..eabb54b5da3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-grammar/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml index 3c11ae7a1b2..ddc0b788f30 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-jdbc-shaded/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml index 35f4cdb985f..8a40a921e86 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-protocol/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml index 588c58816ff..c25f9f8b173 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/legend-engine-xt-relationalStore-spanner-pure/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-spanner org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml index f42aa0d31d9..adb9a24d8eb 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-spanner/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml index 829eb272c86..bc360e8da2c 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/legend-engine-xt-relationalStore-sparksql-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sparksql - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml index 1f558c851c6..353afe5ad99 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sparksql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml index 243532ef194..d884f158896 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-connection/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml index a6c15623c06..3af4d99e3fa 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-sqlserver-execution-tests diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml index 0ee0c0ad13e..a256b4eb553 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml index c3837ceb9ac..68f7f9e0d04 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/legend-engine-xt-relationalStore-sqlserver-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sqlserver - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml index c977cf3c81a..bdfd4d7a812 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sqlserver/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml index a8a5c59e507..b7c52c86877 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/legend-engine-xt-relationalStore-sybase-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybase - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml index 515a97d8cf4..8b37f5eb4c9 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybase/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml index 08b4e20e7f3..a8f8dd7c02f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/legend-engine-xt-relationalStore-sybaseiq-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-sybaseiq - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml index e579191bb68..ba3adaf78ba 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-sybaseiq/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml index 0a29b1c1a8d..22bacb8de1b 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-reports/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-test-reports diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml index 4f353127552..bdb23e0d1e4 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-test-server/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-test-server diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml index d614d7d9229..56590266b68 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution-tests/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml index 8d3940653ad..fc962898df6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml index 8b8410c7ec7..1913798efbd 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml index 44582d07237..e9752d886c3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml index e1cdbaf825c..f2a24530ffd 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/legend-engine-xt-relationalStore-trino-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-trino - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml index 93df1e1448a..9203de9020e 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-trino/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-dbExtension - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml index c07a1f4b7e8..829faed0f86 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml index 9c5d6296b2d..95da4474c97 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-authorizer/pom.xml @@ -3,7 +3,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml index 380fc58ca75..2fa834bcec7 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-api/pom.xml @@ -19,7 +19,7 @@ legend-engine-xt-relationalStore-execution org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml index f9fa1833403..b4191bfff7a 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication-default/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication-default diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml index 7f981e96a83..752ae33c479 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-authentication/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-xt-relationalStore-executionPlan-connection-authentication diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml index d40fbec377b..44f10f7d060 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-executionPlan-connection-tests/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 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 8c76d707e88..dc61c34f644 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 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 9ba64b4f6ba..4e721586e3e 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 @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml index 9bd024d7a07..6929ae2c5d3 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-h2-1.4.200-execution/pom.xml @@ -20,7 +20,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml index fc1202b575b..720168ec02f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/legend-engine-xt-relationalStore-mutation-executionPlan-test/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-execution - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml index 278f47dd0ec..f2f1d4797d0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-execution/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml index e5ee9293391..f1cef564d34 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml index b8b2463c2bb..4ef5d6ab917 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml index 274dc5ab1fb..ba5b58bdce5 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml index 622e5899634..ffd3fd9ac09 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml index e305cdf386a..bd97068230f 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-relationalStore-generation - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml index 44c65eb020c..c7b5be688e6 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-relationalStore - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalStore/pom.xml b/legend-engine-xts-relationalStore/pom.xml index 0132c338916..a01fcfc04f0 100644 --- a/legend-engine-xts-relationalStore/pom.xml +++ b/legend-engine-xts-relationalStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml index ada3bc077c8..927bb49fd4b 100644 --- a/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml +++ b/legend-engine-xts-relationalai/legend-engine-xt-relationalai-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-relationalai - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-relationalai/pom.xml b/legend-engine-xts-relationalai/pom.xml index 8a1c88e7888..c233a2c6a4d 100644 --- a/legend-engine-xts-relationalai/pom.xml +++ b/legend-engine-xts-relationalai/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml index 7fc8e732c73..b5e9b18a750 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml index 0a2a1013d6e..c9e28736fa1 100644 --- a/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/legend-engine-xt-rosetta/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-rosetta - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-rosetta/pom.xml b/legend-engine-xts-rosetta/pom.xml index 791603016e0..f29669671ff 100644 --- a/legend-engine-xts-rosetta/pom.xml +++ b/legend-engine-xts-rosetta/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml index 2568dab2095..0eb341885d9 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-execution/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-language-pure-dsl-service-execution diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml index ca80b47200b..416218da8ac 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-generation/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml index a524b73cead..80c65d87e11 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml index e314972ac3d..0dc6208eef2 100644 --- a/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-language-pure-dsl-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-language-pure-dsl-service diff --git a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml index e7fe861f150..b0300b1ce99 100644 --- a/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml +++ b/legend-engine-xts-service/legend-engine-service-post-validation-runner/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml index 7bca0256e4e..443202e9284 100644 --- a/legend-engine-xts-service/legend-engine-services-model-api/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-services-model-api diff --git a/legend-engine-xts-service/legend-engine-services-model/pom.xml b/legend-engine-xts-service/legend-engine-services-model/pom.xml index 00dd82bd206..058401dd408 100644 --- a/legend-engine-xts-service/legend-engine-services-model/pom.xml +++ b/legend-engine-xts-service/legend-engine-services-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 legend-engine-services-model diff --git a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml index 94e881f1335..e4e80dc1af4 100644 --- a/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml +++ b/legend-engine-xts-service/legend-engine-test-runner-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-service - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-service/pom.xml b/legend-engine-xts-service/pom.xml index 0754575b7ab..ce64f522c88 100644 --- a/legend-engine-xts-service/pom.xml +++ b/legend-engine-xts-service/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml index 08715ac78f1..81f26787abe 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-executionPlan/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml index 70a8ca8b2d4..435e2591e25 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml index eb941e720f6..f47914dfaf9 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml index 7f58c7bf47a..f01bc8ff3bb 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml index f532e77c14e..7a5c79fa384 100644 --- a/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml +++ b/legend-engine-xts-serviceStore/legend-engine-xt-serviceStore-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-serviceStore - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-serviceStore/pom.xml b/legend-engine-xts-serviceStore/pom.xml index 8e8309b3481..da7a7dfde8e 100644 --- a/legend-engine-xts-serviceStore/pom.xml +++ b/legend-engine-xts-serviceStore/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml index 323e14e5006..e8a2e506e07 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml index 3542ee83cbb..cc4fedffcf3 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-snowflakeApp org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml index 91ecd4489e4..0599e605184 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml index ecf48b7bd6f..a9f26cf4214 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml index 3dae55c3c05..7504b921cc8 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml index a31e20e5c48..da7e9c2e971 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-snowflakeApp - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-snowflakeApp/pom.xml b/legend-engine-xts-snowflakeApp/pom.xml index d297c4aaf82..df194d5e513 100644 --- a/legend-engine-xts-snowflakeApp/pom.xml +++ b/legend-engine-xts-snowflakeApp/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml index 297f7a82781..a9662e1082b 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-compiler/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml index 08bc8f76dcd..8761b273960 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar-integration/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml index 8102f841428..64c7adfd11f 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-grammar/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml index 51728c2b531..75cebffe90c 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-postgres-server/pom.xml @@ -3,7 +3,7 @@ legend-engine-xts-sql org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml index 0df74bbf136..24ddcc056dd 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-protocol/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml index ab75d718afe..5db932dabf1 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-core/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml index 2dc7142f279..c194274adc0 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-relationalStore/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml index 024897cb161..42219f6bd44 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-service/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml index dfc2468cda3..5f14306fe7f 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xt-sql-providers - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml index 8891e115947..b931ec77b79 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml index e17dd355b03..04fb92adba6 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml index 1c195554ad5..ab7463f7892 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-pure/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml index 8d757d30a56..3ab458c9ab8 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-query/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-sql - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-sql/pom.xml b/legend-engine-xts-sql/pom.xml index 63c2f56f0b5..37e603060ca 100644 --- a/legend-engine-xts-sql/pom.xml +++ b/legend-engine-xts-sql/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml index 128cdca9ffa..1b5b9c111f5 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-compiler/pom.xml @@ -18,7 +18,7 @@ legend-engine-xts-text org.finos.legend.engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml index 77d1c4770cb..b17c3f980d9 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-grammar/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml index c496f5fbdac..b3e8534b9a8 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-protocol/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml index 8b39b66518a..c4abf9dd4f9 100644 --- a/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml +++ b/legend-engine-xts-text/legend-engine-xt-text-pure-metamodel/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-text - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-text/pom.xml b/legend-engine-xts-text/pom.xml index 032bc1d74c8..9016c0df442 100644 --- a/legend-engine-xts-text/pom.xml +++ b/legend-engine-xts-text/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml index bcd43028720..195d314deef 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-javaPlatformBinding-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml index 54d2f67eba3..892d6c77d6d 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-model/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml index 3240cda8da6..b4252727d12 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-pure/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml index 862664c33ca..94ee69cdaf3 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-runtime/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml index aa0645da396..b2323bfab7a 100644 --- a/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml +++ b/legend-engine-xts-xml/legend-engine-xt-xml-shared/pom.xml @@ -19,7 +19,7 @@ org.finos.legend.engine legend-engine-xts-xml - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/legend-engine-xts-xml/pom.xml b/legend-engine-xts-xml/pom.xml index 69d864c9d77..36ffaa8be17 100644 --- a/legend-engine-xts-xml/pom.xml +++ b/legend-engine-xts-xml/pom.xml @@ -18,7 +18,7 @@ org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT 4.0.0 diff --git a/pom.xml b/pom.xml index 197e64d28d0..e4c19e20450 100644 --- a/pom.xml +++ b/pom.xml @@ -26,7 +26,7 @@ Legend Engine org.finos.legend.engine legend-engine - 4.34.0 + 4.34.1-SNAPSHOT pom @@ -228,7 +228,7 @@ scm:git:https://github.com/finos/legend-engine - legend-engine-4.34.0 + HEAD From 5b6d7664b25b9e74336938f4de2b9ee332951baa Mon Sep 17 00:00:00 2001 From: Gopichand Kotana <109651657+gs-kotang@users.noreply.github.com> Date: Sat, 4 Nov 2023 15:51:10 +0530 Subject: [PATCH 75/80] Fix - In processing with Literal list For Snowflake (#2415) * Fix - In processing with Literal list * Add unit test - Execution plan test for In processing with literal list in snowflake * Refactor - Use a function that processes temp table name literal based on db type --- .../tests/executionPlanTestSnowflake.pure | 18 ++++++++++++++++++ .../processInOperation.pure | 13 +++++++++---- 2 files changed, 27 insertions(+), 4 deletions(-) diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/executionPlan/tests/executionPlanTestSnowflake.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/executionPlan/tests/executionPlanTestSnowflake.pure index f0487a9aef8..d6f3b67a498 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/executionPlan/tests/executionPlanTestSnowflake.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-dbExtension/legend-engine-xt-relationalStore-snowflake/legend-engine-xt-relationalStore-snowflake-pure/src/main/resources/core_relational_snowflake/relational/executionPlan/tests/executionPlanTestSnowflake.pure @@ -131,3 +131,21 @@ function <> meta::pure::executionPlan::tests::snowflake::testRelation let expectedPlan = 'Relational(type=TDS[(Name,String,VARCHAR(200),"")]resultColumns=[("Name",VARCHAR(200))]sql=select"root".NAMEas"Name"fromproductSchema.productTableas"root"connection=RelationalDatabaseConnection(type="Snowflake"))'; assertEquals($expectedPlan, $generatedPlan->planToStringWithoutFormatting(meta::relational::extension::relationalExtensions())); } + +function <> meta::pure::executionPlan::tests::snowflake::testInExecutionWithLiteralListSnowflake():Boolean[1] +{ + let intList = range(1,17000); + let generatedPlan = executionPlan({|Person.all()->filter(p|$p.age->in($intList))->project([x |$x.name], ['fullName'])}, simpleRelationalMapping, ^Runtime(connectionStores=^ConnectionStore(element = meta::relational::tests::db,connection=meta::pure::executionPlan::tests::snowflake::relationalConnectionForSnowflake(true))), meta::relational::extension::relationalExtensions()); + let execNodesInRelBlockNode = $generatedPlan.rootExecutionNode.executionNodes; + + let createAndPopulateTempTableNode = $execNodesInRelBlockNode->filter(e|$e->instanceOf(CreateAndPopulateTempTableExecutionNode)); + + let tempTableName = $createAndPopulateTempTableNode->at(0)->cast(@CreateAndPopulateTempTableExecutionNode).tempTableName; + assertEquals('LEGEND_TEMP_DB.LEGEND_TEMP_SCHEMA.tempTableForIn_8', $tempTableName); + let inputVarNames = $createAndPopulateTempTableNode->at(0)->cast(@CreateAndPopulateTempTableExecutionNode).inputVarNames; + assertEquals('tempVarForIn_8', $inputVarNames->at(0)); + + let allocationNode = $execNodesInRelBlockNode->filter(e|$e->instanceOf(AllocationExecutionNode)); + let varName = $allocationNode->at(0)->cast(@AllocationExecutionNode).varName; + assertEquals('tempVarForIn_8', $varName); +} \ No newline at end of file diff --git a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/processInOperation.pure b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/processInOperation.pure index 48938985b61..7f01ed701e0 100644 --- a/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/processInOperation.pure +++ b/legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure/src/main/resources/core_relational/relational/postprocessor/defaultPostProcessor/processInOperation.pure @@ -52,6 +52,11 @@ function <> meta::relational::postProcessor::prefixForWrapperAll 'inFilterClause_'; } +function <> meta::relational::postProcessor::processedTempTableNameForIn(dbType: DatabaseType[1]):String[1] +{ + $dbType->createDbConfig([]).procesTempTableName('tempTableForIn_'); +} + function meta::relational::postProcessor::processInOperation(query:SQLQuery[1], runtime:Runtime[1], store:Database[0..1], exeCtx:ExecutionContext[1], extensions:Extension[*]):PostProcessorResult[1] { let connection = $runtime->connectionByElement($store->toOne())->meta::relational::mapping::updateConnection($extensions)->cast(@DatabaseConnection); @@ -68,12 +73,12 @@ function meta::relational::postProcessor::processInOperation(query:SQLQuery[1], d : DynaFunction[1] | if($d.name == 'in' && $d.parameters->at(1)->instanceOf(LiteralList) && ($d.parameters->at(1)->cast(@LiteralList).values->size() > $dbThreshold->toOne()), | let dbType = $connection.type; - let tempTableName = 'tempTableForIn_' + $uniqueId->toString(); + let tempTableName = $dbType->processedTempTableNameForIn() + $uniqueId->toString(); let tempTableColumnName = 'ColumnForStoringInCollection'; let firstLiteralValue = $d.parameters->at(1)->cast(@LiteralList).values->map(l | $l.value)->at(0); let collectionValueType = if($firstLiteralValue->instanceOf(VarPlaceHolder), | $firstLiteralValue->cast(@VarPlaceHolder).type, | $firstLiteralValue->type()); - let selectSQLQuery = generateTempTableSelectSQLQuery('default', $dbType->createDbConfig([]).procesTempTableName($tempTableName), $tempTableColumnName, meta::relational::transform::fromPure::pureTypeToDataTypeMap()->get($collectionValueType)->translateCoreTypeToDbSpecificType(^TranslationContext(dbType=$dbType))->toOne()); + let selectSQLQuery = generateTempTableSelectSQLQuery('default', $tempTableName, $tempTableColumnName, meta::relational::transform::fromPure::pureTypeToDataTypeMap()->get($collectionValueType)->translateCoreTypeToDbSpecificType(^TranslationContext(dbType=$dbType))->toOne()); ^$d(parameters = [$d.parameters->at(0), $selectSQLQuery]);, |$d);, @@ -112,8 +117,8 @@ function meta::relational::postProcessor::generatePostProcessorResult(changedFun let outerAllocationNodeName = if($newInFunction.parameters->at(1)->instanceOf(VarPlaceHolder), |$newInFunction.parameters->at(1)->cast(@VarPlaceHolder).name, - |$newInFunction.parameters->at(1)->cast(@SelectSQLQuery).data.alias.name->toOne()->replace('tempTableForIn_', prefixForWrapperAllocationNodeName())); - let tempTableName = $dbType->createDbConfig([]).procesTempTableName($outerAllocationNodeName->replace(prefixForWrapperAllocationNodeName(), 'tempTableForIn_')); + |$newInFunction.parameters->at(1)->cast(@SelectSQLQuery).data.alias.name->toOne()->replace($dbType->processedTempTableNameForIn(), prefixForWrapperAllocationNodeName())); + let tempTableName = $outerAllocationNodeName->replace(prefixForWrapperAllocationNodeName(), $dbType->processedTempTableNameForIn()); let tempTableColumnName = 'ColumnForStoringInCollection'; let allocationNodeName = $outerAllocationNodeName->replace(prefixForWrapperAllocationNodeName(), 'tempVarForIn_'); From 183364304207bceb1826467fc6eeafaf5699a127 Mon Sep 17 00:00:00 2001 From: Janeen Yamak <88203072+janeenyamak1@users.noreply.github.com> Date: Sat, 4 Nov 2023 05:27:08 -0500 Subject: [PATCH 76/80] Add default constructor for jackson deserialization (#2432) * Add default constructor for jackson deserialization * Add jackson dependency * Add default constructor for SnowflakeAppContent --- .../legend-engine-language-pure-dsl-generation/pom.xml | 4 ++++ .../language/pure/dsl/generation/extension/Artifact.java | 7 +++++++ .../snowflakeApp/generator/SnowflakeAppContent.java | 5 +++++ 3 files changed, 16 insertions(+) diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml index 4fb81564475..07346c58773 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/pom.xml @@ -146,6 +146,10 @@ com.fasterxml.jackson.core jackson-databind + + com.fasterxml.jackson.core + jackson-annotations + diff --git a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/src/main/java/org/finos/legend/engine/language/pure/dsl/generation/extension/Artifact.java b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/src/main/java/org/finos/legend/engine/language/pure/dsl/generation/extension/Artifact.java index e3af2dd29ab..aa9e28eefc0 100644 --- a/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/src/main/java/org/finos/legend/engine/language/pure/dsl/generation/extension/Artifact.java +++ b/legend-engine-xts-generation/legend-engine-language-pure-dsl-generation/src/main/java/org/finos/legend/engine/language/pure/dsl/generation/extension/Artifact.java @@ -14,12 +14,19 @@ package org.finos.legend.engine.language.pure.dsl.generation.extension; +import com.fasterxml.jackson.annotation.JsonIgnoreProperties; + +@JsonIgnoreProperties(ignoreUnknown = true) public class Artifact { public String content; public String path; public String format; + public Artifact() + { + //Empty constructor for Jackson + } public Artifact(String content, String path, String format) { diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator/SnowflakeAppContent.java b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator/SnowflakeAppContent.java index 3411b0e06b2..6c2624b0e20 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator/SnowflakeAppContent.java +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/src/main/java/org/finos/legend/engine/language/snowflakeApp/generator/SnowflakeAppContent.java @@ -35,6 +35,11 @@ public class SnowflakeAppContent extends FunctionActivatorDeploymentContent public String version; public String creationTime; + public SnowflakeAppContent() + { + //Empty constructor for Jackson + } + public SnowflakeAppContent(String applicationName, MutableList sqlExpressions, AlloySDLC sdlc) { this.applicationName = applicationName; From d08df6191fbee6cd27e0dcc5a71f699bc5d17711 Mon Sep 17 00:00:00 2001 From: Adeoye Oluwatobi Date: Mon, 6 Nov 2023 15:57:39 +0000 Subject: [PATCH 77/80] Add more compile time checks for mastery components (#2436) --- .../toPureGraph/HelperAcquisitionBuilder.java | 12 + .../HelperMasterRecordDefinitionBuilder.java | 53 ++- .../toPureGraph/HelperTriggerBuilder.java | 34 ++ .../from/trigger/TriggerParseTreeWalker.java | 4 +- .../TestMasteryCompilationFromGrammar.java | 392 ++++++++++++++++++ .../acquisition/AcquisitionProtocol.java | 7 + .../acquisition/KafkaAcquisitionProtocol.java | 7 +- 7 files changed, 502 insertions(+), 7 deletions(-) diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/compiler/toPureGraph/HelperAcquisitionBuilder.java b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/compiler/toPureGraph/HelperAcquisitionBuilder.java index 885389da4a0..d341a969673 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/compiler/toPureGraph/HelperAcquisitionBuilder.java +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/compiler/toPureGraph/HelperAcquisitionBuilder.java @@ -21,6 +21,7 @@ import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mastery.acquisition.DESDecryption; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mastery.acquisition.Decryption; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mastery.acquisition.FileAcquisitionProtocol; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mastery.acquisition.FileType; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mastery.acquisition.KafkaAcquisitionProtocol; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mastery.acquisition.LegendServiceAcquisitionProtocol; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mastery.acquisition.PGPDecryption; @@ -42,6 +43,7 @@ import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.PackageableElement; import static java.lang.String.format; +import static org.apache.commons.lang3.StringUtils.isEmpty; public class HelperAcquisitionBuilder { @@ -75,6 +77,7 @@ public static Root_meta_pure_mastery_metamodel_acquisition_AcquisitionProtocol b public static Root_meta_pure_mastery_metamodel_acquisition_FileAcquisitionProtocol buildFileAcquisitionProtocol(FileAcquisitionProtocol acquisitionProtocol, CompileContext context) { + validateFileAcquisitionProtocol(acquisitionProtocol); Root_meta_pure_mastery_metamodel_connection_FileConnection fileConnection; PackageableElement packageableElement = context.resolvePackageableElement(acquisitionProtocol.connection, acquisitionProtocol.sourceInformation); if (packageableElement instanceof Root_meta_pure_mastery_metamodel_connection_FileConnection) @@ -98,6 +101,15 @@ public static Root_meta_pure_mastery_metamodel_acquisition_FileAcquisitionProtoc ._decryption(acquisitionProtocol.decryption == null ? null : buildDecryption(acquisitionProtocol.decryption, context)); } + private static void validateFileAcquisitionProtocol(FileAcquisitionProtocol fileAcquisitionProtocol) + { + if (fileAcquisitionProtocol.fileType == FileType.JSON && isEmpty(fileAcquisitionProtocol.recordsKey)) + { + throw new EngineException("'recordsKey' must be specified when file type is JSON", fileAcquisitionProtocol.sourceInformation, EngineErrorType.COMPILATION); + } + } + + public static Root_meta_pure_mastery_metamodel_acquisition_file_Decryption buildDecryption(Decryption decryption, CompileContext context) { if (decryption instanceof PGPDecryption) diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/compiler/toPureGraph/HelperMasterRecordDefinitionBuilder.java b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/compiler/toPureGraph/HelperMasterRecordDefinitionBuilder.java index db5a9ebe315..670bed7b19c 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/compiler/toPureGraph/HelperMasterRecordDefinitionBuilder.java +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/compiler/toPureGraph/HelperMasterRecordDefinitionBuilder.java @@ -26,10 +26,12 @@ import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.Multiplicity; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mastery.MasterRecordDefinition; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mastery.Profile; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mastery.RecordService; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mastery.RecordSource; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mastery.RecordSourceVisitor; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mastery.acquisition.AcquisitionProtocol; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mastery.acquisition.KafkaAcquisitionProtocol; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mastery.authorization.Authorization; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mastery.identity.CollectionEquality; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mastery.identity.IdentityResolution; @@ -50,8 +52,12 @@ import java.util.*; import java.util.stream.Collectors; +import static com.google.common.collect.Iterables.isEmpty; import static com.google.common.collect.Sets.newHashSet; import static java.lang.String.format; +import static java.util.Objects.nonNull; +import static org.apache.commons.lang3.BooleanUtils.isFalse; +import static org.apache.commons.lang3.BooleanUtils.isTrue; public class HelperMasterRecordDefinitionBuilder { @@ -167,6 +173,7 @@ public Root_meta_pure_mastery_metamodel_precedence_PrecedenceRule visit(Preceden } else if (precedenceRule instanceof DeleteRule) { + validateNoDataProviderScope((DeleteRule) precedenceRule); purePrecedenceRule = new Root_meta_pure_mastery_metamodel_precedence_DeleteRule_Impl(""); } else if (precedenceRule instanceof CreateRule) @@ -175,7 +182,7 @@ else if (precedenceRule instanceof CreateRule) } else if (precedenceRule instanceof ConditionalRule) { - purePrecedenceRule = visitConditionalRule(precedenceRule); + purePrecedenceRule = visitConditionalRule((ConditionalRule) precedenceRule); } else { @@ -218,10 +225,10 @@ private Root_meta_pure_mastery_metamodel_precedence_SourcePrecedenceRule visitSo return pureSourcePrecedenceRule; } - private Root_meta_pure_mastery_metamodel_precedence_ConditionalRule visitConditionalRule(PrecedenceRule precedenceRule) + private Root_meta_pure_mastery_metamodel_precedence_ConditionalRule visitConditionalRule(ConditionalRule conditionalRule) { + validateNoScopeSet(conditionalRule); Root_meta_pure_mastery_metamodel_precedence_ConditionalRule pureConditionalRule = new Root_meta_pure_mastery_metamodel_precedence_ConditionalRule_Impl(""); - ConditionalRule conditionalRule = (ConditionalRule) precedenceRule; validatePredicateInput(conditionalRule.predicate); pureConditionalRule._predicate(HelperValueSpecificationBuilder.buildLambda(conditionalRule.predicate, context)); return pureConditionalRule; @@ -234,6 +241,26 @@ private void validatePredicateInput(Lambda predicate) validateInputMultiplicity(predicate); } + private void validateNoScopeSet(ConditionalRule conditionalRule) + { + if (!isEmpty(conditionalRule.scopes)) + { + throw new EngineException( + "ConditionalRule with ruleScope is currently unsupported", conditionalRule.sourceInformation, + EngineErrorType.COMPILATION); + } + } + + private void validateNoDataProviderScope(DeleteRule deleteRule) + { + if (!isEmpty(deleteRule.scopes) && deleteRule.scopes.stream().anyMatch(scope -> scope instanceof DataProviderTypeScope)) + { + throw new EngineException( + "DataProviderTypeScope is not allowed on DeleteRule", deleteRule.sourceInformation, + EngineErrorType.COMPILATION); + } + } + private void validateInputVariableNames(Lambda predicate) { Set actualNames = predicate.parameters.stream().map(variable -> variable.name).collect(Collectors.toSet()); @@ -359,6 +386,7 @@ public RecordSourceBuilder(CompileContext context) @Override public Root_meta_pure_mastery_metamodel_RecordSource visit(RecordSource protocolSource) { + validateRecordSource(protocolSource); List extensions = IMasteryCompilerExtension.getExtensions(); List> processors = ListIterate.flatCollect(extensions, IMasteryCompilerExtension::getExtraAuthorizationProcessors); List> triggerProcessors = ListIterate.flatCollect(extensions, IMasteryCompilerExtension::getExtraTriggerProcessors); @@ -415,6 +443,25 @@ private static RichIterable 31) + { + throw new EngineException(format("Invalid record source id '%s'; id must not be longer than 31 characters.", recordSource.id), recordSource.sourceInformation, EngineErrorType.COMPILATION); + } + + boolean kafkaSource = nonNull(recordSource.recordService) && nonNull(recordSource.recordService.acquisitionProtocol) && recordSource.recordService.acquisitionProtocol.isKafkaAcquisitionProtocol(); + + if (isTrue(recordSource.sequentialData) && kafkaSource && nonNull(recordSource.runProfile) && recordSource.runProfile != Profile.ExtraSmall) + { + throw new EngineException("'runProfile' can only be set to ExtraSmall for Delta kafka sources", recordSource.sourceInformation, EngineErrorType.COMPILATION); + } + if (kafkaSource && nonNull(recordSource.runProfile) && recordSource.runProfile != Profile.Small) + { + throw new EngineException("'runProfile' can only be set to Small for Full Universe kafka sources", recordSource.sourceInformation, EngineErrorType.COMPILATION); + } + } } private static Root_meta_pure_mastery_metamodel_DataProvider getAndValidateDataProvider(String path, SourceInformation sourceInformation, CompileContext context) diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/compiler/toPureGraph/HelperTriggerBuilder.java b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/compiler/toPureGraph/HelperTriggerBuilder.java index fc3172ab889..9f68f4c0b67 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/compiler/toPureGraph/HelperTriggerBuilder.java +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/compiler/toPureGraph/HelperTriggerBuilder.java @@ -16,14 +16,19 @@ import org.eclipse.collections.impl.utility.ListIterate; import org.finos.legend.engine.language.pure.compiler.toPureGraph.CompileContext; +import org.finos.legend.engine.protocol.pure.v1.model.context.EngineErrorType; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mastery.trigger.CronTrigger; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mastery.trigger.Frequency; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mastery.trigger.ManualTrigger; import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mastery.trigger.Trigger; +import org.finos.legend.engine.shared.core.operational.errorManagement.EngineException; import org.finos.legend.pure.generated.Root_meta_pure_mastery_metamodel_trigger_CronTrigger; import org.finos.legend.pure.generated.Root_meta_pure_mastery_metamodel_trigger_CronTrigger_Impl; import org.finos.legend.pure.generated.Root_meta_pure_mastery_metamodel_trigger_ManualTrigger_Impl; import org.finos.legend.pure.generated.Root_meta_pure_mastery_metamodel_trigger_Trigger; +import static org.eclipse.collections.impl.utility.Iterate.isEmpty; + public class HelperTriggerBuilder { @@ -45,6 +50,7 @@ public static Root_meta_pure_mastery_metamodel_trigger_Trigger buildTrigger(Trig private static Root_meta_pure_mastery_metamodel_trigger_CronTrigger buildCronTrigger(CronTrigger cronTrigger, CompileContext context) { + validateCronTrigger(cronTrigger); return new Root_meta_pure_mastery_metamodel_trigger_CronTrigger_Impl("") ._minute(cronTrigger.minute) ._hour(cronTrigger.hour) @@ -55,4 +61,32 @@ private static Root_meta_pure_mastery_metamodel_trigger_CronTrigger buildCronTri ._month(cronTrigger.year == null ? null : context.resolveEnumValue("meta::pure::mastery::metamodel::trigger::Month", cronTrigger.month.name())) ._days(ListIterate.collect(cronTrigger.days, day -> context.resolveEnumValue("meta::pure::mastery::metamodel::trigger::Day", day.name()))); } + + private static void validateCronTrigger(CronTrigger cronTrigger) + { + if ((cronTrigger.frequency == Frequency.Intraday || cronTrigger.frequency == Frequency.Daily) && isEmpty(cronTrigger.days)) + { + throw new EngineException("'days' must not be empty when trigger frequency is Daily or Intraday", cronTrigger.sourceInformation, EngineErrorType.COMPILATION); + } + + if (cronTrigger.frequency == Frequency.Weekly && cronTrigger.days.size() != 1) + { + throw new EngineException("'days' specified must be exactly one when trigger frequency is Weekly", cronTrigger.sourceInformation, EngineErrorType.COMPILATION); + } + + if (!isInHourRange(cronTrigger.hour) || !isInMinuteRange(cronTrigger.minute)) + { + throw new EngineException("'hour' must be a number between 0 and 23 (both inclusive), and 'minute' must be a number between 0 and 59 (both inclusive)", cronTrigger.sourceInformation, EngineErrorType.COMPILATION); + } + } + + private static boolean isInHourRange(Integer hour) + { + return 0 <= hour && hour < 24; + } + + private static boolean isInMinuteRange(Integer minute) + { + return 0 <= minute && minute < 60; + } } diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/grammar/from/trigger/TriggerParseTreeWalker.java b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/grammar/from/trigger/TriggerParseTreeWalker.java index 3d39052465e..506b8efca39 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/grammar/from/trigger/TriggerParseTreeWalker.java +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/main/java/org/finos/legend/engine/language/pure/dsl/mastery/grammar/from/trigger/TriggerParseTreeWalker.java @@ -93,7 +93,7 @@ private Trigger visitCronTrigger(TriggerParserGrammar.CronTriggerContext ctx) // frequency - TriggerParserGrammar.FrequencyContext frequencyContext = PureGrammarParserUtility.validateAndExtractOptionalField(ctx.frequency(), "frequency", sourceInformation); + TriggerParserGrammar.FrequencyContext frequencyContext = PureGrammarParserUtility.validateAndExtractRequiredField(ctx.frequency(), "frequency", sourceInformation); if (frequencyContext != null) { String frequencyString = frequencyContext.frequencyValue().getText(); @@ -101,7 +101,7 @@ private Trigger visitCronTrigger(TriggerParserGrammar.CronTriggerContext ctx) } // days - TriggerParserGrammar.DaysContext daysContext = PureGrammarParserUtility.validateAndExtractOptionalField(ctx.days(), "days", sourceInformation); + TriggerParserGrammar.DaysContext daysContext = PureGrammarParserUtility.validateAndExtractRequiredField(ctx.days(), "days", sourceInformation); if (daysContext != null) { cronTrigger.days = ListIterate.collect(daysContext.dayValue(), this::visitRunDay); diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/test/java/org/finos/legend/engine/language/pure/dsl/mastery/compiler/test/TestMasteryCompilationFromGrammar.java b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/test/java/org/finos/legend/engine/language/pure/dsl/mastery/compiler/test/TestMasteryCompilationFromGrammar.java index b9953070433..0b6c2a75497 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/test/java/org/finos/legend/engine/language/pure/dsl/mastery/compiler/test/TestMasteryCompilationFromGrammar.java +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-grammar/src/test/java/org/finos/legend/engine/language/pure/dsl/mastery/compiler/test/TestMasteryCompilationFromGrammar.java @@ -903,6 +903,398 @@ public void testMasteryDeprecatedModelCanStillCompile() assertEquals("Widget", masterRecordDefinition._modelClass()._name()); } + @Test + public void testCompilationErrorWhenInvalidTriggerDefinition() + { + String model = "###Pure\n" + + "Class org::dataeng::Widget\n" + + "{\n" + + " widgetId: String[0..1];\n" + + "}\n\n" + + "###Mastery\n" + "MasterRecordDefinition alloy::mastery::WidgetMasterRecord" + + "\n" + + "{\n" + + " modelClass: org::dataeng::Widget;\n" + + " identityResolution: \n" + + " {\n" + + " resolutionQueries:\n" + + " [\n" + + " {\n" + + " queries: [ {input: org::dataeng::Widget[1]|org::dataeng::Widget.all()->filter(widget|$widget.widgetId == $input.widgetId)}\n" + + " ];\n" + + " precedence: 1;\n" + + " }\n" + + " ]\n" + + " }\n" + + " recordSources:\n" + + " [\n" + + " widget-producer: {\n" + + " description: 'REST Acquisition source.';\n" + + " status: Development;\n" + + " recordService: {\n" + + " acquisitionProtocol: REST;\n" + + " };\n" + + " trigger: Cron #{\n" + + " minute: 70;\n" + + " hour: 25;\n" + + " timezone: 'UTC';\n" + + " frequency: Daily;\n" + + " days: [ Monday, Tuesday, Wednesday, Thursday, Friday ];\n" + + " }#;\n" + + " }\n" + + " ]\n" + + "}\n"; + + TestCompilationFromGrammar.TestCompilationFromGrammarTestSuite.test(model, "COMPILATION error at [8:1-39:1]: Error in 'alloy::mastery::WidgetMasterRecord': 'hour' must be a number between 0 and 23 (both inclusive), and 'minute' must be a number between 0 and 59 (both inclusive)"); + } + + @Test + public void testCompilationErrorWhenWeeklyFrequencyButMoreThanOneRunDaySpecified() + { + String model = "###Pure\n" + + "Class org::dataeng::Widget\n" + + "{\n" + + " widgetId: String[0..1];\n" + + "}\n\n" + + "###Mastery\n" + "MasterRecordDefinition alloy::mastery::WidgetMasterRecord" + + "\n" + + "{\n" + + " modelClass: org::dataeng::Widget;\n" + + " identityResolution: \n" + + " {\n" + + " resolutionQueries:\n" + + " [\n" + + " {\n" + + " queries: [ {input: org::dataeng::Widget[1]|org::dataeng::Widget.all()->filter(widget|$widget.widgetId == $input.widgetId)}\n" + + " ];\n" + + " precedence: 1;\n" + + " }\n" + + " ]\n" + + " }\n" + + " recordSources:\n" + + " [\n" + + " widget-producer: {\n" + + " description: 'REST Acquisition source.';\n" + + " status: Development;\n" + + " recordService: {\n" + + " acquisitionProtocol: REST;\n" + + " };\n" + + " trigger: Cron #{\n" + + " minute: 45;\n" + + " hour: 2;\n" + + " timezone: 'UTC';\n" + + " frequency: Weekly;\n" + + " days: [ Monday, Tuesday ];\n" + + " }#;\n" + + " }\n" + + " ]\n" + + "}\n"; + + TestCompilationFromGrammar.TestCompilationFromGrammarTestSuite.test(model, "COMPILATION error at [8:1-39:1]: Error in 'alloy::mastery::WidgetMasterRecord': 'days' specified must be exactly one when trigger frequency is Weekly"); + } + + @Test + public void testCompilationErrorWhenRecordSourceIdExceedThirtyOne() + { + String model = "###Pure\n" + + "Class org::dataeng::Widget\n" + + "{\n" + + " widgetId: String[0..1];\n" + + "}\n\n" + + "###Mastery\n" + "MasterRecordDefinition alloy::mastery::WidgetMasterRecord" + + "\n" + + "{\n" + + " modelClass: org::dataeng::Widget;\n" + + " identityResolution: \n" + + " {\n" + + " resolutionQueries:\n" + + " [\n" + + " {\n" + + " queries: [ {input: org::dataeng::Widget[1]|org::dataeng::Widget.all()->filter(widget|$widget.widgetId == $input.widgetId)}\n" + + " ];\n" + + " precedence: 1;\n" + + " }\n" + + " ]\n" + + " }\n" + + " recordSources:\n" + + " [\n" + + " widget-producer-alloy-mastery-exceed-allowed-length: {\n" + + " description: 'REST Acquisition source.';\n" + + " status: Development;\n" + + " recordService: {\n" + + " acquisitionProtocol: REST;\n" + + " };\n" + + " trigger: Manual;\n" + + " }\n" + + " ]\n" + + "}\n"; + + TestCompilationFromGrammar.TestCompilationFromGrammarTestSuite.test(model, "COMPILATION error at [24:5-31:5]: Invalid record source id 'widget-producer-alloy-mastery-exceed-allowed-length'; id must not be longer than 31 characters."); + } + + @Test + public void testCompilationErrorWhenDeltaKafkaSourceHasRunProfileOtherThanExtraSmall() + { + String model = "###Pure\n" + + "Class org::dataeng::Widget\n" + + "{\n" + + " widgetId: String[0..1];\n" + + "}\n\n" + + "###Mastery\n" + "MasterRecordDefinition alloy::mastery::WidgetMasterRecord" + + "\n" + + "{\n" + + " modelClass: org::dataeng::Widget;\n" + + " identityResolution: \n" + + " {\n" + + " resolutionQueries:\n" + + " [\n" + + " {\n" + + " queries: [ {input: org::dataeng::Widget[1]|org::dataeng::Widget.all()->filter(widget|$widget.widgetId == $input.widgetId)}\n" + + " ];\n" + + " precedence: 1;\n" + + " }\n" + + " ]\n" + + " }\n" + + " recordSources:\n" + + " [\n" + + " widget-kafka: {\n" + + " description: 'Kafka Acquisition source.';\n" + + " status: Development;\n" + + " recordService: {\n" + + " acquisitionProtocol: Kafka #{\n" + + " dataType: JSON;\n" + + " connection: alloy::mastery::connection::KafkaConnection;\n" + + " }#;\n" + + " };\n" + + " sequentialData: true;\n" + + " runProfile: Medium;\n" + + " trigger: Manual;\n" + + " }\n" + + " ]\n" + + "}\n\n" + + + "MasteryConnection alloy::mastery::connection::KafkaConnection\n" + + "{\n" + + " specification: Kafka #{\n" + + " topicName: 'my-topic-name';\n" + + " topicUrls: [\n" + + " 'some.url.com:2100',\n" + + " 'another.url.com:2100'\n" + + " ];\n" + + " }#;\n" + + "}"; + + TestCompilationFromGrammar.TestCompilationFromGrammarTestSuite.test(model, "COMPILATION error at [24:5-36:5]: 'runProfile' can only be set to ExtraSmall for Delta kafka sources"); + } + + @Test + public void testCompilationErrorWhenFullUniverseKafkaSourceHasRunProfileOtherThanSmall() + { + String model = "###Pure\n" + + "Class org::dataeng::Widget\n" + + "{\n" + + " widgetId: String[0..1];\n" + + "}\n\n" + + "###Mastery\n" + "MasterRecordDefinition alloy::mastery::WidgetMasterRecord" + + "\n" + + "{\n" + + " modelClass: org::dataeng::Widget;\n" + + " identityResolution: \n" + + " {\n" + + " resolutionQueries:\n" + + " [\n" + + " {\n" + + " queries: [ {input: org::dataeng::Widget[1]|org::dataeng::Widget.all()->filter(widget|$widget.widgetId == $input.widgetId)}\n" + + " ];\n" + + " precedence: 1;\n" + + " }\n" + + " ]\n" + + " }\n" + + " recordSources:\n" + + " [\n" + + " widget-kafka: {\n" + + " description: 'Kafka Acquisition source.';\n" + + " status: Development;\n" + + " recordService: {\n" + + " acquisitionProtocol: Kafka #{\n" + + " dataType: JSON;\n" + + " connection: alloy::mastery::connection::KafkaConnection;\n" + + " }#;\n" + + " };\n" + + " runProfile: Medium;\n" + + " trigger: Manual;\n" + + " }\n" + + " ]\n" + + "}\n\n" + + + "MasteryConnection alloy::mastery::connection::KafkaConnection\n" + + "{\n" + + " specification: Kafka #{\n" + + " topicName: 'my-topic-name';\n" + + " topicUrls: [\n" + + " 'some.url.com:2100',\n" + + " 'another.url.com:2100'\n" + + " ];\n" + + " }#;\n" + + "}"; + + TestCompilationFromGrammar.TestCompilationFromGrammarTestSuite.test(model, "COMPILATION error at [24:5-35:5]: 'runProfile' can only be set to Small for Full Universe kafka sources"); + } + + @Test + public void testCompilationErrorWhenJsonFileAcquisitionHasRecordsKey() + { + String model = "###Pure\n" + + "Class org::dataeng::Widget\n" + + "{\n" + + " widgetId: String[0..1];\n" + + "}\n\n" + + "###Mastery\n" + "MasterRecordDefinition alloy::mastery::WidgetMasterRecord" + + "\n" + + "{\n" + + " modelClass: org::dataeng::Widget;\n" + + " identityResolution: \n" + + " {\n" + + " resolutionQueries:\n" + + " [\n" + + " {\n" + + " queries: [ {input: org::dataeng::Widget[1]|org::dataeng::Widget.all()->filter(widget|$widget.widgetId == $input.widgetId)}\n" + + " ];\n" + + " precedence: 1;\n" + + " }\n" + + " ]\n" + + " }\n" + + " recordSources:\n" + + " [\n" + + " widget-kafka: {\n" + + " description: 'Kafka Acquisition source.';\n" + + " status: Development;\n" + + " recordService: {\n" + + " acquisitionProtocol: File #{\n" + + " fileType: JSON;\n" + + " filePath: '/download/day-file.json';\n" + + " headerLines: 0;\n" + + " connection: alloy::mastery::connection::HTTPConnection;\n" + + " }#;\n" + + " };\n" + + " trigger: Manual;\n" + + " }\n" + + " ]\n" + + "}\n\n" + + + "MasteryConnection alloy::mastery::connection::HTTPConnection\n" + + "{\n" + + " specification: HTTP #{\n" + + " url: 'https://some.url.com';\n" + + " proxy: {\n" + + " host: 'proxy.url.com';\n" + + " port: 85;\n" + + " };\n" + + " }#;\n" + + "}\n\n"; + + TestCompilationFromGrammar.TestCompilationFromGrammarTestSuite.test(model, "COMPILATION error at [8:1-38:1]: Error in 'alloy::mastery::WidgetMasterRecord': 'recordsKey' must be specified when file type is JSON"); + } + + @Test + public void testCompilationErrorWhenDeleteRuleHasDataProviderScope() + { + String model = "###Pure\n" + + "Class org::dataeng::Widget\n" + + "{\n" + + " widgetId: String[0..1];\n" + + "}\n\n" + + "###Mastery\n" + "MasterRecordDefinition alloy::mastery::WidgetMasterRecord" + + "\n" + + "{\n" + + " modelClass: org::dataeng::Widget;\n" + + " identityResolution: \n" + + " {\n" + + " resolutionQueries:\n" + + " [\n" + + " {\n" + + " queries: [ {input: org::dataeng::Widget[1]|org::dataeng::Widget.all()->filter(widget|$widget.widgetId == $input.widgetId)}\n" + + " ];\n" + + " precedence: 1;\n" + + " }\n" + + " ]\n" + + " }\n" + + " precedenceRules: [\n" + + " DeleteRule: {\n" + + " path: org::dataeng::Widget.widgetId;\n" + + " ruleScope: [\n" + + " DataProviderTypeScope {Exchange}\n" + + " ];\n" + + " }\n" + + "]\n" + + " recordSources:\n" + + " [\n" + + " widget-producer: {\n" + + " description: 'REST Acquisition source.';\n" + + " status: Development;\n" + + " recordService: {\n" + + " acquisitionProtocol: REST;\n" + + " };\n" + + " trigger: Manual;\n" + + " }\n" + + " ]\n" + + "}\n\n" + + + "ExchangeDataProvider alloy::mastery::dataprovider::LSE;\n\n\n"; + + TestCompilationFromGrammar.TestCompilationFromGrammarTestSuite.test(model, "COMPILATION error at [23:5-28:5]: DataProviderTypeScope is not allowed on DeleteRule"); + } + + @Test + public void testCompilationErrorWhenConditionalRuleHasScopeDefined() + { + String model = "###Pure\n" + + "Class org::dataeng::Widget\n" + + "{\n" + + " widgetId: String[0..1];\n" + + "}\n\n" + + "###Mastery\n" + "MasterRecordDefinition alloy::mastery::WidgetMasterRecord" + + "\n" + + "{\n" + + " modelClass: org::dataeng::Widget;\n" + + " identityResolution: \n" + + " {\n" + + " resolutionQueries:\n" + + " [\n" + + " {\n" + + " queries: [ {input: org::dataeng::Widget[1]|org::dataeng::Widget.all()->filter(widget|$widget.widgetId == $input.widgetId)}\n" + + " ];\n" + + " precedence: 1;\n" + + " }\n" + + " ]\n" + + " }\n" + + " precedenceRules: [\n" + + " ConditionalRule: {\n" + + " predicate: {incoming: org::dataeng::Widget[1],current: org::dataeng::Widget[1]|$incoming.widgetId == $current.widgetId};\n" + + " path: org::dataeng::Widget.widgetId;\n" + + " ruleScope: [\n" + + " DataProviderTypeScope {Exchange}\n" + + " ];\n" + + " }\n" + + "]\n" + + " recordSources:\n" + + " [\n" + + " widget-producer: {\n" + + " description: 'REST Acquisition source.';\n" + + " status: Development;\n" + + " recordService: {\n" + + " acquisitionProtocol: REST;\n" + + " };\n" + + " trigger: Manual;\n" + + " }\n" + + " ]\n" + + "}\n\n" + + + "ExchangeDataProvider alloy::mastery::dataprovider::LSE;\n\n\n"; + + TestCompilationFromGrammar.TestCompilationFromGrammarTestSuite.test(model, "COMPILATION error at [23:5-29:5]: ConditionalRule with ruleScope is currently unsupported"); + } + private void assertDataProviders(PureModel model) { PackageableElement lseDataProvider = model.getPackageableElement("alloy::mastery::dataprovider::LSE"); diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/mastery/acquisition/AcquisitionProtocol.java b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/mastery/acquisition/AcquisitionProtocol.java index 9648ef04e15..8dc98ee33d4 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/mastery/acquisition/AcquisitionProtocol.java +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/mastery/acquisition/AcquisitionProtocol.java @@ -14,6 +14,7 @@ package org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mastery.acquisition; +import com.fasterxml.jackson.annotation.JsonIgnore; import com.fasterxml.jackson.annotation.JsonTypeInfo; import org.finos.legend.engine.protocol.pure.v1.model.SourceInformation; @@ -26,4 +27,10 @@ public T accept(AcquisitionProtocolVisitor visitor) { return visitor.visit(this); } + + @JsonIgnore + public boolean isKafkaAcquisitionProtocol() + { + return false; + } } diff --git a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/mastery/acquisition/KafkaAcquisitionProtocol.java b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/mastery/acquisition/KafkaAcquisitionProtocol.java index 9238731b48c..ea3cfa86d62 100644 --- a/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/mastery/acquisition/KafkaAcquisitionProtocol.java +++ b/legend-engine-xts-mastery/legend-engine-xt-mastery-protocol/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/packageableElement/mastery/acquisition/KafkaAcquisitionProtocol.java @@ -14,12 +14,15 @@ package org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mastery.acquisition; -import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.mastery.connection.KafkaConnection; - public class KafkaAcquisitionProtocol extends AcquisitionProtocol { public String recordTag; public KafkaDataType kafkaDataType; public String connection; + @Override + public boolean isKafkaAcquisitionProtocol() + { + return true; + } } From 050cb60ffa013dc1a14cf125fb3b44e1cc301a56 Mon Sep 17 00:00:00 2001 From: Mohammed Ibrahim Date: Mon, 6 Nov 2023 12:41:00 -0500 Subject: [PATCH 78/80] BigQuery Activator: Sandbox (#2438) --- CODEOWNERS | 1 + .../pom.xml | 15 ++ .../collection/generation/TestExtensions.java | 10 +- .../legend-engine-server/pom.xml | 19 ++ .../finos/legend/engine/server/Server.java | 2 + .../finos/legend/engine/ide/PureIDELight.java | 1 + .../pom.xml | 203 ++++++++++++++++++ .../api/BigQueryFunctionError.java | 30 +++ .../api/BigQueryFunctionService.java | 98 +++++++++ .../deployment/BigQueryFunctionArtifact.java | 31 +++ ...ryFunctionArtifactGenerationExtension.java | 46 ++++ .../deployment/BigQueryFunctionContent.java | 31 +++ ...gQueryFunctionDeploymentConfiguration.java | 23 ++ .../BigQueryFunctionDeploymentManager.java | 98 +++++++++ .../BigQueryFunctionDeploymentResult.java | 34 +++ .../deployment/BigQueryFunctionGenerator.java | 60 ++++++ ...Activator.service.FunctionActivatorService | 1 + ...tion.extension.ArtifactGenerationExtension | 1 + .../bigqueryFunction/api/TestValidation.java | 47 ++++ .../pom.xml | 102 +++++++++ .../BigQueryFunctionCompilerExtension.java | 84 ++++++++ ...er.toPureGraph.extension.CompilerExtension | 1 + ...igQueryFunctionCompilationFromGrammar.java | 67 ++++++ .../pom.xml | 163 ++++++++++++++ .../antlr4/BigQueryFunctionLexerGrammar.g4 | 15 ++ .../antlr4/BigQueryFunctionParserGrammar.g4 | 67 ++++++ ...igQueryFunctionGrammarParserExtension.java | 70 ++++++ .../from/BigQueryFunctionTreeWalker.java | 140 ++++++++++++ .../to/BigQueryFunctionGrammarComposer.java | 90 ++++++++ ....from.extension.PureGrammarParserExtension | 1 + ....to.extension.PureGrammarComposerExtension | 1 + .../test/TestBigQueryFunctionRoundtrip.java | 46 ++++ .../grammar/test/TestBigQueryParsing.java | 74 +++++++ .../pom.xml | 46 ++++ .../metamodel/BigQueryFunction.java | 27 +++ ...gQueryFunctionDeploymentConfiguration.java | 28 +++ .../BigQueryFunctionProtocolExtension.java | 49 +++++ ...ol.pure.v1.extension.PureProtocolExtension | 1 + .../pom.xml | 156 ++++++++++++++ ...igQueryFunctionCodeRepositoryProvider.java | 28 +++ ...lesystem.repository.CodeRepositoryProvider | 1 + .../core_bigqueryfunction.definition.json | 9 + .../metamodel/metamodel.pure | 26 +++ legend-engine-xts-bigqueryFunction/pom.xml | 36 ++++ pom.xml | 31 +++ 45 files changed, 2109 insertions(+), 1 deletion(-) create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/pom.xml create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/api/BigQueryFunctionError.java create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/api/BigQueryFunctionService.java create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionArtifact.java create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionArtifactGenerationExtension.java create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionContent.java create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionDeploymentConfiguration.java create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionDeploymentManager.java create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionDeploymentResult.java create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionGenerator.java create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/resources/META-INF/services/org.finos.legend.engine.functionActivator.service.FunctionActivatorService create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.dsl.generation.extension.ArtifactGenerationExtension create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/test/java/org/finos/legend/engine/language/bigqueryFunction/api/TestValidation.java create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/pom.xml create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/src/main/java/org/finos/legend/engine/language/bigqueryFunction/compiler/toPureGraph/BigQueryFunctionCompilerExtension.java create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.compiler.toPureGraph.extension.CompilerExtension create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/src/test/java/org/finos/legend/engine/language/bigqueryFunction/compiler/toPureGraph/test/TestBigQueryFunctionCompilationFromGrammar.java create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/pom.xml create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/BigQueryFunctionLexerGrammar.g4 create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/BigQueryFunctionParserGrammar.g4 create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/java/org/finos/legend/engine/language/bigqueryFunction/grammar/from/BigQueryFunctionGrammarParserExtension.java create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/java/org/finos/legend/engine/language/bigqueryFunction/grammar/from/BigQueryFunctionTreeWalker.java create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/java/org/finos/legend/engine/language/bigqueryFunction/grammar/to/BigQueryFunctionGrammarComposer.java create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.grammar.from.extension.PureGrammarParserExtension create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.grammar.to.extension.PureGrammarComposerExtension create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/test/java/org/finos/legend/engine/language/bigqueryFunction/grammar/test/TestBigQueryFunctionRoundtrip.java create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/test/java/org/finos/legend/engine/language/bigqueryFunction/grammar/test/TestBigQueryParsing.java create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/pom.xml create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/src/main/java/org/finos/legend/engine/protocol/bigqueryFunction/metamodel/BigQueryFunction.java create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/src/main/java/org/finos/legend/engine/protocol/bigqueryFunction/metamodel/BigQueryFunctionDeploymentConfiguration.java create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/src/main/java/org/finos/legend/engine/protocol/bigqueryFunction/metamodel/BigQueryFunctionProtocolExtension.java create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/src/main/resources/META-INF/services/org.finos.legend.engine.protocol.pure.v1.extension.PureProtocolExtension create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/pom.xml create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/src/main/java/org/finos/legend/pure/code/core/CoreBigQueryFunctionCodeRepositoryProvider.java create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/src/main/resources/core_bigqueryfunction.definition.json create mode 100644 legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/src/main/resources/core_bigqueryfunction/metamodel/metamodel.pure create mode 100644 legend-engine-xts-bigqueryFunction/pom.xml diff --git a/CODEOWNERS b/CODEOWNERS index 13e84bd3873..a246f0d3e3f 100644 --- a/CODEOWNERS +++ b/CODEOWNERS @@ -8,6 +8,7 @@ /legend-engine-xts-analytics/** @finos/legend-engine-maintainers /legend-engine-xts-authentication/** @finos/legend-engine-maintainers /legend-engine-xts-avro/** @finos/legend-engine-maintainers +/legend-engine-xts-bigqueryFunction/** @finos/legend-engine-maintainers /legend-engine-xts-changetoken/** @finos/legend-engine-maintainers /legend-engine-xts-daml/** @finos/legend-engine-maintainers /legend-engine-xts-data-push/** @finos/legend-engine-maintainers diff --git a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml index c55dba62e78..8dbc3a47afc 100644 --- a/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml +++ b/legend-engine-config/legend-engine-extensions-collection-generation/pom.xml @@ -484,6 +484,21 @@ + + + org.finos.legend.engine + legend-engine-xt-bigqueryFunction-compiler + + + org.finos.legend.engine + legend-engine-xt-bigqueryFunction-grammar + + + org.finos.legend.engine + legend-engine-xt-bigqueryFunction-protocol + + + org.finos.legend.engine diff --git a/legend-engine-config/legend-engine-extensions-collection-generation/src/test/java/org/finos/legend/engine/extensions/collection/generation/TestExtensions.java b/legend-engine-config/legend-engine-extensions-collection-generation/src/test/java/org/finos/legend/engine/extensions/collection/generation/TestExtensions.java index 38f93c3cddd..c1865923cf6 100644 --- a/legend-engine-config/legend-engine-extensions-collection-generation/src/test/java/org/finos/legend/engine/extensions/collection/generation/TestExtensions.java +++ b/legend-engine-config/legend-engine-extensions-collection-generation/src/test/java/org/finos/legend/engine/extensions/collection/generation/TestExtensions.java @@ -28,6 +28,9 @@ import org.finos.legend.engine.generation.DataSpaceAnalyticsArtifactGenerationExtension; import org.finos.legend.engine.generation.OpenApiArtifactGenerationExtension; import org.finos.legend.engine.generation.SearchDocumentArtifactGenerationExtension; +import org.finos.legend.engine.language.bigqueryFunction.compiler.toPureGraph.BigQueryFunctionCompilerExtension; +import org.finos.legend.engine.language.bigqueryFunction.grammar.from.BigQueryFunctionGrammarParserExtension; +import org.finos.legend.engine.language.bigqueryFunction.grammar.to.BigQueryFunctionGrammarComposer; import org.finos.legend.engine.language.graphQL.grammar.integration.GraphQLGrammarParserExtension; import org.finos.legend.engine.language.graphQL.grammar.integration.GraphQLPureGrammarComposerExtension; import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; @@ -77,7 +80,7 @@ import org.finos.legend.engine.language.sql.grammar.integration.SQLGrammarParserExtension; import org.finos.legend.engine.language.sql.grammar.integration.SQLPureGrammarComposerExtension; import org.finos.legend.engine.language.stores.elasticsearch.v7.from.ElasticsearchGrammarParserExtension; -import org.finos.legend.engine.protocol.mongodb.schema.metamodel.MongoDBPureProtocolExtension; +import org.finos.legend.engine.protocol.bigqueryFunction.metamodel.BigQueryFunctionProtocolExtension; import org.finos.legend.pure.code.core.ElasticsearchPureCoreExtension; import org.finos.legend.engine.language.stores.elasticsearch.v7.to.ElasticsearchGrammarComposerExtension; import org.finos.legend.engine.protocol.pure.v1.extension.PureProtocolExtension; @@ -267,6 +270,7 @@ protected Iterable> getExpected .with(org.finos.legend.engine.protocol.pure.v1.CorePureProtocolExtension.class) .with(org.finos.legend.engine.protocol.pure.v1.DataSpaceProtocolExtension.class) .with(SnowflakeAppProtocolExtension.class) + .with(BigQueryFunctionProtocolExtension.class) .with(org.finos.legend.engine.protocol.pure.v1.DiagramProtocolExtension.class) .with(org.finos.legend.engine.protocol.pure.v1.GenerationProtocolExtension.class) .with(org.finos.legend.engine.protocol.pure.v1.PersistenceProtocolExtension.class) @@ -311,6 +315,7 @@ protected Iterable> getExp .with(CorePureGrammarParser.class) .with(DataSpaceParserExtension.class) .with(SnowflakeAppGrammarParserExtension.class) + .with(BigQueryFunctionGrammarParserExtension.class) .with(DiagramParserExtension.class) .with(ExternalFormatGrammarParserExtension.class) .with(GenerationParserExtension.class) @@ -337,6 +342,7 @@ protected Iterable> getE .with(CorePureGrammarComposer.class) .with(DataSpaceGrammarComposerExtension.class) .with(SnowflakeAppGrammarComposer.class) + .with(BigQueryFunctionGrammarComposer.class) .with(DiagramGrammarComposerExtension.class) .with(ExternalFormatGrammarComposerExtension.class) .with(GenerationGrammarComposerExtension.class) @@ -368,6 +374,7 @@ protected Iterable> getExpectedComp return Lists.mutable.>empty() .with(org.finos.legend.engine.language.pure.compiler.toPureGraph.DiagramCompilerExtension.class) .with(SnowflakeAppCompilerExtension.class) + .with(BigQueryFunctionCompilerExtension.class) .with(org.finos.legend.engine.language.pure.compiler.toPureGraph.DataSpaceCompilerExtension.class) .with(org.finos.legend.engine.language.pure.compiler.toPureGraph.TextCompilerExtension.class) .with(org.finos.legend.engine.language.pure.compiler.toPureGraph.CoreCompilerExtension.class) @@ -519,6 +526,7 @@ protected Iterable getExpectedCodeRepositories() .with("core_servicestore") .with("core_authentication") .with("core_snowflakeapp") + .with("core_bigqueryfunction") .with("core_text_metamodel") .with("core_external_language_java") .with("core_java_platform_binding") diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index db6965216d9..05dd0cc7f1d 100644 --- a/legend-engine-config/legend-engine-server/pom.xml +++ b/legend-engine-config/legend-engine-server/pom.xml @@ -194,6 +194,10 @@ org.finos.legend.engine legend-engine-xt-functionActivator-protocol + + org.finos.legend.engine + legend-engine-xt-bigqueryFunction-protocol + org.finos.legend.engine legend-engine-xt-artifact-generation-api @@ -341,6 +345,21 @@ org.finos.legend.engine legend-engine-xt-snowflakeApp-generator + + org.finos.legend.engine + legend-engine-xt-bigqueryFunction-compiler + runtime + + + org.finos.legend.engine + legend-engine-xt-bigqueryFunction-grammar + runtime + + + org.finos.legend.engine + legend-engine-xt-bigqueryFunction-api + runtime + org.finos.legend.engine legend-engine-xt-hostedService-compiler diff --git a/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java b/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java index d13bb16292c..95db1c44e09 100644 --- a/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java +++ b/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java @@ -123,6 +123,7 @@ import org.finos.legend.engine.plan.execution.stores.service.plugin.ServiceStoreExecutor; import org.finos.legend.engine.plan.execution.stores.service.plugin.ServiceStoreExecutorBuilder; import org.finos.legend.engine.plan.generation.extension.PlanGeneratorExtension; +import org.finos.legend.engine.protocol.bigqueryFunction.metamodel.BigQueryFunctionDeploymentConfiguration; import org.finos.legend.engine.protocol.pure.v1.PureProtocolObjectMapperFactory; import org.finos.legend.engine.protocol.pure.v1.model.PureProtocol; import org.finos.legend.engine.pure.code.core.PureCoreExtensionLoader; @@ -219,6 +220,7 @@ protected SwaggerBundleConfiguration getSwaggerBundleConfiguration( bootstrap.getObjectMapper().registerSubtypes(new NamedType(LegendDefaultDatabaseAuthenticationFlowProviderConfiguration.class, "legendDefault")); bootstrap.getObjectMapper().registerSubtypes(new NamedType(HostedServiceDeploymentConfiguration.class, "hostedServiceConfig")); bootstrap.getObjectMapper().registerSubtypes(new NamedType(SnowflakeAppDeploymentConfiguration.class, "snowflakeAppConfig")); + bootstrap.getObjectMapper().registerSubtypes(new NamedType(BigQueryFunctionDeploymentConfiguration.class, "snowflakeAppConfig")); } public CredentialProviderProvider configureCredentialProviders(List vaultConfigurations) diff --git a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/src/main/java/org/finos/legend/engine/ide/PureIDELight.java b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/src/main/java/org/finos/legend/engine/ide/PureIDELight.java index 0008f70baee..5a20a181b37 100644 --- a/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/src/main/java/org/finos/legend/engine/ide/PureIDELight.java +++ b/legend-engine-pure/legend-engine-pure-ide/legend-engine-pure-ide-light/src/main/java/org/finos/legend/engine/ide/PureIDELight.java @@ -45,6 +45,7 @@ protected MutableList buildRepositories(SourceLocationCon .with(this.buildCore("legend-engine-xts-mastery/legend-engine-xt-mastery-pure", "mastery")) .with(this.buildCore("legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-pure", "function_activator")) .with(this.buildCore("legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-pure", "snowflakeapp")) + .with(this.buildCore("legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure", "bigqueryfunction")) .with(this.buildCore("legend-engine-xts-hostedService/legend-engine-xt-hostedService-pure", "hostedservice")) .with(this.buildCore("legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-pure", "relational")) .with(this.buildCore("legend-engine-xts-relationalStore/legend-engine-xt-relationalStore-generation/legend-engine-xt-relationalStore-javaPlatformBinding-pure", "relational-java-platform-binding")) diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/pom.xml b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/pom.xml new file mode 100644 index 00000000000..55bf430025a --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/pom.xml @@ -0,0 +1,203 @@ + + + + + org.finos.legend.engine + legend-engine-xts-bigqueryFunction + 4.34.1-SNAPSHOT + + 4.0.0 + + legend-engine-xt-bigqueryFunction-api + jar + Legend Engine - XT - BigQuery Function - API + + + + + org.finos.legend.pure + legend-pure-m3-core + + + + + + org.finos.legend.engine + legend-engine-language-pure-compiler + + + org.finos.legend.engine + legend-engine-language-pure-modelManager + + + org.finos.legend.engine + legend-engine-pure-code-compiled-core + + + org.finos.legend.engine + legend-engine-pure-code-core-extension + + + org.finos.legend.engine + legend-engine-executionPlan-generation + + + org.finos.legend.engine + legend-engine-shared-core + + + org.finos.legend.engine + legend-engine-xt-functionActivator-pure + + + org.finos.legend.engine + legend-engine-protocol-pure + + + org.finos.legend.engine + legend-engine-xt-functionActivator-api + + + org.finos.legend.engine + legend-engine-xt-relationalStore-pure + + + org.finos.legend.engine + legend-engine-xt-relationalStore-bigquery-pure + + + org.finos.legend.engine + legend-engine-xt-relationalStore-protocol + + + + org.finos.legend.engine + legend-engine-xt-bigqueryFunction-pure + + + org.finos.legend.engine + legend-engine-xt-bigqueryFunction-protocol + + + org.finos.legend.engine + legend-engine-xt-bigqueryFunction-compiler + runtime + + + org.finos.legend.engine + legend-engine-xt-bigqueryFunction-grammar + runtime + + + org.finos.legend.engine + legend-engine-language-pure-dsl-generation + + + + + javax.ws.rs + javax.ws.rs-api + + + com.fasterxml.jackson.core + jackson-core + + + com.fasterxml.jackson.core + jackson-databind + + + + + com.google.cloud + google-cloud-bigquery + 2.29.0 + + + org.checkerframework + checker-qual + + + com.google.errorprone + error_prone_annotations + + + javax.annotation + javax.annotation-api + + + com.google.j2objc + j2objc-annotations + + + commons-logging + commons-logging + + + com.fasterxml.jackson.datatype + jackson-datatype-jsr310 + + + org.apache.arrow + arrow-format + + + + + + + + org.eclipse.collections + eclipse-collections-api + + + org.eclipse.collections + eclipse-collections + + + + + + org.slf4j + slf4j-api + + + + + + junit + junit + test + + + org.finos.legend.engine + legend-engine-xt-relationalStore-grammar + test + + + org.finos.legend.engine + legend-engine-configuration + test + + + org.glassfish.jersey.core + jersey-common + test + + + + \ No newline at end of file diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/api/BigQueryFunctionError.java b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/api/BigQueryFunctionError.java new file mode 100644 index 00000000000..d167c28bd59 --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/api/BigQueryFunctionError.java @@ -0,0 +1,30 @@ +// Copyright 2023 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.bigqueryFunction.api; + +import org.eclipse.collections.api.factory.Lists; +import org.eclipse.collections.api.list.ImmutableList; +import org.finos.legend.engine.functionActivator.service.FunctionActivatorError; + +public class BigQueryFunctionError extends FunctionActivatorError +{ + public ImmutableList foundSQLs; + + public BigQueryFunctionError(String message, Iterable foundSQLs) + { + super(message); + this.foundSQLs = Lists.immutable.withAll(foundSQLs); + } +} diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/api/BigQueryFunctionService.java b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/api/BigQueryFunctionService.java new file mode 100644 index 00000000000..56f786ad33d --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/api/BigQueryFunctionService.java @@ -0,0 +1,98 @@ +// Copyright 2023 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.bigqueryFunction.api; + +import org.eclipse.collections.api.RichIterable; +import org.eclipse.collections.api.block.function.Function; +import org.eclipse.collections.api.list.MutableList; +import org.eclipse.collections.impl.factory.Lists; +import org.finos.legend.engine.functionActivator.api.output.FunctionActivatorInfo; +import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorDeploymentConfiguration; +import org.finos.legend.engine.functionActivator.service.FunctionActivatorError; +import org.finos.legend.engine.functionActivator.service.FunctionActivatorService; +import org.finos.legend.engine.language.bigqueryFunction.deployment.*; +import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; +import org.finos.legend.engine.protocol.bigqueryFunction.metamodel.BigQueryFunctionProtocolExtension; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContext; +import org.finos.legend.pure.generated.*; +import org.finos.legend.engine.shared.core.identity.Identity; + +import java.util.List; + +public class BigQueryFunctionService implements FunctionActivatorService +{ + private final BigQueryFunctionDeploymentManager bigQueryFunctionDeploymentManager; + + public BigQueryFunctionService() + { + this.bigQueryFunctionDeploymentManager = new BigQueryFunctionDeploymentManager(); + } + + @Override + public FunctionActivatorInfo info(PureModel pureModel, String version) + { + return new FunctionActivatorInfo( + "BigQuery Function", + "Create a BigQuery Function that can activate in BigQuery.", + "meta::protocols::pure::" + version + "::metamodel::function::activator::bigQueryFunction::BigQueryFunction", + BigQueryFunctionProtocolExtension.packageJSONType, + pureModel); + } + + @Override + public boolean supports(Root_meta_external_function_activator_FunctionActivator functionActivator) + { + return functionActivator instanceof Root_meta_external_function_activator_bigQueryFunction_BigQueryFunction; + } + + @Override + public MutableList validate(Identity identity, PureModel pureModel, Root_meta_external_function_activator_bigQueryFunction_BigQueryFunction activator, PureModelContext inputModel, Function> routerExtensions) + { + BigQueryFunctionArtifact artifact = BigQueryFunctionGenerator.generateArtifact(pureModel, activator, routerExtensions); + return this.validateArtifact(artifact); + } + + @Override + public BigQueryFunctionDeploymentResult publishToSandbox(Identity identity, PureModel pureModel, Root_meta_external_function_activator_bigQueryFunction_BigQueryFunction activator, PureModelContext inputModel, List runtimeConfigurations, Function> routerExtensions) + { + BigQueryFunctionArtifact artifact = BigQueryFunctionGenerator.generateArtifact(pureModel, activator, routerExtensions); + MutableList validationErrors = this.validateArtifact(artifact); + + Root_meta_external_function_activator_bigQueryFunction_BigQueryFunctionDeploymentConfiguration deploymentConfiguration = ((Root_meta_external_function_activator_bigQueryFunction_BigQueryFunctionDeploymentConfiguration) activator._activationConfiguration()); + return validationErrors.notEmpty() ? + new BigQueryFunctionDeploymentResult(validationErrors.collect(e -> e.message)) : + this.bigQueryFunctionDeploymentManager.deployImpl(artifact, deploymentConfiguration); + } + + @Override + public BigQueryFunctionArtifact renderArtifact(PureModel pureModel, Root_meta_external_function_activator_bigQueryFunction_BigQueryFunction activator, PureModelContext inputModel, String clientVersion, Function> routerExtensions) + { + return BigQueryFunctionGenerator.generateArtifact(pureModel, activator, routerExtensions); + } + + @Override + public List selectConfig(List configurations) + { + return Lists.mutable.withAll(configurations).select(e -> e instanceof BigQueryFunctionDeploymentConfiguration).collect(e -> (BigQueryFunctionDeploymentConfiguration) e); + } + + private MutableList validateArtifact(BigQueryFunctionArtifact artifact) + { + int size = ((BigQueryFunctionContent)artifact.content).sqlExpressions.size(); + return size == 1 ? + Lists.fixedSize.empty() : + Lists.fixedSize.with(new BigQueryFunctionError("BigQuery Function can't be used with a plan containing '" + size + "' SQL expressions", ((BigQueryFunctionContent)artifact.content).sqlExpressions)); + } +} diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionArtifact.java b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionArtifact.java new file mode 100644 index 00000000000..ef867daac1e --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionArtifact.java @@ -0,0 +1,31 @@ +// Copyright 2023 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.bigqueryFunction.deployment; + +import org.eclipse.collections.api.list.MutableList; +import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorArtifact; + +public class BigQueryFunctionArtifact extends FunctionActivatorArtifact +{ + public String sourceProjectId; + public String sourceDefaultDataset; + + public BigQueryFunctionArtifact(String name, MutableList sqlExpressions, String sourceProjectId, String sourceDefaultDataset) + { + this.content = new BigQueryFunctionContent(name, sqlExpressions); + this.sourceProjectId = sourceProjectId; + this.sourceDefaultDataset = sourceDefaultDataset; + } +} diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionArtifactGenerationExtension.java b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionArtifactGenerationExtension.java new file mode 100644 index 00000000000..0dd3ca8877d --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionArtifactGenerationExtension.java @@ -0,0 +1,46 @@ +// Copyright 2023 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.bigqueryFunction.deployment; + +import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; +import org.finos.legend.engine.language.pure.dsl.generation.extension.Artifact; +import org.finos.legend.engine.language.pure.dsl.generation.extension.ArtifactGenerationExtension; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; +import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.PackageableElement; + +import java.util.List; + +public class BigQueryFunctionArtifactGenerationExtension implements ArtifactGenerationExtension +{ + private static final String ROOT_PATH = "bigQueryFunction"; + + @Override + public String getKey() + { + return ROOT_PATH; + } + + @Override + public boolean canGenerate(PackageableElement element) + { + return false; + } + + @Override + public List generate(PackageableElement element, PureModel pureModel, PureModelContextData data, String clientVersion) + { + return null; + } +} diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionContent.java b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionContent.java new file mode 100644 index 00000000000..13c8aa1aa4c --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionContent.java @@ -0,0 +1,31 @@ +// Copyright 2023 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.bigqueryFunction.deployment; + +import org.eclipse.collections.api.list.MutableList; +import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorDeploymentContent; + +public class BigQueryFunctionContent extends FunctionActivatorDeploymentContent +{ + public final MutableList sqlExpressions; + + public final String functionName; + + public BigQueryFunctionContent(String name, MutableList sqlExpressions) + { + this.functionName = name; + this.sqlExpressions = sqlExpressions; + } +} diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionDeploymentConfiguration.java b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionDeploymentConfiguration.java new file mode 100644 index 00000000000..8ca43c04e1c --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionDeploymentConfiguration.java @@ -0,0 +1,23 @@ +// Copyright 2023 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.bigqueryFunction.deployment; + +import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorDeploymentConfiguration; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.store.relational.connection.RelationalDatabaseConnection; + +public class BigQueryFunctionDeploymentConfiguration extends FunctionActivatorDeploymentConfiguration +{ + RelationalDatabaseConnection connection; +} diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionDeploymentManager.java b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionDeploymentManager.java new file mode 100644 index 00000000000..bcd5834edb7 --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionDeploymentManager.java @@ -0,0 +1,98 @@ +// Copyright 2023 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.bigqueryFunction.deployment; + +import com.google.cloud.bigquery.BigQuery; +import com.google.cloud.bigquery.BigQueryOptions; +import com.google.cloud.bigquery.RoutineId; +import com.google.cloud.bigquery.RoutineInfo; +import org.eclipse.collections.api.factory.Lists; +import org.eclipse.collections.api.list.MutableList; +import org.eclipse.collections.impl.utility.Iterate; +import org.finos.legend.engine.functionActivator.deployment.DeploymentManager; +import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorArtifact; +import org.finos.legend.engine.shared.core.identity.Identity; +import org.finos.legend.pure.generated.Root_meta_external_function_activator_bigQueryFunction_BigQueryFunctionDeploymentConfiguration; +import org.finos.legend.pure.generated.Root_meta_pure_alloy_connections_alloy_specification_BigQueryDatasourceSpecification; +import org.pac4j.core.profile.CommonProfile; +import org.slf4j.Logger; +import org.slf4j.LoggerFactory; + +import java.util.List; + +/** + * These deployment functions assume that the artifact has already been validated. + */ +public class BigQueryFunctionDeploymentManager implements DeploymentManager +{ + private static final Logger LOGGER = LoggerFactory.getLogger(BigQueryFunctionDeploymentManager.class); + + @Override + public boolean canDeploy(FunctionActivatorArtifact activatorArtifact) + { + return activatorArtifact instanceof BigQueryFunctionArtifact; + } + + @Override + public BigQueryFunctionDeploymentResult deploy(Identity identity, BigQueryFunctionArtifact artifact) + { + return new BigQueryFunctionDeploymentResult("", false); + } + + @Override + public BigQueryFunctionDeploymentResult deploy(Identity identity, BigQueryFunctionArtifact artifact, List availableRuntimeConfigurations) + { + return new BigQueryFunctionDeploymentResult("", false); + } + + public BigQueryFunctionDeploymentResult deployImpl(BigQueryFunctionArtifact artifact, Root_meta_external_function_activator_bigQueryFunction_BigQueryFunctionDeploymentConfiguration deploymentConfiguration) + { + LOGGER.info("Starting deployment"); + BigQueryFunctionDeploymentResult result; + try + { + Root_meta_pure_alloy_connections_alloy_specification_BigQueryDatasourceSpecification datasourceSpecification = (Root_meta_pure_alloy_connections_alloy_specification_BigQueryDatasourceSpecification) deploymentConfiguration._target()._datasourceSpecification(); + String dataset = datasourceSpecification._defaultDataset(); + String projectId = datasourceSpecification._projectId(); + + BigQueryFunctionContent functionContent = (BigQueryFunctionContent) artifact.content; + BigQuery bigQuery = BigQueryOptions.newBuilder().setProjectId(projectId).build().getService(); + RoutineId routineId = RoutineId.of(projectId, dataset, functionContent.functionName); + + String sqlExpression = Iterate.getOnly(functionContent.sqlExpressions); + String sourceProjectId = artifact.sourceProjectId; + String sourceDefaultDataset = artifact.sourceDefaultDataset; + // TODO: Include projectId in core relational BigQuery SQL statement construction + String fullyQualifiedSqlExpression = sqlExpression.replace(sourceDefaultDataset, String.format("`%s.%s`", sourceProjectId, sourceDefaultDataset)); + RoutineInfo routineInfo = + RoutineInfo + .newBuilder(routineId) + .setRoutineType("TABLE_VALUED_FUNCTION") + .setLanguage("SQL") + .setBody(fullyQualifiedSqlExpression) + .build(); + bigQuery.create(routineInfo); + + LOGGER.info("Completed deployment successfully"); + result = new BigQueryFunctionDeploymentResult(functionContent.functionName, true); + } + catch (Exception e) + { + LOGGER.info("Completed deployment with error"); + result = new BigQueryFunctionDeploymentResult(Lists.mutable.with(e.getMessage())); + } + return result; + } +} diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionDeploymentResult.java b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionDeploymentResult.java new file mode 100644 index 00000000000..fcc83a9693d --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionDeploymentResult.java @@ -0,0 +1,34 @@ +// Copyright 2023 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.bigqueryFunction.deployment; + +import org.eclipse.collections.api.list.MutableList; +import org.finos.legend.engine.functionActivator.deployment.DeploymentResult; + +public class BigQueryFunctionDeploymentResult extends DeploymentResult +{ + public MutableList errors; + + public BigQueryFunctionDeploymentResult(String activatorIdentifier, boolean result) + { + this.successful = result; + this.activatorIdentifier = activatorIdentifier; + } + + public BigQueryFunctionDeploymentResult(MutableList errors) + { + this.errors = errors; + } +} diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionGenerator.java b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionGenerator.java new file mode 100644 index 00000000000..3e917dcd558 --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/java/org/finos/legend/engine/language/bigqueryFunction/deployment/BigQueryFunctionGenerator.java @@ -0,0 +1,60 @@ +// Copyright 2023 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.bigqueryFunction.deployment; + +import org.eclipse.collections.api.RichIterable; +import org.eclipse.collections.api.block.function.Function; +import org.eclipse.collections.api.factory.Lists; +import org.eclipse.collections.api.tuple.Pair; +import org.eclipse.collections.impl.tuple.Tuples; +import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; +import org.finos.legend.engine.plan.generation.PlanGenerator; +import org.finos.legend.engine.plan.platform.PlanPlatform; +import org.finos.legend.pure.generated.*; +import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.FunctionDefinition; +import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.PackageableFunction; + +public class BigQueryFunctionGenerator +{ + public static BigQueryFunctionArtifact generateArtifact(PureModel pureModel, Root_meta_external_function_activator_bigQueryFunction_BigQueryFunction activator, Function> routerExtensions) + { + Pair> artifactDetails = extractArtifactDetails(pureModel, activator, routerExtensions); + Root_meta_pure_alloy_connections_alloy_specification_BigQueryDatasourceSpecification bigQueryDatasourceSpecification = artifactDetails.getOne(); + RichIterable sqlExpressions = artifactDetails.getTwo(); + return new BigQueryFunctionArtifact(activator._functionName(), Lists.mutable.withAll(sqlExpressions), bigQueryDatasourceSpecification._projectId(), bigQueryDatasourceSpecification._defaultDataset()); + } + + private static Pair> extractArtifactDetails(PureModel pureModel, Root_meta_external_function_activator_bigQueryFunction_BigQueryFunction activator, Function> routerExtensions) + { + PackageableFunction function = activator._function(); + Root_meta_pure_executionPlan_ExecutionPlan executionPlan = PlanGenerator.generateExecutionPlanAsPure((FunctionDefinition) function, null, null, null, pureModel, PlanPlatform.JAVA, null, routerExtensions.apply(pureModel)); + RichIterable sqlExecutionNodes = + collectAllNodes(executionPlan._rootExecutionNode()).selectInstancesOf(Root_meta_relational_mapping_SQLExecutionNode.class); + + Root_meta_external_store_relational_runtime_RelationalDatabaseConnection relationalDatabaseConnection = (Root_meta_external_store_relational_runtime_RelationalDatabaseConnection) sqlExecutionNodes.getAny()._connection(); + Root_meta_pure_alloy_connections_alloy_specification_BigQueryDatasourceSpecification bigQueryDatasourceSpecification = ((Root_meta_pure_alloy_connections_alloy_specification_BigQueryDatasourceSpecification) relationalDatabaseConnection._datasourceSpecification()); + + return Tuples.pair( + bigQueryDatasourceSpecification, + sqlExecutionNodes + .collect(Root_meta_relational_mapping_SQLExecutionNode::_sqlQuery) + .select(x -> !x.toLowerCase().startsWith("alter"))); + } + + private static RichIterable collectAllNodes(Root_meta_pure_executionPlan_ExecutionNode node) + { + return Lists.mutable.with(node).withAll(node._executionNodes().flatCollect(BigQueryFunctionGenerator::collectAllNodes)); + } +} diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/resources/META-INF/services/org.finos.legend.engine.functionActivator.service.FunctionActivatorService b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/resources/META-INF/services/org.finos.legend.engine.functionActivator.service.FunctionActivatorService new file mode 100644 index 00000000000..6fafe23bd24 --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/resources/META-INF/services/org.finos.legend.engine.functionActivator.service.FunctionActivatorService @@ -0,0 +1 @@ +org.finos.legend.engine.language.bigqueryFunction.api.BigQueryFunctionService \ No newline at end of file diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.dsl.generation.extension.ArtifactGenerationExtension b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.dsl.generation.extension.ArtifactGenerationExtension new file mode 100644 index 00000000000..5d10f14211b --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.dsl.generation.extension.ArtifactGenerationExtension @@ -0,0 +1 @@ +org.finos.legend.engine.language.bigqueryFunction.deployment.BigQueryFunctionArtifactGenerationExtension diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/test/java/org/finos/legend/engine/language/bigqueryFunction/api/TestValidation.java b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/test/java/org/finos/legend/engine/language/bigqueryFunction/api/TestValidation.java new file mode 100644 index 00000000000..9bcf6f77dd9 --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/src/test/java/org/finos/legend/engine/language/bigqueryFunction/api/TestValidation.java @@ -0,0 +1,47 @@ +// Copyright 2023 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.bigqueryFunction.api; + +import com.fasterxml.jackson.core.type.TypeReference; +import org.finos.legend.engine.functionActivator.api.FunctionActivatorAPI; +import org.finos.legend.engine.functionActivator.api.output.FunctionActivatorInfo; +import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; +import org.finos.legend.engine.language.pure.modelManager.ModelManager; +import org.finos.legend.engine.pure.code.core.PureCoreExtensionLoader; +import org.finos.legend.engine.shared.core.ObjectMapperFactory; +import org.finos.legend.engine.shared.core.deployment.DeploymentMode; +import org.junit.Assert; +import org.junit.Test; + +import javax.ws.rs.core.Response; +import java.util.List; + +public class TestValidation +{ + private final FunctionActivatorAPI api = new FunctionActivatorAPI(new ModelManager(DeploymentMode.TEST), (PureModel pureModel) -> PureCoreExtensionLoader.extensions().flatCollect(e -> e.extraPureCoreExtensions(pureModel.getExecutionSupport()))); + + @Test + public void testList() throws Exception + { + Response response = api.list(null); + System.out.println(response.getEntity().toString()); + List info = ObjectMapperFactory.getNewStandardObjectMapperWithPureProtocolExtensionSupports().readValue(response.getEntity().toString(), new TypeReference>(){}); + Assert.assertEquals(1, info.size()); + Assert.assertEquals("BigQuery Function", info.get(0).name); + Assert.assertEquals("Create a BigQuery Function that can activate in BigQuery.", info.get(0).description); + Assert.assertEquals("meta::protocols::pure::vX_X_X::metamodel::function::activator::bigQueryFunction::BigQueryFunction", info.get(0).configuration.topElement); + Assert.assertEquals(8, info.get(0).configuration.model.size()); + } +} diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/pom.xml b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/pom.xml new file mode 100644 index 00000000000..7d72a13dd4a --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/pom.xml @@ -0,0 +1,102 @@ + + + + + org.finos.legend.engine + legend-engine-xts-bigqueryFunction + 4.34.1-SNAPSHOT + + 4.0.0 + + legend-engine-xt-bigqueryFunction-compiler + jar + Legend Engine - XT - BigQuery Function - Compiler + + + + + + org.finos.legend.pure + legend-pure-m3-core + + + + + + org.finos.legend.engine + legend-engine-language-pure-compiler + + + org.finos.legend.engine + legend-engine-xt-functionActivator-pure + + + org.finos.legend.engine + legend-engine-protocol-pure + + + org.finos.legend.engine + legend-engine-xt-relationalStore-pure + + + org.finos.legend.engine + legend-engine-xt-bigqueryFunction-pure + + + org.finos.legend.engine + legend-engine-xt-bigqueryFunction-protocol + + + + + + org.eclipse.collections + eclipse-collections-api + + + + + + junit + junit + test + + + org.finos.legend.engine + legend-engine-xt-bigqueryFunction-grammar + test + + + org.finos.legend.engine + legend-engine-language-pure-grammar + 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 + + + + \ No newline at end of file diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/src/main/java/org/finos/legend/engine/language/bigqueryFunction/compiler/toPureGraph/BigQueryFunctionCompilerExtension.java b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/src/main/java/org/finos/legend/engine/language/bigqueryFunction/compiler/toPureGraph/BigQueryFunctionCompilerExtension.java new file mode 100644 index 00000000000..50d127e75b1 --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/src/main/java/org/finos/legend/engine/language/bigqueryFunction/compiler/toPureGraph/BigQueryFunctionCompilerExtension.java @@ -0,0 +1,84 @@ +// Copyright 2023 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.bigqueryFunction.compiler.toPureGraph; + +import org.eclipse.collections.api.factory.Lists; +import org.finos.legend.engine.code.core.CoreFunctionActivatorCodeRepositoryProvider; +import org.finos.legend.engine.language.pure.compiler.toPureGraph.CompileContext; +import org.finos.legend.engine.language.pure.compiler.toPureGraph.extension.CompilerExtension; +import org.finos.legend.engine.language.pure.compiler.toPureGraph.extension.Processor; +import org.finos.legend.engine.protocol.bigqueryFunction.metamodel.BigQueryFunction; +import org.finos.legend.engine.protocol.bigqueryFunction.metamodel.BigQueryFunctionDeploymentConfiguration; +import org.finos.legend.pure.generated.*; +import org.finos.legend.pure.m3.coreinstance.meta.pure.metamodel.function.PackageableFunction; +import org.finos.legend.pure.m3.navigation.function.FunctionDescriptor; + +import java.util.Collections; + +public class BigQueryFunctionCompilerExtension implements CompilerExtension +{ + // Here only for dependency check error ... + CoreFunctionActivatorCodeRepositoryProvider forDependencies; + + @Override + public CompilerExtension build() + { + return new BigQueryFunctionCompilerExtension(); + } + + @Override + public Iterable> getExtraProcessors() + { + return Lists.fixedSize.of( + Processor.newProcessor( + BigQueryFunction.class, + Lists.fixedSize.with(BigQueryFunctionDeploymentConfiguration.class), + this::buildBigQueryFunction + ), + Processor.newProcessor( + BigQueryFunctionDeploymentConfiguration.class, + this::buildDeploymentConfig + ) + ); + } + + public Root_meta_external_function_activator_bigQueryFunction_BigQueryFunction buildBigQueryFunction(BigQueryFunction bigQueryFunction, CompileContext context) + { + try + { + PackageableFunction func = (PackageableFunction) context.resolvePackageableElement(FunctionDescriptor.functionDescriptorToId(bigQueryFunction.function), bigQueryFunction.sourceInformation); + return new Root_meta_external_function_activator_bigQueryFunction_BigQueryFunction_Impl( + bigQueryFunction.name, + null, + context.pureModel.getClass("meta::external::function::activator::bigQueryFunction::BigQueryFunction")) + ._functionName(bigQueryFunction.functionName) + ._function(func) + ._description(bigQueryFunction.description) + ._owner(bigQueryFunction.owner) + ._activationConfiguration(bigQueryFunction.activationConfiguration != null ? buildDeploymentConfig((BigQueryFunctionDeploymentConfiguration) bigQueryFunction.activationConfiguration, context) : null); + } + catch (Exception e) + { + throw new RuntimeException(e); + } + } + + public Root_meta_external_function_activator_bigQueryFunction_BigQueryFunctionDeploymentConfiguration buildDeploymentConfig(BigQueryFunctionDeploymentConfiguration configuration, CompileContext context) + { + return new Root_meta_external_function_activator_bigQueryFunction_BigQueryFunctionDeploymentConfiguration_Impl("") + ._target((Root_meta_external_store_relational_runtime_RelationalDatabaseConnection) context.resolveConnection(configuration.activationConnection.connection, configuration.sourceInformation)); + // ._stage(context.pureModel.getEnumValue("meta::external::function::activator::DeploymentStage", configuration.stage.name())); + } +} diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.compiler.toPureGraph.extension.CompilerExtension b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.compiler.toPureGraph.extension.CompilerExtension new file mode 100644 index 00000000000..8441e6e90c5 --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.compiler.toPureGraph.extension.CompilerExtension @@ -0,0 +1 @@ +org.finos.legend.engine.language.bigqueryFunction.compiler.toPureGraph.BigQueryFunctionCompilerExtension \ No newline at end of file diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/src/test/java/org/finos/legend/engine/language/bigqueryFunction/compiler/toPureGraph/test/TestBigQueryFunctionCompilationFromGrammar.java b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/src/test/java/org/finos/legend/engine/language/bigqueryFunction/compiler/toPureGraph/test/TestBigQueryFunctionCompilationFromGrammar.java new file mode 100644 index 00000000000..413445fd0f6 --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-compiler/src/test/java/org/finos/legend/engine/language/bigqueryFunction/compiler/toPureGraph/test/TestBigQueryFunctionCompilationFromGrammar.java @@ -0,0 +1,67 @@ +// Copyright 2023 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.bigqueryFunction.compiler.toPureGraph.test; + +import org.finos.legend.engine.language.pure.compiler.test.TestCompilationFromGrammar; +import org.junit.Test; + +public class TestBigQueryFunctionCompilationFromGrammar extends TestCompilationFromGrammar.TestCompilationFromGrammarTestSuite +{ + @Override + public String getDuplicatedElementTestCode() + { + return "Class anything::Name {}\n" + + "###Mapping\n" + + "Mapping anything::somethingelse ()\n" + + "###BigQuery\n" + + "BigQueryFunction anything::Name\n" + + "{" + + " functionName : 'name';\n" + + " function : a::f():String[1];" + + "}\n"; + } + + @Override + public String getDuplicatedElementTestExpectedErrorMessage() + { + return "COMPILATION error at [5:1-7:32]: Duplicated element 'anything::Name'"; + } + + @Test + public void testHappyPath() + { + TestCompilationFromGrammar.TestCompilationFromGrammarTestSuite.test( + "function a::f():String[1]{'ok';}\n" + + "###BigQuery\n" + + "BigQueryFunction app::pack::MyApp\n" + + "{" + + " functionName : 'name';\n" + + " function : a::f():String[1];" + + "}\n", null); + } + + @Test + public void testFunctionError() + { + TestCompilationFromGrammar.TestCompilationFromGrammarTestSuite.test( + "function a::f():String[1]{'ok';}\n" + + "###BigQuery\n" + + "BigQueryFunction app::pack::MyApp\n" + + "{" + + " functionName : 'name';\n" + + " function : a::fz():String[1];" + + "}\n", " at [3:1-5:33]: Error in 'app::pack::MyApp': org.finos.legend.engine.shared.core.operational.errorManagement.EngineException: Can't find the packageable element 'a::fz__String_1_'"); + } +} diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/pom.xml b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/pom.xml new file mode 100644 index 00000000000..e49ad97cdac --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/pom.xml @@ -0,0 +1,163 @@ + + + + + org.finos.legend.engine + legend-engine-xts-bigqueryFunction + 4.34.1-SNAPSHOT + + 4.0.0 + + legend-engine-xt-bigqueryFunction-grammar + jar + Legend Engine - XT - BigQuery Function - 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 + + + + antlr4 + + + true + true + true + target/antlr + ${project.build.directory}/generated-sources + + + + + + + + + + + + + + + + + + + + + + + + + + org.apache.maven.plugins + maven-jar-plugin + + + + test-jar + + + + + + + + + + + org.finos.legend.engine + legend-engine-xt-bigqueryFunction-protocol + + + org.finos.legend.engine + legend-engine-language-pure-grammar + + + org.finos.legend.engine + legend-engine-protocol-pure + + + + + + org.eclipse.collections + eclipse-collections-api + + + org.eclipse.collections + eclipse-collections + + + + + + org.antlr + antlr4-runtime + compile + + + + + + junit + junit + test + + + org.finos.legend.engine + legend-engine-shared-core + test-jar + test + + + org.finos.legend.engine + legend-engine-language-pure-grammar + test-jar + test + + + + \ No newline at end of file diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/BigQueryFunctionLexerGrammar.g4 b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/BigQueryFunctionLexerGrammar.g4 new file mode 100644 index 00000000000..469bf5791b5 --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/BigQueryFunctionLexerGrammar.g4 @@ -0,0 +1,15 @@ +lexer grammar BigQueryFunctionLexerGrammar; + +import M3LexerGrammar; + +BIGQUERY_FUNCTION: 'BigQueryFunction'; +BIGQUERY_FUNCTION__FUNCTION_NAME: 'functionName'; +BIGQUERY_FUNCTION__DESCRIPTION: 'description'; +BIGQUERY_FUNCTION__FUNCTION: 'function'; +BIGQUERY_FUNCTION__OWNER: 'owner'; +BIGQUERY_FUNCTION__ACTIVATION: 'activationConfiguration'; + +// ------------------------------------- CONFIGURATION ------------------------------- +CONFIGURATION: 'BigQueryFunctionDeploymentConfiguration'; +ACTIVATION_CONNECTION: 'activationConnection'; +DEPLOYMENT_STAGE: 'stage'; \ No newline at end of file diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/BigQueryFunctionParserGrammar.g4 b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/BigQueryFunctionParserGrammar.g4 new file mode 100644 index 00000000000..7ece7329da8 --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/antlr4/org/finos/legend/engine/language/pure/grammar/from/antlr4/BigQueryFunctionParserGrammar.g4 @@ -0,0 +1,67 @@ +parser grammar BigQueryFunctionParserGrammar; + +import M3ParserGrammar; + +options +{ + tokenVocab = BigQueryFunctionLexerGrammar; +} + +identifier: VALID_STRING | STRING | + BIGQUERY_FUNCTION | + BIGQUERY_FUNCTION__FUNCTION_NAME | + BIGQUERY_FUNCTION__DESCRIPTION | + BIGQUERY_FUNCTION__FUNCTION | + BIGQUERY_FUNCTION__OWNER | + BIGQUERY_FUNCTION__ACTIVATION| + CONFIGURATION| DEPLOYMENT_STAGE + | ACTIVATION_CONNECTION | + ALL | + LET | + ALL_VERSIONS | + ALL_VERSIONS_IN_RANGE | + TO_BYTES_FUNCTION + ; +// -------------------------------------- DEFINITION -------------------------------------- + +definition: (bigQueryFunction | deploymentConfig)* + EOF +; +bigQueryFunction: BIGQUERY_FUNCTION stereotypes? taggedValues? qualifiedName + BRACE_OPEN + ( + functionName + | description + | function + | owner + | activation + )* + BRACE_CLOSE; + +stereotypes: LESS_THAN LESS_THAN stereotype (COMMA stereotype)* GREATER_THAN GREATER_THAN; +stereotype: qualifiedName DOT identifier; +taggedValues: BRACE_OPEN taggedValue (COMMA taggedValue)* BRACE_CLOSE; +taggedValue: qualifiedName DOT identifier EQUAL STRING; + +functionName: BIGQUERY_FUNCTION__FUNCTION_NAME COLON STRING SEMI_COLON; + +description: BIGQUERY_FUNCTION__DESCRIPTION COLON STRING SEMI_COLON; + +function: BIGQUERY_FUNCTION__FUNCTION COLON functionIdentifier SEMI_COLON; + +owner : BIGQUERY_FUNCTION__OWNER COLON STRING SEMI_COLON; + +activation: BIGQUERY_FUNCTION__ACTIVATION COLON qualifiedName SEMI_COLON ; + +// ----------------------------------- Deployment ------------------------------------------------------ +deploymentConfig: CONFIGURATION qualifiedName + BRACE_OPEN + activationConnection + BRACE_CLOSE +; + +activationConnection: ACTIVATION_CONNECTION COLON qualifiedName SEMI_COLON +; + +stage: DEPLOYMENT_STAGE COLON STRING SEMI_COLON +; \ No newline at end of file diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/java/org/finos/legend/engine/language/bigqueryFunction/grammar/from/BigQueryFunctionGrammarParserExtension.java b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/java/org/finos/legend/engine/language/bigqueryFunction/grammar/from/BigQueryFunctionGrammarParserExtension.java new file mode 100644 index 00000000000..a2c960bbd38 --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/java/org/finos/legend/engine/language/bigqueryFunction/grammar/from/BigQueryFunctionGrammarParserExtension.java @@ -0,0 +1,70 @@ +// Copyright 2023 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.bigqueryFunction.grammar.from; + +import org.antlr.v4.runtime.CharStream; +import org.antlr.v4.runtime.CharStreams; +import org.antlr.v4.runtime.CommonTokenStream; +import org.eclipse.collections.impl.factory.Lists; +import org.finos.legend.engine.language.pure.grammar.from.ParserErrorListener; +import org.finos.legend.engine.language.pure.grammar.from.PureGrammarParserContext; +import org.finos.legend.engine.language.pure.grammar.from.SectionSourceCode; +import org.finos.legend.engine.language.pure.grammar.from.SourceCodeParserInfo; +import org.finos.legend.engine.language.pure.grammar.from.antlr4.BigQueryFunctionLexerGrammar; +import org.finos.legend.engine.language.pure.grammar.from.antlr4.BigQueryFunctionParserGrammar; +import org.finos.legend.engine.language.pure.grammar.from.extension.PureGrammarParserExtension; +import org.finos.legend.engine.language.pure.grammar.from.extension.SectionParser; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.PackageableElement; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.section.DefaultCodeSection; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.section.Section; + +import java.util.function.Consumer; + +public class BigQueryFunctionGrammarParserExtension implements PureGrammarParserExtension +{ + public static final String NAME = "BigQuery"; + + @Override + public Iterable getExtraSectionParsers() + { + return Lists.fixedSize.of(SectionParser.newParser(NAME, BigQueryFunctionGrammarParserExtension::parseSection)); + } + + private static Section parseSection(SectionSourceCode sectionSourceCode, Consumer elementConsumer, PureGrammarParserContext context) + { + SourceCodeParserInfo parserInfo = getBigQueryFunctionInfo(sectionSourceCode); + DefaultCodeSection section = new DefaultCodeSection(); + section.parserName = sectionSourceCode.sectionType; + section.sourceInformation = parserInfo.sourceInformation; + + BigQueryFunctionTreeWalker walker = new BigQueryFunctionTreeWalker(parserInfo.input, parserInfo.walkerSourceInformation, elementConsumer, section); + walker.visit((BigQueryFunctionParserGrammar.DefinitionContext) parserInfo.rootContext); + + return section; + } + + private static SourceCodeParserInfo getBigQueryFunctionInfo(SectionSourceCode sectionSourceCode) + { + CharStream input = CharStreams.fromString(sectionSourceCode.code); + ParserErrorListener errorListener = new ParserErrorListener(sectionSourceCode.walkerSourceInformation, BigQueryFunctionParserGrammar.VOCABULARY); + BigQueryFunctionLexerGrammar lexer = new BigQueryFunctionLexerGrammar(input); + lexer.removeErrorListeners(); + lexer.addErrorListener(errorListener); + BigQueryFunctionParserGrammar parser = new BigQueryFunctionParserGrammar(new CommonTokenStream(lexer)); + parser.removeErrorListeners(); + parser.addErrorListener(errorListener); + return new SourceCodeParserInfo(sectionSourceCode.code, input, sectionSourceCode.sourceInformation, sectionSourceCode.walkerSourceInformation, lexer, parser, parser.definition()); + } +} diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/java/org/finos/legend/engine/language/bigqueryFunction/grammar/from/BigQueryFunctionTreeWalker.java b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/java/org/finos/legend/engine/language/bigqueryFunction/grammar/from/BigQueryFunctionTreeWalker.java new file mode 100644 index 00000000000..306d4a91388 --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/java/org/finos/legend/engine/language/bigqueryFunction/grammar/from/BigQueryFunctionTreeWalker.java @@ -0,0 +1,140 @@ +// Copyright 2023 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.bigqueryFunction.grammar.from; + +import org.antlr.v4.runtime.CharStream; +import org.eclipse.collections.impl.factory.Lists; +import org.eclipse.collections.impl.utility.ListIterate; +import org.finos.legend.engine.language.pure.grammar.from.ParseTreeWalkerSourceInformation; +import org.finos.legend.engine.language.pure.grammar.from.PureGrammarParserUtility; +import org.finos.legend.engine.language.pure.grammar.from.antlr4.BigQueryFunctionParserGrammar; +import org.finos.legend.engine.protocol.bigqueryFunction.metamodel.BigQueryFunctionDeploymentConfiguration; +import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentConfiguration; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.PackageableElement; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.ConnectionPointer; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.StereotypePtr; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.TagPtr; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.TaggedValue; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.section.DefaultCodeSection; +import org.finos.legend.engine.protocol.bigqueryFunction.metamodel.BigQueryFunction; + +import java.util.Collections; +import java.util.List; +import java.util.function.Consumer; + +public class BigQueryFunctionTreeWalker +{ + private final CharStream input; + private final ParseTreeWalkerSourceInformation walkerSourceInformation; + private final Consumer elementConsumer; + private final DefaultCodeSection section; + + public BigQueryFunctionTreeWalker(CharStream input, ParseTreeWalkerSourceInformation walkerSourceInformation, Consumer elementConsumer, DefaultCodeSection section) + { + this.input = input; + this.walkerSourceInformation = walkerSourceInformation; + this.elementConsumer = elementConsumer; + this.section = section; + } + + public void visit(BigQueryFunctionParserGrammar.DefinitionContext ctx) + { + if (ctx.bigQueryFunction() != null && !ctx.bigQueryFunction().isEmpty()) + { + ctx.bigQueryFunction().stream().map(this::visitBigQueryFunction).peek(e -> this.section.elements.add(e.getPath())).forEach(this.elementConsumer); + } + if (ctx.deploymentConfig() != null && !ctx.deploymentConfig().isEmpty()) + { + ctx.deploymentConfig().stream().map(this::visitDeploymentConfig).peek(e -> this.section.elements.add(e.getPath())).forEach(this.elementConsumer); + } + } + + private BigQueryFunctionDeploymentConfiguration visitDeploymentConfig(BigQueryFunctionParserGrammar.DeploymentConfigContext ctx) + { + BigQueryFunctionDeploymentConfiguration config = new BigQueryFunctionDeploymentConfiguration(); + ConnectionPointer pointer = new ConnectionPointer(); + pointer.connection = PureGrammarParserUtility.fromQualifiedName(ctx.activationConnection().qualifiedName().packagePath() == null + ? Collections.emptyList() : ctx.activationConnection().qualifiedName().packagePath().identifier(), ctx.activationConnection().qualifiedName().identifier()); + pointer.sourceInformation = walkerSourceInformation.getSourceInformation(ctx.activationConnection().qualifiedName()); + config.activationConnection = pointer; + return config; + } + + private BigQueryFunction visitBigQueryFunction(BigQueryFunctionParserGrammar.BigQueryFunctionContext ctx) + { + BigQueryFunction bigQueryFunction = new BigQueryFunction(); + bigQueryFunction.name = PureGrammarParserUtility.fromIdentifier(ctx.qualifiedName().identifier()); + bigQueryFunction._package = ctx.qualifiedName().packagePath() == null ? "" : PureGrammarParserUtility.fromPath(ctx.qualifiedName().packagePath().identifier()); + bigQueryFunction.sourceInformation = walkerSourceInformation.getSourceInformation(ctx); + bigQueryFunction.stereotypes = ctx.stereotypes() == null ? Lists.mutable.empty() : this.visitStereotypes(ctx.stereotypes()); + bigQueryFunction.taggedValues = ctx.taggedValues() == null ? Lists.mutable.empty() : this.visitTaggedValues(ctx.taggedValues()); + + BigQueryFunctionParserGrammar.FunctionNameContext functionNameContext = PureGrammarParserUtility.validateAndExtractRequiredField(ctx.functionName(), "functionName", bigQueryFunction.sourceInformation); + bigQueryFunction.functionName = PureGrammarParserUtility.fromGrammarString(functionNameContext.STRING().getText(), true); + BigQueryFunctionParserGrammar.FunctionContext functionContext = PureGrammarParserUtility.validateAndExtractRequiredField(ctx.function(), "function", bigQueryFunction.sourceInformation); + bigQueryFunction.function = functionContext.functionIdentifier().getText(); + BigQueryFunctionParserGrammar.OwnerContext ownerContext = PureGrammarParserUtility.validateAndExtractOptionalField(ctx.owner(), "owner", bigQueryFunction.sourceInformation); + if (ownerContext != null) + { + bigQueryFunction.owner = PureGrammarParserUtility.fromGrammarString(ownerContext.STRING().getText(), true); + } + BigQueryFunctionParserGrammar.DescriptionContext descriptionContext = PureGrammarParserUtility.validateAndExtractOptionalField(ctx.description(), "description", bigQueryFunction.sourceInformation); + if (descriptionContext != null) + { + bigQueryFunction.description = PureGrammarParserUtility.fromGrammarString(descriptionContext.STRING().getText(), true); + } + BigQueryFunctionParserGrammar.ActivationContext activationContext = PureGrammarParserUtility.validateAndExtractOptionalField(ctx.activation(), "activationConfiguration", bigQueryFunction.sourceInformation); + if (activationContext != null) + { + BigQueryFunctionDeploymentConfiguration config = new BigQueryFunctionDeploymentConfiguration(); + ConnectionPointer connectionPointer = new ConnectionPointer(); + connectionPointer.connection = activationContext.qualifiedName().getText(); + config.activationConnection = connectionPointer; + + bigQueryFunction.activationConfiguration = config; + } + return bigQueryFunction; + } + + private List visitTaggedValues(BigQueryFunctionParserGrammar.TaggedValuesContext ctx) + { + return ListIterate.collect(ctx.taggedValue(), taggedValueContext -> + { + TaggedValue taggedValue = new TaggedValue(); + TagPtr tagPtr = new TagPtr(); + taggedValue.tag = tagPtr; + tagPtr.profile = PureGrammarParserUtility.fromQualifiedName(taggedValueContext.qualifiedName().packagePath() == null ? Collections.emptyList() : taggedValueContext.qualifiedName().packagePath().identifier(), taggedValueContext.qualifiedName().identifier()); + tagPtr.value = PureGrammarParserUtility.fromIdentifier(taggedValueContext.identifier()); + taggedValue.value = PureGrammarParserUtility.fromGrammarString(taggedValueContext.STRING().getText(), true); + taggedValue.tag.profileSourceInformation = this.walkerSourceInformation.getSourceInformation(taggedValueContext.qualifiedName()); + taggedValue.tag.sourceInformation = this.walkerSourceInformation.getSourceInformation(taggedValueContext.identifier()); + taggedValue.sourceInformation = this.walkerSourceInformation.getSourceInformation(taggedValueContext); + return taggedValue; + }); + } + + private List visitStereotypes(BigQueryFunctionParserGrammar.StereotypesContext ctx) + { + return ListIterate.collect(ctx.stereotype(), stereotypeContext -> + { + StereotypePtr stereotypePtr = new StereotypePtr(); + stereotypePtr.profile = PureGrammarParserUtility.fromQualifiedName(stereotypeContext.qualifiedName().packagePath() == null ? Collections.emptyList() : stereotypeContext.qualifiedName().packagePath().identifier(), stereotypeContext.qualifiedName().identifier()); + stereotypePtr.value = PureGrammarParserUtility.fromIdentifier(stereotypeContext.identifier()); + stereotypePtr.profileSourceInformation = this.walkerSourceInformation.getSourceInformation(stereotypeContext.qualifiedName()); + stereotypePtr.sourceInformation = this.walkerSourceInformation.getSourceInformation(stereotypeContext); + return stereotypePtr; + }); + } +} diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/java/org/finos/legend/engine/language/bigqueryFunction/grammar/to/BigQueryFunctionGrammarComposer.java b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/java/org/finos/legend/engine/language/bigqueryFunction/grammar/to/BigQueryFunctionGrammarComposer.java new file mode 100644 index 00000000000..7c2f5ef1d8a --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/java/org/finos/legend/engine/language/bigqueryFunction/grammar/to/BigQueryFunctionGrammarComposer.java @@ -0,0 +1,90 @@ +// Copyright 2023 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.bigqueryFunction.grammar.to; + +import org.eclipse.collections.api.block.function.Function3; +import org.eclipse.collections.api.factory.Lists; +import org.eclipse.collections.api.list.MutableList; +import org.eclipse.collections.impl.utility.Iterate; +import org.eclipse.collections.impl.utility.ListIterate; +import org.finos.legend.engine.language.bigqueryFunction.grammar.from.BigQueryFunctionGrammarParserExtension; +import org.finos.legend.engine.language.pure.grammar.to.PureGrammarComposerContext; +import org.finos.legend.engine.language.pure.grammar.to.extension.PureGrammarComposerExtension; +import org.finos.legend.engine.protocol.bigqueryFunction.metamodel.BigQueryFunction; +import org.finos.legend.engine.protocol.bigqueryFunction.metamodel.BigQueryFunctionDeploymentConfiguration; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.PackageableElement; + +import java.util.Collections; +import java.util.List; + +import static org.finos.legend.engine.language.pure.grammar.to.HelperDomainGrammarComposer.renderAnnotations; + +public class BigQueryFunctionGrammarComposer implements PureGrammarComposerExtension +{ + private static String renderElement(PackageableElement element) + { + if (element instanceof BigQueryFunction) + { + return renderBigQueryFunction((BigQueryFunction) element); + } + return "/* Can't transform element '" + element.getPath() + "' in this section */"; + } + + private static String renderBigQueryFunction(BigQueryFunction app) + { + String packageName = app._package == null || app._package.isEmpty() ? app.name : app._package + "::" + app.name; + + return "BigQueryFunction " + renderAnnotations(app.stereotypes, app.taggedValues) + packageName + "\n" + + "{\n" + + " functionName : '" + app.functionName + "';\n" + + " function : " + app.function + ";\n" + + (app.owner == null ? "" : " owner : '" + app.owner + "';\n") + + (app.description == null ? "" : " description : '" + app.description + "';\n") + + (app.activationConfiguration == null ? "" : " activationConfiguration : " + ((BigQueryFunctionDeploymentConfiguration) app.activationConfiguration).activationConnection.connection + ";\n") + + "}"; + } + + @Override + public List, PureGrammarComposerContext, String, String>> getExtraSectionComposers() + { + return Lists.fixedSize.with((elements, context, sectionName) -> + { + if (!BigQueryFunctionGrammarParserExtension.NAME.equals(sectionName)) + { + return null; + } + return ListIterate.collect(elements, element -> + { + if (element instanceof BigQueryFunction) + { + return renderBigQueryFunction((BigQueryFunction) element); + } + return "/* Can't transform element '" + element.getPath() + "' in this section */"; + }).makeString("\n\n"); + }); + } + + @Override + public List, PureGrammarComposerContext, List, PureGrammarComposerExtension.PureFreeSectionGrammarComposerResult>> getExtraFreeSectionComposers() + { + return Collections.singletonList((elements, context, composedSections) -> + { + MutableList composableElements = Iterate.select(elements, e -> (e instanceof BigQueryFunction), Lists.mutable.empty()); + return composableElements.isEmpty() + ? null + : new PureFreeSectionGrammarComposerResult(composableElements.asLazy().collect(BigQueryFunctionGrammarComposer::renderElement).makeString("###" + BigQueryFunctionGrammarParserExtension.NAME + "\n", "\n\n", ""), composableElements); + }); + } +} diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.grammar.from.extension.PureGrammarParserExtension b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.grammar.from.extension.PureGrammarParserExtension new file mode 100644 index 00000000000..5db153ec50a --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.grammar.from.extension.PureGrammarParserExtension @@ -0,0 +1 @@ +org.finos.legend.engine.language.bigqueryFunction.grammar.from.BigQueryFunctionGrammarParserExtension \ No newline at end of file diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.grammar.to.extension.PureGrammarComposerExtension b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.grammar.to.extension.PureGrammarComposerExtension new file mode 100644 index 00000000000..c96ed6ec60c --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/main/resources/META-INF/services/org.finos.legend.engine.language.pure.grammar.to.extension.PureGrammarComposerExtension @@ -0,0 +1 @@ +org.finos.legend.engine.language.bigqueryFunction.grammar.to.BigQueryFunctionGrammarComposer \ No newline at end of file diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/test/java/org/finos/legend/engine/language/bigqueryFunction/grammar/test/TestBigQueryFunctionRoundtrip.java b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/test/java/org/finos/legend/engine/language/bigqueryFunction/grammar/test/TestBigQueryFunctionRoundtrip.java new file mode 100644 index 00000000000..be4a0658090 --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/test/java/org/finos/legend/engine/language/bigqueryFunction/grammar/test/TestBigQueryFunctionRoundtrip.java @@ -0,0 +1,46 @@ +// Copyright 2023 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.bigqueryFunction.grammar.test; + +import org.finos.legend.engine.language.pure.grammar.test.TestGrammarRoundtrip; +import org.junit.Test; + +public class TestBigQueryFunctionRoundtrip extends TestGrammarRoundtrip.TestGrammarRoundtripTestSuite +{ + @Test + public void testBigQueryFunction() + { + test("###BigQuery\n" + + "BigQueryFunction <> {a::A.val = 'ok'} xx::MyApp\n" + + "{\n" + + " functionName : 'MyApp';\n" + + " function : zxx(Integer[1]):String[1];\n" + + " owner : 'pierre';\n" + + " description : 'A super nice app!';\n" + + " activationConfiguration : com::gs::test::TestConnection;\n" + + "}\n"); + } + + @Test + public void testBigQueryFunctionMinimal() + { + test("###BigQuery\n" + + "BigQueryFunction xx::MyApp\n" + + "{\n" + + " functionName : 'MyApp';\n" + + " function : zxx(Integer[1]):String[1];\n" + + "}\n"); + } +} diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/test/java/org/finos/legend/engine/language/bigqueryFunction/grammar/test/TestBigQueryParsing.java b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/test/java/org/finos/legend/engine/language/bigqueryFunction/grammar/test/TestBigQueryParsing.java new file mode 100644 index 00000000000..e700a9fd43e --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-grammar/src/test/java/org/finos/legend/engine/language/bigqueryFunction/grammar/test/TestBigQueryParsing.java @@ -0,0 +1,74 @@ +// Copyright 2023 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.bigqueryFunction.grammar.test; + +import org.antlr.v4.runtime.Vocabulary; +import org.eclipse.collections.impl.list.mutable.ListAdapter; +import org.finos.legend.engine.language.pure.grammar.from.antlr4.BigQueryFunctionParserGrammar; +import org.finos.legend.engine.language.pure.grammar.test.TestGrammarParser; +import org.junit.Test; + +import java.util.List; + +public class TestBigQueryParsing extends TestGrammarParser.TestGrammarParserTestSuite +{ + @Override + public Vocabulary getParserGrammarVocabulary() + { + return BigQueryFunctionParserGrammar.VOCABULARY; + } + + @Override + public String getParserGrammarIdentifierInclusionTestCode(List keywords) + { + return "###BigQuery\n" + + "BigQueryFunction " + ListAdapter.adapt(keywords).makeString("::") + "\n" + + "{\n" + + " function : a::f():String[1];" + + " functionName : 'sass';\n" + + "}\n"; + } + + @Test + public void testGetParserErrorWrongProperty() + { + test("###BigQuery\n" + + "BigQueryFunction x::A\n" + + "{\n" + + " functioName : 'sass';\n" + + "}\n", "PARSER error at [4:4-14]: Unexpected token 'functioName'. Valid alternatives: ['functionName', 'description', 'function', 'owner', 'activationConfiguration']"); + } + + @Test + public void testGetParserErrorMissingApplicationName() + { + test("###BigQuery\n" + + "BigQueryFunction x::A\n" + + "{\n" + + " owner : 'pierre';\n" + + "}\n", "PARSER error at [2:1-5:1]: Field 'functionName' is required"); + } + + @Test + public void testGetParserErrorMissingFunction() + { + test("###BigQuery\n" + + "BigQueryFunction x::A\n" + + "{\n" + + " functionName : 'MyApp';\n" + + " owner : 'pierre';\n" + + "}\n", "PARSER error at [2:1-6:1]: Field 'function' is required"); + } +} diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/pom.xml b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/pom.xml new file mode 100644 index 00000000000..73f2779c33f --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/pom.xml @@ -0,0 +1,46 @@ + + + + + org.finos.legend.engine + legend-engine-xts-bigqueryFunction + 4.34.1-SNAPSHOT + + 4.0.0 + + legend-engine-xt-bigqueryFunction-protocol + jar + Legend Engine - XT - BigQuery Function - Protocol + + + + org.finos.legend.engine + legend-engine-protocol-pure + + + + org.finos.legend.engine + legend-engine-xt-functionActivator-protocol + ${project.version} + + + + org.eclipse.collections + eclipse-collections-api + + + \ No newline at end of file diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/src/main/java/org/finos/legend/engine/protocol/bigqueryFunction/metamodel/BigQueryFunction.java b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/src/main/java/org/finos/legend/engine/protocol/bigqueryFunction/metamodel/BigQueryFunction.java new file mode 100644 index 00000000000..89cc7e74bf2 --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/src/main/java/org/finos/legend/engine/protocol/bigqueryFunction/metamodel/BigQueryFunction.java @@ -0,0 +1,27 @@ +// Copyright 2023 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.bigqueryFunction.metamodel; + +import org.finos.legend.engine.protocol.functionActivator.metamodel.FunctionActivator; + +//------------------------------------------------------------ +// Should be generated out of the Pure protocol specification +//------------------------------------------------------------ +public class BigQueryFunction extends FunctionActivator +{ + public String functionName; + public String description; + public String owner; +} diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/src/main/java/org/finos/legend/engine/protocol/bigqueryFunction/metamodel/BigQueryFunctionDeploymentConfiguration.java b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/src/main/java/org/finos/legend/engine/protocol/bigqueryFunction/metamodel/BigQueryFunctionDeploymentConfiguration.java new file mode 100644 index 00000000000..790a0ae97a0 --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/src/main/java/org/finos/legend/engine/protocol/bigqueryFunction/metamodel/BigQueryFunctionDeploymentConfiguration.java @@ -0,0 +1,28 @@ +// Copyright 2023 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.bigqueryFunction.metamodel; + +import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentConfiguration; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.connection.ConnectionPointer; + +public class BigQueryFunctionDeploymentConfiguration extends DeploymentConfiguration +{ + public ConnectionPointer activationConnection; + + public BigQueryFunctionDeploymentConfiguration() + { + + } +} diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/src/main/java/org/finos/legend/engine/protocol/bigqueryFunction/metamodel/BigQueryFunctionProtocolExtension.java b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/src/main/java/org/finos/legend/engine/protocol/bigqueryFunction/metamodel/BigQueryFunctionProtocolExtension.java new file mode 100644 index 00000000000..b1ea493736d --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/src/main/java/org/finos/legend/engine/protocol/bigqueryFunction/metamodel/BigQueryFunctionProtocolExtension.java @@ -0,0 +1,49 @@ +// Copyright 2023 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.bigqueryFunction.metamodel; + +import org.eclipse.collections.api.block.function.Function0; +import org.eclipse.collections.api.factory.Lists; +import org.eclipse.collections.api.factory.Maps; +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.PackageableElement; + +import java.util.List; +import java.util.Map; + +public class BigQueryFunctionProtocolExtension implements PureProtocolExtension +{ + public static String packageJSONType = "bigQueryFunction"; + + @Override + public List>>> getExtraProtocolSubTypeInfoCollectors() + { + return Lists.fixedSize.with(() -> Lists.mutable.with( + ProtocolSubTypeInfo.newBuilder(PackageableElement.class) + .withSubtype(BigQueryFunction.class, packageJSONType) + .build(), + ProtocolSubTypeInfo.newBuilder(PackageableElement.class) + .withSubtype(BigQueryFunctionDeploymentConfiguration.class, packageJSONType + "Config") + .build() + )); + } + + @Override + public Map, String> getExtraProtocolToClassifierPathMap() + { + return Maps.mutable.with(BigQueryFunction.class, "meta::external::function::activator::bigQueryFunction::BigQueryFunction"); + } +} diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/src/main/resources/META-INF/services/org.finos.legend.engine.protocol.pure.v1.extension.PureProtocolExtension b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/src/main/resources/META-INF/services/org.finos.legend.engine.protocol.pure.v1.extension.PureProtocolExtension new file mode 100644 index 00000000000..7ab4de68c73 --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-protocol/src/main/resources/META-INF/services/org.finos.legend.engine.protocol.pure.v1.extension.PureProtocolExtension @@ -0,0 +1 @@ +org.finos.legend.engine.protocol.bigqueryFunction.metamodel.BigQueryFunctionProtocolExtension \ No newline at end of file diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/pom.xml b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/pom.xml new file mode 100644 index 00000000000..0ab4ea41ccc --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/pom.xml @@ -0,0 +1,156 @@ + + + + + + org.finos.legend.engine + legend-engine-xts-bigqueryFunction + 4.34.1-SNAPSHOT + + 4.0.0 + + legend-engine-xt-bigqueryFunction-pure + jar + Legend Engine - XT - BigQuery Function - PAR/JAVA + + + + + org.finos.legend.pure + legend-pure-maven-generation-par + + src/main/resources + ${legend.pure.version} + + core_bigqueryfunction + + + ${project.basedir}/src/main/resources/core_bigqueryfunction.definition.json + + + + + generate-sources + + build-pure-jar + + + + + + org.finos.legend.engine + legend-engine-xt-functionActivator-pure + ${project.version} + + + org.finos.legend.pure + legend-pure-m2-dsl-diagram-grammar + ${legend.pure.version} + + + org.finos.legend.engine + legend-engine-xt-relationalStore-pure + ${project.version} + + + + + org.finos.legend.pure + legend-pure-maven-generation-java + + + compile + + build-pure-compiled-jar + + + true + true + modular + true + + core_bigqueryfunction + + + + + + + org.finos.legend.engine + legend-engine-xt-functionActivator-pure + ${project.version} + + + org.finos.legend.pure + legend-pure-m2-dsl-diagram-grammar + ${legend.pure.version} + + + org.finos.legend.engine + legend-engine-xt-relationalStore-pure + ${project.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-platform-java + + + org.finos.legend.engine + legend-engine-pure-code-compiled-core + + + org.finos.legend.engine + legend-engine-pure-platform-functions-java + + + org.finos.legend.engine + legend-engine-xt-relationalStore-pure + + + org.finos.legend.engine + legend-engine-xt-functionActivator-pure + + + + org.eclipse.collections + eclipse-collections + + + org.eclipse.collections + eclipse-collections-api + + + diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/src/main/java/org/finos/legend/pure/code/core/CoreBigQueryFunctionCodeRepositoryProvider.java b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/src/main/java/org/finos/legend/pure/code/core/CoreBigQueryFunctionCodeRepositoryProvider.java new file mode 100644 index 00000000000..2817e421404 --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/src/main/java/org/finos/legend/pure/code/core/CoreBigQueryFunctionCodeRepositoryProvider.java @@ -0,0 +1,28 @@ +// Copyright 2023 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.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 CoreBigQueryFunctionCodeRepositoryProvider implements CodeRepositoryProvider +{ + @Override + public CodeRepository repository() + { + return GenericCodeRepository.build("core_bigqueryfunction.definition.json"); + } +} diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider new file mode 100644 index 00000000000..a6852036018 --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/src/main/resources/META-INF/services/org.finos.legend.pure.m3.serialization.filesystem.repository.CodeRepositoryProvider @@ -0,0 +1 @@ +org.finos.legend.pure.code.core.CoreBigQueryFunctionCodeRepositoryProvider \ No newline at end of file diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/src/main/resources/core_bigqueryfunction.definition.json b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/src/main/resources/core_bigqueryfunction.definition.json new file mode 100644 index 00000000000..0987cf1d134 --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/src/main/resources/core_bigqueryfunction.definition.json @@ -0,0 +1,9 @@ +{ + "name": "core_bigqueryfunction", + "pattern": "(meta::external::function::activator::bigQueryFunction|meta::protocols)(::.*)?", + "dependencies": [ + "platform", + "core_function_activator", + "core_relational" + ] +} \ No newline at end of file diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/src/main/resources/core_bigqueryfunction/metamodel/metamodel.pure b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/src/main/resources/core_bigqueryfunction/metamodel/metamodel.pure new file mode 100644 index 00000000000..0bfb77ad25d --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-pure/src/main/resources/core_bigqueryfunction/metamodel/metamodel.pure @@ -0,0 +1,26 @@ +import meta::external::function::activator::*; + +Class meta::external::function::activator::bigQueryFunction::BigQueryFunction extends FunctionActivator +{ + functionName : String[1]; + description : String[0..1]; + owner : String[0..1]; +} + +Class meta::external::function::activator::bigQueryFunction::BigQueryFunctionDeploymentConfiguration extends DeploymentConfiguration +{ + target: meta::external::store::relational::runtime::RelationalDatabaseConnection[1]; +} + +Class meta::external::function::activator::bigQueryFunction::BigQueryFunctionDeploymentResult extends DeploymentResult +{ + +} + +// This section needs to be code generated from the section above +Class meta::protocols::pure::vX_X_X::metamodel::function::activator::bigQueryFunction::BigQueryFunction extends meta::protocols::pure::vX_X_X::metamodel::function::activator::FunctionActivator +{ + functionName : String[1]; + description : String[0..1]; + owner : String[0..1]; +} \ No newline at end of file diff --git a/legend-engine-xts-bigqueryFunction/pom.xml b/legend-engine-xts-bigqueryFunction/pom.xml new file mode 100644 index 00000000000..6afc3e4ae9d --- /dev/null +++ b/legend-engine-xts-bigqueryFunction/pom.xml @@ -0,0 +1,36 @@ + + + + + org.finos.legend.engine + legend-engine + 4.34.1-SNAPSHOT + + 4.0.0 + + legend-engine-xts-bigqueryFunction + pom + Legend Engine - XTS - BigQuery Function + + + legend-engine-xt-bigqueryFunction-api + legend-engine-xt-bigqueryFunction-compiler + legend-engine-xt-bigqueryFunction-grammar + legend-engine-xt-bigqueryFunction-protocol + legend-engine-xt-bigqueryFunction-pure + + \ No newline at end of file diff --git a/pom.xml b/pom.xml index e4c19e20450..c429648312a 100644 --- a/pom.xml +++ b/pom.xml @@ -75,6 +75,7 @@ legend-engine-xts-functionActivator legend-engine-xts-snowflakeApp + legend-engine-xts-bigqueryFunction legend-engine-xts-service legend-engine-xts-persistence legend-engine-xts-hostedService @@ -642,6 +643,36 @@ legend-engine-xt-snowflakeApp-generator ${project.version} + + org.finos.legend.engine + legend-engine-xt-bigqueryFunction-protocol + ${project.version} + + + org.finos.legend.engine + legend-engine-xt-bigqueryFunction-pure + ${project.version} + + + org.finos.legend.engine + legend-engine-xt-bigqueryFunction-compiler + ${project.version} + + + org.finos.legend.engine + legend-engine-xt-bigqueryFunction-grammar + ${project.version} + + + org.finos.legend.engine + legend-engine-xt-bigqueryFunction-api + ${project.version} + + + + + + org.finos.legend.engine legend-engine-xt-authentication-pure From c63841b1a58f6f2c8e8e7d84838416f7a2cc6f74 Mon Sep 17 00:00:00 2001 From: Rafael Bey <24432403+rafaelbey@users.noreply.github.com> Date: Mon, 6 Nov 2023 15:18:15 -0500 Subject: [PATCH 79/80] Enhance model loader to support fetching pmcd from workspaces (#2437) --- .../pom.xml | 11 ++ .../pure/modelManager/sdlc/SDLCFetcher.java | 113 +++++++++++ .../pure/modelManager/sdlc/SDLCLoader.java | 90 +++------ .../sdlc/workspace/WorkspaceSDLCLoader.java | 182 ++++++++++++++++++ .../modelManager/sdlc/TestSDLCLoader.java | 90 ++++++++- .../pure/modelManager/ModelManager.java | 16 +- .../pure/v1/model/context/AlloySDLC.java | 6 + .../pure/v1/model/context/PureSDLC.java | 6 + .../protocol/pure/v1/model/context/SDLC.java | 9 +- .../pure/v1/model/context/SDLCVisitor.java | 25 +++ .../pure/v1/model/context/WorkspaceSDLC.java | 61 ++++++ .../legend-engine-xt-graphQL-query/pom.xml | 15 -- .../engine/query/graphQL/api/GraphQL.java | 134 ++----------- .../engine/query/graphQL/api/MyCookie.java | 105 ---------- .../graphQL/api/test/TestGraphQLAPI.java | 13 +- .../directives/TestTotalCountDirective.java | 5 +- .../pom.xml | 17 -- .../project/ProjectCoordinateLoader.java | 178 +---------------- 18 files changed, 574 insertions(+), 502 deletions(-) create mode 100644 legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/src/main/java/org/finos/legend/engine/language/pure/modelManager/sdlc/SDLCFetcher.java create mode 100644 legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/src/main/java/org/finos/legend/engine/language/pure/modelManager/sdlc/workspace/WorkspaceSDLCLoader.java create mode 100644 legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/context/SDLCVisitor.java create mode 100644 legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/context/WorkspaceSDLC.java delete mode 100644 legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/src/main/java/org/finos/legend/engine/query/graphQL/api/MyCookie.java diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml index 8ee22a2096a..2e78805e043 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/pom.xml @@ -26,6 +26,17 @@ Legend Engine - Language Pure - Model Manager - SDLC + + org.finos.legend.shared + legend-shared-pac4j-gitlab + + + * + * + + + + org.finos.legend.engine diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/src/main/java/org/finos/legend/engine/language/pure/modelManager/sdlc/SDLCFetcher.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/src/main/java/org/finos/legend/engine/language/pure/modelManager/sdlc/SDLCFetcher.java new file mode 100644 index 00000000000..1b467eefe74 --- /dev/null +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/src/main/java/org/finos/legend/engine/language/pure/modelManager/sdlc/SDLCFetcher.java @@ -0,0 +1,113 @@ +// Copyright 2023 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.modelManager.sdlc; + +import io.opentracing.Scope; +import io.opentracing.Span; +import io.opentracing.util.GlobalTracer; +import java.util.List; +import java.util.function.Function; +import javax.security.auth.Subject; +import org.apache.http.impl.client.CloseableHttpClient; +import org.eclipse.collections.api.list.MutableList; +import org.eclipse.collections.impl.utility.ListIterate; +import org.finos.legend.engine.language.pure.modelManager.sdlc.alloy.AlloySDLCLoader; +import org.finos.legend.engine.language.pure.modelManager.sdlc.pure.PureServerLoader; +import org.finos.legend.engine.language.pure.modelManager.sdlc.workspace.WorkspaceSDLCLoader; +import org.finos.legend.engine.protocol.pure.v1.model.context.AlloySDLC; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureSDLC; +import org.finos.legend.engine.protocol.pure.v1.model.context.SDLCVisitor; +import org.finos.legend.engine.protocol.pure.v1.model.context.WorkspaceSDLC; +import org.finos.legend.engine.shared.core.kerberos.SubjectTools; +import org.finos.legend.engine.shared.core.operational.errorManagement.EngineException; +import org.pac4j.core.profile.CommonProfile; + +final class SDLCFetcher implements SDLCVisitor +{ + private final Span parentSpan; + private final String clientVersion; + private final Function, CloseableHttpClient> httpClientProvider; + private final MutableList pm; + private final PureServerLoader pureLoader; + private final AlloySDLCLoader alloyLoader; + private final WorkspaceSDLCLoader workspaceLoader; + + public SDLCFetcher(Span parentSpan, String clientVersion, Function, CloseableHttpClient> httpClientProvider, MutableList pm, PureServerLoader pureLoader, AlloySDLCLoader alloyLoader, WorkspaceSDLCLoader workspaceLoader) + { + this.parentSpan = parentSpan; + this.clientVersion = clientVersion; + this.httpClientProvider = httpClientProvider; + this.pm = pm; + this.pureLoader = pureLoader; + this.alloyLoader = alloyLoader; + this.workspaceLoader = workspaceLoader; + } + + @Override + public PureModelContextData visit(AlloySDLC sdlc) + { + parentSpan.setTag("sdlc", "alloy"); + try (Scope ignore = GlobalTracer.get().buildSpan("Request Alloy Metadata").startActive(true)) + { + PureModelContextData loadedProject = this.alloyLoader.loadAlloyProject(pm, sdlc, clientVersion, this.httpClientProvider); + loadedProject.origin.sdlcInfo.packageableElementPointers = sdlc.packageableElementPointers; + List missingPaths = this.alloyLoader.checkAllPathsExist(loadedProject, sdlc); + if (missingPaths.isEmpty()) + { + return loadedProject; + } + else + { + throw new EngineException("The following entities:" + missingPaths + " do not exist in the project data loaded from the metadata server. " + + "Please make sure the corresponding Gitlab pipeline for version " + (this.alloyLoader.isLatestRevision(sdlc) ? "latest" : sdlc.version) + " has completed and also metadata server has updated with corresponding entities " + + "by confirming the data returned from this API ."); + } + } + } + + @Override + public PureModelContextData visit(PureSDLC pureSDLC) + { + parentSpan.setTag("sdlc", "pure"); + try (Scope ignore = GlobalTracer.get().buildSpan("Request Pure Metadata").startActive(true)) + { + Subject subject = SubjectTools.getCurrentSubject(); + + return ListIterate.injectInto( + new PureModelContextData.Builder(), + pureSDLC.packageableElementPointers, + (builder, pointers) -> builder.withPureModelContextData(this.pureLoader.loadPurePackageableElementPointer(pm, pointers, clientVersion, subject == null ? "" : "?auth=kerberos", pureSDLC.overrideUrl)) + ).distinct().sorted().build(); + } + } + + @Override + public PureModelContextData visit(WorkspaceSDLC sdlc) + { + parentSpan.setTag("sdlc", "workspace"); + parentSpan.setTag("project", sdlc.project); + parentSpan.setTag("workspace", sdlc.getWorkspace()); + parentSpan.setTag("isGroupWorkspace", sdlc.isGroupWorkspace); + + try (Scope scope = GlobalTracer.get().buildSpan("Request Workspace Metadata").startActive(true)) + { + PureModelContextData loadedProject = this.workspaceLoader.loadWorkspace(pm, sdlc, this.httpClientProvider); + PureModelContextData sdlcDependenciesPMCD = this.workspaceLoader.getSDLCDependenciesPMCD(pm, this.clientVersion, sdlc, this.httpClientProvider); + return loadedProject.combine(sdlcDependenciesPMCD); + } + } +} diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/src/main/java/org/finos/legend/engine/language/pure/modelManager/sdlc/SDLCLoader.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/src/main/java/org/finos/legend/engine/language/pure/modelManager/sdlc/SDLCLoader.java index 33ad3141890..5ffeff7bdaa 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/src/main/java/org/finos/legend/engine/language/pure/modelManager/sdlc/SDLCLoader.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/src/main/java/org/finos/legend/engine/language/pure/modelManager/sdlc/SDLCLoader.java @@ -19,6 +19,11 @@ import io.opentracing.Span; import io.opentracing.tag.Tags; import io.opentracing.util.GlobalTracer; +import java.util.HashMap; +import java.util.Map; +import java.util.function.Function; +import java.util.function.Supplier; +import javax.security.auth.Subject; import org.apache.http.HttpEntity; import org.apache.http.HttpStatus; import org.apache.http.client.methods.CloseableHttpResponse; @@ -31,12 +36,12 @@ import org.eclipse.collections.api.list.MutableList; import org.eclipse.collections.api.set.primitive.IntSet; import org.eclipse.collections.impl.factory.primitive.IntSets; -import org.eclipse.collections.impl.utility.ListIterate; import org.finos.legend.engine.language.pure.modelManager.ModelLoader; import org.finos.legend.engine.language.pure.modelManager.ModelManager; import org.finos.legend.engine.language.pure.modelManager.sdlc.alloy.AlloySDLCLoader; import org.finos.legend.engine.language.pure.modelManager.sdlc.configuration.MetaDataServerConfiguration; import org.finos.legend.engine.language.pure.modelManager.sdlc.pure.PureServerLoader; +import org.finos.legend.engine.language.pure.modelManager.sdlc.workspace.WorkspaceSDLCLoader; import org.finos.legend.engine.protocol.pure.v1.model.context.AlloySDLC; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContext; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; @@ -54,13 +59,6 @@ import org.pac4j.core.profile.CommonProfile; import org.slf4j.Logger; -import javax.security.auth.Subject; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.function.Function; -import java.util.function.Supplier; - import static io.opentracing.propagation.Format.Builtin.HTTP_HEADERS; import static org.finos.legend.engine.shared.core.kerberos.ExecSubject.exec; @@ -72,6 +70,7 @@ public class SDLCLoader implements ModelLoader private final Supplier subjectProvider; private final PureServerLoader pureLoader; private final AlloySDLCLoader alloyLoader; + private final WorkspaceSDLCLoader workspaceLoader; private final Function, CloseableHttpClient> httpClientProvider; public SDLCLoader(MetaDataServerConfiguration metaDataServerConfiguration, Supplier subjectProvider) @@ -91,18 +90,21 @@ public SDLCLoader(MetaDataServerConfiguration metaDataServerConfiguration, Suppl public SDLCLoader(MetaDataServerConfiguration metaDataServerConfiguration, Supplier subjectProvider, PureServerLoader pureLoader, Function, CloseableHttpClient> httpClientProvider) { - this.subjectProvider = subjectProvider; - this.pureLoader = pureLoader; - this.alloyLoader = new AlloySDLCLoader(metaDataServerConfiguration); - this.httpClientProvider = httpClientProvider; + this(metaDataServerConfiguration, subjectProvider, pureLoader, httpClientProvider, new AlloySDLCLoader(metaDataServerConfiguration)); } public SDLCLoader(MetaDataServerConfiguration metaDataServerConfiguration, Supplier subjectProvider, PureServerLoader pureLoader, Function, CloseableHttpClient> httpClientProvider, AlloySDLCLoader alloyLoader) + { + this(subjectProvider, pureLoader, httpClientProvider, alloyLoader, new WorkspaceSDLCLoader(metaDataServerConfiguration.sdlc)); + } + + public SDLCLoader(Supplier subjectProvider, PureServerLoader pureLoader, Function, CloseableHttpClient> httpClientProvider, AlloySDLCLoader alloyLoader, WorkspaceSDLCLoader workspaceLoader) { this.subjectProvider = subjectProvider; this.pureLoader = pureLoader; this.alloyLoader = alloyLoader; this.httpClientProvider = httpClientProvider; + this.workspaceLoader = workspaceLoader; } private Subject getSubject() @@ -121,6 +123,7 @@ private Subject getSubject() @Override public void setModelManager(ModelManager modelManager) { + this.workspaceLoader.setModelManager(modelManager); } @Override @@ -170,55 +173,18 @@ public PureModelContextData load(MutableList pm, PureModelContext PureModelContextPointer context = (PureModelContextPointer) ctx; Assert.assertTrue(clientVersion != null, () -> "Client version should be set when pulling metadata from the metadata repository"); - Function0 fetchMetadata; - - final Subject subject = getSubject(); - - if (context.sdlcInfo instanceof PureSDLC) - { - fetchMetadata = () -> - { - parentSpan.setTag("sdlc", "pure"); - try (Scope scope = GlobalTracer.get().buildSpan("Request Pure Metadata").startActive(true)) - { - return ListIterate.injectInto( - new PureModelContextData.Builder(), - context.sdlcInfo.packageableElementPointers, - (builder, pointers) -> builder.withPureModelContextData(this.pureLoader.loadPurePackageableElementPointer(pm, pointers, clientVersion, subject == null ? "" : "?auth=kerberos", ((PureSDLC) context.sdlcInfo).overrideUrl)) - ).distinct().sorted().build(); - } - }; - } - else if (context.sdlcInfo instanceof AlloySDLC) - { - fetchMetadata = () -> - { - parentSpan.setTag("sdlc", "alloy"); - try (Scope scope = GlobalTracer.get().buildSpan("Request Alloy Metadata").startActive(true)) - { - AlloySDLC sdlc = (AlloySDLC) context.sdlcInfo; - PureModelContextData loadedProject = this.alloyLoader.loadAlloyProject(pm, sdlc, clientVersion, this.httpClientProvider); - loadedProject.origin.sdlcInfo.packageableElementPointers = sdlc.packageableElementPointers; - List missingPaths = this.alloyLoader.checkAllPathsExist(loadedProject, sdlc); - if (missingPaths.isEmpty()) - { - return loadedProject; - } - else - { - throw new EngineException("The following entities:" + missingPaths + " do not exist in the project data loaded from the metadata server. " + - "Please make sure the corresponding Gitlab pipeline for version " + (this.alloyLoader.isLatestRevision(sdlc) ? "latest" : sdlc.version) + " has completed and also metadata server has updated with corresponding entities " + - "by confirming the data returned from this API ."); - } - } - }; - } - else - { - throw new UnsupportedOperationException("To Code"); - } + SDLCFetcher fetcher = new SDLCFetcher( + parentSpan, + clientVersion, + this.httpClientProvider, + pm, + this.pureLoader, + this.alloyLoader, + this.workspaceLoader + ); - PureModelContextData metaData = subject == null ? fetchMetadata.value() : exec(subject, fetchMetadata::value); + Subject subject = getSubject(); + PureModelContextData metaData = subject == null ? context.sdlcInfo.accept(fetcher) : exec(subject, () -> context.sdlcInfo.accept(fetcher)); if (metaData.origin != null) { @@ -314,7 +280,7 @@ public static PureModelContextData loadMetadataFromHTTPURL(MutableList= 300) { - String msg = EntityUtils.toString(entity); + String msg = entity != null ? EntityUtils.toString(entity) : response.getStatusLine().getReasonPhrase(); response.close(); throw new EngineException("Error response from " + httpRequest.getURI() + ", HTTP" + statusCode + "\n" + msg); } diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/src/main/java/org/finos/legend/engine/language/pure/modelManager/sdlc/workspace/WorkspaceSDLCLoader.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/src/main/java/org/finos/legend/engine/language/pure/modelManager/sdlc/workspace/WorkspaceSDLCLoader.java new file mode 100644 index 00000000000..950238c6aeb --- /dev/null +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/src/main/java/org/finos/legend/engine/language/pure/modelManager/sdlc/workspace/WorkspaceSDLCLoader.java @@ -0,0 +1,182 @@ +// Copyright 2023 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.modelManager.sdlc.workspace; + +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import io.opentracing.Scope; +import io.opentracing.Span; +import io.opentracing.util.GlobalTracer; +import java.io.InputStream; +import java.util.List; +import java.util.function.Function; +import javax.security.auth.Subject; +import org.apache.http.HttpEntity; +import org.apache.http.client.methods.HttpGet; +import org.apache.http.impl.client.BasicCookieStore; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.message.BasicHeader; +import org.eclipse.collections.api.list.MutableList; +import org.finos.legend.engine.language.pure.modelManager.ModelManager; +import org.finos.legend.engine.language.pure.modelManager.sdlc.SDLCLoader; +import org.finos.legend.engine.language.pure.modelManager.sdlc.configuration.MetadataServerPrivateAccessTokenConfiguration; +import org.finos.legend.engine.language.pure.modelManager.sdlc.configuration.ServerConnectionConfiguration; +import org.finos.legend.engine.protocol.pure.PureClientVersions; +import org.finos.legend.engine.protocol.pure.v1.model.context.AlloySDLC; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; +import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextPointer; +import org.finos.legend.engine.protocol.pure.v1.model.context.WorkspaceSDLC; +import org.finos.legend.engine.shared.core.ObjectMapperFactory; +import org.finos.legend.engine.shared.core.kerberos.ExecSubject; +import org.finos.legend.engine.shared.core.kerberos.HttpClientBuilder; +import org.finos.legend.engine.shared.core.kerberos.ProfileManagerHelper; +import org.finos.legend.engine.shared.core.operational.logs.LoggingEventType; +import org.finos.legend.server.pac4j.gitlab.GitlabPersonalAccessTokenProfile; +import org.pac4j.core.profile.CommonProfile; + +public class WorkspaceSDLCLoader +{ + private static final TypeReference> SDLC_PROJECT_DEPENDENCY_TYPE = new TypeReference>() + { + }; + + private final ServerConnectionConfiguration sdlcServerConnectionConfig; + private final ObjectMapper mapper; + private ModelManager modelManager; + + public WorkspaceSDLCLoader(ServerConnectionConfiguration sdlcServerConnectionConfig) + { + this.sdlcServerConnectionConfig = sdlcServerConnectionConfig; + this.mapper = ObjectMapperFactory.getNewStandardObjectMapperWithPureProtocolExtensionSupports(); + } + + public PureModelContextData loadWorkspace(MutableList pm, WorkspaceSDLC sdlc, Function, CloseableHttpClient> httpClientProvider) + { + String url = sdlcServerConnectionConfig.getBaseUrl() + "/api/projects/" + sdlc.project + (sdlc.isGroupWorkspace ? "/groupWorkspaces/" : "/workspaces/") + sdlc.getWorkspace() + "/pureModelContextData"; + return SDLCLoader.loadMetadataFromHTTPURL(pm, LoggingEventType.METADATA_REQUEST_ALLOY_PROJECT_START, LoggingEventType.METADATA_REQUEST_ALLOY_PROJECT_STOP, url, httpClientProvider, x -> prepareHttpRequest(pm, x)); + } + + public void setModelManager(ModelManager modelManager) + { + this.modelManager = modelManager; + } + + public PureModelContextData getSDLCDependenciesPMCD(MutableList pm, String clientVersion, WorkspaceSDLC sdlc, Function, CloseableHttpClient> httpClientProvider) + { + CloseableHttpClient httpclient; + + if (httpClientProvider != null) + { + httpclient = httpClientProvider.apply(pm); + } + else + { + httpclient = (CloseableHttpClient) HttpClientBuilder.getHttpClient(new BasicCookieStore()); + } + + try ( + CloseableHttpClient client = httpclient; + Scope scope = GlobalTracer.get().buildSpan("Load project upstream dependencies").startActive(true) + ) + { + String url = String.format("%s/api/projects/%s/%s/%s/revisions/HEAD/upstreamProjects", + sdlcServerConnectionConfig.getBaseUrl(), + sdlc.project, + sdlc.isGroupWorkspace ? "groupWorkspaces" : "workspaces", + sdlc.getWorkspace()); + + HttpGet httpRequest = this.prepareHttpRequest(pm, url); + HttpEntity entity = SDLCLoader.execHttpRequest(scope.span(), client, httpRequest); + + try (InputStream content = entity.getContent()) + { + List dependencies = mapper.readValue(content, SDLC_PROJECT_DEPENDENCY_TYPE); + + PureModelContextData.Builder builder = PureModelContextData.newBuilder(); + + dependencies.forEach(dependency -> + { + builder.addPureModelContextData(this.loadDependencyData(pm, clientVersion, dependency)); + }); + + builder.removeDuplicates(); + return builder.build(); + } + } + catch (Exception e) + { + throw new RuntimeException(e); + } + } + + private HttpGet prepareHttpRequest(MutableList pm, String url) + { + HttpGet httpRequest = null; + + if (this.sdlcServerConnectionConfig.pac4j != null && this.sdlcServerConnectionConfig.pac4j instanceof MetadataServerPrivateAccessTokenConfiguration) + { + String patHeaderName = ((MetadataServerPrivateAccessTokenConfiguration) this.sdlcServerConnectionConfig.pac4j).accessTokenHeaderName; + MutableList patProfiles = pm.selectInstancesOf(GitlabPersonalAccessTokenProfile.class); + if (patProfiles.getFirst() != null) + { + httpRequest = new HttpGet(String.format("%s?client_name=%s", url, patProfiles.getFirst().getClientName())); + httpRequest.addHeader(new BasicHeader(patHeaderName, patProfiles.getFirst().getPersonalAccessToken())); + } + } + + if (httpRequest == null) + { + httpRequest = new HttpGet(url); + } + + return httpRequest; + } + + private PureModelContextData loadDependencyData(MutableList profiles, String clientVersion, SDLCProjectDependency dependency) + { + Subject subject = ProfileManagerHelper.extractSubject(profiles); + PureModelContextPointer pointer = new PureModelContextPointer(); + AlloySDLC sdlcInfo = new AlloySDLC(); + sdlcInfo.groupId = dependency.getGroupId(); + sdlcInfo.artifactId = dependency.getArtifactId(); + sdlcInfo.version = dependency.getVersionId(); + pointer.sdlcInfo = sdlcInfo; + return subject == null ? + this.modelManager.loadData(pointer, PureClientVersions.production, profiles) : + ExecSubject.exec(subject, () -> this.modelManager.loadData(pointer, clientVersion, profiles)); + } + + private static class SDLCProjectDependency + { + public String projectId; + public String versionId; + + public String getGroupId() + { + return projectId.split(":")[0]; + } + + public String getArtifactId() + { + return projectId.split(":")[1]; + } + + public String getVersionId() + { + return versionId; + } + } +} diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/src/test/java/org/finos/legend/engine/language/pure/modelManager/sdlc/TestSDLCLoader.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/src/test/java/org/finos/legend/engine/language/pure/modelManager/sdlc/TestSDLCLoader.java index 41f8e0a7981..69259cf3dc2 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/src/test/java/org/finos/legend/engine/language/pure/modelManager/sdlc/TestSDLCLoader.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager-sdlc/src/test/java/org/finos/legend/engine/language/pure/modelManager/sdlc/TestSDLCLoader.java @@ -16,21 +16,29 @@ package org.finos.legend.engine.language.pure.modelManager.sdlc; import com.fasterxml.jackson.core.JsonProcessingException; +import com.fasterxml.jackson.databind.ObjectMapper; import com.github.tomakehurst.wiremock.client.WireMock; import com.github.tomakehurst.wiremock.junit.WireMockClassRule; import com.github.tomakehurst.wiremock.stubbing.Scenario; import io.opentracing.mock.MockSpan; import io.opentracing.mock.MockTracer; import io.opentracing.util.GlobalTracer; +import java.util.List; +import java.util.stream.Collectors; import javax.security.auth.Subject; import org.eclipse.collections.api.factory.Lists; +import org.finos.legend.engine.language.pure.modelManager.ModelManager; import org.finos.legend.engine.language.pure.modelManager.sdlc.configuration.MetaDataServerConfiguration; import org.finos.legend.engine.language.pure.modelManager.sdlc.configuration.ServerConnectionConfiguration; import org.finos.legend.engine.protocol.Protocol; import org.finos.legend.engine.protocol.pure.v1.model.context.AlloySDLC; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextPointer; +import org.finos.legend.engine.protocol.pure.v1.model.context.WorkspaceSDLC; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.PackageableElement; +import org.finos.legend.engine.protocol.pure.v1.model.packageableElement.domain.Class; import org.finos.legend.engine.shared.core.ObjectMapperFactory; +import org.finos.legend.engine.shared.core.deployment.DeploymentMode; import org.finos.legend.engine.shared.core.operational.errorManagement.EngineException; import org.junit.After; import org.junit.Assert; @@ -110,6 +118,51 @@ public void testSdlcLoaderDoesNotRetryOnHardFailures() throws Exception } } + @Test + public void testSdlcLoaderForWorkspacesWithoutDependency() throws Exception + { + WorkspaceSDLC sdlcInfo = new WorkspaceSDLC(); + sdlcInfo.project = "proj-1234"; + sdlcInfo.isGroupWorkspace = true; + sdlcInfo.version = "workspaceAbc"; + + PureModelContextPointer pointer = new PureModelContextPointer(); + pointer.sdlcInfo = sdlcInfo; + + configureWireMockForRetries(); + SDLCLoader sdlcLoader = createSDLCLoader(); + PureModelContextData pmcdLoaded = sdlcLoader.load(Lists.fixedSize.empty(), pointer, "v1_32_0", tracer.activeSpan()); + Assert.assertNotNull(pmcdLoaded); + Assert.assertEquals(1, pmcdLoaded.getElements().size()); + Assert.assertEquals("pkg::pkg::myClass", pmcdLoaded.getElements().get(0).getPath()); + } + + @Test + public void testSdlcLoaderForWorkspacesWithDependency() throws Exception + { + WorkspaceSDLC sdlcInfo = new WorkspaceSDLC(); + sdlcInfo.project = "proj-1235"; + sdlcInfo.isGroupWorkspace = false; + sdlcInfo.version = "workspaceAbc"; + + PureModelContextPointer pointer = new PureModelContextPointer(); + pointer.sdlcInfo = sdlcInfo; + + configureWireMockForRetries(); + SDLCLoader sdlcLoader = createSDLCLoader(); + + ModelManager modelManager = new ModelManager(DeploymentMode.TEST, tracer, sdlcLoader); + + PureModelContextData pmcdLoaded = modelManager.loadData(pointer, "v1_32_0", Lists.fixedSize.empty()); + + Assert.assertNotNull(pmcdLoaded); + Assert.assertEquals(2, pmcdLoaded.getElements().size()); + + List paths = pmcdLoaded.getElements().stream().map(PackageableElement::getPath).sorted().collect(Collectors.toList()); + Assert.assertEquals("pkg::pkg::myAnotherClass", paths.get(0)); + Assert.assertEquals("pkg::pkg::myClass", paths.get(1)); + } + private static PureModelContextPointer getPureModelContextPointer() { AlloySDLC sdlcInfo = new AlloySDLC(); @@ -127,6 +180,7 @@ private SDLCLoader createSDLCLoader() MetaDataServerConfiguration serverConfiguration = new MetaDataServerConfiguration(); serverConfiguration.alloy = new ServerConnectionConfiguration(); serverConfiguration.pure = new ServerConnectionConfiguration(); + serverConfiguration.sdlc = new ServerConnectionConfiguration(); serverConfiguration.alloy.host = "localhost"; serverConfiguration.alloy.port = rule.port(); @@ -136,13 +190,19 @@ private SDLCLoader createSDLCLoader() serverConfiguration.pure.port = rule.port(); serverConfiguration.pure.prefix = "/pure"; + serverConfiguration.sdlc.host = "localhost"; + serverConfiguration.sdlc.port = rule.port(); + serverConfiguration.sdlc.prefix = "/sdlc"; + return new SDLCLoader(serverConfiguration, Subject::new); } private static void configureWireMockForRetries() throws JsonProcessingException { + ObjectMapper objectMapper = ObjectMapperFactory.getNewStandardObjectMapperWithPureProtocolExtensionSupports(); + PureModelContextData data = PureModelContextData.newPureModelContextData(new Protocol(), new PureModelContextPointer(), Lists.fixedSize.empty()); - String pmcdJson = ObjectMapperFactory.getNewStandardObjectMapperWithPureProtocolExtensionSupports().writeValueAsString(data); + String pmcdJson = objectMapper.writeValueAsString(data); WireMock.stubFor(WireMock.get("/alloy/projects/groupId/artifactId/versions/1.0.0/pureModelContextData?clientVersion=v1_32_0") .inScenario("RETRY_FAILURES") @@ -161,6 +221,34 @@ private static void configureWireMockForRetries() throws JsonProcessingException .whenScenarioStateIs("FAILED_2") .willReturn(WireMock.okJson(pmcdJson)) .willSetStateTo("FAILED_3")); + + + Class t = new Class(); + t.name = "myClass"; + t._package = "pkg::pkg"; + PureModelContextData data2 = PureModelContextData.newPureModelContextData(new Protocol(), new PureModelContextPointer(), Lists.fixedSize.with(t)); + String pmcdJson2 = objectMapper.writeValueAsString(data2); + + Class t2 = new Class(); + t2.name = "myAnotherClass"; + t2._package = "pkg::pkg"; + PureModelContextData dataDep = PureModelContextData.newPureModelContextData(new Protocol(), new PureModelContextPointer(), Lists.fixedSize.with(t2)); + String pmcdJsonDep = objectMapper.writeValueAsString(dataDep); + + WireMock.stubFor(WireMock.get("/sdlc/api/projects/proj-1234/groupWorkspaces/workspaceAbc/pureModelContextData") + .willReturn(WireMock.okJson(pmcdJson2))); + + WireMock.stubFor(WireMock.get("/sdlc/api/projects/proj-1234/groupWorkspaces/workspaceAbc/revisions/HEAD/upstreamProjects") + .willReturn(WireMock.okJson("[]"))); + + WireMock.stubFor(WireMock.get("/sdlc/api/projects/proj-1235/workspaces/workspaceAbc/pureModelContextData") + .willReturn(WireMock.okJson(pmcdJson2))); + + WireMock.stubFor(WireMock.get("/sdlc/api/projects/proj-1235/workspaces/workspaceAbc/revisions/HEAD/upstreamProjects") + .willReturn(WireMock.okJson("[{\"projectId\": \"org.finos.legend.dependency:models\",\"versionId\": \"2.0.1\"}]"))); + + WireMock.stubFor(WireMock.get("/alloy/projects/org.finos.legend.dependency/models/versions/2.0.1/pureModelContextData?clientVersion=v1_32_0") + .willReturn(WireMock.okJson(pmcdJsonDep))); } private static void configureWireMockForNoRetries() throws JsonProcessingException diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/src/main/java/org/finos/legend/engine/language/pure/modelManager/ModelManager.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/src/main/java/org/finos/legend/engine/language/pure/modelManager/ModelManager.java index 6b188225374..123dc45665c 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/src/main/java/org/finos/legend/engine/language/pure/modelManager/ModelManager.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-language-pure-modelManager/src/main/java/org/finos/legend/engine/language/pure/modelManager/ModelManager.java @@ -18,7 +18,10 @@ import com.google.common.cache.Cache; import com.google.common.cache.CacheBuilder; import io.opentracing.Scope; +import io.opentracing.Tracer; import io.opentracing.util.GlobalTracer; +import java.util.concurrent.ExecutionException; +import java.util.concurrent.TimeUnit; import org.eclipse.collections.api.block.procedure.Procedure; import org.eclipse.collections.api.list.MutableList; import org.eclipse.collections.api.tuple.Pair; @@ -36,10 +39,6 @@ import org.finos.legend.engine.shared.core.operational.Assert; import org.finos.legend.engine.shared.core.operational.errorManagement.EngineException; import org.pac4j.core.profile.CommonProfile; -import org.slf4j.Logger; - -import java.util.concurrent.ExecutionException; -import java.util.concurrent.TimeUnit; public class ModelManager { @@ -57,9 +56,16 @@ public class ModelManager public final Cache pureModelCache = CacheBuilder.newBuilder().recordStats().softValues().expireAfterAccess(30, TimeUnit.MINUTES).build(); private final DeploymentMode deploymentMode; private final MutableList modelLoaders; + private final Tracer tracer; public ModelManager(DeploymentMode mode, ModelLoader... modelLoaders) { + this(mode, GlobalTracer.get(), modelLoaders); + } + + public ModelManager(DeploymentMode mode, Tracer tracer, ModelLoader... modelLoaders) + { + this.tracer = tracer; this.modelLoaders = Lists.mutable.of(modelLoaders); this.modelLoaders.forEach((Procedure) loader -> loader.setModelManager(this)); this.deploymentMode = mode; @@ -104,7 +110,7 @@ public String getLambdaReturnType(Lambda lambda, PureModelContext context, Strin // Remove clientVersion public PureModelContextData loadData(PureModelContext context, String clientVersion, MutableList pm) { - try (Scope scope = GlobalTracer.get().buildSpan("Load Model").startActive(true)) + try (Scope scope = tracer.buildSpan("Load Model").startActive(true)) { scope.span().setTag("context", context.getClass().getSimpleName()); if (context instanceof PureModelContextData) diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/context/AlloySDLC.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/context/AlloySDLC.java index b261bff20d9..9e8456e87c5 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/context/AlloySDLC.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/context/AlloySDLC.java @@ -50,4 +50,10 @@ public int hashCode() { return Objects.hashCode(this.project) + 89 * Objects.hashCode(this.version) + 17 * Objects.hashCode(this.groupId) + 17 * Objects.hashCode(artifactId); } + + @Override + public T accept(SDLCVisitor visitor) + { + return visitor.visit(this); + } } diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/context/PureSDLC.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/context/PureSDLC.java index 1de16fb4977..a5c3fbacc9a 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/context/PureSDLC.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/context/PureSDLC.java @@ -40,4 +40,10 @@ public int hashCode() { return Objects.hash(this.overrideUrl, this.version, this.baseVersion, this.packageableElementPointers); } + + @Override + public T accept(SDLCVisitor visitor) + { + return visitor.visit(this); + } } diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/context/SDLC.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/context/SDLC.java index 88ca3ab4a84..d4034434c1f 100644 --- a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/context/SDLC.java +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/context/SDLC.java @@ -16,7 +16,6 @@ import com.fasterxml.jackson.annotation.JsonSubTypes; import com.fasterxml.jackson.annotation.JsonTypeInfo; - import java.util.Collections; import java.util.List; import java.util.Objects; @@ -24,7 +23,8 @@ @JsonTypeInfo(use = JsonTypeInfo.Id.NAME, property = "_type") @JsonSubTypes({ @JsonSubTypes.Type(value = PureSDLC.class, name = "pure"), - @JsonSubTypes.Type(value = AlloySDLC.class, name = "alloy") + @JsonSubTypes.Type(value = AlloySDLC.class, name = "alloy"), + @JsonSubTypes.Type(value = WorkspaceSDLC.class, name = "workspace") }) public abstract class SDLC { @@ -52,4 +52,9 @@ public int hashCode() { return Objects.hash(version, packageableElementPointers); } + + public T accept(SDLCVisitor visitor) + { + throw new UnsupportedOperationException("Not implemented"); + } } diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/context/SDLCVisitor.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/context/SDLCVisitor.java new file mode 100644 index 00000000000..f0712e8e930 --- /dev/null +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/context/SDLCVisitor.java @@ -0,0 +1,25 @@ +// Copyright 2023 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.model.context; + +public interface SDLCVisitor +{ + T visit(AlloySDLC alloySDLC); + + T visit(PureSDLC pureSDLC); + + T visit(WorkspaceSDLC workspaceSDLC); +} diff --git a/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/context/WorkspaceSDLC.java b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/context/WorkspaceSDLC.java new file mode 100644 index 00000000000..fd2ea504951 --- /dev/null +++ b/legend-engine-core/legend-engine-core-language-pure/legend-engine-protocol-pure/src/main/java/org/finos/legend/engine/protocol/pure/v1/model/context/WorkspaceSDLC.java @@ -0,0 +1,61 @@ +// Copyright 2020 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.model.context; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import com.fasterxml.jackson.annotation.JsonProperty; +import java.util.Objects; + +public class WorkspaceSDLC extends SDLC +{ + @JsonProperty(value = "project") + public String project; + + @JsonProperty(value = "isGroupWorkspace") + public boolean isGroupWorkspace; + + @JsonIgnore + public String getWorkspace() + { + return this.version; + } + + @Override + public boolean equals(Object o) + { + if (this == o) + { + return true; + } + if ((o == null) || (o.getClass() != this.getClass())) + { + return false; + } + WorkspaceSDLC that = (WorkspaceSDLC) o; + return Objects.equals(this.project, that.project) && Objects.equals(this.version, that.version) && Objects.equals(this.isGroupWorkspace, that.isGroupWorkspace); + } + + @Override + public int hashCode() + { + return Objects.hashCode(this.project) + 89 * Objects.hashCode(this.version) + 17 * Objects.hashCode(this.isGroupWorkspace); + } + + @Override + public T accept(SDLCVisitor visitor) + { + return visitor.visit(this); + } +} diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml index 87baf707ac8..d00c433bc79 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/pom.xml @@ -192,21 +192,6 @@ jackson-databind - - org.apache.httpcomponents - httpclient - - - commons-codec - commons-codec - - - - - org.apache.httpcomponents - httpcore - - com.google.guava diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/src/main/java/org/finos/legend/engine/query/graphQL/api/GraphQL.java b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/src/main/java/org/finos/legend/engine/query/graphQL/api/GraphQL.java index fb7c116a500..529a3af8af7 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/src/main/java/org/finos/legend/engine/query/graphQL/api/GraphQL.java +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/src/main/java/org/finos/legend/engine/query/graphQL/api/GraphQL.java @@ -14,51 +14,30 @@ package org.finos.legend.engine.query.graphQL.api; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.JsonNode; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.apache.http.client.ClientProtocolException; -import org.apache.http.client.CookieStore; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpGet; -import org.apache.http.impl.client.BasicCookieStore; -import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.util.EntityUtils; +import java.security.PrivilegedActionException; +import java.security.PrivilegedExceptionAction; +import javax.security.auth.Subject; +import javax.servlet.http.HttpServletRequest; import org.eclipse.collections.api.list.MutableList; -import org.eclipse.collections.impl.utility.ArrayIterate; import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; import org.finos.legend.engine.language.pure.modelManager.ModelManager; import org.finos.legend.engine.language.pure.modelManager.sdlc.configuration.MetaDataServerConfiguration; -import org.finos.legend.engine.plan.execution.result.ConstantResult; -import org.finos.legend.engine.plan.execution.result.Result; import org.finos.legend.engine.protocol.graphQL.metamodel.Document; import org.finos.legend.engine.protocol.graphQL.metamodel.ProtocolToMetamodelTranslator; -import org.finos.legend.engine.protocol.graphQL.metamodel.executable.OperationDefinition; import org.finos.legend.engine.protocol.pure.PureClientVersions; import org.finos.legend.engine.protocol.pure.v1.model.context.AlloySDLC; -import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextPointer; -import org.finos.legend.engine.shared.core.ObjectMapperFactory; -import org.finos.legend.engine.shared.core.kerberos.HttpClientBuilder; +import org.finos.legend.engine.protocol.pure.v1.model.context.WorkspaceSDLC; import org.finos.legend.engine.shared.core.kerberos.ProfileManagerHelper; -import org.finos.legend.engine.shared.core.operational.errorManagement.EngineException; import org.pac4j.core.profile.CommonProfile; -import javax.security.auth.Subject; -import javax.servlet.http.HttpServletRequest; -import java.security.PrivilegedActionException; -import java.security.PrivilegedExceptionAction; -import java.util.List; - public abstract class GraphQL { protected ModelManager modelManager; - protected MetaDataServerConfiguration metadataserver; public GraphQL(ModelManager modelManager, MetaDataServerConfiguration metadataserver) { this.modelManager = modelManager; - this.metadataserver = metadataserver; } public static org.finos.legend.pure.generated.Root_meta_external_query_graphQL_metamodel_sdl_Document toPureModel(Document document, PureModel pureModel) @@ -68,106 +47,21 @@ public static org.finos.legend.pure.generated.Root_meta_external_query_graphQL_m protected PureModel loadSDLCProjectModel(MutableList profiles, HttpServletRequest request, String projectId, String workspaceId, boolean isGroupWorkspace) throws PrivilegedActionException { - Subject subject = ProfileManagerHelper.extractSubject(profiles); - return subject == null ? - getSDLCProjectPureModel(profiles, request, projectId, workspaceId, isGroupWorkspace) : - Subject.doAs(subject, (PrivilegedExceptionAction) () -> getSDLCProjectPureModel(profiles, request, projectId, workspaceId, isGroupWorkspace)); - } - - private static class SDLCProjectDependency - { - public String projectId; - public String versionId; - - public String getGroupId() - { - return projectId.split(":")[0]; - } - - public String getArtifactId() - { - return projectId.split(":")[1]; - } - - public String getVersionId() - { - return versionId; - } - } - - private PureModelContextData getSDLCDependenciesPMCD(MutableList profiles, CookieStore cookieStore, String projectId, String workspaceId, boolean isGroupWorkspace) - { - try (CloseableHttpClient client = (CloseableHttpClient) HttpClientBuilder.getHttpClient(cookieStore)) - { - HttpGet req = new HttpGet("http://" + metadataserver.getSdlc().host + ":" + metadataserver.getSdlc().port + "/api/projects/" + projectId + (isGroupWorkspace ? "/groupWorkspaces/" : "/workspaces/") + workspaceId + "/revisions/" + "HEAD" + "/upstreamProjects"); - try (CloseableHttpResponse res = client.execute(req)) - { - ObjectMapper mapper = ObjectMapperFactory.getNewStandardObjectMapperWithPureProtocolExtensionSupports(); - List dependencies = mapper.readValue(EntityUtils.toString(res.getEntity()), new TypeReference>() {}); - PureModelContextData.Builder builder = PureModelContextData.newBuilder(); - dependencies.forEach(dependency -> - { - try - { - builder.addPureModelContextData(loadProjectData(profiles, dependency.getGroupId(), dependency.getArtifactId(), dependency.versionId)); - } - catch (Exception e) - { - throw new RuntimeException(e); - } - }); - builder.removeDuplicates(); - return builder.build(); - } - } - catch (Exception e) - { - throw new RuntimeException(e); - } - } - - private PureModel getSDLCProjectPureModel(MutableList profiles, HttpServletRequest request, String projectId, String workspaceId, boolean isGroupWorkspace) - { - CookieStore cookieStore = new BasicCookieStore(); - ArrayIterate.forEach(request.getCookies(), c -> cookieStore.addCookie(new MyCookie(c))); - + WorkspaceSDLC sdlcInfo = new WorkspaceSDLC(); + sdlcInfo.project = projectId; + sdlcInfo.version = workspaceId; + sdlcInfo.isGroupWorkspace = isGroupWorkspace; - try (CloseableHttpClient client = (CloseableHttpClient) HttpClientBuilder.getHttpClient(cookieStore)) - { - if (metadataserver == null || metadataserver.getSdlc() == null) - { - throw new EngineException("Please specify the metadataserver.sdlc information in the server configuration"); - } - HttpGet req = new HttpGet("http://" + metadataserver.getSdlc().host + ":" + metadataserver.getSdlc().port + "/api/projects/" + projectId + (isGroupWorkspace ? "/groupWorkspaces/" : "/workspaces/") + workspaceId + "/pureModelContextData"); - try (CloseableHttpResponse res = client.execute(req)) - { - ObjectMapper mapper = ObjectMapperFactory.getNewStandardObjectMapperWithPureProtocolExtensionSupports(); - PureModelContextData pureModelContextData = mapper.readValue(res.getEntity().getContent(), PureModelContextData.class); - PureModelContextData dependenciesPMCD = getSDLCDependenciesPMCD(profiles, cookieStore, projectId, workspaceId, isGroupWorkspace); - return this.modelManager.loadModel(pureModelContextData.combine(dependenciesPMCD), PureClientVersions.production, profiles, ""); - } - } - catch (Exception e) - { - throw new RuntimeException(e); - } - } - - protected PureModel loadProjectModel(MutableList profiles, String groupId, String artifactId, String versionId) throws PrivilegedActionException - { - Subject subject = ProfileManagerHelper.extractSubject(profiles); PureModelContextPointer pointer = new PureModelContextPointer(); - AlloySDLC sdlcInfo = new AlloySDLC(); - sdlcInfo.groupId = groupId; - sdlcInfo.artifactId = artifactId; - sdlcInfo.version = versionId; pointer.sdlcInfo = sdlcInfo; + + Subject subject = ProfileManagerHelper.extractSubject(profiles); return subject == null ? this.modelManager.loadModel(pointer, PureClientVersions.production, profiles, "") : Subject.doAs(subject, (PrivilegedExceptionAction) () -> this.modelManager.loadModel(pointer, PureClientVersions.production, profiles, "")); } - protected PureModelContextData loadProjectData(MutableList profiles, String groupId, String artifactId, String versionId) throws PrivilegedActionException + protected PureModel loadProjectModel(MutableList profiles, String groupId, String artifactId, String versionId) throws PrivilegedActionException { Subject subject = ProfileManagerHelper.extractSubject(profiles); PureModelContextPointer pointer = new PureModelContextPointer(); @@ -177,7 +71,7 @@ protected PureModelContextData loadProjectData(MutableList profil sdlcInfo.version = versionId; pointer.sdlcInfo = sdlcInfo; return subject == null ? - this.modelManager.loadData(pointer, PureClientVersions.production, profiles) : - Subject.doAs(subject, (PrivilegedExceptionAction) () -> this.modelManager.loadData(pointer, PureClientVersions.production, profiles)); + this.modelManager.loadModel(pointer, PureClientVersions.production, profiles, "") : + Subject.doAs(subject, (PrivilegedExceptionAction) () -> this.modelManager.loadModel(pointer, PureClientVersions.production, profiles, "")); } } diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/src/main/java/org/finos/legend/engine/query/graphQL/api/MyCookie.java b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/src/main/java/org/finos/legend/engine/query/graphQL/api/MyCookie.java deleted file mode 100644 index 93152da1e14..00000000000 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/src/main/java/org/finos/legend/engine/query/graphQL/api/MyCookie.java +++ /dev/null @@ -1,105 +0,0 @@ -// Copyright 2022 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.query.graphQL.api; - -import org.apache.http.cookie.Cookie; - -import java.util.Date; - -public class MyCookie implements Cookie -{ - private javax.servlet.http.Cookie cookie; - - public MyCookie(javax.servlet.http.Cookie cookie) - { - this.cookie = cookie; - } - - @Override - public String getName() - { - return this.cookie.getName(); - } - - @Override - public String getValue() - { - return this.cookie.getValue(); - } - - @Override - public String getComment() - { - return this.cookie.getComment(); - } - - @Override - public String getCommentURL() - { - return ""; - } - - @Override - public Date getExpiryDate() - { - if (this.cookie.getMaxAge() >= 0) - { - return new Date(System.currentTimeMillis() + this.cookie.getMaxAge() * 1000L); - } - throw new RuntimeException(""); - } - - @Override - public boolean isPersistent() - { - return true; - } - - @Override - public String getDomain() - { - return "localhost"; - } - - @Override - public String getPath() - { - return "/"; - } - - @Override - public int[] getPorts() - { - return new int[]{}; - } - - @Override - public boolean isSecure() - { - return false; - } - - @Override - public int getVersion() - { - return this.cookie.getVersion(); - } - - @Override - public boolean isExpired(Date date) - { - return false; - } -} diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/src/test/java/org/finos/legend/engine/query/graphQL/api/test/TestGraphQLAPI.java b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/src/test/java/org/finos/legend/engine/query/graphQL/api/test/TestGraphQLAPI.java index 5990eef55c4..04c39c60111 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/src/test/java/org/finos/legend/engine/query/graphQL/api/test/TestGraphQLAPI.java +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-query/src/test/java/org/finos/legend/engine/query/graphQL/api/test/TestGraphQLAPI.java @@ -128,7 +128,7 @@ private GraphQLExecute getGraphQLExecute() private GraphQLExecute getGraphQLExecuteWithCache(GraphQLPlanCache cache) { - ModelManager modelManager = new ModelManager(DeploymentMode.TEST); + ModelManager modelManager = createModelManager(); PlanExecutor executor = PlanExecutor.newPlanExecutorWithAvailableStoreExecutors(); MutableList generatorExtensions = Lists.mutable.withAll(ServiceLoader.load(PlanGeneratorExtension.class)); GraphQLExecute graphQLExecute = new GraphQLExecute(modelManager, executor, metaDataServerConfiguration, (pm) -> PureCoreExtensionLoader.extensions().flatCollect(g -> g.extraPureCoreExtensions(pm.getExecutionSupport())), generatorExtensions.flatCollect(PlanGeneratorExtension::getExtraPlanTransformers), cache); @@ -222,7 +222,7 @@ public void testGraphQLExecuteDevAPI_ProcessingTemporalMilestoning_Root() throws @Test public void testGraphQLExecuteDevAPI_Relational_WithDependencies() throws Exception { - ModelManager modelManager = new ModelManager(DeploymentMode.TEST, new SDLCLoader(metaDataServerConfiguration, null)); + ModelManager modelManager = createModelManager(); PlanExecutor executor = PlanExecutor.newPlanExecutorWithAvailableStoreExecutors(); MutableList generatorExtensions = Lists.mutable.withAll(ServiceLoader.load(PlanGeneratorExtension.class)); GraphQLExecute graphQLExecute = new GraphQLExecute(modelManager, executor, metaDataServerConfiguration, (pm) -> PureCoreExtensionLoader.extensions().flatCollect(g -> g.extraPureCoreExtensions(pm.getExecutionSupport())), generatorExtensions.flatCollect(PlanGeneratorExtension::getExtraPlanTransformers)); @@ -252,6 +252,11 @@ public void testGraphQLExecuteDevAPI_Relational_WithDependencies() throws Except Assert.assertEquals(expected, responseAsString(response)); } + private static ModelManager createModelManager() + { + return new ModelManager(DeploymentMode.TEST, new SDLCLoader(metaDataServerConfiguration, null)); + } + @Test public void testGraphQLExecuteDevAPI_RelationalWithParameter() throws Exception @@ -483,7 +488,7 @@ public void testGraphQLExecuteGeneratePlansDevAPI_Relational() @Test public void testGraphQLDebugGenerateGraphFetchDevAPI() { - ModelManager modelManager = new ModelManager(DeploymentMode.TEST); + ModelManager modelManager = createModelManager(); MutableList generatorExtensions = Lists.mutable.withAll(ServiceLoader.load(PlanGeneratorExtension.class)); GraphQLDebug graphQLDebug = new GraphQLDebug(modelManager, metaDataServerConfiguration, (pm) -> PureCoreExtensionLoader.extensions().flatCollect(g -> g.extraPureCoreExtensions(pm.getExecutionSupport()))); HttpServletRequest mockRequest = Mockito.mock(HttpServletRequest.class); @@ -674,7 +679,7 @@ public void testGraphQLExecuteDevAPI_EchoDirective() throws Exception private static Handler buildPMCDMetadataHandler(String path, String resourcePath) throws Exception { - return buildPMCDMetadataHandler(path, resourcePath, null, null); + return buildPMCDMetadataHandler(path, resourcePath, new Protocol("pure", PureClientVersions.production), new PureModelContextPointer()); } private static Handler buildPMCDMetadataHandler(String path, String resourcePath, Protocol serializer, PureModelContextPointer pointer) throws Exception diff --git a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/src/test/java/org/finos/legend/engine/query/graphQL/extension/relational/directives/TestTotalCountDirective.java b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/src/test/java/org/finos/legend/engine/query/graphQL/extension/relational/directives/TestTotalCountDirective.java index 08145f9f25b..f194834514e 100644 --- a/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/src/test/java/org/finos/legend/engine/query/graphQL/extension/relational/directives/TestTotalCountDirective.java +++ b/legend-engine-xts-graphQL/legend-engine-xt-graphQL-relational-extension/src/test/java/org/finos/legend/engine/query/graphQL/extension/relational/directives/TestTotalCountDirective.java @@ -27,6 +27,7 @@ import org.finos.legend.engine.language.graphQL.grammar.from.GraphQLGrammarParser; import org.finos.legend.engine.language.pure.grammar.from.PureGrammarParser; import org.finos.legend.engine.language.pure.modelManager.ModelManager; +import org.finos.legend.engine.language.pure.modelManager.sdlc.SDLCLoader; import org.finos.legend.engine.language.pure.modelManager.sdlc.configuration.MetaDataServerConfiguration; import org.finos.legend.engine.language.pure.modelManager.sdlc.configuration.ServerConnectionConfiguration; import org.finos.legend.engine.plan.execution.PlanExecutor; @@ -112,7 +113,7 @@ private GraphQLExecute getGraphQLExecute() private GraphQLExecute getGraphQLExecuteWithCache(GraphQLPlanCache cache) { - ModelManager modelManager = new ModelManager(DeploymentMode.TEST); + ModelManager modelManager = new ModelManager(DeploymentMode.TEST, new SDLCLoader(metaDataServerConfiguration, null)); PlanExecutor executor = PlanExecutor.newPlanExecutorWithAvailableStoreExecutors(); MutableList generatorExtensions = Lists.mutable.withAll(ServiceLoader.load(PlanGeneratorExtension.class)); GraphQLExecute graphQLExecute = new GraphQLExecute(modelManager, executor, metaDataServerConfiguration, (pm) -> PureCoreExtensionLoader.extensions().flatCollect(g -> g.extraPureCoreExtensions(pm.getExecutionSupport())), generatorExtensions.flatCollect(PlanGeneratorExtension::getExtraPlanTransformers), cache); @@ -242,7 +243,7 @@ public void testGraphQLExecuteDevAPI_TotalCountDirective_Caching() throws Except private static Handler buildPMCDMetadataHandler(String path, String resourcePath) throws Exception { - return buildPMCDMetadataHandler(path, resourcePath, null, null); + return buildPMCDMetadataHandler(path, resourcePath, new Protocol(), new PureModelContextPointer()); } private static Handler buildPMCDMetadataHandler(String path, String resourcePath, Protocol serializer, PureModelContextPointer pointer) throws Exception diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml index 5f14306fe7f..d19fd34b368 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/pom.xml @@ -45,11 +45,6 @@ - - javax.ws.rs - javax.ws.rs-api - - org.finos.legend.engine @@ -94,10 +89,6 @@ org.apache.httpcomponents httpclient - - org.apache.httpcomponents - httpcore - @@ -116,10 +107,6 @@ com.fasterxml.jackson.core jackson-databind - - com.fasterxml.jackson.core - jackson-annotations - @@ -154,10 +141,6 @@ commons-io test - - org.finos.legend.shared - legend-shared-pac4j-gitlab - \ No newline at end of file diff --git a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/project/ProjectCoordinateLoader.java b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/project/ProjectCoordinateLoader.java index 507692770eb..6e85e4667cd 100644 --- a/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/project/ProjectCoordinateLoader.java +++ b/legend-engine-xts-sql/legend-engine-xt-sql-providers/legend-engine-xt-sql-providers-shared/src/main/java/org/finos/legend/engine/query/sql/providers/shared/project/ProjectCoordinateLoader.java @@ -15,51 +15,25 @@ package org.finos.legend.engine.query.sql.providers.shared.project; -import com.fasterxml.jackson.annotation.JsonIgnoreProperties; -import com.fasterxml.jackson.annotation.JsonProperty; -import com.fasterxml.jackson.core.type.TypeReference; -import com.fasterxml.jackson.databind.ObjectMapper; -import org.apache.http.HttpRequest; -import org.apache.http.StatusLine; -import org.apache.http.client.methods.CloseableHttpResponse; -import org.apache.http.client.methods.HttpGet; +import java.util.Optional; import org.apache.http.impl.client.BasicCookieStore; import org.apache.http.impl.client.CloseableHttpClient; -import org.apache.http.message.BasicHeader; -import org.apache.http.util.EntityUtils; import org.eclipse.collections.api.block.function.Function; import org.eclipse.collections.api.list.MutableList; import org.finos.legend.engine.language.pure.modelManager.ModelManager; -import org.finos.legend.engine.language.pure.modelManager.sdlc.SDLCLoader; -import org.finos.legend.engine.language.pure.modelManager.sdlc.configuration.MetadataServerPrivateAccessTokenConfiguration; import org.finos.legend.engine.language.pure.modelManager.sdlc.configuration.ServerConnectionConfiguration; import org.finos.legend.engine.protocol.pure.PureClientVersions; import org.finos.legend.engine.protocol.pure.v1.model.context.AlloySDLC; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextData; import org.finos.legend.engine.protocol.pure.v1.model.context.PureModelContextPointer; -import org.finos.legend.engine.query.sql.providers.shared.utils.TraceUtils; -import org.finos.legend.engine.shared.core.ObjectMapperFactory; +import org.finos.legend.engine.protocol.pure.v1.model.context.WorkspaceSDLC; import org.finos.legend.engine.shared.core.kerberos.HttpClientBuilder; -import org.finos.legend.engine.shared.core.kerberos.ProfileManagerHelper; import org.finos.legend.engine.shared.core.operational.errorManagement.EngineException; -import org.finos.legend.engine.shared.core.operational.logs.LoggingEventType; -import org.finos.legend.server.pac4j.gitlab.GitlabPersonalAccessTokenProfile; import org.pac4j.core.profile.CommonProfile; -import javax.security.auth.Subject; -import javax.ws.rs.core.Response; -import java.net.URI; -import java.security.PrivilegedAction; -import java.util.List; -import java.util.Optional; - public class ProjectCoordinateLoader { - private static final ObjectMapper OBJECT_MAPPER = ObjectMapperFactory.getNewStandardObjectMapperWithPureProtocolExtensionSupports(); - private final ModelManager modelManager; - private final ServerConnectionConfiguration sdlcServerConfig; - private final Function, CloseableHttpClient> httpClientProvider; public ProjectCoordinateLoader(ModelManager modelManager, ServerConnectionConfiguration sdlcServerConfig) { @@ -69,8 +43,6 @@ public ProjectCoordinateLoader(ModelManager modelManager, ServerConnectionConfig public ProjectCoordinateLoader(ModelManager modelManager, ServerConnectionConfiguration sdlcServerConfig, Function, CloseableHttpClient> httpClientProvider) { this.modelManager = modelManager; - this.sdlcServerConfig = sdlcServerConfig; - this.httpClientProvider = httpClientProvider; } public ProjectResolvedContext resolve(ProjectCoordinateWrapper projectCoordinateWrapper, MutableList profiles) @@ -135,146 +107,14 @@ private void enrichCoordinates(AlloySDLC alloySDLC, String coordinates) private PureModelContextData loadProjectPureModelContextData(String project, String workspace, boolean isGroup, MutableList profiles) { - return doAs(ProfileManagerHelper.extractSubject(profiles), () -> - { - String url = String.format("%s/api/projects/%s/%s/%s/pureModelContextData", sdlcServerConfig.getBaseUrl(), project, isGroup ? "groupWorkspaces" : "workspaces", workspace); - PureModelContextData projectPMCD = SDLCLoader.loadMetadataFromHTTPURL(profiles, LoggingEventType.METADATA_REQUEST_ALLOY_PROJECT_START, LoggingEventType.METADATA_REQUEST_ALLOY_PROJECT_STOP, url, httpClientProvider, (String _url) -> - { - HttpGet httpRequest = new HttpGet(_url); - if (this.sdlcServerConfig.pac4j != null && this.sdlcServerConfig.pac4j instanceof MetadataServerPrivateAccessTokenConfiguration) - { - String patHeaderName = ((MetadataServerPrivateAccessTokenConfiguration) this.sdlcServerConfig.pac4j).accessTokenHeaderName; - MutableList patProfiles = profiles.selectInstancesOf(GitlabPersonalAccessTokenProfile.class); - if (patProfiles.getFirst() != null) - { - httpRequest = new HttpGet(String.format("%s?client_name=%s", _url, patProfiles.getFirst().getClientName())); - httpRequest.addHeader(new BasicHeader(patHeaderName, patProfiles.getFirst().getPersonalAccessToken())); - } - } - return httpRequest; - }); - PureModelContextData dependencyPMCD = getSDLCDependenciesPMCD(project, workspace, isGroup, profiles); - - return projectPMCD.combine(dependencyPMCD); - }); - } - - private PureModelContextData getSDLCDependenciesPMCD(String project, String workspace, boolean isGroup, MutableList profiles) - { - return TraceUtils.trace("Get SDLC Dependencies", span -> - { - - span.setTag("project", project); - span.setTag("workspace", workspace); - span.setTag("group", isGroup); - - if (sdlcServerConfig == null) - { - throw new EngineException("SDLC Server configuration must be supplied"); - } - try (CloseableHttpClient client = this.httpClientProvider.apply(profiles)) - { - String url = String.format("%s/api/projects/%s/%s/%s/revisions/HEAD/upstreamProjects", - sdlcServerConfig.getBaseUrl(), - project, - isGroup ? "groupWorkspaces" : "workspaces", - workspace); - - HttpGet httpRequest = new HttpGet(url); - String patHeaderName = ((MetadataServerPrivateAccessTokenConfiguration) this.sdlcServerConfig.pac4j).accessTokenHeaderName; - MutableList patProfiles = profiles.selectInstancesOf(GitlabPersonalAccessTokenProfile.class); - if (patProfiles.getFirst() != null) - { - httpRequest = new HttpGet(String.format("%s?client_name=%s", url, patProfiles.getFirst().getClientName())); - httpRequest.addHeader(new BasicHeader(patHeaderName, patProfiles.getFirst().getPersonalAccessToken())); - } - - try (CloseableHttpResponse response = client.execute(httpRequest)) - { - StatusLine status = response.getStatusLine(); - if (!Response.Status.Family.familyOf(status.getStatusCode()).equals(Response.Status.Family.SUCCESSFUL)) - { - throw new RuntimeException(String.format("Status Code: %s\nReason: %s\nMessage: %s", - status.getStatusCode(), status.getReasonPhrase(), "Error fetching from " + url)); - } - - List dependencies = OBJECT_MAPPER.readValue(EntityUtils.toString(response.getEntity()), new TypeReference>() - { - }); - PureModelContextData.Builder builder = PureModelContextData.newBuilder(); - dependencies.forEach(dependency -> - { - try - { - builder.addPureModelContextData(loadProjectData(profiles, dependency.getGroupId(), dependency.getArtifactId(), dependency.versionId)); - } - catch (Exception e) - { - throw new RuntimeException(e); - } - }); - builder.removeDuplicates(); - return builder.build(); - } - } - catch (Exception e) - { - throw new RuntimeException(e); - } - }); - } - - private PureModelContextData loadProjectData(MutableList profiles, String groupId, String artifactId, String versionId) - { - return TraceUtils.trace("Loading Project Data", span -> - { - - span.setTag("groupId", groupId); - span.setTag("artifactId", artifactId); - span.setTag("versionId", versionId); + WorkspaceSDLC sdlcInfo = new WorkspaceSDLC(); + sdlcInfo.project = project; + sdlcInfo.version = workspace; + sdlcInfo.isGroupWorkspace = isGroup; - Subject subject = ProfileManagerHelper.extractSubject(profiles); - PureModelContextPointer pointer = new PureModelContextPointer(); - AlloySDLC sdlcInfo = new AlloySDLC(); - sdlcInfo.groupId = groupId; - sdlcInfo.artifactId = artifactId; - sdlcInfo.version = versionId; - pointer.sdlcInfo = sdlcInfo; - - return doAs(subject, () -> this.modelManager.loadData(pointer, PureClientVersions.production, profiles)); - }); - } - - private T doAs(Subject subject, PrivilegedAction action) - { - return subject != null ? Subject.doAs(subject, action) : action.run(); - } - - @JsonIgnoreProperties(ignoreUnknown = true) - private static class SDLCProjectDependency - { - private final String projectId; - private final String versionId; - - public SDLCProjectDependency(@JsonProperty("projectId") String projectId, @JsonProperty("versionId") String versionId) - { - this.projectId = projectId; - this.versionId = versionId; - } - - public String getGroupId() - { - return projectId.split(":")[0]; - } - - public String getArtifactId() - { - return projectId.split(":")[1]; - } + PureModelContextPointer pointer = new PureModelContextPointer(); + pointer.sdlcInfo = sdlcInfo; - public String getVersionId() - { - return versionId; - } + return this.modelManager.loadData(pointer, PureClientVersions.production, profiles); } } \ No newline at end of file From 5737489742f73da25d30e83e90988cce68522d6b Mon Sep 17 00:00:00 2001 From: Mohammed Ibrahim Date: Mon, 6 Nov 2023 21:45:35 -0500 Subject: [PATCH 80/80] Refactor Modules (#2440) * rename method * Function activation cleanup * rollback file changes * Change spark keywords * Change spark keywords * Fix test * Add Primitive Type to Open APi Generator * Add byte * BigQuery Activator: Sandbox * refactor modules * refactor modules --- .../legend-engine-server/pom.xml | 4 ++ .../finos/legend/engine/server/Server.java | 2 +- .../pom.xml | 4 ++ .../pom.xml | 4 ++ .../pom.xml | 54 +++++++++++++++++++ .../deployment/DeploymentManager.java | 0 .../deployment/DeploymentResult.java | 0 .../deployment/FunctionActivatorArtifact.java | 0 ...ctionActivatorDeploymentConfiguration.java | 0 .../FunctionActivatorDeploymentContent.java | 0 legend-engine-xts-functionActivator/pom.xml | 1 + .../pom.xml | 18 ++----- .../api/HostedServiceService.java | 10 ++-- .../pom.xml | 25 +++++++-- .../deployment/HostedServiceArtifact.java | 2 +- ...tedServiceArtifactGenerationExtension.java | 2 +- .../deployment/HostedServiceContent.java | 2 +- .../HostedServiceDeploymentConfiguration.java | 2 +- .../HostedServiceDeploymentManager.java | 4 +- .../HostedServiceDeploymentResult.java | 2 +- .../legend-engine-xt-snowflakeApp-api/pom.xml | 4 ++ .../pom.xml | 2 +- pom.xml | 5 ++ 23 files changed, 113 insertions(+), 34 deletions(-) create mode 100644 legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/pom.xml rename legend-engine-xts-functionActivator/{legend-engine-xt-functionActivator-api => legend-engine-xt-functionActivator-deployment}/src/main/java/org/finos/legend/engine/functionActivator/deployment/DeploymentManager.java (100%) rename legend-engine-xts-functionActivator/{legend-engine-xt-functionActivator-api => legend-engine-xt-functionActivator-deployment}/src/main/java/org/finos/legend/engine/functionActivator/deployment/DeploymentResult.java (100%) rename legend-engine-xts-functionActivator/{legend-engine-xt-functionActivator-api => legend-engine-xt-functionActivator-deployment}/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorArtifact.java (100%) rename legend-engine-xts-functionActivator/{legend-engine-xt-functionActivator-api => legend-engine-xt-functionActivator-deployment}/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorDeploymentConfiguration.java (100%) rename legend-engine-xts-functionActivator/{legend-engine-xt-functionActivator-api => legend-engine-xt-functionActivator-deployment}/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorDeploymentContent.java (100%) rename legend-engine-xts-hostedService/{legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService => legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation}/deployment/HostedServiceArtifact.java (94%) rename legend-engine-xts-hostedService/{legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService => legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation}/deployment/HostedServiceArtifactGenerationExtension.java (97%) rename legend-engine-xts-hostedService/{legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService => legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation}/deployment/HostedServiceContent.java (94%) rename legend-engine-xts-hostedService/{legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService => legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation}/deployment/HostedServiceDeploymentConfiguration.java (91%) rename legend-engine-xts-hostedService/{legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService => legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation}/deployment/HostedServiceDeploymentManager.java (96%) rename legend-engine-xts-hostedService/{legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService => legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation}/deployment/HostedServiceDeploymentResult.java (90%) diff --git a/legend-engine-config/legend-engine-server/pom.xml b/legend-engine-config/legend-engine-server/pom.xml index 05dd0cc7f1d..d93e2bdf520 100644 --- a/legend-engine-config/legend-engine-server/pom.xml +++ b/legend-engine-config/legend-engine-server/pom.xml @@ -374,6 +374,10 @@ org.finos.legend.engine legend-engine-xt-hostedService-api + + org.finos.legend.engine + legend-engine-xt-hostedService-generation + org.finos.legend.engine legend-engine-language-pure-dsl-service diff --git a/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java b/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java index 95db1c44e09..a94d9792f60 100644 --- a/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java +++ b/legend-engine-config/legend-engine-server/src/main/java/org/finos/legend/engine/server/Server.java @@ -84,7 +84,7 @@ import org.finos.legend.engine.functionActivator.api.FunctionActivatorAPI; import org.finos.legend.engine.generation.artifact.api.ArtifactGenerationExtensionApi; import org.finos.legend.engine.language.hostedService.api.HostedServiceService; -import org.finos.legend.engine.language.hostedService.deployment.HostedServiceDeploymentConfiguration; +import org.finos.legend.engine.language.hostedService.generation.deployment.HostedServiceDeploymentConfiguration; import org.finos.legend.engine.language.pure.compiler.api.Compile; import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; import org.finos.legend.engine.language.pure.grammar.api.grammarToJson.GrammarToJson; diff --git a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/pom.xml b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/pom.xml index 55bf430025a..52809778d2b 100644 --- a/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/pom.xml +++ b/legend-engine-xts-bigqueryFunction/legend-engine-xt-bigqueryFunction-api/pom.xml @@ -63,6 +63,10 @@ org.finos.legend.engine legend-engine-xt-functionActivator-pure + + org.finos.legend.engine + legend-engine-xt-functionActivator-deployment + org.finos.legend.engine legend-engine-protocol-pure diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml index 71cc4d7b485..85ffcf086c5 100644 --- a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/pom.xml @@ -126,6 +126,10 @@ org.finos.legend.engine legend-engine-xt-functionActivator-protocol + + org.finos.legend.engine + legend-engine-xt-functionActivator-deployment + diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/pom.xml b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/pom.xml new file mode 100644 index 00000000000..428931f1546 --- /dev/null +++ b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/pom.xml @@ -0,0 +1,54 @@ + + + + + + org.finos.legend.engine + legend-engine-xts-functionActivator + 4.34.1-SNAPSHOT + + 4.0.0 + + legend-engine-xt-functionActivator-deployment + jar + Legend Engine - XT - Function Activator - Deployment + + + + + + org.finos.legend.engine + legend-engine-shared-core + + + + + + + junit + junit + test + + + log4j + log4j + test + + + + + diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/DeploymentManager.java b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/src/main/java/org/finos/legend/engine/functionActivator/deployment/DeploymentManager.java similarity index 100% rename from legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/DeploymentManager.java rename to legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/src/main/java/org/finos/legend/engine/functionActivator/deployment/DeploymentManager.java diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/DeploymentResult.java b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/src/main/java/org/finos/legend/engine/functionActivator/deployment/DeploymentResult.java similarity index 100% rename from legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/DeploymentResult.java rename to legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/src/main/java/org/finos/legend/engine/functionActivator/deployment/DeploymentResult.java diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorArtifact.java b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorArtifact.java similarity index 100% rename from legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorArtifact.java rename to legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorArtifact.java diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorDeploymentConfiguration.java b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorDeploymentConfiguration.java similarity index 100% rename from legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorDeploymentConfiguration.java rename to legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorDeploymentConfiguration.java diff --git a/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorDeploymentContent.java b/legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorDeploymentContent.java similarity index 100% rename from legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-api/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorDeploymentContent.java rename to legend-engine-xts-functionActivator/legend-engine-xt-functionActivator-deployment/src/main/java/org/finos/legend/engine/functionActivator/deployment/FunctionActivatorDeploymentContent.java diff --git a/legend-engine-xts-functionActivator/pom.xml b/legend-engine-xts-functionActivator/pom.xml index 7c7812e5b27..4714e1b68bd 100644 --- a/legend-engine-xts-functionActivator/pom.xml +++ b/legend-engine-xts-functionActivator/pom.xml @@ -30,6 +30,7 @@ legend-engine-xt-functionActivator-api + legend-engine-xt-functionActivator-deployment legend-engine-xt-functionActivator-protocol legend-engine-xt-functionActivator-pure diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml index 041726cca2d..78379c95c01 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/pom.xml @@ -32,10 +32,6 @@ org.finos.legend.engine legend-engine-shared-core - - org.finos.legend.engine - legend-engine-pure-code-core-extension - org.finos.legend.engine legend-engine-language-pure-compiler @@ -47,15 +43,15 @@ org.finos.legend.engine - legend-engine-executionPlan-generation + legend-engine-pure-platform-java org.finos.legend.engine - legend-engine-pure-platform-java + legend-engine-xt-functionActivator-pure org.finos.legend.engine - legend-engine-xt-functionActivator-pure + legend-engine-xt-functionActivator-deployment org.finos.legend.engine @@ -116,10 +112,6 @@ - - com.fasterxml.jackson.core - jackson-databind - @@ -160,10 +152,6 @@ jersey-common test - - org.finos.legend.engine - legend-engine-language-pure-dsl-generation - diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/api/HostedServiceService.java b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/api/HostedServiceService.java index dac65a23cd7..0d12900792c 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/api/HostedServiceService.java +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/api/HostedServiceService.java @@ -20,17 +20,15 @@ import org.eclipse.collections.impl.factory.Lists; import org.finos.legend.engine.functionActivator.api.output.FunctionActivatorInfo; import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorDeploymentConfiguration; -import org.finos.legend.engine.language.hostedService.deployment.HostedServiceArtifact; -import org.finos.legend.engine.language.hostedService.deployment.HostedServiceDeploymentConfiguration; +import org.finos.legend.engine.language.hostedService.generation.deployment.HostedServiceArtifact; +import org.finos.legend.engine.language.hostedService.generation.deployment.HostedServiceDeploymentConfiguration; import org.finos.legend.engine.language.hostedService.generation.model.GenerationInfoData; -import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentStage; import org.finos.legend.engine.functionActivator.service.FunctionActivatorError; import org.finos.legend.engine.functionActivator.service.FunctionActivatorService; -import org.finos.legend.engine.language.hostedService.deployment.HostedServiceDeploymentManager; -import org.finos.legend.engine.protocol.functionActivator.metamodel.DeploymentConfiguration; +import org.finos.legend.engine.language.hostedService.generation.deployment.HostedServiceDeploymentManager; import org.finos.legend.engine.protocol.hostedService.metamodel.HostedService; //import org.finos.legend.engine.protocol.hostedService.metamodel.HostedServiceDeploymentConfiguration; -import org.finos.legend.engine.language.hostedService.deployment.HostedServiceDeploymentResult; +import org.finos.legend.engine.language.hostedService.generation.deployment.HostedServiceDeploymentResult; import org.finos.legend.engine.language.hostedService.generation.HostedServiceArtifactGenerator; import org.finos.legend.engine.language.pure.compiler.toPureGraph.PureModel; import org.finos.legend.engine.protocol.hostedService.metamodel.HostedServiceProtocolExtension; diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml index 3fbb31b6c34..5b7478ef48f 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/pom.xml @@ -39,6 +39,10 @@ org.finos.legend.pure legend-pure-m3-core + + org.finos.legend.engine + legend-engine-pure-code-core-extension + org.finos.legend.engine legend-engine-language-pure-compiler @@ -60,7 +64,10 @@ org.finos.legend.engine legend-engine-shared-core - + + org.finos.legend.engine + legend-engine-xt-functionActivator-deployment + org.finos.legend.engine legend-engine-xt-hostedService-pure @@ -102,8 +109,6 @@ slf4j-api - - junit junit @@ -124,6 +129,18 @@ jersey-common test - + + org.finos.legend.engine + legend-engine-language-pure-dsl-generation + + + org.finos.legend.engine + legend-engine-language-pure-dsl-generation + + + + com.fasterxml.jackson.core + jackson-databind + diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceArtifact.java b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/deployment/HostedServiceArtifact.java similarity index 94% rename from legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceArtifact.java rename to legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/deployment/HostedServiceArtifact.java index 1bfe026b012..579c8db18ea 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceArtifact.java +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/deployment/HostedServiceArtifact.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package org.finos.legend.engine.language.hostedService.deployment; +package org.finos.legend.engine.language.hostedService.generation.deployment; import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorArtifact; import org.finos.legend.engine.language.hostedService.generation.model.GenerationInfo; diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceArtifactGenerationExtension.java b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/deployment/HostedServiceArtifactGenerationExtension.java similarity index 97% rename from legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceArtifactGenerationExtension.java rename to legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/deployment/HostedServiceArtifactGenerationExtension.java index 2de7d269570..3d63ea27f6d 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceArtifactGenerationExtension.java +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/deployment/HostedServiceArtifactGenerationExtension.java @@ -13,7 +13,7 @@ // limitations under the License. -package org.finos.legend.engine.language.hostedService.deployment; +package org.finos.legend.engine.language.hostedService.generation.deployment; import org.eclipse.collections.api.RichIterable; import org.eclipse.collections.api.block.function.Function; diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceContent.java b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/deployment/HostedServiceContent.java similarity index 94% rename from legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceContent.java rename to legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/deployment/HostedServiceContent.java index 36de3185647..4f11777b516 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceContent.java +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/deployment/HostedServiceContent.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package org.finos.legend.engine.language.hostedService.deployment; +package org.finos.legend.engine.language.hostedService.generation.deployment; import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorDeploymentContent; import org.finos.legend.engine.language.hostedService.generation.model.GenerationInfo; diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceDeploymentConfiguration.java b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/deployment/HostedServiceDeploymentConfiguration.java similarity index 91% rename from legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceDeploymentConfiguration.java rename to legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/deployment/HostedServiceDeploymentConfiguration.java index f8627b853e7..bf5b904c9b6 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceDeploymentConfiguration.java +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/deployment/HostedServiceDeploymentConfiguration.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package org.finos.legend.engine.language.hostedService.deployment; +package org.finos.legend.engine.language.hostedService.generation.deployment; import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorDeploymentConfiguration; diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceDeploymentManager.java b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/deployment/HostedServiceDeploymentManager.java similarity index 96% rename from legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceDeploymentManager.java rename to legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/deployment/HostedServiceDeploymentManager.java index 0e426ab292f..aebc9369996 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceDeploymentManager.java +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/deployment/HostedServiceDeploymentManager.java @@ -12,14 +12,14 @@ // See the License for the specific language governing permissions and // limitations under the License. -package org.finos.legend.engine.language.hostedService.deployment; +package org.finos.legend.engine.language.hostedService.generation.deployment; import com.fasterxml.jackson.databind.ObjectMapper; import org.finos.legend.engine.functionActivator.deployment.DeploymentManager; import org.finos.legend.engine.functionActivator.deployment.FunctionActivatorArtifact; import org.finos.legend.engine.shared.core.ObjectMapperFactory; import org.finos.legend.engine.shared.core.identity.Identity; -import org.finos.legend.engine.language.hostedService.deployment.HostedServiceDeploymentConfiguration; + import java.util.List; public class HostedServiceDeploymentManager implements DeploymentManager diff --git a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceDeploymentResult.java b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/deployment/HostedServiceDeploymentResult.java similarity index 90% rename from legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceDeploymentResult.java rename to legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/deployment/HostedServiceDeploymentResult.java index 8917f5a219e..87ab19404e6 100644 --- a/legend-engine-xts-hostedService/legend-engine-xt-hostedService-api/src/main/java/org/finos/legend/engine/language/hostedService/deployment/HostedServiceDeploymentResult.java +++ b/legend-engine-xts-hostedService/legend-engine-xt-hostedService-generation/src/main/java/org/finos/legend/engine/language/hostedService/generation/deployment/HostedServiceDeploymentResult.java @@ -12,7 +12,7 @@ // See the License for the specific language governing permissions and // limitations under the License. -package org.finos.legend.engine.language.hostedService.deployment; +package org.finos.legend.engine.language.hostedService.generation.deployment; import org.finos.legend.engine.functionActivator.deployment.DeploymentResult; diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml index e8a2e506e07..1e53c3e1e0b 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-api/pom.xml @@ -64,6 +64,10 @@ org.finos.legend.engine legend-engine-xt-functionActivator-pure + + org.finos.legend.engine + legend-engine-xt-functionActivator-deployment + org.finos.legend.engine legend-engine-protocol-pure diff --git a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml index 0599e605184..41808b3c092 100644 --- a/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml +++ b/legend-engine-xts-snowflakeApp/legend-engine-xt-snowflakeApp-generator/pom.xml @@ -95,7 +95,7 @@ org.finos.legend.engine - legend-engine-xt-functionActivator-api + legend-engine-xt-functionActivator-deployment org.finos.legend.engine diff --git a/pom.xml b/pom.xml index c429648312a..ccd3af89973 100644 --- a/pom.xml +++ b/pom.xml @@ -580,6 +580,11 @@ legend-engine-xt-functionActivator-api ${project.version} + + org.finos.legend.engine + legend-engine-xt-functionActivator-deployment + ${project.version} +